From 0e9bfd9d85c724efcfd21426b8b53c4be0756835 Mon Sep 17 00:00:00 2001 From: brad Date: Fri, 2 Apr 2010 12:36:00 +0000 Subject: [PATCH] --- tss8/rf.dsk | Bin 0 -> 524288 bytes tss8/rim.txt | 29 + tss8/system/NOTES.txt | 31 + tss8/system/README | 52 + tss8/system/fipa.pal | 1195 +++++++++++ tss8/system/fipb.pal | 1268 ++++++++++++ tss8/system/fipc.pal | 1329 ++++++++++++ tss8/system/inita.pal | 1223 +++++++++++ tss8/system/initb.pal | 1184 +++++++++++ tss8/system/initc.pal | 888 ++++++++ tss8/system/link.pal | 61 + tss8/system/param.pal | 450 ++++ tss8/system/si.pal | 4456 ++++++++++++++++++++++++++++++++++++++++ tss8/system/ts8a.pal | 1372 +++++++++++++ tss8/system/ts8b.pal | 1263 ++++++++++++ tss8/system/ts8c.pal | 1294 ++++++++++++ tss8/system/ts8d.pal | 1279 ++++++++++++ tss8/system/ts8e.pal | 1329 ++++++++++++ tss8/system/ts8f.pal | 620 ++++++ tss8/tss8.zip | Bin 0 -> 218927 bytes tss8/tss8_boostrap.txt | 65 + tss8/tss8_init.bin | Bin 0 -> 5378 bytes tss8/tss8_init.v | 2458 ++++++++++++++++++++++ tss8/tss8_rf.dsk | Bin 0 -> 524288 bytes tss8/tss8_rf.dsk.orig | Bin 0 -> 524288 bytes 25 files changed, 21846 insertions(+) create mode 100644 tss8/rf.dsk create mode 100644 tss8/rim.txt create mode 100644 tss8/system/NOTES.txt create mode 100644 tss8/system/README create mode 100644 tss8/system/fipa.pal create mode 100644 tss8/system/fipb.pal create mode 100644 tss8/system/fipc.pal create mode 100644 tss8/system/inita.pal create mode 100644 tss8/system/initb.pal create mode 100644 tss8/system/initc.pal create mode 100644 tss8/system/link.pal create mode 100644 tss8/system/param.pal create mode 100644 tss8/system/si.pal create mode 100644 tss8/system/ts8a.pal create mode 100644 tss8/system/ts8b.pal create mode 100644 tss8/system/ts8c.pal create mode 100644 tss8/system/ts8d.pal create mode 100644 tss8/system/ts8e.pal create mode 100644 tss8/system/ts8f.pal create mode 100644 tss8/tss8.zip create mode 100644 tss8/tss8_boostrap.txt create mode 100644 tss8/tss8_init.bin create mode 100644 tss8/tss8_init.v create mode 100644 tss8/tss8_rf.dsk create mode 100644 tss8/tss8_rf.dsk.orig diff --git a/tss8/rf.dsk b/tss8/rf.dsk new file mode 100644 index 0000000000000000000000000000000000000000..b395eedb2479f172f39319e76e8398866b187fca GIT binary patch literal 524288 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 z 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�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

Y$j#9VT^~%< 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 z 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 literal 0 HcmV?d00001 diff --git a/tss8/tss8_boostrap.txt b/tss8/tss8_boostrap.txt new file mode 100644 index 0000000..010a13a --- /dev/null +++ b/tss8/tss8_boostrap.txt @@ -0,0 +1,65 @@ +Loading TSS/8 +------------- + +Note: your environment must have a functioning second Teletype; that is, you cannot +at present run Foreground/Background if your host system is VMS or OS/2. + +1. Load the paper-tape bootstrap: + + sim> load tss8_init.bin + +2. Enable the RF08, if it is not enabled, and disable the DF32, if it is enabled: + + sim> set rf enabled + sim> set df disabled + +3. Mount the TSS/8 disk image of the RF08: + + sim> attach rf tss8_rf.dsk + +4. Assign a TCP/IP port to the Telnet listener for the extra terminals: + + sim> attach tti1 -- 4000 typically works + +5. Run the bootstrap: + + sim> run 24200 + +5. TSS/8 will boot and go through its startup dialog + + LOAD, DUMP, START, ETC? START + MONTH-DAY-YEAR: mm:dd:yy -- numeric, yy in range [74:85] + HR:MIN - hh:mm -- numeric, 24 hour format + (type cr to get attention) + + . + + and is now ready for login. The list of accounts and passwords: + + PPN Password + [0,1] VH3M + [0,2] LXHE + [0,3] SHUG + [77,77] + [1,10] WBCN + [20,1] DT + [20,2] PT + [20,3] TSS8 + [20,4] EDIT + [20,5] 4TH + [1,50] JERK + +6. Login using one of the existing accounts. The login command won't echo: + + .LOGIN 2 LXHE -- privileged library account + + TSS/8.24 JOB 01 [00,02] K00 23:23:06 + + SYSTEM IS DOWN, INC. + +7. The system is now ready for commands. To get a directory listing: + + .R CAT + +8. Other users can log in by connecting, from a Telnet client, to localhost + on the port specified in the attach tti1 command. diff --git a/tss8/tss8_init.bin b/tss8/tss8_init.bin new file mode 100644 index 0000000000000000000000000000000000000000..a3d6d365e9e2d5adfadb97a81371c6bd295203cf GIT binary patch literal 5378 zcmd^DU9Yo9a;^qrH?%)6;A0H7X`2J~0Uy8|n=fPY?rIf9t5p=`B8s9YiuPu5k&$wd zOY+YA#QdaG+cUGtMSelBfc~VbtDbtg%0K`7|Lf|(Irc;gdPzI>vJ>@#-0GEz_d|*H zBZu}hpZDrM={1-1OndZWr|T#CLqBz)pJBTmZTk7X=#5tI&1ltI&b?n~UH`_QUoz6$ zk=C!a_uet?z59TE9WD9|j^9?h-ot+0@_yG!{l0$deU0|-PS6LS^x+Zu13-VozK`hG zNBEANM}I;YK9fVAU|))IWSZNb@3ha2r2p!U{Uu5IYn1i{_LnF}RS)~R8uks|HbG`!2Ke`yd&9SK{>hu!Wzpi2T>@;TxRD9==hapnh{e z0vQG{0*_!rS3RKn>iD-1LO6Uo!Vx}xmkgkSH~PDR6l}J*eaiq^>6CS+#ixc#{&vxv zNI<&z)&+MnkEfI2X<904h1$NNgVJ>^A=}5O%O4{$A1Phf)m=y&c_#|`&$GN?Bnptim<_Vg)Q^Qjz+BRXawx) z7GZ&JQQN+1&$&21tizIB!iHVLM$3a?Gy>4h_+7k{SmIJ6O(bmqgP{^CCnX=`01bC* z_u^h#8VrMxTe6Zh?J@pfH+)8{#b?a!wN7uX9Vcd8fm^XlJrF4(X#!6iI)<7W3dDQaG`%R?)U3VWs*4?|sAFy@*p(%ToKp~^d8kUBI0^qE3 zOVgc2P8z;_*N)o&Ah(LiG%WlErU<=a{-CW?7}2I63G0sChaxKj`HDM(X|@fg=j|c+ zkT0SIC05wbm6(E3i?V`}kAk5oMP-7zcwJp9Ar7)ttonMkg$KQ-RMb;FTf>97cc}Eo z@kCO+Lx@(;(%8?!Y!~lvpK7`mE5Du7@GVP2KpEU>dUosd1i-3o#_H`keXjLaxLhDj zRtW@R*CZf;JQ_D#JJ=NOvLbestKl)C>bN2;7q|BD;E_S8U91b9;rIp4Rm9u`9xzkM z{;rE%IB~=2#inCwt5nsZJB=l}y8}LNwyMQ7?w_ho9G!2V#mTAI73u?}D2zBtBV{_^ zOVy&BjIGIRpm^|(hBH^DrAz?Es$>vj1v6bSh&3|+xK2!SIWqQuGBv&;(1`oc1R^DXD_*SLS}>qG*o`3`;V1OlQ_A!($rfnzeo9R-MpnT-AN z=$_fZi0)fXebj@E*d0D~_kpu~ch2VSB3BQSn6^iMY7S3?XAd63Y{VAgUE#MK(;Ur4 z=sQNz>El4&#E~(*jEYet^i~mf;ZM_X=RC0Xt3=N=P{(ZH&eQ3$W&|WRW6rkr`H(zY zZ0yh6be7uLduFEb#||~4HlAWDG9L^qKAw?*GVs7&jYo4!Ut3HI|A?#D)h%@Pp`QRP zwD&uY94)xh$gvA!-%@Nva-_k7EJ`_9Dl^RJxBq1t{~($ac|3 zw$HT8$>sB^C^Pa|Negu>tOIaE|DmmY=GnA#(JyhAvSS6x_`;?&w4BXQvt2bb%A{w5hmF>rgFiwIYusyGvsQH);ZZ}IdMHM#8NI=79gf3Xbq36I z4Q(KBjL3$^F(y>q3N#OJ)>kXd4CE|ktEMqCs+|L-5f#`^E0UA-foBP_qEw50Pd@9n z)bggv5{)xbr+lKACPDt@$SWDAieWiipDh(bv|N8}L9j0-!jgXjcMeN{_b!n%v>y5= zc^o6zkP-=bYD`Xpu4QkVv(ZWkw!U<_XO1q{3g9`540p{D07P+qdXU!#roR?oF% zYeyT$5q0`r>ze(nyU+d=;(udTniU$FLu{sL;g$FliAdwp98Y` zTq(q8xL7Y&1!C-`;p?VA21qUBEV0W%GZ8HZbDM5odrY^;EU_88$fSq|;R6rUS;IQi z&drR|7=5FT(>Cv}e+T~Dk$qfY-_i2$MR#^}xQwx+m(d)#$vP3eicnu8D^Mc^NAI+q zbHcZe>{k1Hk6tk@kz;n_5`F9xs5oH(+Ccg_$fej5RCVHm#Y8{72A;TL$>;=KAsg-I093m>g53?Eec9JJ|7u^m zKnsqw5n2>!CK^9&r|s)s+Er}VMEfsR9q#KIazblOS%09Ul{Q!(HEAoOb#XuLj#j>A z*EF*$TDHfe#^|%M1si5|nV=WD+|HQq?rUJYqAsUdtH(Chb``ZVb06!Xy@nJ$LtNd( z=L=IY_)t~G1M{{0SJ(gf{Cn)dvt~)(U9&vH{c&WM^1^J_C|l2=xANk9fqT@mGBM2MFzvr7a!vg{|=gHh5mhP9TsZ z;t0*c`g4_lL>NP8h;fXBL`<{8b9uk_la+-&=)}3YjWNIo(YC&rz=$U`oB=W##wk1- z(_CGvrW{?iorrGKb8OB+T^U$1;@C+I~F{f}sGm`c@LqX|g245Pgr94sf1Q?$#CK93zz05L* z%>GB+dm0ab8qEaH9vtC6=dBb|d}umLl0@uGoFncB&t~A-CgAgneF?9YonkVBS~H=d zg`X48ZMcWgXNnXf;$YNC=oSS=DaAbgD5mliPvPSXd7wR}8?$)OxI_%+FWbd<+zEzo z8-Xm8ue4_t8&U)i;6foy$O#%1Wpg`YkhMWl>v!~mRDLw=}n9{xaKle3L-os z9Wac!u$MmYi*%#qP99}Xl#v+E7IzV0{38O7<=fI)F5Uoiu(k4~<)?Li@e^-JiPd@f zSRtmuEd&M`5p{|Y?my$~mBCMeh&7jZzXwW4KybSITWyCW@3-1nlSFKU=k~jUrwk$- zcow;;#`g8FwwxFx6nZ6xkR1ZbcJzzA3v8;)4H}-S-tiW)!24jHw`BoF=pz=p0gGJD z0_K}sw1|-mV@;RWmKnsl$Kxg1nwva+#s6wRPNa#1uXi`Fx(gmE7-MJ99Geg1^VWO8 z(ou{Vf5q{9pc=>@Gh-#(=U*TpB5_bPZS#~{dumohW=iOE%sWw=`TRavEI+`Y8t45Lxx3FHi>BZ6!;{fmUiA*$#zc-{3|X7v+2QlqQja!Lw7Ecm{(e4QH4wD z6qBG=P;a0H|Ll)vGO?5aj(eRgJm0~0=S2Rp2G7LlQC>8@8e%3Ro7X@Q`hDWZ9bYhZ zv@wR&FPPFJsw$7|`C> zx=onTUKwKL-;ksJ1K!u-_k)$Ket3%?KRhxgZT@wD`OBcCxtyqb_|epi9}gA$*mT*y z2hrj?Vl;EIF=l&%Y!#`R5{)x8YFX)S{b8g>6Y<1MW0+CNcac@G)9VyrpUKtFB4v;HGh*by9_|1j zcJNHQ3Q7D8gYFp5jcdi@k#s`l9%hql2nL0h8`3^K}~C=epHHj`Y1?iOu7n{Hbhhn{aY zCkY?{R07z5f*ct%$RH@ls3goFGKN8>geioCFa}5nf$z8W31au{`@ZjUpXdAIe(yc! zIp^%5b`7i6yjIo8_cJ|Vve*p4!k5bw)66jD##nZAw64ecu)ne!*p2K5>?Za@R-ZLs zoC#(#huy(CFvhC_m)*%KZOQIt_plUpFS{>M6@7d3^#FbS%hwQ5V0-qj?3nwN7|AE% zZAFfWnB6dPcO=W7eADGTNRTsT3U}T_d+g?(-vTcjQWt9~=+<#s;#z z=EA?K-)g`HuvZ!Li|ziA-?87bEU}44#64m#x2#N=WBny^hnW`{AZ}-kWFsCAcI$e= zl`d~4b3E6MaTnL#)p7rIj;kUmn5JEx>^H;Jw{)g=pYx2$_HJ+nn&slUNUBT~cd)!* zoKEGIpC;2prbqRbxpaf;HOm8_Qj42XAaOb~05H z*;KZb_w$EUvVT9?`PQ_>cSp6;tk)O(_j!sXtQ+uLrEVr~aBdV$sosZI|}bJV+HMR*$-?DJez4A zl&$$KT%iwIDxTy&$n%1@*0}e+Rw6HWM}MH(*sXb*e2@>u^}Ha!R5#W_>W|@V+ z(Kcc><~r^-2D}^byZCT#k@+jHhn~dQp0Mr2*FOBLW!u?CwkGW5Dz*bXU4fpy8NNYg ztRBmZ#{6&jThU#7N;K{tlch2{Ix2ctkM@|Z4RWKqgHf2#yLguO@5*P5ff0>EIDKgq z@Z~a}7s!h|UzVDgfZJxkx`&DTZGc^?^_x1=q8UxI(|}P;`E4v2xN;AkUJH2a_M2k7 z@9U>AhJRB8p){MQB@GlYNId}BNX97BgzGf6Khji38tPaZq#1(6D!?fT&!?HLO0lIf z%lm`M0bj`UZeq1Tju-crI=Nn&8NsRaFL-Bj*iYk`psS|*MyD&#)GZ(PE5-|2B%~+wi z6uiNzP~Qc05Y$)=Ovz_4l<5HYrZFX$b;a)-ydE^=IhfmD@QoPBvup@&DmP-pALvZp zl)FKAjy^TzLou>hnnpGw92t#@dQ*!UvVl$ef$xO4@1errh|IZbO-H~ z$u2xy(sSwH8pCn#G;s58!Of8ZwjsoOqJnRMVH<$`Yw%tbQpGyp9RvL)vGiaWW+auT z1Y1HLk}3wXRHrfcV_s0Kb3LMy94|lEqfUI&Lt6qK^jJgcvw*UrlzX{(2Tx}xS$TlJ$*EaKPk6`jw zw3f?aKEZhidO$qlvgv_$7W!DOmg+0fY_FaOG2Njnsr+%ZMZX^WIf@wo7jFihVXGS5 zmN$2r+b+06C!C$t&7I>0{0FaRgQOrmxELNo=z&`&`-9|QJT(nZW$_F@4_v=3j{%?Q zHdoxye|aHY4k3mSL%5YsRC18VzJcTzJj3n{>k>6nRG`V-zZ{GDOX zFy{jnTtVwGaKP&Uoum3IJK0b2uXmn{Y}QNobI$YPm^>z)cb*fs@D4#QKO=b6Ph6`X z9MMZzr95UI6H8fFU;C9@7MjBsb<)n)R6d z<-h`lPn>;?UwTyrPX#@LZb3~Du$7>d5#naRydm&th0K=iWji?tP$|KfhhQ9&@k=v4 zRcB-TTX8lN5Tf4^qB#5=hJFmP2k{(SU#8pfbl>)qSv%PtN7BEIwF7?8Fim z1_4fk0O3nIfm440R0i2+bOI(c?p!Y>hRT@zYRES+CxBI^XZiI+6WN64dc$xIsfHem zHn;Loz|>KYdGjIVZ^PO1;P`YtLyrQa9|va}<;3+ZJQZA#W_E#gZ5OlXqBo-rmH9Es zxK83t*Qm9)f1k(*V*Y(7RbUF(HoVt?J~xIG%GgOKL3!I)8|{nI;y_k%VSK z=VNt@H|EM2s_8ouJ?^OD!0-3W`}#fmJ)CEGe^Zn3n-Y9v9#!&d*4uNy z*BB(zCGfa^k1&51&U%9L-p+{9FG4P#gI3gxCj)P9Ge+nM&;S~-Kl zUO3G1Klx6!LE~c8LEQfYIQ2Ib^9eSo{8r!u=3ZRyxZ*i{p2rC1K}OPhOL(s(VA2Yo z*7)Rlw}5*+Y3`5EEU$$Ivkkv-^pvqvl60M;`V>DU+w#+(g;E^vws)ITbu)KLc2Y<6 zUeIx`fcQOO$G>`IyL}ZwmGJv*@O;vIn_=9|(0+GdYRqpEVgTJ~=45&UaE~-u(qX|} zpu;9G`c;(AHjhVpDg)?$sfOFGWQNl08b8ZA&Ba-Wpu0*($&~Lh# zU!fdP#0k?9-1B~D>8+#^z0?EH=$f$;rk(8uCjj+YlsKS2!|eZWUrv)CEoc=q584Oq zf)>F~Bi;Fjo^M&d|+ebG{k+ z&I!GV=j)^B*=D}ey@gHHx8eDvVW}-)spPO!3^r1---0*i9y|7A|>_-yD#Q+geEME2cQK* zlCP(-fs?0A70y?}4l$tNBPJs#0=G!;muCDeVCYuxl(*}w6~ez~BYo8qbymeKthxN! zO<+bxHA(*rGQS1-O>_2wnI2O9_h;(rlll4wx`8vFtux_sPqdCf5ZKboJ>yM}|DBS`)V^Z+_J0x#y zpYD@=RL+{Cy{mXphSP0YnL zNk&h^n1?w8UD$0z7C2&fWFPk1Sah80rJKbrahr9R(}sKva5p7bY*vOkYr;ZQ<|(%q z=qnlZD<(lTZ8P}KS zr{EcA3J%!W+;0BB-Uwy~g=n)@UE(dli7daB+#pZ8zp+lcvEZ~jG1|&*Ww*2sqTP6K zk=Fp@89Ob`%T}E1f(`a*`?RSEYNA(QtrN@!MPk6BVIh4cu;@wCyN(73H`5Kx#zHsl zH;0s&r(>|X>AZEFoH+~0TpLX{t@+iXM9FmUQWqYAOyxQYG3Tuz|E2!{=8I-_VaTHv z8v31xr^y;3I5vU|hkpg*-CYOAW{@=CEui>x_%NFBJ*cZ3^U(%4b5ZOuZP0ETeg-{W zV(md~S8xp&2#!rp<$7n`J*L!x6bx}n0H@A=hx;`Czv@Y95_8<_XkV?g(Jz=0dbAz_ zm~;-0hN|BFn3fUo{9SjDLvwzC8RpdO#!mXIRwAKK?Cr5a_7B3g_`F-CDN83|u>J#an%M76<2V1^jIU zYWXRoWxBsrZUR)&%^o)ayNzZuA8Zz?F1owUh8BCxhW~dfGt|)Yg0hfD?GAYq@tZrY z@*7ZCPZ;v#E2-l}fPJ=ilXFuj^{+|Pi@_dPVxQIFerx!^nnR|#A)g!xy|lSKEcEx? z4?5^Qk~69{7;&W2z#?w zYqo${d_6pDU(5M?tt{p1s`|FsD-s?VI5jnj~2d03rArstPVY1adyr6qqep(7R(3zeH23BqfmeD z7uMSh^gbQFHlje%oKs-yk*-3}y@9m{9^43PZl0S3EU{ptlb#n3#=|dqujt@s!tSq+ z9;b*HW_S|lo*=syKB#?smD~>xOc6gI$?9YNL(+zyfcf=;Z*)8P5S}~$zF%OkvSa=M z=vD^-|9Pg9e-Jf(sf%&tOI^*+@)+!l#Ua2V_)b_zufX?kh_`{hM)KycsrD+pH{877 zLU1{_629}TeqyAX7o8Bm3dbu?e$0o<7yWi}zWjtwmwCK{KLfUBo{ag^x$O_P>jgvg zbUB@W#FByudOqMXNl!yB=G*P;9G%DM7&Yzt*<`i&{Xp`bOv5`M?(%Q51U2*E%2NdcvpobKcdD zW6ldr!h=Jen>gDH{eD$wAFM*_>u^TrYj9-)?vlTA3w(>KU_TTx@{2OI3~$C}i8f$SDO0sFrNPy zem;xYZYrL77v=CM)!Hy8>BUO`NUwAYeM~wiVqh7L|9o?vDL^N)iq0_iF zIGUx~p}n*aYOR8r5YCTF8bOnAPMQXGl-lWKJrwrrVL;!HCgI8x7WMS%c| z)gCpB5)P~bOzx>G*EqN@ymriP5wt{`4+YJmtx(r)mugQys(sKtycT!c;7XHlMmmPI z|AjY2?Ons;KjXL!-YoQl7vQ@Pb}#wq*RkEeU-IA=z$?B2*T`31h;s(MwmrmnhO^DM zN0x59t|T23#>avCJHtDL@PBSbU2#Tn2C}GEqxP-eqm7lgd)50MM=P7cb_#H9Ah zI^Ax&F0zZv`RE*$Z>|LQo0IB|=+!7loP7;QEC-~vg)xs!IFI8BUc8N4W1VvT9DN;n zOCO$yBT?TG&w`~~&uIc3gCa{Y=%}eyjHiNced0dI8-g=snFnDZXV&S9iO3E`m56iQ z#&$xcK>~{hp$BHOhTzO?>=M`l#F-P%e_}R>4X~_X_aP#dyh4aP2`7Xdr$1zh|@g^){z@T-wLu3E`)r3Wu zZjvF%OChDm=k+cuvp8%5m!AnW$>`Z5DyP@6PtofHmaVSC zy#x&`4}JKA<=ZfhHSqqe3aMcmMp)`YSxSU(JqQmULJ9HQjG%sSSMa*kEU58S&^x#q z4+TDcgA&gp82ibp&tkFoWQs(Ax1`1J1vxBX01o zUR0jwf#l*Uj6RP35Jy;vUhPB=XNFfcqR+F#c}TRfE%e0^PoikufA^PVVyv&b(f+YB z+O8XmVfMp_?%Rlnh3d?ALxdScFK@p0R5a=_ljr|P$Lv^SFZ+{ym(wl6BK72*GA7r^ zTx)iOIZfRKR?NM?er2Cz=d3@fGWLSq+xZ-s0x{$c!2Cq)d2lp>JcCOCQ`JEgaFwz4 z_7rdrm*qom+W0+vnC|_@7e)1YfHVCD+$a^6-}OSkgO_St_hks@Yw`bs_CLq}Df(Y& z7x*{HAIkdj2cUM#|3TeTUHQ*V$`L}dO?3O(sDeB4H=6caX z*5f_p484XWv4((7Cd&d;2C>1>p)3bjIy^c882ENn0sybjqySRQ6h(-ds2jpa&{25< zPX@I1g8PF1^7gE!EW>ezybcyh2K3ll`AM92;CDBp1cphc1{tQ>XHNTTf@x)nuxNZ)v#eX;Hl;F7D?Q5?2 z(|$eKlQ+Zo4mzo38L%S9TZa0MV=VW=Gd@KJp_F<@cH|>b()N48x)`C~u}9k3I@P?x zbKRl9EqXOm^CcjtQsC{JCo@pXJpQ>Vmc{;jk?vdm&HM{FAJM=1@{35WDYj=r$A2>H z`xpEk_-}Jf0Y;j5QJ?Z9^m~zy8C!|#Zm_^!V0PI(!ziBXw`ZuCr>H&pF|`-gPD8Z& zAmqvcd64&n278lCHSyqSpGKG(&i16BxjHA4{3KOrJ!sC!bK;!cGyLv_@2BKhbDRAX ztmx}_1K462GDDmTpQ9f20;V)mrLq+BcT7IRkIH}Jdu5qC&Wq#;v{xWs;m`Sdne7*F zH?aL8d#o-8JscG)d7xVm!V7a!ueD9xK0(m zYZ1NtJs<`PGc1>Q`m#KS(l?=3#fa0OMW+a~Fos`Jsiu$L2iS1NrTe=HGk86@7nINm zzl0-KYdB*xJIZ$1{hSK%3SwZ4ed~IByWFa_gHMgnJLC?&+TAV(>CXIHx!vB58C|Zw zMV#vfjASnS3yJ$Qj=8!}?&90g;x3+e&hocQdaf|M+9k5x-U&N?C-8x2v7vedE%oBt z;rpbgzC!Q6MZ98+PSiF7v$?*Gi>)@D_-5prByfCk9UW4C>D5w!UeSY1dK;iot^?!> zQPiXmFe7_;qo&rn%lp*^PycWI7 zKol(5uND2!uYC9cW@3&S0m8NDajnRZwKm?O7FZW|Q_WHIhA^``xZ89UH_wO%-A^2f zx-sN~%;4=&XDujYl30#2FFdQ2GaTdqa1T9QtZ$NeA#aGg6a}pX{Ln^7N40ha{M)My zL1#7EuSI@CI(QAy?{Q%3Ohi>@!dtLk*CNVv6X>r#o~&?J+pEnVoH-B`wen7N1?6w! zD2q5$hFuBXUJH(VldM2%7bOb_mdzB^NwMl=|3$R0NG=k+!WpBS1k#6}!lySr|0Z4A z6;I>n8Nl;;@zHlYxJO-#D$`pc+SbY9SHaB}gIg#0i>;-6G5ByVIWdF{_mcpj<|+f; zj4$mk%`K3Ay+DbFb&~4I4(n2!-G>OvwvbyNMz2WN#%D`R3EvH-r}+vGZE>$jjc zale}!O=oB~CHP#gmyhuEe3$G7EXmiqL^rt>XY1f$TTi}!u>m<8U)x_}PCzO4H0Va_ zdCY7>jC&(8>FUYnb^Gx7U5FEo#PMj{rL3Y!dY7}y-i0|NKiSpSJK$iXW&BlbL_br4 zZDylei2Jo_o!o^Uu9v&)TdB8z?>4c`jwAlLO{_Ud!jg3);z_izxpbjO`PDI%4_s((tD()DOY4X8RfT z=X$oB&0k{@5rHIs4vrsY)J8wV$mZB<^lWRk^J%0Qz4#0x_qpr;G}Oyp!MyL$*YTH~ zOWcwrz1BV6K=wm4b;2vlf6 zkBUQYoW*0-Z9Im^Q8-{|Xq4Y`qs)*ua?mtrD+4mm(WtCFfGbgiCjJ3OS@%{TlGco+*KH$-}( zrL<80y-2F7+j#Ye-P2zOS%O9(IXCJ9$m)=LiV`)ZH(qk9UcQS-%%NM zrhdy*yH)xmB;<$kL+56|;Y0M-@|&m+WjddXYaiN^?Fo8h-FTa+&*kTU+!SCD@sN4w zX|g|$uGmw;GLM1NTnAWQ2398f*P+czhN~4iO)b-nl;t-0D&a+ zC;1>^JQp#OH?XI{bDkEIi=lnPo{>-6Ph(yUqxh!upWzq9MbJ={xKEwdT_UG7xCZpE zm|x}8@Y+y6BUwnA(Cw;?YUunqq_#P3%zP?u=9b?@b^+%dt-Bz%unXckNq9aFbn&J> zj3XCwJR3Ox1Pd3im?P)#CTeELu|Ksx4I}*-_7qS(;XYx(lYky$vryB_P&=C`=Rl7G zFBXP%L+;be@OUNe6Ni~&&%sj%&=YDqIc$54=>keWfL?rC*Q>8JwcjP2i!SyWdrjEV z0YLj~2(L4M*CUwi13W`y02(>oK|>=(-T*MEuWX@ygto3=96yj3&63ESs=hr~H{e6{ z5AApK?YxDG^1kw_l|b}E*3b1~3L~3_Y@+L7tB{40=>_~Xe!ZM*jz^Y(lVl)|bUE(; zEw7XR2K3CS&QvkgF2K_Tz=Ej;TA*Ek(Ok#d0W+uCQ;~i8I-iL-fM4D@5nK;Ddu90i zDo(nX5)v{X51_#JPW_fpe zrml8w1fEs%YS}I13*9BGFwE8|zgpA>U#?QsPB**S?rs<8+0a}{py4F!xF~-uNafjkp`&+YR=a#5X7pS4bYd4yX}cq#zDx`IqHo(GGJ<{N)TdZ3bv}AYfF4x!hyk zz;hXVkKG}t(Y5ftp3+zNDINMYK%q4E`*oJ+F1tftBTFdRFNM4*6A77cOqPork1{CI z*)d44QYypi1;>&7a#VHmvv>)(t{X_^O!1&V)10k9J6T=@ zY|*UHPk~=xRLqR>x@Na$p zy^8Gu4X(nQ{G?ZN(XV<;DTYM;zyh|f&MUb9RKCc$4t+#ssWn4;h-ha3av8Wb5d1sG zs}c(_)>oY>${ceRfKzO<8#+A!iB^WJQKF+{zn5$P?z)vfB}vC5J+Qa^l)V=GyEn9^ zRC64pUk1G|p_QG5U3?gtj>pQZcyPgN1LVrAB)>{V1eH3E`8=y1N9i13BH7_pc9cW= zfsOrZNc^A4pYdlgOV2{OR+-x)1g#9{mOiUSk9)z!yAF0DQ4o2-tHGy1K^RqL9X@0L zo(XKo03WP&Cc}r2nqq!s zJ?s2Xbbu8mRE?}bf1kwt4Y~%iJrufU0kHh2d=fo43i;QW*T{>og)fR~n{b|5uCaFj zzmJAAaFpPKksp;?p{E=L#$7Viz?5@g$!cW0=0HP!GNc{CkvANv?nz1RMW+d`(z_e)V;Z3y=8AuWABg}d!xr)oDVVj*TPwX?@8vvkCq=S(fgr2 z79rZZPwqqSmgpkX@TJb@uVDSbK6{SN2mJRqd&3^51cjRXVR7WVlfR69^8v@rdYV1W z{1{NnmtW~UktKRB-=n6PufP{phq)^=LS9CC%y~XdP7}Q_Uzy$onsL%=&~h>IX{vGl z7f6H(eS4%2t8p8!OkX%6l(IL-Y!`YiYP=Ep)D3JXEPAr6Nh**9*^OsIlg#z@@-Ctn zFt~(zH@ft$1w~Em}Y$QXUjuMs1m*WUooL2vM5(k%9do`RGh+wH~o z!ap)mUqPLdAU|vs@ND2-Hge@@NU!Y^TGyCu*S?onL;)oRGwUUIM5YyH8Q?q7EM={Q?}2XCouGmv?^IAJea(t6SQ4ZO||K$OM(YFR1INjFGWUDO45fiA-4IR@*Gth-D2 zE{Ct88@$-{5udEK8SL9i*k1I;bMUa!8p=ve$BC;|{2Xd2&`azk_64-O1eQxjb%rg~ z54-tctStQ$=f-G~!Cde_~Nd7MDUfL-DIj*Q- zjQ3XbBQYf!^FN0Dl^Y!z@L*JQqRxyCH>JU`prh5vI)@r#{v7dPc+$Depz3TP!q18<$)?B4D@#M<+}W3(NgDj;r__ry5?XGdTX| z*Q4qg5yKkl?5M>a!77*yR^0y>cHYOx-n0DHu*>q)Q2k^0?UIlok`zpbbw3JuVaUXG z(%g<}yVXGr4xf!-P4PPMJnI%hb_Q(R=Aj*`5dHZCcHwfJj4>?7Iuix&e>yx$iqDX9 z6LCiKVKgTi3ur}unJzO=T1nQrh#Rro8^upV#L9Q>0AYS>7urt%dz2W3)dC&lX3@jy z#kOKL>bX7HPJ63(*h0J;+0G|}qF`sR&FR2b!-K}yIwuF)C=@zX$nx3j^oqpnBscCb ztls#XTP8zI;X@^jg8>FZIrVd}Udcyerq&>DAFDaBMz*7>wd#9aR6}^a?gSLZ!9%ke zPi05%#Zy!G7P$ox-W=~6wH7{zjfg~ACe4i_R<=fLNBMks>V~3Dc&*_b8>N>S&+e#R zaz^QS;=EOcago1jJ1p!CW_J(+6tDK^>g;Ss8ymy9x*jc#_KNj>td2RM=ze`%ImJ)P zlLGq~sFOCL@!)KK=Bu2DEM~Tq6bVEp)(MboARW=mzSTC7j{uq0vc#V(r(o4#OFotN zga3CL=ITA&Qcgy6I);@i>B#7}{g&7v<6-rl9s+E;g-?b@1M`i2Fv!=RCAtK}H_t?` z2R=^M4L$AM>}7k;cnhMI_eb+C`!T1PVJzPt?iG?*n9Oktc33dZ%4O( zf#Ls*@!vmB!@9dGLFhJQ!|{`4XR5*Qq9g@FoNRC*tlN@pI7NY9^#1_7g*P4RV1G+j z!e52e9|~U1$=K7N4Io9O2VlK+GP~Qk8-CM4avR@@l`(|#3VyXb_%0P6cd zTj8hqS}VB~*o!p{`29i;a$L|GR$zj{-o%J<(B+QmWzpL&G#j0Nvpjc=c#=omo)%UK zSjE7UIZ@Z`Vci_5=k5ee(3JsoS1fm%{X~T3{rls-dfYGgAr2o_Sy=Pj5_p}79%jS4 znuS(JV5X)3(r<}*@+~`zW$8rpX_`Av%t!olipG)sF8KXhC_kTl0f>DHAMPFec5t_8 zhVs4A)mlCaB_3u6(5nPbXb#@83i!0nU8q;1#RX=W&ep%jdb45Z%?qrHqIDiWMr{W) zMRZ%DHkY@CZ|$_EHNq|V8eBc0*YXV^C!$>oTJd7Qv86~yY{v!0;Fzzo*O`v0zq9T? z#fk|b{nld>_^9Y$tdUQ{x}A5NG?U9mVtqwZ)(5`Q2P3Zs9y0dM1_s|>U=;Mqhje+| z?u^!m%e7Dw_1}4Se=OwHMEzcPei!7|xbXb_@O(VzY9dw!jp3uzd;CF+zmmNr1pxiD8Ocu$L`hnnFu*J=m#h}Y&ZYzFPC8JN3 zs+BmaTG_eSX`s-uOlz$1prgmsV7ILnW?ac z1JWJUL~w{s=v_h|D8f!Yv|?t9c^|EJR7Wujom4AXYzpljEGg29rMkpxzKG6^o&>k5 zFb`NW*aoLSG`4K_iAZDn2G@#=v6D$5 z`5U3%MEgTApCd4bt>iGi$W2_&!S!L`^~9VG!5ypsLXP)fey?MLdk*3$P8QF`+ztn1 z4q$cCdiOz@Mi_vZS!C8@Jz;CC0!jm2Q1qu*rpZHCBhCj1eg}U&%F?ScD0X{BdRWr!%xzI@_p7^}xck5Ujw3hdF62?1j^-O;>)yQiZ`d><=BuF<*ZW2z8W=s0HTVLzo;_*TST8{%3=wLW5*l}<;?ibU*) zI|@AUAA4VeNPk7}h{lcuAyrgIi-B_&qxnIRxftD#l~u1G3VKGLj-Eq5Xfz`a#XV-9)yIK*^cn{|91EG8z_I4oF=`Bsr-k@N8p;?x1{{J)J_7AGJGuZ8Gv<@L zO~#eUe2P2XR6?hi0l80kP1yg(O~m`L=MdtK`6Ro*`_o(((m**Y?0I@ws5iaJXBw%Q zVh$6Tiexj?ojOU~izP7hDf4i+fzM%o2J-Ev$gN^LBx%twev!!8|w$1=6e1XB0E%~*rn$>%VNx`@178|4N)mcnPY%YzStG!g`SmXLoInX zdn=kRy88LH>raVhdV2uPy^vw~rZppNo3RrAyc~`B&y60_Z)3hQkz=_B_>vOrGw1E0 z!3FGvaHekdigg4t*AbZ&gkL>*G4El$W5?|MYL?uN8UG@|VGx7d!FS5J=+9i}7ZmLs z0jV$swpLTQ9U4j=;*<3PM0WTtXA@}tX5{?rgm$!3e(NN`3bXvrupLD9rT|ahMvpTB7R%exoHSitPp6|}EJB=#(?yM=xB8-O4GF8X$iybn6h41UG{2;WS zUcl3fMLeJ;xDouX1BR32GA|D~S2Nfp zXQz{6MvCn^>RtHE}A@Qzjx8E=zzboGVZTtK~DvGX4Fepsjt5Uo$bD4T05p6_;_8%7gs-&=o*#ms!j(tOvvzlmMl# z!+CvJ_eqRn&%iWx7mgEq26CJU)*R=puuAqp93wY5I^TQ7g4c^>xp6nKLkc45d^2!s zm)`ij9-?=c2^Vc2(uMveC&}MrZ*n$)E70|1TuF1U!fmUm{@(aw-|6GT|0|<$NZ|Tj zM|BP|m0&> z&)$&pz{BRF%%kcBu|O@v*%x)=Nz`)OvCI*Z?KBU1I_-iUPOHGf3dAVl#8_J!FrF5~ zSmOZeF@j{?K49{mAXnZU-0e0C#@hE{w}ZBz=O)2c-Xhox9`S$n`Uz*`N%1ygw?_N| z6SHVFq+bfX{TMHi>dWY(FNqQ5qMOexm)kJYam$NbiGG|j0O?4W%H zvpWInr_1C?XfAK-5`G9PkYlC{7U2%RKhkn2X2gP75A(;0$OF*d*m?k@{;_+ z>kEB8a+rV0W5Hp5iX8%s#PI-hpC>72LaT1?o|5ONt)6N;}0X5oGAQvJ(*au#9 z7QC)fRfvP^oWgbIJj$O(`4iujU#Ksj{5f^OREc6hsoGo=8{H$A#bo~o=3pK21iscu zh@D?@Y8{%-y^{Kn@Nd29?*$x>BEN7ir}+1!AW01j92RF+tj?6p5s_*Qg(^jYLYf+a<_nk{A&=8Su>;BN0Y`VG0SPdF!?Q%;35 z)_n(SEK8l^st7xF99L(|-+8VsK>4$x6u8hKIH&SKJ!8#zbwMC&3s)}!3v0|dRVrrU z+2gdPf|nx?rxen$e$aukf&5E`@|g0WJyv6_^H@Gs(wg^+fXP_C4!fe{1!E&s!B{a? z;(1=g$}q=IgQkjr`Ik+#IDl5p0nU~`7QGs4GoQHQShqwY%Nfrcz!~~z4P=F$13LJ% z`Hg80Epq_yeUnG9S!`Z2ubPRb(0>8DT5R)MvkLI*8M@G0juM2MgRstGgjX(4L3cRG zPs<9}{Kw@9JKJP>HR7PWBo09;9ELaYP52%!Ihp=0)NmM|m`~og$@(}}s?;FM^pZ13 zokpgj>kr0W66g3SCx(3KU3`doljs>Vyo+yu1YD>y{l8-utAp}1?mg|FmS^lL0bjI_CUK!w2$1>IuO9w zPN2ZrtQa|gY+-evBJwSsPkh~di<5o;@eQs26zH4!)xdjCUr<%*cIcbq^hsC@V_?O- ztB>P*r9Of0)zE2Rahp=i?pol*7!KV=9>QAX!Q_^W-U?+$Lk`t~11 zVNVCzw-Cqp{u@eA;Q5~JhHT01ejI)X*t*EjjQROy7@`DmR*V)_BWq|CKIFAI2U|4L z+k~U@@W^j+&+|g#`o>rOFQecq{soeMs#aWfh!czeW|f#6z_5z1MGb_vF@Ft?PJw!< z_xZs=)lU63^4pY2}66X%eP9fwVwN1PEoS_m9Fg`BH*k#%(r zv$_hqJFV4Os5eVy;yV*UITAG zzDuwwDhXvUet(XC%(V0=qw``{}i38vumjL-1UaA(GLyW9i3B6(wq#hlO z3yQICK)E`uzSTA0s%5H%FLoD3NPns@dyUQR!wToPWRNT@YDG!P{lcFJ-Dis5Sl(P$p?(*PxS$-Sm!t8jtc)?8sVSt{oT2nfy~^RoBB_Z!w>ER0rfa zck@GSMu8iFmg86{aR7X~2$o7QRt%njXX}8dREOj_b%+O<85;0n>|)(hEyU4*Izks^DLF2T+U z`}ux(R2)Lz-+>K7*jH>9i(=;}G`fAricV-@`=AxgfSz^`bN`_}CLsBFnR6skuBPiF z&T&x+S}c+kkrQS&ykC2P6ZL~~Xi+CkIWXu||1@~r5wQ?l>XbMDtU18Xz^W~F&P0~$ zv!)oO!P6mSiq&~=lzreI)oP!(sA{ZBfy?h7~u`GNXxy^JEETV zOH>S!@*w2lP*bL?=qboT(tYCQxjI~UDf)uHO|=6hGIq1)c~kgG*}%)e4znY)@|Nlg zfW>Neq<%}&ceSj7##00C_&MnQxZLMf;BKCt?}o8iWZ%c2tyJ(TJ{s4O{VJ>jBJNNH zzsj>%(HS$f;ht5;LqCATEX_Bk+`&5LE=T<1D}5QQW4{!PXg<8kD^Y(wJh5B!d^^cs zgZ+l$;E@;kB{l^|w7QSl9)r>xk>cBFbraublvk#GNVj9~44rcKhtR2(Q}KJzK4n(o z6ZdE6!{K$<>_I+krA&`BT5e(qK-PT^#joQ#A#7fW6qEG-r`JEn|7pk8N;^XO!+&_4 z^55~x#ahwSYZ194^0@e8Boq7FKj|&B76*S+qodp4oB76cV6m`g_hVl=sv=a`{zF~= zZ~=Y;i7{M(84BN~lkHuGv`@VHgWAHE6+>-T_y4DwzrX+g9Tx2X@F?say)+&4J?w92&H=iK9cb%%{Ga@g zXKxX*rYCsx4+9I}iBFe9d1uLZCtT|&EiWJb%Y5w3`T}HEK31jM{+M-lo)=n>wOoYz=0v``w&-=~_Zd$Lu!g8xz7 z0Xpg^1#hb!!d?$#pC1ijF&TOH9sH^A!%T*6AO*P&w_!C5$F5OFMTxu{tJ9D2yX8H0 z3G9y?lg7HMBt(G*fJWzNAvz&)l`g+9LPVSha_A$@7v>{*CE79E_YeL9v49VpeSRs`yj;f~MF1uy6 zcNkW*=Nd!p)RzF)ojDCr{!+*l>LNm??fYa2B*d3XuqJ7 zoz5OooTW>&>XOI25Adcdtd}_UfbD~tPn-U-zxV}%cZv6R5U+Fxnfc&eL;>$g8>6OD zWA$IvEdH(@Y}=o$g_rRNx4u8@_tO>^6A@(e@4%s`Fd*1&6yTv4h z+B##Kpz$PVvs`Wxv*ac_)BA=;IH8uZFb zC^-?o&jWiN$C@tU3sJtwF4r8hNb9pPr>Jp|Sp*(_CdB)R82{bC_lf!pY~j06!`?}Oo<^_(_P#wg)_Zi_bnpSpsq!K&a<%r`-P5d2%Cz+E3j z&s&;SW{@)o|Cm#Z-3qVJ{7Zv)@q*8{n5^!Rcr8}{=%01p@WeG7{G65HgIdZiOK=MpC~Zp1iX(g z=-W*?r293=IS6u?xD=jsZE(g+U||%}AQ`;8L@spS(^0+xe6~d3V-~ti&2%kz66U4A zpj24K#hRUk?pR#!$AqNvtK3)lzhm?{UYhE_UdCJuGz0j{lH^bnGqN!BEicjw?S;sY z`l0_I+mG>;pmlnV_F96F{;J6l;a>~BbCO>~MR#Rp`Q;+GZ@~bO2z;t~lBz-Gmc?lW& zOJsF?i#YuO?7o^8)FQqu7R+xAku7hZH>VO5qOdAJGk^LE5X z^6?Aq4;eiv+QKAcbUR3;U&<{SDk64HjM?QuOnrkr>~g#_pxtPlj2Pxsm{s6zkZ|~? zml9j>Vfg=}{o*OmI7y^T#b%E&y zKDS>q6tCevU7>O-v7UD)j%nm?>&H;Ki7eHBR96BQ9?bQU>_@oz;t5WS|X#(8=P!hpwu(x5dk zbpT+!#L$?xXu^4gyz-kqJN($hmSae-^uR``S=a2gMTM* zop@sXAQI_{JEbU7C(-x-@P}7H2TRO?=rdkdc?$IKuU{m`Gew_}t9*g~zaU=KSC**0 zq2BxjR>qe?PJr5VUw%wsovJ@FC{qh{Uy;Q7I`en~^ye>XIc&2AvJCqY#Lp7aL%GRn@-_u1$x`Z6DIeAf9}FgeP+zR>jOnPk7e6tXYx zf|eS{{F;)elu3c@4@y8Jq=MUk`b@qAzN5Yt?RcAq z5%z%``wO(ovbu3Dfo7M^8t5l_EaW# zBI%LfR?uE8Kf!r@%ovsV()4#5zz*;o2+lz8^hl9A6n?^VN&Cc*rr$Tz2)}em`^4ON z{UHSeawej9Dr!eX2XK2tuXHSk3V|`uu9*AW-$65BY$KqS5}Y%Y7~^?!#lSn~Gsqt< zIr1IBl^~I9d`6f?QhH6zNNBs#bAvv9XINZK;XzMl5pO8u2etkGhgVm**j~(wgXxC$ zB$^3HJ_4M2hMWQU^Rb={49nCrLT>zF_?zH`v+AzL!O`GX;Ey4nIf;Lw9+R1RL3F?1 z{zl$~#iHquNMyMz0S!E)T(($#8d?#8(|-#!g?EN50dR!S0{TU$n?b8~NlxwrP4449 z=*t)Vp%FEZq)#w^tByn0+hBg?W?{F+CG2bX&9C^AqpxAN;B9O;iZlS-h=q>98>_>ppfLaahreW|?fv^{aKhi-7@B71$ui+(GEo1Wh&=*;?uR z3!Z~4*8Xk|xC%X&BW|wSb809?vRD_wZ%8}34@Q3n173sW3#fx^^~CpJtoe?x9MDgW zDHLR#@5A#r6GP+>aI#xNdhL(n+fc_~@pE|ghJZTgc(5D-2|O78G}WKe_h5SvelxuV z`bWXd2wyl1!kORA5XiA=0-MFy#^4s#0g$j*5-SQK$h_E#ZH1_!iu`i?rMK-IbUL~!o_=&(RXophOte;Ztf?~|(1?9!*v z-a7bye+ORmfU?0~ay;rC_2?G%RyZRE@oO-U*aH5Zc4P47IGL=1}lAKVYlu zBX*9PshJs%_~(Y`OnaDj!HfnRtKgr1HPo)F?5dE8X@3DodPx0Y`hHsRjkY1f@b6#v zmp{ma%Y&lju=hG8;*sXPw9xJx!pW=VUsK#-E z>Pq$z8Ft1(ri?e)h)Tpn4AyJ^NJRAWvn5#vWG|f1KjRTZF2s*$Eg9 z;LS0AIi4-9fG%yPsTmlIcl+4mfNS5l)A3)Q%M4LvIyn7bpaGFpPukMo!F|W0Cj9H2 zp^P7@r!Vnq;7AgBJ08?a`|XoFZVmpOjvjug$A{dVtarkTOpodut>Je-22y(DbJV#E z+;xLGVi&-cAIG!w26f0@gX3Fywtfm|Dlndu;2ZOeodF+4G3dT2TC&(TR#*QU8~a3> zWw=Lozk$Xv02F31(zElRh0-oL7ck-~jQaxUOTd#(JX=LvtfOlvh#Ie$-y!;u*n{#` zlsSX=#fyxh&u7F>;bA`=TCBbfSUEX37wywl)KmF5n=Fj9l~JhXLq>jU`dyN2A0_F=dkHZ8^f$bKnDWG4yM zYK2RFm~VjXgg*lQH5)ih@{*2){eo}f%ofS0Exc4Uv@j#J<_Ju_kmv{W7{cqE9{nLH+K8^t93ZYaj6#$qo;GcB5=HKV4*Gp+y?S- zItIOzAQ+%$G{3kDi|}u1KlXZ{>x_LPZcE%lFDguhn-ps4Nzlo!AhwCN%)Q|I^#43n z(5PL%3OgaikgfX;?3#D9W^aWuzc1enz4R^`ALhtnb3-ZB+XwH%Sm!W;K^}Ba0p3m} z6exk7nQcC{CP!n=SJ-O;8jmYPmHQj$&!kC{ABHsT=YikrHR*ho|C0Qj-2%3G3zN#L z+*KImF4;%yRzv}JVK>ES=jZ+wJf=3R=4mZQSlcpIw1ADLw&>ph$aQC!( z6x!WyVZRmozvI7yz4m}2h}{mKZG!J5pae}8_!>j(GA~#gyaWzOTxtm9WL)RiG5pKZ z+91dDMLhCp{6ZUa`cOaQR5euP09t*;|I6N)09rZc|Nr}ZpMAe=DqE+B8b5HC zN`)-L4U>Ijo3YI}w}gZuTeeQtN+@A0gBzt9(stVyw^dq*ic0GL`ab907K1UrpP9e$ zJLleWp6B^)&v#!w%lmV-Ja47+c%5aR%_{mA#$N`?;3!wO@ANb5fl{Ij3Meu3qBzAI zH^|WKLH@IDXgvp_i9w&Z%~O<&0qpD)RTeEde?u@Kd@$hrAzs4&Id?QQ-W%H*g9!JM z|B}%OYUSOm`=gzM`Tf)zWDhb1nICyuWpYQaQ27`H$LwQokUq%R!yDjd;;iJ$U z+n($>*|(rWs`?!>v6fP67}WQUMjmsq4rf&LMw>BI9GKQn{SnJd=0%g<$hniZ3^j&Q z%KZ3AY(owu#7ORjf~B2&jiE_CQqTeh217v#swLZ5C9J6L8t*ccAXhBEf~Q^VmWKB-`ASR-(Pyr6(~ z?jH^a(}5W(*#ij)(ha@P4}&laqc9E!hk0S8uyR->tP$1>?+T5;46I-?n!4M=Z_(g= zBz!DKN$XYd>V)ZC~i!9bG0bkr$GJ`dhA2 z<)f^=s;|<+2Z5Z=PPFg^63TbdI_+6a6&1WV(Afp+3NEM7XNBiBt>md{FD-? zdnQ)SOpRwnr8U&G1v`;u?*4FGIub9%Zr9Y`gL0xpz2)1 zTR4e6RNzlSy1u}_%dK zreCA)jlmXDZ)Ds*@g|}bvQtTofO(V$){_u38P8?**Oo7Lv2WU!I)2Dg`{`hbn=gfIt89w>g-sr>r)&(Iqh5pw%XDX?=_I6_{nqJ=^!@iACplU)B zcR=Z$L#P#zP41DnVOO&fD|7<`4-Fy@xuK^*kG1kVq4MG(Tk0X*=`oiGv_D2U zWgao9n+2SLRGi|lfOM9|Ply6d@&7L&5C79o4RM!NK&>d9o*(|)28!n{u_11Sru|)T z;HlPFq8F%6nP6E6nuOELzHu+{GWxn`w0({HF#Bg3jTY;U(b>;nZ+jupm4( zxFonC7!`I7CImBsHsPsZ@9?T{LilAcGi;p1cbVntg~x`U1*Zl-6o2pZ_kDlv>Hl91 z)R5c58rJp@nMu&m^Pzp#W@Ww4yD-{c-{0Qfe9)`G{;XFto0Xu7Jkb6!%tueeWshDh zIUl~l>7fcIjUmLW3iW0PaVvBNt1^>SVfQo9+lqw0!bYtTcV(7B=LKtxCyTxy7z|;J z8G^mltwtU*;p1Si76)ba0lcZ2JW+IFM%(ICGM0(`d9%t{7iis8^eQ}c6pwrB;|b{I zW@XmEzqGo_%HSSkLvA&fONF;x4cd^x+x^m?F8iNg-}z$j_m|xPJ$1$pPYdfq3Qv! z?2^xCeg`>S_74}~`giLiM)h=ehQ9<2g~8;hf3O&Rmnqb(+DESQrdWSZuC=47ykQ3U zR;3;6RRZ^MDEXa1eGJ1M?J#(H?IW&eoPFsBQ0Q7)1-!r1xewXE*Ey-AXu~|>-sV@b zdcuLZ%|BeIopK)e?(G<&6?nJMn6Uw%D9zRIsmgahP!DU1GIaOr(K3h0tKgbfWp7?P zdPcOx?<8dEYRlQKs@b;8o=U@iraO)N&5*O~8m!E!UkwV{qe*(W+~2N6{`$~1xA|M* zC$yS!t9BLp`kwAiw7=`hHt3DCG3R(~WLtQ3UxuB?bq8X!MWY~J))BLzskYVHg8a}* zZ)Gp^+A?Qu^Q!aKP}X!yIV-CB>PD%rdJq~<(f&w+RI;j3#zD>s|4!`Ws@bx+tM=gi z;o=VR3#>xDHGQSf?g93|DNbwl;;(b!v7&b3Z}M4Iu6|$xtCg=cz2I5BEB&Dlz2I5B zKpyQDKwWs4vv*DRIM>FvbZ zoKfa@t@O8zd0uO@VH6KwYtjSr7&)gn5xcP1{?vZidb58}pLc%i_tooLh17lhq<#BD8LP4Ns?&hCk8+g_l$B8v z>pD+EzH2SkuNuJ3Qz3oPShlk3C!?c2J>|RjbnkHCV}*LScMK&fpiTSgz0rYF@1-Sd zbrwS2jxt>>3*e~~fc!ZyC_oahUDD%Y^U~;j?R~TmRO;^$V{VfA>E1+kc8k3CjOpd8 z)^z(^?~yPaoeTGU5xSa%`gBUrL!WQ;)#oBZAcJ>9WUmPEX1Eo3#P`9{KHBZiu5F_I zClDfjG_Cz)!|WcMYzdPPjg^xD&UFR=eu9yXNqkTzHyf-fFEitP4kVlEHQ^_pVGu}|d7*PVQ9#+>VU@;W!4 zp5-&*mWMvO90yKkLwP9aoyeTnST>f8c&;NF$iK?{ppZ1Q8cSb43d%)8qcMF*%`859 z?v>$MM+Ox+UBx?>g|GYBJiaDhr+kf!MhTt2k#VwYDA(e0l%cG6HZ%?;-$!6Od#!Uk zGzFz?F&jkXQudhL8Bb`q(w7V9bp@1qxNJ*nXpDMjob*Dq3be8djJEL0Z-z#ElTl4P zlQENd zY?dtJj5yuvLS4)UGoTf*TIrS0$C~9=H>;apqtD=(rPRi)vBIkFjJ<&m83$;*lz-G6 zbju(4%Su&Ng#DpwWp+lD%^&+yxKTe8E9aK0fm{vbY9Lnwxf;mTK&}RIHIS=;Tn*%E zAXfvq8pzc^t_E^7kgI`Q4diMdR|CJ+8qoYSSpzi!q^VVw40o9#tck|Mx4xn@gJdqN zVKMu!dRhuV|Bo>C$Es9Y;~WEafAUG8O>t{nf<){$F6gPy(@Ua!J>R$mxeFIwPQHIw zP!cut{v!Vj4g3W3MEb!gh{Bt}Ps(@N!7=I=%6O8P#ou(kcVq2deN4m%baA*C71TxQ zq2jYMJ~O$6jlgGnyi0*vB7mTUN*9xIh$q7NL6fj+P$DwnK_Nu(@QAQ}AoSmbJ&;tY z5k82dQ6tJ*DhiApP_;{i6zvv8uK3@`bCvFd;i}|8o0w&JaApLf? zUUYg`!@QD6*+?8l_#Vi@^t5{FharR46B(LJ)J5-Ns}L$|7o=*>1!=1|RP|TGJx!c| z&)KrbI!m5|Zci6@ac3E4Th;Mt=B-1vcwkuFJx6@zn*xcv%BIau&J;q zR=7x1u=XA0-<72N_wtmB;6|JcFXKLB&ud3#QI<*goP!KSHXrK#1Q076qKe`t?)Bteif_3$xjzW(#DlF$?slFHp7Y#lu0qj&%gRTWx|&-;ibZfq&oPRuJG?L~ z!7k>Vlo4LJydx=VHfJYzw2G&ZGn24)Sjz7#kwNNo z5}G8lv2-|@yA0Ql#YC&iP=26nQ*)$?PP*4g!>%oeKsLyP*?9$GaqxEo7C|8Nm{#r(E?d9x|5lMDu8dVBg=J8bQ6;S&!TSF zm$x!q@s(nwpC1;`OH{~R<#I{QKV(h*hbu9ePK*X zo;O+>m}QoMu$DrS_6vSL^_0bsFRjn1cZJsXE&1Na@8$&gC8?}^e!h+$i)#d1v9n=g zJ0y?(#^@opl6iP1a?J;l|DDLOB1snvVw4{UzGcOXjNMk5vEGqSqYd#sQmpS;1;}5B zs22JO2XV~<{rn&_?hm%!GoJ7=#?wYRdJnmV1C95Y=N|CeNAJVQeaxGXxIG50{X`Jv z$6_5teMVxl0t-mVUx`+v4{=6@kHPhv_Ko>%-;OVOH9B2(2T9 zG5IjxVa7e^MyR)`&m;O1NInX2obhceqBluX;buQVxJQgf2sK)NaUcHyiT`N)M;oL4 z~ z;n@jX^ZC(sF$G!g?bO&d`rKCJnZEYE@s#UYWQP_T{3T_0GuE9(L3Y&*qy`lv&EpK}xK=YN@QXg-xM&?Gz6BWgkjmr82>hC@8JNF~B zazEx;*^p5cP|hkFRn(ru_>lZpHokM`dfnXpqgKX##N0R37hWr)n|n06-CrQ>^DXic ztqiOuyEh?UrKD+E8QVdkQfMpJ#2;$x=gbH7Z{lvwe(rwmjZzEMJYYN3-D}wC931=^ zOQRX2!77Edqr1Zt8i3!icj*UCdQIkagBf3E&Nzr%KZ8}97n~jFF)Me~vmMd|k52qi zD2p)dLB>?5r!y1({oEJusp1+!?F(#Yn;aB=NGeObY1YTqbW&0>vHO1VompBtaS3zx z0ArHT8b!vXtP5#ywo)JfN@m2JaW!U!63|cfqrT6V8}*IY{9cXh|IXk@JrvWyw76Xi z)bG>N=1JzuW_R;3R^I30Gt7-~KU2+cvssyEv(`*vMN%vMzWdQ#vP#&9k~Cpee9F3y z9Pa0;S-uJ-mEfR}U%M=J#Py(9e-~%*wl(K{5G(FyhB?hB)o*0QR*35vL)k64Ra02< z9l_oliT+1*{rA{Js1CaJcgRgC#E#p&>iEn>o-jtAIo2OWk94XR8?k|2j9EL1u^t{% zYYU78VD)Cq>UwqKGG?0<-g3V{JcCwfiazfkk^2F%xsI5V=zW&(%S;~^kX_w+&8#Y( zHMxzRK{78ZL3opRMhVAUdodPX{ohiA~U8wy_CZ09L=l(W=% z+C9oIvoB`Fdz2MK;U_t}Q)}uvq}9|_b6;adrNmv&rw-?#2!W3so%dWG0$U>&-qb)|fTe9cz*Nj^8rCAc+pm!S8w)SqIG zjMsxi;IV3Xa<%I*-}FZI=>YE4b&;{%U4-9>#_M*0SfMSmTY>7z3@9IC1WWfZtW~S` zK7jt0bceaG@~dne)sAY&N8LwU6{gsK++xSxuA>v`{aG3&XN;rFX?7kPSl=%fpIeusqqmuP_Y3B^IsPWzbCQ$wnX|ig zvUN0CXsoPjtyfk$@~dQMBVxlv8)K&zNlJV1l&Nw-Zn9t_!%ppHAm zZ-ZR(OKxBBYWPRAJz9p%!x!D_#oC}x*hg#%nsP3CB`kLPxNX2StEW9J7n06eYlhcS zKg+FdRhRo?x8nfNss@Ayk;_T!l~{+^Bdp+r(h1z-mGp*bNYU4lwX7GIvwBAdvg4=` z*DzWdE&W!;sqTn4gPizZ>KoIr4lF-X>8SF9{}Bj6j--w5^2#qB+@oI$BXqw zAGr?1qzzb2c;3G;zD;}`XB%}17@bS3G1M0O9}ti-pmFzfD>LU5L{&+xZ&cM%Be@C^ zsymSh-5$1yI>mQ_tX}N-zM3I+vPzr^=4h`-&GP80vRaLai|rS!?)EVGJbKAv?926s z+y}h#0c$+I?r{4^3|G=-FUjzpY}F`-uYZC0M~sTasnWLd%KCC(CTSYATJPyI_;w~u@2P2Khh9jc@?3-)`yw$6LjI1+pFC^wz3esLV}&|XAtw1s+0W4&8+p`0HV`%S=NP4QN69{f*0WzS&K>IyJE*Xjz_bFI0WvM9v7M)FElQf!|#l~lPF&OmI2)3NpK9kQ_ zw^|ByTZq%$Vyuo8SZ&a1Qmv`lb(foppG?~GZm$4)QE1s4lXzP{-$^Xhe+^~IA@?r* z;XyCY816OaNv&*w?dSm`pfRO+2aTnCbhiWhZF*Q9G4k|0yRrF#w~n>yVdk@b{zOZq zTWTpQ5gDEvn}Olz4&T6D=k)XYIrFToHdamuwUf82P;*E(4^&gM0hkXS=J{KFn;j^O zTUkn(R9uG|=|W4a=gnQvT&j*n+IQAuu*bKl&9b=1-YD*7T;6Tp&FM(9kF>T~)x{sc zHMq>4VO18*(H&A{>KLtN#h!vq3N_k3wN3v{N_Lmuh4Lu>bFnbirMx}6F#7WJN}O)< z@MR`b&*b9`@-f=GBWbT4=q`kIbMhbBdB(dSV=ad!6JiIeq76@$14-c|dhhA(oxI@< zeYt%n^|;V`!=8o>MU`GYXV(?h8%c`n3e3q~H+d;|y3O6DL2>l8dqpzU%}1*Dbhj~h z^AA`L7`IY`PZLYc15YIFbq==m?ebNb{U(3nP9m+P0Y7aHX)(ifvySw_ms;Mzh`w0NJQwy*br=Ij)$I z|L#?+H|%tUT3?p30xl%4^P|OJ&=*9?Z3*k-V&k(!14UsKES8ItwWxM<0q7h?^1K2` z?(N8TkBpzkHq?C43JtX3o|+qn#Y4o{ASK?=y1PrPMQ(G^P-~~1!-!+Y=Pi*%tQ1>7 z`TgA5N?}-;DnB5nmGd_?qtRQ}xnX#YU-+x29 zT(6kp9d-K^DdYW7u#9Dm^E2;XcRepskjU9-zyn@_3;O$`Tj)PO( zgAKKAoy&~e0u9=dxR?8ZtQmfZ{mO5lKtBx%n?lg|#QREKN#7mked~_#l%>^8Ac=X2 zzV!-+QRl93mhgKext#;ebQt*L+rf33$J)CcKP(AwRsKrjP`Rn^X6A8)$zD6!M9d}rbnpbKq+4zmR+%vaERRv741>~rE3Vxo~Y6vf~j<89+__zkg# z823VH7|g!mj##Y`jpYz)F!(F%!4=k-ni=8`y}A0EwaikH3AXuGSu2L+qjzCf(9D7p}&a(hO&_ z>n=6k!Zy=9>gV!!GuGI?Qh*WJ*9le9-ytdgM|9}2d(9KbJ(z5uDs_;516iPhe9Qf- zH;x&iv9=>V7j(CJ6_Ld#uY=JZ?2HoZ9+o7oDrs0we+O-hK%j5 z*h9P3KPejRtV^CwVtjPk{Zu4gBgVz}T*P-INHG^`ZJA@Mp|$g>EW`GIN~0QKM*H8y z9Yr^6a%U(vbn8au|1<=Akl_n!Zzz8@j0vNx>4x>Fe%9WyHD zwt}b<_*BbSd8%4ftodFEyR|&fqf>FrIlnTRF4O&&h&fhVi6tUM1Ixc`apdrI9G{l!mGqp;T7V#;6ibY zo83LX;v5kk<+V`>i4yBV*$3;2gXLBBJ#vVBf^oOsB4mRv@6+1^_tFxzv=tyAoG;G{ z9%6+=H_E&_e$jrx9D|PUOWr8zJHt+LA=K$**lI3-`uVBWNG^3#;mdwXJHZ;m*nHM| zo;_u8G?F%cOP^0oT!yyXVq8vh@6{LCE2BlM6=zwBi?V<@cL`~K;>{!Nx%8xkPGPtV zO|q-q61hcQ4b`f>snTEWAEqrqSEtk~juw)#ay!+%IaKqh&K_5Wic9kix$BSnfbd)Y z@OXkY-YIs+M#bULAxQ4dl~^)*mhc-n^Sl)HaVG>%JB{3z!Zu;rc;A^0B|0M)h>X@W zoCq}?9)X->yw5&xx-rXGU}VgixKDz1je9~v$Y_~Myo z=-nClzTzTiR#*zHUcCcugJ$xyVE2;|PIBfOQ;kw{VJP)Qp)fT=GV^{I&nDDtI314| z6P-r#P3;M;rBKha_p_W2%kN(>)ct#j`xs*eVP+9)SaPR0B@Y`PIWx%ho7zLWxhGjZ z$^zUTFg|qNgZBQWHk6u}n8dx`koK#_XlPB>`c0!3wbgI~KQmt9yNK@?zHjsW8{bd( zDxQR*Ox1!O)y;+aneZppmGdXomGdXmb%L0!Wv}mZ{Q&yOM_fytX<`P~jNp&!M9Njl z^&>^E;W~q76|Tbn$F8HbMaH%ATAg3M(k8bKHW|S!Q-4de)05{hBI~w9>zO>K8GL*2s;E?0%1<3Gu6sK585F+!%`#SQnLlCOmsbGW}FI?RHS zDg$5{un!&y{qUHDDtb*nKkja-uZTyOYog)q-rq-}D;(usC4R|xDiTJ2EIAd&=eeM@ zYop@B$N{K0jQICsPLAF#R|LB}5$^t~=TO8O{fop4-Yf1!;^<%%d&Y`W(M#d0%*e}~ zHtx~ERiL!|Ui=m0!L+Mfj=`@US?%LCcgHaUG!I{OUI{M{74(ct{nh?;qET>#I0~g& z6(dXa_`MkKJ?-`lw=*TK4^B5OMZ>HjPWCM-FU5q=g7f_~LE3E)w1G0B-ja4zj4MU+ z;2N+IZv+WQrJG&<`nYSc;{&BMxF)<-yb@KUSue`c^lOV1!Ls1V@DEs^TpnBi#jP2( zoIo8G*E&u8M&afAoc>OAw+9uw$PIoca}yL>u!u;1bTZ2eQBZ!}bJ6^kJnZ5BD?ax= z{C~X~dzHT$Y1nD=v?LyNub1g&d-*#v6W0rD#T8bQZ8kZWUkkTsn+wljmUJ3*xO zp{F;r3ZfJ=gQJXwaDYLzlzixjS6KXa5--Kt^L0EMRpxUWaDGOzcVL#3{v__|IN@Y8C@!J%@+ zmz}lxyG1C!zmTSePH6V23P>c|5|OUZ!>aR?{B)8Wq4N~91}ZVXa7m~(3#>C#TsT-Aq;!d_!FY`0~! zYqeycu#bH~-l%;j-Z#DoYKePo$l+qRbtt>;2fX3N6U=$)S{HwR49vT}pq`Jk=HeeaW4y_XuW9l~PDvkeceqe@BjqfuOs1Ta^LI4jLB-S^Yo0Mr zcaz^E`E_*HJ`(!(Jb#S%*ZKddwcq6ZdCuFG!nr$=e*BIEXPEYWy1cdzYl1#ApS-g|CtHsj>b-I-x4>-*EF2w{iYFEG#Wc z`sWvM8<{auMv+YEWulSRSZks+)tYI|wWGBb+D3RfaN-GBYV;I6On4?*74r+DAylB0 zGuo@-w3kOX88GuxtQq*iYw2dXW(Pe*bN>|oKjDv3$1BO*TK1HjX_7J7Pu7N;T}u`t z3oz8H1=@WIJ}9Vg*q6$W`}?X*6`#y;`ui3(fr~U(`w(l|Cu$ww^ptTnnrCzqF4TsU zGgxNGWy-1U#7X;AcT73JP%bHF3O2g4cgoIjHLR?trw5Gt(VSQE9vztRX6b*{P8Xep zrr(7O$aHvLgb)i1!#Q1RCwpir#$bJbZfXO~Nu;LUS0O)jOLSu-kc~JG`+zq@*G5-j z?_*;ugAR-eKmIIk{x!*e=>I7HaSZd( z-tr&E>?8kCOU`B{D1id^5vZFVV}D{6*c>A{^^Reco0*It5oJe^k_UOEd<4zJD)>la zjFE;$ag2S8F^jP@3G{+l(6FBNW+ZM;BM*X3yPRe{;4kDo>RS+2NQc}T?kyjZ)=IQJ z5+WCXwOSCbVT|Ts2T4&a75%G{TAMM@F?p%AlyaySF4fe?hZEmoaf+SdmP4ZRn7uUf%$i&z#!>-#p zYY8?7x`5L9xYxp079LyppV0PW@%KBB_D9Gk$>$RwopnTB!-(q3TRA_CVCSLSQb;3pcK-(6tq@Jw z)n=l)YWHCsLajXIAMZZpKkvQi9qS+KALrJ!>dFeAg810PH|wW->*HIS)Te+1TAy%F z`SsyGsx)@_)4W}vl#3`6t(Pb8d@^|ObE5;WTtuxQ1zDZDQV%dT`xSL?q0x?$S*g9tKEN8{9$*ZCpHc-%+=Z##sR7zX4chb}U-A5E z8qJJZ-dt#D&A_{>r`L{-(5GNEWDfjawO3MmR?F=!>*@9EdU_S>2oNq*x;066CUxDx zEd_~quB>UlKrO6Kcpt3Q_|5~(auqr6mI+Z?%DN? z&#`WYEep_d7RXJzOP;L(Sm4CD50228SaPUOOV^k8s@)H0a`lY{#vp|c*uY%|>{V=;me7L!ok+?cqE-beo8tU)F z#@~{pHpp1=SqP7vzF+=HIqF`*gHwFCpZ>Ip508(F|6raFw~nz9ZZ_emUi^jGIBpgn zA8#}p#z)3Y;!RThHi)O0$K&5DUavKaTkzaZHsh&9oR$rUe?)8;^|>~RuhW_n?r^N) zHRReT*0D!^0@4S#5zS31_0so>ZS8Ompv0Q|&-MQR^ZCr;wNr=xz1x)Wt`( zdWy|5J=Sk0tx2|N%^_y&+@%*-ARzOG?7nfTF~G`m219wvzRx0^l;*M@6zm0s(?gUX zUzj!rBHvdmN({cDzb16B8d)!(A!~rQ$1QY;VB6)|0U~V*Y=We%KGq?+l7w8PpJ5HN zDscvEV4Ws6i!1bNto3v%wQe|So{hh-PPTO<4|Z^#w2?3ZoLcP9Np%_PQfsVE7H~@V z8q|49tdCRT@p!P-fD_GmqKzn~#f##ONTGhh{Ebu+%-6J|kT-=G;mlx6s$M(7naSP9 z_8HV+WuyU%jUru@U-1VmcE=SG(R-I4xgkygS^2BLX$#8sFy^nRb~k-6sGJ$29aObK zGlfkFijrLi!kakpuZ$$)@j-8J*a;aGhZXN$X4I>lA^s52*}V+OpX%@y-eDEl?(T9m zY|3cNlUk&%`@!iENeTsUo5nD!sTghDP`?0q;o3-KRAmmX%DMo46|?obqy_j#`RuLB%Oq{&Hkh8ii}2_P)9a1lMmKXteC=kRGj9Hix2gl6KS_D zYp$YMWa5kDh-BWoBedL=%!0*S4`4pD*h@VvZw-st*S&~j7}B>`EnX8nX+H)3vI88G zP7W(nFqnRqj>d3)d;wa>Ggzh-{2#zPSXds5ATvyHF+*| zdr9S@P@ldZ;w(nfE?=$GN;5$_w|1Wz3yv_bIe4odCb<{X(N%w(6z}zhyH6y2;4wRclwK9i#UtqJ2Y~XY?pPH?ZKtDi z8a=3?`$pUcnXctfQ`R5@E|5~cGi(n1>r?bv)>v!ZF76t+n!fo4Wm{vdk*n0NUJ!qV zw2a#It(^Y`J%(gNoUx2cnhP z`CD)J%&ws-X4Vz7ZhddpQs($FMo@R{E)6OfvF8x?1Kn_X ziXx=8vh^^KSdMx377Eu2^rRnHa2ih{*j|$BhdLb>-Lzc-xv!_(4WvNZl>A^`f zsXJNB?k1&W+bwcFPx7pK!L52P=HQ+Q)vg$dSb1HShtH-{5q=W2FhHDQ-I|OKm3!4f z>V1>6qs(f?-gP|%nwaWE(y7>YsWKG%r!nicm#eJSa4~Za4DL%DBnBh#ifp5s0Pea2$tz zz)igAA+MKgo`k-D^|(cHr}B`Aj+0lrM~FYVXUZ#GRj;j+npHVasl4vBLf5l^G+y_v zhL(B~`jnkOom5h6Bav|BoTk-|PU3!p*U9LF4Eq@}6`jthD-)d|JY4Zk(j2PZ$e(&x6Y+aZ?VqdO}7wM$rGK0G-4a8!0Kt8U=<;0T$`}% z3DE)6^gp}(J=Jr*^iuSa6g~$c!T1+ys|MJv=eU2Njc#(=plMJPe}+_PMK1ng-JJBe zZJhhFZ5NAk;E9z+w~&8L6o~!AVeGcI#*^clb#OEF3-n#q-RzckS>3H0-C`u@cd)^C1*Im@^6t3Nw zuNvSo*;6j++7CWL2hwTJcL6bPqrXk}l*_?#AuW)J%aSM6`;~pDCFO5*^&6@0g^W5i z4%ZOoI{NzO-Wj^m$o<^A2CHF(vM%~ro^^&^S9rA6KwrJRQ+$U%fG~H0gU%c#l-%$( z=v`}&=KYiNxm<2eGt-ptR^GRrvYx?yX$+-Hp@VjVdxP5niM1D!((Xu}*->*c!haXvZ8eI>EIJk@Jlm-`al z+>m%G^#M>S7kX(%Q$9X*(E3=GSeg2Rdks6oJACrUdq5pd@~m>H?6!8G^=eU**}5s_ z?rOAeZX<7M1c%r$8iYRMCi?#+ggMhvWA|7igY;4XVbusOgrlLJ&!lXXMAjvZ%W!sF z=ebXMuOu_fADJI&akrmP;qt^E+^bwHN-?M0=$>ud?5o*gGdWS|DVv_%`Mz8}AMMY4 z)Ehf494DjcP;svZ6IZ3J%5}5f1bveaXv@PzZ&&$z;#7t7@@MwJ*SOX3R~-3luU_YU z0@l4MsSuy|*zVK6u&zn&ky2u|P%~{ANY<*y_a;ss-q4s7HpHvqiR}N<(NfvVIu+@W zQ>llgR!P*08hyYkrsf}Fyw{cQ$tS#J^qvgVmjZqn1y+B*ESY6GVWr_PQAo^ww6N;g z{rz6@6YB#<)v3bqKAbYYL!4~tpYX2!^bS>*rs}Cip`omVUC8{|l<<=oD zMgp_Y+UbQt)$<|T_h$B25{7F2Q>}lUTZ4HzgATXS-aVV%c_qC_t$HJ4)q)3eN>?>G zj`RyD|Lu`PD@c9P;x=p>Wp(QkhvdAFy-R+Hn3Y7^%k5vf{dG|rvgd!*W76$V@I`b*qmY0B-C-7C>WP z$b9lBbkF|bV(6ofTIf4zsbH`+kJ@I-SN_?>8<7NYFZ2!XLhUK#3f*-hI`QQJzIWNI zFR(Uae{3PYyU?8bmXqrO_Du^R=P2#RcCMlvv||ov<6>nkI>N3lPZb$7Vhf>r6i3y$ zf5f{HDFa0f>FjRPMsO1QPHXEn<(xd+d&*nSpQ7q&)LoZ^8nMDt)b9efBR#M#t|ua! z|5xk;XW}p1rp5^G9qmEvlo{o<4cUeb@HI6!4>fuSuJ`3bM zXbo1he|_sk=&l*)+P!!)_9>CpY>XUiBRkDWzk%L~^`gGj5bfUUaK8@sMkczjQ3FGj z^C_<(IZ?U0i&>!&bcD2DA+tY}8PV~ll6O%tx7pm+Ny*)KDnVc?zi;(3d%tr?C z#Du1;!4*h5s@ISz>-HS162hytR86jB75~gT(LEH&g--5??m9Rvo!oWISj)Wm-dyG% z_1WrX-%^K};22-k{ATY9?G%S*Rne}2O7sSSoBUCXY+I}8V$-P?f0Y?LWxJBI7?mm zz{yf1N|{Sb+3hO(FvnwK@Ez|3Lqv+&rSw9Ncc+7bt^Nd-!anfJUC;wyWu zTbEY66AAr4!GTfrb_3;J;%U^y3eHR=?2Sbrt`|4aFWt#}IaWk+|uHJ`WC zp(ie(Rpz<#<)OH!mQg;Pc+N-rKg%6JniK2bFVcS$jpKc^=vCf2+e(M@d{IQmnO>*3 z8?qju{gpXfOoAJ#?iR^uv|XC1`mSWQxmRfPg0&vpxPwsh)F; zuP7s9!)v9W#XO^KS`Rxzy(jUxgWpTJ zc7pB$pbGhJLhU^4Ka358^ToqS>!_8rc62CpFrN2(e>z~0bY^b+# z8yXGu1FRz$_lizfkJ+!GyqMjy;!`OO(M)Pdafl8~I7HYg*N;HYLs2W2diAinZ~&5y ztF3m_UmLeZtTgF6xXZn@QcGyeiYHec{e|LCSwGu`WH!hP{wnL6c%H4v){Fy12UPuk z96kRu=75)Fjl?Q|qWw-zB+*7P4jSm=oyWY#ywO34fs{O zqp|do+h~ts6-PE9MKu?kCZ3P$Ga4@tWlkSi=A6M-i^`mfxL(4Dy^ODhovB$MYTQig z&-E_Fryx3?akU7G+~bY${z>kZxWFFotA0PjyAsZJ8e|s59leA6=f~sy@kSY?PeUhE zW3ImCa*E>5aE`z%)n#v2IBe(DmLAzdYFV&p0lM|bYh9QL(TuD=5-2IK)+Yy`7tmPaUrqN`@2+VrN)NpHFn$vD-= zR9@DW^8i1!-izDEi>z5rNNY8rwf-Q#bPf(KpafTN7s^H0glz0uNmeqK@n6Y{uJzwqip69gIR4#P}Q~IUOEYjNLzR1k~o_Du*n|CX9_@cLzv7a45 zQ{wE1d(m6#O!1o1Hurehyr`aYIr|4SGBeS4siX(4#Ah05-;`F zI;zjASc(Un%`JR;PuV`WE}<7g>Dj{l$I|L6GsIsSi+|DWUk=lK7>X8yn8 z6oSj-Y32O?6T}gsp?DN-R4@30ZzVi%6#~``ass$ob7tAk1B zOY198mK4^K0oUVXTZQOmj}@ojA94Td;{Pv=r^KI-t3CYx`PR?n|EpU2|HuFDWvk}+ zY5u?BZteZ~qs;ODe~AA-8V=rn3;(~l{>$_KFVg;7`2Po!)BidDe-rc3ua*D5899s* z;Pd<({{Jrf*U0}LB!3?NzX81dU!MQJ7KtUr|6hkb(!a|8uS2i;_w)ZBfY<%+;s3vh zj8vBY-w;`+9REMN=H>YRN?IYu|NrOu|Bco9_rKErZ-V|mGUmTo{r@MK+bi_{)&0-a z|9@Hj^7{WrGROV6{=bR*&=2eXH_(1e|GzO3h5uatzY(D-^#3pB{@0=Z&mlnUOwcd> zx&D80f+K>us(2NjU#tGVlBibSS)c+;03TpM@}yjTK5za%5%RyA|L+OgxjHTb!@8=F z&NXog?X81FRp&%>)j45uh8&0nXI1)G6QML$vu=|Jo74aME$ILKlKTIZkxJcH|Nj7N zvE=msf8F~3tDRp)|G%a69J0^vg7kGPlE5!|CCH1nMlx0HLtDxAXqX;{`&)_o{ODNp zD>^6Aft3QO{psUx@VjdT}l| zRmUN7eY|Xlm9C?}Q#je>Do?O(jc}94bH!gCXD#&4bH70<_Xz7$a43|vZe4MNvDrI? zv`fISzX4l^>Uy`+${Ovg1eLQhh#NOpUEMVEpL#yYJw`k#u8_~+-%^gG40rp-${Rr3 z@8Y&Jo--cw?n7Twxg4A5TK+!X4oy)#BM3Sz5qLsC>4PICDeP8BR#Vq!2 zkkf5-zuBGO)zoHErdfpDp7=j*bV%N=i}qf9p~B9x&vdJUG(JUdXebP%X36jI*e6o^ zf&z1h+z}TT1>EJCpn2nt8{v zZLw9JYW58k`;A}!_5YGicy9gA>Hp{S|4UdGa{B){{r{Z)e@_4Z-=+WW3l7t!2{=`D zmzCXdnL-!Y{ShkOqC|TPD|-XA8safFWm80D_c4LHDS7s=3>RiR>3+E|Npnk|Ih0G|2+QxFRlN7f>!rm(*Jk$ zf7Jgk@tVR#`#Jjm>zo|_|CiPO-^2fRX@ea9KTBWA@&9xD|DT8d|G($|=l{m>|C=$d zRPg_g;r{3H|Euf2JpW%w>;AI*|3LdW{C}TNIsX5D68|4diXsED+S_8XcpjX!yL0^i ze*^yiPt*VNMV@nU{DoG}9OpHHOVosCB@a-?iGf{C=^ub(T@CEy`}O5UDUt)n6-Kga*i@&EVb|2H?P=vDm|#(HA| zv+>W91yGU!6QMVM9nXYPU0^;L{NoBS!^uhv(>(_eDR&|5y6|ugCTLr~QJx`2PwuSn2(O(mKXbMC5Ynm`+yf^*-ANBu#i2uJYe_wI@ z_m&7Ka_8wiWlByE12GoaLmT6y%paBlP*#rj2?xh!k4%8#2T5mvUY1xs)}7NuPuW2( zH&XuhB?JUEoOAYn|EKnUbNv4t|39bypVR-}TmS!;;QtQ^_T}*xn04Z;M8Nk~h^OJ~ zFVhrfe{U&(eOCt+ra~s*$5w_s>>&T%*;_uK_AekG@PCQ_pIiUiV2g1OmdNXY6w=Rk zu}9f9ap~u;!a8}@9`rljE%?6a^)r48_&>^`cTWF5r~iMW`yf`H8)3up!Nhj`?S6kb z9G8Yz=Dbx7iC@RcXC}TK8%OzI&)n{JHwwYm$zTmrxu|PDY>_Lp|Mq+r5c4+1%XBY? z|DVJE|G$R+U%~&c{a?%f--G}EdR*7L))80-K*BT8^l#;~+Drd`bfW(ccR%iktpE4< z|B4c^Gaf5WgCg7dSE~R2XAnixx`TGlI4{Tl|G&ropN?kNZ%zNdV9t z32w$__OBWL|G!=TUpPNk|38QSe}?>b>Hp{O|9`9e|0#yT+*l+F;>F%V=CZAES34ce z@<$t?9m*Y?$d>wRozCuL`-k}dcN^Eq!-915v&pjEY|}okW0i#k;h+stG>Jh6jgOyBtPIc6R(uLN^&SyF7jg)CXmRTy2HG+cFIY|!rf)>v}J;T9*I71nxyzw z`TzfW{r`@?asL0WN&i2G|6dRd^_2|v5=-H>=qxgNY)YrS zu$(S3$N%r`=J@}UwLIe_=M-nUZRo=J*giu8Gs5^tZ=eN)`bNc@|{r?>QKd1kn)Bpc5{eLj|jY6ZpFT{n&RsAFX zKa2doul|4dAH@IvG5vob5)x{{HPpl?cTG@3#G4*91Gp6 zjQAe$hlq#8Y2tKohUg{Egf4Y90nZV?6X))U@c;R4Td+B}*2&X6%_P5T$ju+cpD6VW z;>Ld=XM4tfZ$BSvph9>k#~q{Ri5gfUiI@p0VRP5b0#gfkQWhs*s__#M8F{})bQ|0@@fLE3kuRPF!qKJ7cgdC|Yx z9RenjFFuz=VvMuayTDQXB~O&fPRzOjE1nZ0#V9dayhO_5_DWrdjltF406J__z{;w0l-WGUms{I>?Mq-G#PmB>S@N}g=J}7W6PUge)GKI^>;v0S| zK703{7P^}MTUK}_*KGUGr+=yR3vjEZ9jG0oU8G&C&7v1J;`FTe&T9Q=k+lC7+t=B%+HkOZ|mCglj zU*Eys5?{!%_^;GH)m$0LO0w$Dc)!YjfiaTutN1gBUt89ZhoEiK5dEBN{hvw+)q2)W zFJu0njHSS-;_qU*SRfX%MlNQJSuR$HI$9&GIk`HzJZB{Jqn|zd|B~cjpD*s@+<$|X zM~o`_#Ja)X9K68^$kTi9kHj>wOso`J1uLf( zX|a~4)zVVh5yU)FYp_@ReO~qh583*!k>qcqEFwh9pHZtnkWkJkR|B~kD6fG%<9|i4 z$*&!zm|xWXT%G@GYCD9b)zcblO|+(r)MlCzB&||D>MnOLaGQi`{~i%OpS7Zm)>dn$ zwbwdm9kot`@2s7ybqBTo&;D9{Y^`%iUy$O?o!-TQ~gk zM13reG!@Oo(V_*EvC}9xFqp2*F*4$+V56Gh%duVVcU)O!^pKj9 z!5T|SuVxG}X6r?)*4>0FZ`TzH%`B~}c+9DcR;a>ziOXX??Cj@s5gp7jqu98e824$@ z^ajq@psG`*j}0<(x~kynVyB_V4P@|t*@-#EM>d@V5SZt<6XBQRwTE>9uP zRyZ^dIT|^bZgw$K+9_6%>FSfDdYj5?OR3&?NO|}S7&=!3MZ(nw=*nG5x~UYD`wO^h z3o{6 zLT)a38-B4-Q=hIq2@So?Ua>adGsEaEy9kwDg)N=rT~U$9)_<8WwW-F(nhJ4pdEAF+ zu_+>U2IvmRIYmiLOcAs7LhUWbwTI|E&HV|TMcer$`%*5g|GpZyUmxuBXKXrV59xp! zC7ljhCK)fLtglsf=IDlAli$EO8A;37tfKtsJ*SoTwPI(m?wH**+bK321DQJ{GgHO~ zx{Iu5Z0gQ5T{8w4RUK2FuP=@YWi=yZUZ@bNpr*T6b-GZTA0rv$IM{YlbC3|{?e4{D zEKfB9UB#~Aw9`J;Q^~B8k^@9FZ<3)i+V3|sXRsJxp6^wpJ`Ty~3-_AUlpU%|7!4Uc zV@;<7jh((h6aTuXncp{T?)MFj_M1n?@IBUV9yZ2Jh5y4oc_@@wxxrH;rPEYxWXDxo zF-K3Cj#;FsS>#D(qif3JsWEy*P~9xkW9GyviOs6(_wsuo_{f++trv=vrbd6Eti!zd z=epR-rV_{zf-Vh3Z!x>VBu2RYdH|gG?|>Z|dwB+ePH$_N0#QO3M9)Wjm#M znSO0>dH8ZrKNz3b=DIgYC);Cbj`B~soR8v|Hz?x7 zTCKbknlm9vaXPL^T-D>pChtgz%1%$MyP2VH_YsEERYp#}yOEeFf25JU9%?rA>IL;3 zbGOeLnf1xn)m4a#cGuKkEn`$R3&m8U)R+ZE-6X>_rix)2ib`q*G$Nx86t0VRhtJM> z59n?6?n)|In=ZQPAF~=)F)PMwH3r}%NVCtxG)Ss@W@YdTA+hu{pq~X5K?yuKb6z`zEvR)B64TZCK?iHS(OP z+*jnMhO<7n#>(!ghL+E~*;%ThM>Ml)`YGD|!6cogR;##~rRM33J}xN2{n5nz2B}J; zT>rRxciA^kvwUWE>t45)PhWhVNn&1Oy&YfW7lqk%VPja+{w`3@0xG>)H?FZxh}Hg3 zrTr)R;WgG(vGRSXJU-KhPfp zG#u%i8E*(K)tg$`w8kfCt^UchhB=-6`|10WMAhBzQCfTJk{VHcM72s2r_t^bXXl2E zKiEf9Nw*~Z*>bK(T3Lec8J#>>C~!{MowH zdNtVOZQ1>sj z?*V2-k@byNS9e!;Ri_~c0|*RAX2>f+K~WF^5fm|i;EtG3K*6-S>T&_`RTKenji48B z-9f=6h>8dfVQ`Qn!;sTRk_?h0&-Xjs_fBAS*YADa=lh3m?|nK|u2WT~PMve=l=}&* zFLs0!K=VYrB(;zMT0yg$7E%iz+MfjVAs^ddzoIS#d3t3xkLRcY+1g#;x@x(e1PhGL?i$v`%MCWztCZ`lG&k6J>T)-3ysD;ajx&l)vsdb=2>+U!=Wei>1u0 zTD+R(B|S+e9s`YdGQ>G;6TRmpdy#%y;cQiWc6br9M?0;wc^6N!U%&~j(F|o^bl;$v z7@v>04b&%?OOB}*!?~%mreTK51{b}X#^L{o+YG(Cho%EpH4`(fjcS`a&8?zMaVbns ztSbm(oeZ(eJ&Do`wfhFid8judu0wTm9!uuU6BulGu~7Nw1@~z*Z#>VYCuXEmz@Aau z?%HT$qEW|wfz@@#+q6b#YCi?2^b2DY&0(i7&qN%OXbu~Q(nY+JOXsl1HJZ!+89&WN zo&E&uLip)A;HR0^LiLVXgkJhQT<;408A~xXv@n+lQ@vCSQ@#3cG1a^T1S1@^Faf~` zN8JYAh~~st%&ca_%z_~9R{^aM{caN#Eyn&DeiY#CpMM$~QnYL+^wzL$NdAhyC*7*J zU9p-O67C&uVf-b0z7XD@Pq;k?`+7ZLL99h6Y3ZhSGq5RLuM>20Xczl!D(3$=+|S<4 zevqHRyw;3A15NdQs++x$_rZM#Z^j`U;RSjOREEy7Sb>FVY0MTZrZMYv_AMJ9+y|RQ zV}d7w4L5WkOAwXj`Nqjv>-#Blxcp3 zsvs&R+`HLh0RxOD=&V6<1AT{5q72UStjAhwcWBqLH0+US3MklYZ;%o60Su`9j|8)w z40(qW^KX>}MnTXi_(WYTuI9tAPoH~n-xd?N6d&*pg{@2LL*s2V9$^beg@fH7`pUAb zz4*!=E?aQTZ({dw8lycXsG)9My{$i#-yl*0&99@!coTav%GLr<$>-VPN4`|-;CsYQ zzFV~QZ{W=DAPm1fo+-g<)n0T!%-zN!tn-)RjHcb(w)UVMzH-|8dywJ+wF@o_)FJ*8 zkE!YG>#&1;7@iDT5YRu(yv1xO26%4-Cxa&T1?vLrIg+h}+njUGJbS-b8}{COf0(z> zUTEj@H1|cd&_=z``Y}I?j|PO_Qd!0V%x@He2lK^3JBu$vn2Y>daRI&XTjK-t$N8{P zK>vA+{O0rMnZ-+c^TqkXkh2i-T-bBxBaJcY+OWhL+Ym68<)00G&V=`cfa_+lncHES zr$e{Rd=rb_mN_&Wv;3$`KeA)Nj!^oy5WPLl7O+M5=Y{Wicy7F8?wbzD*(kP*T@2#b zC$$Aez;(N;W}0#EY=~agfzOv0TlqBso!>iwCx;qRE1CsL1AgCWrS0y)Y)}DB#9hGk zN!l1|KS8+cmk@6+zXXpq_e$c?)rA=DQarjYfky|0YohwbbSJ~j10Te&XDQ+#ZASht zxStrS*j{4_5KlhvVRw`x`re=hy8kf7gXWuIi~~jys=peH*=BcPei269Uksxj`L`JL zObLv7u>?l__f%gO@QTV9e-3$QIxpfm4|KDQPP%7zW<;O8h?CWC)-re}9lSB)F33pY zsI6Tr{In9`rN}pkmn3mYdRLYW>Ugw~q0=t9?i#HoiK5&ABzvErQXd%TxGIOYboi|^ z@OPeLkK+9b=Q^_i&gN^boeqYeGzD_I+OBpXjXJQdqWPJ)Hxn08$7aCJqrE8g9jd7@ zN?p*Kh)VoCFz`9xu(Jr$7-fwIjg6*8Tr~-O8uJPwRh&VX(}{9kZk(5u*cC{Bm7=#A z@U6t^!Ny7&Y^+q{`$ctrK>U&jT@&uV@R4B+XQ)$&x04|bI1%2v+55wJZa{cn6y8_z zZuU;RC4_PSa8>q;ILMcYa{5YD6<;3#BQ#<^X>~9YoC(TeKCGtY2X|<6&O#pa?bcxB z{8b_TSjE;tuY<723Sg9_;d?gj3vew$|B6EwWE$|uNc=x3jP>_0#$S!5r!n6HGmVvSOY9c;j&TNIPSUlQ#mJw zzEN6)TNk6WKOjF!Z9y15iEoSGH5qAA-t;eChhKvM)!^$eB*T3rzNm&v@FeIjMoRIp zcHcqABPu(!1i2>RM4^`=OtM9aQXv?TJJpI(s(`+KR$VPqc_mR*R2MhOt1x!IH9Wg( zh;e=|1}R+(gEa8kg*$a$0r#tdNm$FUAtyA4>yfN4IkN<&2-gpU!^#(nKk%R8M_BJV zeKZfTUMR7^8|rt`}%N%K(?47B9ZydCD8$J?*8tf5P<) zu4h9jK>b7-<3e0qRI21kLrbhQBL6~M&6EB>h9SRYdYD?{-E)a_hHh*Y$VhSA0g5Vn<;g$iR5G4V2Dx!3d}s6wia^ zsJl3=6N^@T(=VY``taXc_4Vb^s_(9VB+G%BYWH{hvn0*Z&`tyA>LG9bb%a^iPyvAWAU9 ziMV5rh8){iVF?DJ1P`(&{Xc_$6Hd-J7KX9vfKJh`8=L6tb<*Hp3QMR|_`?`KxS`2k z1{1QbY@3MR5-W=zMo zzj6ux2T=b3lEJ?xmQy+KPmok4LjCrK$&Nyw{%9ioy@+puQY#8CSY3HS)`36K2B+Z< z0{EYPMP(-a%~A>d|6|bqVOT2^|B?P?DS(Lf2OQ&R@LF5kn|(_AS@7spBLAoDwt$}7jdMfB{2Ehb~~I0MRInMklm_XhocEr zf}Y3*hnpmlN$r^ortuLb@yur?Vn#gkdg29eyczqlnCmn*RdsYCtUArDpl%A^KVb9R zzMufUDUtI^y-3OvvBNH62xuXK|w_UBN0i9=5;sb4kF{cXDO*VnC9vDnl8DfX{X zjc&0R(MmVDw*I}8ZmC2HMRaG9MyY5Q(V68Ep?-_btVDKf3OVbI{dBhpuBLt(+BGc^ z_rFgy711>L==(LnIUu@;7XvJ11(FG*fr21ifb?U8KKm+rG3&(N<<_1U_1S{D6x*@;nZpSHlNxD3adHm0bxWCqad;ca^ueUePfbDT#6 zeo2h?Vj)Z}#dxnI+9=7}Yh>g@pW+tq)7GGsUe}4U7xD4lKwlUK`29Q1UU!FLzEhZE z)Cv=dwZf!-+X_=lKz2p~I4&j8X@GGMKqVNCy z{iuB_MiS9~M4u7;r+<@ZVm7{(-}Pe*Xs{K$_o8LRs(k7>@&k-fW)H z38QEgzB)k4QrhYsEXDZC3&-DZwMHi{I=CosFV0inc*&^S7WTh0`ZYm>VO!axCAPD~ z=-Qj;+!m+o^ahkax;QB&N~R#IQS}U-2Unqbb_Mq#}eO+bwQYU zUIUS;26`vlN5U}kyn&)Z;rDSBM~-)tDB)8gYJ&=DiWlkEU72u6g-bs2&M=B}=^mkS z0BX;QK|y)ci%MPOlsw3>S1?_AB7@p^cSQx2z-$z0K?=g zPchnr&@bs8;q~E2ndZR3?jV%wWh0vLUjSuAuq6tCW|KeIL}|T&)H?(O%U|5yev%?T z>ZV$Su0?b@T6nw>&D?WFJ$wGZ1s%VutT7ej=c;d-5(QihuJ;M=+wpTe1x%9qtG-fMUtmI ziBKhHu4vYZG(M8N&|jl54kTj#D;nc-H`31 zS{fQ*X0o3}*z7EL&I5xCVA2A-5hep?N0gKnO7VMWietcrJ~XH!O^>MWl@U~)$H2R5 zZM+h^scY((GY0xCk#^w|;TkbD3`6?uH-PsT;g6@>qo_?~QN|`MdGOj$0_yd}wf&w9 z>r)%C2~#BXl3E4p1tPgn!VuP*;~Y*r-pS`+}vOiS zbp3x$`!l}59;HY}?o~AfVK*8sV6+@*qa7)I)FU2jaaWiZ+>P8-O9IqW-|DW#{waxl zRSY}q2!HxCX1u_>(vGlHL+mY}okDJ6Z3b_@mE+^#7rd z{_k9ZzHiI=YXh|j+6P)(o2V^{Hc2d0=0NXTX0VuHXNw=GJs$ZVKWXs80+LrFI57!{>f~68|z}O;B4gs6R&QAL9Qu zDp9|G8TtPKPr?tya0ma;UL2ftHxgbfhR;S>nKtR(W(HR|aaj^~CGqwspTZ>P4p*&_ zu8L~|kp6qXnZ4Z~+=1?L!lA}_cdkpizvJEI?)QrD^9t6-%hNFj5RNpK121}BHg665 z+S}a-9pCl9*?GWgs|?^RW53D+K8~Bf^LjmRF~hvV+qi4smnX0CRxuZORt6qE@2&wp z--t8`AFheav%e1}IcudQ%%FmGh@ zF5V*4B?r3E3y=@ZQL9)z%tL#T-sPy*Ywkj=5AwSTX=2XNF2{V*$Bpyny*xP*>7;vW ztu2^8ZuUOY3D(eW*1mU_v+-^=@}|6^yp#Bv<^s%%xCkCp_QfF%cU7)N^V!xg?o!N~ z8(kZ7#UbGJbkvLHu<@85x?p}A?=JAZ2lkG1s-rn6D$fiS!H?Q!g-q`9t&ZI!Jy=(s z4-KOBW`>|WF4DXKoTLDI+$M!wr{oTt>Y!dUGfjWRyi@D0?J&}ux9l5uwmB~3-Cqw) zqjbBvogo*Px=A~PHG5ph1FnLZpa*oV24lXd6TWMhd!BNeV?;L%zd3khE&MpXTZiAe zeSNUNsb@FAjtk-lc1VP}KKL0f$vv!~zijT*asGilH1+I3?$vH}yD#_*#m|wb2F=1a zPIo5Vrncc*94=|W{~dO|$&&L`sO@9&7Jiku#&}LXB&q)KKmnpXwcEw*=Iv&N8PSi> z+}6@GvWnQ%`~mxvu%6)gysOy*a)_92YOk2t*avbOdP!H{wyu0A_F1Q4ufi(!B33Ae zvGR{$f0M*~eHZk~dzi!xi*|q)4yaz4_@XL!P=Db}q-%ROGq?~Ovg=@^Mm z6!RHlk4fz4ZI+1lWHH~@u}dz>?+>A-%CH2Lmyh1}TCtsaZx!x-i}ue2hNiz_R4Ckq zkYcA{jK3YGT*K%aOoFB(?e{tgu0aQ^aofmb37grp+Rh30!z?YfGqL1;!|w}s8$~P1 zWe7PB{GMW~d!(}bl29v(rB}4mk@hdHyd>nRFugA?*+cL{VW`1KeKqQTGxkEP&>I>A z@AdGFcpQZ7wnTNsZoe1Qm_q2Ec8NR^e_0lBrOBo%U>Z@ zI7@JMf5i_@NiFSLg2UKP6lrP4^emC4-Qu(i4hFxaz0IJzp|N|NeX{tDf+0Lrl#_qq zr6p&*oncrn0DG|yy!CEVuQS%coxysZs>N7amd37S9e5XhFu2;x#a872LN}754>3`w?^pn(M)N=NxIzInO~e{EUqGm&uAO=BL5` zyhHDmd0A=LWl*}x{4|RPpQ$oZuvyUfFD(tX49a%}KPBl|ou3S!6~uaIieDycvieA6 zg`&5(-xIlz#Jc z2<&P`I5KA323+ZfvY=@Ov%k~sgq_=%u|dz#tALd;PBS#YG_wWoft>(YtGigIgBDn6 z_V%*9bT3aE@2quJf(jKimb{2F_ zYj>62+smUhw4ik_(KodA#M)JF0Db_`V>zH#wz%s8tcOAGtpxvIamZKb;;oX0T%wPX zd$yvrH|QUIi@S<1cZmi|<`;K~_UoLWo4R<*%|33l=KaRq2wG@C03HF+Pv8incOB@%C4l=< zzct)DfNCHV_FmMB_7?bT<_GG(7ypgGPvhNUoDao&jgMYK!biK9W zd$iMe@V~xxXpiD@NwhPy&sKMh+1Xpji2rroU5s^0F8b?Iy*1$R4$Aj@$jhSszZe(s zwz6$ctqI$?i<^tSlBd)9;$|!_kk7T09dt)oQ=#e70Aq{jcj_x! z&=%CE=sV(%trF-n-g)qq{?(cT?Z_{8NBOkIz*x1@(Z)za$9_)qxkVcFO;0Vgzz?!3 zyWjD0vH)1hv;WLB?^)ota=?c4U0xm*heX_8Y)5~>h!=n%W9l$JkCk&Z|BxWuM_4ch z{6$#s5d7n+GVcNGbUU!q9pW4x27X^f;OTPm8Bm;rW6wHgoZfcQ=QMEdGx9~?xPyZ7 z_=UIiPw~`Xw>oIpNckkvUyoCqDd%^w+vhw^0)^c@d>u;cmx{{yhB_z?VNaIu5As7| zaX1?=tSsO1uJ@Snpj#D4U$XCl9^fQh%UO^W91r%xN*)6y{}bx%cuxcSzNVhy1=f@N zqD8X{m7MTx45`KZXui1s==i|(Ixt}haJkOTbLEvn{mRL6@T+0d+qhye&cd~<-6OF_ z=m}OfO% zON|jC4V<~W@LR(!9%x5~D>I5&#=cP_S@c=V0V}nGuFf`Uhm14YR9NI4pf_Xp>!T4x=v$Rgl1HPhlXmK8G#FHHl-Yenh39w!Ao;M1% zeb@S1fD_XT*RR>YcPr%O?$mJoPkW6CCnfu1Mewt*Hn(ZKB-gl|fiGx%+XriJnj>h< zjd6+oyfWy5HGOYyxwgWM1D`D>zAW}A)3}Q89gPL_^WbuK5ysw1jN>JQ=YaQCf`?6O z{x!s#4RP01-Y9pfy$X8ZYrq#?fH4_2x&SxOx}N4Of=^aR^ThstwU?M^#z_h3<`<#l z;YU^uEA)ZhZ0D~Sl{>ILd=}ELwN6DVY0;yICVtk>@Tn(4vK!LD`_0Q?$BJx-kt~qh zcZGaq8!3`p?n*n7$~D20fpbV!LdvVxAW^=Y&lFE1pLOBBuAd62;)oXC`zs+Icisxa z?z<%H{=|AB4YcZk#2O-!^$sqSFh7hL?s`^HJ?8!iZkfhDjGTiZO-wd4UQi$84uKS^z06EsQ4dS(?$8p*$nP7qlOyl~`KAVqdk zW{Q5!Q*I;oVY8f-gnvmH*U=D`semQz>4F^=(F=umb zLoi*QC|}9?m?4%$6UkjA6l_+P!2wN9biC6@(6OVrOAd-z|D83+YQ8 zHADRD?DN(`o)Yz78Sbo5$@GRE)q@5qd)$pFQ4p=hBqIlQC_C@iyWfO5Z;zk@qvK2tQ zz8N78Flo`Rx?NQ2(Xf_N-6_eXtnNgq=0iV@IFeJ5UX8+f)U+Y}29JO^pv1u>4rK%x zAA97vqdSmEVRd_dLJsvPxCzl-qc;%mxA>-{XG{{=Je3N*TUDM4s^U3$Ei}?IgJI5f z*iCsYr`?Ogoa^ykkyqsvMYNKAMqUhbL8q_1AkSh4`e2!YTlA}xXpE02?**%JU$7(dH7L*8cyu?>p zLQg1(9g1w&5Ppp2n3AKUnogsnB;TYsP9_aQ;*m@bZQ$%Fp)W)_MbW5vyznj3`1z?s zxX5iU^od>wC7LtDac2s25J>vD53aCc1?&u68l1L5x-`U#-VeKYQRtb)LLY!@gv+66 zlL$>3I>5XoavTi3nncM8-y~f+B8ko zK4|A8wWml=rz^tW1ui*bw}u)ho&LEMt8V8Yx>a_mI|2gjF&Uc}J}@7;`LRq$@Ni zNZJmS*J3wxS+rjljQSMycXwZiF9sBrexOk?lovdfs6~-=tikZoNn?)4ExCFJ)#GVRJi>e3^i_Mo!OE-YKLw=RNV8I0r`V6AloY$ilI!83w4le-YZ@v*oB9E+D? zOkpWzg|yD{L=O4rFDnyTV%R}s70Ka=^7#+__y2AB@3$>ukd29zHpX!}4Cx9Yh z5;HkSSUZMy0n5yEE>sy<@x6?d!|7146^&hHU=?G}Usdp389xn-bp`tXy}uUr@6};- zS-mi&@CK|va=+jDy`-Nql<|;pg*jgz&Bx;(2iI~JtQ52|+n6zbj8)dUiH|fUvR-C8 zbDlBTJfc5fK4yL`%l0YfUTzmA1fPNk!Emx z9kx&ES#~f~_L4*0GS)D62=;e2(9>8ZZ2mORt42?*`He+meW)9yKS&>BQC_dOb)cbsJ*e=vqf;WndxaC@dG0vC6_q!Daf@ zB1Lb27!7bA48KFLZIF)dbiFciZ)S{jn>l0MV~z@`a9KDz3_`0U<-F3C*oi?@SELP@ z0Z7&xSgM11NA4wLChZ{y|Xc=u;7Te$0pq?CIq9k2CP18NneN4N#iUd=nzb2+pUXMRsdZQJ7!-*-J<%%{1~wM zP=5xfsye|-&Kj)8-d6A99>ZGZgnc>~52@QQj|1Dk&&P|Hofg7jBy4~zgxoC`Ha5tL z$TqSu!q1Bn_W58ETMId=!SjRmG6Q(m5E^8w+hAK~y;#E+s5*f(+WMQp=U#7YhP|D1 zV=lSr)%=ZOE8hgH@xE9G%Q;)PknaoZYQo;n(b{^z9IB9sUjcH&3Rd3l80vm)GP&}% zougWbHcN!1#|eF-IANU7H{o6YYggyg31=f4>TCjlbAp#uJK2Lbm+hb-a-F4)Sr2EaP-TIPV$U4QFW3RwCiOv(OQ0}CaZ(^XTi#q2H16x zl?BuNudCMbs5%;!f?WQrPgG2g z`Hh?cQJ?L#hx(e(z0UGNu#vxx<8zYjpDsS*4FK_m;x6R;56rWV^CqGRZ*0Y2J*a`+ zF&K|hHZ0SdZ(3pFW7Nol4VTY_B_(bbswU&$3 zbhSAA6D+9ii&YUszC%fWv|2iy5XMc^DCV!#)5TiAJszxeP9oJ4VyF5=rW@&c=grE{L8L4)N5SZ6qD5CU&zVMI+VVlXsGYwJ8-{7HZ&UQl|(&^`%3&8Sr^!^A@3Kg zRhNsa_$yvNKmzt2fdMb)b@jR!jdk^UR@|?Ix@=Q*^>T={5B3Awp>3~|slk^h#|?6a z+7HcO!ukwYyFBbK4uvhPL(UmqUK}zGIlIL#!Fo&M*J2z1VWOAD{2A!^w*v>voqZalqb&EaeAuhZx9`NI`T6!kcs`5~+aDL{nB=Ni25FqEQ;)!>t=|{p zYO{Kr&oX8?o#n}(tu@P`e*c4djBf*6dchW0E%#-VzfLgAnPudo_A%Huq%oH+q!s=R zX`~wmP@c>9A7EK66?V-kU_90kyPc!rqID4m`Rv8_2!z-x_KEhgJK7=cHvc{4E&xB}V(C`a_~BxhJHfF1UtRxf**n3p=qiNK!+vC^d9Rs2=p&1&dPC&Jz| z(u<+rTm!sX*V<3V7vcYtSQxYqHj7-_Lu)lfYdy+;wyU`Jp#}r-=JCy<5pN6&kGp_@ zJD~U9DC-2@sYY;(#xjl9ei*BNM9*)AntZD0xy>Gp+HbRSkye5H448kR8l_%>{oAkA zXKEY9el&t|f@s8jruN%8q0PD1Ra6%0IRijH(8!GY7ZPJ`Gj9vqbelqaL2XUiK%V7s zvT3=^*>6*yrC5XwqSD5L18P6Mo(k>8{hX+GRQn9Ox)!%)>Fs4Fxz0KWyLy^`$hrx} z{|;H(V1q6nw&`|*0y)4t`$z|)@JIasXp@}+7{{2PS~v$#;}*_#K2=P`*`qte4)|~3 zJFG|em7oq_oeHzk4r_<8LwAMCx3UOBV^zx^Mqi=lX1)Y>^aXw|FF-jUZA9pcva>uN z++;l-_HY-lw*5QM%PEY@d$9ufuG(*<*|C7h0#I}$7hsq|9t58Xl%l+dan0CIVh^aU zN+|6w_}>N!h6g9r2{VcJ=o!;~#+-`zkN1HU#Mbg{mHhX?ZmWrW63Y33n#eo&6FK$A z7u8U_<%Di&K`b$6!`>@KA?XRk{py(CVJp^Y4Q%%*+Pjt0%Ar}mCT5k$r!D3W@{Rn+ zHyyrYr!WWmt~-fHFtE@I_WFcZM|zcv6NNqDexse->*rYoRwXe;Rx-w5 zgp>g-Tuuz)H^|YBtvwP#Xe@slwR;zHR19=dsxg&UM43}j=D#VT7pDTZq+)JP#VLiU zXw$bHl6q7y{$S*)b%L-@gx~AwIl&UOHpK2kDH3+?9%A>pdKppA%nQ@4fOJ;_);GvJ z;H!1Kf;A0Lh{krzC%SUIv)A8^lGB_-;S8}poL$nz9@voFW9-ot?owA)x^YFd? zII)Z8AzUxElTQ|#cs|}Etk8>X6Wf4mYU^7?E&WGP2lHAz@Q3E8Tadyy2W^e8_0hK$ z!m4ldRSouW>sXhe3=Md?k)yVY?eJ;q*V1cQsX=XX3r6A|e+O)Bwe`n2gt@mSFdg-E zvJf-EL*GyQ(rkL?;kqtb+a-Pe`AMU;q~cw)PGhV1J61pG|1 z7Wt=z{zP3E{!YvVUt<0M4!2BMnx!Dt9#95pz~)_@YUtIbyn=O;CqU_sG$z}RIs=`@ zoTE6?AZDLdr&TI2`yM?rxWIQ{Y@-gC-=h?&1J@%K)@hmQH76D6R7c+*WxbBRpBapH zOj(9yI+WfCXQ27Gc?9}gH?SqaIF$KK^n|~n{cYGcO*h7?`vIGH@OSkFN-r=oR^Vyq z`g?Rt>VYvHHixvyb(wfN}Z(U-o0e`N!5(AufN0 zJ%RbYW6;FETC^5zgzdKyFVe0AaUW8pTsnnmzh|Vd&3p_}qGx;Xn&~aNekgn{hmEYY zp!j}Zx!5iCp78@)#fO43y@Bf}RhCMDmQ^Wj0%G0?Yi9JEVBCzu4Rxd!ech;1oD)}D;D8kSX3*n{woBbWP-8$B};&pwG~FFYq0QQoBx!iOaf zs_nCUE=KZs{)?EaU&Poy1DWn|K@g) zoN$dBt3yb@mQ`5yZ;?B}U}55!op_#*QE4X|Ju!O6XuSY2;BvGbu&@&B7pw_ikO3O zO)!4IwSdvv81`f661na|`@RVGRlF;s9?)5~#FTy&{{j6X*&|}Wyk#*Pfgf%BmjR9B z@ZAsJO=$0m;E?{FHlHtd#<>;skM#aQu1BTs#e1?xv>L`_SU%sSpB2oazAz?)>>T8q z!sZa417)4XE3iB*OWmkSK_fm(`GsYfu3BNdzKLGG+GvG7{RF?&&j?aLnLLgXJ^DperX!a0fqpw2!E&T zZkS(qFe;p7EFcB?MRUo~kiLQ>Fr>R8pW^r7o?+xA(m5I&1#Rh?bZJ<(G9WBk!TuK; z4y%A;cUb4Y06g{!_d`_r$vA2_S~vY}y|S@O%hH+}>&)u< zNNtVPFt|Es9n=rb*e?fvasJ3l14p+N<-}Xu5wAF}n!PX+G!?xtqdbCrQdh%b@`G}; z`h<-U56TB+FCK^#VB5+FJxC6g$J88E&KQ6-@0FlspO%fo*syYM4FZ4T0mNv|yTWI> zdP+Vjho}tsidGt&ts$zkD2;LR9{R)}gz1bPmaD43I&^J*memT=s?8shhTlRAmJcAO ze6=4GBGD*t<1J8z!SZQIZpp8FWupXb;oBbbRtlaSSYx=vgL6Cuv+k8*p%VkfXNHT@ z`Udg7yuZGaGc`u0sS&^gELdyOA1jFPEP_{Io3b?Ti!)vWcAvZw7H4UFKTtBi3}#BH zKY{!+B_WX& z5FF-)aQIM_;h(B<;$G)U@NVX)hvnyC+xL^d=vhv4o@ER}A6TUZ%PhwZvYadf|FHf_ zD7|BlkM(79uJ6sIwe?btTwXz)d=m$3_ORS^0F^o0&P)RQlI z+&b)34(q%ov>d${mZc+G)?_PsJ?vkv20wcwds2QV9U~4sql&~E3Mv|VaoNEy&O^`_ zKjS|j-$AN>RYUdKMuyaN>c3mT$#@#}rTe0#N9vBADlC}_JU}sq_(eYS{XD+!lc|V1 zQl}^Nuc&_n?0$UTFIxtQ6tvBHs&_kjWKHy{dmT#uKKL$B?SdY`ebO`+sQR)m^4}JY z7)r6eZ05#%M{k6EO!cu}=N{0L)wsh`wBcy&x6I+ZUGSnYLHmpkVNd8o(32Ws^gkre z@V~Hz##cf$Hy83bdpPs&NSKP{UA!%<)VMSlxDzdLIJj(75V zta=<={wBPkm=1U}5&w|&na^32wwn zn}zdWbAB`2Hyh3Qx^TUg6Kuu^T8~m}Ha0sJc&>Zx4Orc65H-X-A&z%KcunN*@hSXc zwAZKn({LnUJ%_e#fU6;{p|~E94aAe+25eG0(dL%^r2I&Y1hxFM{3B}H30&|xSQF4$ z0c(JJZv{>~4%iUpP3L7rS-4~c^sELxU`~*u8i0qQ{Ehq@tnT8${jvtL!0WgjwZ0wc zm4zgX@QtH45YxhRP9jEMjHDmLeFz7Cw84||cvzk>Dpk7=DNxKRqNk+P-cSt_t#lC5 zi1xq{JCV-Qa;Qz%>Ph3j+{Bl0j}vE~!gBvVV6}f6tSoGXrT!_f&^tfT59R^OnQ^RWg_j6V3JV=Bb}&+Nr`o!rrF*Eh;~lNaMx7Ooz;hUuHEy&2T;k$^g9+l>DgkDSu5H z<{r_GXqhf1<8Wjl20Mj#cJP{0#q9t*G)lecyblcA0@O%%Hp#vo7_J3Q204r}KP>-> zx^!R_#ZBM?f1)ZG6|wSt6}-w!V4g|{S&`p_JJpyl8tlbD=0lirwnO)8_&2CiNAv=M z!+w4p?uWozL@(e6VF4s9IEXrK0{z_`T#BtW^A|eZ`Bv<_gYJ-V1o+6dnuPR%35}dF z!B*#K3HdC`fVHPM_PaL$OqzYb*Wt=mTjlhU`53cWGUAza@<1II6sKJr_xzCbu%tikhh z>vOc!jaZd@j!^TRb)d!L{yNZo+Z2V}j5s^gZTR+$pTU(*^Jk&|LsiFWWb6aidlsLK z>vOo*a<4-z`peP=(P#y#g`jV8p}Fb~{s{VbQ>6G>sKHboeSD%b1wJ-ff%#31Nvf6J zowY-V4>1CpB1MSMF-osvO~gd!E|cB_eBV*6tasHGMsou3KvDr0;B|eaSdpNaX=aQr z;CFp__?2paPC)0oD=bY*-U(XLpQ`HS&8Tl(^r1r`ExH@0MD6CO9!X_lPHC|Vr}z&8%j>TX-JyT4NDT>RDoRF)QG_>;i}Wt6iSxAokWZF?GuVn?gLs!^ z!=iyLEuB>ZNFeo`NOKee*$Cg=+JwB~Hl26d z1G|{1)+>UZR-h5Q1kOrb5j<#>)u=skj4rUCoB?Zf8mv)QN4UqW3h;T&{!UMG?$Xk6 zGPrM6h5Jyeibim~8g>Edz$V_~YL3&?`8>Q<1n*gO;M)|?Cx~EA9b&J-*}fz6s<28` zGTv;5AUVlus^uF(3=E!gOC$YEt5^6v2&J2A)iE;|^lyF2X^?XRq+w0$hB$e9ko&nq z_t~iZVygj8Qtv^hSD}3<&DB;@Xaq-bM(cxBLw72|euc1mt=8Dt-Pd-F>i`ApT+p-4 zxUo^*rsd0Ay*AEY&zEy?f&rz!0wdrSlVCN%7#vW#ivY_XaK4Qv-(ibfx^J@Sgqu}x zi5Z*hI$F$#K?5dcye$4p-Ut=XCU$Gs@0bPI(B~HX^x4)7{zdpkoWGfPpP**z9sSu@ zgM4Yl{jWm5I+&xX`E#w=nEB_x^=oT7xjWrtQ^?J3l6T14Wdqp*vYqa-tL!41vK!e= zIHm4()&Qr~b;b_$uFwg8)&9=-PTwZzo*&*LPIx~5QEb<@@qBB$k#GEHtW^jBzSBH= z)^Bhj*zf!`yrljyIR$CP^iQo%^{HXarddH$_?^U=mM;eYvpR#>gt60^<;NJC+SXhGirV7zbs!x;KOEK3>R74 zqTdm_73i=Q_VtBxbmacOd;ifq&HoZ=l??MV<2LMk&GKE$7{k;te#SoN{{oynTYV3_ z`>dOZ^Y2dbd)-sGVt$Ug*9{n?3ZQ$JsO$V)u*{SNt=GMLzqOAau)b5t*t@WUHxtsV zw)})Ok{`F0sh`c|s+P+x`8P7ExnHP8{4UU%OI4~_{9nt}+zeSt$=C3gBslzFovznq{w=$|9JviQk)%~qk>^poAL8>Q(Fq5gvIt+*oU9iFi^b*gTmVTcX347N#~|Fxn`?{< zu-IA;`$VXI$8DTZh9`DhU%XNCU64CS)bG!ErlmS@MWI!8@#d zXddhUOlfwcpARm^T{7X;nR@4zd($$rJZ81yk0 zhzr3U=%k$wJ}?&BXRylJs;|T9=~dIk9h3y5H^-szd^Pl|#k(E zfH3hFMk&$*y2q(2(;#KFs(e*^PLk=0N<6GfU2O3Y^aSG*DNa;I*vcq0@=tH2MpzLFK?+8BNy6}BH zsKkwWE4~dBJMk;l@@?ieeFOT@Y_$zsx7BK!SqXCt?Q=VNuoGn<0i7qY~m& zgw(7ee0Qpfpm=kF8=yT=5hs7rI%5$i&TUBh6J;`zXq^iBxdQ;z=(kC3HMW7HN#&{p zUf=DUwnxeI~Vx5h$jZtsgF@$c;XX5K^XRv(R`8!ts%fy%Va)Va7Uw|h@tH&Jp zHs`a@o9Nk{#nsh8t>E?`BRGr!T^qV{wIJn(%wK#jR@f`-&A67qwK}ATo9*v8=`lsW z+E~liMrgyYh42P648F%5u@EB5M@qalPE18=ycV8F5qbmgN2?P>oCWy z+M#ZO4GCqManL#FB+r7z`8!7Blm?$POP2R})2 z`wFv$i&*=hQMMVmRzi-@5Jf-83Oa@5fbNU29erel%15ozpjn2Mpk0%1LX7ILKXyEr z2R_F5;C{$DPeFn?&t2wx?|kXB0CRbc`z-2DtImTC@%o!WqRtk<7--UP(Lc|ou$un`-sgnxQ6K#nIG+K7(rV>F@sQ{zP%h_f=Q(ik4r^QeE7&^BYUiyZ ze6xKRyvrDH^bJ_)R0U*CsES6O+DVt~@QYaO?r1ojXOoN2ZLr9Vl+=x~Em+Es!z-A(a*=nX(jF#<&dD_#7u9&7~ zA}6Lj=PlxM)gr{B*ii^q_Yh*f8mg{praQi91zab_{l4e9lD4DI9T=Bfb@Jj*lX2OUwXi?3A1doG?_KLVEon|Jdq}^S~4J zHai`>8@wC+Ctzn6Jp~tyr)uG7gM>b~E*x>uTTL+>HK2K}7W&9iRSj>|agpZDI42FU zYT#?G8ZL&TzgF{eMJ{@9PB2dmN1M%7N9_tlB?DDL(u}jr5?4YJmTkMy$ zc%D<9J&V2+L2VasT^8^{$52uUI06d*mbljzHH;(95obF%B_r8|P@i2x`SL(b9k3UO zEb*#$?BA5#BW>Kl}BpH(ybs)f4={1(MA!Z0Q*U+sr2 ztOck~7V7gY>a)PEEnak%>5(4D26T=(MqT-ntZgg^^*+GA0ZcVN&(1^5nyeZiMwppeWRF8woLXd$ljq#xZS`mPpM_&43tC;(0IBL27u24>u8Fs5;sBso z2Q5@ro})MP`>EnnXns!3&l31L1wEi9^v`RF z7;-j{a}4(wa{LlG!WD3v;h^7!E?e;xgX>g4aRy3$L7oCetOFaCQQtg{G1DIN=TUX1 z%s{WKA%0R95oW7X101j;fFbpTY6x*so^q(4v;=kX4Q5lC4WCB;ih9adA~pC5*!oL8 zM|_PleCHwk`RMJlfy=&OUx}|kl0u6V>DK^^zry&Nft<1K3*Tzt?dxzPXg<+Wmi!7i zyp553kK=(hE&gi<=qv;^P4c5P;9*DH{v~P+bVNxr^dfS-0FEAPLjWu6;=m3%kd9sf zS7X>gtLFPUm3)XA?h!9*J)m+p#QYWc-te64;<-idlY_Ovs$fbeac&dDv9n`}y&^nM zy}(&zXM%GDTX?)5+CP)@zx4&UC#$lWS|E)a_(14>?Vs_R3w5jZ!wj`~(l#hSP+TNqqr^fo3t4;s}~ zOdrZ}tTeUQV$c+@Ko68-AIew|!>r>$<0*}O7!+9DST*QlbTyfa9j6>CDt`y|Vg9Jc z{50`AG{}a?cJ|4jwY*wZz)GQp7$UnO?>4Z@hcV-)V5d%jQ%j5qwcI+}W1wGL4^&(| zQC~cVQ8`53j(tLHu+Fc69(&QDJt`NR#>U?f{?B;tY(E?7!L3u|LffT5iltN+Mu5*;(x}xS>6&ii*@%Vc?SE``Z!b(cuj4$%NymuzlE-wC=dO*&UUIk2wc+g7-t`;^16XBJq0@G>+LBB8-KI{v+4{ zP!97;XPe55T~eTfFJjyb_4@-RF^4RmO;jJjwt@81smyv;bv*ErindA<>@#eXqq1Gj}<K@(t+$BaF& z05+9vvvz9J+0kIL^?EQ8R5X>F#-I)T=d0zblG?s(sG&a&ds%Eig7ytTYGhpv?%f{0 z6r@z8#U4AZO5^ZH*nj&T3RvPjx+bU&zs7eER5$=uwyJf-(WA<3xFIXXFLUaAlAW` z%4J*qk*f_YRibvHoYR7{XuC7GP6MApAK0<26#k|v&<+KaG5DwQyI|QgH&_xB=oiEB zx!g_>%M*CI6y8dqtf|HY$n;>}O(>&`@iI!O^oP&`QxIbu_N7(xOX2NJ$oS4BWNu|Z zZ~O(Ca@E7JTM9KD2iYNw_pl!LepjZ1`tP0XsD`DY8p7v&S)C7HrBJu(;wydulDb_aI_z=Y`km7&3wBJM|BW6-FHL5>(RO6ixQ-M&(#K&LfF z&$9jU#+#}<`rQ@ii=TwjI#;2kFsXM+Kj6P}=k02*jLo(7%z8p!P*MRw#+RE8(9Hf~@x|NXRN1m7y1v zhLB~^riZZ?kmO~TaeA(RtW*M99RPKn327?Dgk_L0L>27k+Tc^~h<*d0aW+lA$}R(5 zf{FFd%Rv>R3VM7NQmzu(6g2#P>@wIewEcV8WuOMiK!g20Kxmp>1t-dq47VJ72V%`t zUX%ky`#7<;i~2@owDvIC4~P6>ehTnJ4)nY(2c_~fdepVhklX;*6pQK!XzD3Oij|?C zN35Y(r%!Vb$Do~XF@KqU!aM7=#a^dJ(W=1ypnQhNM)v-|$GpH%XM{19A#B|L5x6rB zTv;9%w48VZQnCFifX_qhTsZ3=c1q6wanLA3f*S5Mz#%c8Y#YR!dca-{QKkXVrzilG z&*xhxDs(&A#Q)(67gH0-A8y=Vf1yj z`$KyniqR^JaU~>%QH)IJ`1gfA$ZqJ1<)9_2fa;>Q+G1ZPtMJ{{wX!+et+znBEunGQ zK(vIWWdrb1hUD~g>$GKM4XV9StA&fl%82?$p{^02# z26~{bo(73X0W_np46RWBZ=&r-sd9P&tIEqk3;!a23%s7H32a1d{1DEqe;KeUFMa@4 zDsQ|Sjs&de;GQPlatKD($XXZ~oo$JFoCj@K%|B;JjOFV30CpD7Du8P({xq*I{>aZb z*T^PVd345lYdK`t&9OhCIm-%8J8@rP6#ODvqNewt#+9LIURm@3L?E@5P55Ah?afc2 z)}PwjgJa^P+^6dCWBi!dfPDoWpd&a$zG?3Zj`4Q#1p2{YH86zCHf@Gj!FpTw8k3k} z<*jlSX^3Y9Lu4P|gw~MJbha}=;}Fe}g0f!@d_d!uaBK=@^$Yl--DS4kHkbgLJMZAS zA3gd!+$*C^s)jzZ)Dx_fRZ6F}Vg7Zp6xyJa_?sFESe!-3yOAEWE0N+H=+?t-hSd{a z198#wE?jp4p4ZDW)@f^?^9yiZG`rADkb;%bDMquzgRC_4wetNPSfQ0OD)G{oky3;0 zSYd})8*e9_n%Eh7zZv(dU=LdrqpZGZC^7ee9>*2xz+*vuTrcLOTJ7b( z*xA6NuF!1YN2{#LkY`NCQ3XeJ9JIF`2aVt~XwO%Xb-4~BVJ%?|iS{>?@((me{Cae= zC#l~kQS8T}pnQxm(s5M5kru3E=dpg%PHT)o$8~7kGiCv(>tl?n!0$+ZwL0c^lb{C( z3eei%Yrr%&%L6AG1O2Gxh~K50L$2o1j`i74V{@o`8Zt4B&7B_QXpGr+1{BKy?pgI~ zqdW3FgEjuFM|WlU*9J*R(7UM=qFF^YXSMhi1Q-wzUF2o zk3YYP8PL%@gQEg8qfR4^*60C{q#5950B0K(CQVbC|34w*XK_$$FpjGS#k;c32LVf` z+Lhe>=)1XC3+F=yW`l7MtI09Y!W^|Sj&vMVa2&(|sKJY1b;ePz!%vZi}vgpvW#mX@kg+!0J1Mv@YiM7D9rnqnRhA8ZWD~O?C zq9P9uH^*8!50(c$2Shjo$PxpTeG+z;yV+m<)jjw##tX(P27}hq5aU(jEn|!^2~WTd zrHujRV$A>!4=+gScg}S6QR4&k5$glBH?F@o#;W^_8ETJ<#zV=m@vpfj3F18VG3;Q( zaJL@+<&Z1R!_#6&6~ih9Lf7IhhL~JIiuA1$V+Wmh3DdY)TX77oX$mU^O63GAoYuQh7Te6-WbCC zKh{Qf2AmsR**+}H7NDvfNDtdONG zLH>oP)dIYmzREgzzXh=yP+vN)Lih%>h}s2hD&)*Z%o_Bq|Au0T64Ve9B`=ncC}H|m zBWyB#u~A&xu$dBCjL?+ODuenupCnK8RS1dd>yR$qOJVaRwho~$G1y2zFHyRku$4e( zXh>Kw-b2Ly&*KSr%tvg zhPjihM$o~FN;wgt<(;>qfDyNPQ9y1`cAzbTY47EL&Zn>kc+6c5{NYFANApM2qY&#+ zA$E-1I}Yy0P^?TFD;8_&W%57qH`NCGB}gDwSF-p@Ynn1eS;?+eDkFnH zOZ?t`gSE#B)&Z+TccVS*&v)S6#jO(VMZv3SVAg=l=&kl`>Of_r8r5IYU)JBzqgo8o z5!X5m;6j+1sftAcn9!m zPqDdP7VnG{S7QyKH>V>8c`BykFRncWYIbUi@rScH~0GTULDv_oz9-JyGU8@dW$guIRDBxuhU@v_7=bz7hr zupgQsS*XKK%i;*781R6%X;Bwv=r$8Ar8BNLgP;F0WKiD%R3KUKiGZD-;``2FbHN9i zhb|w3@A?{G%!jNs+A`9*&TJ1Hp}p3g*E8=HcdPdR7iiBPH`@SD?S!^BG*eh-J_!_| zrec-wmIH#3$U%H=(4C+Cj@u zyNm7t7JCF~I^qfM6AQSCx9_%hYYVvGyX_=(zIQpsMiR=l!Npb}X+GR?cw1nW4a~OM zi`GDUpf=FH2J*{fp#$F+b)hdB1O2i!#vASvy)q7Vc_Z%KWFHVcL~m`+TOs}lP`a`p z|3ms;cW5!_n$r0C7QJz|`Yo{Z_F8Mr@5!gpld0@pXw&DyK2Sw@Hw835O8JPOw2#U@ zr~XZ{@6hVoRC6kAAzEI^rSWzbzOmxAmSe6OKV)?Vs5-;e*`LH*|F?&{8ZJ{5BIBgAh$jP{?h&0f3H^-`mw;4L=+iD!PhFwmCecvs{d~a z$@7NzKLsez1XP%}VN2m{<1+N_Yev*f2~)`qtbg5PzOB7sk<9y6gbr};6gNYr`)0r* zf+KI+cVc%3-7POATn8|Pxy-F%&j2L8A0x$=k<5mTlO)1fMSIZOhgtpXap=`Kuz=qH z((p;4Qnrn;)rPmjn4w;)Znr>;4XD-$)_t;7ovDcV9;2-j#u;hLWvidCcA~mX*AU`% zSlOX(Ey}B*Ce3Ubja9)N9tS-Yf>#|u>o3i-fOB`|&24J&?SOm!D0~rCRK8WR18Djh zDE$$@)jb$n*_i)#V5WA*m0(;wvxB%py-T!L?+A5J+hYgcAw<1IkXV5|7k?DSp+>s* zh4qMdM7=w-5Y(jB7=L$YQ!E;bG(H{y&RthR(Ok%&N8Cq1&!`62ei!z;+pW&9%yJ(f z*BhW}bmn(~PLPMzQ=Y?k7hL~|Hn`eymhQI>V@GU+4r4DsnhtHC@yOV9m@yygu2Nbl zg%zN;I$D_t9ffg_<*^~`S_*1o zCFd#LH(7MufSmN}<6kZ~pJyKM2<$4gHJ~_t4cW&vVjFah zwnB?4-CIv(;Jy;1AY-spw^3{sucOwl1AAEq>fUCoPVZY^bHabpAq^uyVWqg82^@&A zwGs!KWNeo;{f5yU;XsqXKmV4kRo8~rYLkEi704L>nYnA#sTRdBm-rs^%feC2&y+z} zqvAMF7l{Kg&^p%elVUIGxEJ*}fF3^}VZceP5IE2&z6m(c4;E=f5)Sl7)r2O{e2-%X z=Y@$2{2{ap#+ZY=kJ&3?C~(-Z;EF_nT`@MooT4#}>GU+n`v~Q{YmJrM;BnaJePBPM zKtoz+>?hP@DW4A-B&@~AaXlZB08_9EPf@36v&Cm-Gpy`ewC}Vj>bB4}b$e(E?skN> z@NeW@3@~pi?pIqoAYZ&gjkw>2zEulCJJd?<&QQ$VMXBsetg-F2-)MJ31K=*Lopz^| zrDd{KtUdb;JYH6ZlyN)A7*n4eFe_r;$Sl7Vg=o1B8rUW_D!k4*FKifvA$Cd>^&<|D zl>bKkGW47Ef1Uhyk-AweR1c|V)YIyE^^|&0J)s^|539c{|IOGxBL9ub%imsYBi53L z`vQ-;8_~*pLAi>!dsPqgtM1GTxoRJI_CkBLy`V>w)c=9>k9ZL~^+8yB#sQB{fp$qQ zJ~~16y5>tLZIIX0eZzYjw)yT9DdD$}_GNnm8-|sRto2m|^c;(|iL~Fgvu6NfXMrEv z9@0@WLeRhoO|@t8o%Sp}2R4pKlW~sqrCbdz8M#7t`gYM8*k1E8zn z?gU<=0QT-;9bix9+fV^krSGs3L|qZ?04iv{wNbwo+#=cuOoqMVcyIju*Hxj-Xen$c z!S~-z$b?_)`)`6}xTkP?RC&tBVG}_1kMNaI&O}G=ek{( zv&YSyVvu(Pb7UnX%Fl)lA=fG39iLfW!QNyH_Ok}zvo!Y(qBYBLe*h_$!Kc)V;CdI? zh2{ai6SDq;ynP7YZvBiBenJU*&CRfExF@vU+N1s`p~=pKE)cc%8@mUu4Ovk5{|hl_ z{j?JESu8|aKkG!*&~>2u-5c^Xe?~#~2i7@4gV_Bc8xk7u=$O#|StHhh^D)bK6|_G( zpT*gLEL?gE2l*vOXoaBsvut=?lC2Q#icoRL3Ux(j7GkMIC4axzNWzEtU9UlYDJMBMLHB0Iz&FO02ZXsuWy z@+AE?)fotnhs5oE30&24p=Z(Zbnu->E@gyuT8GCjJiiS}bviU4j-x&J%b9VE6{+t) zZuxwOb`!<)nlG@sC`qsJpNpwGM8PPg{`l0DI5otl4iWWZ4RBGSROA6aJ&N{iwT|$^ zuz+<4=Yu#7NZuA{gb`FH>e3cTU&uwSNpfHFXLeJlRcKV`_7Ky$2;zV5^vba1Vx{;U z?DDM^oxDMilOTzWvyj4g8Q<<4EK3c7R1kYi$_|}_ zJ<6k@qw<@dvtxFgsu4rI=>NCqJ`{g3?dM-jtyzWE=ZSYiC%g?9_4kP|8;%)aF!0Tk zi`Q16zAUa~r0>5Ix50TD5AhEKzlD70pk*{8P6Ux9yB<-E z9>431_`bX+WNOMeJ+-dbp*)C?E3}#zp$EMvXdFzrf)#poLE8wyV!|0oJB@;mJpjC} zD9O$`&s%3?Jue)8C2LEqpx*@G81INv*cCw1!1)mLD99U_XYfW!F+u(>9F-+Yi6v4{ zSy6C#7Kvl92U>)(mIrkxN#l%3Dx6Pa-6(f%M5!Z+rcW{SErb}5hWlmv9}C$YZxt*r zzYQAB1oT6c9e@M~wVg0ol5&AZQjvl_@G$;ULAxd&eWw6tPePg?>Yk8ik}Lop0(er9 z#O0C!tB;~5J~Ba-HW?^ZSW?(T*aeG1Qk$MAKHWQlmEtgF+9B-ZVu1d0O$OQi`JhrA zu;)P5{D2KM!e37PEGbO?D3H_j`WI zTa0geNcn^Ez4+6eXSf4qor^nvm& z8;g10NhJx67@%HR$hzcW*Rlj-8vYuc3Xpvqv* zeDwsp)K&mYgvB#87uZP!Efo?GQTJ1s5_Bl68uJ1Pi9CZ+Y~ysDXdUD9R3y)DSi>M; zvqFo%eFd-u@=&%NHYE>}Osu<|AA%I#L7o?U=>z6|vjF4gr2P%7O<;^zd)z(pxe&IL zqVD%*Rkgg@5cJCe$OZae`-~S=-vyRF#e2aUrcqCj)KtknsDM78*1w3>pJt=PD;Ko> z4YcV)SSF|tK%l8c1wIvWZ;&^#%Lid68NsCT+`qQOm_EtA6kkdUbze$&MZ7%VQhbr+ zTkSZ;zlY`XC5br$sZW#qUarInTtR#fjST{{cy;Z^M zsf4#iyeqAv<`KN1Lclw}jBo#jZ!#D<0u1YSWdi-w@2M_>O6#$ z3zfqz{3IkG%0cJ-6B%PVUsx`5TPc+a>NEqS@xsUX2Ef1k0RBbYRA)7?lCRO$qxLGa zkbd8Zjj&fV4jlfC+C~kwuCC4vyQ+9`BBX9V={J`HyN6cXCO^;4EwNS2rYsvQabR#mXN$Ef+dKk zdWMlLMWTH`RzmKpqjsSnS>1z3-4K|6AJ&@}kriTXI_5_aKgpYe<4GZNmBrUK{tjS^+X2fKCWqKl{g2N2KVtu5q(d{c7c4ywa5B}yEHjh|y(sE&8j+g&KBRr$6Yr_= z(B8t`+rS7T&M<2<*6SC%G5VWw-HuA!kn)X%JsIGDy2mE!pX!Ib$@+e8F0O0zf(J*$sJNL|JmP1#efMA2bS{FdQMze;z@5o331Nug*zrn8|Psc zEfw4!5md)@SlA6CO`n+3_bEyd%2r>gA?bM)VA_;Rg=zRcCuv-e?-eeUv2qjx9 zXN|HBLkskI>mh5Yz1}TnbOIf6gtgvv(B6yN|KGL$G0j|Qt~IxrTg^$Z0)UnAf%ywfOC#yXjl)*|qbBwmkRGwEW84ucJ)s^fa@xHOt ztpoc&tGzSEH26oTZvCwHaQea)PaWI0$Fl}rT;us3gdLmKdPEtFbv_&3;m2#m`74@p zWPWP@3h;mOA%nRQ+Uy(nI?OPVKv{?TO0eonHmAN8>%}Pa)hNCNlH<>Y*CP#aeo}xP z66a@?Mjm5UA?*rCgs;)^#Gir9Y@)ukCmAax&x)>_`n1Iwd-2cbSv_Tbjb3`rxE;2F+KC)}D7YOu+6lWmYJpx>9iYavb+9VaL78a$ zq))SthmVK%g=6sj8MAezy+UK;1#>IPxKDon|6KkT$pHN_|Lb{ck3B)`<@1i@%?d}uK!I%6BD@qUSY32t$kw+McJ_t6!B1%nHHCCx@^bu;h z(M^n3zckDcd5KOnE;pOTV&l`ar=mL!DK3?fiFK;HS5%=(vPzTsfQ$vls zGVppn0XCv$BGp1>8l#m4<{Lp?@(t|!TlIaDE=%}r)_F6Y%*)%2xuM73?HHvmDw_dw ziu<|N)sgULtf;xHi8?Y--!g{({sL?XcPG-e#jJ^GP1N;TGu8!^po26gd0E(38pATs zKVw*?JlB%v+VWgSo~if7uzK=bU!HHUs3%XMC)cSd#^cgcY>tz!wO6Ve_c-u8&2p77 zEXB&U7N{b$PVFzUonxvJO0i~HkJ?+T{`eXXNq@4bI(d~%0q&+LR9XX>vUI4CVkqfm z6`3YQH$n}-QFq|I*Y^wG$EE&Ac(zW=59 ze`)^z%HY3Z-v~b7OgqQy1RCcZ=6UVB*8=*zH;J40KJT7LA57 zN2?7FUEH`jyc|2!AD|n!8@rC#c4J8Wra&L~dxR{o3i*%lQZfbd%Jh2=wxG_zLLB`g zdV3w(sNq+=A}_-r4)AdWe4vYdh3p>4c|XGUdC#Ga{qR2lKA#u1!-KH4kF?5}J(UjH zVUM&>%fdQ%X*0=43Nts^Ljx){)2g$a4IZ3^n-itFjO|E!y|AGpR6{g$cY()sy;cLZ4kAI=PF@2x)UJmf zXen9tR&aBALc+~pPqLlpU22dBCxZ)j1m$66mZ{2uv({enY9V}WJ<8+uzAnBNAWuD+ z=Ly(-+lIP4j~+`S4uY)&r@*y z2v@R;F~Nd{Ug8g~FFc?&1gB{ze9d4VjJB2MRly-4d7%fP_gqy_ub9xKM1MHDaIe80 zU}@8mqk%$IhrZ)lo8fCz6+a@*GrqD&UTZ$D3hu=Y+*M|DH-LYq6rjZs;{*ONxO96U zgT6=G15JK9SH+pUSyhGoyFKHBO$h7$qke%VCRdCB9Du$VkIG8NToa_eZ_GK7_qVPD#l`DgG^@Fky%7J%;yz9Zm+7SSSV4liIel?)|Q zsio9b>L_)UdT4vTmd&zs&xk2y^aENA;DwrTJN9)+ND)Q{y2PxfbdLx*)?3W*rY^lTXyG3d=X z3WdF^1`YWAS3y9MUMf@7r07eQ(dum1}<#wJWb7ZmQ))0)p;p$*m zhaRHmqD=p-%P>}bZLoh<{)zhS!rz?mpV^n;mEmp9qVOtM|HyOR4MYCN+3VcrK>jD3 z9VVzeRZJIC0qI|Y2hyp~zMLwag%!7{(1LFc>91+pR7j~~L_WxM^jo>nv;nN@wHx0Z;%wNoK1$N63Bjv=XR{tt_CX!ih2!73O_eFSgR2c-6@agCyicu?954hHiv2Sh3LDD{)PN1;{I*nH~{eLmp(DHW91%*SvnHzD5+r zT&poCj46PfYh~CNYXx5g7_?fv29L+m=ilWZc%*+iT|XxkpN4trbho&8@g^7{#y)%mQ9#;j79|F43> ze;yJ&2*x*kMamh4EhFfGKtf=gcvbaRyz#~e&4A9(tLk{; zRiuB@8jf+s*f>b`&l0ovIY2|$g5a}c3&+cHKEwWV0c31wOQ&(XjA zas7bX)$8JJbbkUy0QrvaGuX+)4=QB!oin4_%H z^3{kv}aGew<07; zdV77Hx_Eaws0jVMdTtE&nM^fq^A_1t!M}hN>)@SGue4RP|7PUwh1^YL?wR3(NYfs< zANQt&ZwM3B>Ta2TL6DzlRx#Cs!-vLz>8(*~Kzla8zO?^O#XN2gy_pBh-Jo}j^BVHS zm}|FS1%AuA5tNSZ(B*@tMeRxR0h8z-F^N6WIJxxub@l+wB{)q6hU8%WXLH?9MH59= zB63c()z_+R6%AT^1-z}E%}rRw_wg2PWC3GoixsymAE28mxJ=p_Hb`@g{h%gC)jXUB zsht(i$d*{z0AN@-O3CzoIq~$l;CBv&7TX|IM?QiyLlj+>l&f5?6UDuQGF*!RD`bE? zEiTP}*cyDwj=6s{4_QU#edZ0?P4E)T$$+>%CAcC>Hk!dZu}}Ra%5D|i zhuoQf-2LH_JKuiT>fsP%zBz#9Bf;Zo&8`A>JE9XL_qi=eMj9v!x$s8eQ+;DVIO9~_ zB%`a7X85s0>!o$%?h>@!OW$7=1Ki)i=G`giWAubS*tYOI7K5JgAK;g-=l|OGAA(&^ zoExx2E#?H|1IMD#aN+ofj|BSCaoRtq{rJ}Lagb(QLpwEPIP_J%G%_w41vIJ%Mo@}; zt+Cz~`#l;(B}dAo_5Xiz{$Kk3|4ID6{|f85-oD@HW%g4nMQ2@I^3(MKY=OMUUIK;o z-|<(;xf(l;H_)CWv?r>(pv+)1*(~-Mn+-|fFWAeC?0si3^bbzCv_cFd4#I&e7E1=F|bZJo{9bWw73}fxD|Kik~lC+#?2}({$D*c5t zdIh8VK6@`{CdGsM8CWVVXFe^dSNGThC3OYzzu`?zX1FD|JuN{7nW)6+98IBpz0bQz zU&n4zn8x%;@HU>MGlPfE!*1iSa16Fg$Y%FCBNdXG6&=!HO!riqWcf+gWgIkoo&;a$ zB={<2%?h9|MG$|+ru!>E>C`|GS8#U%T!Bw5;$KXM-U4Xepp9~N6*Qpf3aftdnkqIK zRL(Wvlt8lqT#ak6bH593IclfEA8aZt!KYHGPC02e@d)%vqwYGQ6~Rl&71-fdggu}u zVR7UzVm8^gL(03Y?(dPJS{C+7uF(ejsYx0$mMV9`yING+tS(b4f(AN5fz%LFAkCl6 zqDnbfJ1lL6jVEA-?s2rQ9D0ME%bWW}A^0zg4gXI)Le{UN&^|fC3PC3<1V0Scwo(5m z>QB8;i1-++24rG|Z=two_Xkq%$5r2QMUMuXdT23iFB^K#zYX^l_?6%m z`;e@kdCvRa-2au7|GJn0@Sr!D#VG>u{eS%X4_9M$@viV<`K@XfPzQ)7SG)_1ulN_! z0sfLQaEbo&uiO9o{Eyxj@IO+(|48{O{EuFL7yqNT&TCC9ijC|IF$nEevUPUr6=MYr}0#*i)nIIB)D4%{1u=7OzUeB zAm?I8YY==cYtY)MV(lzvlGW95Sf|Ot4_U$Yu@jZutn5*)WLMyEx*$Kv#Q&VBO$YyT zI{2S65aRPcXK2$U|8u%F6E+KHiW#u(P5jT9+6>A6lw3~7=jY78`ZEK1jKl%;LuR5L zJi!A6@7_I$SkC53yT&oB5UWHA*3xGnc~AVRT*#KDh`B*6i}+?}#BPUf^$nsfcySHg z+Tg3z0e`KQR;(b}wS2Y;=;?CBc_r+}Qy4dAckTlHjEKJ*B0grv+$ z-a~H)d-IdnQIGhaFI!{>pjiF~>hX3-`5%t;+Ys--TG_kMk0VKf_h9?wZPJId80y(X zbTN}zV`%z53!mT$yclOoTe|O91Dq=G-!T9(m?^MhldeX2hVdcR`FgP1RRCS{o$ye& z3zC}OL1MF^+XO9Yik3B&E&JMP4Bul-#1HTSn5!*E%l^CaKW9T{!Ff9aX^kvs;m?JY z<_!{qHE_OICg#`l{GXx!m!`g;%n3DsEthxU-=7&=*oGv;f1>@Lo4xOx=1^_Qa$@0x{hzS3|KnUN|3i4{e}?^^d};53 zL2GssbY}BGwONLco5HQ|&2PsZpbIeI!2XZ3(vkLmod19JfBxs~AN}RN`|p$g`S;WR z`tQsCNcjj!N{G67(xTQHNU)rj+G*!tPiqZ7%htk+$7yNXiR@nufTfpH@U=5UUXQ~n zj&B2pcBZqSi|WT8hHl&;*jz2nagZMf4f6H_6C%rJ`>}g1vKNRsu*SjMXqfEdkgd{F zb{@+4+S&(cjh|)yJZ%=%O8OPRVxk4?rN}<#ZE{~^&&zTCOIDOfQpeX9f5v^nWsr`# z*FA4P?)GuJyYp4pzj2yr-P{KuC-Sh{)eW&Etv<@%WDKz8iae~yON}LqGR<81WGwLmtH3VL?s(_%~oN?IZqS5Hk-} zN#@di-ChbW-ZL$-p+P<|o|SoW0~;kvU=2?;mMu4#yT-~xeU>7G^5sd(YEe5X@u;6s z%aeQ${C)kbMcmD>{P54p|C|R#k_Vm@%1zimTnc%Jsooq|iJ2anuFfF)l`3rb!RI~Q zkrc%=+`nVZgnh=DYQ+646mw_GIN!GGm!X-!GCoJ>7ojN>ZntwY-DYkpx0Bn^t?p*K zE!_@oTer3Que5*okIVlQ%g)8+e?}&xe< z$uJnw!?0(sE>VTCM&){Icu`rV-wqAnENK5GL(jrB?o=v6w_*t71b@^BqY$VWG%dho z@9kvRHJzIF4R(fI&FO`wt~l4kQysgOUE8i}XWI4cdRYHq=2hkyX6#ba>?VS66_Rb- zpr+|*HkE25Qmj)OscA^%aZR0Q3^Yu&f<6&mmPV=_lw6jqQJ4p-8xxHWkPoKBWy!A^ zZIS9_BMWlRY4#?qiIRrvB5knN7S<*P8mrY0SejiLJU2?!R;Tw4QCce@WdYvCz=x09 zA!y5!jrH0I8BfA+Cw_CKv`#ID;@NYL6wID75aa$G6Hg#WHqA^%3mOL zS_Yv0BkWFWpxu@aw6k!%ojqr-Vk7PLlCw0(&SpdHeC=f$wUeBuf8F_Cr5CbA%h%c{ zim`}ofL;$gLZDYSY3m@D8ZlG@@}oh$btR_LJ#okwBmDmZ@d0*z?*j@B6T^VLzYl)Q zaO-{e!eeZhHca~fbmk8bLwD~(GvY(>zB(-QK4LzE#D6r{w=k9~#;8lNXIdIssx1^t zVN|1v_vd{Z9%e1CfwS% zZz=bGr&ulM|1Cpmia#lBuTtz;+!-##ZARQ~)c+tT$;4ee2oDIm5f)=5<^K<Augg774nK^Pm@9AmKw?V1+FT zBz%bLt1?Pm8k+i?l`|K@hcxl0i+R#S>CpdJ zuimD^LV|O-<6DaA>5v9q95RfAN9zJDiz_IPu+y^I%i4P2kn0raO@jiMWDM8VDQ(!> zkVI+=n`(G-FiYMr$^oBkg8KQ|Kd&mQ)#}C+hjtTF9G`0FW5c6=F=bzwvad{;iZXk{ zhi*pr@$f813$=$O`I?xY6@zyrg-9;_bwfc7*63vQj&NL4%>|ZSpi*6LIndX1p%N&362cYKc{p^rDXw~nJcWo`&YsnD8AJLo@m$rzZGo*j@FfK~ zE#!(rI{Bt>4ol^_Hc(rocEQ((OU=l)ALF?d0)pDTZZpHST$fd$;bAWvGvg8id#slfYiR^%{_8F(HJMW zixA}gdcYp{IoRSp3!hJCc#5+L{v3#A|Cx2loD16fv*A48q%nABIl;FHSaVm?Vey&d z7E)jbd7Ib>`|h}h#79afW>Jp8i5$mZ!?Rct10G;tcYtIcx$qQ8j!t7^2+qx#2Q zN4=AN#%qVsdLC8|YC>`&6TFQHQr7P*LddT<&3IE-5+Ycdsl95&TnoI1A+|5;cQg8q zyg-*TX?~Z%6NjY;bS*Zb1s+)wsR>Wk*a4#z5$uOutg8w}$R@S1Lbe59sX`sBC1cFS zpf8uBklZHinLTx>(inH2Vm!pP-onNp=+ecsraDs^nJpk6xu5SBH}M15t?b7AW^J>* zKj5b9hj;BCtgYa%WP36AhnRao*R9p-=~MOdV!WQrCP8HI()|B5&;OC?aN}8wJ)+kb z*fVpZi4v3WQs>n$N;jyQN|Xu5XazlMPcK997~&lRSTn#Ft{ND(A!C4MkcK$)vLo6O zXl_Py50=|js|si%M7!vsZg+j#iT4AaBdpGZPS^dciwBuO(2LqCv<4Mpcs?v&t~-+Q zQ3lpM^01pHs2AabSy{*hshBwi?!Wjso^p7MUDXk}M`EcdWSYwHTAR%#7VTlyo zK*`bdXJILlQVk4JjRb`!2f4dCF=w4x%P5BJgttB~`*^5q_va!cEpYa6x`wAY)g0f3 z<}0$C_$p7U%7y=s(FtF?iTwJp!2V@&@b1x|0*;WYTq?dI+53b+p2S-GXCn_|g5)@_ z3Sv28(%iFdKTtjlAjBOkn&s%V!-n1EyO!_#RE=voLOlzl2=C zwf6Ek1WT6FEPsbU`3-2T&a&wH-7n)!qj~Tg|DL1q?G#vniDBeXJqoZM6D=+NZHnUy zloybeY#wNGrH}V|af%4=i5BW>st)|dFJ)+=cj9l!L7H6Bi&o=lMg?hTm*L|Mw8tpM zA};&}fBB>uL+uZ+=F9-DF$n7e?LYoI`oAO9=U|U9UxN*x64p>tjD1dT;p0>zf|=)! z()cW^EmCdj`B8Ef*AlmQwFS-cm^#(TLHJuT{BhnBv||c=G=W``EmvxNeBJ3=BBlpo zK9V_mi@9D;J16YJg@fVL&{>C`skaDj^cD?ZXTmT0G3TCeZ_(4E*vUbCs(XZI(wqCC z{H8p`IOFv4B932P9n6p!L9hF*d_I6*&ndL;U7(We58Kabu_aV_kJ-5!aa>*>@)+t;B_^VI^iuQLTto1_)a-r_F1N_dZ5OLWH7x1l>t zexdEM{SGv1eGJ$M`XkL)A|b9%O$( z;6&ZrL|GTt&Cdr-2uU%gTDq{r)JUxc7`;lZ2K#YD*N=d*?L*LNI;~#u9ZDK3Y)6!# zY>`^Pg|!YXZL62jAF(0`-=uYroCyzWQwOD#(L~P&4`YN{*=Qnuq?Jy~Gk;WRE+!>v zH$)krI%-#;VD)Ru$oiNMKf{1EK5ZX64usLVF&ey-EXC6XsYIuT-i9$+_FJh$X&tpJ z#nkfxTdDc*{@hN<*7uv#g3>`M#>yn_Qc+@C<|!@I!B_(;1Td5AHeViaa%eUds5Eb{ z2sk-cE2iZ2R4l>8i3GfksTlbajcI^06OHM{Al%PDU(nmHLW(xLf>Fn+Wp}mGwegN- zXIgda9KhyG`7R~k8qu7rCqsA;62lz7InGBCUDxX)2K@E7Jbg#t8>IoOS}22I37RkzS`$*FU7EWS&}ODw-+w3L%E0nLmYt_$ScT3* zSgrh3!#1+eV-Lv`$9w^0}-r*C{|-(+$Q!w0xk9 z6DXwzo}QOa+-TvARE6~?=O^rfU$q9QHLX8c8CE;kRQTK(XH9a3Y3WK8=d(};o8s=Z zYFT&Nn9FC?Lcfl?|0YW}U zU4Z!j)9Q<-d5Q5%d@Vo4qQv*87p4)iEb)9q!lu>ootpf1>*T#a&rh+b?>EV3zYn%c zn0kg0hmv4@FG;!BnJBHNZ0T;9qXJ6ELH?hEr?bv<%-w@Q2~A=7DJN*vL0N~QUo88S z3~iuBWZF!FAno}?3u$iC3|pggvuO-!ut-Pr0TWz2)jDQZadx>a;P>H6qmWGr53!0v zbG7}z*eK5xL7p@t&Ijxws8`c~WBcokKZYw~hZs}NYJRP28GX^VYBKC;NXF5Z&NOJ9 z%fPqGR>H;|7&CQI27Q@Y23c9ZNyelirXPBuq0C##>S@<-9tuwjO%M8Xw(N~2GA(w` z7`v*~8a~Va6rL_eZwkCB(7bOcQ#kUQwUcG_R}19&UDqH=O?D9G*R7t>7d>}ZP=o$X zH$mU#Zka}ofAOXlMqN_vhk|vymK-Vf${dQc7xnu@j}*x|J}7fP1^7m-uVobB4c!vG zNvja;M;t9%c|`fZratWz)H%z`0~{Qw*0%il=(p&x615RtEI#Jtn0iXaom2dAP#aV& zXy(bVvx%@e2zyS3{jAJk{&xagK`;a7xa$8-t%#wSW$0DC-2Fm_`B z_Mc>A3!SflHJ`SC3PUspYY@eeYeRo54~6Z-iH3iE0eg^q(3P_EF5t5g&5-QTll5?# z1wQ0V#<(7?#Ndr3$03+NJw>~QnDR8RK>AX(4T1p`8I4mF(6@u8Skpoaaol4y zV^P{VMg;lOORNRegL_&tYA|pxu>Yi0$giz$W6Z~UYKEzf^-5sQ5%1S-|C`3%QkUk! zr-{)+V{f_~Jx{9za@5zBvvqbb_sG)Q++gHo82;Q_804-c=lW8a+n>iZyt;B#TdIvy zyNSI{{5#U@*jAj*so~Xu-_wz5s&xduP`X<_?q5ej*n;9wkCC!7c(*_5e@KjHn&Bp> z8U7sag8B4QFu!TNJRt8wa!ouM)HcI7DIv$n3(C08Ajs@XfizYoSOk?%muUOBi`uS2 z(j|r&UNao5LK0FLoW?U*SGvy0u-037N(hjWv9Js$?o>_ZHoF-hZ)q7)2K4PLJe8ME zG{bZ7RZ`%agP^|O*2{x8`LG0Y3B6HChRtIa&T@DLmn%;iq*nYjw<=2VS7m>{Qcb=` z#h$u_O^|P^)!m(dny!-=i4Os*L*j(wM`D0HHD&sc(ao!4(Ra$QuJbV!L9MEjcpuS2 zI%*x5t`F31X9b*k??zcie>{AOeVRX$X?40akuM9B`qF%p8dC{c8|;~`(?3A1hbQXzxUA#I;!;G7pvU8*eRLx2 z5$6`KvUijBh~B`v)vM+)Jrhq=;JYEitL@$F9n@=hRlQ8_2&Z#(Z?%3i;%j^Rl-gcB zJP+ix@l+2Mv#TTjb)Kfdd#G2_>#Nj3y2{=@UIW*fo(eCb4ZIrgz}vvf@M?KXy9uS& z^QK^qj=?HGHdM%uaXt>;Z!L$N&VPqLV+%uZE0m;}&)A|+Tb2*5U27#heozO70>)$)*|Hd9(-&1(xP+iU7=fH%-Z3(=EDbVKZ-AyX96#RlZ`jG<~n@onfr z-GAb|G2MTkKsgafhh$i987R51UZX|zA+TIJfX&x%uxAyfhIIy6Cj7oRbkIPUGED>-z|U&(?bLorpYvMd}Vqt z@_cCanJl|_XHrk%26JQ%vLjZ26=FeQjyEZXP2of#l zD}ieiXar3*1a+A!b8VGRaj5%kq6~j`^nId~2^P@@a`|;i%px0ygCT!cBfuZ`$}$Kh zQtSI9@L|UG2j$g~^Z!VqG^$fsxg+rFbmDLH?^#(o?H&oY;h@21EAd@SNIu1D?*wsY zomrAbRtor{59^E2Bh5kApj}9sF~Rb8dY+P}!($ivq>ao;y-oOchv2CUJOia`d$nWu zf_KU=TCWZw#XX6#F7Dm?u*-=lK8#O?rblmQyfY)@uZZ=f@1Z{?-bFavpAsbv5B7~c z5+UTpjB3~SqWY|r)Zi!3I$9HNFbIcuMy84P#2~eJ#Tt?*ZxJK`pTHidi?Y_uu%1NA z+lemvS~pX!A;V+|{tkD9Y{kvOU!!i2U+)bWmaaVnXi2n=l6%c}O1$rb#QP>#3$(#X zYS70Y2d$`OW!coPh0b1BV~3Y?8BX7qdUoms?U;2z8@~*mu%nhUZ+_xU#8apGWEyEG zBlm*uzT%=>`LZ3wyY~!<`)o;+m8WLGk5(6ju)%K#w~w zFua&DP0&6q#d_MB9#EZoI7Ev`lCl06EZ(u*Alq41^YO91o{zoM3}`O|r79HX10EWu zEBBCe)GLF0wDZlht_x>aM3+ecU1mIRS>RtXZ+zF6Vca00%hfVh9H*#~XdgUoqaWJB zcJb|i5uZvbK@FMK-#OQkrCp58)lcN7eHFp71{d|qZ6#XpTwH)DNd-s{u} z%9QY2uR!h}GmL(+&mWg@H!J@BpK48T=IKO>AK*>^X`YoS=diwUjNKtf@`9h=xh|;j zZT6o4c?nm|Fs8|}{+uYQG_2qH_$1M>Bgz`A{Y7AI1!k@kg5gSd;!OQgv2`$NS0bC&D_+GE8Of`;uqf}ei> z_;H&PWzy=f0Ng`bdp82Np_=SS#1fr6BFFKrpgle;{}CJoPwwCMCDOJY%ja zY075I@e@b&Ga^I#*2}a*k**;IEq4lH{ z%1hScD``!PkW`r?LyzMhKE1Ibcn|*i8gqP(V0ohh8xrtAu0jbu1oOXGx-6e4%QQNx z2leX-eif(|!P`K&!-%LS<2X`&0_jOm&E?ytvIbrcau&b1?^^p?o=q=x+8I9$)>nCg4K=Ie<45PM$bOVDgp~0VJ6}gU$N_-oFyk8nq z*=_bNH)8mE;&@gu>2cckjKp}M9p0iu`~b<# zipep*OqMj4^$4I(U%CFTmhUTvoosdIHnvBbgm_wC*2(brKD{2`ZZXu|6x1nB59lL% zVY>{SQ=);$k=^$TZU}Y*>Eb zciyXAqKscifaM;3$3+|LZ{oksg6a5Q_ycE~xZCtAk<<_Po9A4)i;RIEnhOh_m0XQA z^iFsM9%(+@uWVO$DLa&%YScQU{G^=cEI(|gn74{^<{!i##pC8v=0n<9*y&mZ zKU4k9@0>qC{%r~F9>~kd?CphB>6+KDQn~`j0J3O%h4= zAG8;(KjJuTz6c4r7f`}U^9AokNY9lsQxMkQ-0A!gQe2~;Cvu#F<`0`cRHxHs5iI6q z!IsZfOL4P>;%139W;UlY)%vK~LL5<><60Bf3~`fr*gRw&g!JlxpyYAhC#;pyDHOH8 z41E#WWrdvcp|7Ag1Uo2BOKYvY*rYF7B%;t&Asv+@c(*tt;8Pn`1&@d${3v7qkIC3& z@S#`)+k2<^G3d4*Lue6nRMO$SgS1bI#A{YmJ;Nr7iIA96T(ZH$SQOgt7y3WBB>($= zPyY9k{O7M*{&S={0umcK=p(-0=CI+*!@T?p@<3QaARl;_SLi&f))H}l%tS%j9dKKI zxvbF!QJ8&tdi*^k5%#m>0+Eam;WC+^o5m$xYDz5TV1kcZQbveqtwoa0BtUnGOOux| zbl{CKtaGOzC)3nR4Yl#!u*iqOc_~>l4gAU;;me)=;$bn@F~`WlLs@R0O&@?KtAzdR#AN7Okh>TE}{d1<5Z8z&@v*9PZO1fs1YfNe2>YRUXe)Ag;RW5;@LKChp&<)>ZfwYQCSf7 z@5>Glu3Jq$6Lo^HfP)TCEO+3(qE5b z<}+kl?v>@1H9A6?jj`XO9VPby4<_0*Q?{#H;?1Ah>md2F4-!bDA>m4#TI%6mc!w`- z8Nmwsm>_OzT+)X0v-`<9+|N3A(9H(_mUfqqN-D=1bH*YyE8$+$1c1!R9OTs7GN%WFC>c50fGts8U09^<^ zH3EDhF83SOB0#C95ZW2itQSKmk}8Og86Q$TR{~PK^j|_M;?ow(1TGAE(1%gPal@PC z2rXrF@D%xl2KeJxyKo#o7lan?Jg3R={Zfe;Fh=+~@-yw~_C#lz-8Eb-JQG^_`yAMp z#O(Vth@TS@ldze?PC(S2e*R!^$%^zh~<7@%nf0SK?ozhC)99lrDtOv1o zIcwJ7VKLtgWB0Sls*SzM@BSi3ZS{=V7rU9$_9>iC!j@XPcicXPbCG=%=drM&mhK(4 zx!iTGK80HL#UP(@JXzJssMm9Wr-mJ1kgnN1o>1_cmEdOTm?N z=fBs!weI>~!B_i=QKsUjMA z!n(&AtR{=g1^oT7TqR#ws?yq%A|YG@k?kB)gS;hDfchfbP-i6td-}9Q$_46S+X)fO zytF&%6Zy)OqO#9&^=G3a{Aay!})5FTGOd**9_OSr$FOlCXONp+8=m^w?exP?)$oR zpanu0lV78!pou_u>1Qa(f8S?bHr_W~JqUQw5G&>YNO5+vW?)V5^dhX8$8a3SaRSFl z95ut$oD3YbaMZ?82S;5T^>Eb3aRZJXa@}t!-}$*mUxV7?fzwN6pOj_yM7mx$`rzn` z<53)s;pm6saU4@{OvN!xmPIlr`RZZWD|eOXd%x$C_1jn(aKOHY)X(MSU={QqGphGd zqxyM|{D0FJreDJUxBrOqGnixj-9m*OOHMc@jb!DhIFyX&^K_R@9pMbCLqaJh5dA+?H z?+)(=Z=1KuJLy4<336!9fMI%GjY76SW%EHtLLuPA3wS(W4$*<4@BqM!(;zIRVzv&m zYVw~1c@Ag+i^NO#Qqhu+wlWa*Gs1H4+=8z$b|Z9+u>~^bKOv?Nwl;nOg=muX6YefU zDQ{YS*lzU-z$dcBu|=H^x>3yCt?mZhq);sk6{=fAWl%}BAm>8sGQK4=!79{u>kZ6d zpzf6HC05+CGjn9BKRED25uY`0^=};4s!LEFoxDmNJ z^Ui{7espAaqSMN#kF!#uj8+EzO1rUAycB9)hL;hA_B1U+dqgKY$5dK5Q64o)7Ug(T zP@Kwe08jN1(9JraO;asbT8GLC?kh<@8B?t($WaDXvp=>f;I15OVpoGMsEb+c^3vjf z8Pz76QG1zknO9Cr)}FJHKn-H>7@h7dvi^Y7`PRM2y~tWYi!arA z#I45WdtYl`<0*%44{f%SMN8mrEWChs$5jc>=U-v8M4XB8YB;~=-{U#Ssn13tJ`!Fg z?P(4Tk7w->&ciW&m-#t+7Lcp6PFeF6-rD4z6=V6lcS`#cX6Y&>HYp z>`%;3ttnb5gY#3MZGK=?a#QgQ-nTm8{D#$spEuvNDq?ir zZeGFr!3PV~Hfne0=fq{G(K(s-Yvo#$b~S$hm;}|}T8yq)*6n60M&?}Pqg>aDId&7s zrTFt2mXlJuoAKXw*b?aXJ0MI9_l=UVwz%RCc_%O<|ac!Ia$mzlKE=Ht~NS| z)kYSMY=n*Tw%gyKS7R<=2bI+yZF>7<7|+xiza^(Ee{5eV(lEZMFTT#jr5uRWjmB-|)>kixgG!JU>J4JVV z%fokf~`X^?LhTeDjLJ z5Z_>?9^@}r1FXGPftL$R<21a|Ec0%JFQ21mIn$U?jS)=RXWox*G{o9xcENS9RfYc^ z@M)xV7#5lyz)T!qEd!K`x>Y#gr?ahl5PqKwzX#{f;hSb0(h!^)fV@R`$4p#L;W`7? zW4IpY_d+xN1iXHHfpjPN)xa~akz+Ym^x)jg)#h9Dy*sncf_A;hm;(_vSwi#W_CAwf z^FA{f@A(NO5^gKp{`d}l*j|J^$u8r2%zWz(I|VRn558?O;2S)DnQiPs`?&X*H_U7A zUE_W04fU>Nw|eLC)^qmO&`@+ldCZSw%#RM7;8vDAXXAVyr?mpBi&kF3?x_2^88zD2 z>EKjU5moq8s1NQiCh2OT?`oS>_(;^h9G@&o@hQUhcnvNY-Y^C5d@4r35{ycdSHy@} zj1lz&xG0+2i`O#GqRv_PN;NQg(!E_)4RK1e=BEYVxprFZf}Y-m88{Al@26FIV*#$* zJf+ppzP3)9HN;ZvDt-$bc(+y8JS9LoLw)YB+nV&vi>xzd9s7iN-0q^9`fSNlx>qz( z6_4zHC23WG^H0GWhFJHZsJgu;>#e7 z(6<>c!KoG3T zboN5~wf*)Hq+sk?C+fD>4DWf^a*Ohp#8~qs8UBv3oj=IyVs0!m-iEc7vE~;3wit@9 zRM#A8pFz)Vhesdyt;10X$2&HStV%B7V6^9}Dy|dc-Rm9ukANqiS=VXP&_aarc}7(n z6Oo2u2^-qVw_!$Z*9Z!{BeuZj$2$_@zk{phKEeFhRn{`Bm1n%FYzpeVime5QbB&al zT@*;pE`e9QmtZd>EOdM=6-}Vf^ZzmeUg2| zM;Mm@o{YdaBItOAM~&gQQmT)*0jn4vVYZI2XBg{^56$t$H^vzAdb=QWKZep<81)|^ zt&u3LmT91@S|&jPvZm1yGjxW%9p7Y|TtzMum#L|M_QQ=B;ymH0m&v#&ESSV#A8)(1 z)Y>LyAorbE8&a_f%s{=?Q+?#`DZT??wagvbPU{f#@<$E12)CH*DQj{qs^H(r(rHs0&e)0 z`6gy5HwW17VEipZzkQ``=Y;*Gi+9a*jNkX{&%oFH)Jhh!%qRFe=6g2H`WV6^t}Q;X zKA|;7nFw9dj(n-wj&)M*P}(b(t7El~w8h-wMQnw-A~Z{zW#^$zC4ZVbAAaGE@I0)F zYoxXMwU~hfIoI+->>%vbA29dgP5bRaz7Ksf0^E`20{$OFEcE}_`xf{rs%!l{d*;lU z*|TScTC1pF1Gi#CXsNYo5iI(rEk&?cZAAo2?L*sQt9^PE^`Q7u0f6EapgsD?MKId*aW^UFZ?fYFhSAm^TS85W1WxryN|Rc zSP?qfW5W;FUURZ%LcS`%xT?T7tHs!=2ae`PjejuNu0-sZR4^HJSTFXto1iViemB0m z)b-Z_!++cJ?0b{5Au;wfFO(bMar8?G1c>B=$xD-|#C3KX{)4^3R`?J0cQK34;!mQ? z384My@FDSe^yHt#@6|EoeGjAN39M>Q;pz$}<$WF~f{)ve^T$Ayab}%`IQJ>fK!1J1 z`fd2@(8YayygB$^A}r2xh4TWgzs`r)%Q4m} z@GbQU5Z_-b!7XLGGpVm*GX@Gf9Y;j*wed;#UrTKWZ##x3R{O514v zgy;F`5K`xF6LzDLipJ+eAC)v02zu5PwC8O0@7`8g6K(2VyN(GOak6KUJPr5(C z`L~>5&ZFka6!79i^uc|a1JAVzl>AM80 zakU{?P1n5|_#Q8HRyeOZtDG55y|dh@bE=(6=UB1xw^&=uW?%+wF%PN#EwEqcg4M9q zZUN%ap=677$ZECT7q|oO8Gk;0_!lpFRbjI;8|!RO@lN6<`5W;(BH=#o)dyX%d$Aa{ zwU=QJ^Ir1?uZB@1tb4F)dnM2TpSJ$$EDgTwQ2x{1`6@psm{nuV@K$2gsj=6Bmb}JS zV?Ja+J6Gd(mtYlW<66XmYOo(d4?o1$vpPg{Y5;Bct60hJf&~caZf&d78Tpt& zG?HqQDU7Na&N^^;cCdlbuYp))X4o_M>#WwSP1ag7xD#wtDf*lRwPuN+6c)@<(gFN> z&{c<90JXAIxGTi)53fTSaW?6oh99uEp^n>7k49im693D?1J+J4!EfTLAv10fZ=zn% zbg}!~*AUs|`&dmb2l^xAVen7HQFZj6cgKc@7~wz6NzUbCarH9y0heLqr(EKp#)h;~ zwqT`iMmxr1J#-6Yg4$|BV^=XL;in~Kb8EHe}eyn{e)UmpWsv3H2wte&hArB zo&szas(}$aojeEhaC&kwjS6o$Gz4kXhOsmJo9M|wAeI^(tn0;(#7H2q{Q+G53*5B7 z=3UQ6TlDMe-XG=N>;m}58=%M+@G5&QUv6*5ZcDjCwyWo1g}+PwE{7>E_bAra*Srht zi`{P!iWM)?^QJXEbNV?%x99%m_;;y%^At3`AqeT@K2`W_hc~x zG<*hV_^jkCvp6{ebh`v}d$yYI=eU=;L)>fJVQx?NYVhn=xmUR7AbP_Pb`4@a^<-DG zZ$UeG1t`V80{$Cj71qd>fb3vExXVNIJ0Joz z;?8A=-&WvLX*=CUz6tYZY`6p0*NJyf!giFf&2113pd=Zw)qGn~(@mgM#PblHMIS~O zcCGAmKZW>CE4+o!`8_5r_H7Ak5RaJ~WW8i^vOLLu95`4E_-Aj*@vzUOebbfThba19 zja>^~;d$pz;*k2^g8vTaLN$00+IgD>d%tFPrS*h3$d=nxN-pk?UAihDAyz7so*AMF zcg=v-Z@;%sVIrlxmEaeVAJmT_7v+B*yMBAsTiC(!WcEtT|I!=fe*U}sFX6u}^Bk5z zgrb=L-5`no9i&=;_}`QqBEKas!}}kL|K0E*{4c{w@PEhu63*0XisxM?G}pTuV}&?k z8U?hfW%>Us{#zk?30P+*`DKz>Z-7tN_-Eggmn!_T!T(11XP3&qjsG?Xqy92^y1zgC zj{J$-w%H?zZ?J1FktTz`gb|p*nq;gJlQ0DyXoJ?NFSf@SMoD(9{P*b@e~|S z0)4l!uSfd%V*eGDZ#K>;e~G`$AbtLGex*7-@87D*Ny%%>vvL3Z{&Zs!jveK639r(M{{z5moN9{X&PQJ~l-d*KB zb?hRaR`og^M|%HGa*}$FQ&C^K?-V&)#|Sfa4=LHu?FC-s|`N6qP^a zU&xmt-x&1IMYw*Ke+Q#-Pw=nfU&V1O?wgPI?COtURG<6&l`8)@T&H#^@ZV+<_l@^M z<00HPHpr;^hu}#4oDLSK_Z}PG!sxt9aIWfS9$uu{(+Zb!+JAAvH7Z}nuu2^};7Ir9 zhc)Ur0O@p|7gnlczwk2Ejz%z3-ERkfQAZ2s)K3EEbaaBzjOyP3N0lEM9XjuaBb@_t zUOk@$7pnVNFkID-$vX|I7ZZ1?`ZMPtbw5Ld!9{3SW^GaL&-j%VGy^+S7d}@;6>Aj$Ld>fw3XR_;!mCld2&wpZE z4x57)VO@8*aKOZ;jJKU~_5eHIqH?=oU88(`*wdVj=h6|^dxB@7^Yeg1PsiSfgF@FY zpxs>@^DzNctr1yaFy5ZAuc&-qA>I(_=d%>F+FJjg`ZvY@BPmDA3`gSsy%l8f-(JBw z+337v?z88c`;z;Bd)#cFA`5`h+-NsKi+Ye-(063)4C2%b2w%aTSR+=V2Sf%s5Ovkg zc!P}3L61%!;;m78&prE!O^I#>+U3&b?w9 z(lbtzyWiT6{llkmHdkbv{n!C)bhaQLrBB5-FKDqFX(Y35;l$u^)VCFNdO3L~+XqhU zUc@|pm%lB>VumpPUi@MI7tS-TPjJ{=Jv%3w^j(71l zlOK4u1Xlpx@^`^RHKN|bJ3=?lzY1#eEWFTrhkpqE82lNrR7M2n29E}-gFAxt!Pmkd zyfz#W{uF*M+#iSDz7JY}dp(YQo=WVTu^`2+Gz-E4v}X2iRajsbJG6g4MHE7K&z6{SD(y`d+|IOZPK?>v(nUt<<#M3BcK-df&jVt%z9DY8@Lw2L^S*aiotIH5G za3qLDHY#GsHv%8%Ve(W~X*xayB2%mAw-jxUd__-${XSVEL)DDvO=OFF3T%7HLphBO z{tsC1ljUhI6?Lgw9I**i%V&8`0uc}wz!EI-|FcUFL4u@_b5Lg5c-b1MY_BLHa2~Gq ziLP#pydH}&qIKN8j?M!AJe#~ZDe@jYuUL80O^9=-auBBtrKHuh1#M-|A?cq<=K-su zbG!d#Rm!w>rRdmq9i6`Zxhi#5yVU2RXQZQAk@XnXGU(bmIxVnkrdrK!m!q=n47*2B z?z|{gTQAgRSCqSNaDmFbx9$F2sDD#jwtv1#ZEcs@5jJFLV*z|1v^NFSrn8D#gf^1r zs2q8bHLz}@u1Gx||64~tjiVE%;eqi>MX>1}E-e{{Ay>r;`WFWjFATPe(%HV`^Mic<2vMj zkYzobZga1PHA{a;FVOMXzveUTeE7e3<}L2i@O$|jezm&O;rDXLZNWWL#F@O={RVu4 zjNqW#1plCE*!vo8O~>`G;Xd+*X$bOxpLGDXz#gQanbugf15DO2kYrzhjrLh6 z?G^DFuAYG_kg|gRfGyw|D3|W)#(xbh_6qE#q;WnVTq(N2gXIIyfUIsnWNi)UkABgo z6?La;vwCwtt7b~@Vm=^VQTu&v$Wrh=Y`ys!+TrhmXEwG=>Kyq@)Mf|i|2FA`<&mPM$co%=uF-pyYm+=lI{y!p z0VD&&MZ{D}9D2&S_BZVbkuou z>G5^SF)+$OcgOd|PoZOcjdIencBmDUaCYb&bn2Kf@zG`7xG@Nbj+q{Rx#<^YI zY?CiLFjS${s#Kb(tRMY(etSRqmC#D*s0fGq(Z3q`(Nny&jpo@_F?_Y_frDi^&jO=` z;)kDr*kjYJ8pO+b8uV==G;iNVJ@k14A`H&59zo2H66?RjW!M4ynYbC0WJ}xgH1EGX z$D_XSLp|ybL^?Db_2W=GkNOXf`Y{MGdOvO5Y7j?fMp0o&=X9eix4vom&Ok;H9mWEQ zcd#*%f71junl+SB41R2d<=j7`-Tkh;5%KyF|JSI;u^cq+_tr=gJ86izLM=xTMTkT9 zb4u8$N&sQT2Zcu;gH7{yT6s*sHvkd;aTU#)^C5mK_ruu*-Wj47JSxc&Dj#3YZUjvo zY&>Ip3YSc_RbKD+Lppt+5m%OM>O}q1%{b##$ z%le`FYmvtDQ4E`i@2#M_*;^9uhhw4`>1*wg<}@UX&L-m54eUwr46-`v>I?Y)m7Lt| zZv7{oX=yQg!F03m!iqC>ymnegN+0N9@P! zdh`P!8U2*~>_e*Eu`T`kz;mLL0?hksLz@5JZ8u(jE}nMJz@BkIg3|Mler>ySTsZ#u z7`4Cv+3NQ67bRL`ePW6;E^G?xLafewg#U`w033{#u-fd1dvscL*d)`kk6+a@OEf04=P9EfdFn zA6?ecaD+@-cxNYHwbkOVj~r(-hiMn};)Aj4Om%G$tJpxlf^C(!QhSd8XCOs|)yGeJqhuxCeJ0v$ zmKfoeo4x%d>=9WGS)$4qhW41?m!V(QNGURgFVChNIm^`}J;tYLlhONq#Ns;V%t)_*F)4 zzfewhR)-U08PY2tiB+1z{c_6}wI=mjZ@(1R(pHOHW>H&CcdEnAvfiBJ*Ru(-+Pz)9 z%XD$JSB$=-aZnkJBi)`YA+<-XKR~r{26^>Zr1tXt3ceF%)A(MGe$n}>goFOsE@q>B zY5r7($PetQ>ck+w67ODP?U02D>eE5~VuSj$hg`*PP-AyR*f$ynRDKV?G%*nGv|VP~ znA#`X*L7y4EVR{J@-rxF9HL;*7^*{`)Cbgl&0>j~W6j~;U#}vW!82+xo>pMY(L3nh zo=DsA_@{B)(@$eA)CW!SS%yAL_V6=`M$oe^KpRMmg%`4O(rgJ!Ssz*G9c}Ku3)XdFj*TQJVHs_{*AtHC|h7(>gfVNpBjIZpH-rc-6;gZkhR zxhfcj_WY@=W=$xgC;Cm#otSRbC3^UEq0X;qlCBrE`4Y^xB|+TA&7wRx(63~}<iY#Hs{t^mmRldXS8QuS!XTB9IBLM zq3##ZcF>G?{ulXmiKZjkkly{+?K56H9o4haY{{7$n(m|%L@$QPwz=gDP_&EstrWB; zjX7C?YX$y(QQ(h|b-V?Zo>QE|+p9e6>DTi@KUz1AGS-DC=hUCweN8WmFlVPYGsCq) z(^ae;5^V*VO5-3c2g&MC&!uHyRZbgpl8e!Y4T;IJ(3M|-mbGkfR98(0szT5pltFDnE-f9^ubTPMQpOvbGId|=gZWbr96dFjagX=I#7?XLTyU*BRW`a=gyN!iZ<(aYzhxw z>nez@fwr#VH-6~)HQT?`8^`GV&}Sy3QXB83Xh9#p!R;aI+pXb){Hg@eTWWjs9p0%L zG*-_+DYE@ANWDWvhj@Ja@3$}|AkJ_p!eBRf`!hqVfhbVNTqdM;?3K^Z_sMZG@6`yprC=^A`B9F#d z`|{?h{?Khz4Ss4B#&tSDW5LIK(0xBsjoX9abKFt%hWf7pbFbc|u?3nAL}Gf6jN+s8 zeKhB1Bi_BP4~w~Lp!M>u7^?ksdIW}_BjPU(NHSaQM`|y&j&;Oj>ozd&uz*#UoPUq z{b%e8ke|w;IZxL$Z7$?9fbG3r7BNjLR*3j{bZl^{h{sU(uNBl61^xhxlZ8qVkc#|u z{`tqje#SfqJRHy-XSmFOR#t}>`h{YeqsR0>|0(8)xk(Rmv^i`5Pg9-f!bV*lCLJf&x22|F$XCgyvFVhUU{%T)$I+Q1M-7K z=Y9QI=6Fw!i}`XE*Xv(>I2dct1sK<=zfxH(f@J*)$S7&d?KJwc7W`WV z{J|n;GVze0dBoRZjWvX*b$ZJ}ce+y(ZpXSl0eJ@dYhY`hhJ03^7~xm*-u`OjU8eY1 z$n55DtW8@nK4^{9Wsj3YgJ(D-D^?~1_!Q!?PL*ZgQzQOE$w{={(mmr6dc7n5yB4x} z9oG9LSl4N-&v2sm#KUMAnbx|xutk;<|A28#vPvntP|mPB$r6*s-4v$|@2J<0o_IIP z5B-Hf`iPgnx88;^sGnErll!OW%ckipAgH5o)@p-v%sHJhoiu648&ZdcY+SaoCw-Vd>Z&!r7y{q zQHh_WwefJB%Ov#MWWPM3y_#=>%wTl)(};6fnj~6G`G_wjS=ICAvRfj#Wu43z^RTxv z0{qzoxfJqu8OA`JT65d$i8A4Q=w8rIB>x5j@jS@Dsy>>Rst>6S9iwuw?#O>+8)#jM zex_b?h#yL;^<4K)O`v&78b39vokv0bycK$x-hK_!vXhpHT0%W;V;;0p)`S9da;L0- ztW^x}ur(ZfbV85s62-s$_nuz?nW84>f$j zNAp&XN9b#;QL1j>1waG9qbElD<%#V%bVJKk8KaM^0RKKqG&oP-tK+>n*pK;FqJf{} zx*SgbV;vWCFwpg+1L#qpS4+!g{2t_&I~Y^eB+w}>E0eCQK8MHFI!>)as|UT+avJe` z!=Qs1?k@truW7HQakUtCW#Of5dRwCL70`z+0-ax>WCkstQaSBuduOj6JWGXjYmWY8 zl2__qC`%%G6w9@0-h$7lupp~P<tuPPH=?ye>ld`X zPRrFEJmd$;#n8c}K|kBp9MI6ewdQD@*&xu-$&o%HtH*0E^O9`YSC&Njcv|c9I@URA zORc|K41HBaazG>-$NkvXBYL3UU9Xi|XOvrJtiL;YT}owN(EIV|_X6m_^*yrL@d*P9Vo`$s_UF{z#ILchyP zayI+fF?0x8f2rl}L4HP39cg{fwslr#Kx<{3-W>5RS-qTI!zZbJ&bD*R_vrVkgWgvs)F79hYnht8o7c>_Lz& zsGP5puZE;M_pxSn_u*kADnRoK%_67RgA8MnOiD+3UaYSj1rPG!SVJ&x?c2mu=&FxS zgAdpLYaKN9ZDbABjtuy?IvZsmqQX2px7rv8Jr>O!nl~-b!45|n(sO7-ycTBIAioy6 z+QpbdYoOO6eJ$z#p)rbhRo_P zq5lYDUI%&&j4h?p&(S;5ydYjMZD(bjRlKiX=oUGoBP99#aQ)+oP|NUCR=qVLqEC9x zla4-Dr@9z4VG(qg@wh5Cwa%Gza%JWS)c;28spxveeCFIF_)J^#nVLrie{KB~<>tOi zT&C8GRRA}(9Brw2D)dW2(}DK-%t5joJXbaN<0Ez3YcWqeFVagZ{a6F&V7w2d_YgcW z+nD5OzE111<9#L?yH&R4q1))Z(;c|4R8P_og69C=L3>Z7pyAUP=~6~vd{0DwXZJ7~ zfXWa*vj#Mi_AN-ZXuy8L)QF!iHEBOVmmAaS+&XDqtSOukXnhjxozy2tA9|#|H`Ya# z*;H5E4|*;W?{;)PPVW_T2k+P2-+=chG>QM3faoFFKB>TXuEAbS4I{ps_{Cc=C%{vY z>|yj!`xhB6o-@tZdm^5UbSp*9bDrnTQG1AbtQYvS@6a83UhGR^Uxauy8Y4xR({sby zyyugoPx7D-ITbXbDVz;?xzH$bs4Yooi^^99cn#{ zUP~dLsI~H7nB5b^9I|?9c`zC8!O{M~JnVVuw#$~Q`=_4PQlpPgdfN&PzB*b1+xLGV z=7`qC#r;Y;+YH8PC2t0;!~P+STdajsExiY(_x$LYv_|N6Bib43wdoy5&rW-$X}oJ) zj!bx**Zg~V+T8g6TMz>&HeEP~$VUBxAvxAwcjEUQDp~)J@BCZGQU8Sa|E6<1{{P<> z|DXIOn#6SAdD6aOJui?i_(Dv_8afNQY}yY>JAGso)^M@`n8k@!kH9{O;(5S(PRAZ8 z^c>(tNQXSrIoqQ>w0Ip@47-gN`8u&mEJwKmuy!|t4}d;EKyMU`Mwzfv2xHyQGtpiM z$+#r9c1C@u9wb}R-ZSyAgXC1`5>`N$uo^sPjXTUQL%k~#1Lbn8wYC2GD4!H*gZSIq zWhwT?3JsD~iku3&5VVcPY=TbRDuB_K07F?6eB{6s$|&d34?)tV4($ ziv3WM^@+!r;nYI!w@k@cv8})(u#bt?(;c!1^t8r;ULi^ReY8%iy|^RyL`ymLle}eW z|6T8i3b8JEOSJC)J^HEG9%m5xbCg`F)>&$&N?Dp9ez{UE#aczSH?!5cspUt~<1B*x zN6br+{Fv2A#d6JXxy;-j)s22PL1xUA`^bI?dufqPM$GS&nmv8mQ;THSXpikuU++2f z@k`t3_NeWsAM_g8-lpW};O-JJ@cDP}g121L%IWjG>=BT=6AwTQ2hSegUo7TIU$^hFN>2 zGR&bYAF@L(P0*e-)h}!3p!Y;I-!YAJjG#SF^Vhr;CfU^dOlJEg%cs?#ovO)h!s?7~ z50pzh+fQNVg?*31`mhrEj#|iVRL?co&ng06veexHT1fiIzh%qTe%!`3bZO|xO69H4 zi;a-6JzcJyinga44H+hu*KZe7+u84sZCo=1C^ba)-N7iJ|E{ZAuB{QNRP!wWNx47v32BpAlbJZJaCQL zXV!9OY>yYu{b-&mU6rOGnm(6f%_>Vwkmcckc5NBwqxL1+7TWuo>s^y$)1he>?LQP@ zj?OjL!N%vbNd6-Fkvm3-ZVmP;@hobCBFM`tOweg%AE4*Iet*~>#I});iK$-cP}}+B z(!FERAN`KGZLPVt3;q@p*Dmc0SpS~k=fnOt!CnsXkOnAkM&Z3+hL6uz{4-#WJOJq? zdnM?FE0X!}430myxM%plp;z|BB|$%2R_4ZWGCN0Z_Lx5u`8o0r!F5EXX-h>6FqfY2 zLR9`pqmG*9}1xF^?*Oyx&F_C8-3W9bIxW5#Ypc7&$sMntMf}(08CWnzY;7&!soMz_(k3ZWPe@& zkA+u)hIVQCq!;^k&Q)rSepUyA?6E6@{W&Se`g!G160-e&hUnofRPWE(I{~%)Wr)|B z{dDo)LI0xv4Fl{rEeo|F3SB-spBigMvfnl2QK;U_Ui}W{fg! zG=6UU!ng^x{S z`i|rHU!O$$ue8ETI)t_MIR4is7ypYmvwsi#FGBsoj+_U*FK{V79RJH>qs>DR&we;( z@kzn|`aoQs{P^O3dFENbt?r3$SGx;hq-+yi?Vk2o_PfA`>~4SEtp#l(EW{J-(}BR+ z&wbb1jVnOOaF;uW!W+FA<_050fkHnL{I46p^?$tZzcw42k{7Xm9sI9+TcSrLV);t+ zXjdR4oQ+@I@$HHD1tsA2Qo#p6Bi;ox&3Elle22XUh$)T0pjicMuyi;Oc$bv23U}sy zrZXcv6mGXa%esf34|~BIdYu&jLFNmP%r_XlFmmn_-4HkCi>i!n{ENW;{36>3?Dx+6 zA$9FR?g9g-IvPEfIR}79cm^Zf+=0#+_`g6r>D-8?b^}h-80eQv#IF#|=@HN)#7FY( zbgP}+;hFq9KuOCBzXLQa`hO$vNxK2FeTkq_J_~%4eu%uY7`TnCc-lGkm+W)xbG=UnZq0SZ_p zFu-bo0Cq0>CL4@c5LW?9=DTbVyAnEx%P{2sr}$r$)+}!|hh0@js8jX!tB7;e092DT zz%gBonNf$)-+*Z6tL%xSy8(Jp4Q3wvox{6;e$^2%z-*vjRU^VRW(n@CL>#S^RxPkX z8GDWJb-Y=KlSddxbX=>DPiEOwR+UMSnGp#J@uDfE3QvDl(6L0#wZnBQ@vLrzPAmoA z$_)N05No{}k&P?ytw(gDa&=bE)&T9O9M>MhJ@tseUWfmWAv${jt}aqh+3Rq%7DcA4 z45-U0dp+LpbzTpoxV3n*)u_u_{034v-spAyn!PT<|JuY}1-8>Vh5xncF#NAgY)gdy zH2{b)so+gc5z6WnE>MZHQN8&ajDAsTl-MPFGpjf2ll4{!u%X^mDf%4!V9pVgLT#eo zoG{HP3P|oJi-YxJq>;)fjp*?$_D=NFPQHn~4@8^y6%JU7^`4mEAL45fdu*H7ih8w% zDfWMj|78dNjQ1xTu-y0mhvR=?H2o{#f4v#5bN&cqtv|{yv2k*j-4r&U|Mlk|kN@>! z{-5F>jsJC(8{>by^-sqCI?w%}KL^Poe%5^;U5MKqQX!2Y@h zwEK17T=fh3au!?!^n^Y*0tH3%u`l9%?M>Dzu%jwRB*{(ONxlJk^qkipI9wgUYal9T zasi_K0Z9RIcjiUCI1v2jIN1Xz#XZa($vnod;VlII*JR*-rQ~#l|Fs@I7EDeA7Sv-A{?{A8|9S|z{2f4(XtZ~M zPA&$rK)GE8Ki>jG?`**zxFuF*JqrKxa#)}}h4pQTcu6d_eh*%%#nXrb3h@E@4OD#tOuX+=&>AR;r3xOxwO6Z`xS>XU4OdiC#Yy}6+CU$@y zOzwAy3*JYVWr}8u4fnA3&50hN-hK}|Pn!^Xv;ZsZKN9_RH)^m3@3zZb3mlPMF0e1$ zok0I0?5{UatJT&vy#GcZ&aDRKSqnzDiM4*7T#o);1njRjQQLNiXz~~GChzC+41a9c zijj86YvJSlKcLkQd0U|wL%%1R5(nC7q;5&ZrXT|6qlmzn2LzM{qtp+8lbDBmd-$i$8gMCu9z)pGfBXFh z%QwBj*h`*gJZRNB^wfFApRGdp?hN!F^e^$5^<(tD$$qZzzwVX~fjSWWS4KL(aLavv zM2bC*=LOE`lZWRunG+WMB;cMAHF^Zc$v8ghKdSJ?ntXUTqFpxQI^mLq@;Lt2zX$#o z$v>$!{L`hNoF(CWa0-O~`9&c^S_Vh-?6=Kz0cE>^x5RGLO+eJMEy zSg0@J>bzvJl6o!&>d-fX!NJhrs^IG2yTPE~%3w%vS#T^FcB!@0++frHjq3mFkjc6P z8^J5RZf@WkldoGFtxdoI#~p3dd5(h(b#{Glb9h~_D%h^5zmAU$j3w~lTM#YzEyCfI zdw~#px1S0Nd=7LlDF1>qa=wMA=M)h(?Yu8H$|C1k#H0L@Q{<#^Y=2Jalw((v<2l@s zhdb2~QE{@zbNzF1P9@~Qij=Tx^fTr-zwv*AlsQpOIv*L``DK)(&nbr$#i>m@=Q+=- zJJLWBDsrC3SsLfhqlEKRE$N(c1W}H;&OU!1?wE@^&R2KfJyZ$j;|kS^j+CQglw&;3 zJ*3caBkbtMJ1aQdnLVd;%5f-}jiUZp{#E-n*F{|FYu&H%JMH1_0dXhLl&1l^Y8b!7 zzS!<(UupNXN4ir)7u?$)cYF=8sc(1h7I)yT_e37=Z|5PU6Ypo=fqw4DFUCE0@ZKo* zVtxp*y0-ywts`Qgw~CJT9rkFC@*M!*M6ufwZivX{t3-WpCw?1w+9dgM`S5juOB#R1tj-U{F1B8Otd z)hoYPZHKi=*-nu!4B00R#xs;p1#DNf-6q*rkxg;dHn0!!lT8_XT=;OgLisQ>0~wBN zd$p}tnrxS0W4i`+krfVnkCp%I;l9v_@1bI>=senXjO-M(-4~UweI4>)(@S=gu)RY3 zf?Qk1wzw*=B_!METsyeMu(ezQE8p0kT>JTC+a+t$s_i<-4+*is+W8lfuMzb{)-G;P z6xSx#?zIK+)keYBEA|~awr%X;zLllQC;QlTf6ABYusD10vB|Ng&Dwry`#SiUsMtZB zls#N*BX^|T8Tr%bdX~Xwt&Wet{gL0j*&T5Mv-XnYXHV@P$E2chRu<+*wx_Y(WM9~) zBYuF6jrMoM8Km(z3bwYo?<;8x!+yIQV=lJS{NF!!1mf)UjBO*2;(I8>hR8erVY)hZ zBe%z8ck=JC`ZG%V2@jG(jl2Zqh-0~Tbxur-v^DPBOQ5@iwL!QW0e;6A8ydMs|EJi# zhV#wv0W%Qqd1pzUyez!I`zgCgjuabRUCxQl5W7FcqBg%{)?3^eX_NuQBo8XZyV|`q zy4g=y*y)8obuQ_s(`mh_Ys>LP+)F7pOFEV~@wq;h;QGyya;$61F&lo{Mb2#GJ4fX_ z$D#8y{!Ooew97r5FM;RY=Tlq zSfvj6_mSTK`HZYX{Kg5Q$Zd+sfjv8HtdINs|GoZL|JU~wIhvl5UtMfxPreL&Gn<-t5RnhU!7}osIgEpSb38mLWftu@F=Oa*v9^0Y4AK_{m@`u1c&G z#o((@Z@&y}ly-(ArU}`lH_IxYc(`e33$mjhgg6SGsFZrm)bSC{RFn~3s7l0U10ulDuHz18*_Bvs|0xyu7VC6U-NCXo46&?f#0R1;Z|sD z8ss_tV7ZW`{m#Ax$b;^F56Li2uJBW`BlLk?eUqj9vFtkEmnUPT|77UDKkFl|eLMa4 z75>hD8~t~IyAp9{tKhf(5@O8F_GcI+@SVxk|C(%|bl7(=@;g{dja{-4`tNuDf%7VTXNc!yem=UxPq^ysp{ll9Piaj|OnLwBy9^3|goa_V6@NWV&FyTQ% z-#5K{zaL~2qy(*zPYF?gJJs(LEH*ynpWxTnH9$L~9j!yW7Qb6qE%t*Bs=bXS?||CZ zX!7>Mx*;!Y0=ia5{{weyxEH%ogmLzMl)f9dMI~YRN`61< zoH2-zThCY6RZb;ru8PHC;EexCJZ`VxmAs7KEuORqA@3>CFL)d}sXv5i@i^M&3HwR@ zMDlTKA-g}SsZO65-Y=fyk0S;6J`GR*wuu3>#m6IR7B>u_{BIPA< zx5~dFLNKr7izCfujmvO%J?d74D^x~3e-HYvl-dW}h59x@o3%yk0v7vvu?uBw5cT}8 z>^&J_b>0S)oC*&>^SN8_aIe@Mt_^+%ME8Z^SHe~^#j7!PP};{_|BFskAFTmy z2)1Gry@gTqwzmy$-YE9)Cb3s(g)!=};@yq!6jm18q;hc&=r~B#pH_CK9BW)`3^2aI zzRt^yON~yy#4d>h8 z`QaC_yHEGFhA;SK>Mp`{Z~J`6`tNX;FM}-;5G_nMd7^cXa4_y&I~9aJ_lYvRXurr8 zfHGLYOMD)F&u8p zrLf~pHs?to&Y0NcEG4=WQ7qd{nRoGCc;UMZ!hrlJ_rH&|{ue~`{{tx3gJ_3g?n7d{ zL`SeE+(zdn?~kZ2#~is6@&aQ;+^}bGZqIZt;^(-v!RLYLc)5Ls$E=h*4Z5S0cPKm% z-V|MI6{fjWb zeF0BV8Zw11^T)^(zAU&0-+B1Hh<6`{W39TL3NFGu*OKcjK3CvBmbU1#h2qp3TdZ05 zuElo&zVq>YJ+Z~&<{uKJPKK2kZ(A8evVRq0X^{iV1moE2f1!PmRmcTa84+B=?sp0~ z{ZFA!pxv^Q{6U_yALQS4?^jm}?d-iz@c8bByneX55G|LoiJH&m&)Lr+&vVucG2L5; zu}_~=Fb8FvB3~4zBeHfr`n{CD;N8t`$NY`^f4ftLdn!TsGlB)ny`R7WaD^BK>mFD+ zV6+Xxce_J2&f8GJW?@@f`8vz$fO$XBJdRX}~Yoc{h;xP*=PGT(Z0LPmTK|uaw$iGvpQC55T zH)Gvs{kzzIJz*3X&j#CJ14e&e_tMI$YM!+m{k;hN{-z20FVkTeGcQ5%?@iV(EZBcp z|2X@v$E?S^&nLbHT3ihNy4WnXUa;r7OTpD$o%lhb*j$@jYpzQcTgB%3VSAEG_@$@c*b^Nn(EDqqF~5$)DpD zyoxvQ)qD+yX94^SYI!yPDD6Mqg6^!rYVh8TB&c`o{_Ymoi!yd)NS*-;Xz@J8$MF8d zo?{nbjl4yzhv2K-8`*Dxh**QR0N(-Lbsu_BeTY@XNAuhIH~z!Ap4kSw2@$*sAY<Gg4WGV_}v>O+pvchop#4ArDzm&Vn3}GMGbhfWc03JK{O>MIW~W z^_z;{<>D=+^W>ouro>`!mTw5sXHJA1(aQ3|cN4GLE2#`vrHzw9WreKh$ z=;}5H5mQ7fGZJr84ZtYwf@Nqb*yf!n@% zkab=kSU_dahI5#d;1KD9Tqogu-*z_Q&J@nx2Jg2VH7<4D#+6-Wr32a2S_Xadd&tpV z|A!nOQ~lT9$N#@=eHj1$iQxbEvG~9Ld;QF z56xdH=p0?QFk^9!8GDJ_+3w6c@{aglf%6JS`^l}u@BTq2%FZ&9-`c-pqo6y)t+uy8}njktGU%05s5fejYU5vp|ED;(6l+n6 zw7V6yA%u_QBhKV_#2FumM59}XcYZAxD ztwo&A1+b$fThX*RNzPO;%UeRaPIz;(5X+dbc}r2BDue7Hy8HTF=BaW^*#)pq0ycrN zqk&zCH9iN+0oVm(j{zKvQrL;qSnCk4e2{ENQ0(7a+YYkHq3hidhh4`m*XO;X^Xb4F zfL#x4lVOwMYnv36W?HVp3o5ik<%gK81M3%L0N9?~ut$7)2@zO|>wg&^lW@&E;~uMqjkN;jU6byr#{aSAP$P7%OoUF_ z7-QXQjx=)b*X6|bm&5+^9`-GJtVz$O9OI0HDyiJ~LgF)4UgF!v@2#{&B`kygf7%Qa z-02Uy%|U#mK`{--c;5kc-yfDEU*&JvcfzXv8~khb&tR1@3sO}VWidZqxX>l^gEn|P zY~TAs-Z>NBd~hCjd6aT7&c=)W{H(Ssm#8aud0RL|ugFKvm&Kh(ohRG6Xx4^Q$w|xgD!$6Qt7lz;->34= z@>6YX$#RQ(C^YRc!S~$TVN2P>}j)i|CDd{K6fAdR%1P=3eh=AA%E^bWT94<|XcP z2AkJGoIRbHPH2`}uq(yhPkzpL$o)MQceWyW4%z)PsNwo9nW_{;{<*&{AfOFIQ(|?>r5jraJXYTCSCs$&Rp!Hy6S8=JH=wb zsVF}koNo$Sz-RY-kF*pQV$NP=Uj^@AJGk7rigWd!JcjA)a_3^?8O?4}8jZ`_>W951 z(lxR3ogW!ZK0R+ZyTd!*xzae1-^xE_pI~?3d;IgAKE^4kZj_p}|LTC<#U#5cNWt#= zeCJZ*&0r|}Vy=ewb4N)f4TE(a5>hb~qw0#nPpX)j``MaUn`5r7rPQaBD zV9&4&_9G|4oBdOE<5BO7pV5fcbU>p(Yr|8Wj@IgSWvmbVLh zgm#_E*b4lHo(KO|vZ1|+_y@3^HR=woKaj7id&L>N=B8S zdzbF5z&)?1CsBRsaOY~}XT4bcU&>~xKV8?ws=VCNNDID5X+PSq$@rTW@B%Bvt6niVgdgZ&-62>vnHO?jBvi%fzaTMnqd}M@owv2Et zBOf7+_pPxr33sh95#u8g9~0 zfcdA(5PZePpd%s&} zP(IYQacu-2fup`QoDWA7JIdJ~nqs0FmH5UnjP&eY4tlW&bGI0OX;2@1T&Cu98XO_T zL0X2CjG{f7?hw5o`#7R6x|ABE=0+iar2)!4+=dRMA^H?RZ!_IID?b0&IddK^OI)wKaUuo4{uxp3``HqJVWB?8~4s4`)NaJ;9#9fsGu#AObl@ zEM%Ku8CS^P759Z9bl;SN?5N-2+j)uoAiM<%?eTmA@*Ki5cjC$du^D!G8^rxsr*`r} zUIqJz`;+%usgQPh4n=!EJNagBwxFLP8vPn-H6uTc7ZWu>|_qZG~OEvHxE0R^fhT9H#YLZvwca}5wc!m3NG}WpFM*P?V>Q;JO7KZFz^l*ld{dm6;o7!*bqeDv*QcNKgTN?j zhru~s5WeEmz*i(1uklvl?~ix|i=o?${K(rdo+=eSlD=2_RpsJv_5g3I*RI3YlXe)K z=8^u8Rq)@+Kp#rcwT@i-fU|YPb2Y{i;mlS+CrbEEGhsom+YD`>{NJ@6_pxxOS_dBs zw<_NJv2bE^)NAo$;eO}`1vF@N(6imF{Jn?!qzmelxW_!vc9k};gEP*0!0hV$mvw>U z&i`ZO91+wKj|I6t&bhy1fAP4)T}p=(my+jv0p7^;jsO0>bJ9$n6KN_B_b|_`|8JzO zOV*z}H(m#6{f_JZ+Ux(wuhfCwf4;&8Z8w$_pQFdpkuuE)_^kpv7nq{CdC32CoM;L) zc3uymaiZbds^Uy^k1+mlUCC>>&WS$6M_dnc&(HSesPYbmC7k?l2g_3B?|ZoXMtW}Y zb@jX~&Kc3F&hXC!EwU;>J4Rr?pb9vyu$@L-7)B-g81X*;7}`&3YO^S})|fOvq61D`%921;Co!B{9}b!2H)FC*`&&>OF-@b#$;hg zdl~WlJ^ZCugQ~C}r7Tku|pEfbDHeX*9A7(3V}nhE_udpVkT>ORmXbVged_8#q#2~mpj zR+;PJYl~-KZ>i9Y*FVxr3O zbo+Lai=ju!BnX>wJFx3=+f>UR8H%H0P}|R!wOAuHPV_+kHLNi;sK1KkqSg~&6gyRz z7cG+daW%*DO{#le_<|EIf}t(k}C)3O!TRCWJs=v`=>>)18e|AUN7 zF>44vQPVz>3-vo?aUH3yz*@$*SNsOXSvBJO5Efwu*l&cLT$t43o%ZR;DD)=mX1P$zIGCvjMV+Z68 zwRds0+WEMhjplvq3$d4Sz&}wm`M1FziifG-^T=}=bai<|}kRKgS{c+-{x`T$3 zo*i^XVvT{`uOW&f_U}kTvg7_Z4bW}zis!IK=OuHWJ>T4y+y}3{X8RObAWoN!*pEyF z2f1ZG4rG9gnXv|huOJ#>BXr&mhzx&BU$rydAmejN&kg-JG|ID}r(cSBRffH~4Jv}~ z>+sG;%;0dpz27|Gw%GTI#$Z?Qey|%}v5oLA>=)LEG0>mahzxdA`(r0K!}rGGhCo^8gX>{%t(~zEVn%w=?ety7x8fSAw#@TP~w;P=; z$Vcf@@y!cb>_)YJ+%23KJdXOdqE0U-?_~QBk>OrYzjyiDVl3H@`}f+v$N4TkRa9C$ zyeoX4?}aY!MLyB_GfM0xyCC{;DxB!;!7la(ywOIyYD6%9*S=3QCND<&ya$YyCjKHT z4(EtEXIeNHzUfO4xA_sa8!0J7Gp6G~=;s%S-R5q)4&Lww+*ZEL-kW$6z?hAQm+~^6 zwiCw>+ey%0^(u973FdyTky*+2-MU-g`ho zArkuw)i15^AN^fmgue)qLAS7Ph=tU^&V*xmy9qNKIN%k~r=+1QX{QtT5zQYH?@aWyUQ7mG zN&8S*UdzUSisKdfVvQyJaq!VOoKMzr;$-=niY-XxXkCn!A2e@Bv2g0ahgU~DS~alg zv+^MLdb@{TX+yS2PL|c??ILZhmubYJtU;X0a@nBxI?Y43?HRyE3N~8qaOl9mU)eik zJuuO$BmGw#k1*|0n^C+U;`icsh{S(Gm!C?lKG@3`p!Q44Ir<&?zxtp_P6NL45@5O4C1Tlu(nbNVo$|JXOCbA{M>y}X4zL<} zK)oNT@5$L0_A5NXyg&NBu+}foIErI-b_dEZy$kKF=vbzaF0$=i=csh-T|@3zjega* z(zM?+5VGKKe~BH(^CbJocx+~6pC#BE&+vi%>`0c&C>g7L{%5$}6V~>K@i?J9cWNU~ zRC9`N)k*CGFF_qBe$&y*A^k^e*LY+(bt+C4m808@-l2?XnWY~4=6cTxa$3&*ua3ob z`2K$^(~_;@a9NGEqq$yhU*qX{4B6V5f$M9TIH$0& zr1#OWxuhuZx_h*b_$urV%Po@ewVa<$tdk8!N2NQ^^QC<~W7%k2GS(O9`5s@7V!Qeo z$Xle#jb+mc;M2FY8OHK#v>&DGIdwE$@&v^0()Yx%vob= zW2TZ}N!Ls<#fV;Nc~{RN>X(Dzvue+;8FGCeS!={H>3yIbO`r!tr2PqqRYr7Sgbx&( zCTjz=!I(Qb9uT|8Vm_ z#DygL3wF`}!j`lDZT$ZajemsAyyNkYv|r2r4FBn)iGP$EJ2s|E6yLE@=s1qFAD^qE ziS2{**e+)~Wt}xK(%JM?`e4$HkX_6YWox5j5*}^+r~RX}LAoQ_YmZ|XYhBvmbTF$k zg6=R0U7*_6C*Ea{Uk}|&1?o|Q*mh;c&%9D`p)7$eZjsa1e>&P%sWt}673?;zeJp0I z3(jch|9U__oV&)oB%kAs($$fku-vBkto6xdu$zu`dYOn;98PcA^EGiyK3ZqBd^Oj* zCEE9oY3&5L)Gff8le-s3^(EVGTEqH)4;cj=De2pqBHnDG;#Y{aYkP{g@AR6IZ7=L0 z<-|`;vq_-4nt#%~N_+f^j}HIi`27DzV2Jv^Lu=CRVKX@<1X(b*n zy9WY3l;lveufN0`?iWfbGt1}IK)x%7O;-hCs6zgg<=~&|L|?xi`yjNpd3Zf$I213t zDSRCK7V+yf=5m=yYG0;u6~lFqzew#(LC$33#nZs9jO8SXqq_>RVJXgUjl|w5-lvXi z)NC#9YOI0okZs8p?k~RH3&p-lWTUVKHd{rI(<X1 zh!Tg^Kiad6GRZfTxZ+YRfobsy4R2ias?s@gZ#9%B(?(0Uq6{xI09W!K28Y`9)#ur|{E zT^aNdmDpFwzB|Rc_aSfX0A_*aGqmhQK3nk~+-ss1JT&cR5k5jG?oC@GU2?Sl=x&rjCo?69lbkZ@*?iJmg@!9ZQvn9JWILT+fPd!!?)Dc z`%vx2S#JGFrWJ^UjBy853|Hu4S?wF7D zTe{6v%x%o6PO>x!{t|Jk$!6+U{AC4v`O=~f^cKVYYP2cYcD@Rkv4#b}5uf*yc$vd5}-RyWe<@AQ8TB#eTD#rlK}BJq5keFxae-zW7kK1I&Y zorR(w(hYWY*b(X9)d|u6v)m`;9{7;y{P{?~iQUY83GV^@IR~*A7CJYn^q%1bNS}Z` zg8SK@qV%Vo$Gu(N5LJGUZ~)RrMk)I6WtU?4_A&~fvhEQMMfz>+(!2QYC|jNagQNa8 zApM(cV9p(Xb>4Aq^79PA4fcib7Nif#Nj?6v8SDQJ(Dz9``BaxP(jU>0);-_X`f+U+ zMEqMBbm|otS82>S@(Unalv=F0^SI`LN`rM+ld#rU;HNzD3p%>*KnWAxa(}o#BN*># zz7MjlvgJ6OUcw&Lg1ir&s}yvv!o(UB5bnb?wf_8V-cO1ZF%6FFC}*MmS(_KCC-EZ- zVO_{zJ@84~6CB}JNBc7x7a`uCc}dRA@i(9CU8?+zX2bufkZBv057#Yz65I3R_RfaK z4A|4O`{d$3v`aYRq?#EhivwgFQ{w9LovEOov{B<*r ze+@RXD<6X$)Rf(V zdfxm0*?SK-D~harxT?CkZ>QTmWW+QW76eq3DB^;OiU^2+E~a(Xtc!wcSl4(7u7J3h zMMb!~x{3;t#DL=U;-zA17D?CCw`wS6~Z|AdESy;?c<{0)}_%_-h#kPebRNcuB`;fBwsRt~m zN_c`-h@*gheGm~p4gimCzc>N5LHpGAUiGc9?+JsiF1*%up(Xz6FdH5(UJC0pxCSR> zryPx1NB5hCI}s&h2Q=Q>y}Ga;DEDRpHE_0@@1&e<-Y0HuxXs%NoH*)>Eh6P_M(l)d z#rN!6;3#wr#)q4LzwjNN+Xf{5!^=_+RskD5Liwe?8^8t4fp_|yibK@^ z{LAu?S%wYlKKmk*g%<&mkE|8y!mi*&tFEYWT8Gcc4#1Z07{0_$3*X``@o5o$i0XXE ze;G1yYM27{#9%}WK7@EEK!`?5QN)r8?+rN~F|rR*36LTc91ywCr0@6Y$y6`}^_=e3 z_a~u_72ZME8thXot?N&=1o`gA(Y+Dq-DU7qBtPp#@Ry#8U-GP`7|A*gavCYVP#%tH z*jCKOb@HPo-)i#CF2Xn?AIRA6kw)RuXbThyS9Sb{5y%g1z{j#TFz>H0s#IAIp{$ia zHLnnJF{T??_5DWJjSmeEuotaos(Y5&_a)S4zqiUN2v)&!eJ=1i_c_vU1iOu+tVTv5 z(3u;_qvRWydGD%}tF6^Qp!gIq!0CUXO(|9j`kerLb2{6tzDK)%lEcE!Wc>Ee5GjVS zootP@M(hwWNCj))E8j3I7Yn1F-sWs|$}oQR1LdEP6*mEMaicol;?T1jo#sXZqchg^ zG9XUs-mXAo*Rg1c$>Ff@Pm)?91&Wp3293}LRQnOA{XyVgKV75tqfw{V+(uTThyqQq z8;L3Qi|D@tUW4e`envE@fzZF*FsApjkFAeI1JMBAbZ-huhd4T7wreEQus7Kw)>{p% zxz%$9c;?P-wAuo<0)4UGIT{~2{}$)#tj+dn)bfDWNF1&5TqhRe9nFo+@F#5m3Us`? z%h`!HG>SYzj~1J~EohBYSR$!KIx%X26xx95AItw~9z2hEu-tADcEW%R$$!A zQ^QY0oA7UH?9=E5jl}52SO%T&{SWON>qEO1KDF_w18P_wIFXdDzVRup)KAnGJlN0Z z`lsR@b;t2%zz6n2b!;T}!PbWI+6&b5J)$(Cf2rUo;6EPc1OF1eS&SOe-#Tl#u?~Ix zmAhOnmn-SpSZ*yxPX8$W!&uhWSQZxY6zZM>DlvyKdoTlKV7r0+PUEXe%a!i<=NUZ%T*n=#p?C*Q$8&~(v%2QgMZ#I+)LENeW#M#y^(&KijVb$`0s z2o_WG)bVHPdl;VG@9aYxFLd{cJsABZh%nz3XS>jr3*8dAQ+#iI585yvt?)fcM@Ska z@_SLvC|XEd|4!^9)+;Q7FZ-tOzAy#9_U1+|W)70^XO>CeAK9Zs8uNKJaKG!?N12R;h;xYyu`eEr-cI8kdF<{m5F-)S zW1e?`cpCK2u&+`1Js^0p3b`lj2F^gt$3vKlm56#!0ej#T;O8h#%LncOXQsU$II*x= z3DV&jcb`~oftte#ZnFC*kWd<;9adY*LEmwlXeb*d(k?ymSoITou=Z&jOYohb5k=N# z;2#%Q{Y9}=VlA|GJ2P=T^Y@r6l$}gw(^^;aFBR+ppR^V>$YqG?a-;cUTo$c?g#UcK zIouq9xo_APnvl@M$glFPG~B`<9(r0E(7mZj3<}i8gZ5})(Y_fI**uF z%%HAhN-`ID)AO&G&zXecbOKRJ9={flp{7r@L*e)}jseL2X29(b{^~ZH*fF;!+^h_wW|jT^;7PVm(op z(?utzad0|TjSIX5>MrGWfp;`(ZRvEakuH9VzJ9KA5mL0VdV1r+>^nr^Hlqc$T4NK4 z|CVTwxWPjFH_QkUe5J5UNg-m>Fza#WB3wAb?g;$8X^CmZdkNe#rYEL|_tg=h$W6uZ ztL}8*^G}EU@dx0BK2-ObhCFB-e4LmLgsP8lbw*+`UH2|?T00jzJ)C~dubeBLE1d35 zU#FMT)A?88U;aH&7kjR~kXP+@x&~blIp%lCrS2{Gl$)#E{`kEgpDoUp;EXq7l`X*T zKl6uD)~Nqm_B7Q0oy0rF1XZ(%iMPbN)%AZH$FI5*QU8gk|D?nuV{&35>O2K?o~mm6 zzO%?Fb-r@Gbf!3Kou$rdXN7Yle9{Ym2D#dJ8ork$?rJgEf56dKMp?OHRN`sB(rIOs zVdj;(t>h=76;{~`y&?WlxbrZq(J$~?$%SsYb3#~(QShxh)%zNeZ7M`t>uzvj?X2N` zJLEkcXn}{E{`?TQ|3l7o$#$}xY%4dr7kc}`TZ~mIx=`wWDgOC+&VFOH_no~Ov!w&@ zr4Je3;OrYZ6MZp{&T|al>U;;CvBvlL;YzB=CFHK|AIGx^rb03g*W5Pc?*6jKMm)n^OpP!-j28D zzr*F{68$r>E1Typ5%vkzlHZt#{1ubocA3d zB~AoZA@;QXF8>~TKJJ^ipO5>Kuo_KaQ`t0C${U?~utJsLzK#2fF;=Iu_t^*RL+oQ` zu#b`ElNz;|w*1ukkICmHfwg^pGPyKaWPNO4vU zYhkC9twSdp)oiDD$zf zg~5G=fdacA*aDJW;XJZ|Q{%K5Y{g=m^VrVkGuWPVPY#ECjcmbU+jJ@$#a}EofgxuD zTS#M^B#U9&O?l1=Uqzm-NApMHkCR;${NT9GryxO?4`k0m?;hzEqTL9$ycB*~MZ6gP zRk012w!tbC6eFJOg2?uZd`igPuRGGgE=mI50az$$vC1uCz{d#4Rw~>6Gq&ISkKlif zR5pq4nC+ELenmLa9}aZc*tP|}gy?sa1NK2gTMA%%w89|2vW)GG#s$^wxENz*c%YxB zW7wL)ujv}(L1P3ud$NBt$KZN4UT4PkQ`-=c{~c@?VB?p;V1jMIPuc;*Hb#USA7d(M zyM(u0;IP9MhTc5^_@)_OAnnUI1+QzER;A7bW^?;GjYkBnbaGrhJmor|$S zK4yf&nign-0KNzgj$!YUmW1C)wqjI<*e{RrkNxg|2gN7YQ<5%r8VABD$xON>W~}EQ z2YeTdrv!Wzkv6tVJ=`9Vd;_(=+(U=?(}89K4`v~J4D^_T-)Oa;UM0%d9W+7Pd=h?Z zY>z}VK$mBnt?f>!Z9aB~8)T10G{S>zF>Fc_Es`00ve++gb!;14?aTLGmfxbDm*oGU zefZw0G0r+hHf)$X=u7QuS_wNvq9gbOx{bAuM`lcA?1_&&rnJo$qcrBx`^E%sHb2@+ z^O5k7e;~sDA-drD)S{NSiC&I4r zi0hZa06cs=cTbj>WXl-)a6JS(ysm1zFF_ks+dW5fY?1OEXqJTor0p+Dv1Tt;_N-_x z)uzA%gdOH`tl7(aO+)njInw*ODgK0Pz%`EoyGT=yzlFy9h&ExI8%KK+;qOgYf<#-$ zS2-PE-ePT{UyZSJcC<#vHqD?Dkd(&lqHUG+^Ak|cB}PS-uUrS%(SdIXyQ=meTW@O1 z>}SXaTKgPdqv%E2A)Y7puO8t}ig*oe%jvq468A^<5BK%T^f}q|63-L+x6yo|^$LD` zY946+WAb%BN5ue%=TXKtHDd#tvH7Nb0P%X+_N+wjGwb$v_^2Hj=O|+ftLhjB^-8hU7lLn~_%pg4UANSxXI};nvk7+3=MXNO z8gJUhIvyVyYb(PWR)(b_9t-i@_1vYL*4HuqyYPjG=kZ6z8u$`oeO0#Yr($ks-h}8V zr7cS6{?+A)`{D3$tk+7tKhm^(3Gfx-`4G>qsmkA=JA42)p*}HB`Lb7#BtJ&o)};{! zIz6vxtd7}JB=HVKi(=ZDy^f&&>CR#DB1jzy3iLg_8 z_=}@;qZHV}3kfq1es{CYk&&O3_TiZd|3K~kaJ#?U@0OhFLl))3m(K4Pjp>=#U+6Vu zsoKMT0-pC&$SttPuf`~L-476JjMg2UW;5g%{iC+gv~$T}zSOi&)R>FilS{CU(Aux@ zDJgv%e`1_XdmkOUqSBp>`4P)Z2#<7%@_F==gp(MredOm@YE}?7<`LtIl}g-)tv<~O z;)~~C&qR2bWVavt5iVxxdC*AmtEBzwM0>8;4YH2xSQU!*#r^@Y&VtW?>95PJ>qPzf zaZ<Cs&+3ZKA z#6S7h6473+LQKwU5S#PYh|<}f<%!>j>jmPsi<`vFqBFZi+$wGpw~OD3{^AbNmE9=@ zh_QSePxC+Xzwln{JwBbk&p+TF@liGR;G z^IO>#zLjr--eWu8!FTe3Y!~0n_wc=ZAK%XpK>v4;SMW-Hh*xnYpcG<47(xnDAPSAJ z|6zT8vaY}C+H!(@}C~blbrW_1`Xv1^AdJXn9Dk|dhA@*hPUM%_}RSUe^~e3 zm7T*o@y`5QejY!cci~U5i+ERlF~5X&=RNtQ|Ka@p>5BZ52}iTb`LB3CekH$(U(K(9 z{lK;SI-bXW!>{Kz@Ed}_wnEJ583_v5BvfCAb*HI%pc+T>`|WL zGx?|dZ#OpUvm+_554z2v=-mbwpjn7_1N5{)UJ@b9gbogG~!#4VfzhyDcok z?F;yYHA+E#0mq1A#c@A)_VB#uJeI#}{*y2UC`MDE72`Eh>@h9ZpuO87@av_}{l*v* zF@6*6nKRglmF@!KS&$Z(iEbhMxnti>l2c{x0Smzw7sCI)P*7aqjgbuJ$K_nHFTIv2 zkxcw*g?S#!l!$jD9N$9O0eo)EvubPyiXBYyBG4*e)vfVKcS*D;&4G#F6oa3`KE#TB z=k*?TsrU@o5X3uPgZmEw6MY2ai`X-$cm~~}e*nG+uk;s6Ee|TdegQZl3L7O`?xW?F zTcGFckt|j5jAI=m@w_Apjd@zVpIHdqMPYJtB$pvRUSr-BDp?VgGv)`iOoDJ2iDxcN zKAC(+HpCt|BTt-?Bzd*w`<9^WMRG)PJYv7StFSx|r~k1Wi7@%b_{);3pp)E;y01YQ z^mz%|Z&4ERamZ{6Lg?mzA-~kP7BW=Ga&S)mze_BXG1&;1R%1ZR`vb3H4RG{HM?f+g zvIp>!?_yta1f}Py4|z& z&oK@|F=U@}s__-{dya(PLh%6zOEcCB>v2S5rfIdjUCZxl;s6k)1L;c(mF}w|B>Xdy z)oKi#9?1fQz1cjHb7%BiB;!tF&s^l$8QqhT(RD=|Ku@NyOJbb)+=W80f)z93)dtFq%o%yFr0m43V09-}BE z8wT3{*Gx;89+~;nFP5d$P`&>Dh1 zN>I8?pXf17_(nSIr(%s)l+4=r?Ugtw| z<7j^ZFkFt5-#_05$NIxw{>GCz~Fk2cX}< z1IZH1p$(d-+m61*$=1VlKqWhXYBbH3E!0(9pPiZsQ*mR%z zLDO@cj~?HMaS5y%!o|tVoeUOLru{YpUnrJUeu8)}RBoCF6@G!I@p3Y4smo6^_#LIY zj%}h^__O(cX3y~7^Nf!Fm@fe2g1?;x-1qR8D_g?OQNp^YCHpfoZTNSZJB?gOcbkdX z*r=qqZT5mU>nx)gn{1eNE7ma>ERIKdc!MDJS;}Z{<*{>&6mMy!>3QBvzD64yqoLai z=SUw4akiUc?PZQIY#{5fb%^hng6Cu_iaVmN3%YLKZRqQb;a8e6I>7JRck_+&#Zr`& zVpAF{*ZJ>hyZ^rZ<(n&W_PMoce-ymC&LGW?zaeA;@V^EkL+*V;ebyV1t}m2EGeriu;mn3-WMf0K1#r!|tV<_`Auw z*ZbDDqxTQQl}F(7n_`35aCQIZubM6J^Zt+Y%|Gw|G%xY<{x6oB{Jj6uHnBhN|KeDM zKkxs3-v9mI+yBj|j-3$8>PQYjb|@K}73kz(^RN&&%oAWENix+Ee++!U;yv>we=1wx zPB6Mc?o9R{Kig*g&*u5F_hdi!|Nox8%I>#+)p0C?>h3RxzMX9NwEpaDC69}3gqK72 zQ>f&)l#Y%e+YZ(!zt36h1p5-QElg? zbqpD~G0FMJZnL{T+thgUHT5;gY8jKwpb6S_JV{p+m@;9Y;;iLz?U+IQ2)PAK@))vr%9Ij``=+!fG>lo-LvgTwIlS2ELR$we> z+jNq5XWOx=cmb+h&~XXaDZ(~2Gejsr&)SpSK9U!b?FL7J`Nlwma#hGdiY>3_H_4@m!1BCr+d1M-g=H*?pYJ3v&>< z4LuG>hW%ldzAql*)RwWHGOh!SL+tCa{8tXolX!gXKNQoL&)m7-d(vVvVgzRT3%XQS z$Cf1f(;tlyrTRbZ#Cm^iE4&zX%o!izO;M~top;8DljbnSY;_Dj%ukugC$jB~#uw2l z^l#*&N4f(Vt7Hp6`lTZB`!b++Lwq^d6(Gg{Xs=leI(Ds}twYKl?}yW*IL5~+=!nQ? zBleA;7!EpCyzX<-;Zge)%CnVSMjQts<0nHp&3&rBw5}ws6ZO|-_y`eQjr%s9;}v01 zq|>cAZ|Rv9$;GJ4Y|!Kw(_ZI0GK+@CH0nrnrXzHLnX1eV2mMNZnbeK}=o$3+ z#qe{bwTEm-$X+e2{A_Q{8hbCRu~R6?UVwZ`W1AMLqo#q%UfC}8$&Nmr<2rUu_L#># z*cL2w9>`h)NZ&>>iHyzn{IJ5G1O0W)b@lMIV-xiL^c>Lu*r=;moN=2|nMzQ$jVLet z04&f-*f)^9bfJGqwSIds^!h|Av|lxBKmuxOio=<$&y3fd_DWA!49tKu^u0xPw@9b^ zuNvQ)-jfZEwx^HnnU8_a?FaEbeq#R78Wr1g>;C`od6O9*)ngm9HMTjb=9fSt|GmaE zt(}>1U5GWPG%-Tii`HB#wVej}E0BE-`6*KTCR#J%IZz6{bE%4zq;0keh<5uAB;SJu zP5Xp(NNPGvV>ezqv+e8YI<57Y@)RJ(PR5T7zU?ZGkG26Ke}su)u@}ET#x5ajlcnGn z$SzFJ2gFVCHiFOb!MA1drnRR)oTGTa*yc#vhYiC#r9E)WCug3a^>Gg3A$(3W1wIVq zE1q^%yK{W__*<3!r?54fr+7Zl>%_6iMX)0)rLtg6qB*`W8SBn#u3>S0MC-M`d3GD= zbvS;$Ca^$`x%+9msdv!dUC%p;wa(PL$UjL_g7V76a z5WiIG&4CGn_39YdFwu45D?n=m>Eiz*yh{&%j@4ArqwLr`pP~K9Mr&EvP1z^MHd!&x zl3lN5;3Y}#PjQb*;A2AmIGS(MI{NIk&!pAuSBQ1LhW})=w;@_vnCNyG-9DU;p|We6 zi&!qB+A`w*vSTi#QKroPEaS)WxvR%nmQRryQ@UIe;A=_kt?h;WXU|>u%lyMQw*RXA z@V{F=8Gd3;sP~&B16bl}dZXjdEf!o3-TgceXc0t%I;$>-nzbc9y4*N62 z-P3%0OxwvGiPltoJ{9W#(bJ{y37%tD z-XF(8uX6n4JWhMnQ~eb{1k~|i2`d6TfwI?p0Q?)>Ls_>__KAwHz&l1-p z-%+%q68i`3FE+~qy{nd!Wak&lJ;<)lbr;ywr?)EpHGY=%&1t^{*5i)R9&@H2$9apf zT4+B`7$j*!^PdaYc&wR`4Q4fVNd>SHK67>4akBMl0Y6P@2fdywK%5R5Puh-D@9~Nh z#)%#ux-HPB0r_c?tz$ecD2~|coVEgsK;c5QP5Pia|Rb6 zZl5?_X1snM<4>!BX`uUis$JzxfIXGQfd1AJi2T8lKNkPxa{dUSZwMg0Rwj5*k*M-^ zd%59mME1xJ-*)#p+>Hr*jK3@7 z?r#yFgz$d{!)gTeU}KXj{WHNS0slF9Y!dj-$!5tGJ~OUO_DQDvhRGL_m9PdM#h+$> z1r~S;sNW&b&RNn(Ryq@SDtKDt0p&I~e8HV$0~0*aOT{xWfN%U2@X9O1(SuM1QFWk56v)nNJZ=wd=a+h(5MS4OJ+LRA!C#Q2HX*9d;Ll6LejW&; z&jMrgazucs0(EXNcRDtN&f+#VHo3>6J8}g z75E&)r$w0Jt;3%Dl<+LxD?FcH8lJ~{hUfAgVQ1bg?7}Y&FXUYj!S1548)j5!5;p&H za;X=Zxzgmr%|e#z9c7xb6iC6Q`K0VAy0c;&=NQME<%zq!biid@vo}v0h0-)i*$Ujd z8!OWyR?p~Zd?jZj+uFH6Yv>J&DARma?#2BbNy9ESdYI1|`*7AWh|l)p>^_`vF-VrO z-ux>$1XsGVT%%MjHu4j1vDev~aEJUWi{!wO3IBv0R}Gm=(pZ({=(6 zdLJZi)v}OCMq4Vitccc?7~3z)PYU+#*CN(sywA}#yJ=@6+Wi>t5PDw}%h3wqS5RO) zq;c@9?B|HClfSoqPOs&9zo9YqviUK+H>ACKVRDPIMUUm!+56%`_;Qf%c^u=C?BXdl z><7Fb>UY5XBuRKrJs@K&27jXEW4e83z}^@bIy#;yWHFEtB?v2Wr5Zc2oQ~>8>%PWt zi`qAm70kujO89rW?3UdV+&&7KGh49?BBH3L$1{QOy`wH)Cf?X=LO}W-#QN9mD z|3N&1<}K2k%H0idbg{RCen9)7LjI`wu`>K|OuNl)iJ44(AvZzxNo}L;ts|c_j61#O zT!gsLy1!iLjn;xby^Lr-*FdICzEj$+d@1Q`(6&=CmnMa={^eM-Wizjo%H^z4{!|)s zCFYZ3c~pnwJn*qAASMn1aAkf_Xn9i)$^C+GI~s$3O#Q;?kX|=(9Rg2 z#3R?l@oIs!N4KA*(Ptwby4LT-dbHWxRk&L*_Mn=dN}rlNM!Ul|@u$l*0s5(Voa9A1 zU51a>v6@Rj!%Bk@7^mdh2cI4rF_R7Lw>b-OPM=H=ebBu86#M?D%`&{a=Kb%_+GEjt zTBGoHhufL{*6$&iWGtH=;ZFO(m~8e>j7eHoGzJ*$qx8Oo{C2JahcZU_8fEGm`y2jP zxrb$~(@(flxLzk~>e0p|3(RKlQ%xdo?U#f2*6`yYndu1dN_78JV4&#!B-*BB^IG?! z=`PCa92?DJy`IvVK=WaC*i6Y7CSV<*v9J{DxWbgRV!Tq~AIKLc)0Tf>8M>bq)HfLS z#)N1L(wxm;TgCG&`x#A72)7Pvl%oICrnEPub(F>zVI+K}#stZ|wY(ZKM2*R%bQ!UY zL8d>Sa0wHO^iAM#B0sA*#&-66qWP9-tL$|{_hlnI8)Mo0=jlsKqvp8Xlhc&E{K)M> zvJjH-M0Oi~F=P%@Cmq|IWX-frQkzhJTpj76vigw6`j=RDt@rGTu0f6vV-3dqW*i%x zd;n?hPV%FLkdG4IlaY_cGH$(o61Hd&94Hkb*2nId{2gNsF}|q@Y98mSBwXrGS7L^ ze=E}4>Tw?PuhfRCt9=4B-WzN!6wlMBT6P%gGHJb7LiPyNGC}y_!Jb6pk&VHaAX!TM ze6#B3n?=G)F$hb3l{GFInp?2m{6SNOq|45}PXdRP{4z z{#Urmjc!W6hV>h9vPWmpeBB4SE_&^xaT4=4hsU&!d4$9L2MI%p`jW8FGdPa%d}!fK zfDG)%WwZ2N;=f~k7~!K|n^gGkYORia=`lYOEg%ciazu?CL$Ss)`%SI;Alnhlk7z$Z z^Mi1);8(2lk9z-sd8V+|J0|}*9X9s32`XblMNeZ)=tU7;ZM>(^GTePx?fbIYf70F~ zBh#x%Pc`lZ#&R{^nr$EOu;SsTDBot9k9x12EeFlSNXVAM>h)tvHBWVnzZ`q1+0f4u zUlC&@>%A<=4M~@#$4+KnUWEu~j5+27hHv)(&XZ{y)&<<;xg0SCSxXt5t_p80uRpa zB2SfdkaszxQC%Q8>?AfIs$eJUB5{HBTSz4*x!)o_WEaS@o^Tz=;X13MG_K@^P4H=o zC|iR)x^phho^ZQ}Q>w3=r>+e4z7Aqs-hLjA8;Ro)?^R1O?{^M` zhBYX-&UqMn>`HN$lY^FSfs*faZ*nfic}w;X_@JAe?d~V`Z=AE_+16doQ7j$w5?5Nc zI2%yA@nL5%2l2&ziKkw1JD~gnoL(r$FXe;IEe@3|O?Gk0#)#G};9&p{rU*LUIlydJ zHX)F?q$Sx=#&T!9z7=78Q#PQ`DHK{Xrby>~PLiJ2czLlNlI-qCo{f3Uh<;Bx_imdb&-CD(!u z5WoL&aye`@i@>iHV=bS7wO`{7lbs*g4@|Tv?Np}e67=@a^Lojcmg%(JYNVZBotECE zWiK;96XShtyqDB*2Q+UM^P@lH5A^eC)PE`V)APVj7qB~&UBPE;tv`X{CRoS79uzVI ztb5Q~VV#Fp&`i)%g2+L-yp>^w8q z>j@9(i-1>j0i>3pFpV^TImEag(o^OkQgBHf_5nb9ezeL6!yNb?ewq8GYep`*Z*QJNLhh(S9SwLYn_l zl>0P}(?+`_jki11)sE0)*=A4P+Ahavy+0Z)L+uO2aK4PyH7*boeK-LvL>jAmG3#PJ zpl0CUDCK0kYq-eRjM>pAbPUpg%=AOK#E55mf8^XZ93*q)d|7I2mTl}_VPDfRA6N5m zWY$PNU*w8~;2}bHq;Z=SkLm`%xG$9-qZThjBf2h*)4E1xUXsdwhCLbec{`dT+trL& z!fInag#2RTF^jPc(Y>a|DL&1o@_0U>_J|N3ojok+>_Bw3L!JZ5^^Q+7PI5hq5gQ$6 z0jKtyiMdE`Z)Fd}wG+6WXD<Q^qus9O6ZwNc_$e^Ik=voLJQ1{^4BX8b z_HNY=C#l@F%csH}uI`_Y{4(^#$S6hCe_z}SAD$<>}fFgVMIB zk@nOm?Fn`seDR0M3j|Tx(`uwSU6t}2Sr)ZiTa>6}^*a*wV;E}!D-Kp2W*UD%eb1=z z{FzzrAWDpW04GW-N?VolO#X*xjQ`%JUO7AJH$5ggMo%-=IclweQQO|@55&8=sjDk$D$Veb#-Vec#Zm1>Mf-(O;4|tdO7eMB?)y|9ERWJX zWf$<;c6YN65N!0imMinZTt75h*(ad3E2F3GRinBrdg_n%#q32|&CxoWYUH~sO7RTl z=X~|vLpAQ(LeJmlFb4am`?ZB`PhGBKqWgnvm!HpiVmC90_Z9`_^`I`lsFAW|bxwoi z37GF4YTWG--F?yS3%xCsvuBO_{jmp2^M{$HEp6?OP}e)6XPyPmc0PB^g=+sq9NIU? z|IX;{OPHY?n7W|6C|MVb*~9XZh>Cl1cQ99#;zK%CHhXi?&X00_kHkDg$#3!rwcsBUMP{|~EchZwz) z*2$05$W298bJbeYPEq?2>KajsHqj{GrP4m9u2-^qq8#+qm!hlFYFr%~^}Bw{_^4*v z)v9xcqUlqk(mn?sJJ+QCrd4qixJk{|f>JV~!_%v4^+}YcrU7%+dn?%QYSd?O^rlL- z1vWH{t%{zRu4=HpMmc_~%JFUdgh{QwLFIag-5uq6UqDoGle$V2YZCv?zcAbxtwQ$( zY1}Q3N)or>eR%JV=)HT?dv~c6)S@w6YO9`v1q}LWyZj((=e7Z@jl$65;0#!0JZCg@ zTOsDaDPpQS-P`WA3vTuF`Md6Pf4h5Ia)`Ub`z?;2afceU-P<5V@M}CT-P`@|OkhpX zdcw~!(`t1(!~VUZEx(M?R^nNDet`R-ce{J0JIvkgzLgy0KFjL5J%LblyFb}$<=>Xf zL;hW(XU;@##?O;9O%tM{FXXtymx;w0KD9_$)J)19+ayZ+k9 z@DA-;ZUpsuUUePr4)f3^*GJE_QqSF>^6tnF$A8gsII?RXTz&FW(O90B_%ooB zAYF;}k0QBcC3NQ3U>8F&ZIT6JuPBFpl4p&x7lfApr!v-wz%CT>ck&mQEXON(YC+f$`fk$OY5hPNcB|S>1^eAdKN`pR zBi$>-vW#^*%gr$glWrO03{N`n3Gm_54w=Od%Ruqyv>d%uj*RRzwA_*X>aVIUmIZ(DDbW1L;rcy{jST@S>PTquIk~V&a)vG%Y;R|IhR<#T8Ot$^sb@F)D5+zUhsZg?t@N1KqYgo#@ zjy)0H9i|fBhF`M1VHKii{+3sUH*yn_3Bf+czWh*_&pR=cH!)P%|2+!(KLOi}!O2I& ziPpp7WZ1#gN!Cij-c8g_*2nj#WCN>#(6(<6v4%K)h#h6s7Z(OHc#zc>m8=4iyMy9S z$pd0g@>ASHUNL*l>xEgKYY+AMvXNe?e9G${ zWtsWOvi}46G;@aXkJ(I?Bj@p3j61}W$>!FEpn(_-OU9%8@opPufNUC8d3CMkC~F$F zhw1Qn_xH-?aH4qAdee9l)`y2gS@@=RvbYazbuuE;S9;WHZ=zlm@RB|XwvPwAQ-SN< ziud5NntAEd}Redi<%MQVu$Q?HiJ{3<&7z%W=6t4)ULUwgG=-u1*8FwZ=MW7}@1jw^A@*-`4a z0>^<}pN`oc9rEZQKr@H%b?R1;YYvH`u{TN;_RMZC?Kymb6n1DVU^IJ{ z^S{ekb`e|1&%vVjcRrAJU>nR^TcVoIaF_9>uZfgw}3|c zL#&CFi}8M;8ktSh`>9QQRZeP=BwD0C5XU!Q2GmJzz^Kqi2XK}vEXMi? zMXt3$+yz-#!*D%~1E>2#2*;Fv$1uWYR3V%yC2q=P2}gWxNYU^!*MEj6yIOD zwcy<E(+t3R`+><0eh+44`QuK6i64Kv-e22KL zoRk4WW-BG>?)WeTxn@)Je1C&<4uO2r4PX(Q@@^JQt)@m(`HA{&8s@vFWBk&{cn^8p zgcfwrmNbKESvgi6tG3k+BmHF2!fIhupzptTTgVnhB}%j!_P^My8V5g>nDY8;b6Vt4zq5{{)A?;LaG+oDd5PnO{kg1|e zFjdg3Fc_UrqdPK%n$X{8h)2E(q%CHO4HHywY0yUTEwzKe0b4AIJ$BIRPX z2ocOnac2=*&M1!gY~-}ku&tGHrLj^v7Ja+0pLPf>qON7QeL>CC{KXN2ut&Lq_H}-Wn5?uXmD`m(a6;z3w@Q~PUZ5KPN9bzXekat;? zVvo8zAN{#oRAA2UfgSB0T-_}W!0!2Vw;RUpZtHnBWmK>U)&%H*U>%P(U@V2YZ?U#o z+pKb=?i_yN=CSLb%_A z0v*oRu$0dY*Sp*B{de~}_aMr=745#m+J^6)Ryn?RS+9fI{_t;4I3{ce+~3Jq1$P-a zkdqNbtrDZG6H)Ri@h7Z&x&AP>3hQ9pbCqfiRjBW$(3|<g&Ou|r zf)gx>8O?$mv{bHjf@o|N%0IiW$v0&xC=@3qPLy*oen)#9Luo@@3p+gtsU&xE_fv^SE?HkM-lffd!x z1&zT+3{w@1iX@{fm#9Q_=NdK}sO11iU zQN`Z3-WP}9zfg(!^1iC;TWThJ04-wy=p?NvWEK4ZuBKV3O)H4N?A`CQaqg9i)fx%f z=zT6}743zU>|~^{e45EktbI;P%raUzICzF%Gg^;m?ckVs25Tal7__oniz_bjEcIrh zbsur=kax{z>z+0;J88T2n@Mv?Fh*Pdl?XnrMR7=006gJfLLG(jeOKBtwOw7~~K zt#Xw{%7M&RYhq}{pjfF$(o(?E z@-gVa7aB*YHqd2EA#VI1jo#t`aK}AasR6l!B&t`(cA(|*?RiEaq_;gqJ+y6aUe|UY zuRkC3v?sV_7LEe{-vO2S3H~2`9x)fcLNi&|uh;xLzUFC-Gl7-3Hfs%L8Ru||PxckP66DcwmS}I)b9#Ei*huEf*6_P9?30rJN&g>R znk@gH6Osl?C28ld0lR=ch*Wix7>e@U&jzA=p;lm*dpK{}AvuM~Q*>ZwcbN95u#$Db zD{e-*sd970=FA{~`RBB$eEZE*s)S!zETL#NB9+%F6)?$>%v71v3{m)e`mf_pA7a%2FHGJx?Lv0l!^oSx`@ zjJr~esmb0dv=Pmjn8f2xu92&+>2bJ44R%Z_?cMkT62mg)sB}7 z@M2;oQkFvR(?{76)iJlp)3CZr`+P|3bNKz6CI zO?Jkt0m%;#15W)B1$Y$4>v6UzOd-FNnv;XUx5(glF$lciv+nWOv*d!ie~kD5jD;Z{ z^=TDqV%tMJ3z~pDPU{ck=CB8N&M1@UAK8mJuyx9{i3g>AYe4!Q^=k^yZye<+d9*$v zFR^-NnYtd!L7w3kfZ{DN9_CkIm%@#aSd|trdiHtt1y;K&`1#n=((|LB?}>cN)cclz zs~LehJsLa^u+U)F1y$Z3f_s7iLB3HQ3jZQ`M{sL!S9p8SKY)FLT!ys&fBAoElRB8) zG5=p190;9HqmdDDPyagpe>?57RIcS#3Am<>;kRzN%njDMObVxi4 zs+#LR;T{4FO?i4mVW5B#F9jvY#~!&@mdJ%-p;%%SgC8yt6R^sCu4WL!?ww{3?F8P7 zX3*#I4R^epfSthSqJ5&hL}Zq*(Crc|!A{_Hcd@$my8D?ZwibvI>v?Y#-b0_x$#`Gz zG^9M4ok5D{XYCDcU^_v-H)4+Fh_xPe&`K&-OMK}*?SE$svA&Z-jK$$_<8RpSzkof% zv9M9NJFE{`6obs^Nc?|$@c-@qrTjnDx+ecm>tTlfADk$Y!+EZJUZxGl>}?F^E%7-6 zpEL1kWfY1$D+hdbU07b#g%xC7(9Ei^9Q&m0VG-y;U7pA4!V2;U*#@?#Y24e5dwcNN z8;0f|LFqbKos3R$KUS{0Lrct(DW>`VN71iuSZ_q@_hvT87;C>FHnXviIez1OZH%?X z8bHs-_cPedyzG8$yw3)SuM@9&cYtcnv^E$s#fHR8@vSo!JDEY&CNb6;BqU@$Rxk)h z-?1&YH%N??6Wmnz1&-hFszMY9PygL`!`f)Pk@&m$y_o5(b3PU`t(nFQ?8Vj_>2MiV zlQ(Smf;%&fH|%xJOfge74nDywpYN`7zVo(EQVwFSs^n9gGcD1djx3gA2kS{B?LO=wK=ku-awGVc`27_e8*g zVvGqEq*z~LL^wi#A+P>l7LKqc+xeh5Xu= zeLn%|2%;(kFNGh1-<=A6cce8^O!gfALpSiJyZLOL-8gs>`8V=?#Pp*l$dCSeu?Z5G z7l5wur1gaO63-mMJGbD`u*q=^<#Rk!VD)wENX3v8!e_WkCiNxoIe?x?YyRkpd3vuBQ~@dR7VPUU^z`#qIU248j(Z_L+3CD@?$ zn%JArp5X|8mq5(f9k#B0tQ)-1tQRO(Z*YYJ>|Ua;)msd(I;s73Dm+1)6MM_g^S6lW$LbaJipM3+Q8akkUT>TNZ}zTjo+N~^ik z0rX|GdltU8gUVcqKI<)dTdVB@Y-ZR;^h1i1Fb?R=O>qa$!e_r1QV*~%vwEpA^%JY@ zN`5aNU_Zg0;m`0V(VF+LKOt_$b?j-LBk0;wu)`XN{~S?>nxE@j3i*zg=pn93TqAnW zujNTk^suh57NBOiVIOO?u^Q4Z7l;8{-NxYm(~u3h0$1sdwc1;a@rZBhN<|U-;a3JI ziFgXJ)n7sXrP(`>kW6G4uaK3@geU)}Xy@0_%g;j|^BU`px;*DLgU#^xu$Sy5+BsKQ zR~grU%kCxq;Pen4%F^8F>@;NkVAGp+FLb)gOJptaduYMZSb6)1#(45m?D0ZIy!1pb z8J(M~z@F%tqQIVkbfp##=$TS+1teXU3NLY~Rp9CIe5sWiT!Ay_m7)EaA0~i>P#{XZ z4fYpqZmI{MdQGW+Q5NdabeML#W4z(Gx>c|~ z;ayjOJGaq7^wwVD65M~lIos(YXnag|FOz9E$D{G}62Cy>4x^PlRmrEw`4K3Y*^X zC}kh(S7`gGUT3Ec8z6ehU!jCky*}bpzT zCl|R>y}CF$4rySI;Jjwo;Ywg{i11PDw+Zip`tlpkk<=o``5W=Q1xB|5oc;IS_priw z7_nDRfu!*lybN^aaq$tKCl>P}{zpUqUntHMo$>z=Xut(PC3yut6|dMwqivtFA@xgA zzCK#uY}EBd_c@%c!qq{+udI&ZuWmwdo`+G@LtKi{LhW^`cQNktNO+)VSIG5l zUjsT!-1`P2?Fx)B4>Pc@F&BM9)ZIW?Y*yHJ)kM+v+e-UvEEqi20$*=&bbV;bO3&dzO{3D zTbCJETD^?R61|OHi7Q3#1ho-SVIEv2^azY8MpLYTcUpHES0(aoSPEe5T_)dkX&kY_vcR z{CaAJZg$Hp&#)8aawBr$K@Te*`8UICdD9GdZC(r1|1RStK2?kmZ;HvnF$Nh`g68w% z?j@jgy(Gu%Xy@2!{OM0l$I9`bn&|GmougPt4 z2~bS-qOW&KVBkP=wGDFKa;pMd@&S}_H|Qqx2i87|Z1X;bjCcq1!uyc^uh1ei1Xp7P zuX)=s+S9>yq}^t{=IxR@tqBu_SPy;^^gWTn zj%|uvrpo*cqa&)v6lj^&L1tN+D3w!$9jsS(^f?Pkjp^{mDn&V_MfLa?k&-EuNjJ0Vv2ZQ9g!E&R2;wRPDlBsqkJErR3EB)n!Um0JDvcy-iOnxnwxk!N?)PLXkhr)W073G5us&C}6>jg%CqJE-} zv(EqCKgaOdOn<2HI2&#}V{8d~v$f%lum$@(6l@9Ve~C2${Qpp_J>xNE8zxg;A%+pr z_O{Lwc*oH2!eDeb#-q93F!>77KIJWAPhzE88L(t?P|!E9HoYoe_0}-*413>Q8T5jl z^u5G1fwuFeim$!*%{=iNP({-H&xGgIVCb%Ig=96~y9Tko&vxc`$MRHgI%?Vjl0*yt zy+LK|U>$fH4jR0k^|sIkiEl8czQvl53an&r>~xpAE6rbs96>W+5;Xhk+;6p#>Jewy=|^1tMl+Ws(STa^zwQXwUvIm1aDaAWSp5el_XC4# zud@d>8E?4ju?l9ezs5({U+anPIqM?quLZzw%3yze;Qmcvf6dFn{vsSO!v30H1N&>8 zpd1MM>&qs{!#D9f22wCx1 z*mM;pR@!fXGS78CcIU`Z;C(714z*AgV!Y3W4)_3`UTKeyQtcPLf_;$kk8#PqVT-bZ z*aEHSc(>A99&AC%k5$S_Z%jnr=2)Atex$?2z_%KY?>(Z@+YJksT#U;((8Ay!b=)O3 zK~DcYY!-HaPFH%HuuiW0$M|1~%@(U6|L>F7VjaM!&kxr^-+L$lO=Y51vUc)d;viNO z8DPdjZhtVb&v_AL+UxBRyYY6K54#Y3bF^n*;A z-rv~*jdYCv)sR_1AE#d8)&!;{cC5Xf6XcVuL!uk{`@95`H(Cbk3JZ}wRvNfz^LROW ze4w}0IvMl63L_0jU*d`6Q)u-=-bTz$^n2ofxnI?n>Ky-#v-Uy0u@};@m)#elyL-ei z^w1&n)UL!X)mw*Phm&LFoB2j9tCq-@12O0Fy?pG9Hj7)aS0NeI&9HGQ#tgY4sD=6K zD^4W`7BDv}iB;87;8Y8VkG=Bhesng9Z6NW`xbO{ofE%GLLlz zTAr@yKKoLL5JdPS2@)7qH}yxWD`VxDGxWC)E9{Z}h9spdjq)iE%M+W0Z_me~bQ!bC{ z5tn+uJuH00yAGCUJm_rIw_X4@Iox}~yb9dqnbuXJfpt6lWY1IE$(+$0~#68a1?=%qy*e_IGO~e342JPV4dlTMN=5BIZ zU@zYS`}lUE9m;SQ_JnjTJ}Yx=l%O;2cEOm-!S98vC9b4_&6k5Y-Nu>)4xlV#(wDXz zD6SX3H7J_xQ%_v8txK1oH+lXO&B<~RRcc_GQFcNN3 zy){1kjdv@o;fA?w#X0PHv_75L&4G->EO}a6WL`p{IU}6t_kF{JL8w zt0nS7YKMHrRhr-{0!&HS)c-pcI2K1{S$@Ir*NgC`P`_ zSM}FYo-#;z+Tv}c?&sjWTxjX+@N@aO%nv?CsxDZm&$6iJ&q6Ni<$7E@4ykv+Uwo@a zBl%ELB({3TsyZ))EmjdI>pW1}0#MvyP~H`wx1WO!k6`yW;~Y<>L17wMCquH?NN&W( z#wu_N>?HRGHzAJrP0sV~Aft)Qa}0yV?^^5#?sFPqwB$J>49{q2C7gz!1N6kBLFNvf zKZNreoQ8OIgh9VFzVaLzA0fLD=Qld-!zc&7+Gv=(93%2%jH=&wl>ZI5Ti~7__6=`v zOtZjk?p%-ef2n2+<=EV5h5ealobKCUbMQ*P_8LPH<%t|V1ik%&IYgWv4wbL+ccG!a z+jtZs=`_s#Tb%vk5q26R8C0XTc+W&}n{yoYgjYJA(bgJ_>rWW{oFSO)H=#8R;~>Ay zc?Ipz-)SeBSwr1Uq7~#To$%C6&QNy-)1xXw4{T7B^)4t4p1%z_{E~enZpPSXiE&L7 zhx+I&b!{%jMboe?_`$QRVxu^c@|8gbNxkoiV$6uM=;Iatf9$;nloiGH@89WEcUPa& zjgjQlGbk|NfPji1!9jw6h?p^h;hGh}oH!$(;x&Mn;{gmq&?}fgL`IRMB*{Twh$1A$BNTJ_bZ(4(RHr+=zH3(YAu0_3wQ96bsyF9;jLeUrdD zXkrc4wVe{Xs+FKM2i5?%qbhf+s)kk-w~8|>{&xNAP2m!$S&=9O;VjBHQde=RINd2l z<9O6OE4bO8t-D0$F+x)=t`}<~7hB(`dgS>g z{}jVzeeg0$eHrl`Yt@5d-Gjicr#_D3`JFdzpe4;#HxiEL)WLoJ&Nx2kGfq5t^Q3tkcxhP)Tf^d$XExjD4JYHPX5%@^hiC2KH@t zY+PTDPP3|6O+m+)hUQ25ozvoXHNOq42B64_EUd=wY4p4rNsqMBqBA(dZ>(xl~!k0f4BypkB1cs%ia;*G?EiA5su^h^35aDB&Ej$KR4SGx`1 z*53NgxKF>|KgKze@*aace-Rlk{hB-%F1^}1j*=Whj(sF>_t2*VU+UMRuaNl1sbkQ> zen`(e#5snRE~5wW&sl`$hO)L=jp3%5x`ovke}ZBtahv}QJNcx;Z}ss|aDkS4GCmov z+gp<;RVDhkqiCCrRb#6)&we7$ThM|=j5gC?3?G%(egC4%qruW%!sF})l;k+KAteKO zm^?I~-BwlGf)Unp=99^-=2o*bNoO3lENNZ4dC!ZU0~5F%a_D(9o^K(6&tf!ku`$Fu z7YTQkHN@LOo^SJCp)Bo;YUq@!tKqu3BbHGAK!00`9JQN|@mK9C=xWu6g!&sxqhP&}}pMz7tF zaaO~4yZ{^wGGK)sOIwfx%)XabslyU zpA+iaU;$(CY`B1N-*W8AMbm2~SE18A3+3N-eH!Kb4E{Gl&pplgO`o99K5%@_{aVRZ zl;RHmXh+6q75XeC*K$Yts>`k0;qgYq_#9f(0(?QrqQSv1o_N%P5jJv$=%!dtwkE`T zw7^Eh=#f%WyOq&U4Gy{{0%w+^-Zf9~@lDQ*TE9CQ@>;pA9QVc${DVhuVjnNHl` z9qmlC+nV*w!QP`@)|nA~tzHI;q`(u8elNBho$pLEE-@!Nof1{Cy!;N!oU}RFpJ;b7 z8U_!9w}fJ$)XkU?EmCiYPgBBiS~!kV*LgR2FKB`dz0twAR0LYV*x-k-+#ZMjWPvvT zYtczY8*@m|-J286h&HJ=jdoU{=Q#D8VX21RXCRN=o%{-9of`4I)503Ig!^5+MeYV* zA$4ysBq?`n_g!pWE9pw+{lUHZ^FZD(?T?KbJUhxQ%|E-3XJ5q6e7leRP%tAp*&Usa z>4sohm^CGaUWEEG4s}|1gEb>M&Hd&`uE@`ysdQqDHzR89PCk79HtshI<^Eh^J%{rh&}U+sKh-H{DOvFv!qb2pVL#14H^ZX$H$E5O}CJz zjiA0zWSY~Dw`Uphdy+TK``7or2!xVD+(u@(qtso|qsgO*ztp`dzV1Qp#<_)wZrEx~ z3nirgU`WNxa7Y z`}{u&{DlH56ML*D(DjNA+H_c%PnCs9dWtC&;ne65tWm?H?gJz>cWM>;KWq5@LaO+*CV89ZS7$E!lQ*6b`>FnX&W-Tf)OhpT#Q4;B|J&45YXPX? z3)J|;1kS!UzV#RIJKkKNe)eXfketu@|0$|Eqi@$A&)$sV(V$%y%+U+9W9)M*dw+C~ zbC1?WQLq|^lm`+kwP{RB{0)tnjL3+9?_PiD35ms&boYCEt#AF^q_vYYw{gDN8t=t0MYAo#6i&O;$yWH%>}?$iTgFVy<%_s_fRq220Af)06VOlX{QQi(C)X zuK%9-j{6SfWsd{Ub;CZ?b(Jm2dd9*nL{e5VdX>-@d=biV8S;O%9Wwai|? z?CBqgB;SlASasR?Z$^QxKPNfUm;;4HzwkVsa%JScj-L*NCX>|yWOMyTDq;okCW3FE*C4D!df^&+DvIRI`>+f7Kb;XE<+<9&kZ?zK~Jk zV!J7}YE5~+shV#sPb{|=!AD={i8qmZQ;>d{svm zxRKDmsGoGw{s{@T#FrQ{PSRfP{esVzJljdTfM?Na3C~LVuZ4!7CLB3k6*8mxoRSaF z9T?3HBz&Rzk{Rn4%$yERk+Hf29r;t`hn)MhSU zo6t^Ji||fZQ~k&{ZxNy_BqsFzJhN(8wfH4QJV<$N{fOTiBH*lT~U(svb zb?$oBEl$C5YLi+`+rGlzkcw~kyr&MXYZkY*sHLWGQQG>lyc1GjTW4s;R zgy;Y6Xm2z=`BU&?@KtaY%H^@ihbf=TI{#YELsb2bzu9Oqb=-+seNunVndp@U>dF2j zccMSZhC|gax#W$E`O```ONpsN?o%gtb_!#f!ypS1q*o`f~SFF79@ zpXYe=L-;se1i?%7@9GwHt7^tOuLX~y#oJ;o3s3%!+2gt`E21YsnO(XXHXWD89cJvS&aShf%uHy(&!DHw$u1Sq{Fn8BBa=zoJWjb zfkDoj#P9{4!#_~77t&9sY#CR4jO`ZLGapS&w8rU)yeDtxLL}`JA->fm`eZzue)sqI zC3+tokbknyT!JJPyFO`~(qEKl(R$s;++MU(r~2(;)D(oWddPsUU7`X>4&?#Vsy(R#Ww% z1k%rm71cCdz?rPMoy^ssAkAB+a5YZ%QGMXo0<7BSz`;|a@wyLn_J!UG+Vv<_jiuaa zHP@d5_YVTiA6$+)P#a0TkQ%Dv|0!qi{YW)J{nPqb6^A3C4p;d94A8~lCtQtCA3M)zx&JY( zq#zuQx5LL4A?=awNPNRaSaMcLVsS<$GQo%XT++{dc16EI*^C;gJ|%W9y23A}->zkS zl9$(&;DDOy6DX4*WrvhAd}m1UD^lbxbQ=}GxAC22TxGaB5-N@&=Lh`VNW?-gjB~uX zlQz?a{&SnY!tWO26#S|W5@uO&3L3Dj&`@}xfDpg?y94198J&E?7)5%+2jH(9r;Jfm zqA^J8udK1^Yc)=dC;o4#nJ1-d9E4M#@fh0QC{o7mCqApi+1GJP5ML1) z^Nt~f*J#Pt1*!iqHff!opUV2tTy)quZU1CF7aW2@Ryy#u#=_wN`kehpg*6t^!A9uV zRXG}9Gg=Uaw&c9G?voN-)D><9b2xx6SZApJ4@8xnL zSO4zwH{qHvd&vO&mKs>VN_}xs?nTJm^`dH8{?>4jaF^}L6m%x8zJlZrYNb*-L@b)u| z7xHP0j>_|BosHt0yngupp&SYhoM8;f-~R+ut6a`|#`j0&V-<|BhoQii`I6k1+y>{5 ziQn46Xmq{qku238o3|ym2Xz?l%2}!2k-}ya#4bVax-E5&ekhM#20j^Yf1Qu(cXq8X zjBoNOb#uB!cR1a+Gd_-eyR#!`841RjoOJ_tSg=PM#u#be=3{6aqn4HBDJZ(b6n?!S zD8{bWDlsWWr^`A%D14n+k+r;TD&h2TI-}S6H0TDpVSVr6P$>FcK869_#pWdAWg9Q_ zMA}{mK6<$+_N70PBSE#R%=z?uSS&H)d>#a+P4d>*Yd~!-=AQDBUIToKyB((Kn3$%^ zT+0Y>+|I=HyFtqf}^=3U%K4$o$*`E&HKX~PF}9e;7!E1&^i1{AH=$&6K&0U zsFLTSX>0>7Bp#IZi_Uq88dg2?_tdJeDp&!>m^t)kLGzR~gx!aEN5X){nol{0XtzI3 zdB1%K$u@`2c`&~FEmk|Z8o56%n{ourt!3iS-LvAm0p3)?se7GUqaEng@6q>DzGNI$ zYId*lxZWFcch>HalpIuYjv%mkw1`RMzJ^y0Wvk`m5{~Q?HHv+=Pl{tYXrGzN(WXbT zCm~O9a;!$7kOwv9!~#D9`O9PC*f6-%R`fY$wR|959j7n>yf;lciZIO zebQ?K27=JI-M{3f(_dn^pLTWmzdY^sm!}W$^!EI94%yDp!;`;3zx(p<^hyfHJ@J=! z?&Y0l{w2nj@=tTvef9O3VPAb4alD-mmBX+5Fs6o3_RBo-U(e*Hl;+dFP$C;+3Rm_z z(|S5v5p6**HKl}K=hMicDdtcNf5^W%fbgI}pr1WD@slm6;FGYBZexP21kVa8Yb7+h z{S));az}8?1#eU0oSBbvJnPCL6Bhl4QZC6~w=lDa37VmyH}#5rF6b9Ibkbf)sja`~->=~v$F7@| zK*sHCE=CStkm!fyn6%!9poU0LpK?5z&-q{Z<++$z+mR7ng3_oizI{7Vcj#=sCUO|s z1LH7YG5yQkm-De5ur|h=@@gEaMIxQ=&w9muZ#EyQk=Z8tIC;BuhTg#nbq=9&J8Lu` zTF37-GV4W$;(s81^Yi@u(fK;OKPmXX-{wo4Td$fPOWYdhQOff74P)w|`Y}huIP!Dy zHS}4`Yro{f4Tz~c6$I=0tkf9B%ES2-tW8G`Bdv8u>K01wI~?LrNw)u`BrH&?92edf zqbXNWIo=xJNy|%{Z-CsILqM*f4)OI}k&GOQ^6%ZBJd-pVtE1T!AZ-@0@>6KvmP`gY ziQ6n6pJ5c|&x8UdZCDV467bsOJP!9bGwU7Vp1$6p{wE!n&Jd>={4Awyo6o~e_Icfy zOf#9kG#{&Qu5jVe@s0>SxGvHUUzZQxLWxYcl^h>IWbXMN-b{M!;B;_2;@;!2!*6DJ z^QnJ%b3nf2xpws?CBM|XIFV)0_r7wFa@~yGXvvCFMX8a=J;^)6BKC6Kl>C%6rA^!& z37v~rk=hiGX8zsy@W{Qv-fzh=uf3(sT1FeYij}tJVl6fwJg$YtB9OZZttD8I{DKY1 zax6N*aIjVytBlnkE35@o{a2%jwchv*&xno2Ce~KB7{%6B(ABpaJB*#iE|ArcXvQDL zp2G=l^_o)J9;By9uM2Af2aJQvQVr8IEz_pfS?)6xzyH0@N>6NBGsLHe?;%Fbky!~( zprg%W%wvgVhu;Hly8%2;@cbE`A7>tKRyM1cRpT^H3x4wrziUFXhj1JFb)Hu>UFe+;e>nfId~pwl`JbMgWuxB3Qn$L1 zNf=l?Wz^r*$+qBbt+lUEZ-9PRS=CdQS-Xt8>|SaUOCK4d*zgRp6m3=KW4C{Rovi;v z3p_ulvrw5z`6}<}BmXcGwiJa1Xlp zK(O_8#yc3@kV+*h3vb~4;;E8w6#Zdg^i(jHIp=HoExt3f-(B9G=xt`Z;<51xci&bS z5Bm~m@hoB7i&io>ON2P|}!V)a%84iNXyE-XglzC>liw?KvIgO`=^-%@iy0!k-eG#5hMBlEfn zQe@=l-xN6dCUdAz-g+(AmgmbA|7r5O%U-N@IlJs7d{;0Q{u6(U#YRc61OiWup3$wb zU~cTU#@n}*-_ke3x^89bA|neTT4%gJO2W#VzX^hA4b~1Ts}8KS4Avd|1LnE@>8d%_ zQ$zJ8{>qp!o6xS4FR`xH&HS3G*l*{f-R16iej07z$><5T`lo{r_ku1`DX8LOHRjv( z!QJ!m6g>_92CW)!N6>||eIqG1a87e(vU}5MST4y9@&;Ox`{oKEw`wbE=P|A9alyfK+cV%(zo@0%q0s2jRi1NO(!_7`^ zbN>hZss17U6Iw{we?a0KqR13-x)Q(34*oZMi$~FUetTc?TGPsS!ZpN-4;yoQ`kD=R z0T+ZD&;$Oa&+|_aO}&4fzfo=EcOzPam3on0K#P{o9{d+2bPcpRO#-3(F1=L`O{{SH zIc<#VRT&)8fg^*KECr1(#E!BN8kH1W%dR=x%{aZVbu8s-O?)*ne^n&tfX>O*eQ3e1 zK~wgD&Nvz8YOb!sT2G#2f=g*3KKhTjP!@1qH94;Xna9~YR&VDzpHp8RwqPHlX)@5+ zeN4Wa`?GZJ&j@>2lY{)b`4VNq`F4?-58crW<8P5tyVPoYj|3f4{0Vh2Q*_ z$eQGR0{^6VXCer}lD7^nylUKl4NhV7Grp5utXWpd-H~|Dm;@S%oGk_KVQ3;l>wYel zHUo`Lz6l>}U@f2t^mzzs)JmqDb$WHMjl2oxGzs>zbI_-$`z!;B?a^)gHQ_$X4Pd0d zd{}9L*V?l_D)scb_o~imtA=nsNDtx3Gko99Z+q5Wa1kNjjiAo!!Rt=SzQK4suAPjm zKcRCJ|A03CNs`pGzVwF%3&?$aRp0*2TE%xuzrIu7uCD6R?yFlZ{W?g$`sm%}W4m@X zI=5S)grJ%!{{*X!U5D0K$FA#US%(swpE~yOy!9JMv#p_DE5Ax4>t=2JReFPE#!_E& zl$G(8CzewXtPL13-t6j_h)W<9>^VS)T9T=JCe#7YD2SdEBLWWi;|2z(6< z<3^+0`@2={UBO|7<=!p)-bRbPgG0~-=76aB7`4AZ-_Da_tg0$u;n&mp%=s+n=>HxS zyPpNZ_p|ZJUJhNZ!cMSO@)=rLVf0z>nNv>bGvR*Z=Q{cuma62>@tq>pKeFL*))}k| zRl&clD(&$UwKmwMzyRT$^<4KOglH?<_!mh+PdC29gC+?`gH4N%TNnKHz*0~xWCe~oNnEO z2KB7qWOTb(>^Vf{9Hhka^sPvaizx3J#ftVeU*I7BOkfH z4*n?jETqGFO7%=i@vMVC82O2hTl_g2Z>}uspSL3OgqxmCW#F5Z$kjUThL~URrc&QW zZK9=Wj+dgg8c|z!Tid-8lQ&X=yEsd+-i?JZ-hXS5!0q7v^ZdeS3YM0q<O>xGmVZg$V7E8grbx7Mq2>o>KQ5y(b#%)~=0 zTxoA)Y_eK)@>e_W=(DiVEsV|zR%w=75QBXf~>T+HCA`4f_#WpWR-o;@96K3&Ubsp9G-;MUU)fNE@6_^ zRYryXhTh<&y-Xyy=?7hlQ5thdX7sVGjDIk0*T157cT{z9`v-rQFoF^MuU&*W^2xAo zMBM*b*BXQ2^w;#EziXLW4z`An&v*4;);R~WDpO?j)g_!wjqjyd@5%MqXy0gs;F42U zvc_H*4Go$j?M6`FO@pR^^!hdFRdP>?qo(oG+%tJv#8a`BpNhp)5#fenPhXSo=6*#m zLsy9AKg@=kXn7UE`Tj4g6I5r6DJ@9k+sR1cCWPzY4|CVYJwcBCzp69UdfMK_mIV!5 z>VAEgYYEkzU57d0Ca1N(KAh)PxYgAFzq&Jk7IF+@;p0^gtF8ZH;F-6_6dGu~M(N(5 zkIFDks^W~qUPJ7A#Rf*kizAUORp^_mSoJw8VjNmQEmU>RaIkU$KmQDslkas|t(gpJ zfJk>4DT;KzIF{~p>|<2j#Jo7(s>J&LsM+m9Y#L-@1Xw^dd$m zBH>y83AU@6uuKtDanzdd9cWOb-T)(Q4Oj_9@Z)N0s9Iu`bDrzruQHZ{o6yp)Z7)-` z?3G}C7ld{302r&g5W}E=x+d(Y@YeVGRH=Ecu)DDfK_03{Z&JiQusN^y;;@!o%dHaC zPW(bkToiM>|(XTl@tW`F)en=Xpde5l_Hm(BA#@- z|CeE;Jp{P;V=AgT2|bN#WYT-p`!P zbgzJhM>|vO67~R<^4~>kR-j`Z$Ih);q|;x^pYhO#+lyI$yueK2r&8j)L5OK?7uJ;$ zgw7!!rxPpUK10&8QjcN-yC$?~kFV+%Q|(z%^`hJuu%|a57+`e3PeLSZXK+!UOzrb4 zd{h0w{P-Ab80GhP(A|wVhGN#iLAeX%jdOh&-~36-7EdsXqmcG42&xm1)sNW2G&+Q2 z2fvH=1J}3G`(5Il>o@lo>M435e=^#-7MZ^YT-jrJ>tIlc-dsjG!?bVhrq|rh_-C(s zCNfF#p3!^a8TTeFvv@=8bsqpV>;PpGANgHK@)ylCJ*J`GGA{E+MW^VGjErBCK36b{ zv(YWq;8^a-Xle~ou!P_0v4xKl%F1^MR%D-mh=f)okUnFGJJgjvA``Ut=%JD?!mVP% za4NPD)zk+v$KYSaTm@DgtVrs*p9F$yA=2(D=4kWql~Xdxi?8Q_MkIHRKYZs%h^uH# z72x6+hM*HjczN$3ywA`vf<3s-{*{^C6tj}k(Yw%_|yLesi!h>vtSERcU~>6dMkpEUZ({blk^F87RtC#GndN589(n<#;o}+lZDW9Ox3;hse&71o z`pSC2F4NQXe7%CY{9PM?4vr5_4bBLPgYAKpyg0ZvxHY&Jia7lJo}^}*2KpTRhL zO7OG2#4ZoQWEECGPE9sRwoZ0QUYR^3jV`ea*3Cs?3#yOE9N)W;eS%+NZKTXS6iTGI zX+P~;PpB8;-OUB_HvvlV%Y^F0y7qUbteVXO{c|2#m@Mb)dz8PQ<5-^^)eqg7Wel=S zc8`>MhthbFb;1|T&fw$=cOMEl)xc|u-Xk0DnqFe0&FM~CGwob#%#ZPk{~BvaqQ7&l zk=t?o(EGBRWNt+)7sJH{GFZ*Aj|O`g)PM7mL>tp$%|iAvO@PqfAM8@u_x(s-7qdp# z)sQ)tuW^GP(NR}3x+eQ8eh2-7ujE^Ya9HSLv%k`o1X7270 zr2brd^N{i7w4jUe^adrHw{vT#xm6K)Pv{`K2~aXY`{z#Qgyg;-B|1{#k&eO6LAkn- z{9SsuX68GC@R9GrTJVt_>1UbqosW%+gWM|2k^6^Yc+sR}>IF35%%wD3V^)zQk(iVOZ#Ox&Wzm$DdZPk{#%<)m@#B95> z>=$X3Te2UQ#0I6XzO}qdK%$LlXO%FzNt?NP3%xCIo`nng+Fg;sm&T~wB_LwwX`K(B zi|0`INl>AmaiQuPw-3p^)R3e%$viD_9R5s4XgU?-DB&Utdxab~NEu3k%aFQlthMSK zbV9vBygJWntM2e+C!V!PlQu}_f1p1u2#e#hEO*ja&ZVP5NEo*q$;z}E+FUK;;$p!(x?~&*21VIZ@s0@CLi~p z+b37fqy8<7XoMnwr5nwhW>!n`^*Hn2t}%wmTiDNb1ye-clRRX@W>!zXuJM3>C7uF8 z*K=aZN)9BJF}fwX`eNc3qs5w~Bfh}xmH70ERrNy6Jk2Z!1>a<|Ztt{rrh!kG4lifc zl?|^z)9+)O-=3?kglUi7suP%)m-BZ8f7ki)#J4-BNrAStqg@TnmQmL{b+7aHfE)0H zvXxM*JL9M})RgRsBox1j8o0sVi^c4f>T!RNeoN=BKryxM@~<@B(}L!DfYDRJ55X`M z{Fc3x{iOWUD(IprbQMBp(bd$k4%M+-mw<774kh+ME4hw3?X9jMrQU=sMT2>jb*^fq zib2d|-IukI0>ZW-L|br99tS}}IA=TBvNkHslM}3B^#s(aVzna76Xg6+zZF)9-O%#O z-CQo7P>;nNx0iW;uI?h^8h^f?7xpIqrcrDhZ`5M_Yfm&KdJO!H)9f4V3iUkvQ~{dp zBOn`G#yY}!v~;(S-)yYo7hIabtnWPHzsh$5xaCz{n|n_OeXRGmQ=d^xU+m1spyiXh zSY^_WKOJ0*yb>&fDIiA)y{G6W!A)&TJZ(4@^X60V+bk`2PPCR#1KFrNz7p=wqQ_d6 zPt~^{f!<4Kb4o`4XR-PXwYtKtX=rMzKfB=7gDTGi{Rs1H zuo!OejRNCO`~d!l)<>^e58|7?DlsFG2|HVTNpBxCyMpo3NJ^JxJ?CNnVZW{F?|&SZ zc7J@$h??KFl;VE>XpmFdfWGi_@UZ`^{|xE%g*G#==q}~^3cEhB%!uD=qvV}jJD(Eg z{wQN#KGt5o&v_Xs*XKQny&pQfB|1ZED&$EGW2IVY3Fgb)elPT`&jjR=be;;N4)(?I z7xG?PYVRZ{nWIe!XFYwJ{r?{Jr3I&qir^pCu4pIxe;Z-0WF6})tErR4C%u@k(t%cHp1S^~s_Ey!4S;`8+K*?CrmPgyki%DD}0ekrkiD7fJ zmYqIj4ze7S(~I!ax(GTfS7l&_3La$%lz)x(Ueo&CdRMQ6d$MR>iuullow4vQkEKj| zJn?H8oq6*~YFIeCPtes`!J3uOw2+m%+LZZQ-pR$jg0%X;9YRZtZj8=OXGgpRZbE*F zMtBNsyb$Cvk=&C5xm(EZDz4_})}ZURR$bNPAWi?(PH&9XkpHe$JG9^J!VvE3YK6qV z(|>~0YZ+bf~!J2(ix@6gw?D@q&n2fI0TW`>)NL{dB!2yRmrPFfiJ;Us)*{HkRaq3(pe z9^IjY5G;t3Sl5~#4FcU`l=p*YfTOc0=7wS=l31j#$YLq!)aW4i6WORQHQN}f^a(B{ z4sHKDi=7r=AGZLnBpXh_ z58@p4V_bH6H9ZA7m*_#{WE!zgB!qCDm3h`nQjvveO={zr?C+iy1X`&8Ul@W@8 znZsU(1z`(Pm_lz?qJM%{W@D#uOyaV{E@~kc-=et8OZ4sjB0U366uG{VoYr8?_+pUV z#8aXyl#xXyJlm=um6qgUmo7yTJ^%)LPrr__3XQgmVREC5yFrq=*FS-~hVe8K=g+7s zd3{EUgy{vRi(Gk)Rm?TvKu?f79|XzpL4S-lkaL-N6oeNN{&oBd#(1)dDPikc1HHld z^DOUu#Q9h1t2~!y{I9HxFDum|X)d%bP-8fs#I6P7os2&T6!h`&GZ`UGwkJDlUYawzBYZ`*ZGm z&Q&hGuQ|Il9#dT7PvHDQ_d;hQX=bBIU?=ZDAFvaz?S84><34^BKIO_UW36}>66Qm_ zOKq_(ROAbUNm&<=ojkS@;&^AaK0UEbbBoJsbhwDU42RImM27U8 zf(CshsN5o9-=lx35li#YJg>pKf}!&X67v;ZM%<4DW!!HZ*UF^mWb!7x{d9Qu3hN3r z-I@qB1ivduj+2yUI@kOCVh}uAf#7*A9I)TtkC*BuT5DhC9~)`!eUa50X#4XBE1%N| zU2L6!tS-h&XurP!)SF^(NsHB{pu!jt_otHg3{txkIhK>KnXoOgL`E|OVLRc9psihl zT|nB}9##l7j5eI*BzG;NC81=DeKx)K(?Js`Gg7x!O~~^Ey$*?<4cDs6xO#w<_-o-q znMuf)zP&4B^DfL?aw)HM%E2#d_FcMs%bD`rhUFx^s{3l(8CU=loZ+Vccl402`zk)4V$uddp+~T+x(BbUj9kME^~>2`XldCKW)@AnmPk%QS2N{ ze-&^2_mCK7g3P>knsF??SOq`~rd1WLTLxlzF{%#(gcd$~KmTW#KSt z?E?^vhtV&-tII;}TO(Lq`-t=5tnbR%a5X@Wu=_jw-SJFplABm^Iv4 z&rEL_Qg1kIRdSy21EY6TA1*AT4{XN@z_r zyu6dSu++LT)?xclT}jRV&FKM>+~fX}%mlj7a)*#wb#~vAzn67w%969>mM`(2&80(M?g~-Y7 zKKs>xcXflm1WFYn>B`6(n6pTfj+FZZuIGSmdv`qF{}QAR-<=bfUX!TIKO>rLSA>uI ze}+$(f3VsyIy4gZhELkf!ZZDb;M{(l`obQans5J^+~fR_oP+mIg?coZaT+D}cny-b zm|Ftd-550Xdk3a^H2B^>Bba0t1&_O<_4jb~=IAc92}}vGZv6uki38@&XokNz>h5id zcCm{6N3_r05&a{6E<4knNjUkd5?g`h&Q0c@r!oVrV$^_UMLekjGIAy3s5p#ayrnA} zuk%i)U|U$m{K!|cMeo7-^v})`S~mC|93^0<&Y`B}SvFRp5f&i<$fZKPVt!lY$9w0% zUq4$vJ7=pCW4+BL{e+(8gjk{;W0;8$Bz1HdW+k?NbB&*!quJy7805vV#tV)Ex_U?$ z%b02$4GL`)^7_}0W!Nm*Bn;QkM#gBujzAUc>LWI{yV*}_TeJb6$raIZ5PQqF&_fpsQOH=?xLJNF#KUekqcIs<2Np*5tyL-&r{StRCbtQVhezBD}%2eY<^r7ff z;jVsooj+_nr3~cNYv?NavEP&On`2ASS3Qk(^J&!&pY$O1c8u3YJ*`%8 zwhnYon;kt@@@$M}uo||Ul|U>Jl-N~B{7+L;xmY`frBNlUxRw#)3Tv5D1$zf};W=#2 zwwiPUs~;(jXACdrPcw$R#*DMdl6@6peMCXn?ZU&x&{tdG6V09$zOz9$*A?d9jCcR1 zG%usRqU3F$uZmodp7XIlMhAU;n>nqGg@%n5Qmi+?+`wbK8WMOY8i{IHT2ukcp*X5a zzbUipt7GYL65g~qJ>FP-KGqwb>+{*;XBaxY^UV`fg4z2KP3sg!3o_OfjpH|rL;hw| zLnItPEvmR$((_YrS z>T&yV=S0TXC#Vy>C*0o76V5}46Pz>kiC$rJxh{@QXY5xPT^)aSkG~%bM1$3w5b5Yr zN=dqSANN+*VTW8EJrF#??DIsgw|dy>jW$xkJuExGVprbVIswGRLf*YW-vu|4!RSU| zPC4a_H3#(VH(APfJ9QJkH^q#AzJp$Ly&ma(g!NRZJ%f<$7Cluyq-Q-Hx2kQzHY}kJ^A!pNW63Fy)8yh|MaE{^mWw zCM@+g7-@DKNPBDiyMw!ewf=H@6@A8PYmK$sUg0ixR8)I2 zr1y)pjM6_7^haBnVAdyAgif52r24<|@tHY`hOl0cWjCE$p+(i`_~iKD8~+mQ&$kD+ zu;zWH+RaL0mL5#o_ZqVI`{VG|5G;q!)nF&cX4>W-w*_U*_E`1A!EEE z_H^29moul6u)kuhKG*w9r=17Q-L#gU*bAbOy4s(vcM{8PN>wSE8|-#}x8~_9{npkR zo(@1JN~-r7cM|4XU5piT8U)=lY4>xz9rTMc(H~8XHB|*jg)6LX?2XJW^zIJc?F(I2 zMjNA(yxXkZiSGUm)j3G}xm7X4Je08}5iN9yW-{aAm6@rMln(rUcU}v#8IFp%ZV{43@IgQmzTnm=vSxyEd z9C`kdZo>I^eTL(4l?~4zOpYRTttTj1M%T5PpgRzp;e|m4&3-#@g4%?w!RLKR%ia|M zebF&S>sX7^82r^NGie$1?bprFkb`Ck-pZfQ>>8{y8!}63$a|+cCE*|XjOcdSQX@$v zXvD5M^S~)ui0)t^5>@!RO7d(gGQ+j5!Ecyn^`Q7YH(iBvy1MH9|+;p}78)^PZsC(FB;5~=CbBDlNH%EaeEnvH$yW@)10FPE#dQEG*l{t zmp~oSpTWyRjsBFh6KnMH*8us`fbm5(u95y|fbOHsei7V8JCRUD&PUYlBdiq2?4_C2 zOnn~Q=WI*dVrI;xw5iR|Rz|_uFm0#RFKFS5nGxJ-rNz#J+0Px8b|p-fk!)Jc4(>94 z@$Lo3pg8P-{qIJ7H_s>2dZh186Jo2M%e`2#wjk7fg!+Y%X(c1$>@}X(gYlVRO%$)| zq&L$p1MR<`!`S36pF-ya#`jfOb$A^ONS(Z&Ko28B3o2A~>>frPClj1VKUARJ@JeWl zqKhom@f|FPi&^Ixz@Ek@A~nIew(5}gLiGknB`2y;-W${hZ=zKLWyG4wh-@18H)5;z zBQs42S%o)7G53xoe?DJ7d$aV<-lFg-+A#px6&rlh`c z5f(HjC<7bNM(T7pU>i36+c^?w^5t_0GmMLvi(E>$v@0=6y8B4Cb8v}&z5fFAY{Pt1 zo~G>qlxQHdkhrVn^V3$nWWVG@YEjtMjNF`t;2}fK+B)gzCFj=sx!j4|$bE@43i02V z=wX-d6wn`tZGIj0xoE2`OxE&VhtrXWvM6O!*bhjn08( z42*VRkG&rXoE*26n`16YGmc_?7wyIfo%KZWXT$ffkoFwPoyc z9PhWaN9t3^U7Gi@&^GI2gIw)g;^*UY3(!v#phP81(KfBb{<8$%3egOUT*!v=g24RJGLg&m)Czp7 z!kAl{sr6wqvzdE=pV8H^5tlk&5;miy?!rP?ypS5G-}QBH*HT&%pKyRL80|K#7-w=? zq6hsv_aC~UeY3qm_h47Fm#l&Alhz=&#CqB7n;)ge@BVN2TFUx}>}>&hj_MX>@cUb= zF9Me>Lmw(D=+zC$T^;L0E8|{Bu4_`B|6QL9-hEHIcqjSOy!~!#)>>PsSG+38SG>2Q zSG?UE717nPUyICgU$NUG8(ZN8M32KBN15;y=Uh;>SwRX);Y)k~gD(E#Tz?UKX^o+G z{tB7D${Vg{Bx)Ev$afDzu-&F|_iF!9klETt_gHsZJKP;kO=nCn2H8{?t+XbnX?9yR z&1svLN9kyc*A`h+h#r75^dzgiI8^W`eOL**2Ni@e4p|ixfVRedX2?IeyF;N7cXmN6 z;c#XN`D0hm9QzgYXvh;!-9jtykuaCi(%P!i(fqy%@3VV^ElB0!)mOwSff=?na`Iz9 zWYTUyfMWy$Zh1TdnHrT^&*@6xI@-b&#F=Ika=Pj_4Ak)<$sJ(kg9lW^DqzZeq{1G?9x} z!OsPx^Gcj|S>-}a2Sr5F4j+x|n6t^jnb?yN<2V>B~{ z6fXC(MosoUz1)A^kfWv&ZAljaX0a{}J?mEL{}5er9zJo2Y>_BZMydBA$}Ln9>3^wz zpjV5gCL|N8r)*M%LNzgFz%Lp)UscJ2(mQs>(j z*oNQ0Z|vOePINv{hI21oNtZkO?Td9+U8-t38LT=kb8fKjv#+&&PVDzryEB{#SSbJL z8R|x7SfXy?tHij(x9UQDg_B7%VYb#vcX4iVjKIW7?{Yj`uCWgW8L!mqp>MW(+TW-n ze-X$d+Y*c1XQD<}xlF~|O88I46nz5mD|yK13y(FkZl!i_Vl*RupAA(B}@0bHkFa?lk~f9Fupi6e!9k=#@I+KO5eZ}O#aHkewNG=UXPli z?`(z+M&1=M$~EMeIAUMwQXtv${R&^x}0h8jsrtpumG1lHw{- zY+#p@pEq?~dc_9TKt|*ZDcfMyPSRm6PbJ}pv};-U7!kkSkaxQJlA{mUlLBuot|ZoW z=&Wub)`;u6cr>#*j=w@fWMD%|sAOf{Z-5p>?)_txbU&a zs{_!B-FsApU5=!FEZ$$}R`fkdb_`kuu`Rv$C+zoww}lhf zkFi7ALFa(;HZ~pyXq5-m0WiE0tUgx6A=2@4!O+W%;!cgFZUgG|QvX!ueRG-jT;(@J zn>QCEW1;M+NY@2WeGxMTDOX)*u1<$5RJr#lR1rBReV|WXZYL+@0r-xjye2$I+AHY6 z_u(btllOzr20e*Y;hH?Fi$7&K-hh8ZpE>WV%2wTQ5hc3;oU(L0zdo4}L}jD0df)mI z4b}_R5O;`ui!~GszofbWY~G}GgZm*mhmWie-K6yq^{~g?kI$*?wNHE+4TnE!B@c~5 zgbM}p@nLo|MKA5Nb<^>fB$*p^Kz-?VYN5$ZGxk|PO&sdy{kWg6#2#YB&g^iH*9x?& zGGzC8{=Pid@4<7^3m;{+vp44FJ=Px8!rF%f?}>cgLyK*u_QLBe)ovv41ly=>gqal3Ge3`q4;{PCyzX|CyjpHw-UeNTD!Ww*m z8ZfeMMY}JH#D{PVTJ$xfur?bY;`_+9Gy*z#jlr9L3{Q!X=*jIBDXn53yuu5>74i& zeZ~Si8_tMPa;IYfbTi|;F5x63#|*BH4QJR5!x@akzSrY|HWW%cEt>Lv6>&d>lb?E_5bvElY!QE&CE~5YI z9Eg^A0(b$!0hwR|HFFNqwj(QzgDH{N#1tdvCNS=6e|ROmHPmaZJXXIZID_;s-7TEJ zYQ@>=Bjou6=fil8|A{Wc8~Pk*D)rgYYJ(nLYIj_Ge-Ue8!ZR6iy)TkpyNl20j2W|U z-AJmn7|q-mw|Mci?Hq{RTOFrPu-Lr`{nREXb3U@a9u%lgU7iO0&u7K)G}`Y<&szt4Lu)o`pJ(&TDU_^^_BLvG$F zw0O(7i*`QTJKHLy49^Emt%r>^F{gaQURWV-w?`ah}|h-+}S3oPXmvJYCJxcbvt>H{|Omo_)vnJFH2}K|+@6S$2E0 zPZiL0v%Y}Y>1e*?%@X~vH4DiiF@C43nm<#fIfUI8KYzz*8>em?ZFG?#VduD4`jwr9 zdMf<5Q^^RkVf?){rqeDZm;hTizuw=E#NCenj*K(+`qT8jpbAv1VeE7S!~SEnNqtDG z5j%xV&UW@e*@mrx;0bJG2lO@Jc4+<;yHcikr;riwPTExh8#l(~?v7Z4IuS{JA6nCG zq{5z+)=*uEo^P}D=V57#ZG>|lyMA_LRerPbq5^BXvzR*F0>b02)V`Ex+_zeL*h_kg zQ{XJuozbP<31=PoJP}`w^ZKPcs{}qT4S+q2o0aZD(KY`~ zLub7C_*H-g9sAjTM+!1GUk}%>h0i<3wr&Y53V+2(Q+=~O9aIc`4LxX|B)hW%M5r$fFc*k+`_ZrP*v=qgwSt%GY0SgTlzp$z!< z=VGWqzs6gN5utuAU!Uv4=iL|ZN-2%UxW^c!NQt}f*|{sxGqKgUCfSyKatD#;m+7xw zVV3N%i&PPP{Y}s&%ewGOu`f&(JyIHtj_h`JQmomjNpDc7YO^X;3;b@;I>>xn_P(ha zud!5Pk1jJDU=MWVt);GQiJs^ecd@+$-kGZx(&H`)uJ*6?Z*Ug{8;m~ACj4p$Z-40Y zbjSG_|0R1dtJ{y*U#Y6LVUM&gvfolKsv8o&yJs6s5=O$n7y2sQA#t5zkFbPcZ8T&J zPf&6MEqzbq1Anv=+sLd@%z9pLBV%Mh{_GunVtgv7N}dsvV>P=xn##&vNzl?^&DZH; zlyd$g(x^-q)27OFD;aR-+H&iL+y0?uU$C%r|6Am>d6k$jiP+nU+eVVopj)Om8AJmRbYyzin7cl{>j( z_Tk^@7JJNs_`v?LRu}HhHfGTZDjAC`cKIbIm5fWRqs(`B^9oC3j~o|hHYg*$+|_wV zk8xfC>GTg)O~E1Hen;kS^81GIAop_Nem1ha&AzSt&PG4kCI0P}|GhT|U(;cOr=;Hj!(R{!eB|f1SH4GBoQPh3`i$#Fv&$ z2=t%GLy?@hyIJSwm=fP`U&=m#)aCd4{O_dv?>MhZoZF$!m9*Uf=2cLP5i@mH#;%{r z_`|%_*=0T-(`&gUdC|luwJQ`{Zk3u#jAOX-jhDN#C{NROko;kgp?@;N*_1{~oTFFP z8JMRVcEr4SFULF1Y>w{?IU8WCjPK;`uCdw}eYro&>Ktphq+c=^eawb04snF^S;xjB z%M+cao%!Jj@p%}ZCz797D%xznX?|->4+bTx+3(wTL~~M-`>U)gjoZyroS{)8V~xE} z8LsfcfS9slNw*R^E`oDJzCW|78uQFDeV#rl80Z`t&%H{;pu4XS=)Y?&|B*f#9;l3a7%&Sr<6Yh~!1=Vj^<)IOnpYYq`!*L0>oFjP=Tl z1ber<>9znD@>AIz!FyhRq|Mx@Q)-UcDK*o7 zB>A1uF;!~ROHNMQnVge&UH>(nMZu9YXT@nI^*mGSMQ#xmT8q5?`atxZ-6U1v=i;3m z6%l90)L--TW3(*UpV8IFVPPQQ{z;g5iF&E5e@$v$_;xaz?3A1tbxlgT)1nrs{(65j zQAu7U{{7hQd&ECIIV+N1d0)*mS1K~m2&J0@ov`;#+$=#yxc zdY)C?&x0WN!kDTn{PTlPjjqu2o22Bge^T;UNWRA3WDd&k)F_Ur1hS+i1I&gjr4MLBw=#(HA&S?jY=)@ChO)&2{$_OVtPq^ z&55o_{$L6{{*3yYQYN88i_~{cz0@>kQ!?v5mYU~3oBZCGo}3tcogBrEg+e+wMzKca`j9q(%Cn)L<<;&XFYiIR0 z=Nre`ZLM`hif?-JH(CmHErd@{m6TD(e4 zuzBw^&+smdN}P0z)x60$)9Vs}xtn;}mRO$4$5O+anrMxldZrCJhJMbzjXElK1Z}l4 zbvrLcT78xL$~yS5yqC?DDA6sCsQan#ppiq5-R|^Y4m-y<+UsmYW(T_;R*&oQ&kDhl zmZ#hD*W)QY`o{d#e&AViJQ%uyH-5S&2qR(ORQp!X&5J)t_S`{qM`SDjOKev9NTth0QOEfejJ-Dr!H#d z?{~?g{Ekg_qtCB(`0gR@-4^Gt_Tl?I^IW|xSx&ypU^pBMj*@l2U8^kO{Xg=-UckWI z@FzQCXPhh4NOO(ZSQ*$LZLw$21~cIk=oTIiTC$Uu860poSpAGsRH2?=S20dc6&v42 zXFJz8LxaCNHCR z4GqT#SJ|M4f)ANSNBd-|x8K_PJ!Z1252W zSMJrc9^%=9K_&G-j8}F%d%5mMZy+AS;7qFftln--P}Ul-_w`i5_x6AB{)l?Tp+Gdl zI^$1L`xVXdnW_PZBN<)8>d8pEFVBwD;&8*ng7YMhe+_mD^NjY)4Oaw>jc=TcI~0D) zutHiHJjW{5@z}7e@G3jUVC&pfOag3#Ck5&Z5#s^U~ z>U%1sti+5Scm|MSVJGA7N!#d{^o+}r*;FNGin%ShHQ6KBlDs+QwL2;K9q11-;q6!j z9nb8nqbGT;K(q52dyv#hmV|delT2`c`Wmd?=V^Pe{%R%P_nyKMs=fadIm?E}6Awr+ z#PmKnTTNZ2K-L_`F@a;E`V&vW+we(jgI;&8SDyb}ng12-^FHv^_Og4>3T!GQh8du% z?XmtTv4aM<0?o{FXP-4USb=6=yk7tM$$(K)j5cMBT`AhCSF6g-ujp$kTWg#(!Ax@# z6xfn{H?`bdZGLKOi$22;#__;9Y3BdKm%2YTM(7))&%?5$BNmUWE4rTB z%)b;3^id#y9E~qWRv+!WrPqPXBU&5<8jhSF!*0w+v5tB))XVMNk^!HtH2O1G#ID!3 zSw}&i#j2U#gR~y<7lYVx6f;Mm_ZniZg!PxiC1K^k5PIQXGf9OD$W7+^xiM)-_9}4|6uQ3z^kh6^x=K>-shZs_T_9Y zDrmu`v|}TeR@7Rnptho=F;GWn$5QB*-lkrlwY9a5;t;C6K%x4nW0hh(Ql}y&2m!ny zmJk92LK2g3QPH8D>L^7E)(eINzV}_fwX)9%*!usTdFJ`%EAS*aXYIY$Uf17!y}zHK zmA>;WtiXPF;toXmeJI}_pYBAC?}N&I=VKIx+5ZYnd6?R}{n67q;DO*?SN*{Edvg60 z{#}J9J?t+%#Fby=hS}4t{^;AVOc(mX{FK)q!i8ss&V?oDIQ5Qyw)$meW30~2{REk$ z`rGZn0gMi_y!8hbTz~AS*Zh94Ck~6&qILa{AF3KwDH~LDUu=gFsMPNGEA~m&?(9qP zCUMKwp8=fuH`M2K}8On77CM{;<-Wg_Y&y2f~Cgg*k1=C5s=wXAMqA^TzLwu z?S>z`IyjhP_Vj`F*U*lwKCvs+fBPEbe19DF!lCX^8@v~H5=-fILU=-YiB0|hM4fyne;roT`LK}eL}|Y)`-#zXkUb<@<#gjIA}rMgc*f=V z!s`4MhxXqKfOYz9%qplqG9S&#ecam<=fM|j^cnZKJZo7%*E;ZyM3ZRR)Efr0PfNZ-scX2^=<}y6E5i8aL`27@CiKoDLi{M&NNR4e>#K+dq#Ly zcvr)dAy0ftJ@E--43{Ss!xH{A`)nX~d;+%VW<=QaAg1mD@VHOsPPSjlo{w{NFFBt? zy=TMXGAeU6EG?tpyPFMe#}kLV_h*O(oRxdYLq<%LuwLR7zZ{&8vy-Fr2m=!k`~PC= zE}UT)YF!KI;7RAn*zt1KC#>P>8D>16@1NitMl9b6K;b)N-vuw$2Q@X~9DmCiWd96f zHAvab2f6pColur9LwQ-|E<_hsc;~?~&c8YIqdUvoR0p#;?B!w3bgK)0PsX^OVqXV@ ztpCe?H#iTc*2{4>dp;WZ_|8Lb*Tx5e0=z^y;ESD&o_+;A9tunI(9AT92(q@rL;hXd zJJo(0y?)sHkNAzuTe(-^v3~=RKsyo9b1~uuXXWnnUPaXMg}FB|n3E5xD=YkKt^V2m4(G&G6bI?EY@BZw3clIFe{4(mB z0&3k4=POyim;DmH&A<=;UXC9igJeE~v)u!+R|Z&JIMp#DH~`uwoPivnAAExESmYM} zYz@eqklCGo89tg5+z;3Tz?lXEbG!_c57Zl<-VP3hBb>-;4R3LNig<#ms|PxVJJ8>e6`&B|>Cmisqgv;8K#$zMd=0IAC&Jo8P+idD`R za=hbEJT&t<==+6;9ViQbi>udof5Esu?EM+u97NBeWF5v>?%fV*yA!)Ra+3Z0hy7M;bdU=p6njyUXXh|cmpMtCGD6I)H*Mws-gQ-BlF<{UO9eF#m_L! z$qs{mgB3duc>EcT-p$JGMt0o?yb+M^h+jPl`}-n20;B@u4RWG%d~OhAq6dIRHXhgi zkUE5?#^)B|?LFCXxp_b{J03F6?_)kO4id^iWGtPX?{S{-zJupxfyehCYHob)c>5Xe zQPj+LvzBM@xjHYr>NrJHzl#~a!Tyuq&pi%fbX=xCWOZQb2mSG>3{(^TM(0{f*3y6a z<=F4&a4wU7%d4>dGxhuIc^HkGuv>oZovz#dE#UoutA%s1;>Y7GzxjSU?Db#Bb>rtG z`=Z=ITqBR34P@Zih;4Zn__;)y=KkM-UJ_hde34F>|}Y1Zl1E_fxXgO6LG^y4ktMby z@uO^@Da^|42W2UM%HC+Fq8Y(z=-@~HH_Q8(_kSZAuG*X9-R}L$d%&y3H%Nyn$AFaw z&wvbXS@%2t8Ln`y^AY%n43|06@$`T1zXq$` zYOx*!dTRlnI`F^A+K3XtbwySTl(vET7H~yyURhSa=XU&W#m{`?&zOr(Z76TT-xlQd zE#OlNO17bl-&)nD2&AfHySae*yVAnsKGU+JctI zJJ;jh4t(cbO}L5^6zVfuRlpnBVt(S?op_dgX~y^DIo`3++KS&TxY}VosqdbP@Aay@ zfD-ecZF>&)@;iK%sz!5dJ?MyrX!mO*w00Zj#Na zwhg#z9a>e7cXL+S)#qn%bsO5t-_0oBh90qB@TRIdTkvE}HDUXK!k=Nsh)XV;^2aJJdwSa;&S>U1+os?+Vb&x}%(`?&@DbNoh*1dI~z z`#o|c@HgUb{Q}PNng6rWgY0YkB}bGj?Nb7T^xPD?EU2`Xpq^={rwllXHTZp=%`29* z-YW~X*|VbO@j1%9Xg`VE^LShSNxLjRE9KeO1O!ul3U@8X6JNpSGUo~VY1Fm>pBZ7a zEdx0QI>^nz=yd3Mj)$KxyVtupxY^qY9M+xg25_`Pf!wv-_ndy2cR^b&fF5}_tU=vQ z7b5KrLh9NEs>WwMP~%EarPut>t^~@%Ae<{cl-UF%&n`q3{UW>1nvc^!^Rx5)ZJAVd zM5Ze<$ojT(C^J3#OlE-f31?jX6R7{1an~F&3aA1 zF6O->OYR+|?;Yk2mux2%tq-1Bi|r5x+-)|S(=V4*y%_Z?Z}?3!%Z$gh?5 zK5M0&MX+~{E_wd+qIb~J4?C>W;(QHOp0iZVYf}HB^LqX;q*eA@ZMPMh@EHBHWnG}H zrPuUkP-EWH3ROxQ@n~Hx`6VaoTE=F|Q0G^A?^>1Ig{QC3wM)*tMj&{u_C~`80mKjF zgDvwW+a0;p9y8vtWVg#qgS7XW>}OZ$=OusUBzrZGN6XW%I_CZju)y;))Y4#1P(a<5 zH4|f#WE=YlzI7tQrsNE}&9pM}UERvFBes4)Z~6Ch`8BHif!^|Kb@}&H`O@C<@9XmK ztMbQt%YUHDuT$mgddsiV<=3n7X5G76HDctgK;;~$JPFU}c3&5A4z}z2Zu9C>1Au`! zDdoYApG(zSWo{L+)W+#EykY3aPW_bR`rNIb`ib{B>z9au;L6)mQtzAkj@#i8+N9ol zsN}kb%!AB$cqi82Bz1j&E#oQe8ltby_Waa^*2GjUuWoN?f~Zag(+gN5<#;WIeGtp z`VoDhT7D09XbPw7;dw#J#$nC&{XfwAEHcn`BG;wk9q-(sM(I2H={g`O90$Jy^TNvd z?E5soONPZWRi-?g=u_`quAf}?SD)m*-0fTo51qwW5%pvN=R89GZnZ8gQ@*B8DsRtRRYpqj3BAhSRQDpj47DctbfxqjUAjWoE2Y2I z^Db{$ta~OIC}$|2PMvP;on8uPw485x#cl;oEOT(CZBR;!ba+*7ub$F%3Jutx-rH?` zucSY1`b|B^*GFILbNZQ8st128X~)&79WR+DkXIPKG*#;%>snpwb$Qa2J*t!x>ygx} z;l)6%mN7(rWnA5-TVlrWI=uG{{oc3Ld*4)da6}DVlB~i9RQZ1QF+I*_<>?!<9a#sG zL$=&MLuEd#L)Ogw{wMQS1oC~Uzbf4CUm4x(zY$!G&nCMj^8J=P@A_ATucpcQIeTN% z1-17^dp}eh^E`cTk264J=VS)ytNhdbpCOy{LlLmmtmFKN7VB6RoDp6bRe{To*Uw0n z+=2dOZtT}(>v6B^j|;90>#|qkuFKT>Mx{olPK)VDJX`r-r|OKypHk!c6`fU?IW1l9 zGeFS=cCX5iTGiW!YmwC%*`@SzXQ=1CuIe6>;;xje$oo`pj^+P8mj9bs%a7&%K9>Jm zvPmDy|9vd~_p$unCU%H1KO*(agS3S>vH#`yzf(cA2LA z_Ey`nU&f(=YUfdV4Qw9jpIZ%S`G|kErTp_plAne;AbB3Z35q$XRVX%ldNK^6cm^{5HRc z3it9_&dG?5`gzJtWq<V=|=ZG-+rP_ZT_!`6`crC-ea}=t58HLwyy#TMlc(n6#K&z`j#LJH` zvL|8wPC&eejB!`+Zg8n*t{lMFU!S`Lz1^GPJKlkJ`E5j7z2xt8J=6@$Sey=iQ@!~f zoSf>0*YtJu?KOQ;RN8sFzZdubJfXN3K9conHNavM-4%T%vfO_TKZr@sSsUZ=)?L>5 zwgt~8PQ|DU%GLQFqTgI)Y$-=teA=?^I68UEtz(5zKg^v2znCBOM}JPhx#9u25gtDg zT^RmCwNkrLdYm_2`;)G-j?39z7s^uBcw4@`i*K&S`uOYtd>evV9td<^4|`IoIKNeC z&aW~=*>pm(FGB{eG;|V)UFDO|-c?qYF3f&I>c89$uO8Nt|8m#C>YBv=Jd=9OJ(#Mo zHl)7coMA0N4YwoW<2pnxFb_9Tf^T;QXK!~0yLY&A;4!IIkqqb^V!5i}Tl;~%7-%u# z=X=Pz19NmMo_Gj3Z|*>b>VwFhShyANTEP7I&cduuWF z*7d-#m)&$CP#?+>$;NfW5zmAl(zAOAXA$A$!*~s|PsF|$#=V9;-0{l&3d z@5`JV@13ab>P8v8E{s3=T&4nZ%Pf$L6d02_C%rrML2D>lyCSnHvjQHupZlxa74SZ- zz^TcVD1rYEQ9di(6^M$f&aZG++1J>sfDX}v^80Y_%FNv?$D8c%AX=ERR$~3FL=4ve zv`$J^@v0s{j?CIT=iau~D8FU_E2deUC!1w&L7Z1v*ywW&35GP{PVJpI-MkBa;ZJ4G zLKMUW`7><`(GM=Nj9Pi-OFaXz6K7`5cDMUG-Cb^V{%keUpTbyf4aVVI)nLTYeNvTm z`Z&dk^E_MZ+tL>x-lW!g6IiPA@?1%?g9i7G;EUFefKC3RU=sdbi0lH*)}6tnYNg#0 zOt$6)o$hTxC1PLyd;kA;c_sQGX%tp76-{`E*Y(PZW z&Cv#UK@a90a2Y9B`fo#K1LB+{-r-Dqu26ZSyO5Q(e{K`*=Jj_imhx&3K6yAt+&{My z*Iq{Z_hBV*HSU8q^ktM45Jgjlm>7xw*$-6E^Q~W{>m5WSSU3x4y@j5;*xQKph!5HO z!CQz%_m|9H>^ITdx7F26$fENWXzxM$?JSVzQ2G|ySdNHLzWpsA%U3(yh}o|JUq}I` zU;yNRYOMR$GOuU;3}5(L@OwYye+Rb6x0r?5U4b!q%YGL-X}!;qHR}5Td~e40*IgnH zzJ(~Z@mRlaW&R9g6n@_a3SS1i;Mei{k2n=u28!{je-Lec9WexN04wt#+Px3I-^@Iq zC{gLiT8Q{s7!Stzk!4mE$RIdF2mX5-^7)egB9n3vccgY#od)Jw-%v#H9h}M=Z4ZcWzjZ=x9b$+`{e>Q} zorZsK_WFD8C@%9hJ|~>wEqu!>ezQK1d}GX$b$pr;_?CC8U9eJKgH?tI_!G$)6aof) zi(3%?bDr}O#{CTV{`a{D-5TrmbiGw>y&GSu>SG^CceCL8*Fpj$CuUsazxn;)yPl7T zfn+);KgwqT}Pi;g5qrKVPh&o2TJ;bia z+;A?oA;+6#k?P!l88SJnBJUQJo$%tcm0FA(A%mQ6;?&6?moX+11N~DK1HHW{2Kq6- zNyR`n`S+!h80cr+XMu81NHYrhY8CJDhv2=Upk2h5G3dS!Ux4O1nMc#dS-(wF{x6RI zKb$U=|1JA?#OOZ;TFHaO!`+kI&$^#M?7f8*#(!n;ThJ7M2H?MwTMS8-Jg(d+cV{7j zB8OT{A@bzXNC4KGhTp`oK59J_{sZj8 z=HH>1=T{lP&wpLLhEt(Wnhl3#x4pVwTr*#3&G(!K# z-x^(ld{xXgbSSt45opXZiFjfcxL1+qB4idZt6r9RksXzL)v1%igP?r(_?Kla1Ft9k ziNqNbiH>+z@1UkN{!)+GlGh^tvX`CYR;HH*Yx7IJx3PyVLmtgZnS1=T`AN9{9^5|( zcrueSlYw3Xgd0Sk6!Mi$WtMmF-b(svK|vW^G}a%S`+_wVSH5glA(Cz?BI+ug!SNLL z%b7vAa;E<$$jWn~LAj~ctA4q+G$rHvhW}M-0#^Cq_}4&~M0A?kz#Dflx#LcH?3h!`q>BOFlYB*x-Ifb^Mh zH)H)NK#-AMu2-w5+-vPspk1#v3R;@)lgdhyjx#LqDDgwZ9<`uau43;0>&D5NLY zWVAleRm)td}m)xiD^B?J#T-&)VUGH^R?=Alyh@EIq^vy7`ZpDtEnz%f( zBC}k{zboA3*ayoY|JI>Iwx{3TGl;Rt0c#=i%A^Ir-;C$P)kGk$>LA8TA536Eg;`kUwPKsbVS*A-6ft zvHcvodJ@j9kYIz^}?_s6?9s);3EI9OE_L%xFatVQ&*TXJC3B4W|X^)|_ zU{wOO|59rru5U!9>ldLbY;<<3-;xP_xBdIfe>gANyR-j+$dKQ=+kD)i>SLX&R7Bvn z^52cWmfxA*1DPK96VWXA{4C(E{5UF>|0Vu^ol|XzMGWJE(?3@Jmly^9y<7ji2WLQj z>D-kKV`=eh@D3$ao+M{6-J3vk~8cLCb9#93N${m1J15?o*6 zE(y*BTTcFg4?!~Ch*)zEEkA5O3*Bjl>ihHR_fGsCockyA*Yw!NeL#qHcDe6n_`3`7 zx8o7txijB|vtMufUEo~rV$B`!`RyH_rF(o2YXbk(s4@Qkv~XOSv6EwgqD9Q1pZSw= zKaI~roISsRawZ^|676cnQ=87!OQk{qR<*ImqJHV;O_^tDMfE3zu0JEr>(bm=h_3##&zR~8+~s92 z&E1G|8kGOf!^yGgV0L&xd~LiX1$i!gm-7zf`D(N+Ise(${>zpZ|0}l4ioLe@DnFkb zUYNPio`vx*56aztRey=RsmWSle36`64yWX9_J zc<6lpg6ouE#(96T4+QVz{?Y$P<|8;mQHZPjao*RRf5dOs;T<0VB9rBp+J8&szmM2Z z`s`b+-vRMzVf=MS4Yy$=cIGM9iIr$BYTJi;a1s%3oMnH}KMAtRM1LYEA$8pzXt5J9 zKjZQHLg4$1Lq-;2m7fG0_LI=3iT(#NLox?*HNcU27cxvaPA##$&{J><=$+ixOPs+ELt@KiKkWWg?eu#y3t_4FHTLCwnF1)*&C&f>Q;ZgJgX;QhhU^*KudtC`(zPg3>2t>=3@ zO5f6-CpqK18Cct*<#3c=a+i3N@s@c1p?=TD??>?SJbvD<{6}HP1+Qtr77pP9DMM6g zH>g*^8;dh}Ih?_R6({ej@%RNL{MhHoN36;oV9r$szT0j881r86zGUZg>D`#W0uU7b zJu?p6;2`eHVg4TQAHe)w02+K7c1;emMfAH1u@A<_ujF}0A$Y*A@hMrfsW@RqjZ@Mt zmco+==Vu@>OXM{ppDiUFZ&dNijQy6f_bdNh8vEA8@ehLk!frhu8Zq0zsO=8x5$kc( zUJuJcgObr1&5d(%C}A8rEdz{HZoyTyv=;yQ>|Edqn5QHH{x|sk6zXeJbv0T~<2yg| z9Xn8SyV50|!rw;Jx($C@a0g?{3#gl=5(WMUzKPyIEu;olsT)X}MBgw^6~~4@U8GyE zWfodkP_@#!(T=__M!ZqALHa7Xj*RMiSwZgCwX!b$UypWk=2)Aw){FtQ8yUIZ=y&t} z;+`CBG}wF2BioA=if`=a2K;4h>s4vrnc=LM2z@@qsC3Rz63H*Kl+;%|POOvj$9Hjj zTJfKjAHI|E{-tk&l;l>!e(@{6&VDp|ufNI}pI_yaU=FiN3EWqU1HQ%J;)-AhQnE_${}=qTlG2 zrS7pz1oSYC^>TV@MtnLnxsm$0AB3O4JI~4tP?72*QzPAS=gKe)PWP)&`?T;ezvpy!iQm!%8PW**SEId6y4HNwsTh32ytC_2j&UJp@su2EPz zdlk~oG5nvuXZ#<*%zDr!*4x6cEk7-K)Fn@0d8M6PbOt>`;@s4T0#ajY=z?rbm zR)!7f%BT%xOP!tGBZ#*yU~HjxhdY4r*AaF@j|+m@+%Dh>KJTyeSogz_0A&u^(8szs z2u*k5LQ3WKl#n0>lW(fZVVI7yGS$~LLF z7!!3UY&(PXx5uy3<7n^%H(3+Vm#h5c*4U`vM!@@f0XAg8xZCOze{g2lnSL$YnwIh3 zh_za9$3)w(J{z3~b9XPkpN)PPjKrRpWy@W;zeC+WEh<>VrsMh>63%zcdbrQq7Vix^ zbAqQR7>mGDwAhAn)xQp`5y2g-2{}GXfdJDNtFgr>-j#9ZEbOJa*=MU+S(@V<&AHg^X*wzsqm;IF^FjXs{mHw>q~RLVr^rg`r zi+%N4*oZZ*FeP2m0`8mX;YLlfh^yEb?Lz&-BN-p;q5KWe4r@x-p2ZLFhS#SSsD8>` z=)_Z5UjzIRGqD$&$0$4gdMKXA<~Tqo0CFIVU4)s@a)} zy$ssz%DqCbfFB9$#ROxMG;>rRjM30`=84$vvAqp49-{*q{Z%=YtLMPrc@yi%FZ?zlD2dAa*2>(i{Eo4^MuqZ+JH*~_x; zO4l3v0z6We{eLRlW?yY+4tSZ_!^49*je)uYw4pOM1(=xzm-1Xgchx@I0=!Dqenq1u zgvht3)|bqaJlhHE)dI$+A>9+M*Zj2;bVqo}|GPPpXN$*+bp17~9pTXh(2I5(JV&)l z=uH#wG}{%;HT%0eUKdP_>M}CF4XW+ZpNC<~lYO=qe5E3iHIB8G1cVXG5GHJ~MZ>A0aq(iX}LW}IbyO814Cv!m^c$_S^2u}8*${)%kD{j&k}nf+6b z^~E*S7c;g6>ri;pgs|N$@0}yz0n@|!@Fq>0hd{Qt&)Wiw*2l6}Xu4CQ<((tPQLRnT zmI7$T)?Vyc!%wGx_H*thM6FrV?g{!m_lD2)j>AcT!LjYgEe8EGb5P1lgubpWS$|vO z5y7%7`9AkKF>=j2XGX0aWF^JJzZ|}={S}%qD#gX!2|h6&ma6%2jo0W6!Tuc%nXo7B zbVguYYCWOR!+}w&%MkM+W#=SiPOZoGFIV#12>775-=%+o`HC@s9JI|RZDd^sVae%x z&v13m7GK7v1~NjzbJv72K9qIMo|JdisrDX>mtpTo{iA}KtYGI7re5lQqb1_(E7? zaj(1p`5SaTt;bjKsOQ3@|Bx5MVw&~5-qW&=w!{VlIiYFmG$yj_=chvM<%Fkm&&z)A zfFG6XhO|nsg9Dt&$NRidQL!x19E-f(8E*{}{u_bTlHNdOQ!;VicJjSuT?+ppmaou& zQBk{+se~uAf@XI@_ISd2-d|3=0s2HC_JcYt7kAo}6YultAzu-<`Y~WFFT>ce-J~`3 zY2rGQHVlW(axZwL^lz)egkBJCgq%d#X?`SQTo-XJFrUCzmbzpR`u1UFXUBKte_%?^ccCL#*5X=WQf$X<1+L)ruvldnr3pO*E>l(n)KRMV`T0QR_}$ z&trWYA$yXh7PlXC8Et8yyyJ|DL~h#)Z124a*V^!dj<`m@S7h3zz=zCs6=as7QGI$- zukJSomh#qoW%Nw?axJf#^<26~mn%$fq1A2RHOsL!xbB*;77O5a?XJiuf=LeghknZ% zmuDLAjL2c#X!|)~19a75p4l5d)mxL59VeM^stI(tI~%-&$Ub_I?{xwP0Q(qFBfuxeLg2h=F?z^|E5I0 zqRurIdsOzd;Lk&z%oVS(r+^=C#z=IV&iLM_QPpGC@>uX_8E4_oGa*}6gz_$P&uXky zv$n@*T|;yi;mOp!x}hIQJw`_?)o-8^1f!xAy*7`tu@;Wjf7y$PE^+j_JD}sYL+37} z*2EHy{H#-Tnr}Q;aT6 zd4={Hncr5}EH*(GAclJ*VnqwC>CXY^#)ejLoskw%ey;JhIDPr$POr`9e&KzjmmEXG z*K2@VK^cNPzQ!Z=J^3&BCo$=__#=WkweR?Mr?<`*yn4zPB15e96MTE2YaO5sv^i~4 zw1Koz*6jQMG7H9D+QGdo^o@JCEjAeb=P2FH zaAWRXO%o6LwC_+y=6hu9nTx~F6Oo6Lx}a0{+PsdetKIqAbs7Cc`XOszCHh_Pq+Q0w zM0*tZb}`K~Yh`|3lV}?#GC>lGi7c&>8O{+u7^^ZYTBMn)WVfhHyB&GdgqhOiH&g2OV z@g_4xJ9bl6OxQ)7R1z=qIh-w@8vbA5U~WvWmmN?q4SMWc}YkE9|aA3MA?MEcVN$@y~lz_3z1i#@siJEMI>u^sgj$! zV&PL=aiijaklXd&PW`uD|83KM&3y&^-Q3^W=e}pv_k;0r`*KCgME+)9M*5YK>#-WySzVd<4?tP!PD3<-a zC_bR(Zc*&%^2^meUlhNh%Vmuh-LKj$_jCNnSGwXA(G{xPjNf1He^+eAX|Wz3>bi6M zuJ|GS*IYN_*WRbRZ~a^Kbu%Ake#~=y=f~75{v-G{^z$-5N49UdzHZw0yQ20q`i5U) z%zZsq=C85|V2;e3D*BD@W^PqpAAApr=a~G3Je%@IS6ox{E{@R-{oVAz^wF$Y89R|x z$nUA^FNzlz%^SaSuki2B^n82zuPHxUUpMQ-l#85b)(iDQ_FrTP^k4PQtX1?&>Ds2h zM_IdS&6@j7zo($zN82Oj`c-ONOn=SXnlzEd{{ z3O?7a&Ux?~VK>XC7=n^hfT2eRD$eWUnuR zd|_VLoC3d0lP-=5cR0_(J_$dd@@EbSYeUK`-S8pfS?C!p0rcH0?}M%jKWPW9HAduv zLt#%Q&3teF;FkCjm1|3Q8S+Fq3&R%Fxy+TlSr4C<=%Qj9EyRY;(QYm>TC*qe9`ymr ze}y#V;>vJ4{x(vUfqzK&fye+`;_2Z!CDXwE;m#|vHOM%NUi`S)>$FX;Q}zPUzZxC- z*XYBY8Z|idMb8MEm7Myw{4rO-|4`g^$^u$fgU!Fmh5rh3wt==0%%zc0Hc_ruy14Ye z5!YLk4}iX!V)^*_u+C!sG15$tjhKI|uWz#MedduXq&}eizCG|w()KegYK327eSTWl zK}nmT>B#)fzMZLs%%eE7x_xxXG;4EIoT^${AL|< z<7r=;v8&SmT5mxfhyQQ6BXSvK_ks%>igjZkem<^m`2FC2+yegx^2UXo@YmB%Cv8vK zQ{1;+dtR@Nx&ky|s`77}c}(oSLTi=<0emZF{Z(LX!`7IRJ(K97CVwH;ba;c#7072w z{iy}SIvD#}yVf;0{zr}(_J{W87TdGM&YkEP9l0gZPT1p3owUFGPVdpJz8{ILlXfTi zfH(W{UAIfql1D&8n-Q`SrXEkTaOp^VGW`SB$Fq5yjUZM&4OpG5n&_@rsV zua|*7&rjEQ8v@Dow*fgC#b$k^4}$wwY$&3$AB+F_dyW6$-klaUDE*T$Q&YoDPFMH< zbW!H5Y=_O4_8-x8-e0T~ZI}gM514oxp|QjLMcSSscHUC@Y3M6`?}gL?O%rIZd9OIM z>lM#b^tvP_40iL9c2icYMefLvA?*y5=i$2oeMel5`<&0%nHJ<0U1Tv{ZJy$Zjd}2U zX946G(mWZDW@{*P^kVxK>7VeC<*=0r?V=w;=&FnXX+G?vkY!{Hp7T3A*aWcGMMj`p zf&Gnm522C9R}=bM(^2%SdqC+7(#KKJy0nZ(Yp=boH0I9mD#l86KsMP3*{cvzKG|Co zgI64*wh(rU&3*%HXr(cB3soE-PASeYRqY$Nb_jEUAGeqxt(Q&D^p%Ok`aUIl+{ zGS;H&2oF5E4}rGFC5U@U+9)wum5`$tud~x@hi|w}*dCF zCUTFN|AaR+!EZ%go2&_0GX?l8AzRbGj(1N3{T4k=*1KLOF69lbOUzlGJevMV#*qlW zV2ouG_GLqQURWP<9As^py;HL05L;P~^^WJ2jJpAH9Q7rxg&oK;!?}?AO&=GATOs4q z$J~THxE^!Oz1IYO$=JAdH8<=7@0$u4680*TNlsR-dD?x(MtpvmY8zr%RD3AvcVs-p z&NK}?sTL=cePz$54Aw?IXYWGH(KN*4VZFGZ0fFIjtoyaFP1|%;ydw6e`0~5{s2HAL%b8a{%qK%X5!Pj=E2r`enYa8^hf=3@0$A`X+ zA&|{Dwxr*b(HK`b67ii}ht#1eqXs2UF|Kw@vtnhI$j(2*m{3#*Z^P48pytV`_ceezqNO)DA&>NMtv1Ae&I|NL(RD@ zejjz^?U<*A{1oWB9@aeR-O=05_8z_MW8udDKSTVLi9f4hj4}9O(tfkwSwGi^@uAI! z?nzrW|I&v>y7PQdoXfPZ7QV2#5%pPRC)YX~=Zw0n(6i;(`zE%EHtkMZ_>jz>_}B`8 z=oBV*GwT)phZruzh-`qa+peA?-6zeNr|AshtaI@3Am=#uuK2+D{>rGyBQF%cUlVX2 znpBMIOq@dJoKl~oyde6E*!-{8dtK-d{fh0nU#p-?H3O|#Y+&W;zIDn^jGFuEJ#=*5;gO6lw> zRz%0+$UgZ$sdGZWc#`+qCRIOVLCSOuu&@D88o?yq?dP9OxTBQwsLk=o8m8bUEe6;u-)S!P=w_<?sXgYjU z(-6~7`oADB@lIQiOa4*Y2VbKf=Gec#-w`;HH$ky&)PTHlO0@csHcZO2P`&*&7g)5B)O?Cntc z4D=$L%OI_#-D?eKZ7J`i?{i_;nJ<>PjQmYLFa+`x_ci1K$XTQlt@fgK&cq?dijkf8wr0&KTi7WtF8pv`p{cJOTs;{xxNuJ1kt^KH#J z&Jpbya^GTWNw5^LkT}~N@cHIE^ry^bEsIhX;J(5*Y+s(53dM^E&jixB1kka7IJPw4`TSf@L^Y`80G$$|r3R>Ds-B`Stx)`$@OpMh{(R!t`@iXOk z#_GygwB!Cx(11qj=PFKUNJ%|1|BTr?7)y**xAxo2^_OLDz&w#wiC?`De%3j_Or_S4)^rDK*A3vS z^;n`&>7=tlS;RN{>);uW#HH6d{7Pj*m$Q;5g)8A76kEVS|FP(5=yH^^gy%jIfOdfX zGd8)^o*J#s4-KDHJjK{Q`}!$L-$nhkz1KcJ26QNiPv?1cW4CAr&1wZ5Eo5kurL1zF z*8#hP#2v#P=~P7IP3zRyJ+7{AVZ4DlZ;Kc_+E-KeMw?)-*r@FLM3D{q#A5qC@Sb5) znHxS1UGQ1jl>B+1b2GuK#zZY~IcOwfimnb91zl=f76rp2j?bc?LjRqs%by1()6a2k z@seP*H6mCB8omWG_7>Q@nn61nv%@jZuvaJ_DP#SRjJj;wTU+2OeOuwJi}j; zX%4pKw?O_8{TSyUIRUWY)PB)@AQ~#aeUMZ zKax390AD%dejdzI#u$par@+2@Z}=c=d!3*ijq0oy=c-4aF~ht9qo5Fuft~^z4(Jo( z(VJj%)o~vRdtzMxeNxE{^b_72)n^yrnVHdpkdX^%&?v|ot@-Q0Uk!c0d4K2~jfzh{ zg=aV8{1V$Ew9mA^#W_jI`{Em-eaH77&R-5$Rnf1ohV}Nw-jw=_wmMUzjfkC9_A1o} z^7CT4I|k!g3B719Xtcan;wUOrpV}aol=`j2Ms3yveNxFgy5Vn}s?KfGA1X2Ml#_%e zi9f2i&y{#LWHGlAx~$k)8N(~OgNd_&T|9)X8oWc<@57;x1tI%k4k(j1bN^(hXVV6@ zOV6?KiHO`uOal5Mz;SS!tlZKHnD1pT0v`W(*X8@vn|i-nNir-f~{@?Ytg9%HZD> z!t_~}VtS!;WYBZ!inJ>?06s|g zgm`wE{9V@C*r-{ZwWl5Xsjv;>t>VWrty7?1jB zA!vc_;txDqjRou;@aNC#rH7kP=Y#G!pr7-g`(uAVMrZ<#Lqgm7_C@qZ=!2?HI<`@b z$wN9;Y8&D=>#>*nwuSqt3A$r*1loMWdO&;>eB0EM+LTXqEMf?#Q*bR!h0bhr72ki- z^ZljyJ^pG-_=wmdyTdto6TkQZ=B^q1kMwp3EO9c=^*qm@bQJOd+8qr2K3X3+*Y|ni zN5gp<^_;Bz4$Msp#%f23v6kG!6_AI}C-8Kcqrr;5iLb%zNv;=T@0b926K5YZEo_M= z!1uIS;rk#qRL)YR=Rw{}Y$qFXyZmPOerpxa+5Cq_myX2MN* zgWwGtnM!%L=GWYT@uQh!OP}RchL>n1i(%-P`U}Wx(Fy5B~BQ9nC)Tv5+!(ztZ zUFp`;Hn(6gbFgKd-h1@{ef46z;WYmyzf9*D=Urovxt!Q+qk#-;A!nAU@sEGynM+Ha znSyV-F^Xq+tnVA>{jKg~j9XPI*4TN2yi^l?=U6qwfUj+QN zZ(Gd$l=GOCd$;pS`qXfsmrj?t1=M)0#f)>Wq_4EkL#AuV+WJG3f8QG9<F)!~RKj+Ut9pCX!&A*AChCHwEZPy01Vc$C* z_jwO->V9<8n)V;HF1D(;w&bp)zInR7VaVFE+S_D3;Id^``ldasgKOh1EAL&7l~o0p z)Pj{D;2p}Qv2KZJY*|w>=ViW@dl&evU&`E+yTkvLFW;shcfyR^m#q7Mc={z|bXtq0 zpSLczKLG^Rcm1#DKB%t_24d-9e=zPY#D)B+_Gj(SWW*qLg$PThMEP=^RM=XD7W%5v`$hI@1dnfl{7)Wl&H+g7AxM;=;?|=*@a+}2W2u1;IoWhq%;-Mfzh|k>kk&NyCHORsu^MZeX7ohzamW}K^ z$JqkEPO)j~EVU+EEyv&>EEy^V;U zs&{7M8hMP2x5TEISPkj3;qwwl5JimHX;7F@UGdTwe53aaqUi(q6LkvqaWiZXw1*hk z;=TC!U+3lPWBOM(|MM{BMoy$|ZqD{`J}A!^-^^?1EBu7+US(%|4r9D654qPK4%w(8 zS_>J6aus9t87J40qn(E5L*T=KkEJs#ofGopEwF9Ut|C}{O4fwjg0+B{Cs_+7)@KaX zx8|RiZ-W7Xb1LCB@XzM-P%Zx%eMaBwB==%1hxLd-+78)~_*5HpyuIl1GS0;@e@*D? zk@2GNUqU|GmS?tj=PYIuL|8S4tzDW*m%A%ihqVY|X0V!Xl-*uJKO&%+0^48AJh`zSe0 zon=tx+N7P!oFJ%E=RT%~O`)&kvn}wsY`~tahrYiaYpc{W1?onX;DWm z(Op2_p4B!Y(mb|lg=*8naC?3T>Ne-4jjqVEDQ4Y@3|T_2Ama+XlD);XA!i$8EEwO@ zO4+q{eF{Blb~dB$uoWsfw98*<&dQcN--WYJ#q@LxWMA~RH%91TVDUVMQ;hTcCHacr z;oP2Z32>3t;O}zZ#~C?wR;M>+d8N{$DDVIMMm`+tIY)qWmHx^bpt~=GZ+N`gb0zB< zG?Vd3&Dfs?_mFYbvbG1SeNL>J#CBLptBl@9dLvj$VzXu3?FzLH_rex36gCoxOYVTZ zppZ(=*l=$ywSeKF&Za?6gKe<43nE&`*vSLTy_h-7&hM zv6+c4!04i|d-kO@LR%N8 zcg~55W5#qHumkd(d96(hgBnlhBzZ6~rfNLlJ?ALBdr`C#GR6V?P%gLuWpb`oaJ>>+ zn(?8N-?rtAZ*w~Az4T4PkMC}V9u64*{DT;$ZSb{ljXdH{Rd%$3Jrj6{b0I67qwJ%C z;R+pH;r0?6R{Y0D#{Gcz!LMQDLW#TM_sUSt07Q8IP|#AARltWmG`<-n)3&*=X{k8&o!&;^vFuQ|19FDJ^o{2||i}0&P?gh6S zascl)xO`@vDL-7;qI_g>mVL{8NAyf9&7i z^9VqGgIy}w$A$*)(m1EG)@VnrQ$7%^Cxx9*>>mo@J2Gn%>#9h8X+Ughorfn_K5FBbPL(jy*xnS`3eu99k4N+37>ND-XV@!sb9|UChE3wj%f;P zu9Sz8zAaaMGd4WIZfZr`vgnWtA#0Iu7+NQMM|3;*Q{WR48ffV0jSBNa&fp^61!K2D zVL-m0y{~25WS{pYa9>0YeZzLlK8!&reXCOWXh>2oXu6P@x*@pDbk~KuWigf^5E3(uA*sT+u zRE+;FJTUNE!l}{I+MX>o7|3PXf0M+AgRiT#LB0+gb#->4NAq2t<)a^4=B~q*SgqRN z++ZoL`_POtEYKsN19ue3_01(%1+eQvKc<~p;{1%Lai((0=h0&b>6JU%^>W?SrxeCwzzMYa&~3MQqSYo9Fhr;<^ZOs`6n` zKbitrwph0#C7nU{AhG06Ln-fa^OE;&lleSDCuemS=d?bBvurlv zJYl~rJvS)0`qkF|me~CNiFS(q{t$d~ve&k#GylbLnvM1@?N1eZs5$#%&f7G(yVTi3 ziKpe+L!wlcV%BB#Q^BYq* zU#5H!%o#NydN|89OjieE7&5WAHWi ziNA!s(PdnLc`tkuMSkY>us=SoaZ${C%6YiG@LBHyw!PR&3OHX_$d|6cre1%y@lW+# zo0KVfe8eX}PGH=^7>!*5o<)B&V!j1)2W`W7-44)H!A2FEQ!y@)#LA9@%_uqlHXk_g za`uh#1n^{navjq`+Y)^=v}KhS?KeF(y?*HAtO|Y6^i?6(VKfJE0=2}{(D4_NClE3U z;#ZneJij*qak})!RcO2BIR?`bvXac7;rXpG@Dyc+t^{npK^5j8|##JiqBg5PTOQ6C(637Q?iA$p;Vp&k8mV*U1GdBZpbO2 z?AVE~C5a6{yn@ST?hRWU#=e`FAF=hxoKUVpT#vqw_cH#8xe$1!neo#JeyG?Gi~A?> z9k78SPD)~fWo;#XRV}yStVA)Mpya*;2046HVjmS6)R>=-Jy0Brj6TAa*yIz_=MsfM z{77upAZ(q$y^vg%#dcna87GE^#Q`Sg%v8 zL;B`q?}|T4`q~q}-*_0A3);H7eeoB}j5-jb!}BxD>9s8{apLk`+CFhs4Ds;o7z>{5 zZM1PdM8$~68C;=L#q&H^)y?s0vSz}sMjxQrm&An$n*Br-?xu^QZkEz%Oo(ef=7tV2=qcHIrL(odBL(H@cqiA?mggTbRTs^re*v zEtR&JvwVp^QutH>F~^%6oDD&pjgY-sao$gIuk?ARXU?9O9H_viM0||!js?nA^I|*& zwh#DMoo3+v3V-DJk_LqvQ7lih?!I(5!Ee}>movEUmBU)-O|gtic?L2t_FyM;2_rK$ zW{x7)p`Y{vGUl}n{0;I1{I4Q6h`;dtjB!`|0OD#zE&v{abxi;N`?d#==i$5&)*tbg z3Xx!n9>f1VhW~pE|2MHs6zeVj|HA(jT})zG7`xS1&Mnp>_R2YSb*@?LVX!A42HnU` zMql*(UG`t+gGcHpqF)LQMh`HBrYZlE*f)gF6R%$Qyx7x?4Uc%pjBnb8^XarL&W$dC zp7(R`w)?#0z&9nv!sEyfTL7+9BkX{k*}3Z6wZTXw))8ZqX&Yf2E@No_x{ZXoj_7cd zNd%*649*=;-=W_Han!KE)mqdY6HFe_-76q_Cwh_CLD**63&lR&2DyVdHi@6o=u@s? zot~1xq_4DJ3|HrEjjWW|Iujd^$XSVvNOXg9!&O;{pECLgb3N1`e(Eu27i^3sPZec5 zSql;aSM0kwP~->W+#JL?sN@_~n*%+=fgTfz9cimO6}q_T3vF3{OJ_DXet%u>5&H$# zLZa`;cnyDF@1RX=E9?QwbqrN$e4@O&*e2Af&P;X3^|`aP9ZqyuiFuYWNn+RgK2Nz= zd^NK6^|(Q%+Z0zszlH4C0r`(uS<B6Z%{j2Y#@ zgK-^m=xCj?8E1={u%-%#liL9sT$?vU<<;T(e+c%fR;6=Z9V{)vCo$_ve23IYWz9Vr z(2v8tFYh-o`LZrc?PMaKAHZ0dc<)!R&ZoiNh4azq19F@R<^XJ9rEzPr_8;+&W|x3{ zSH+o|HO6+)zf4(}_<1#6vJV-TE&G)F5q36(C0+0GY&|i8y6_iv1m`uJ*T#>%H>!#7 z6XGYpkB^@memweq>GvdUI2XA{xaNq1-vilQ^mNHDAoIHdx!`NFBZ3vmwqax|k<;0p zDY3iw@;|Kz&zShkk=YC4EyWFSabsB|Da7z>}~Mz*~o*9 ze0H2G$!UW8K&szY==b1E0DOTf^_eNj2`2A(RKI7rU4i!q-P^8n)Ahbb zfy88hJyqp}lDg}GJJ1N9xYRASM3JS;JUoxwyv8PA=16k47u;fAmBh80_x)`fG41Z0 zi!ty8bI*!gvBSO>Iy8AW&n(Fqj=36Bc6qN4;plUi*dQvA=jrJD>Ah{G#x7y%mh~rR zVMrS(1B`@ib1di~c|O_=Tg290KU8H%3~?t^)9j8r5`*iKs@#0Jy}S}S~h#DZ*DEYnG$?a#@uXW zTsdOXw?n5b*j$g@+P*J-q+~6K-KDsnY#ZBPu)q~&3i!%8>^H{5|DT=JE#A9R6&`GH z?kBO=m~ra64#vPYOqqsjfW9#^=Ul_^F@{6YH^cwAwx>od8V`&08rsBtWo*X8Ef&0> zL{=irZ18UcKRXBV(!uz#EOL7}OBC)S^TSF$+|v0F`n&Lf@EgwKy)NAs!x;=AK!AIT#sj2>Xr+_lDp_CpkvU7??BVoTrg0 zR;d)LdX&NvT2$m0CMFQuFYzQ?3&nO#p&Q9{&{tyh>fAn*@p^H};GYBj0Om^iXKeD4 zLtFPjVR|Lwt}q3yg^-Dbeu(eD^hM6TBy@&!)U=g(%#UWvQ8w2GEv+k!J^(=0JokhL)$QYhB=u5UhBG|1FMlMC!!qa;B7=*}DExq9COnD# zGkGZv12skvmMqKe#oZb1E%66=m8n+iB8MnMUb-svX=h^QGOG+_6Vn6IRhee%GwHHm zqLubOYaeG{lqxu}opuVIWjQ7F5aH-j=kxX*PR=fKQ_klzlkr^a)LTF`O8uMN3G}0Z zUToj#y51x^mA={eTFSEAk~%WLQL0j{NZV*bdV^zopH59qUu;*VU2lhTr?UeHRMNta zrPzkFe!hU76nwV7)tcZ;Or_Fsy5KgYLnrO^%cPu%_Hka?cD!xQ9d1=>l64|J@%c>2 z^P&4Cs}Q8Uxz4kWy2GtcUF7V}H{zMkXR6YZfe@9pM|+d=Wj04)DX>v3E350UtenEM z3cb<(slZ|KtYA8%SMu#I>RY+~c9TUssnhkhHO}Lx zeT;d|<#QLCYpE*Sd1>$HZ9>~}-fs8vnak3iH_^(a>aAfeQJbcqoLFBTdixE98Fik$ zFJwOo&L<nRkKq_O|+Y>ap@b> z3>Z|XW#0I>)!B>DnH1-oMyo7X6UJ`4V`h7L>P&BPJlidEH@Th8UiTB;rSar+F8xzA z4+$33ru2n&ncV_}uh^gGT$wSwB2rl=Fu{liB|SP0p9|8XbX6oMS;W6uqQ_{z8nJdD zMoqNh)aRTZXDsVweXZO%HRO2iGvkTgTh?3p+f6RNb?I+!xMQ($9}YRwZR$ouUeu@m;O++=$A_^th$1%H zdrQs3M^tV5-P__fe3_po!rhpQf6(QZ0x68M_C#2Pc|E1K^t*wS?^7-OXm9!VddqjC zUFG_1W!`>;m3FFb=g+;1Qe}GGd^%N@ic>9VuIl0Xe(BW+efMmypLZGd$Q;aY)@yQp z>hRu?CHIcf_YU)_tU1;#?nO3t+Q&-n`M7H3Sa-J`xwFv1(|X^L^?r=CW`p8@>R4%K z5&Ap2pRMDau)@<~6B*(QEvNA!p@WJ#Vrm#^|Rl>jFJm*XXhRL3j<` zRiR3`Mn>!M?}pc4CMN4z#%8!azS4Wws^l&_eTA<54p6(YbYuEXXSFvv^@seYGq<>} zyJg;FyCb*SJ6)ITc5hE@1@$F$x>Sw)Rr>iKd6ia~Gs#}<5tHpzM{3yZZom%AIX?#V znG+OHw`I-5*bvd~OoeFo6MXA*b~|-yRo!MuyIZ}<=@`4`R`8jDijq8|+kKsy zgYEjh+r0YJ0IxDVDP`zdnOg-^JfiOn!z}F7PyIlx>fQROpLn0Meo1PM(b-c{@0B_fA#bV|`!OAf@-{(iJ78zt;2qgnDwZ z?%96Db!I4w6{rY141& zv0k$%p**LbS*6D+Be)u$Z})F;1^{Uis7NKxyT}IkDv(mj z$WKyZ(}iB_P4?_OeQyt*<@4Y19}lkbPxpW3@An^yX8U(o$N3X2*0C%&BfK&qcI9~e z%;~Cq1O3a~*ssgh<6hSv7hD9QW zc%x@~+y~d_ci!m%KiRu5T?V=DGwDLWozg&9@Z|yFs^Q4O(Yex9D$U zQ>WwGFZ4U=;@w(WJ6*Np?%s0KLec@tTBOUDqF2)L@2T<{T`Skfzd(k2RQKfj;Xd^K zarM+2?lb-?{x#uZzczJcxIZ{GUmo+*V*ick72m^*arUl^zT;o7S1;Blo_#MEeSwAv$2>l$R$t}U9i$omqIOn2b= zr$K!=h6NXhxb8%&5wcEIChgwrlAkOKs=(bo=KV{aG_qdTaGQ5os?oaB$$%G@IXm2m z_U;sU|7Ns^RBaGGH|u*Xt5db}5cVnCc9wS-dx9l8D}PE zuA?L;kI5Ww#<^)kjUb(|l&2jRNBPMbm7cq3LeB8$m$D7edo0ARv!!J^%l= z>f2SjY1GU)_x|pq;n&^!QID_Ix4yO3x7L5Hwbi&X*@YUrSgYyN$@lN7v&I#E7>k^g zXWo~NLhKjp2CvL1TTQAiFw-u*TCni$v>FckZ+FPDbpr_tmG*nwpQqCU9)7=D#fJPtQ_M96+yeKX%BzD%oq3 zAAX4E3)Qil*+cff`-c>Fm#y!H9KmsRX4$(~5fzO7RF|6N4 zeIXLsd^h|)j{Fl_*7ROAhR+N-hR+^j3}Y~cKhKTf6E62zdJJQ0#_%~chA*dg`)>F{ zoO^zH?)C2Z#z~6C7u1YqV(tn*#Jc)s&9_(PzP%RTUY))d$!7ZxggZdLe@V~zK}e4K zKXd1N59i!mbH&@!Z$);0#{WWmga6OC#+>vhkzc=4)F5RaO(p;L!$o+SML9~8)t>T? z+^=Kxpn5gd0&OaC(Ua*tM4O5hTali5D~_LNoP_oDt@7hw z1I{R}x3=2!W6<8>HQUl_K4UI0DHAphc*;%b`|*V`3QoP2K8^5g?=eQb9-K&T$9n4q z>usCs{(w4fkF{8FiUEyJjkGnD;le*B6orRBU-(|K-S1Jgo5%W}4bMgUrdK4U##Ey1&nOY2$7Ugkd)t~X#$2Ho~VbGY)U zOtU|uMtebeeR;}@t5=~1e zKc~k}SC$<8FqhyH_?A!zIg_1! zhhBsno&*g#PkBhLO{<}Mp!)Uc$n*R%OHpeNWW>e6{A855DA*faX`S< z+E4FDuhwtwRGjilb=3HxSU;b0f1q@4IX&w0h4Yhz;nn6D{$5{OD0^VZz@wqg`+Q+^ zqOUJ|tflGaOVT;~VK@d9el~q#S_;(6l(?tDs#%tPZWyce{1g@_KT>BpLk}xn+mar4 ztD^F1crZRwBuBnl9Vcxq+rJ<8+Lp~N*8Ab=5&B8?wEj5^1ChArq}Ri)K7B<6}nSE-AhNJm!}ofS>Re;)fD&g6GIqcJ_>+OUpS!S_Fmc;&{3_Sl2fIej6e z(q7ERf{^~Rt?74nU`JdB@s2=Pp*2Q>qKl;B3o&^0& zQP-Q}ME+DVAzWxkj7DOWxQ`L2-ita`DLq<=SIlCTEzIpu*Jeysa#`|uCs`kKi3PW~ z*TJ8l@hB3%TB`c92u_u?QUnLKMfKZm2Nt4i&q6=%naB&9iy9Jg?+kl`nhEIlB{4IJ z1Il==Qt>M3T{S*@2(e1W>Q=C}xe4q8a+_1!jjB_^{ygZ_Q;n5&AqTwTFkkfw#9oj>kUR2lHTb|%J`|5!G`lRm_ zu_3Hoo%K*@0?o>S@X=~~uItR##)kV)qk-5<(8-cK%ofyx&2WyyBxcW<_NegCn$Bjo9I8U=)ZYB<)y>zg*&c>%8Fn90|6L zJkj7Xek%FAd46gSe*`QTF#=LoK=N@l|LB@A`S|HX)laK}oFzGSQpDV0!4v1!59(b= ztZ+7Pp|Ym3o^gz8=Wz@9F<+>jTgM4Wm+G2y*oTW43yH(#F&MI@qFmh);H48EePf=? z^}-@=jsxa_YZB`O*J7`)&I0j|%(1;lVXv2h_I$7Vt`hs9W1S7=0}5v%^PI)DrI#vu zbc2qn$Hbhp4)6rl7f9dia$vko3v``;Oo`E%Y`omS`l#o5PTYXu>#J&q3k*dV<5+&4>5TJIKlKh z>A{=H*9@=L=f8lQJl4WMO=a}2ze~x_=44J4Csc`{SJJxTdOhdsfj*OH{3q<20_G%F z2ec~39i8*fny9|IpYROFB(<=F-^MEa&;q{gf;`tf1GUU1Myz^G@UGyGfGbn7d!S4a zEEMNja2Xm?AQ%i?1EvY{R5me(4rLy6mL>Ti9pEjY?MO8yU4KhHo1pYObp!EO**&O( zfmIlA%{X9pQ_aW|cVz{v=7?9ez{g2Io(13ixS_}i{g7?up z6~RUzk5j%3VqamMXgMM>O0LBkx@o_)i1mwCdb6=ESeNNS#b+9GR-IE|ptXE#h&2ta z&e32Xt@Ao$;C$;bOCM9QF{n4wx;W@K@qu^LdW5`$oWn6MQof%mBIh zpq1*qDYb%#SrwiaebkZ=vkH8>!WW57lX<*KcnEchyP*rqpat<>1J|XNxf$JspLB2R z{F)gIHv~Li73a#@C{G*AIp8(6D><&$Z+0KCC$sC)cGYv1U5oYydkb};PYG>~tZt8B z{-{gD*30s$2cre+=CQZ9U>9XQYD{e-bfBuI6i`14|76c7JkS0K9ZC=Cp6RfwPz$Dv z`Uw?WJHzqnwJYaIZzql&YaKa0-7(g=hkOgzaClyYRc-c&^#(o6>%il^`1z5NxuO@@ zqfYnr+32qD$A>T2pA7SOPU0||fnj1jebS@F?hBi6pGLf2QJ5OFK{l3&VK!z#FHMGh ziQcs-o-xx+tSvZ6)rpguAX&f1rqW#WnU*!!R2+}>cyhoV2bI*`NNsI}xzc@AMR!dK z1s_O#S&Ls|f17*_>T+S0pSOe4aj7~s8FmtRDaesheW`)9Z9yJNySMYG`slP9WPMKr zji*L}>(baeu_tv8D%nHGXS(N>;2|f5&A_f#W+VF` z0w2F3#Xf2ov%-)$qYbKM40(=omer<`xox(O447MO(+$gE6SKKy{ha(9SLvN%M@3KI zUZ}OyZqcrnbtmgzFs|zj$-zLN1b1wOe zedujWoGWX7W50#^TeLq|r;oiV*8>MFbrUqrCx*zKjP6r?MbPKW92NrK>~BO*=5AFp zopr3Pz%}L~_d{qTW0*Rijvn#^RQ^|E$lOmYi#pP}d@q`u2ay}>8LxZDmeGGh=JVtA zk(KB8w_G1tUaJmyT98$sA^Ts;TFtKk>}3l&$3gdF6CK%&{X)0v`z?yU>rnS3?GKzZ zx-usNF`{CxaPKL$Gv)~Aa$lhOoTj{y*ZGvQUB*kWx2{vQ=CnT|>kZPU>?7z!^lL}I zSID+9YJ#zkoL;Z2bw#?bv&C+Znq~4?Dw{sk#%G@wd7e?w_sBOn%7=ozf~hdTDz6~3 zx$-u=zJ~Z=^t#L2O{7Z`_$0%rXF98rpk|fwe@MPdbuMAQ3Vs{1UD>A0!<`yRKAK== znG+?oLE-a*{h;mYF4%(0Q9CT7f!Htu`vHq?&h}W%^lcTz*3$lr$Cw+5HQt0gy0S;U zz*;HPA%Ee+>iuj9*A}Lr?kR0ek&m_gyiuP``Ioc}(^~CK(FEOEi%*{uw!#+T=MO#k+J;Tu7 za0+bFzL54=HlHFp>31VWp1ou{BH*oY4EO+RfpQ3P7&^YQAaDS3L#GsJ1?I- zqU!B32UV_#ycOty0N8ZWUiO6Ie@N#~^|PaYOY9i#TdKT-?{r_OD*fQscnH^&+I#sm zGtj2x9%WRt7`+|akr%VX(02bbkp0|`f-Z$ku#xD~^Mge>{WFkua*SM0j$^&A!Fwv^ z`^HPnv)*uBx+h$bP_JfwG_m1mXVHhE_x`g}`3|`V{!Q%?^s~NP?E?m0L-z*GWTohO zkq^|L{m9)CT8m78zi}x4e<=T7)>R_db6p|GzF=pXSXE z<^NL;59R-N$3yx5L;3%cVIR{!lG(8IbxT}MY_OsH|DpVU<*QabQCSCKDF1&b|NoSl zc)Qdh7|Q=2%Ky)5dJN_N!ylz;pGl2%@y*b0o7FTHpWHy-ZW;$0%Kt~Kj zlor<^&I|vvd)*NJ4}N^s;2OgJU9Mt{L-;?9=^4WRNt|W~|M#$}&6tlJs@S5!PYmJz zhVXww_&4xxsL-@ZT{NE7%ZwUWK44KAy4&ncZX&%D=)!=-9agyGcL-@Z8 z`=&5hX%0g_a0ywC&k+7^7K6s>k$5L1A0&h{tp;Kyq~?|Eb_e8(qQkGS6VMFSXrKMeN(W#$N#(D|2dE;MXsgh^?Lz zZixHC6=_Zu@!3`UDDaaSpPjF5%^p3(Uo)q(CFwyvAMmL@vE({8V<0Y0a`D&)x63$~ z%g18AfzH=p{r4$hO9{P3;9F+R;PuGAA&$Jo7#FTc1ivXhCBe!rQaEGrMQiN909+}0 zrZTUk2RRyZfZ?yj7pzCVXOlA!U!cdNa&?rChV`SF`@uY3`n{!|G_HqhcOaK>eQ{#A zums_@Y>J&77nTdNLC-DW zib#4_4>m`Fzb4N~e$im{5Qy*iF#12N#)Domqn#UN@I_XbFua$0m%{Cd?r@oXgdwKTz=3GEVX&`|_~& z26FyYE`sFvl~vE0ap5A>tE09q`Wp1->WH$unS4*+6$RvjA)lq&nS#H}OOdrO@LAR% z|EVLA`%C`9#I#0)#1FIYb^K8KyP4;*FkDxZIurSOYkAcS41a5wjjtK?yovFbvE_4U ze7_lEZ4K7|dp`xa!jx5`(_An;?vufXz=GHG1eP3f?RRc1tW|kRI{&B~53A|dj9hl) z&1$eu#n~$VqwGLdt6V1Thk395qysrIg2k70s`DEMKBwdhWcL-BF5|80 zF!r)Qt%HY9MQL48@}{MSGIQY~)e~S*wa1#S**^^Hg?b76t@8AaO#{~2mwe|eH&A*C zL{YvsLI-G{_83sPHv{?#q|b{yEYM~}}o5GaU<8W zVoXKfhq=*eo3%F3&)%99c0kWEXI$drLi38<0G-VHOMeLD=HR@kA!}PSu)l=5ZWc?= z^8#y?w4;|yMhn&m;JV>hNqgbJfxW9c41RtKaw}O6V!msj@{eJJ(JGY}A@jrfE?JH! zYkEk&VJG)9 zdJ-9#KIlmKpZ$osa81-FQT88m_S>*dR;vDW=*?$xJ_Hf%%B7%f*@YUJuJ^g$Ck4%W-;sBxf1QzxFa z)tnqQM6?xZb5WURzY6+O>ohH2+luJviF|L?<>Tf>&-*b(hB$wEK;C!pNE&K<+se1qKdhZ0& zTz#GI7~d=wobNzSHU(dZnk@PJcfk*WGr|V%JH}EsiR80O?Yry^#TW4Zc#QK~M(tI1 zhuhr!>RG=Nw1+1YX={=%xDOPa)&zTLMksZ8__`d53~Wa}z2vdZ3A5L-&RVQ-Y9C9x zP;!=`qt*UKu1VW5zqgY5QMLEY`rP$EfAysGu5>LKu_tuTqO2|gWw6Mkd`$w@J?XTj zps($(RjsH7yAfR}IL0gRY~cHJZ0xzz=8FxI*%)H0G{HVCgW;N?SD4eTdD!%~v_l71P&G~O*W5%V$PEPdzYV4%;0cy7l zgRE!V7V_K8_$~U5f8ZS@So{@o74!|gnp<}Q;RfVjTnC3 ziuyoh)Wndw5=Zl%&Yfp(t5u-Wdh;r!&zlQd0$!sW_hJ7C8_1dqny_vZeT)1|`!>X; zXJ1a#8A4xcS&Lb3XUtE0q4Fo?>mo9Lx(xlT{3g!0ntDXsGYgHVYcm^Zxi7rXh+K5> zV@!-#gC(mWLAs{2!dj@9s6k+JzjFoTV^7X+!u`-fw-fzT+dRrF-P2EOWY!w0fOfJ6 znuYwL*^niNQLCsmd=~vLSqp%@&Yy)$e+V_?%CR2f8qkNnmp)u~5^CXakIVHn0lrT0 z6-k~t_ye+1Y;wr>BJ19v@2{t?3p%5wV)i|+3#=%r=u`N@Z$;b_tg%O`XJ*}tZtS5YPM7(#TH&Lvfafwk@lhX$w94*Ut{}z8EaYkg|bHD z1jq^csmH^%gw3kzxYYR#K5bXZC9eG_;&>Owdanw(kJ@j7^OHS?s@3I+eCMee!Oy6@45| zGyW92$Umz&>vrq@a7@sfe7jh0&NRMVoUV3bt}zX}&L10pYcF$Na;~u(tj5A)*5ty4 zg+F#KE)fd2D_&-kS3%AM`3PyZ0D%|UT|7x_G|CW2t&mT4~@Rs7|DYxFQ_ZPU2 zcn8cUy#?;$_~bVKF8?R~A#-(7@9#GcIFDj4$#?%PeaCb8^Mv=9w-0CS$IlYH{|TOP zG5+#rK~OfHG#ZSVhEZ?||5TV-_&&Pc+-Q{JL(V>DzvCtscwhD2bKWx#n~^FPiro!E&_G4`2!EuS7V_v0!}{!{i-_ItSV zQ$c-vp10R{+W(@vtfXmRfVLMTV~qY}J!Xvm?ssoAZ*l8`>8Ptd6R&OxZp5oO&K=>c z<}aLSupNF|ns45VE8GD;$M39rqWbtgRGPmnx;ZhE+oQSuwCI*#d$J=ruW){0Kdx9G zFS34DT5R1{x`DQxjO z+)ssnX^b~l2miTnQrHm;!@JGqxyfN3EW!^ufmjEf#nvIG7q1VRi%N&g#ihN~d+B=`#+SXnw(5g(z3EZG_>y;?*IFpY z_nEG9pLv#3h{rlJ!uj6K{zS774^Q}WzgbRh_g(W$=giU=_dIWX;au-Vb#8r7pR`#2 zU|g&yyTB>OXW%-np#0#L#;7dVUkW$^;DG5Ae1BdSlP zN4G~keoug&C54uvTP(OISbt>|3(HEM#=?9Nos}lR6XRL88<(J;K?k~8TxN7)HjZ;I zH8!9p!xsyN`$6(v@=o$fvLWdzoolWvU2GagOKFB>6uV0YQ6ayhbXl<;-AKwM!~HTi zxDZ_E-DBSD@Hq_7;AWHKywP7_{v0#4$~g~rZnkd5-~Pgh;a9y=&Ed%(g9>-~<#;8| znjZZb&br5Z-g(|!4|=WhR{JB9Hg~062*$YOWSPIpT94zG`GxpqTyvGZ%32K?J{N@c zdEPap+x?~1fkF?S3yUOP@3gtC!6rx*bZkgRq-SS6?$M^^>UiAo=iydJy3aXpd;I=H ze6rho$9cyZ#eUQl$(2_*UR{{Cosc<~_Io$>kLug0K@#s>+Q0{?D7ufpr?Y2J?e4t zCosD6yl-3IjJt!j(*ITn-Bsu_6QPq~lU*rn1*a^ET=$Z~$>>qC0c(Pvd^i21;C9)Q zikx@#kOO{Qnfwtx`J#7yP;Z_IzMh5=PWP|3uMZmBS(vGNKHfbaKS*X8%dBr1U-cke%!#<#tNt2r#F@C7YmPOSC42lc zO}BKWxeA}Y?XNall_YX;pR>%ZpyQd=1zs6*<2rb4w%9GfdEQl}mSb|p9JPLrGv=7L zM>qP@!!gb{^Jk?o!ENTPX1)J8;|lZdoWCgkAc4QtcsB{~`%xv`t}vHDyIf>{1$U#A z`+_&u|E2kj_)h4nx&CbR{!gI4?o#i6rQY9-bv4%?>)c`9?#(v;0?&Vz^9#Hl3%bws ze}zw`h5w2fpA-BQdOD9b3x#hxUqRRDGJ41u#*C1hbvC5x*`;aG7`GeGqw~Cbk8_Xt1kQX8=bi=m z3;J8-q|yHx&isvEzzF#MVgH6?bu!=QwdK0|ASQTyUVA?5gmV07)M1_$LUTo^M`vE( zwE82$in`--!7lq2Jo$OvTu6xXF*>maUJ0m0$C=Luzrx+m^WMTNobR3GY()pAOVA(t zGGnw$S@S4j$nQW}?Fv3$SYWi4;5|k6&q>8P`x9=Vc!xbaxUBF2h`2B5G)5;z;c|0( za-xC#8t%#2U5vZR?4F7Fo8|um_rDqQISX@mmNV0Q!j;cw;PaX4bD7hd@Xfhcy?FoQ}D@1(bQ!8EdX_|H2tV4#3Pj5v*~?;iyvpal#er~)5$MWC4WUG5=@e=fk`-*9!zsr^Qyh~YK z&Bki6zU06`ewX77&YzfF&YozzF+YJt6>WsX>Wem&&cW+f+&vL(t@^kdGVjFXlcoV~ zI}W<+RP)8s26Izsz1bJNppM*RZNOEw82h4bbPSv6cbl7OI|kpuw|k=D=1WGm^EGdO z^fj*=pYU~ka9r{;|2t-<{WDx|Uv!?grdSA8l+Ht^@}gaIZ--2*9rBT+H`$eZ$^RnS zCh?m?(N^%>;b>X%N^m%O*?HOgj!{OZ=snSXjDt^uI<(Hds2(%T<5uH4!+zKARd%>x z+yy?o6FOOV>+aIs_8518y~*zk zu7q^D$9flY)EV4k-D7VzXM{U~A0%Hdd>I|1KZUMLH^O4Nr1)c{jSb^MZ$|ht&xKXF z%$XIAz^mo7H0giUk2*${u-%6P1;QSo(e_OP}|0(8sS~xP< zjQ!Tg!4m|rY* zl#14+p#Jg2E1jtTt_2)@|Nf=7rv?=AWBy;2S5t$b1vJYeu-e zv@L$q+);YPe7W={?Ce$kPJGj2Zgt)?UpKef{DentHDAVOm&I>V+Lbnd3R_EC?e(C_ zjgg17R|p=6DFcoqCqVw4i^mxb{LK9L{&<1WSK3gTf!=o~!zS8l$*#e6FEP(6B*nXJ zT1P|whA2P^ObZMc{}ar)ihE}&Yml=3*WmIqAh!>jWk`0{8smDUvVA)|(*I4pzCJhs zpn>CX1+G%^V>xK_%1#+a&4>N-8`py1c8!7&7{hU-ZzMSS5Agm(cp!!wrt!zd7~@ay zT6{((-dV;Ocz>2L*7ys&MrXa~k?^kzA3$bakKTLFV?-DUb_N}=<2L$jxe;P?Scxv~ z{kq>Bx0i;;?RI;q9a@2(kH9BmT)l2OgF`v~udnXMsQ>o?WpROXVtAgnA2tK}k&U-r&d65(N`55HBU6*mLDpO;u)ibt4tCC$*KU-tgR zSqdHY2#)!(_bux&?{U0)G<_bqN^hwUyctX{osnEx8kbyBIx7k7(Me>FOpN$16T=*n z)Ejk)QTkjm!W^F%&Yvc?Ij1G3xqqJAY5!SLZ=VBs{+XoH`~q;7$!P^B)T3@jY7N~`?ekCHs`KnslUzYE$#Apt+#<>*p0v2O78@3nR~pw_{(!fgwMi% zQy)Ja{0=j^*1s!x-rwcDi=+3!b}q#GOUEVe1U=>g|F`CW(tFlUST-;D2dx98-4QN0@skM~(U&OYo- z_d^?xh@WuZ4c>&THsUwTH=KHW|Az6V`D^H>dUsiTp!6y%h)4Yc#W&1{%=+XFbGPw2 z^yD7X#q0M<_u`&AoF4n1;+@!0_d46*zwEJk>=E%UYnM%(xzld*d#oqyCxTvkxxd4H z%6}p_SUf2_6uj@Bm>dcEtbL`!!Q0T_{rFqX@iKHl@I82N^uO(h82s3%H~uA>8yL~m zQBVAj@!!XHJPxcGJN-1v=PM0kVm0t++){@`1J4`AWG6>Rr*SUshk zMS9S7mEN}A!Ow_zx1z$H(q6CZ|2)`bIq|aOCFrVmq3iZ}yR6rY{T@Cq9l-GiaQxfV z;~)3m!}0sQ_kx4gR#53saM)^d-^47Ah~LBYyIKz5v#A%U*ddjaX1F?Z+O-i^VL$c*~&)bB_2(XH_~ zZ*yFTUXK1Q=?Wl{qR!y?;C9TJ8P+GKg}oRz>^}eP(mSQyrCp^v-Jkh8%J@PQ`@tdWRorDi=v;{J#HjAHjhNE$PIsHX-P(b3Ud20%vG8M~J1k)xTpdge z#$%W9UGRH*NZLFZd_VYJFgNIqzZG2Sb;V!B2 z;O#LdU~X;Eu@_3K4*FKo^ zl0$I(F08`a&9|^7d&~=A@9cn#dfDHLXW!xM#PNL3e|rOdHo(J+y#x0T&~v`yJ4Pue z8K;K3v1TB))j!(QFO^>QUMam`-r=q{x5CQaV7`i--5u_07~kuqH%f1o=udvadC{Eb zJW+ZA-C*zX?|=^2WWMEXhgZNbI?eCK&qMmp^&f{1bY8H-!wPohx$~TzRYcZuh?vObNdqJQ>Z6 zXZlxz8#cqbPaoU(dP)KWTSyA?QnMZ!%doA&xje*aFqcuTyA3Ao1E_E8`gUV|b6h8d zv;FtHgWjjG)40oj2Rp_)u#5kN-;3WX{I~IYC2U%FT!QVG-PPcWJ51QN&g<42&KsE3 zU-++^+wjc`>YIJu5$}!Qh}Vaoen|UslXiUm7C3B~zY89tC0I=(!TrDRd*J_Ch8WMg z<_F$#jA#$Wvll-vDXRWBthbEhrQ}sairz^Mz<1gY>Gu<3k@1vKUmE9;Cf$e?l>9sV zW#Jd%&&P9vx$)_cmp1OVMeS4mG5RxaYqG%`>3tFCfNk+8eEX93Ry@l4Q}sPbvml*A z!?-;9Y*O}L3D1GQ){2Yq%GmHvOFo%=Ci!0?_)`);E+CGT{|_T534z4`gj#y?Z)cm=$9q0dE>nQqU7XvApwVZ{BIb$ z;X$m&dDDY;oO;C7dd&mSOug2wQm_3E_kg(4ZhZDO*67=%x9z>^_q*!%PW=8w0R8M7 zEI#NS3JP%{e$YLPGxj?Np~?4Q&LJ5wqQ}8wyPfIoFWlkre#~mcUk(1a9@o9znTFrf zaPI@)L~4XSocUnTZ+#czIu5(>eyhLqU~p2n5xF+=lTH4~;Ys1k_`S`1ANF3oiRX_O z#XEvC<3Fj+6`wf!*O&Z5d>ZW3+x@x0dtoOe<7aVXIqo<6oj&LB()-}Ad5F5bg7^K_ z-^WMHTM-B7Gyfj<=Bs|I&*?WmaNdVUkP*6i=%OQ#PW8b*#UGeYc=fOujyP{x{rDLX zZ&P~jeW%`CiZ$Mc=@82MpTHX<^D0A3)|HZZ~_(T|xHx6{pdB$ax#*{1WSfGV0v8 zjNQMoW;{qEtmSfYpZ_Z4_AA(_ZZ%(V_QJFIsIR|$H}JI%we1CQWyXq3W; z_zhd-=Xr)ux~rSTvT$)_40K;mtVUE`}sPkgWUs&|jF47$VJ;fglP>SBs@1~Nsri0<<-F*U=iMA z4@Z<|X|UJa=-q_Xu{l`kKIb2oyclfqUVwcEDT|-krT3uyVd;8rg9b+eT5sb#+Bl4; z?!?{SF>i8~y07|uMcTiGc$fKsvYRlrxW{`p=!1RqV@SaIPA zlqUohkohRSJwezo+-h$v?JX|%-wn1pCnk{T&@x-S1CS^$L4F+aUa}5*M+$wG2`m3S z>-}Ja@psm5a5eeIXM{JjKr8oz@J;U@;%#0%H05j1hc^d3ULo2IT}a!f9Q=LC3)e*7 zio3jVSc!&lqq&=O4Bo*O^+xna^}?t9_so}_mF}&;M)CI{=O8SeBan^{W8L>UFS)z$ z?R@_cSHXbR|dTI9g5aH z{-?sj7~4yM7xwruwA&7N26wwJE9x9_e(O*358Jzg75FK~3;Z`ys-2rG!(M4x*yQW} ztHXfNxh8lJn6YM;I7wi*fVb>2rLS=laD`=iH1M8+)6#i}8h^!p&iVe+t@hY7uSR2l zfLC%S;M&9=J>@TTdVIky0dE7$F8j|m8(V-+9UZl*d}QhMy~Geaq1+ESH7QoA2|3AS zdsINoBk@}8DK1Q~W^!CZ_+i+ne7@PQ-45hyR!V{2P;7M91N+w;jjCcU+mk6#2l|(l zk*CrMEao}``I9PdRbyj;hm9v=?1JqT+^1kFn}MlDpH77>mCr#3;3}JdyOsXrg6nKW zep9*B2W;6y;EbO<>U-wRbR)+TIXl2TGXHrL@{9UZu5}yw7H9ciec?*r)4Elk+|B+X zTgJFD0k#wPXO-U$O!E3F_Hoger^=7nVb)eZxu`(`u5?u*gLE>WFGxW^zwV508BRU(!^yGbDWJ$FtsZ{qpqTi zjlEtsppV#UJU{a7Fb|uUD~^6`(g%t;{KQk|&uMW;v+Zi^m1qmjnGKwwj7MXgiDTsR zw1(gTJOg{TGiRN-+Ut;?RB`w@FmM*Wv-$cuJR`=0XKyGzkn*1N1??=&1%`BT_+VPs zxHkW5GI$`0I@S6hPL!{8j%a_9^_tIW60~6q86FjwU0~&x07Lr_u&V5@rgN!yU&+}5 z1`;_@f_dk71qVFe$kS^!u)e)`j$X)vQ>y1N$0O^BD*3_X;?e6s)^b{-rP>?14)R7Y z`89Y^VD}`a*Y{gp;`zW+7VzZ?_c$)vgx*&&R^l1KN7i*=B_gI;z9WwBSbdml?lYj* z7@vh}VI6V~7nsCU9!B15pTdf60PnRz4z0D$j@lIe085Mf62V_G=TCYuv$tIrasimz zAoA*D@LyJsf*9l%iFZu#`8>Z2J|Z5qob&_BUKh1GIwwPVcWK!qbGRjZ0XYxE-b+um zlSB3*E|=<-9N`7^fj1=Cu#b0b*nBrK6VJ`E$ zm*riwAa4o%7r}GH05hljX~?8gaJ=B9<=%qPt)-jhl^;RpWb*mL^8+SCn?T$4TyDjK z2I}#rIr@}Im0}($z#dq*2wx{?&X$nxkXyAHa+zuulohh4n?+5*4O5KG=sKH#Zl3GgK`G80CEJ%;JGgHD*81ypeHKtzuL-jtJ_e! zAYYFmlL@r3WR101%z1iT<>t^HT+STUG>@6`G|MR-r*h=7+zy_P-0f-(9oMJS&R|`E zvNcdQ%+6g)a`iqu$641I5gFQ5&H1Lx(sEF2G?72EvGybXwaevoHCIjgVDs zX&yfF?K-el%Up{|UD&1S)$ly>0Ci8^zSg`+TN1h8$EZ!P5_V%Nk>hKx!_r<)HVYD;7da*l5z)~4uvnP=+6{zT`OOHMg>1#4W^GViDJd0=NkuB|Od zPGGi9<=Mq1khM@_AEAbv*kK$W6;1N|1T=c8VP5zkB=d(+mERXU1 z?ucuNwlI5FqaK)jvszbOuuoN<5#%HDURETBmA(8T=31U#axoNDleL)1)@m(v%!BYBZFA;yN#9(_ zB}(a_YMVWc8ZX!%Q7>VQu07}g`@Y3^e&$Ixqb6IYc~P$R zgVrmUSFD?MhkH^UGg;XSd0TfhajdJJVx?6-A4@$R+CmQ?m-iy{t`?t7YoRsVpk#NC-wNBb;;h5E1f8&d z5M6#P&LJ%^hUjoIBhK4Gl>1oo*!K<9|I6lisQ%v;_(SFl)&Il(MDLICH5x_E4%Ppo z?W^S6Q2oDDH^K)wRR0gT(o#oosQ%w%Wh3i)QnZnW>i^BeK0)>t+D00x|2I_sZ>ats zd{9I6|CA47sQ%yo-Sz*5>c6%9|GNGgW7@1eMW6G8)K6I(2U?)wKvI(gF_N^t8R}9M z{~i8I)-pmpC)5a*+T{6Io%poHC&rjY8YhCEPU1xQSm6Z3BUG#`>Mp<^>d3j`kDrs) zmy^0OS$|eJpFU%WtHKAR>d!S}e^GCH7XTz^I2eH@5z%WdXR#)$_TKT1Fp98V7YTR35=q>hC#D3_z zp-+c?nL7B$_&!gge2ikIzdXvv>H1J>oPOA>hFICub435$#I(L`KkCX6t8)r`L|3T4 zo#t%B0k5vs9?Q<_4dhv~>yWP1`a7ydq^`e%vBto*)YK%((~dDb^4Zw~=)@YStV_-~ zR^AUIbpaRH;-_YP!lUQ-*qDd1-3b5v!JJPp9}iB{jezZLO=Cd87<9{&<2 zGAnGwx)7YoNAWS{UGcV#JD!cWqxg%tu80>B41uhnqn|@${y^+R<`d0gjS`cU>(DRQ z3A=$YJHZo83A=Lfw(Q=lDU|s$GW?SGM9~KTSft$A0(PQ|iYww@K08{7I6LbwHn_?k zt?GKiFAI!RKDIjt^EV04na$S<#9|n4;^z{_+XO!);u@ua*BKQq4YIkPk98!nf@8|Z z#wkDKxRvG{;D;nO&ke^elQkhnAs=2pr}*L-cj(5L%82P@^#VnH zFlO0;I9bKM1#ulMvpCnoz$X&_X!ZM4jj2Y|ywbj*JRMkLna^A+&w;PtIRgYFQyRV$BLyc{8hWkF^(hU%{nGoU<7*b>g}NV<53k%4yAiDVZOT$JgfYAG2%dp3N_5cwtVS z&O~em^}T?vS&4gTtkrV^>%DzMoiK@$6K|q>lYpO8Tp04p0N<-POon%n*d3o;%W08S z8O{pNqiV6qS{Q(JNoAzQeKGEK7(8-HxC$6H^5aUZo3c$l)BG$rxh}*)_|pbmCUyJQ z_{$M*Ar7k>J=_Ij(x;ATN4@d~74GheoLr~Q8W*m^nyLW9Mx6znt!h|zmcY}9E0z)e zVx7PytoaIJ9Eedw4+0DH5NeDm`G|NdF%E(kI~#EWl}$G z7Vrv?Q7I;Aoqu-PtB5?PkEyGU7dRX|!$nbZczX17%zBtopK-O46IEP>st>rtMGZ9A zBWsgUpc8a%KpOQ%jXr(?{Dk<4c16-J;~B^wkvW3*cp9;_(U5J!a#$-RtHT*3jS1-m zeqkzVd_z{N8iW0)cax7*%|?y8I^gI;E|pb$9d-SPwW53nc2U>9sz9`&tFoMIwuDW<0TI*0xRk`0CxQQ1-ww8lCF9{5Z34!Ce9XGR6`MGgQ9%do z8Pt2eANoO#&z^N1G|bv%}OAH9g6 zH!8-ka5ZA|n(mEpP;+h*d8fDqdWd~{refame7^=gIOKe+skDZ2U)UN`zW4br6sLqQ znt|W#&P-_stZm$%aNW=@>MHbMt>o!K9-SC9xf59P68e7}@CuWnF6)S221c?qo*l8z z6)}M=gd!vSM)CyWKj;(2k_$}-_j$1G&xNm6=cn0(ahUOt(KPUU7_^`JHJ6a)T3Rvt$ z;-uABiT$XHRsplM4wxw7NYI-E^D6i03izy8``BlcWBu7`#ix|R3KJgD#uls(KNCE& z@MAV7bJY3Wz%*4LW2k?)mW1y}qq*oyfnG6?F-^tR@I}<<1qKK7ngyKh)4-_D3|Vir z19)h`0uv)Q3fO7dQ?u~B=rv-I#9q+r7wbvkT=VN!Y;Ix|TCo18JBVNH3b_8{IH~!a z$Bt&_r~6Lu@SN~PXQNy3iH`?OA*%&*FIW)b3n?=iY{uYGA0F}kPGnY4&QY#(!tNx_ zQ9cKq(I=t_ydwI)5q+g1|3&D-8NguZx|;JKGuVTn40}}1M>!CE!(J!rU=L@QKgu)6 zOXwTHaA@8ci|5SZY3=5Cg&EfOsPUPj278CXJnQlLej|8a_KW%Z3LZuFog%{*S8aUS zzJgVd@AY1i_6qh1)@aD_VX7}klZm~svVY|H+3%uT)nnCqcWxD5J~(|I2r8&!Q(?_v z#6adL+>7)bdN}RVmEp~=Bi1r~mMLKe@LJv05IN{wq`Y{Y(RO3n!vM)|cl8**zdp1*c~NbD1R9)e#L`ja-g&sew5b7*Vm z{l1>NvEWhJr&Et*b(W7+e||!=C|w&;w?C6Lm1LdLV_A+5@!q;8fR+RFZ^>9|u~4Mp z->4ertNK4LzYD#P*u%1{^zpFp2@Aau3$R-Y5&P-6HF9?e_WrON)aSCd6B#6H zPI#vi7+6`4&?U-$h5Q-pPmUgEfOSV*EaT5~LY_9qKDXPRS#z#lJG2#=6QPIjM-TQB zpgHVg)_rF$2x9kE_`I*ox7gyex7hbf*26mB(det8jmA3u3vrFdQ(p_|I^Q_mm%aR9 zBn znzWApkz_IQibxmkkz|fwqr!jM2plTZNY{@=Q`x^$=yRf4Mtz2h9ANKak%N?wb zDlSv-<6_g2ChH=uwM>t!z#eFU!e8SVkdwI{{T{`JN#VxoF?G=f=urA_=-bKLc1PQ`6C?HPq1XUj<^zG)Z|oI= zxhdvtNPUc!>zeoUemj%ld6`u!!$tmOdU$-;i2bUzPdc%t8XP{i#_Y}l4_qs`L<&1E zcxUO0t9wc2a(fGnZUwmy%+DL#z8j5vvbo`Nh-t|hVNWCW;vnxqF2OeC_how*`iRz5 z{ZWjEFsDZKpJ2R5={N3ksQWgj*OELSkxQhJ@W+zWHpusIn{PZFE;lDf3mmb>bw4dF z!-NL;>*>Br61QVt8tIXfRDME^j~(NKXH~1-j{G6I^X!W;IR_rD%UP^7ikm1?y&pddptW>&ht_mL3GY0 z_?k#7V#Tk(K6ncH<oY!l z)@%({hPwjsHJ;-S^d)y-uDh*=C{Sc@XsXm7UC1$opP}7GmSb-k)^=AdhSO zFL@a*ak9nEW)+_%-Ka~OfD4egzu3H*#>`pO*JZzQ*`JaxHo6iQWB!@!i#T`mS2G7e zd>`Xgz6Ik`{H`0hIMUBZ_7(X(yYfk33|VaZ0|i9BQv zPoF$Q z67?$oysV479?a&s3%#dBKODVBt-zm4KjUWOgpi2^Xfen%2X5 zA90V7Uk|CRR?UH)1HS`!d_X)zWEv&_xPzvH_HRfY-{Up)X@m#lUSgkh14FPRhiwqsUt|M)gd(q>L>^&2*I(-s z^e!ujj1k`489ZhN!E>pfL2x+mM;{g6uC;q8@0TiDL+qYR9!*JOwG9DlqR2fkS2Z!) zHL4%H#+m5+S~(W|s$Is(P7WRqdi+MjrX`LKnTWpBP4*ndlYp(EEX97Qz|^^8sr z?nADw#0^CLbd|PaPbW5UK6dc}{Ob}EKr9RWxwD!MVgu1O`Y1WEq&klh`=*=_ybGz4Qbzm?=Mm7Sah1qJ^g|i7N;3L z%U0O517(lcIx_d<6M3(BFR!!FLlia>?IgzEGQUjZFACQBFXie#WV|Q)POTScj~va1 zA}b#GpCl_JUa0ln<7&;WfbVR1YU4FCu2g&yHvUBF@YL@Rrh6xCGyhxgXo+;*f|%%& z(3LpOo)oT3_Y9k=xwh~J2aK^XAN_FZKM|UV-;C>&a)H;Xi#m#sE0_a``!L3LI9zMY zhYkZD$3IeXup@%~f@3KA7o*20{a$>%1o5U!Ut~6#UQ5|JKuo?c8#TD-pP!WGD2t4c z_*iO7DBFyBBY)jv>!HQ!{@NEydkFCXa%}#*CY6a|r%QZb!`bdIk3b@j+#y2tUX(&p@wr@sY#sQnF0;2||Z# zok?6o>%6mp!J!?$UB&R^*#GD10m;v=)dP%gkVbi#(*pW+A!g4W^@7F7a6{#y*e?x9 z=8K_@kshI>rCxi`yEcyz?3CVf3jJ9xK(G)Rk4yib=%)NysGUn5!#$Mlrz*ZIu`jgm zPy0)=+CGdWEmKv1XQ1yLF%d3{!jE22NK&ZjP!m-D-JL-%xB1O2vH|J7zy3kZAj z^lwx8w3lj0_G^Uc5C)5Snwiql9gLzRrfq7ASThl+2 zGx}NdU%ejXea5dfe5l5RIgL2CTu0g`#<86qJOZ2Xq2%UEaL0;M%}d;L z-D;lG@=N|^_t(#GEIL6~+k!34>UfXFvcJ(7 zM&e4C&qJJG1;=K&BaG|N_JDsI7!}s2%4*v%E(=Vp&AP6cPq`cSO!w<49+>r2vhSO4 ztqzOh5__ESZR&8ro?ZaLM`B!P3N7ltU z+TSDfF3U0ZJc7+#4Sa>@6`6DJ6rMxuYT_2S_8Os=+TokqsA8IR5o=QF`{Zdv{DQ9i zrE!CT8`FM=QShH$rRGTHKxoVJ2CjSVGbGRHLd+5A%={So%jsj0`Ofdj9#(padkWD# zGA=zYToY5UA7E?&&yvnx7Msi;$F(JRCSV#t~TVFv`)(u%l5 zhH>kFY~Xv=j_QKnvJ5{eF}NF&H9q~Z_=xE*;(OiieFc2} z54)KRX-lTUA18j~7mSOdC5#CHyVn$5sAQYac&@Vh^1e%b|15?>xivXz%hgAlZ)EkU z==)H)Ah2c2$+x3NP_LUfhjnZnoG|lSob~V;{ z$z6(Gf=AMPqVY+2+DOhtMd3!dp2tIG&=)G0mgT?}P#!eK`dqyhiFIdPynfJ;yeobu zU{fITYURS<>s8~cghzCpIUT2GY$%Im_a&4WYb~uC6yL#z!=T742`G!$AG_`^*2XkoFH_ z)A~AE{-X}F`}@oPO5A{b#7E8Jz?>lFLrey(FIRRtZA!uO@wf@lGkJMA({GKgQnXtc z=52&yX57>XY{SJUJu`t?@hhcthll)Zecdvw%0s+kqc7mlEUnAK}kz z45aZI>|Lh-J5!fpBeFUL66?#)ueQte+z7^1=LJ=KKHFgYD1Iru_ZQoKw(=pgVjsi( zV77k}KO6iZsSl_Ru>e_@l&x7U5bj?zu9kelyy>1=--+7K(~qQc)+Zt^KG3GEJ+BIaG1Y}jSRj2ZX z1;eut`)^<2CRTwL>Fa3lBoBtVhkI$BEB+%^jTwuS6HNa_8E`q0uYtp=O>}%6Jzs^AK)kWU1PI?o3i_Hpeg_x6rHHHqzE%ton zuh6_FJ=?S#ovVE@%9lc!nfW&7Dj%rE&5BN#$(}As-ZzyvM^Y=K)B1h&K6658yQ#Sa zP7M1E#C4eq-(r#vw4UujUWLd9>D483&;7sHBRpT8KlAGezb|xAa~_zE4e-A+pS=v+ zUl}^7cK<(^Kebloi_exmZFz3!{{eHW*8L##tAmUXpTDNvl1O|?wPT|H8$L|q_oX3g zhkP3{j=VxT@b!3Am%beHv)_kSh}kJ$E64l{y1HWye(yQ0ga2qe>_nLpk)?SXdJcT> z8{HQ46Jcygfh!4#oCTx{u^Qph>vm|YOImOA=dbUY3mCY#*Ogd9#pbwaO`XLy~L`d&Wv1#7!<^4ayznoOBXz8_>^5y{XqMbtirI(6P`n&FE>-ikLz<%*!d!5v}mI>E2fv z9f%9XwN!r_zLvG0kF(52KGh6I{Mq_GI%hpE$EvTqQ`&q$W?^)Oz#KVfdtKFxv7gP2Ah%YtA&_PPqiEYR@5%;O2%Z7w{ zCA%i;IO)1Q3Wsk)RwIvHY?d|1$6<{Ysmr1Fos6++tl>a^zxLyEe_Adcjmw{JY(`Ht z;pq*@PT*C46g-#Ce|7IrQ_l}{LLbRI#;eU6AFeQEk1V`_I4tb8qo0$s7!6z{`Q$$u z+iO)ls)*^*y*)*SG8Q6nC)tyTZm7jiLk}W;Kul~Ka=qB|NA~QQ&8BnJ*(XT$8t8k6 zJu-DoS3<!e{B;4)&GKL!!;n4Ss1t&PW-t?>0PRh8vf7lGwkLSt4^7&n}x{TQb(A zYOg69O6-knZPdY^z*cX!Jo8}p5gJk!@O$zb?<4w? zwt3mqI*a@7AX-}B97?=vuozjnz~>h~Sq;6aF+&}LK+O+JuW22dg^gmhrum&B|ML4h z%G`GBYs$r8DSflOjo{hIXR`MyW3A=)+!9kn{2KG7_cs!gW1Xj?y>dYp?&G3XC~XZ7t&aUd>mWiCXhX_PuHQ}Z71e{ScF;`AEG`Q z;`-*S>iyHYAVJOh)`;gzKzUUm} z)J_Z+tFcamA4SzpN_8k?3)W*9_GoP!JCiN*kxM5z#j?NUI`87XQPtWKdvhV`j5K)g z8zJVj*tnvKv&o)6lQnw(CN*MoY@4}ikQpC)%^rJA3XR3DMm?C~Q*yX_=vwHsm55so z?!OZMX)|&@+Ek5KT}PI&&QahG#vgb0F8 zD^4dhL2GR^$+sd#3bF`3i*|ccDkqMX^TKzTzcBNwL7$i!moONHC-k!#wWMp1+9!Iw zf3#eaITL?(8JLF*zrY-bR@nU+?m+VoeeJS8y-Vpb;*m0cllXc>FXZbK4ugy%u8F$g z3fe!)#@Br(^K+Z&vus>)-sRw_OiyIT(Z3>bUfRc6k2e=+8~4E8!#>J_{4^k2;P+`V z)~Wi8FJc{0Hmpc%4}G|d%XHejvPJ+pzUE0k>8cWnoZzgcO#`om%wvJb1RYsCGL_yjWh zB9BeWY!Pi!YuuH##{~-_c1u2AU+Nq7Vebc7fE>QARJKZvKleGb^Rv0u`v8r#Q?`*o z`LFl66G5k8)n4IiAuGh+bhLkE5ikJUZ#G*E%C9Y0jcm_Be@Bx!9{8bA@DbLjd=~K= zQ}3vFSX%G=6v#8#H_HB$GKaEl5`0*~6T~u!A3M`ew5?l=VWHNi?cp$7#|Mx0D(qv~ z%-3$nu1DQ|Y@7x3AnM_u7GLTk<8IzOI`JRU5bn@jAMyyR4&r*oY6+d5c2!`EViP@Py2J={$A5* z6lznSsC-+pK5MW4VYx_p9g)r%rcUw}TTtJl0$ENUVrw!%%_(uJPn){}u}8GbCDxR@ zbqnSfcx~W&c-%91UgpL(Lgq*xP|81C%j|=H1aknJC)1z!9JXMyu?77uVV9~B?%3;Teot)%@6w4q)~`;T%>i7XX)pXpKQPbv15#@R^S zW03>&`>}3~)DgW7m^U5Q*i!BDD7@Yp+ygt8Sj%S%sD)C^P1EBLT7I0l;-0)4brd?H zld*r@8FWNxzMIOm$YPCcX^w=*4dJ7Q#n*tkz^uhOFlIwL=GgP_bUOZph0}pc*S@~m z@e41fya2tF*%tB{^H&DbA^939Vq4^GUM;7DMv|k&XQr$c>||d4Q&*Qgd0z3Y=-9a6 z%vSnyL)PwUMBH5DU_SOBJy@x~;G4oeQ2R*0udv5toWxY2*C%3N9D|lo>6{9NHiyMy zPB(qJ-NZsw>lNjnPxw#vNUYC`J%EniBe#!!*X8bY3LD25(>nNXDrxTJM`GZP!T);f zTGy5TJ9}>eW<_$sl4g;{ZaW>29Q<>F#tl$ml!*8l1Ih>X z^W6JCS9o^ssdm+>wZ8Rz?>Cos1?!@5nVuoGzy{dH@_UkXmLB)BO)gyAh92pShzaY0 z&ceJ<)_|y@mMZJqGNy_cn|W}oHCA6iePM_CqUh9jX`PxjCqqM&nWm?)oGX*Ty~ixi z^5T1KHGjoV+05Fx?ksIP;k^o9rJa@W$znGYdYl9K#XZG1y`G?G*P%_Ys%>bn17C)svm>)Na(vc+9AD-)Q>KcqRrnC?QOt|u*d)L3D%1ieA4EQRnK)Ep z=EdH5D6jtdCpE^n zZjd!NUgjVCJhL@51DmzMzE>^N209vbgLVeA+ckm5%lL26H95LqH`s!>Qj-@U=MfyZ z-Q{(&7y#Q_SV(+>8u)%x%#a z)Z`uq9x_$e%4@dvV1AM7iCl#y@LASjzCH8FwV@X~`AFY&5q>A%^=O|EYsTxE!u`%8 zxxOM_n-M23^_|6bE&f2}h);^wBezNV-H(enUfNe#$FH+82liZGT`)Tnp}@3v;v4K7{WkMYjP{vEFu5NLsiUcwrLayAR?1k>iB= zxr{5*%D2Z;lJ>o{!K zzA`^2@kX`G{H}?p`2xL~HP4X;Bel3?Y?5bU>T_Yv!T+lv<_@xtItl&ZUAW(jj~~J7 z4aS>YuJeS>nF}hmpCW%TG+)#&#h!7Q=0CCr#CN>W#-0N4)oSG(zYkY5K(ulqaLs2*k1HR z+K;_B6tUWqvF}93E7}UhCeQd0@dX$epX)**^LS4L~z3_#C)&$o8q&KKTz<^*yw(b>(6~*@J*3dCM`&V|azR7uv^-TogaE&?@t#Oip+%Uk9@171v>-%{36r z(Buq-jfdE0Cf0o-_Fs-MG~MD@;?5O1UXvJZB;-X-YorIEZ^1`*XF8DBO2zNU-{-MO zIlkaM^v4x%Uk=Lnmh17owH##43Cd&5!=dvDCY8FARW(HK7r{YdkCAygQ}4A09N1lY z@okXRIsl(WjXI+*Gz4;P#^4<}ccg(Lo#t`?`Xc7E$k%0!>!FiYo$CV01(Nm6<7V{ci8ggUZ%!6J_g9Tf8` zMP3-5lVkpY=J(C9*=$|cps34g847G@_Nd^oDtz`iUBa(csAs|Nay}#e+`e|tBW+E~ zAfq<~ljF_sXV+<4Ute0MuK^|#847P){9NRqjUZs_VoehLd&>z$a=;hJ&^uA zu{Tp@ViP1}RX+e8lmZ3CgcH@hM}54ksqgOPKg zPPRWAyjJYo20tQaI$Kx4mZGoFhQ|Cq@N4KZRmA!%fq!6ep_WvRr=XLAo?FZ38+@U2 zz$Nax7z0V&cM^Q5lY#XOp5*)Iq~Bcp(nXs$_b_N2`Yr97JO+Fn zc%0Yke@{8?%l#pS2N=KI--4B7UYF~*n!fzBsH1iSq%ElrFLIMU@xLc7i+qW=SMqO* zdJ6Yg?h7+E6~=FvF_IpzXMtzP&l@>6w#=2Tl>q&Vu~O9t^OcN6oQcFPXMF~sXSLw7 zi5kN(PR{6ih8BpEL=N;>lOuGoX4JSgGL$hz)Zgko_E-=fds}4+#znpE$k;rg7qPuH zg2%R2Bu4zrdCI`_Wpoqj*6g*@6kP#(IQg8|k6Ck-`=DN9fG;9+BaVj z{nf;p745J&MjnR!$9u}-w3?tRtk3E%7I4r1@?I&{kZp2k$H{G?!uR{Hk+FN`>q@(N zKK6qB5BfT77p%ucAGq@GJ}kyIlka&$3t}S>`#>{lGv?z1P4vbD@VW-;?*-0~nC~vwKDpMU#VmH}2s);2 zf8@QB-h@84dO^Hg_vICuqCbLqMb2*w&U>?cOWmS>T`<((Qj0u^T{F30CQehvoX3o9 z3Ur@X__#NNp4-6(?}x5y?AeB{xd-Y~>J8Z6p!YoPeJpx>>6~3{`|hM|2|XZ%wy8e^ z!5umeDc?8wI!%ei7W22_yam%xrXT77vr-HPR97z=Heo z*nSf;E4J!R@NKE}!Fow!^mX%^4&WVqa!NSH?cUZP)IC!E*JL1VriSLtx=3A}_Oi%> zzWkm0h4wy~3t}hYb5kcp>Y>Nj7o&hpBrdVj7vD)9TT3}gy9U;Xb|GEAYT!7SzBLA> zpa&`HmBXIertOr-AE+>|Z4!9A?mdMV#~#>8gilIs4`UZMv2P~s7W_ysbC~n8Ln&i_ zA8=%RB7gH5G!j$Hy=3U8=<6a@nvHWZ7fNCTm`BMR6zMl?u50G_?bCk$x#qe^T#wwZ z)Jf>O9{qKqoK}jl?{U_9mAs+gHyJPiF2Z<=T-lfqsz|*xgKCm8_B2Z#bvWy|9lYFT~hM#Sbif zij1$Wh(UHo#kid|9X~ZOUIW?InDoz+;Af-_pH8J>Nd(3Rdy*Y@2j|{Cb&V;g}F(AGlqWv@mQ*H1hMu4;`GScuhGX~*N?TBS< zfbW+wmpM5Gm-N+_gzg2Spfk{M6MT?e zmelK!J;Jf=%WC_BR)E{`Iw_1Cgl^vyHP_oL8VE94F9NA;0my8hdUN`P?U$TV?eL#iw*KPxnj%!@rcBf zQzl7nnUNim8=CK{PQ)>9Re{czHu7wT^CR8&t(xSrknw(X4r9r=KBzycpHI$w1jX8& z?9JRXt0PWXi5jgY6T z)%s42&;KWCdcK`=OoYxi41Ou#0O;ErkVD#()k5kMPuQE!6KC-*M!zzcUt*c0<^XvD z&$kBosKq^n*fIF3rSBDw0WL)hUsEWtXIn6i24{xmq2%j2pE>hy(#OQSs~zAq_3STOhMW2|eFY%c&XRH+@zsdFONm-3E=^G;Pl`?lGeZV~{Gj1ISXa=F#0lnc7k&Nx$oPka8X<;O;xB|A_693p7orU|rw6fJZ}E2{ zMwfD{zrTLV%&>$Yy+SH>%>k?2*8%s7wXM1_`V9)rH6_x!SNylb zq8*S`+!K_2?0LsEzSa1%5DRDcUZ*n|G{9qL2HUKmz?Iy$jOX4N+^+4vYp_<4u8Si1 zp_ga;3BIjgH8AslGEMk~jA@`V*Z1M)#M^bW0%y@EM z)sFZ!UL&vHgucv(XJgGQGY?|dl3H1LzDD0TWa;I10rHi}Bh3Cap(=4Arr#n>S@ z=delZTK2MDEwE=xpN<&oI}AEF*N?i@&|=R`jfI;d&?&j!@55lljt&zc5{do;-b)(}h;K}|xCyxW|UwfwiIY5v0SlDkTX4ewl zB>HEDgRnR1IWG=qRQoVE_Q@G-#E9KR4znjZF<)1`amYa-4YRj1?T_SXGCz#5U536W zf=f4MJZ)~YHLDk%uc`3xt%TyC=2 z8(w0bk)Mw_6*(pPW$_*+;T(J~-}mcb8a03?w)y)Ji!L?|@@>j-`dXWTXM5?PoY8~s z1A%j9GRnxM1%a%6HCub$7uR=Lv`5p#?Y;Hxo~6$?+Tdfp%aaj@b}{sZDbWKC=s2sD z)n#1;e~R2gXExXUWtg1%?~z}dGoJu30&o~*d*9j)c1KKtX%WjFIrC&x>54In7t{1zE-*g7_6vw$$6#sox#)j`WQQ&*s}TCzqanC7cY69@jr|NjxfD% z!eD*~KU-GwP-G?S-^s4tczT(C`dDTG6P}5^Y{sZ@1Y}K-M#jdJb$x4x3_J$uVbq-> zUlaY47I_`W``c3RdF8xKY}4kPc|8pi&pAii+w_=$1x!tm=B%D(zJ|!}0^i7E4$Us(gYo?*d%xq0I`3QFx?sHi{^WE7zWhH&<6Y%}H)+Y+ze=GPtdcM@+`$5*1(jS&j zk3JMz)+u;@taW>GN%^w!2h>P)vKpmEtN)=ssHT-qQKza8sngVl)#>UZ%CgQ-XR3cv zW7J30ST#;vU!Gg~UFr9wKa~Dhx~;UJbgS1M)i~AiFYJ=llg_~P&naBpvTiQlURqeH zD=jK5E-fi7Em_vG((=*@Jj=gZy+7mkOS9iE!0+douk`c#;%Q-xV_AX4^WTH-t9`!z zfBTK`14Y47I}Dd=-x>8v+6@?^WMXE=#VwhhEqXBWB!CB)-riExFh9A>IReHStb!;B$lQbgqL>(B%9JFX@l>2dclyJhlhW zUqIWpvmC3Y$_4RC?JqR8*tzg$O^GC5dN<_i>MWQ0DjnCp2K%U`T=0Qeb0Rq}d6mIS z#E4<32mNJN zx+}O#$@kTGS5Qsvjq6~)U0mLYe5T8R@3G%8H`NNU^=jn7*Lio_=ZDg_^G8^Vi?aKM z9RTxNZ__u<^Q?}S$5X>P!CX`7uLj_(FeOV-V%vyhHb4(+s;mH z3$2#-Fpo8E_fgYU`vP-aO6sgpHjBPNe2utf==Y*ax5LK05txDc7_lqsP*)RkUCKqV zQHbp%fLxS(Ah8+V0$a@-V0FY!qNW4;=*nx@AQ0Cgx|y~=>6#TQbq>7vOt!%0y3Cq@ zd+kQ8&yl7sL+@NlFWOPa!=*hAMlZg-RM=Ih4#d*h(1Oh&IG*r1G!8ufE?dJ$XI z7T9{aBCg3?%p>$UvE}v7shm@ECfbFFS2!2T`^}ZqO2FE~$3fdyK3}luK&LUW1+cWiZ%YeDt%yr#vso*G zHW2z!BGmA?IGWG;C+V=btt@uiM$~QkGyLEtznWOIvoto^sr%SLHfQIi|74MlDZV&b zjO#YQwp0!12cl2@*$gL)jyp41S|1>P-M$0%5EGA*kAbqcC8qz8bxUZIzY;Qh3VKfh z+rS>*2s|q_S!IkSwz23t?&}x6IFcAO)dt#+J-CDLG6+6QaL}ue~MQnrw#ugudg+(0Rm{W-!{D+Y-e# zN&F`Dqw_gq-TiIOP}EN`zCpoveSLO0Mno+rO=GmF z0{EV3UuFDD?#pA};&##|>IhX!a*uK^q-~=|fWDwhnOdQ}*MzRMC`F%pZDZvgn*^UH z;-m$I0wj#iG?sVD_XPImpqmnJjnsAX7MscS7>8w zi;i15GWLRgRIFo{e3&E;WH&#r1BW12QXKSh`(V>SqE(LdE71a`(Zklg*sIo zXtNFWu+DHW)?MUKt@U=|O5Zv5e~t z=X8j^O#6)ZLyOm7PMWsgpk5t)(e=*BS#1Nxati-5@vFreboKt38P=eGsBe#&{_(>3 z??K0j*jHrylTpv>Aoxsox)HHqe}oO76Sjj6_-Ew4CWG$|ixvTUp$K28`n<>2v~M_%;hUoCcrZ3>e)_boA1d*>d40ytET(Zu zFp0JBV#$kT?YS2C(rGVbya3`Z5i@`s0E~-%J<5-d#9xQ*s*A(r@yXf;_h2e`i#0E{qF=h?;6er~_Efn@)40^EHumDnvg^D%TvR?8 zwjz%E@~l?9T<5OrI?L2VTn9Cv5DTy^yN}-MxRe#RAJolVrihDrvV8vmuA@#4m+9-6 zT7l-6GxM>ae(jMxof&7GcwXX!GQW>ABI7lJ-y327Ye9UG=nQ7R%>^G4eziVjTn}k| zY=#?(y(9Yj%4MH6DDp7!G=nE{y{ij$_IhBmCd6_XY({K-xBa7Vh296IcO|cLB$j3$ zHO4c^xlL>$`HfizsxO^YCw+4`ufOtiuU$_)-cCTlj6=y=jtz?iuh6bmgK!>1j8Bn5c^^YZD{ZEsx-vE1nsl{u4)3**T=Un!n$+Hl>C(na7dCih~BhBjHRrhlFu{QwOCYppVt>tK3!-Xi6#Xd71k!{DhYpEp1wQ0 z7qV!1>E3K#kA%nTGOc$RT-N}4-T>W0^9=Y>a+@S$;=WkO`!RFy*L1tl0mnK&lhsm- zAl9EP)p5AhUz>&KXRsGxt>pg9J#<;OAlEm$2OY1UW7M~= zqnWWH_Oe(1k5Q9m66{>8^T0Jj?F;mf-Du~&P1+bX!iLiT`px?HU@jTsJqdVeHR3E0 zm*WQE-7#rE@Qvh+$vl(q=6y|ae$&}6r^Do!abETQ$?9oKj49{<`rCb3UWVB_MHwgK zCa)0x7<;mcKUZkl*b(U4mEPQD-=KaW>T1{9SD9X9y5H;)*tpEK$pS^$jmzrTh)+Q7Npf3wzqy?&pBs@`kY)Cfabhw@%t>d=w~^B#Z>zqH zV`)F#h5J!*fnuxP;yq=1QQJ|9>q6!0}ri6-Y@DKIJ1y0;_Jiq3&3N1n zi+L>~gV`fm`en*oZN#442#i8o0_Uy;_DI@*>%EhE{X^6tg=Q|&G((!0?NJvN-$;?3 zn5W7f8(oaEfPbvNk3?`mk$+Bty+rJ>a_j{$>kAQsP|xh$Kfou(zTCUdKSx8w<5-pJ=u`v7) z0+JJkeS&i_&$mPOEBz?)>dz193tNe~pBaBt^El=<5&IclN89mim$EI#DqAkb>sd9{$E@+z zkF8p3rZpS!_lJ3E*GjCkHeHv#miD9@tvc%weEPIiQ`&DGQ<__ieS>=gUVlstPmXtQuy1fuH?@bS$GOL&pUZKI-$m{`d!7^H z@A2+DC$i(p@y>0*Jbd$U=e~ev`?&kwm2)>$~n%*^>yUk$JIHOm)x8V z$8qO4b@<)c&e>{Y(w=q%>Wu5JgclbOJBR*Sk-0fJT1KwdZ zA^nYU2p6ytPiaok~5>s^oMH}L#xJP(e~a&ET&+x?7hSsQ|Ht9o~hTH;Pm zZVR?0pK!-vu0Em8bw8mF`D=q7|Da0ae^qCAtAl&oOVk+Tnk)~d;CWH-3Flm=F6hSV z|LJT9KIczK&vHKFzmRSUpTnruC9kT~-Hcg1-sXtDYK=(u1plT|jO=))Ci!!48D4(_ zkH@{u&Ss1&RVUy#$GK;z1?ls_tLk|7H8nhXE_he;c=!*|>*_4``Czquob{d5x5k%h zm8ZU(UVrxwj9P7%t{WxaitG%mr1y<;s%7^i3ZFnA5^upxVnDw)r-(iKu zJ5#N>;n~g##MEPTY%jUQs?AoZRNANn2^Y#UNZ|33|za{({ zXn(wYF4lVjR{Lz{HT;^#@bL&Tl^27Lt+ubRtJVSQyi#h7RMV4dFsfShMc-0~!x8C% z;A8H`)OpDp>Vxhf-*W!hzrpTNp6jWDs=MOZ6I{>!6!yb3RZVXT{@I^lpOBn~*Smx1 z$r;{^a7lP;_;uXDLafAs;DZ?R>uQHPT@7-dOpbDE>}l3(_-04ISFhsLreF|WosjT- z6~CylziPdL&$r^$3CSS5)1NwnoTHpS14ePpX&v|LJ<^Q=q*wKwC4M z8Q~81DE#($%n^@&7DwI_JP#!E0rf~a-m8tD2~M*AF_@IDQ@^ptfCb%aFT?RGgXQY; zerg>|kE+zz$5?l$V{p}9Vq{**_ea@BRgM8|ALAaQ)}=GEvmfnT8?3_bIS;FGJG z{T`3etP77tK=Xlj#S%=v?H`&iMu#a-9NtfN_9F5oKVmwY#;~tBv4sySuu8xmY z`~0qOV)~Cb^KtH}diKi!@beH1&J-EkD;SZwZb`y8YMG47__) zO^+W0HQ&Q~3ik1O9%MmqAUw-Ct6XdU#6DzAOnWTbJ{-?>4{OOMIa+_Pr-lCn33%kc zenRQU1K##0(-W0&_v}+^)KQ?{8tjTepxc_tAlzd^uwNx9{(@6(>?wH zbxpii?eU*iKaKZejVX*JAI`S0+!o&-<_qgTf)A7*wjZ<~v!Af1mTK*;=)BTP;KWy` zpTsZVjJ3&&Y9{_3>-=Xxo_koG6xAkg_$S7PR5|WZC&mZCNxQM8udBh)acX1w8*u2K zrN`Ugsp;>7Z{YapNjG?^m!243=-&`e#^?8f51ka96upYSRnRebH>j;!jYy{lH8>k7 zba-@kaDDKK{_JJUz@LN1K_|z7eqO>=rsJLbjugu=T_3#2YXuK`3cO>SdO;oSKI|Q( zj;@^LTb&~q>J_r#?n|NkXbN>;jO zIrjvU)vewH%=b#{$g>nUgMF*LF$8?_1F>XgF}7`xP2?0k8)IUG`R0k&e6)N401LH9*#TYZwoH; zhb3n@$KjWKkNQi%8TqHANBt!@9-Mk2j`AuO`u`W^_bm4;`z)thQJ!0vgN=}XR{19T zRg8XJa+LjbNcrLE8+aVTqX&Ns5O zx5+Q!^W4Xi^T0iqgSLJatMokeO66r`#VQ^Y9~EDM731@FEUr+EddYqX^6q83(Qb4) z-S3bVZ1TPr6}XChiFGUxmxZ(Kfu}YAN;$4_oP+51@L13S_s!>hD}EzARy_~C{A|Eq zd_^6w4^*BDpTzG}{C+#OI-{T3KeMj2e`!CPe%9KPzL1Wx{+ueS14q;*wLlqX;kwra zk9x;rX3xTUJ_6i9{{K0Dr*{_S=NP=-nEoL+-gc68>B8W!+Tkt4@p5D>kii@Hw@>C}xMVL$9cucL8|fqv3e#59ttVxV14Q zGTwl@^sKFE$#Sf9_^WXB@s?%z&eP@LRt((yS$~j|IRD}7b=SM^tK8s>tn6`jgO_8@ zlUeRf!ACNFy%f@YggZU?fcvWYdHf2v2&g0&;a=o_1YGrfiu`^cW{&el?ILNX%#vWhE_ z{b_tUB7Gt_&V9<8mAtG#4S4kkC{rcpCC8FNup3E7$Epk57;|xqJ0A4@6fooS_|-Aa zGr_v#81A(`i~a9e^Zm2^75;%}UGyDr%JIoiHB}A8*#?X->nR`hFBA=&-qbh z3}*FRxUX$E%e#P)W?-cr3!c#T_H+Heku+2K0%fzt2QPMl}2+a8RuFZRj%hkz>H z?LGmiH4LL~0SJ{b&iAA>ZTfI9AvW1nmZcyI4<7lCJe8FL^rFvb}JdHosx*0h@J zbDzOIFGzRlPrg{$8ICT==q~jy4KIxqbiglHUQY*Gobh8TQ!AX4b)f6PPUK7~&vDx; zbKFzP%iIeqwG}VDF}T{PRk!)`g7>+k+y#{h>JODqf%2vS+5EBcFaGV}GwOZrG*ydr zSr~q-e0F(y*(s}X3r@V(yTiW2+2`^v5Se~{*4>X-fEsX(LEwBfYLN2;?(9!NP5LA` z6mZkI_>_+cX@XA%VP$I}o1Vh^2ZG_rQ|f6oI0gPyd)))xSZlv?soJOZxz9Rx2X};5 zrvGWZlIm@4?NN~bZXIR|dY%e##RK4fM`5kUgUTnQ(|`x5WgHDD`G$Ha?vBq+CIGG8 z49OaX-vqaL1DxkGeh=={ivI!fbvig)T{^w8*!^tfx9X0{&8n_)x&0ge#^5VzVdazV z?a&HTWkL9J@QQzP%WlP0l|}y2a7*P7_z%~5jB~O7ZP*AndmG)2pw&_`0Xotlbqc;e z+0pK6MnULJC?svz8CqsU6b<4P|*U<5@%c%ja48qKCM;=UT)NAVDv@5K^Z))5Z zL9+|ezd$mckW5yQiog|4NM2X3yEV>JL8Q8zE}Ul%ezV8j>TU~;wz}ib`9Dg3>MRC# zIU_v7F}l>xgEK0>3(kg=sd3NH*mwz0`SA26_3wU-^K0mH7r1ryI(LyhTy$<|+b1NS z2D(0j*gG7bzV7rmUCtxcr*ZdZgctesxa&`2_11!p&rRyV)jsXE;;Q^tukU!BTIbe7 zo8+z&?r^eWxo!3((BdzJM0=?6hQP1i0)2`7X_DwCkAJSW8#;?Rm8c`CGN3K;Qln2>|4<^*LJ>>j=_vvVjb^3fqnH& z@T?$trgD-06xM=QIn}-}`I_3EP7gn1KZ^T*3`lHx_>lcDo_`lyp`NbnwI5e|D|^dN z;$EuBM6AwzpzYJ`J3(`&+NV}d#k{O^_vt&Gy_lB=u+aOX@z&_shUarvNn|p6)zjPY-LoEoxQib<}hZtVjHr zn7IqFV``IUfcKtJe{g^5LSv0A>kIz$WQ^91U)8J0bv^74Pv`6PoE?l;W89nFo1G?% z=qI7)eiz@rqI_shCnP@P`%Tc}<^`wY9ZXbi1l=~m4mcHe^QXXrO5*I z&RgTYhAWQ8e!m&-58AI+BIwmMstdcCBk(XIldux|apg(wzVLW!uyx42-(6LC-9;r0 z=jW9J)@O8h-;cenRpnt~Mq-wNmH&%>Gd2F|6_Fpvmj}p9iMV5ULh?F3>ykO!qXc zG5!#GsREOdH~u!g-dY+B zw^o%t>+f-Q`KMd|qxA98Wb8Q0>IwD$XDvuy4jxj^!G;E_koCHHxH3yUQh61eYLA*8 ztPc|FrIaXYx0>$Os;|N3buI4UG2&@(#-CKK4p)^f@8xkfR&Mfda>;qdg#Xr$pZ$wn zi%|@Nte)XK>+=75vggBE>XYy&B`aFX(jc2>z@(-44~|ZdD$97bhft1|MG# z+^g2O@_CoDMs2IC#rr?0wQd)FIU?o6 zx+bvWc2#wM?cNv+j;!>sL)p{md>5mwP5z>4qixAcpp$B<(g)N5%o3iR=V3kQbgZPy zxmR^n9>Dxup1$N<629P69F0_QP2TAgXG!qyk-?hdF#2=d>98JuLap&F{Jqz|8!?Zc z_fIYLq+fzP?E~h=*6rGEydYQ?cxs(Gh|xTr;L`4D?;f?^{j_TH?#A;4n5Fr_Dp*J_ zfYn_k6VZcbpMEzH`(r}yyGyLQ@C#!-UEtTkdU_62gk#-f)t%~LXs|rTu{dU7_-cBd zbzyoSt>PY1O=GKJ!%fj4i|s#=md4G&`jEC}>LdGs#l8z|{W)?}=xyU+ z(X2@yf#f;HJ=)z4{p4s>qn^d;rO@+_avliU!X^0SQtR99;An38N-8#;vRC$E{HH&~ zrqs6_{OyQ3PpXiMZkq250j`);jlVuu)D^zfj+){9IjM8RyIn&xj#l)i3R{qZ_ai?{{&4hY8eSUb)?sh{ zF}MSma(c1=YkaT09W(Jwb$z-UpU}d*tMYiV3$o&3cSPD6>;TW*gL6L=Jb-g=110VB zJ{>=j)+XQe*QuA)ckNo|+%nJqXn0a-k54=K^kgT_%+Ef98p7nKHZZP=X@Pnbqq`cP zUlSh;-=Ef(R(R9>rOEX8Bk_~4e|{Sx=Z`r40Ccq_@uhx!^n33Ve@T3HT9n}fYqmP@uE}Wt4s3HeoE@kh^)7tgWVP^ftIKM_kw?Wl@d=M?!@IA>E%;q0 z-gV(!C2se&TCI53U~R;EH||1(N?wD%EaTmd-ggdaLT-1Ooi0@TQTDFbD#LLF&bvA7 z#8I8r>e3vi(K|)0F8w#2yAZ)5uRFZW+3Q6PU$57n*E#JtrUSqFt$x*xS2sH?UOPs; zy7U{T3*YjyoAj$4cy*(**;{Wl;?=J(6OH<}zjjpRPG_P2k>vZ~Y02W!lW@g7<1E2r z7anzZti@vu9uMK6?CZ<4OuYxzq6_^Kl6tSxYAEei`>esrpA8~(Ek{aX@CJ);f=wbp+8 zor1@g@%RcJ-^62jaxn1WDSX}MvA@-pK|X)Z{{gH8*TQ!*6qtj$yA95MHFO7C+3vOB ze4wGLgZa*_YB+MT=7qmgccH$>ys#%Z$+ba!kp+-o{W`Ji_oon4$zAqW($ALpu+m%0 zPbc&I;$u#7g~!j2PM0{pODyN=bhtk~{a3#>wMw_ACzZE>3v9xUZ%CmzBKE_I4hL4; z`{4W7N)LqJuoeX?{cl(wiJkyvG+NP;_)c)-N4>NCk3`>z?~K20-R=KAsP*~DnfUGl z80w||>HacsfYakUy_NA-Eo0A^8a^5Rz&a(m!unuj!Mb-g;zMZl_`0hqOXKcN45Uw=xkUKNOtSzsF=VOps>(KYNHeBlrf+hDdc)zKCT#6%_ z;Vt+AtR*!-?rU-HHSYWI`TOx#Y^B@7lOS7-t>Z8L&9HUVI6H&w;rp!Bzz0vIwPCZf zMSag6tZjLvoZvZlII8gR zyJ*4o{m)XRW;zk$a_jQoFqci?@`1erdA&k8PNd6)B zLG>^mTz^6HqP@WGS2-hmBK(^3BD`O(lwSt+<}v%7TI(|4Wrd1JUvoa?*lG&)#(~gQ z&*S+8JpUHYH{toqc)mHjKDfxAWzP<$Ip;ycgUdiibNnW}5oh{_v)6gXv0x#-JSE>b z(SIWP0U~|BVx1T)fo3tt`jvBR`8VZvxmUXt@0?2NycGR={91fvGAaFWXTz!^{my%zf1Ce-pf&L-Z>aqDdnyl=9xD94rScy2P~rEDm3esoh%&!_ zsPeCPKL|@n>0?zdu+7zgAJsVHq3d5CEQJ=* z>~uTV2Q_N0YVm5^Il*}6ptCU8;f;qbzam)fw|IQq7Cd5Ih9ka#2amWGM_e0h2Xdbd z&0#8LaBaYSehRK95h}InKSAkfC50Y`Do&yPG@uW>C7fgV@VxZ6jA?mV`@#>xH=Tkz z(p$a*QfsO@5MF9M5l*w}{k^bI;|7zG`T_i?IhKc?w(==!5dPxZlzuAS`*G@e_!MV2 zzY2Kvnc)mr-KM+Ko$2=1t)GHp%?!VSeRW+h6Q9h)c^`KkuUzfS3m^BsrLK0bP>;Lw z!t;`Aw59nPcc%9cJZ9sQE^vfvV4++XjDYuio;Tg5=YB^p9X`_$u+XZ6$37VF({0(O zO~EyYAmtg>1n0p9H{99^d&@jTPRn_h;XIJ&-s7I0D?}93;QE8yZ$Zzgv5$5KInZ$` zN2@`w6CLI33oe$KO|PKlP_fd-!|%Z&y$*W+0q~LoPUN2Ae$zeRd=7uV0eiv~>XP(u zNY1%Ly#X$LsL}((vCG+(5SPq@h4MjnF=7KQ@`oTU#)ohDb$C6XDY^~brK-VuDmcMi z3SYSo`;-k{yE@pOyao-v!Q+t)-mAW^UcuU~4QMAFhAVy@M>T{U`aV2&n0guZ;4MJ| z>|V!JxYPRkf2;0ZZ#jb1 zZgrQ!OBz`Zxocq8`X$!%`tVoydu{M*)rcso8}N6Cx&-%lZE$^fi96hyp8mUatwk%v zf0xNM=Ru#pC486rMRz!`$Wrjz+aO(Tb*ter9HiJz*iycRvFwHfsAB(Ay&>+q z@%P=}*yQhxAwS;>pAEko>O6r@deZNu-%syBtYCnBy&B%yuUo^@THMW%{$I-)pU#HI z9ySK;_q)lz5%!gv{2PL=TEBLGt!`8|;;;CutI*1yNFPtHi>60ItOwI;qbDm*I!`%! z5HavfWjYYxZB{Mv6lyEe(qEK*?aXrGGB)a8{cl-+beO$*8}9cP&|}BChe2@*K`GZo zwc!H1ze6!Q;5Mg*v zY5_c>x5JjU5WdqpV1a%aBYsI8uDk@wzBXdi-;0$OAsJu5=M8u_J$l|gfZfSR7cV&> z`AhiM?_{7Owp(Yy=Jtd58?j}7JGGp{_Th4=Tv9dG@6zR^FQl_elDo;;7Mq#hi@GT6 z2~&0EB7%dxVRfz}V5e#@|)CE-ve(Y(`xUlW)gdF3DjY5=y_uNxFsvd&)^} z4th+X&&QJBa^&qIFA_1kj0KjwO4iX>jXaqthIUBcl6ImV6LjEA)Lq3x1)zfRk5}N^7OKP>zk7x*nnCo_p2!pYqcQ?L&tD4 zepcduITw@A3yHD0<~STeO`9ok18VfNqwYx+^s~LhJRkP) zSQ{~>@7yn1F#FjNE<_I=9dm^cU$MXe<(MAlnjuGyc z|A4#ziB}#ON*uT3fv!hAoog$SKgKxVYB&t@Eiv?M$ZctI*k=bZ;%Wl&Z)D6X^qBj{ z;3E&Fda)d}gKmB&H7g{p z-^8;^zG4sTp`@#B)Y)U5mYcIWB6EA|h)CV~i}dFvp1W8}dTna*f9sCu!_pha@0va= zQrm^s6S^0AW6ZnI{FxH34!Z3`JU?p;aW9#eedY-Eo)feyHA0YAsAKp0$COJh9M@X% za!gLiMC22iem2M}!8%FJLB`M{XTdJi7tuKjBlMV|ImD)f)adJ27)G zwJ-<$=en3f(0{$nn9*PP2L@~D>T93|8$Lr$aA9%9d0<^geC(GN`Lx1%Qs@~D}M!M?CvF2|4h z=%{nB2Ryt1JbY`kTlcJzes$w?k2mlY%qOlBp$>Y9_0)e9?tx5d$MMYXgWOI{?>fzw z`t+>Cp4NG1l!tX*Yxx4myOBry#vCJZX0py*V&BjvoJ;bGOnnN{7i&i`e+3WZk~Skh zu3EkdwSC5dr%Jv}C*)*jd2G~<9PnziB@`KLat%iX>=E)Ooxd_RUW@wgOPwHGj9wYc z`_Oc1bH0td8W(jTH**8> zAJ7C{(?$BJ?gt%Tsby~ex@OFEZ4Aam+njgz$>(P8g$Cp>wql-&y$$Q|zOi(9+*$%H zg4V0nEZ~yK(PleF4xHpO=hy^!`~C&!S;xFe)D$XTjQTfYu&=kE-`6d16**Sq!S!YK ze;g8SAlAraq};pUm-eg%nqZd;Ah#&fh?gX9%JluI!*AKss>2zIc?hwWXZ6X0%f_Yq z0_C~Ws7r(THJh2!hg|z+)S-FnUXtL8_T{nUb(-8;$tN@Yctpm?X9kCHe=Gq{Z2&*n zfVy5S5%ZwUxwvMM%VzGCJr}Ex*L5M+U<`Ulc{=ym$e2d-eCC>QZjFo~&2h~HdrN&` zu5E*Ju;1DW4ykgUfa4`MIbUmH@ZuWx&Uc@F$ha2zueIs^VzTdK{|n#Rn)R;{UL*G@ zwPvIa5bJQG#*EJSD`IuZYu+2j%zL98X8*e`tWQVjhgwz_=fE8IR&y{=E_Z#r2K}D% zTyEy!vAzoH;Bh}yeUWPe={{ALyhQdGWu5dl+Z0eHHKg>xQJcNXrtD;mwu^BN=IY8E$rvt=T0j#Iq>`se{x0>O z>au>?!i(B<9R=bat^;TqG*k_X*GEr2y?@xhMfOjh+E`k*5`IN|D);dtUBjXkbvsSZ zy*ls*&S73tzPJZ^g1pAbB;BJ``VCQcBA*L_W=-FtPuIqY?wtV#bIalxz1 zJr&&vYlPoYFKlK_&x|%8cY84(`D`cpyEm4v(!CB%?F8~N>34!TaZPQ|VY+WC`l6$r z7cgH8Q=dq-2ndIP!_Ch@|o{uZ8YrhdeqUX`lJi&mC`8S zPSg*3)7l5Sqs^r$(Mp~3E&Q>~Mo%l$gEjq3CGS>fn{?I`U4^X)DXbB7xxhQZZ12b-u{`u zQU`;oVn259Vy7n}KF`-vc&F+6SF9B(Jq5^zz=wgsOz%J8k1|io^*oWLC_m)0J9VEU z)}WI)YC)Z@E*J9B<=l%+K=O~X`$sJ@*+T>H1$<}fp!Uum@|u_6oUG4Ej7$C{d#1lm zLmhQwybOKG+JFg{TSo6&3*JwA1m>l*6Bvm({Xw|2Ab)cGTINoUk@LxMtQm4aT<@|L zhTvLLk63tyj7$3Z?vJ))blaFxuI734g5hof&Jtb4V9wsX1p3Wz32Nd9?e{-NUeEZJ z4AY6M7yjU3{Y}j*+D?d#$@}xU=AJJeo7buOXv96l9PhhP>rU#knYu)Wdi!UQ7s-Am z&Ona>=uo=G3-%3b4NwoxmI`=nGBkKyQ8#jmS;V>1v|Fr^6Al@)|jrE_Vpw2964MKjgX2@3HZ_1Ho)FzXD(Pr<<3z}dq%>Z)muZ!j7ej4T~{RULoU~ndNOlSuZcFp zvGLaOq-YWBjrm@mqvc^yUdgq{Pf!Qa?~z^`?vXWrOr5qPajMi5kn@P#6&(fV0+#9D zU$P0c7u(bbjZ1U6zB{UFI+%*Sva~&C;G)e^-%uW{IAgC*`3YRuHf#{WqR&fN>{}@P=}3uN!Smv4YXV>8~G&mSLwMs z8f!WcwpP|qScC{J;^7=qvhGvWk>l&FE3h6T<4wRNRqi#^ux33N)?umVzAJO@0CQ%# zqN(>|_zn4+!Meh4c;15D$(A`5jLrVt#E{(uTfM25L7L2QyVTw@_F~aBtGZU_*hp+7 zdA%&^ikr~$xINDAaTDx9?2ApT*;s-;2t1qX6vD&$-^(V@MSCnfh`5gZYC5tyCd6*} z_tF=()<(0A{+q#juRIbf|Vv3KXT0jVh#$Hm%c?U;Mffds$yt1Fh>FZ3|X zO=BFy%i>+3)Ep#^AFTP5tbcyq0qdz@&u+BEWaSl3T#Wj1`nMe0)!bGj^#={TejhTIroLZWLRnAxlp6LASaZSeq^4=r0(~W7 zo2`#%E9@ux;5#VRnCiO*s7Y$&@&G;SH4mn}zZ2(#e_G=|`WafWPd4cK)u_#_c-*XL zzMkhE)YmHR`#F%^s7a~!liVY9P_AK@?x_O4srRVpSLT{#&k1(nxI_ku3?4S1jVr&7 zp%ua99gxG#=yRR#$I)>sFl`Yx@*bPCTs5`Va!hUXNUh&ghD58OV>CIJNB3ppKa#F^ zZuHfL|G?M|+8p$HAWcDT(%-Wl{qkrxZc4^!pM})L7TMMU`fAd;7;HoO_2#G*H6smQ zZSFI_&!P^p(Dy*KjE@)xYJzs)UR%`UXtwTa-`5sJ-g`gfr>TKv_-kufdRovg+Xeqo zLz#P)n3A+?WXv$w=qAP2W8`5?pb*W{p8?c9@E|*}$su~8} zesZQ0b1rv6hMV<~Yf(mu9w0oe9`aK9lAxX&URNX818w%C%#JZP%3sSoH``;i9z$Mg z`oxGXAm=1@C}L}=AJ+G}d7b0E;9vCh5$79Uvd9xtv$E*F>j17JO%`p^^m}&LQxMl- z`kd8yGDhi5V#Y>n*&2up%4u5mDtpmaqZsogIMdKqwbBPeX*(M6N~Q;Ey{z66y+Y(Q z=}Pvb$RXLY^j(;mvgSBqkL9{9sNtbkpzitRO!vfRS?}xo{#grtY%Kkv-?m>MZi6h{ z8iTJQKZiBk=&zwov^^n)$a!lkuuBn-(QelX8-CGW(rR+_hNB3~Y8Jo);IzSt9OaOs~5(613T4AesJK)o-X zPk6Mfsnmy+SP#KsNBSa)<21eq(!Q+UNbr;HbfwmLurIZ&hwW8esqG|N;nS>o(EVUH zybJcjrU)1W^}^}%)P6ymc#-~Vq1U=_o+mx9#zxnM^pRYU#V?K0HNoX~W^cS1o`WoS z6Kt{}or>>@*EaZsvS(}-pCY!RCh&XRlfzkq-a%1te`yqacw^uTz9rfSoltsmitZ~o zm2*8A{=Z4_HuMG)pB(UdRs(SpbY|8vr#?v=K^4Bij`BqX%$={{o9$u7F&G;MYob?y zC8{oa5rF=5KU>iy+hLOuoK&nw&wGU|hW~{2j&{_e6kVaeOyT(0$3pxuvd$v2jC>K9 z0$M4L1a2oS^u?aUADc^pWAl9~_g>r!eQdF?A&YLs@!{T}_lxdqWW2E*pH>FGz2zL`YdT@ zAU`}mLhZBk+N3*O51S0*Gfixc*xwg=i-UUu`gEv=(Z5W6a)mWAWQ+x4#mL_`l>fHa zlMY*Yk2D0VU%D$?>4f1O)?V~pCWbdYNxmoFIyq)f6V`#|vFu$kGaePM)jeFcd+UR7 z@mlCROHof)+cT_9u>HY43%Y1U%wrYw+m>7jd%-N+H+c&A!5zU;*o&Kk{lK`_>Hc40 zuNoV7VE;BaGci9?(C=+7Fc)mTkgL@S?~U^%pDoX94d(rd-uH1n_kwu*__!rr!L#hr*D5E>d8%#LW+qpyy8 zqdVQAZS2^8`uSi=TYq*9y`Sf&vajc-H)roRX3rC{XW7ro)AO^Qko-OAgE37K8=TV@ zWdP;^vRLBLp#K2t%~p#%i6P8wIegFkDK<{7f$S~TrCti3SXV&)JO*;|U^?59->=kq zIUEHs*pLy3>u&Wwiv3hPKYJLB0ZkE$;(S<7_K)m>U*BLyVv41}S&g`t zwZNGxF^5a7)dBaU*rA4M`sgGdfu2bpWC44DFY#U@$j^I^xHj#i+n~d2jVO~Q#*Ngw zAS0=FH6TW~%i~z)U@VM%70lZXUb8tnC+bi4JEz#y%{l46kTsO^ioGN!_1w#9ygW0+t65f}%2k@--0-m*u$FuHN zp6`vOY;SDOp1ZPV^LcCbUi3KlowE0B*|U64`h*Sx{@R5qRK#@~K*LMYQSha6Z;QN} zpZ&(1qa}MU*DCHy!8Y@=o>KYqYuSDj`wQuQeb5p$q^ouRKgyN{;Jy~De~apo_$Bxb zp@YGe4*IMR^I$x*%_VCi=|?4FUmtQG=4-`%sHp7@c`z1s9pX^v@;dGaHa*CB6Z=R$ z!f`AK)@XkpF;CSod)nZpF}*zm7Y2KgOL9@>Q;~RP_86nB<$mxr#=fvV`xaoz4e%e< z0Rt}6eJaUsz}J&akn7S%UDiIc5tixOn5AR*8h{bDB7Q*DTI?xYhgR5vo8ll?k;UC~ zX1Jc?XMZZLVFUbBTb!VmuQh;|wU+in&toqS(v)0JaMn=xNXg4ZKUtZ65i*bKepS#| z7XEQ3>T0jlzVEAoE?+(qnRI3FJDcyRuTPG<5;OM)gWJ%1k#+!L0rukDidcjuHBw`L ziKh}jR2O3E8NVWZx#S*511*fnsfa#A%nnQtZPW4*G7fs1@K=s=TyLyvGve;)Q`-Ps z+?4r7sNV@*lR4}JHt2u8c8qPkjxUsB8sd@g@!|SdJE4WkAs2<7WgX{6&A=}8ehYg0 zP6iJKU80UY`=x9F_Fn+Z)?SX{PVlJ~XHJIAMPB9WB|a zo!~2mmzg~c42JzG*Un=kj>Ha6XS`}~_Pia>lt<43zme8~Q*^IF@Z>Vr6TDm3@5gf= z9-Z?=uD`_XdDda{9=soZSi$Q3ZL!w{OVtF88=DZLwAmVobtf)f4Ia@AnFf9nO^voi zpm#iXM8a1$BhEp1$^{W)=7@2bF>>VCB%kYf3YDl#)-P3iT{wE5ypNx3-L^vzhVs{@KflUYHZeX zg0@cVSr0j1_+~IuV7DSo>_%@$J%2IrrjED8^M+{PIckMo z4;w4+GHGBaFhfh$pHjxuhWE6A8{5D1V>ZW+GwZ6?rNz4})3wd_=3J9>-?-KQcDIOo zsy`ibJ*5w~>6an6zivdH;F?T7YJgn*Qx?b2*Pmhb8TWC1e!*>ABf(je@A6r39go~k z9J}O^tO4B{UM>5S_TBZ6FT{z=u_vJ|FO3*Li?_u9v;)^pcB{MV3$poeA!yM@m66xnKYo0Xae(8qyeJkYo|3B9py0o{<+5i<`tFFMBv zte=T}6nhKjEx(u5kPky)x1XEYFNbR0cQ<@w#7>mC^{{jI-d8>z%{Tjw2fxL2b#9R! z(`aA=;Soaf#B?WTeJOiTSCG24*d>TnMYkh11s2J$m(c2N=qJR*$RkADXeZX3`9%-F zuL6Fl@0)pZj7dIneMQbyeb_9sIb%F2*F|!(m|J^Q=69tIA+}htMO_frA(ujMw~cgDL-)VAjZRutc!t#xjnM$b{;$OhPkM7J6SdhCwa8@9=r)en=*(fGdAzaXaV zPu9x#10?rVVmajdJVsJ*y@}-#Y%X+D%vrCuF9$!9^D+OuJ>}jueg>{z-#mmO26;1_ zQ*}hY6F$;+{B77LO|U~VJ{LAp(Cn1B6}|lGy)nS?LSJIrA&wBb6Pw*cZIhLr^|^k~ zhgSh78hJxsa|86H76-Wv(AWE}oABg1=-Z}-fr($~8v`;6e5C&v%pTg3$D#GX=|}R! z4cYew-*6x07=ii)d>~>I(RXX_`PaDU51ZF^D|lA_a3hcRw%*829HV3soARo-zUdnjx%_!v^^tPpsvq$IRnq06vKf>%=bC0qw`|FO&^?n8KfKE)jU9E^7Lt6;#sDkw< z6DhZ;^G$|Myc>1}v4=GxKdaS&e=OMpY(sv^+8C1S+^YF0e?uLae2Vc;lr_j>2{hi* zSZk4ozH6YvWoZEY3^EyO+nLE9%B*4@YnN?kX(+}sOY8a6(Z#<~)YbB_W_~Ii?`QVr zOlZHvTXmpS!&`gf|H03zj*O%D+p14oJ0+4>hDp$mVK0YnYV;5Bapf{X_)5_Zm+1_^ zfyKHMM%Sr2b)ZebMKY$D!D84@DMu)$sR!Q%Uy`V-%+)-0rsyQ zpf}nz$S=33Vg1%`F4n9Y-@*QY`&}IG&1?~(LvHpmY^QmC|9K^?U>!5uC%8iVP1zpR z>$<^{b1#ZTk1yirCd}_*%2;(d?A)@ZBCBMMmwUV~;i(IVp>-V&=VmaTsOgq^r1@c%wi1=lW#H?7+}AysbXqt^wsIjIwEgAWPF~~X{aKf ziaB`ycWGA_W5rp9&(F*`bLPyPgRw~q!d;D|?sB8CD!UCK8VJz%b60guXsaQ$)GG~X zY+|Cluvtuv#$biGZet`aY+7ibA*;CH%C79P>n=3qfEN&()VekedO^sdKF{~ed%l_7 zr6uh}%d(s^GvD{Uzt8);@5~~{xCD-D5l`~@&GP)->n!(PJxXIt=9uy^)+=h)YkZYSa)Sbm`W_x*L4g99vhp~cvnTy*NH@=ss)5w`NKIukIqhR#&)PG?TMht7C8 zy%UDC12RuPu>}30eJa`s<~H2B^Wd@wqvy}`7x{WteqAPO;_@qpl&x^_fU9fWz0Mp1 z#?9E>>O)-55O{IG$efIx&hq4L9_w-wz4Lnkn51#iZ5?y%J-M6}dRM=V8inj}alVRb zq>>ZFn6B0#`8i*u{ZQU*eOk^B2YZo&N$;cs+)vif_*w7U*h5W@+$?k~k2ji)ksr`A zS^g& zdg{+hu}|^4uVml-Z5zCg#?$Dp_cpHJ3#)qWSG&(mUd?L0P<1lSnE+0YcX0Orvyprn zFUn+wdrVFi<80O85MS4z@2QtbofUMqfa_xZM;Y%Bch}9&AIjs*T#wf7^@q5S^oO>C zy%iP%7GyW_vRj;Q#Ou=r^4h+CdJb_7_kVSNGmy+giuVZfbT`8-JpKV0>`+3e29EW)e7H=M{{w*;SzBf?h|mCE~Z3W zL72`gu#Jlio+oEAbb!P5I4*+TFJ8nYe0;V%C-T>095WR9dSx+okPl*C=M-!(IrX!S z6Tm!LwcxpkwHGtYrniFm>B zN%n%zLD};?;LgTW_GP{sm<(!d6WO_echnrmd&Rxax;uPy2D0sEqfDb-zdnmeDOc=) z+6TMA{qK2~`DKRBNEbR;|H#T1!feICEZ6b6GsV2IK@3Z_SG}lS&wU)IT=8f`E)k!r zA3d(h^QWqVsF^8-&-*0qx9@>eEMPv4HqmpNJ(q(Jxb3)>66x2yAM-J0zqj^{XHgURTvn6^j!j)&7x z!~4OtBL?tNHWx)bdJm*0OHJU-x0;91>!Dl&wvx6U_vdU<;sSilv16rMkGB|-=f+_Ttk#jN?_2Yd*d|q3l z{m!txLy&9QQt=R(t8_VEs?EB*ekSTe&Eap!NXALFUaBGvXy@TEqWP+iDJFnLO$6X( zI?Rxt6>hqEf5IYsfNWJ>XLwG`&;9-l#;T<-pUU-kr5hb~fgB0GSn-5@mS4{Eg=DXR z`>i(r2|16>Qu5CnP(Hmki$7!wUq+wmF~`rKKSAyf-SF{^`UrGS$>%&`_iiosecjjB zFjd$2S4{36xm4%e+z@eGE|$cvQjTbLhu__W_>_81U(3IP?~eK`xmNS=|C(KM$n~kw zzU%CO+rck;uAIq`Z!fj3o3gMSO$Ua&`{*jO9p-H5vbXa9JtZ zJm*Uh-w(iUIRCCQ1HV!=1j|*;M)LDoqt4#jLgjlOM0QxyAct6Xh(1^M$jgtg5!QAt zqV~c3#bSoZV1ru&V1-{sgBPIBf36?QVjJ|hL0`C*@%HA7OThV*uV-~<@DUQ64{SX9z{p=Z8!jOp@_I;~ z;)vrdvWIK~>=Wi%pe`{R&_0-q)AmWe_XkHJ%sYl{{EMrxU&wgM%b%0|3$!o8?S0P9 zcByXE-)@*5qz-@yLu({4>i+vwlGjH*$@w68fk zq3`Kh#v$*-XWZT_qK+Q>)79uZu{h(4@mc4$xGw*1#uXn%ZJYO_{}3O!6I*}Ba2jRzvzYWv?B^hGA^K9= zWA6C@7a!&Kjq$!+?@!sf#{>HN>^Ynt?8L^8A5JITx~EaIk`2%AvwaWyj2vPV{%3l{ zK4Wc=8_kqpP7i-s2gf=%iZ}gIj^(e5ww5s}Imq;9hyj6z__&VsGsg4Ek;I8sJV^e% z#Q>bmNZuRcYUNZ*$g47c1>5&>RyQ)A@%#Ffc$C~HU<%B^We=`2M{}_*af}(@fjnd8 z@8mr2cXI)`@QMdC&t@Q5$YMxharV6ta8wcJW@vTk`YO#jhkj?QIQbxz3k& zW^*6O4J2PtGN)%h==kONeK216YU}459roYkIa-{#MeaT^2ytA5&#lDyj5lxGwbg8C zp5yvNa?I89fH^r1t<~QifPKDAoT1wz#(N3NHXk^aadKDsY{Tq`35(k#E@YJQ_$bcHYRu@t%kf%eBm2^hpH)=MrBDxqSUjGYZw4E>2^A7vuD`kpm9n)I5F8 zNoPK!eQ-Sq@V~@|hN_3~AMrKnCVIBqzU;(%L8SvDn14Lf(!c8+1v~?Ahr9d%`;L#B zRz5py8+rnAbLxSoC5S7oc58#hy`?Nk?oAg*f>)bsN`J?jLAF-61Y44=;Txrow$`++ zwQnZBh%Qyj(X+veQ7PD+T#qJ$`Rb;yfwzx7TAhnFl^%#wvb>7m9#<)QGy@fhB4H=4d3?+w2de>3=M^tsYKrQ_{)THmgJz4Y12jc|9` zpZuq>JKUUnzH+(#zskczUj9(+iS|b-->dgk#_FdkC!!<4f#j)VZSqv}-gr;F zQQ29aDgU+hdg+bezsaU_f4ZY}w*7W^y0p9YV)>*_Zu!}0$C DO*L+q literal 0 HcmV?d00001 diff --git a/tss8/tss8_rf.dsk.orig b/tss8/tss8_rf.dsk.orig new file mode 100644 index 0000000000000000000000000000000000000000..e0434caf4b39ed5b3a5887bde45fe8efd720511e GIT binary patch literal 524288 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�z8kMZ81HvNsxUR)0G9!6RxY5E-Si~M)<0D?VRB2^(;{d>u4e2T?)d&eL> z=jSCE`}ehUqaUl{yls$-aHf=8@#P7MWf+e^&d}G8@nsmhCis9Q;S=p7ddeO3U&5yu zXwzeWE(D(%0X`9z`weR$pwv?c?F4Doi=h-r6~xDk52>Cj0jXa4FCi82X^Uk77X&@% z!zkjo;mvY{mNMFViu^+T{c)^aIF6qSLW_5vQ|0)6sl*HzEqopM8FqDhf-}|b60R1W z0WJN#4(v-}_I(<}PnYr2ps`=Wo&lNbF5%B){H%-O>mq(axQ|oAE<&F!2x4a@Mzf*bRUzH12CsZp5z+70c89n&>}d zlk_*@9??>?f-X)yo+Qqj4WW_KR6K}1%&XRu=994NSzFZRkFu+Awt(+H%C5prX$5Z% zEufXwgV?*AHEZy&nCFJE`&nt##$M%jf03iMddBR7-OOqG6wW7MOD)|yZXd(B$Uchm z7+6tD_YT`!?mCyFbUG@zzu`?`=lns~1C7BN*b1a+rL}~f4(-wonLD-Z7Oc1<&D60Tc?le& zMXfWK+n~IlMC!SZ?aKT~Gabjr2=8l7wXYSY&1NX6(3@(nF{Wx$?Wo(Ej}fQ1Eutvn zB<@d?xc9@ckAi0DW2`dzGrs4n%qt6chGm^YoweiUcHG6>&b%S`rJY4*btj(h3q{=f z_9-gPa z9p0@}5sf@y-D3?>lf~r%{{C2=QlKnRY3)go5Uzp9agM1$-V!N5eGzV`lahixeOe;r zeD$#Hgb3zdu2Y#2Kz@=~>#qpByRMW9I0_islt0MEDZRWAVZUx>$WL)t(!8bti}O>| z_L5zlPgM^Bwqyk5JZ(KD%Q*z-p083lz3nC80<}o3>D0DshU?msq46;TN09^V4?M$L zp7}wy%CdVP zT~8dnarD9QD2~T)^u_Twj>$Nt;Fv1QBAJr{^|0)fyGr!E-}A}(ZLAD9VBbUP=W=t9 z3i^*3)qAT^{k%v1ziAB9FX8{&f5iD2%(1@m$v-C|{>DugEgAw*iS<)(Rp+Yv)c%5j z3O`c0n%~8v>PqcLURT-7qU=2Z%-iw=6WjIe%4!xhw?I>MMW{J2;lF&rK6oiV0bk!o zJ?5VCdU?6t9o`S#R&S+u(t{ckQ>CPr>RpuIf`P0w1qe z@tH_po*Uk2uA1a?y*zqkA6iigxvoO4r&u?6*GS)NrLrm*5cAx#_6=qdS~kpzxG5;H z8#GsMGE?BKy_q@Gw$;n{Yp}0EtI7)&dAWbnoNtV@Yl|d!LcbjKx*2VXx-k{Kj2Yi!arA#I45Wd0%T^<0+SK3vIHKMN8mrEIglg!&M2-<6mL4M4SooYB;~=-{U#S zsn13rJ`!Fk?P(4Pk7Ml+&ciW&m-#t+7Lcp6PFeF6-rDHmHYp>`%;3t;t$#eF@79E%B21`&hNAq96P;lkJ7d75obALA4xw@m?-Iv`+I0 z)=3;^aLh6GtZfK@snmlGb%cv_h-X*NJG@1 zp?NuKRvp)BI66t~T#Rns1@=^b#O&FW_*$EgYqQ-0qvb~Xta?J|;uiA;jAk8cYE$#F zV4lz%S*Gq{AM1JQ^;#6(Nf^7uq;}q5js-3DGTxEDgY#3MZGK=?a#QgQ-nTm9{D#$= zpEuvNDq?irZeGFr!Uqf0Hfnd{=fq{G(K(s-Yvo#$b~S$hm;}|}T8yrl*6n60M&=yk zqg>aD*>)4irTFt7<7|+xiza^(Ee{5eV(lEZMFTT?H zWB!&G+s%r?6!VQkfI3@EioeA?f^w2XM?o`$JfmF3-!O*Y4VM8Hwle2q#CBox#C$-x zd8qprR!bQ=Pn(A^J|A#zvNey-4>dPa5Yh#fT;H&7k|nx0B5uRWjmB-|)>jvBY zG!JU>J4H8q%fo?9^@}r{jEJ#p_d0t<21a|EcI@LFQ21mIn$U?jS)=RYu=AY#gr?aek5PqKwzX#{f;hSbG(h!{LkGw^A z#|&Ig;W{1HW4IpY_d+xN1iXHHfpjPN)xa~akz+Yebm!d6)8<+9y*sf^f_A;hm;(_v zSwiz=_Fj`<^IkI<@A(NO5^gKpe)tZ4*dByE$u8r&%>wHVI|VRnH@ZPKyT<$08{%EdZuQRNt>^45p&{sq@|YjVm>=yq!L4k0&cXRUPHP2L7p=U6 z-BI^-GitQ4)4{2zBC7DGP#@f3Ow!dv-_@Gh&ac}jqGhWgxLXPNZPi>xzd9s7iN-0rNJ z`Yg#)x>qz(6_4zHC23WG^H0Vb23z-`sJgu;>#e7(6<^dmPF5E`yuiR&I5K5ai4efFM|v>FkB}Yy0gZNWs{(PSkCu8Q$}-4*! z1mQTA`y~5_4>v9YJQ$(C zehj6zFzP=-S|d?fEz>|*wM>EpWKE+3X6ST#8@|a_xr$sSE>lwh?S~mL#CgI~FOzXm zSTKpfKHfHMiM3TsNA5eZHl$(|n2vg_qx#6-Q+zwZYMI-$9o9GYQhltq7f{6lY_<3< z(}HQr`|!0c!#!QMYNt$CEU}wuvqBBo10h@N5uXF*MDbl|jJ>VS0&I$TuUQ0@N0~El zPQzTN1l;f~^G(cBZuYm|!T4K>e)~$>#tHjN7w?+s7{Bk?pMkIYsg*2dnosa|%=c`X z^)ZA;Tw8o%eL`!FG6A}z9rzNpE$gV|!BFa4?t~>*-{qXn?8^O2bg?|T8yoF;Ano>_y?2iO2m#y1(Q*Sbz+yh z5!xc`cjLQ5U4JPs{5L$$z9Tss5@TQUJh=fLN57FkfJokxyeOGUTxqxAKiJD{h5umx z0JHcs{s_vP0NS4p?-gG}PySu}NgY$(4>4*U#;W!xt}b^{-WP!)_>lb&e-Km|XVz(m zbD#1I^w&47KZL&vUEJ5ln}h!)!r~mrLVdia=xEWZaFekV&zpniJnfY_b3t>KJ5S^K z%Y2Bv3}dYV-%_st@%{B(%e}dv3wW}(md^!uHrHAy*5TK3?_AatE)9#rr%@iQrC;)B z++rT0v<>#pd7hsRAteIS@c^FQis(A)`OEeT_IHvS_yKpbceDFTF(#2p+=BZjCMR0= zS^q$f-ibG4>^{uX`#^V!{R!eeX!7po6Ycx?B>N`*5BpBFWVAX9!dB-5$Q2J*so(+g z0qarw5%;G!|F$#CdB9weTw&HFAFv)UGszlWuYRS$Db?clb0UM-`57}WSP7ZvMU|#w z=dXr0eV1Srt~MmA>AF_~-{U3Da_2>7r8C2+ca}MIPPJ3%94U7GCTo+~49uWS<^lD; z1@;SFuo|}7EkHavkZiFISgqDO0(am&Lbvt%#F9AB>W7a>NCBau5%73yuPvr*%vudmv-U_Tb zHTD|Nl9%`@%!dqU=PLZ}608JmT!UCp4feh0;d}WyR)>gA4WJGG6f5|xumB<5t&P=! z(l!DiBOfz}MpA7ug;6!bSqm=D4%RdJH4v-J40{HDnbn%L$y#d$cY+NnMW3^v)+`Z} z!h%^!I)Gmfy6RvHpjMU&cZ3-J;gv`u&L$ny@O}0c)Nu>y(Fp8G;(vL#&)O~~_)UBj zWX4V6HPj25E_SE;5+b|&2&>6=fc^-182l4)R2}`N+_B*SM)(hNl5_c3T)o)+o69ir zQ!epPV?$agTd>kMqn&1n1)&pKpoRNU{^LN~`m#MkjO4SEPlD$x;SY(;$u9ODtT_A7 z7F&&f?fowZ$9O5cKO8skhOOXF;4y{Tr@VvT|Cc;||1DSx;`dJ-;r%VF{;eqU8(6i6 z*~9o&$Y*znVf<&o=fLxSmR|=QP6~LdNI~>3s?LH>V)KbriEe~kaI{jge7ALdip zH2yH~&hAuCo&szas(}$amOK;maC&kwjS6oWGz4kXhOtxpYw5{BAeI;%tgFON#YiBr z-3>1PX>QtI_paijE&BBh@6Yl!b}szm4N&BBd6hkvFSEB|x24=6+tstN!rv)yHc1@1QqMGfCB!P!8ATY#%)V|J$a2K+jm4|VgxH^mlcFE-eQq$e!H6PDu% zm3TrGp0LH!++ZD6>Sf>x7ve~t6li$LOj&o@cPJWu8urFg=Hto7%_5q==8WWHe5U$E z_$Slxd$O1T8a@Lwd{%OnS)7~!x?KXgJzLH9Gu?~aA@1ewFt?|B8F=KAtX|pb7K*6?-Z)Mf*4;NcUanfF2dE z00VEgmxrCJvCtz=6MI}j?nT6-V2`^IwBQ}kg5}U4v?Sj~t|p-W&J{0+U0zzD0NKHS zaEFKJcR&Pc#GOkKzpcQh(zd&ed?V)1*l-)JuN7~igsmuHi`yU?KuI!Uv-yUirW--2 zi02_Xi$07n>{{8$ehTrOmU|1J^LtQQ?7I@yARaT<%X-P=WOUs{#zk?4p?W$`DKz>uYgb2_-Ege7b*O+!Ji=fvy0?=yduG*ndIgn~ihIU*az{NT2_tU#X5y`8TL?Qu1>1bliWJKi!yw zV@EmN_;B?9mzlH=aJzq!N%e94cR1Bw_>(z3$MgTrw%{oJ4Bv=)2mTJVztBzYQu_{H zkZ*9RcUQSb9lOZKRJ~5dk>0bff%5T6NT%ip8&cknxz&(QsT9Vegpj{Y?E-#G5Vu^jj9!|{F`oBVu6 z@AW5tiprnz&*MvwZw&h9d|bcPznM|F$M{$Bui-cr_szq5cJ;?Fs?VMN3YC8xu2Z`d z_-`L-D7Iy%8^VIz;7_REa(K??sKkZuNaS5Tf_t`Gb_xo-bmv$J~hek^j^?Az5!3>Q`uF< z3g@TX=RY^T1Dk_qU|she;ed%x8E-h{>~HKGi^}bWb&c}%VUKY-o<&Do?+KoT&d&x8 zJso=^4hmgAmv(n?%*O;&wMJxx!FYSdzN+$lm3Tv>pTknnYHR&}>Jy6pM^cWK84kt& zdp*eFzrBEUve9|Y++)u(_ayfK_qf?UK^6d|xzTQf7Ii5Wavtu|}*! ze-jz#K-5(`;|(&t06jW=h_{{v&T;?Jg%g8^P~TS6 z>G|X>Y!5iGI}r2uE&hfWiy6ZFJM2H+eK=87GBv1sJ?vzmV6)LmUQ-eS-ze zvAmrw>?GKu_M?%;b{iXGKHxmcx3LF+3h|1&(R{#uz)Z0*`2QEwcaqp>KE=lHjmgR0 zH7I+&{kl1yzn+}WH@Od>o?}qE2kbG>SzGAEG5ECwb99qChCg5xq0Ls~_oH5Gh^da; zZE5&^NsMClX^UX({SKax1zSSj|htaoG zyy|X2wBsH8wdA|r^}+XmZ~4byq8d?e;~k-!=U)T0c>-SOy~DeMKL>wDER_+#S-}Ir zs^I2eUGViV2(Ji7guj5_3-`yNx9@}&;0}*tpQjQ#XDmpuOU#0>0Iiw*TNxJE#SZP? zPZ0%HUU07{Ky4<9349);nE~NFkfiSMCh(cq@fr`F_*|58A9f5+kh3wLCfE~rvFFOC zMIh&h1?*KIV-}+P6Qz{Ubsz`H5^qA{F0t=%mWx7rJYSDI2k^}8xH4b73S7?h;x6>{ zc3#M<1Pks;-esl07d{Wq9n!Jb=>J!}*@6_v$1*8h*@&l6%7CyLIvQ8*!8!bVk_YTY z;j>af9#$74X5dH=i)>WHkZ%A!(0$~otkQIR3Ph$>(Qhf*9{GwM3;TVtMuw^x(VNH? z`2^VZl815{9sFOg-Y3h`UMlKRw>V-Gs+Q04oCG2u&W9yferkfDwP~{*_8%jy5YxCR6 zoYDLy#Sj(Vm>*%z=u9<2z zuU(GHwlnM=MY;2$SZ%#fn;lW^zQMUF_wKg)ccA`FaoPSkDz&v;YDd_RrH%RUfzaL* zRGZE!Y7yEV zj!Q>2jgbbrI^@5%LA9TbB~Fo0{(@XF)<9Rp3|VS)!5-xM|D}=d)`;69PB2Cq(EGjj zu^$=lUB;Eje-F!gINj)81#6c6kY1qUvwz2D+WGK*@yzSp$Kdz!1^jAtr^D~%fZKw5 zrifE{v-?f>1{uMAw+a41)3En7+?tN-U&npq57Q9j13zmYY=J#UK{KtfY6qCCW5}oG zzaYuJ02}SoP}&RPC0soPS0H5t{{>sXQ&2A5)s6oSTI}W6O-bW?K)6D5g9ppIo&j0i zfXLb!(jWbzPb=z9*Ju~8HKbiZBl>j!_Z(37>R-^(x_c0PxtlS?oMBEi`Xy4<+3D>|Td9qgW_9V~_YHr=rg zcRT{Cn4V_OB(7K;P)_!^2kmsY^OHGt4PaZl%S{D65qV)Lo=s){A$l&AT8lQKQYi(o zvwzD0RyXNmSy=&5VbX7seRVgs}pJCM@oy={M!cQby(zr$_gKseRl z#<@YtVtgc`Fw(pC56?w(2<%>}UC(a(xBQ#RCY6V<@_;7uhxS*2i<%#f_bA50Z#nsZ zRoa!wvpAjq0d^;3fs~J{2UtGxwxIvdvdB+t8Z4gAGVgSLj~YFN9ivlue~gR$sPkFS zi<|{Z9=c~~+dWHj?)g2x)2U2q3%oR*>cg64T3F@%+};P@sJ&c5Lv*a|n|a}@uq9t3 zyrfK4c>}`j;$1v#tMK_(Y@d6{^@vxI4tL`GY@AD+(^y#$el~1{$H-Kp79OWd!o8~h z^I>Z@5jL!+U@Tq_8?L{JeEu7}O{<%4Wxpx3Lq2>r$O{Yajr6~PdK`dHSBtv{UAKZmku-0tI7+H3JU73_tt*GByM5pt3h^Xt%(9cSO`a~dU*JP!#HUIbc#>;+15vbr{p%?L-Tt7obB z%Xw{*CrRi3g))F-fVhYlO`z5ki#1>A15S+f0VutDI}O2fmIn>OmvXcMF=aOq1vcN^ z;%|Wb+9yg+Lu>F2#CE2VheRchM2!fKh-k9*7uPvYla%u(IXQn7)%IG{b!oeLZNQbf z!{lC@ll%3Y+&zF%LzvXt0flFe^IGtM|bv6>2y~%o$jM6^rwGOEB4DN zdsHwgDxZ!zuP!~lPB{ifIq2^AzW6D0jIU8nde%0zf)dUSy@O6Y(HV)>I_m%Z&rhlU zcLMR%F9rvf24)w<3ozl&U&*dCV*mOxfb%mv@{=E9xrp>0``I6ZnYY9^27cpnL??NM zJrutFF*eRk@;aM**@2-7tyZPdOlAG(&-UB<(XW73N=HRF*pL3j$d8`lt!*$*w~FDb zT@M^A%XtDAEfhce7{nf%Zq*=O)?=V=8=!gnF6yDr8xUb|mUTa3ew0{$6&GU%@R#B` zP?Ak;&(pmB)*O%e#`pE8-xul7bkvUn?L6w=KkCOI#OVF3b%Q}1of$=iC7shXvfTQX z={o}%MRXVoB;LWsNd7Go*l5;JMltxY6_#`VjCS|C_6Ef3NBm!-9>;RfxIbAVP3)v0 z>I$_SMHC?p-OnjuyD9;M86OlLeGE3u-)`kG0p9>b{Kr)^YtD!Gt=tc1=X$4zUht?S zOQ?K&IlBflb+GZc@fln)*=Bi_-w)~Zfks?evZ)jGPnS0YHTa=<0vmv9CjjF&`x(Gq z@!xVrBAv<~itmZpMEo+Wv#>XFZB**jxH76;I=9XOrA(>Z+JALyyL8j~vfm)@M$HFW z%@e8|;I7#&!Dvln{wSauTdhdP6k_&m#d-{%ZrU07Fe z6kh-*(T$yo`}5gp@0%-o!b|5_xRfjxyUWA9jhX1PzIH||8bjr0^Q zeg*r;=U`-h75m8WRdTl>eM6LfH?EuqE~GCzA0xOQ&i>Orr@^WV?QJ03BHm{+b`Y*) zKL+>nQ}#1<75agYjDEp>`99U|*p~hy;5pGr0p|S`AUI#5|6p3V9&T9LFsu& zzoK0_E*$-Qj9OrTY;}A33llA}J~71^7dC};Ay#KT!hgYP01ie=SZ#L1JvyyAY?5i& z$FJ}lzrdg3EDP7kaqvj0c71;(&sX=&3Vr17BQuHKejU?g6C||Hl zWY|1e>*khyzpM?Ye7e>gmRa;(aUJ4!A0aDYwN!5Uq9Qp6QLQ@T{`+OxrF@-bIcsn# zfEHH5mWm_4k1lITI6|f^yt9+9+Gm29A2!M4hUXsgBc z2wBLfttQKt%qh-t!~(5n`98J(tdQ#J3p%Iwt`9rOaaMC!ZdJ-k`}(Nu`^XyfPqll4 zoXVE@>Et$9o){z-CH8uhClhW%9q75LJU^3Y5p}Ft)+Ia1w2$`f@)q zQL+;6J`-&=ON{W#&EEcEcE2o#EKy|)Lwii{%g`^Yr4$*%7ppDlFGBy!68Fm@)U^iv zR_{ttYSQ}+lPg&tq~kiur+U{XhN2IfMTK37@gjl1H(b^m!_jV|{d%`RwaJp?B)^vR z@Rx)={3@fjUnr+LtHKGg4Cxh+#463)8ZZ?cSu`Wx6=sD@I?^IH-)qk#5hHklLfxAE4SegS>hyQhWJ+1>cUcX?(9kzv%o` z!a@IR6|>R4G=C~X>G^(D!+$c zniz<8+A6bcOzo5H>pHVi7TRhq`5BZo4pA^@4Ar4e>H})OX0ce!vF7lD*Q-co@QhlF zr{x%P^bY#BC(?F2{%IWd^wXFN^+A(-f}szSJ^YNK5%jEc(FPJ@;pyz0G+V+_)<+h4 zhnxHJWSJe)3+Y!NreNBl@hAN{gT`VH8pl!I7L2paYJ5}OYH&|A#?Vr0Skz8>juSnI z=~Nl|pgy=?t_+5uJ%1sqSrf|WiGI^_C#G9+Fihbm=RsQU%99W*1J|3!XXqUn$}q<24Z`-~TlMfI#STXN=xraS2b(TicSZEiUO z6z!sZD+TRIV@_7!T7kb;6!;@#9dCi9=M?AQ_9_p1`t`ifkJgRDjCCQ(IrV3EU(?GX z%-Jc<%y5m+bQNodL|cKT(l|)VL9#m3b7^T_v` zDOTg+VERDxo7ODfud`^*>b_ixwIP>oFT@&JYsWOcSya2dWi1;V)m77hst_~?Wl-DD zczqFTQ#~izh_%O@09vDI5Vg%X8TVNq&|dT{*4H`%^U=LV*6^2PhTaq7qRh~F>cT;O zHct<~9(0Uodbzv?eeer!A)74q+-(W#`BF7!DNmtPV^)@e4%B0;P@7Wyhz^$9x$|U_ zqRsjpo5F+Fx(cFepsg$UHSfEA&Gs+y#xZ(7^qC2%)W&-$TF}RDaC^x5c5C<`zbZlW zmf9YDhj*$5jn#8diflg&Qtwa^VqV$t8k${e7ZY8|S!Zi8KeKD{!TqJjRt0D}jg4`h zrn%)tWP>>YSdLeNKT-G?dD96z`+w^Zro3V{{vM!gKX~mcDOh*vEeneN-%diM*P&EW|Sl zgU6j>Bb%?3(>i*RR~(JunPCq}>tl(ys4d^(0CQMA?mX3&Z@Z|n9OOg0AFf_Jr+ka% z3hryGR~2}~1_wIJw(@I(PAGqxR{Z?O^cThK`Y^wPS03z7 zb$f&7fc#+5d0&5)Io{LbVxFAE_4-#I4#paEF2=Rz%`(xxkVlF=8tW%{vy79xafmip z>|KrX%e`6ba*yPn60f5^=Qua%JRj%CZzF%Q8D5i=|37V>e3)(ipHx@i1COrnRmvY>}nJKVV#wtWwI(lQZm2vc#luH^r&L zJL>hLC*Ftv6x}>gSdEB>%Q3UcJH@Ez?eWzA0BPa;Urk-qRWm-cpyZ zWifjH%Om-_IpSGH`x&%%9UCE6T0MNtC&Y51=f!LIEbu4Q;VAGM12GrrouGp;CxW&T zp9X$b=}U5DRN`l8Z9G`#G70@Q*)NZ1ujbnzGZ@|dG~!&ACW#hPKH`f>R`tBO?D|M< zSt~Qfv)Ef10sd@)Tmt#K3}c{9t-0;>M450NbT8;9l7EANcphY6RUgeu)rVAvj#0T- zcjQOe23nV*pQ+az;)l{|J=gtH6KI~2#!roE=TVS9Z-8E=w_n4w?4)I)mQat|m~;NNG72IpaXb-XtR z`!WAXH1N}0mxJkltmA?X2D+Yf06hxyYH8Vw--G;e2V=^b1UjW%%J5{DyKbd@9fos zXQ{Am$kCrn@=E>lWJyGiV!2k$Tkshb7G(9P9C~iGOV83WQ?BkWTW{PCJd=dq6hlj^;)TQM!99i`n$u|rBwC>y&sQ$FMu9g z-;+zrX`R;NAnqf*mZgKjNQaK`V`{y{V_2_=7Az7}*MV63V|gsQ-V`5py%~YEe+2X% zliKMn^t(JKXR}`(L5HCAms;)~Am>?~KKA69aro82Ql-ga39+F1uVoM>z@yFt;|aml8z z3imI^9t7!v%K2LPVo17kA8TfJA09@c0yMwSEOLrH$S^j^q;#a`#roP&@E{+KH3ak4 zzEMntuKMsa_+b6N)i$y5kXaoj^dDi&>p-u8v88nSIeJH$7sLyu?X0Y`lK1rs-6Dr{ge1Qotbbe{Y8jr& zs<$RY^hwWo($VMYR2P9JEQAg-9#`e2);W_-uFM>P`d@=R6qBI?!I9IY^d+=c)#Oe5h`F4d#jGMS5waA8P;| zjQ64R9)c%k8>Pb36@EqVfXz!^MG<+H(UCJno z?}_N|>>fq~P#NN9)_`Wxz6Hq^4cJeZ8u9a`ChaHaa${PZTPMwnHH9+*txux8lllbd zLl4#W#=6Kdo9e3jLCAiyP;QhM$>+v3iCh=br5IrQ@ClwgaHQ1}EVZ@gc zzj!_71b8ZvJ&Yb||03hXbEX-4PsEdvZl%b1((}AIY7bG5^#Y&v9lAr$i+xG#ix96y zW26XkdTw~5_f(SfNgnheCxS*ag|i_q7aBzlwI%7#sUHgwgHrbq-9x%pO>0V^OIs|U z)5d+XL#>C=YboRtwN~yAvwMP=Lsm~M4<_S1INCpW7JHt$?XuDOYec{JwJLTtr7a&h<3($ZF&dN zv(uhw8t+<{BNHCwH9sg%n;ZXs6Jj96rVINK*{FXoB*)t87W}?hCF}q3o$qxV^>2v( zZ#qZg|9`Of|KvB(B&Gw;llB$sd4YV|7h*cr&{@!B(|%Ce=_9MKhLa7zEKam~1olZ3 z&ja3bI`&AR=KwE4I^>zo=^pK&#p}Q#*lj$+*NT;58Oj}iwYwR70Q3O@dZS=8%7mRl z80&@}kM=@H#wEG6GwMV2AlZ`ko{5JYB&R}`upGLCRp2>m++lth>Rp)_D3@Wat@YPM z`J_l2#NXZ|OR+arXppQ@pkNCt3_l8^` zgw}&Z*AX#p8SUwzZnRgs$QTTn0DQ5D{Z8!9tpblhIx^zv3;aH^(pWAJEi1Z?vdXY` zRVlM&5&ddkPH*UApqDd=o)S%lt{agQ%Q<8vRY#FiN9qrv>yYKJNBkmWr+lF)u~(V^${>%QeI0Qgd%qH~QTKnK4)HBl{)nrA0OwF~3u4_Vj5_Es|lQ zJ+_N{z30@&FKwsWqqd`d&}(FSo07wqUm>?a79hPN@s*X}56GSYYjT^dPLZ#9wOH@7 z4Lk+*+~d7c*f=dAnaJt{eG$p#-P_)s+KF_EMc7|n6prw99(s;`e=T1VpBU9w@ypGE zbdbcqEkZq3^3jmdX#7oAG=X^GSOy}Sg_USSU3Wzfp!?M_hJN;N#h1iwxzN-51+->s zony=!X6>2EFo&{y$TqnoL3`FzzpR~u-V@b)$28J0g7!SdU-FilWK;7?neCe_pH_o* zswTS$t24emP%iOozkr<=_B{^j!%FBoY9Y5#Jy&Bts|b9_5_cPDA?YXI%a*PExQ%V- z($JHY${U~;8zEzRx?DRIZBI8EGE6M5-z28Cv)>`xyjYKNKkT)r&&ier_7;xryNo*x z{m}mT8Pr`rn{(Kc? zvTr$f;2O2htmV$w9xtBz(L7hWDosN)eJ;nERhF0_%fkWf+A_{Z?Mt>TwD&dFyFACH zL(?wWe<;EnoolXzjn7Gu{6+L5cZ?F<8thl%S=0take8R6pwr4eK+k{u{;)rYZ6hHQ zQ@zrmw)4rQdq<)_`WuF@GrXbL1a_>xfFz zmWmi)EHx9n%L^BY(IOjPB+5G+8#7qf}@ zMcxKve_jBOg%^T`c4_*g7yE9`RceiXRtJOZu`7eUIVnf_dC6fCvi*OG=;19;@6Xwr z0k!B`2A74@^&rvQJoyc|4M%>@xPW}9!)p|&+A`} z=lSWz|0;mK<0$^urxE`vt?-f#V68oh|Mls`|02%plY#$5s9)HT^Pu+yF2(!fe|c=Q zc_8B159TaBE%;yWiti*pzW86Bc^Yu5d*a*G?t&O8TSQm8r+u3J7Vsgv+uv|&LE8um z@mTw0Ah7mx-|}|i3Q#iKWzK={8gGWV-bhiP&<_Rw>uPZQA20l`SB;Iy^Vxq6{#U*& z(W4Tvd?k9cD-aS+$FJ`A_C)-G5^#H|;9Z~*?*N+STlOfv&E5sXlty6CtOPb#IvfbR zOG;UZJ99tNnGqfcx7wd)-NP@2z2FVK)(U_i^Cd{;>y2I*Id_U~h#PZ;Dx(`e1K6Ku zunoX|@67L2*Y4piFo3F~(Q~o04~T@PFv86p=$wN8^Ti|1HF#<_;6#mqez`>a7SWvU z2R%Z3B<~it+SwVN%D)ekw7l^9K+~fC*8rci8!+1!3o7OFz&GiK$UBRG+t`YyooRpB zKFeO~T!{M)xUUCi0&`}d18jD?1y>$%8c>(x?K8QX{4&00;d{KbS-7x7JrTdVq8&QZ zHQVJs3Vy<`(z*CT#0Wzq8pW~vwF4~Xh-F^_8{)5M-28l{C^P9*$Z%Wp^D00 zhpV+HGG%2zT~^xb@P;q*dLYHE!JDl@UDn_?kjn8!FY}k|wGsZ;M)o4Goz^P+uayVk ze{E!&BK)rbK#WNRuW^b{RNS<3&(RO& z96>46Ci=|@)0|@3=YFy{SU*D=sf^Ny9^YbbM^A0%8`(QRw0TG2fVEg}iwXV#z6P&~lRNCDumSzA zKOa5**U$KWi;o)r>rywy|9bu3jQ@4E`)&6U_lNEk?iua~V1Hc>1hBKAL%sxYeXc+> zmJz`Ix*W9oW#C-(3;J>voDcMbJ~#peMf9=H=Y8#s)(fzsDn}&AjoeAT0($hM*B>}s z9l>iLDra&&qWu9$0daSpje2n)_|I{&2T+Q8m_3qz#xBA>xl8`e84|t~wy0Q;nC<2Q zJI@&6of~e$x*vZu{@1JTf&cZ|A^2af9TxxVHPEU(?yLVx{I6Fzl|cAk>qQp-D)>O-i9H zpa8$kvoo8@WQ_RV=5UG}h4*g(BKLrBe@Iwh8Tdjsg;uZtc(Sd84$7Mq4&eUeeyqz@ zu-|NA`}qFkUYEGwJ%m}NXvWxZ7kkH?=n?Ae53%#K5wS-Lu+n~%=(jsjgVlJq9qt<7 zi0p8Iec^5g`WIn;y@Fb;vbNy;Hvn;N6)?|QFuF~w_0P&>=r^9LZ4YbL+_jHR|@~@HhC|o1L1#V zqyr4M-1kSM*rRw};G8~vcwUn^VbM|`*EC%;{*N!3U92*hleBD{Ek63zpsK={8;D%8_C$rAol8~*8R{GKf40RMCj@R#Od<$GGC zX=K*tl5>EC`V6i-mP{%hm>KBXGcRM;mpX<6uLbT@_pxUKy+mwkqnc<6{G334Hh_ zL`#01aCqfzAjID0r@{iC104*?zaWjAuOsR?MTAW|@5l|Z$aw#`#ky;cQh)I;R{#lw+>5$KQiH=HiZX)E#&aRl+&ALbakJ z<>(mY7>{!gDRkTbJNog?a!z+<&nca997txPsDGY+&A!of5tsT3_iOwXd$_w#+yXS^ zX~3=;#xJxlu>0AU*nRDh?iA4l_x8sfUq@`}o7~&P&A97rk;nVnc}VHR``I_6pF8pk zaL>)WH_E+$A3&_`EkIoBh*;>YqN9DYJ=&vu`@lC*?Dm8kBC`2PQ6Job-v;6n9*3BT zHtYkJgriN*{F3=&v(+xdIBB)NYu^AAuJ41(+Z;|8SE0UX9Mi$U{(sv4r<8n*V4s*y z==d_)*PHwo*1}G)lPrSmD#b@DbSS=-jvqj_NXoA^Nxob@e4SvE7Y_87!X9-|K=zF{ zz_+-_p;&SC$}d*iVXaiQQ{)Rn_KAb>4CPY++f{A1N%mD_Q=GL8?1TJdQwARwK3pzW zJ`Bx3h9lcvZ7Y^0+hy3;u7+J?g#+JXhkV%d zk{u;%uMoc=*Osv@t_o}k$u>II4sH=_Ef>SeH})sjem>cD$=bAPyH4^$LTs>h{)Oag zM17I9iyIWhwaK-6Z9#msQSkMOeTR;08+)*CWvTMXKC<1P@})W`&K`Vha_nidwx8O* z4t^#oc2Fl}4;S0W9cp(*{xrItW$;<6<0Ei?2#y7xw9hAE0BSeSkQFG#*F6)>ij@C5>U&Z-W*^M85dNhW6jlv5!3Qq)qnoM~VSJcJq4dX3LLliM8!uVF*A>XD~OM ze0Q6F8mu9XRq@eX;Bipg;0?H48+^sX_6-|4zKop!LF4f#RgZGbF4GO?oY9(&F`D_7I#J(Wk4~> zgG%w%c5hAZ7$a=x`n?i#bxMPLcNF_MkAD~8H=$|-PF(kN6iL2)y{5pBs+?y!be_h4Dq*%W8=8WXR9v4jqmQgbY>5(98O5m5u{vhAos*3+(Nx&4vd0~w zgEfdvPznjF)FJ;q@*5zZk+q25I6)M-O;I_pXNQgTQNRBW>W}q*eP5BI=_&cu#dh}O z%g{Go%ML@gu}o~Jk3^5!d}v`)o{g;*uhZF>T!l8p zN29e``xF-VvHg2|PO(zs_-VvvkR3h6a-sA!Vy<~Tu2I}HTEFzQ5E%~$%KxhF(-Ku<`H~w;NwuI?CKHI47^dXhnQE&zlDzEC*KUc-Dt#8o#H$g z4!}IqeWQIjF&FV1#J`JTv7PSCj(lXO9#r4is4w}6Yd&Ww@>3ZLKqVmes2CjZ^FWNB z4A$bR#2Qfyz6$mB%g{z?XEEFB$v0Z}%uBXdDj+e$wcNKA>H+UQrA~;xikZLNNnaQ?b7} z;!K%{JEQ!UKxbTvNzjabK}=fsoKpO%#qbGRs(d`C9K?l09Ge2aFZ!K)*ub~KXX{yv z+cNl{)xkfXVvd%>$4AHL?T)pY-gN{J#fK}OWQsppZ@~8)J~A&0;{S#t_9AE?%A@iT zuU8TcOvArlm1WUd+X+6xYvm%un$$iSBQQ1)n^wiV1z*YTkNCtHP9^%3VvJJ!$?~A^ zujlO6?Ta`7edJyajs!Ds8(9%wJ9=kPdu9jt+dKAaBBz(1GJ?zM*y#H$^(| zTa`523XM&JJkuX67qGP7*|z|B(B1DL8OF)?{FLknePCDLWGR0vyVCdN@mT3U9s2Lj z`-p4bPXGNqfBPp!|6Sm&K-}3X_^m&O7<04z8Ab_wXL9wwCL1Un_I-@}4%QN5hiruY z`>l^q|IPhpdBUG(&QH#>=3BGG^T3xTo6~17=ASbZ>II?`$9nY-`?!J?ItA`BzY02? z3U`HHo7e{Z_gnG-e{X2|$NN8(KKm191T6$9>*Hzv@LGgoPtHXq5ax#mH-aB0`+!sY zYe5Z6c+k-IH80=q2N?w^L2KkwLKNT@^*aTNjnDYU_%(J7(9UQ_>j1CC?-o{z{hg0oV^pJ?}T>kZD`xFId%Y-eQfv^DA^KF zy0?I*w%seW=eenn1t~wJEEcx8OyKf)hQK4dLmcSSYT=@Y}d#3TG6qyV2BWpxS4@NOyWCDtUL_D%^_3MZ^`^26uE zKiPhyJST2b`Ikos=9PR=q}i--8Sbt}-Kubf%BbgWL;sah`+z%8-zI3YHi;d;VqYhA zpse+xp8u1*4Sm^KYje2PTaS`c;XY_ScM2Zv7CXZ=!5@L>z99T+*lMPDHO3A~`@f?F@H@sYFWP&&d8^vhvYDp5KsIfWP=@ddgnwFY{OW%zrSXa=wP0 z?$)H?d^bENJOjJ?bZ=|;v|py~B3$>j&-<+Z4tM!d*fIgp!gQ0zTDJ=a{;w{zo00?Fn58P`NQ1Bpa@Gq5uRto_Tz3U0jd=0**)9s zmB0v7XHR=6?6{N7c@l^-CU!YXi7rJH%XU-dt-Kdr_%?$uAV19g?<1}M1yTL)2Iaa3 z?J&%}SB#hF2==hs=v?dl8TI9uBey_aV62E6_6*MLneO@gOt&`pA}}4lW1r$NDIz7ly?*>z~s z2Gyqj5C*s};3-N&rtoF{7@5MC1-Ik-EWXd+-N)frtFEVl^Ks7=)RjUzd+)e_7lkS zq%}iK_ZDF6(XhN0N>KicV8Jr)=db`= zE{4In2UZRkZNu>0>X41|7L@R+u&vE}t!HCZ80OkQ!<@i=hthD5*9p&<7C!B4#l2my zHtZKY-60sUEkNPiY3=lmjaIFXEB{jfo6p0q|Ddyq1NdO;|EI$K(`;}5n6>|mW#5m# z{THqNu>VR7wPst(P1t`WCR?!ovZh#*)_giXaObeDIw`EBzO^M~dY<{9P)^Lysy z=B4K0>`VVFw|JMk?}(k=g~?ssD2)1FStlcw_-)p`)~hD$zY-Zs%fC7NKk8SKn3wqQ z>_1lUCwT?0;thNiU(MlJ06&9TUd=yD`;XV5J8Q5Sytg6=>Mgs!y9xH9j9n6vXTW?~ zJdf}(yuYv~+4)!_uUG3K_-gkW_6Hy$)}SrGcYt@@gI-i0VpZ|c{I>p$|FEuSw!yAN z1g`?f*gL`fT^sfc$0Q7|7Z3<95Z@J7<9Ib}fUid0R#;!A*wyI8RQRAOxjVR&6!r># zWYE36#6|3UF-VLQXQM_}T9=BefOGw0{uBEOakBdp`zQQo?8m?$7r~G5`={*N9@#sh zRxrz=Uwz!CAkQp-{x4h4+C++O$*FlN@dfq1Q(*V_Pw)vmOxqhEXHQZ5Fb}6f|M&o; z_NlN}oebW7qC3^z0^8Pgbm}OCu&;|7&DdIE8LspctAP1xj=8zmyD}wZy6Cp>mvb^xE#EbR{Dg)NIx{R^m0m#9P ziM5a^7$hpXy2U}n6w%6z#2ZutFp4{18JY^Vc&CbdQ4ra`9*+OFQ2YC$_nib@^-=Ju zJe&v(@IO$OyTxNbTc>({%bte+7u)xu7R>1+xhL#G6?&g%mUs0`Y04wDibB7KnSIK1y0&Ia6>!r2?({g$D|rOq3;vcs%&Ae&lC zp>KX0Ioj+0kmF;j|N3D3{~Ol(@&BI+{*NDt|NFn!|Ls0R|F^wO|F;dAn>P=u|J&`Q zK~Xq7Ip1IZ_pkB)mfg`_;dBiDCI%o5$||Rm9rATfCmtqm!`WAPXj|58qF=ZGUTz)3 z86p+vyH`0UARpb|$vnx<3pyd!3A|JCB*{-1xFU&4RLui$6!5&V1na(*fQ59a@kCyffD%4jfF8LN#KjY^~5s5PpM{}le8 z;^0!OMJdwmX4r-hK9Y|(lj9L*lyG1vMl5UvfiI}B2(*1J#rD@&uRUSsak#j-(REb@ zVsEzLLs4vB!uHTMwuI?cE28He5_=bz(y(JGM*K&@-pwQmU<=z@;oQ`+&WP>17WO=_ ze}Jt?93Qt9aX#n6j+Sgi)8-^OQ^hQA3F$iF&CNnAW5VVwMSZFavWMvI>vwrpm0QZr zg?$pR36vcT>`JWhIam(BE+Bgh;9!)(PNc?Ki+JUOWJ7{t|K{3ukWCIG_mnoRLr^l^b75e9p>CeAoDsmA0sa zrSShxn_+@G{b9E`h>tWVrr{Xx`{3^T!*b+n{B`>lSk-@%f8G8itWst{s_LRF=En;c zx`ckv29JmBdw<9~r{bFr&f`{(QZB&Rc+sDq)^_DWb>&uX6Q}4E`N;XaxCN=tid(H) zl{J3CmF#tt|4sf)^~5XO*YWI4u?*xu{%FF=fnukr5c zSr_8>iTv~YL|a?3T<;zTO?yo6L-!`wQnv8x+zx2z9(ev9@l*F(IPb+qgD3o%`?i?p z{K);Pb)J2ldjh=Qhw#hns}M7zKg#XL7l9i)AG!V^dZQk{c88!I=UX?rSGn4U;8-S| zW6-L3i94Oa=9Lggq^T`{BwM7 z@*L;4MhiaM`qYAuCdZ>93)rJVIRqqrm# zw z0e@8;`PAs&gxdg{USNyXg_97+A2!31a9(^->@64TldCXKhzjggf&GNIP`4dp|a^ZzIGg6{W-sg zb@mEDj#u^kO0AZZZDSpg#Jz zRL$u$I6{hpv=k{BMSC>eA$mdfaYSEqDK$vVjY0rR1C)EP4IM~B^eKSeF#E??fnDq@ zfX&$yQDEf-_lg2=Rujbp*aU5aF6tg@b9j$8fzL!dr}6eg0qZ*0mqBG7&W3(_f<1u) z8##Ph1agj8z+Q!ATp@o;+!=<@eNzsyqkfZb_WTlvfdJ@uoY`k3%(6O zSLhKj^YJY_Wd8T?S3#a3oAk6nvHOAHhH*rAkINvlR0IF9B3T7&xUG<22HmJ?1KkNrvy?=yO^|H{G$9}K>v%D*s+ljRA*Ff4UI z2Nf2W_Q{(TlFvnqZ+1AGlOy>g&XbSxb3tQ>9*l+@>x*jmZ>E9q7GnZ_AY5bCNzQJ= z$<)4n8jGMQoa>NGIT7=op0PFuyO;24NNy%9#s6!6qyPEyE@UuPfZXRW(=hCXW*^p- z*)osyW6aQ8Y6t8@mGOLM2tS^Nf7>U8Uk3XctUMXZvwGv~WM_=wxGRhkoiXfe`^zj( zE-)S5g`b4;uHoHAp3{Xp?lJrXSd;cj{+Kh^s`hfO#4(R?KaCO|G(_^ZoI72aaQ@1> zp%|;H``Y}^-~DL*qiy%mjDgAU(aObTAvzn=jM4s7 z_!XrSzyX4fej5J%gcDtw&^RcuKYYD)VjBh|=?l}={lNFq_=n`@75jNFg8!(-Ga4)# ztd4EI`oPKo4xx;206h`kld-ODyJr>n%zE&Q)mV=z!6(%KuRhE3O>t(1YufVFDU7dN zpMKI00;8-Q2IqJ|_==AKUy*3M##@EIKjIZEf^IYNBX7fas#N$$`d;l&Ruf-3Bd!Zi`(4f^p&vu>i_a5$(E~r!DcJo-@F0*13{9|Bsb(L{LjS807jm=l+iU#p4opC>>HUmk5Gon?U;hzawWL1K8jKF?D6>wZ(JB_+9j7s(~;(b0E+D~h0vnaRL zLh>RWT;nAY7G#-`h&rq{^&I zK<)s>WMN2q8S(u+{3Td}s<0oWF(P{(@(jW_o`IMtX=60-eF;kzF;hVMHKrx`CSzQf z+p#}18nI#e!0(u_D3<|ynS8lh@Lq^56OKZCv6h(_JJ=_h3H?EPIhuItKF}w0Mq3f~ z9_^6{QHt_bn(N?ei)UbOsnCtrKhjGK1;3B>PExyQU)?k?H5Ub1$C3taaGlcve7XYF zPP0Uz$e;~$`*xCxphw9h2%B;%uWUSu)(~xqraYm@$2q$o$uj@u~ zQPyvpo|AE>`*WiGHu8});z7BdN5oXoyW($(K*pT{_5^*d#89jUIsTE@6n{07EZHRAga7GVb1Z-kv(nAGE)_UX!r z=Yo%W+Rn~R8rLfl!~GZC;TU_=u8JpvYzI1r`AOvwP5mU&H65sP zbIHvPHt^6y%7RZPOPIZwDHpKN?25bk84jH%^01Q_%WZWm#gEDo+4Uq9d>%f62KF?W zp9=D^19G$4yEt9#eB8uF^FH=@*h|^xA1j*t8{rSd!&LA^^nqbup@XU*a@%LM)()@3v0v}=+A3J20N<#u@ju( zd+cTlQK*A^d6Ro9^xMs_uy_JH4;lF0w^)0V8872BI(LX^NY6M;?p|vz-{(Gtv$-PU z>^1k=jm{?Iqx7lx<^?TwquM|27ETNvLVa6Nr{|Nmusw*#a0jU0Tl@_%mh8vtVd_UWXloX;F({Vra^9#jJbEjPgZ}@#~E8k-8PP_(S z%tpjZc^*&Oj^n%T9@KgVZ)PpL4o`gB-irIS+fKL({xQ3g@48)OBQRqQAkM(8VgTZ7 z^YCr&Z6Ki#iT$5r453 zIMk)EyQ(lJwecnCB=}sbP?SNROgQe}|3hnCR7!{wt10n0BenDBch8dvQEO;=iHGQuw`xi?2vB)UdX=K3Uz5ZvPTb zzh5Qfqgv>eo}3p4`=#X^{SN(Keb6MQ0pEEsu-xksvFt!;qkz{=d0WE8kbTM{ zocCAlbJo#W6d(17(=rh4xl-EYnCA+4in;R66#q zA$P1oziM1*+HV>NS#Y?&*pB0Ql6_=6HnXzNV(g7)_&|SlB+F%#jMYB><6Q3vYkS0a zoY0;-wUH;PImNf?r1pUqqYf0m>G0){{v)<)JhYrT6(@_z(d|a>P{y>(QjdLey=MhE zEoc8%$6`Bp|38*#$<}eWtVY|>T(7q;_w+o5Z0*dz^)=#2XPMCQAI0J7EGx`r=za0E zNghU=Q`lJ2`{>wQQj~bzJ=#Zn5%!1W7RmTp&QB-S$_AsO(jDme(!QRtY&0$z>kIUJ zkFQ6uUHuH?Ez;%2vS|hI>D$^2V|g~(kJ9y=I-D+f0%CXRd*awx8KLE}BE)>l)pL=2 z_GHvwQ=|DYQ^~NTYo?fDL@%|xtLG5)%l_~QwddCixxSCAHDa0cPSB1f&;udT{shD- zBf2oc2Z~J;gYR_j2{mV$!evU%9VF85?ki&&UwkpyvZ5|45zDN`jQKgpk`yQ4eRW-_ zAffnwxOpJrLX!OhyXgO5%h>-m{{Q>NKf-3-(fCK&ujPM+|McO+Kgx|A8`C9-4X4z$1#kx zF704CnAI6UcbJ4OQ0?mz?=r}*hwh~U^{7E?yE5aKUa2@wmOvM`(COPSymZqt0$`s6a$O~*RDOhhXVrZ?^Rnm8sO zt+QIbn(JL3?fb{Hc7j~u7GTZE-HW68l5IDwVST`djDn7o^leQMZ#Gf!D@5D1Jw@Di zdQHi;7xs{H;wPusB+y;WKWSd2J^saqhyQVO{(sc?Zy(P5KWhJV)c&hk)+IY3GNRHY zE8f49ZOx%Gpv_FGJ(^O;XXylZJov8Ap2tk5w_g`*62JnF9Y9*i9Mn-iZLONxFWbh2W1tgR7IUm&Ce3{9P&Ryfpt0 z-V1SBiO0+Cfq)MsIn?ayFE)q!g_6q5@_99o@5*7*Re>0)kbh-4_~$y&*RRJu2<>ei zT#p$J#mjCA9|FHc{CbVKOlFeWm#JLEa2@0?RC`m9Gue3Y7_cj2If>%vu0(8Dit}3| zv3H91sUsUTTg$r|YoI%1Te5}whp+cSv9A)@D6EFfRuSa13cC`zx;WN&_Eoa)PVw%2$XnZhS)ln0EqjsAR=fxIlBfj_P5W7dk5Gzx)7A*s zfk1WvPf=r5!6t8WwBBN#SlN2(_b3o0KG_gso>-?x?~a(fh=`Z-h?WrHd5n_fiNS}J2eUkbmSLx{HDZq1!|J2rWS6?5p(Bd*8)Q2|xE$zfHBYIX ziEq^NPxm+NwUXT>{Ow?qL-*5rY8;PdQ4=f^%OK~}!xvEZ$-(d4{yd{(*Ia&7>+H*d z!nV1p%Z_=WY#&Fs97;cs9UIxUovUJc$1%dQ@0MHF>=?8o;W(rJH|^fuK0 zG5?i2=41VqZgUlL8*{3YEKP#HMBHk!nK}}GSpi?ZwCDr9#c;nGZA!MCFG6OlVZg%}ywX^n9IUiSk`M^c_lB_C9JG+9!_b;<$ilQ#14;TcJDHj@aYNFrO(tI>{H2 z?gO@23ymC|3j71=VOy|JjZ>oKTh%@+y$|_yQXec9zd#Ij-4A+BHqg(A)08dHgPk6BMEVbOLiGPM_Yt`ZK4dz7KGLsc*RkKgdq98AL@b5{&b2DN zXLv5sCt#1@F7}rw{W0euZ-+NTmER*Afb@}3iavbBrC7ebi~^{vdxS%geq+1zF8-U! zmZ!krsQ=YS{}vmVbH_iOH=S$!JVS7UeJQ*i>4S1okN#}N`o9hIeUeW;)#Z%zM|7lh z&-b-{T-yZ^|5gT_dIiQ+8gq{P0>~Dn7HjUaT=PJs!CI_ISZgfsQy%#R9o~1Kgb8n% zKir=YjQ2F(2U%CyavV%AVUKD--UrWB3c6QeVhsui_hFh^f8Lw-lVW*HgCjf2S*U;3 z=7s7>{Kx`W7cy86d>Z!zNBGsz{*1;&i1%lnlXG+Y&1ZWTDSxBc@P8^~+D7I5b&H?I z_WZcLv*9rV_B8E2x%dz55)L`(9~=))`xAg&7uv_ehu6aS@tmwi!sH3oDdI+cvV8;Z zZ2vcO%wHCJF?J3gwKUD9wUzxCyV|+h;fTwY;6oi7-z2`$ABwAcu@+osU#FtKiQtdy z51b-@UB}~JLy`V_ew|I%ud_yB|M+TL=^=Z;SA9pAfSZ7bMGL!`@Y}4|2M2Nzk6?o>gtN8PMz=^I1aW!d)4_nU<~5G7bd zBIR#F?1b;c_v}01D0BWbF4yqws081qy|$I{w3O;h zs;mc5)+(TySBlvf(@m^~eiQ7*hlKmti`FwWJxlHT66&+hTVWLjE8w|48+e_29qBiL z-Nq4C6Qc;|%uVDG@=eUV_f*Q2)=D5ye1;g{^grLG6e|V&jsw0qo$XTJquf8qq2cE; ze*5Q$6vNmKw#r&1whI}gf>rR9ZyZ*L`B6`Ab+$O=7(e@f@=wT$8-cmFUY&1t=-Ks7 z3!{{3>icQ{Tv_>i{mDD1g8MQzPZ9w&p<^MDfp2s{`YPSqKV?pR_ zoElyuFz)3k;isZa_%}87X>@}|Vsv9HgHHJVM|O_&kzEI$y7<%sHEal+NJ`hx_zYJX zCK?JJ>|=EOGx4svvS>1%}Kn*x(!xyMaTy8&`LU{h(@ZxZUB^yvuqXxS*A6 zoHY)u$k9SJ)|C{ZRBX1kSX-?Mr0xRb&wJS2Vwbg9ZkAIpKX!?Iuz8y0(v|7zd@s&R zaK1$rsq;NJFT?p(S*p$}tj*}(Z-Dli8?J>t5h6Ue8{7jZ^A>RcrQV9~9b{RAlD`qP z7`0mFZ+AF4Z0zq13IAfJkprsGSXMiOvqoO2JrwadhPnsY1jN^%i{JHubif8vZd(p=8-92JAMt>x*l18cgUQ{rO782LLGy9n3h2`*N-x%H(rr_7!!pOx8sK#0tvPK5=JB?>e0V(3k z{=`1<0j+n)rJ+x#_a7vm2Hno2n~nAUWAw;tpayf@Io2Gp2j%<3<$?Z=f5(Q?-8o`6 z>hLN?&scoVmUECdeyxviyi>hrw%7qo*Xb_B8;5^txZT?(f@B5WdyHS|)paCzpB$$l z{&$JGPGHl~EbmKMCVTRFHa8oXmDWA0TxdrTI|&L*>It*iZ)3U-1|S`8cIazu5x!Td2U zi`GEGf4PH|&edl=)V8nR&Tc8D4^R(mMD*vug30^_rnR@)aD721l6d|H*v` zWgZ&7VZN-^?UdpTsVr}rWAXGmX2`~w@0r`f3Fek?I(`?Jd&1TDU5DSDCLxt9R%j{3 zu#BX&I%5emTR%>}0R~O@qo~QMk&{T-W`%IKVwakm#Lw?AMtKHC&b6!_`z92aV|vu; zu{;gu*<)Lu*GAsR%!0Jqt<)aN!!e>4V82uv@x7xElZSRGqd;d@x!av`cblj{oWKfa z3$CvSc=9`xt-f`Xb(QnIJHqXQ=ridM5#Z3@-4iME2FqaGESvSQ(m*>w{5P!1i2r8& z*Wuq^<@EHb;54in=X>+iUCQlz??~3#(&<_wUHle({T$~)q-bOH@?HzG?+}IC zgcjIhjY%N>TcT0odJFO2Fe6CtmBKD1g@{cJGAKNa@JAA%eDNZo4|@}Oz(Nn$Dxsy@cmX^Dw+-MiFj?Of#abox2J za;|VLcX~K|ojj+P^RL9e{ClE4_FQ`)uiEEy3%Vh4%Q&9hR6Ym=1RL#aG-WKoG)c+kEzv_-h{l}yJ6A}}QiHY&3 z^CZ-Hva0b1&H|^*`P%u)ndGc?7CS4QWzOO7NzVrwds z+hDK6Z0P`e>4V0%IQy2)L|@FKa~%V?Ivb!f*7!a@TuJp9_;mjw^S%qD#PPr?#GcmQ>EC0|#eEa^3vhn|R-;L5GMl1Gd4qEgR;Y5^w{d?V#_Ck| z0sD}BgnjHZ_6gE_TB|k_oNo|kF-N#SdhBYf=M{W9`wW| zg(onJYn+1#E_Ar?(I~dAMxT&PNyj8%H<0bIwt*r0mr8dgZ0AbgZ!-&V)hXWl1lZXr ze<@%=q>W028CM2upCVuTG?9&V8GK5}M@QMt!QWK*oh4SmzN!jX)Px_gH_HzsWBV4{ zti^sgX%UZ8*sQ<@DPy~&?Sm*b`@0FkaK!j>X^d;1q*BV}; zm%&e~n3ur6Dz*XBHdsZ1V#JeO5ZQi_PYK!k^*}na001G88R=C9s_!t4%N@d%B z#`c^45&X{)$|mt$v%S*EFAGQb!+H7XpBH-Pxg=IXk5?6>&)1GY8xW*zk>|}Z2U49Ot3BZNjrep z#)xp^V@xG&m++1Y9Cp~k(7VS0-!$V3qb%T54A@m-$3mz_s}8!bfDS5gP9K>13l*8H(KMTSA{b6 z08P*~pM>8U+anPT(B*l})^?}VHlMh|46;Wf8sWjV7&aw|mdOl0S?rg$GPVt_@#T9z z%WqN7OY;BFK74Q28fP6N8#c@x^riMSt%98*(Gh$C-NxF-BQvHl_QZ!DQ`+W>@`&4B z*G1Ed640EFl>K9^x&l9BHtgL>U<*t>so8C#ZGoF*?B0w+eg0@3(7FwpB52*r#-+^o zKu(JAEKA)EuJW^6_ugq;$tEA$L(VPTI>Ho}Bql*T;z zz!>MvrHK${S5g)YoFt*6}?D1#Ph`d)x+Hh5wD?bIbC-`;{NFVp}t<3J|~-A;(22K zHkvQAUcrw~%>(U!Oup`&R1A=K9%Xz}Gd8dpn{V0&5U-bQ&r0+@vu=-tkJ{mJjxx5e z+TOJ#aIN&X)Bd+)CrtevuS3)Zx_pFbNP7!fPZz;nuMBH_5%>m*Kcm~xb<1pe_GR!e z8)5g{iE!c6c+)o4@%YeKTN&Q4Dl8N6ScvDY=Pu^7zK-_agD*rpk3Tk6!Iu#0tFmoB z1#?65CPYUmZE-^PuP#sA4~LFpy;kb|k*4K~fUgkGhj@NXR{jP(-~+f3^@(}Pm%YLy z`7!FYE{ibG>3L0Kb zm)32%o>`N!^ZK!O_w?psKIk&V?L|KOn%^#iZ-DkWB%4FR8|whRUHhUCw)~SJ_$yVP zcud4J>j^g=*M&*4E2S|3J93kJlCb_chx%_m;ePO+@ZXI4mBu^K#@P11#JC#vvE*Bt zU8lI7*>(D_!f5!f+z&QSX8eFKwra4geMpqGeLwNjOM`3tvdG4FG4JRXM>qpy(_VY+ zCY~bOZzHA`dS6CkL1TPqzXOezru&}OSn|1|^?4rR8IjNZhvEHL%gG;?c-R9W`Q_?8 z;?FXIe~oMe_TRv)i{mqtfQO^lP!!K9-WR?Htd9wiU*BRizcc9x|8X(+%4zURBMjUL zZY9>yCWsr+BRLIzOAGC5KzG111AC<~*&SFhl;#va?Tqv1h8z85prwm_dZvXp-imQ0 zNDlCBgq_mUUl^?$Wxy7mPndb|yPIi_i2SUy56@)y2WtO^+x(?|_vCCJvM3+EbbiNZ zOi#!DLa!-{)gJy+@Vuu$Zh<|14Mwr+eu!9OwC?CMn;^%yJ!%_GI~N_|OHKPkjk(w( zxd`hBt^FFGlG4ZVCtkB@@1tW^RJk)TKVq2);gL>KK97Eqa1!ISkNh0V%u2$>JZyZi zGKu@J)u%Z@eDN&onFtS)?Dk_n!i7vd4;o2+m9&2yZ_hTnL)MWUt3vU<*gqiFS@1b9 z{dKu@ov2?wN$MCK`aKIFm(c!6k?guADMym$~;_t8rMb33l4W*W7w*_ zPZ0aH(fC{r+oX=k8Q#@N+C%8F#rrxM%grI*ydAt7&4XBuaRA!pcrPCBF@EeC(Yx&Z zh+adMD6ApcgT!(+%oq4#%rwBa!Y6eRcvbRQEW=tf7XG+zW6sfBn5On-;B9L5;79q> z4chx_KQh{DXE2I1PeeW&;}tedmMHk=!++Zr$mst_|Iiy&LBq|y>}H@OHe=@?#%5n} znYbKrHv5q&@lXD>LbR7F5tH+3#OC}pqI9-r`QkU?I)V7@;zn_k=)!Imw}@NCZQ{4$ zc5#R3#_kmT#Tfn?PxC+XzwkWvKA*}z;2-jjcoCn?`>{EEF8`XB^KbaKd=1ZM>-gXK zdcJ{g+AKs4m@sAN79|+xB0>%l&8e33>=G|EEXt1m}I9K|?v*yqMh+=CUrV0Xv7a;ca;b zem3v;AJ%<$W1VA@9a7;urHCycfUZKb+q`U6Fq>;V5<){}u1Y zui#hmtN7KhAGn5J%k%kf_;vhxe!~ySH<8`QZ{j!eTllT~KK^_D5xbxNfj__>{4lU*e*t9U# zn7Kl*Tf=hPKA&Gus}$rHaFjS&9P@)`56z3tWBI%0KM7-iVl)+5F8<<29X1!;kq=oZ1BJNE4)IaT%^un2r{5&Zv)1jQ9zAIWfj zT+S8y(rcL#$;7WxnCG!fiFh}{@hy@az~{z1tHySq*uf+(0<8j8-724Smqd%w9GD1B z3HUkeL#)_$UhiQSi_d`#LA>MDxc?9^(T796h&_XfXV3%s2jGkFDu2Gz@}NTO7l0$8 zuu-z*K3Z|HRfHBk`+-oV}4M} zBnXF*c;>R?lgW2wW9*SL^2A9=l2>cKZxPB~EQcq@BKF&R3d{3Q`X9@Y2$OHLza+T= zI>}9_`zn+{pO>Qj79=4bhs>rhgl-NP@{5gYAVY;L2j}GfyU0QrlTCnWH5#=1cHmX4 z0**fE2uNl__5gnJJ?u*kzZdkp@#ZT3OHLSr*?U1Pk3BTLU$)*!^UfK4Rw1O9G!B&R zF1b;S35xqdF_mc#7Rwv5Z4#*Mv`$R#`DTmuv2M#>gxG~k1nFt1P4rqBWBJE&Il{pp z9qqePw|ln!ImTfqf$Vcu4ZebY&*AV}C_VsTX~ueCJ&tJ1G^>%fYx#X`900;}Abn|( z(tTBignve|T8*L8Gg+vxH(Nw^x^8F#=*bjzNsQAU>r3g} zO-@!ixbYa{G{?0ZGnPZgdc}-B;85A@;q)S?+X`6t<(Nnq~{}C z7)qyU#5I1g()q?^kHmA%O6T1_b#%CKLX!nKjf$FQy}Nn?Xd{^ zM2%yVkxT3Tg>EXL%b1aqV!sO7x9=d_F^WU7VW9ng?X-mHk(o~&lSQCOv!U~uE3qyi?#E)#{<)Cr&I2w~snQc=k3T&h zHHPYlnphRJ=TP?hAS*k}7|f${x zRAG3wKR!7^$&a%2+NGegvCTxW58C7r?he(N94x1^G<0Rx3M|N|jd{ zF+kD=ts&^61f|RLi5}C0Z=}bv_H(&b|X<6M0Pw_gRHpCHhQJ@(Z0szqPVlMK8V(M zvgsju0Qwy~kSxVqe$plxitevMU_feJ7o}~HoR0Qf9_a*PzC_b1y07UoV#y>6{f?Ob zls1EnP4}rEG(Fe(=<$shm%yqaT%63@$zV}s+HVu^g<@Idr-=7L<)(R1=@)t$FDKKM zy8J|g-&MNn*e0r_Ka>Aw_6+|$&*=D%1p+`W_}gK?eGh-RvK8zcC9I2Du|G4@hJUBI z!^nknx4D>!jY^8!W*)p*XBf@dM8mYtWF3P+;#j1IHwa>%rHuAgKI>$pcq=na&-3Q; zb=u$8}|Pu+Y;pB%2n)Yb`ASAyHlmQ(|y}H5k44nzh&48*B)bkWRJ6<@Cl>8*8XYU z4L0_#oU=_q7hJiLF4z3M?RUY`{qQ_T{&~25Ud=r^I4gOEe}{Vu?n|~c$j6ob>~3}s zyO(a_??&%l?>pa)-ai0W9)ZtqiVbAL)cv2oYPZ18`#;h*|GfXxyu{D@zgTYa^ZrlU z#Qwbhi(?i3y#M=o|M!1y|2M5Bc0w$xBRK@wp=4}Upp%2m!+hW{kAsaQ$y7`I(eMF_ z_skpp$!wlG&gcfYGueOqY@78zo9EBoll|QP|9ko>yWjp*$FU5mhrbm1cCz8q`m?i@ zJTA5oUJBh$k&@$5Iy#1IJ6NUsK4-9(lZ59Q<5m-1`Cn|3Lu=czICjY*=#2`Kqu~ny z86)J$6rVdgo(f?|7l~E4pDi1Ext3mwbP!A63#Vn*T7O6OZrWD_dW=YZPWEtV;MdmJ zJR=^~q584fI=R^2i(<@C-B$a{l}?ZB706B*K8*stcfmuDRbB~yN$5x+FVucQ`k5Ff zp5&zZnM&m=OEK}FYlwA*z#z}o86quzH91#m+pZ%24#>#wK)mJ^&{Mt&A58MSjCBp9 zr-4sIjh&a)F=XV%B#}6*xif7Z%PvXRtnEhP=db~_i`fe)E zuw=%M@o?p%vXH!6>&*3d%;=$JAx>`eQ_b1iP4IE|hk#n8ED z_i-jK%t7cj^f(|H_D5OzzIcpNTgH0IxDGT9v9HVWUpX{S;_6sv>i@J8>;1K@@Iu%zXMBh^MzIEU-WeNCn!^~gH8K1!KV>GL z$hI>YUqq|Wzmbm~=?-YDk}Uw~mx{^n%Yfbu@#SDwfEWXyy=DpM*foB(4k>%QA4-$r z7#}O3BO;%T*f)Y=IOtgMy3a|6N9|W6&sKIBaU6(@pA6|V_p1KVx{|m~)L)z6BSdsH z?%Q~dSBAxrPPg{FrDs|u7osjRL6c)ld!6ryEE*ousKe2jj?e{W%Kjc=UTFUu^eg#g zQac8qXVB-Dz|WP|9~ng%L+WxK>DJNkHz z>)1KjV;=WlTQJ{wAZraEeH+OnGB)3H!%BY^^w+i5)kD{gjnMnkb3_ARqpo6c#%)ez zDn;4WqrC6~us|ze-$3@#MgGM#`t60#>l3Zee$}u638<|p4rjJLGhTPvD?MQeFay%i z_ZHjTBc1NQYJ6*YPc}H(o<6o`J_F`AJngJ>XZi5)x2pWlU~4u<@qD1yiKCMXU`JL)Wx<+6b9{a>)}7a0!{Ypi z)@y(B>^9QtaQu92UPbfU#T-5twe->PyNSMbjCAPPdFnZsooDU$>UcI!dgJV+^5Po3 z{!jBP)X#SyeyP@*0}}@8)lslvqU*$0fYu1o#s5cmm!AGCtC^xl*|B*(NBfhF){?Nh zvQLg}vSOYkyIxDcOOoE7;vSX4$AtWGG~cFm^x18nNvqqh2+Y9~Ap1bgu z`G;|A|5f|pf46)x{KTwK?>9*Xu*lW)M%zbfJ}Z0tlb!86x1~?Ekg=WZys&x1%hLXS zMHD+6_GgH@r}_Apwv#;)t*QEaGS&g2r;FheJj*8Ay6%XNR^m^v?nq9Mx8t{yKS5jr zS%J1)B7GgbKaPc7?fA(#oc5}x_{)F@sN=&DRs?tgWv}@F_&2(TvII2eDQ3+zeyP|9 z|FzNZGpodXiXjEe2~+!`#+X2d$IUneG0I;>+&kCRG>Pg*Yax}3_9hft`qhYEr?u*H z*iAQw%!2HTZj1aSHBV6z@zb!mglq(MvC2Q4cu(T@;lrh9p58~!@Q7d0eL?Zr4;OcQ zEc?`-A+Aoot7u0R_7B=$Y=#GVS0g9M&M%gGkX@ha&amD5;}t866Fok3TcA$^^3x<+$9P;;L57gAbDTmv19&E; zbizC!8})42kMHV!#9k0Qq+T~~2fh*UD%6I}f#aa}{M0Vw_pjw>FO-gpHd6cK==1#yV@HEdn%0q{hcKc`GX~YEdI-7{1HUo5I}mZ zO7NgEQSI&Wa>HGS>`@TD-(Lc95&&4Ik4TU5*v}j24{&&oS<*;WIpcULcv|EGLbTzjb~*8tAU~8c%Y?nn}84S4spB}p9wf71m~&V9=zl7pdo5ui~1f%yaXOJ^!AH+hzBwaIQi3n z@NXmf!lxKJ4Xtg)`f#PYEiuTgz-KEyTkzS8ama!5OFd7BuWP-Y*ppA=FUT^R5Y?yg z=cQpk4}{TYfiZd+BEVDwS+pA)0xP5^(US!s#RPelKh7S+JNhA)YP@HJ`vB0S|A5a> zjB(5fuL_?^d=B8#GEDK-VK07icoxqK&*PVb=ki|RIlO1sg?A6T@{7U?csE3_yD;pI z85Np@&HtQS?1g5oH2E;Ih~;`mn5HZPQm|=0DSL??tOUn7#<6Ba;%+Y;a9Q8%&C^Da zG>tO04EOHF%CvwrFnSqZ%W28Bb}rBwdcz{hG@q4waDRK!uuF`d=Cj6LoV5z#vwb+b z4`*Bqlx3_p|5^^ll^!hDD3c3~g2dbG4fYn?A^*x^IsGbs9%LxQ`;x!#0%H}{BghnM z{9Le(K%O^A+4y$^RuZkZ+FqB|t`e+W8e1h^yEI+W@|vEo+t&1MF>Ke#Pd>H>E)kWW zoxmQ`>zrDHX4$kBU!5F($Qo7z+i@L#xc0uCt}?Vj=kaLdb0> zO`4M&>~rubkQs$qZa52=Dut2Xzh2KEW3N@No_MBNB*WF~JNeo#!P-IXRh&R9SLgy} zMDgpioxp?MhlyLXEF_ZAmPsuuqID(4_RI2x#AzPJd!9OQc* z$G9ZBc!~}CA@7I!?RP&-65dl!$QVn&pJ@4*Zr^FJHwK1|j%Ny43}i$J!irq3#!f7! zqx#XhuQA-B_Kjo(v$3`k{+%xSCgqPhmR0(*vEF|vJooKLb{CIN*)h6-h31M4)8l@Z>xD(%2UtH z+U@esq{+11a>yp;D_l^LOJ;m>K7H$xU;Vyr`ksr^qh_E1p*veiU4CAXx#w2sxR>p){6gC$0^>QLD* z#cS4mREYS*X_I{6GS3n}NAj3#niR*nr9DOL2e=r%Y%}>a5k@HS)a2jREo*EKcc-Fl zs6F&^#J6?#;&``W4!-SZ-8)8!fm z{nQ*z@*yXkLDjeSg$u8D3uV z{`Y6?v1mT6Quw>W>`Z^__mE67mQ4?Lr~F_{HvcEaB&{nN1B~`jdf!5RJ6D238LfPc zGWCu94S%fML$lWDC)`O~uamX)Xrq&bW^?$dCXu)H%Rzi=`0u0&StQ!;`x^SjHV}qTZc7D(SK@F+MCikO5=+#5UJV(d z#^h4EjM&B?)1Obcgo#D^Ch$0spH&=VJ9|FSe9N>|_PU|_vI(Azv26bH^d+WIv)mrZ zDN0^`_;w*#2+4RNyA8htG6$-Yj%`k|W?CnyO{hPvigZy~eaK_|ORT%rdv-oV9qDcLIFI>PYQvQ^K7ktV4Yn4F=V?+SJB)Riv|cPCdxRR9Abjy)PonY2 zMq^BnEG2%vdCl{2-Lmb1X7byzFcf2&^xzL@{-OT0(Vj(>d#2(SGy9!rZ;^e^FS0wr z-?AnAbFq(6n6;X2zYiNI8q`+#iTRsDW7@|&!lC|ygds(JNm%F^ z9LIP*wDiV72KM8!S$Z$=-?2W7@X@bHD*Sh~R>!{dn4gK3kcDYEqQ;J)SmT-frq+Fs z?Fi;aw4b2)LAY4(D^~hPz5l>GQ&{UAlmDC!8++UYm9ep+r!gkD8vE8utQYxrT4ewhwq%@$i$BZ!^tDz1Pl`gJxnRWXoao`Z1}7r#i}C zioMiK=;w*Ah%u7&UY6vBq)XFdC$lfFMg%m*9P@m`w|fHT$+QjYd~Whwj+lb1m$}gB z#iiXxl#5>Zd?+_odE96;ExDMoSUDQz; zS8~IX@M(r9TZ25ha}Lg)aJ!0=Yp$HDt_#$P+@@b2$KSF3~dOH03{3=wKOSjPgcoj97ygu!%vmoelCuih+`4& zRZBAOcMgVzH88l=c^G@_Dsh*SgO+ZIlJ9YEbS}bqEA|lhpqrd+?x*%|oU`QF)?LmK zEFI*DE3BKHb*SCgu#1?5_+r1rQ?IxkQ2zc-9?J1c`Ji*NLnTX-U7WHpqIC;+7{G%m zhR$~uFx!<)2xKm4Np_U6+*z-0#aQ2z4JdR9MHY=I(s_4E((@WGFV;hn-5trZF|QfX zZ|s-EczZE(Yp@F!!Va`htO9+&T8lUmg_7v0w&Bxy>COH^WwS_p4%Vjt>zyPW`Qg%1 zIWV{6YS01V_g_vfg{@{W__Y$O<nPZRLS}$<4|*%C^RTT->iv8%gAPi`SCY^#>31yw{ZC^}nvZ=%A#BD7*S^f6w$;2C z;V6@@cq#U-MUt}|dzgFdkU-t(RFB zGrxqLYvy{r;30h>@QTid)G`#Nkp_?);_Ip$bv`76%rh<#&l--%mE5?*>Wk+>qYyI8 zT>iW$liaRnhvGR&REC>_jq4yim9_G)?2$5GmBJJ#gE`v}_Bp(-d4cF*N_&~{oUzPE z8@hz2aw>xvJ)cHR(k_*M0qY4$#?8=7%VN_9mC3QV(M!~~O?Y)Lfpj~c_hCoih@Q7< zJ@3maSlTn~;l`JSN+ApR`9^tAgl8_X@`02`xtwnI4RQsw!h7CdAd^l+d4Rey3EJx0 zr@JTna2aR5-Ipiqhk=lTn1w9YHjP|!J0Adl_G6+m;Mn1;S#3)yk9JRq-I$9~G_3oqNB`~Tm$|80!+ z8!#5q{FkD_r*WJ%+9hec-Knm2geJ>2d-2wG1xD-r(P$ZBUm%9@C9J-2zM$yC31}hG zSlvrlSMvci0|!MZC)(Y@1;!@Kjy|DdkPc+JAIe2WJlk(a&V9pyGFQ%(WyU7i#?A}- znvVInnujB@M)G+gSIh?w5xOIcTdjChHv-0enfwH`cp)0m^>LimH8S&)RQA*DiKx#z z(Hz;PX3Qd17xN+H7a5OPjIE3AH8W23X+BlN^9i*_gz)I>VM%BEqqFU@6DZfaKFv7E z^(;ngbesj8+H*SQBE9`gdjPH-$MrmWi71Smi5AG`^9>vAb{!wj9|Xcrq4}-c28HGE zpbh2VZcev%seU*?<+e>e6>fKR|9tG1qc2X3uIGjE)qKqBU({T^%hT5@R0&V2x&FJF z>*Xj{v*>NP_BNl&esWaKC+zciZbUcE0XG=(`6f}d=23cGs}@n}fp(7F8#HnldN^Sh z8;={5wq>ofr$lLwv-9DLKSZ7{h|-=~E6r)Dl$~UG)N*Z6qE>kkL^%0-gy+ku}gQ0UMm$NYg9pf>q zKEu2;@@DKIw9R7UT(h;^3g!AE&dQ8(W3n1mPsOFQ?uts;UR{5==KAlV>jTvFH)^im z9bNyOy8d3x^?Rc0_o(Y1)m*7KF+d0o4Q*#`(VdR@zv`C+afnrGU_p|;DTr|wmwx;%R7kM>3EMOw|#IvZ={ zyE97h4Cd!t_1=TE?%P7o-{&v}`>6YMg>Fw>uA`#+18tX|$9iEmGm!Tdh30jjF2AUi zvQT+Gfi9C+8?8?cSO%T3!d#f?wIq{ z{)srWZ;}6<(cPCYLpd;YL3vTKt{Ah2{@1fFG>dqd?8*)3_n%d*)IWN9GR6?`f*+wh zX~dRe#QyOAbeqz&wyE3$q9-RsPfq;FCuv@m8_;*-$-AN_({?MB-+-Td@?-Vn6!qlq zgr>vPK8)QP<#U`(d=S+s4T?`3oPjyG7<7R+q5IIH#0dcqh}|DO!C)6a?Oa*Y&NTlY zR@V+PdLylqAFGj@imv9WwWgh-_QTaRq7-eSQNB~9eNJ7kV)sNj=&LV9SEtmvIwtCO z{g$y&&9 z`5R1NP0@P7JDF*Q7EkDSE5-oq}k$twQ1?+AALHYD3eV zvsAnO+Q{$~(moe56i99a^?H6y9qtbE(I(eL&z-5ByI$qpkspfxqUCU8*Fd=XFA+P0^y{=Y1 z&F?DwMv{+aA)wzhfh0X7C$Tl#iP@5^fEajve(dZPqMu{ z)P6+Ahomw=_F!oL80eIeGmUFd{yY4V2xD+QC!ICL;DQ|5s;zr0leZz??7EOnQ>P)_ zSTXkU8pja2A@~K5O$fDL#!p|jM-k+F6c<3tAE*wbKc)Asgq*{RVj7X|;Wc}C$h{Qg zeE*#N9}?F3%dK_BKtJiPKpX>p3x7sqnUWvMl)+?<>}RAzXKwSeyvqc)eS_JB@-avN za`DvjkU#W<6c5}e&eGmOmT!`@aRXMb9zcXIlDSyb&c`#^_J7yPV_7SdJmsfC$tuHd zOlGcPDf?RXM0j_YN_-c7#rA~Nh@$yhUKQTJO-LpL`vUv&gJA*h%uwFM5M}@ODD3|P zY%>NW9}&k}4~r9F2UjmyCkcBuQ8(ET-y@TatVTlHzCFYmX;6RCEBfIv%O z89T|a0{Z_0>l)lIPIII^+oM%>pf^)K>s`(UdA-CSuMd9DV}JBY*mGVUW_hkX#OupO zcxCb_uSb++<|oVk59rg(8Nxqd(^-z3!*4e35KkssSnGmDViYVHkMPI3ZJhqHSy=7W zw_2dAY1kg7!{^=KE1Sdd;w|ef<1JVp9u(!_Ti%J{KD5<|h)iGQQLDX$dR4+p`Uu!Q z?)OdsuJ@U|C!Z@lEd_2h}-UU8Cjl2KRGwLb8c+3&-KaX57K@4Izs?&XLa zYYgm3&veGPAK1(6CGJCFNHP^PNB-&HM6t?h?EvWuy?PH?du+H&F7q<&$uTBO$c{B-)iPPJ<92I6#>XCB0{Z8uiO zRXFDC2z6YE)rnoZ|*a9-m64(GOA z5AFFG>P+eDARoiuqps)RSo*th9H?jN;hA0DPMn)amxlGHex_d5Gj$JnW|x=t96nD9 zJ2d7onmtST-{lOun9b*%uqghW58xfxI`bBJqrBVbFYh#dYovo?gp;JY+xDpr)mzy5 zT2s+Ipb`HNJITt$c)vi6%#+mnsZD%UPHK@PTBIQm$Jb#7)Jv|zsL)6Iah5AA%#piT zuGJJrG_rF=uC-3w1zB0+a4n4m%qu$>fD|W*KQMY{Q|naKj{R|WAFMG?l3&2$_Dp9l zj#I&-`2O0h1MgN5u1TzcmHbNg1~JMa@^h1@)^an<@jH?34)sKPu_v)R!99yV#@~Yl z=&guEkp~^Zh3s5BbGtafI>tXCaf0z%%+WFKed_x*d_U*jie4D(o*?l-)Qa_xqNjrs zkp5=mJJ>zbNf|I?wo;Prjtx_gYc@mA-)@l3A&_sm0W4xu-c6#J)y!xnKULq&!UFd+ zj9(fV?<0>J(Si=zl4ejHE61v5)wSATq@O5SS}l!A^!@j4OWD$>LWx$w{x==&Q0Gm9 zCb+i)b*DMHQH`&J>XWu!OXHxr*HTuCmd2OviHN^Jxn0M8gX<;UH}18G(~OnkDU6Xx z))Z@!D1hE$iku{>#UyL6I~i9F!shr{ce0!W?9@~+Nmhv|Vv03cRO0$;NITgYMb|MN zgx?A?WU}ZQOcpdN3`XZu=#EUGCiM3?;*rls9P%Qdb(Z3I5k3p?O~+s2?h@Rk?-HCZ zLA3J4NV$+LKm_wL+*!buGKyn96FDt6Y-_n(ZY-CMMc*#$r=5f=zjc>;HY8L>vZ`>T zNF!yg*9TgoBQY@Y6QMB&(FH>Lj~t0uYh!2FoqZFI09U`uN*OXp1=S)aJSetV+r)Nj zyVwB>kUxbAO7tQM~97p z`#TY<;7%h4ax$W*)ncS|JW5_I{)Ck;*B|OuV;zipu1d|JO7;B|db2>hZWUrBm?36c zGewcrC1@&GaGWJEqgjxHmddq`6HTom`Dgca`IbxtMdJ9x@p3lC?{bg>ptS#A@7v4S&8_qoFP-J3(IAl+0k|rvzdLe$?ad7t?bU`v35V4-vXJ@ z!?-reY+=7-9&JxBPqIJ5?;^A?V`RmCjE#K_cI@Y}Mc8kK#%8|6I2)SYl%%_%{g{$L zkmhA1_o1KZCCWL+{>Xq7qAv6w4^T_l<h*mj0}MoQBxV@z>&xp*cnaU;k8L($iaQ}hy> zK(SJhq@|Fh;EsE-G6Ql6NmQ?%?Lf=r+jEQ}NN;nP#%EU$6alZ0*xpX96p6UDg`R zHYD3@FXkTuf7s1E#=jIRQ8%}b$OZS;&Ami?knAh+66DcwmS}G^aC&(|*$C##*6_P9 z>=TmzN&g>Rnk@gH7=rTM&jz4;bWF6u#)w`D{ex*^=v8!{ilLH@QF!b?dfHSkh!mlxEr$ge?)SzS-0>2d|z^b$U9hc zV|$UySt^&`VQt!hQdT2}yRaIZW;L=JTaD$Buv%zgwE$7DUz1}P?R8$mKI9~IbP}ytIG0$} zp2k}6nn-!g#Ax;^eiJMN1!ZhDO4CTR0PoW^xCNYD3u_@tuoz~nRJ35#VF`{-VstcCEaK%@-*WBG#R8Oe8Mq(p zci>S*-!1S>+)oR5el7FHLGJaGSqSTjnc({u+l5*D|0Zm?xA{y&l2ah|+o-RKV1$aWY`Uz?@G;ltX zEwElr$DAJTeuBGFjj4&=3bYZ`_fuT+)U`?8GV!(eMvc#{;W?mJklc%0qa2!^)A<=# z?OJn+C)JKu2=HQJ2U3~r}2-tl(64_hT$ul#w?9iERp zG1(zVd<1;MnkBnn)_~*(hykbmhypx{37^aY4O3leZ;9F#HtQZJh@LBg*>{)Wb z-9JWr0LH>#kNUJ4HL>l%o&`-nKBx5ua&y=NJZF?k^pDJA4s4xrZQ?FUP`KCKoj>Asi3(-E&ULrC}SmbsM7GWpwhPzN*d&B))lvwjbsr9_K z0`H+umt?#zcp6fk%+4Ui3$peG*Rvg<-|I0)bHr*7J7^`9t0TU0pY}HxgRKp6u(2>4 zX8aBN{THxjI2twzcZUrji(-&D9ghER5B|UXzm)%{TG!_PX+6yF|AP|cav0B*&&#yo zn7xf*ycIsD<8uZ+XBtH!-^u}>T_2WL^TGcUW}7$2~K;+w>)-W{Nt)2(&Jbg?cmU3}+^!A@qNwNZ?* z1_}w8j};8W(FV2|_XdhFa-5qAzr^vIUUi59;px8{Z(8e(Hxqw1zZcWJHO?nux;5RH zhP~KYBONZmYVxKHUvOu-@ut1TnJ%WwropF}<#XLN&IWIbs1R!tyS@8^KA>;E4@Lz$ zg6+Y!AQ4oCOmv29cuF{dbqJpdo(`T5@`G!F*1?!yS@1}(IygTJ!e58ifDWbt0jph> z916bgaZdy+D8ZOuL5lS?hKIui81kC`CE;*uqFn%*^O`#xH0MQkI7&0h9U(qt-+<=4 zfD!(JH$uDzukR-y9YIuu;HB^*@Vk@2?~brWh>4!#f8+-KRJVYwv6}`@BL617kC=Y+ z1o_c_FE&B~^8(N{p0u72U*Va9c;{wZneMK!b3ox}kG@$vDN0=y{3-D#nF?39pJ89B z<#U_G8gH@-r86wceBbf6;%#)NTUhB@f#dJNIpiFPgVt6z$qL&*4`EwFHPyiXCGt1sfWzQkR2L3jqDzm76Gi6_`fb_(wU-|xwMBKWcs zcvHSAD#1Fn*Tmk0_6&#lyBK259Fy!fN4k0DT$do`vsipfXpW&w7jA)=GOnn;!NN{gC1Wj01XeGu*+m@Y&Bp>i+hn zR-P(TKe5uT;`j3Y_7m(G{tSN-t$7do6XIrE%bw;rg04LUJFEft&k;qa`8m!dknebj zp5n^H)uJc;TAuVoPwR4P9%_~w_OVtPDG57NIyYINJ>D}#p*;=h$}AqxGiBm(NV+Z&Ug8p~(9`4j5-T^j9B0rgL;Eu~ zOaKd^P?UM=>@VHiU>zjMjlrugao34u$mud!0mOp-R{uzLy#r}3!x`QOnU#UJuLD9w zA!7fo^Ky)W@FIPs&T)#|F3vIPXrilA-f217=){^rV126G|t>?H(d z&pfx6RhRC`1@2_8K8}t-8rUN^uN!u_9M~Hod=&d_!n>fp{MK_Mwa794dVFt&(X9Yy z|GoD;tZ*Ji?A4PYY5WB*2c3Cbe9Y&Fg}j*m(a`@Fh;u|2{67R5a6V8;UV%@=EB29S z+vjXZ{gRZgj}|x^b$!u&4reQHbztx-tE2d<+YywAsK_hcudIS_IqtLpJ;4eWoa{~V zJ~oLi@SthX7kk&7L~G$#dDas^5xL)c3+?%_OXKaAxKqdTFsgcrOE6lfy-x8i!kwN8 z4;1Zkxz_D#K!=HY-(sX)jxpw82KF_^!fWCbkA4%lx6?M^$fepjmtvOo z$1l;hc1~~WQsW9M&$u+v+sI2?A$ljMjfe{K;8LMSU`#QZVGX>~y3@EaQDDPT0Aue` z`JPMT@J&2(C(u6HDhfK&weiL~MTON8bo~lQ99FpftUJYTK($7N6{4TGBGFHjp!W1k z1>R+&1$yGwQ!{jvTVZ*Iov4uOkrNMkS_R0zIcCdSX29$6I-ve{887k4Vz_uqOcahW z(5MzPpC5NG2Cd7J9J8aHW2^bw7W1(VY^&OPr-ADBur9W`TU5uU{!1?Dp+@0&IYvMW z#reE0x5`C8G1-H@-XVd31I^V|$ayQQN^r^hQN~@Mo6sLvdo8lf`vfxL?a&MFMf$%& zi_jQcjTOA^ZNq3!2iuT#tM$6KQ|_?FVa!*t*X8TpBD=yM{TTfoRQk9@R)wrEh*HYn zAX_BpP6gh+)TQ4tJV}3d>z_lut0BQiVQo#x#d4Cj#9A#DTVIPZ>np4f&7f0d!AcxA z4ZcKKz7{L2Ro06r_lx2iwp2WpT!q!?&%l%#gt9ja-$dC{9^Ly+41-MQdAA$1VX0s( z_)XCFL<&2$Np`s^^S6wSs2-D`Wm*H7Wm%$3P7-#oR^8F(EGRRk!XK*)<(LxH<5#Ew zcJa0Ts!@lE5Y-58!aeYn*vTvwRn}&dbu-Gd!>SfL6fLNd+uRYr`dJA+c7sbaqB=}5 z0hw8-bpNjdN$3q{Nca|e+8W_7^K~O7Q!2-2or#i3X42V^@UM7&jQgh2NRI{A_!sX{ zo-mmu*+!ILmYC@FaW2GszefDo?ty|$#40?|m?%H8K6Ea`%KoKXBPSXw6Dy5XiHSH` zo%m9GrH;~|c`I;S>aI4r1*?tR;OoTKMtNej(KPrbkq*A4R9;(oiR>${mA{s!%WGsG zd6oQ?Y|AcTeZfmW69Ar~4`Oot3N74O+KD{p4q)wQ?tedegZO{i0i*;oUoiHde5hrR zLS2VikE`;XZgwbt>%|zG zBj*@jS@d15zQ4wpY#Nk{Z>+D4uS9v`YgsP8kxN{pKo9D_4gSHf0c1r5;DZ_(`RqD@ z(Vu9T=;N&MzxO*CKAY|jF&<~bjAx9^VQ;oN+#a@MUxb1!Lj5nchJ*hfg0*KX#%$wc z$}7S!BHG^8c>?bk5?&CD3P*c1*Bd8aLE5LhCG1J8bjt&lYyk@TCf24`<*VK*MxJ3G zxXXh)=tzX4Sw-T!oWUJZio`W8r53%sil>-%hHmUlEy1*f5= zJt0Z7@ZTF$)(+Nyx8b0{Ygum#ZIJjDbLu;+38}zJ_Qp%#sTHetDJE@ZtqY&L3XvnAMZNuVBahMj)I<*zq$SrQGXW&djqgZ=f6YX|#jH-^=J zP;wtIxb`@^VUzKuyB4cp2K#Glg#ERa=$^AC!v2~E{H6@{*N5)k6!zDgEbK4B0VC|M zxwWvr)(Fahu)n^_!u|r*le-xI>l64G8vAQag#D#8l}Vb>Y)oRgbw=W1tAGJRHG!>M zqIsgZ1^ll>pG3-PoOmH|TmsU+#1M8}!m}Dd|F_B7taP;1VitB*Mb=EjJ|FI;yej-x ziUW`pkAY2BQDV9MCMff4_Y-%P90}g1D&kO!WD&;uOz433z=61OBUEwN+m?HnhcWE~RS(ckALn7qL89-B%ea7AN1B^cB0=C`^|l-zEtPL{PvV5Oz2@R)JYy)UoP_0yzM4uD~n6&S;ak1$z~eQQZU^rxMJN z%Y!HWgm=9~yQ?P_-=-u8ElgAZh>7+`!QvFCypC=X78 zuDw~<-a9GLUtEM|yNmuz1Or6BV5XCU`XE0+xotuVY_Y}w@5D$nN?dP2{*M`9Gj0Dj z*p$p;U4WLSYr5CI1R?|xK1qTEhSg2|(dx=r1?CL>?ZpavxWBEH#p)c06nNUQjx;7I-kO;=~wC*+5{u})P%SG5P)subk=jpZG( z)MI|i&$s?)z0YZ-o^A(>zX6UN-iRmKie9)g z(Y@EX(|Od*cZTu0=-o%%y4c_F;APDI0Z7vwy|u_a#@gqcB=)mksJu=R{T&&!gJx#kbysV z7*Gfu%Q5c8`}3VY@*8lE>hv+}lNwuXL^*2P7$aHHz2vEgsLTVM@0)NLy|vFp(KbY?>*X}`Oa{|Ga6e7r!nXN zJ@IIexkKj<;rx21F`gZ6&@YXze22zI$Zo*-4Nm(o%7L#m8YeHqh&&Oa>Ng(ce?9IN zy61&`!|NT>EOc8q*WvwNsTo5#ws6kG{>(E@^X;$&c%@%^O(BW$L=GQ}-hROxEY1su z$XEG$&`{rPJc^NYDrW!9&OY%7I~9@)s!?0KXS}%8IR<;eD;&>gYYoEnCyaj1V9fR# z(VB*FfZyu8f_AvwX(yUnL)^~dOvqO{%1C8XFwPodl_$Qp##*C{AFU6JA;w_zd+!@r^nc?-7wHe- z`+mPM5>9yi5BpU(|6-$&)rc06yB?%_`S0mQRs;1Z^k}61>7U}yLUW3Z0Qsy6M~{Nb z3&KWl-z4x3np%T(9jC;uY9(mRfi)2BsLI`{s*zR2t>Vmzzg_=2Q@BKGRwPP6IEyll z)K#1+P7g}aBpx--3U2ae>n_o`jMo{+@@ZmSK)9t&6KjF2RwI{|(t;L}i>1!e!1Whd z>%B!u#^|c1x;B>aK}@f~)|=Ka>qF{mgf${=3HT{e*Y!CXaFlS|&M#2 z#nv~fK6$>;uW7if4_->CFD1TXt@==`M-bTc)yHu>zw^fRw4~YU2Ey^2I=I*08Ruu9 zu43Lm4D#lQ>Iz?Cdr>#Y*U~24fcZlcYc=uQ@0WNYt?qT6O6ISeYXi~we#~59xUt*- z#Sy*lFk=~d-y9!|N6IG>66YJ_ysl3^!`Gprr1p{bTJYlG>9?Fn*~_ALf+BP%<&n&Q zklvKyZ7ZN21*_tIX!#L$t>m3(`h@Ruec@L+Leq1Mb*j1wDv7OgA67Gtv5#}FLRvRN zelFD2z`pH)jqB^tsa7?s8R!_((ELchb87sq=C`5M5ENOFh1K{ym7Z54>5*1ibOxvU zP1G&^OZMhqSCC0ul_*WTo47CWdg8*w!-3JBlIc3m-_YS zDKL@JAJQ`qagL#-%jiM;a~9#bp{%V|6S!%nZfP~apP(2@-0FYBPCn`ITYWqf zT%hHij8Dev4%Q?}Rf#_CDB5Nd)x>JUv!BTG7PO!dqs=rJ!$;+H-@oYcXt1=G@Ho36 zB{|M*M9DxNCJzm1w^h})V1)Io`9yN7xz#L9(iz7sOIp`%-t(eo!31uP9C{9o=UYhN zGZ~FsYz*+=Ue?(C`)^z8an0bYPhcMh$YlN(BGCKd8!k#8v65FeJQa> zG(5nV1B;~mB9QM^;QZnb1s4b%HlT+sj5edQg$r1P6ie4llyM1?59EhvnP-IGvzD_A z6b~$@(Q7wioYg2EF8~LFj9C`k@26?2-3>>vCgV4PCXLlHQvdg#96vr2SkU^JpcOfN zCg|n7%q(B-yr^H{&P%~FMt@q&o7{aPc*0u8%0{UwMUIq4BXp@XoZr#>eiVdI>8|Jw zY-}tvS|WkJ(u2@3S!!&2HP-r&wU=+z3F=$xOY-!kGLxUP*7=>bk|F6$*IyDYRCD?L z-2I%IIu|>N&k6Nyuz<06HeA5CZ#j15qUp7gtI+A5iSlo|K9zEQ2LBtO=bq~PrcY34 zA2>eee(hvyN^!e?v?F7*3Vo)MYq=wR)n(Rg@OWcld={-~0lpw*(coYhPdsYD2pc;? zbTh0c+YsVCT3};h^hl|h-P&lR1_#{|a;A978kzfs{>6|!p(-&|fiB2(dnOhFxiPc! zjJX5(ZcmS|syK`jV7_i~ZkjTSslq6!M&bg>TbEk?Klgco6gPtn4myhcP;xA&u&6?aT(|VDAwx>&%G0Rxg7^Qs9Y4zZYAM&UYpnmza~CPKl~mUVevV zPTHL8PqaH3je`5bn?tcs>Tb-47O6MHrzzn$Egi?H=e(P|2QV9)1SLEl+lM)Y_0SX1g_ zsv|bS-La`M@prAk+r8YXJb4zI*L2X$EOJaQ#GZLZRN|fpenBIzc~U6X-|3~t291Ny z<6}njrd!C<#!z1dt_DU+P{NU-u+; z^4s1a@R9> z!M;Z~NRA}z7{ac1TO_2sNvw^*>+xQ)Cnd7ZV*e7e+@E9D!3L}x+<^-xBwpkHef}Q>{z8G3i9Oci=z2v5Z91&Xr^>=4J;oF0qV{^5!atDNU+5p{yB|uH zvJ1lRR*&Rvj!ZaJ_ef$`!;S%^(PZ5^T$5a!EMr`=-rC^)W^Ht*=tFO>!9%7L^yXqT zV$WDR-JkUK#B|oou)qD6zf+xpPhx%hYH$ z+(|o~KY7}yIPI6>I zjD5w!VvW;Cb@xxgJGF}apEZ1cAys@@i@eSAt23AV$s5mz{S<#b=SKK#YP|VvVti`6 z|7~ijwE)!c1!{a^0%zYF-}(#q9d9mBKYKG#NX}>dzox3r=-c(jvp3^-G-%fbbMyl3 z82cQ{-XGoV+^w}y6s*P}<^IGsx;}Y3(G< zZJckm#``i(*c2Q~_>)+}s)&A2C-{FxlT{Jpjgt}|GH|b)nCl#fD!cWt!IJXr^rU?6 zq~2rnBG-eo>%V8dpzKQi@PO`rMgN$gLJsXuBB?LI%wRsxURp|dndKUd@r#jwb5H|ZSmJ~ ztm0U~@e9Xdjs+a=kn6X}e}%gWn*_rv_9~(a6I0L?p6?9^4@TD{zEcOHb^cy_I^T7E z@b)sxT4pa`_VkZLl5a*5th(&{H={t;pOc(v%z?t9Uw95rxiWHJ*H4E+lgVlUv!7Gq zdC;8X0>Vx9<|KcNLr-PhR^B#@>dZhS^c-Vm{>dnw{77hd8sArQl5@NT$tA`DZ@IO= zTg9=C0}D#DsKOa_edh2+2erk0M_Kt_GynS^d2&}|CQ?|s?~P6mIt90&)vub^u9s8J z`8sJnK>h!(e11{&;&Hu<+Y4CBU0^NaP9dwi7aL1i6<&(|=XF*ps#!~^zv_(aGn{uo z54a#cU&ttNvE2+?wPw8EOwG5JCzjib;G-|}a*a~+tT77C;TFBjs?N?SoAuK8 z-2&pnj}a@5YCK)7t1;r88nv^Qd)1tYTILxO8F4Nr?%~o_BA1!TEy+8Qt>HoWEb*5) z%h6~`zN(`O+(_tO)K5BT|AYiv;!6w}CuuMDe!=HUp6#Svz_VzzglDDw*G5B73yz$w z3Yk%TPRR%A^BBzzB7C9xk{Rn4%$yERk+Hf29r z;t`hn)L|}PhtN(~oA6FpOZ~_Zth^qhbHycf+jyqASPw4MC z6TQ+PJ=ve+PV^_)aHyI}>3;C1AO%EI)dc&qEdAbO|9k%jboIh{xfx7#cqfD8lh!}p zldxv^CFf(~^Bj+U2p`9bAb6?%UEQp1QO$Yhwcru7cw5Y6;mQ9odtA3;Mf4;nvrAXQ zren1nUVwk@Ky01@v}Df^28-?Rfa)HKM@%|OvYSYSB{RF#!D??On)WnLumoieK8HDD z6D1nsyZsxHK5&x4+mm|B1fyBEzQibvo(BUpgGY9Ii?KgG5TEf|8oi;@b{c<(beOhM zgcQ4zbBXaQFvxk67{0)B_y=nCLi*{HE#r!hvE3qj<|C+uCQX~XM@=_Ph=s)JQnZO4mhId#+qti0w0m5qnsr5x4PAnVGI3msSq@@QSPY5&lY z?>efcvo+WntUy!p4Aw_H&Ikdf%xs5G=lhvcI_n)&{%-YVd8dCY8Ik<7>zG zOn*ZTe{*Z`)Zys{{I}}l!#Hu6gmE%=mGK?rDWg0SD9?9Z9o0{G;_#=?sq6ph*Kxi> zPhU!13Qf&$o`*HGx8BE}DKM!a8AEloY8eGkOeC|^$httJxYWqHU|!HAwJaPJeiCLF z*OZ0g(Tr53T}XW*UGrxJY9px^QbTq9KjjR*AE`#De_9`_;&3F?;R^qsfx0;SgsTzi zW9Mlt_dlkU6okX^cKFyLq&?CdiEr2lOU^1uEY8S8CiqaFL;AVTuIM)?n^7axr^N0> zm;1%^+qJDv^76V898gPr0%bC!?2vMX?+ht^MT*>oZlePDHomirs|U zVcv{*4Zk9o<&~njI%plRZlV55oqsTj_z;V>G>9ng#};2ht&k8Q`qa?<8^;IMe6Nr0 zqi(bNr#^}prt+C#ZC1ak_3Af}Rko;gYJ!)uW!~&g@HX3<-Ob?rjn)&e=m*7wGVe!X zPt^;sW-h~HQEey*2D-Wvw{jrwu~Ngvl?m%roaa3U>llV$=Q5HKx^}9 zOZppmFP9U!`gfnd8J9&yl<_Z)1eGm^k-05Kv%1mFp-cUdN>gipk5Qr;n~g!%%OOw+ z4qDGV=G4pVshslKB+}r1o|DK1;*mYa?{1pTJbaqb$AWHomzkxHc^H4V1pX`I(WYTR zlD}$+x1V7=pHE|SRGvrcY#it0^~3iMj# zm*n2$HaLGw{MHUeqw96gWU2nxyfwK!sLOa)&Pw%;6gHzEb_sgdt*N{9gL(8a@X2`l z>wH|lvulN6e3MV9yVE_o-RaJq@p0_iogG1|NHEUitUI{Ff<4+O#z^}%A48KEwX7^p zLD3zi@aqjhF?PMyiAga!UDokI;p@zbtmSoA38$~q8NJr0L3hv%8+Z?eLecN?F%0xB zHYXV`+jyZT()L2|(aTM-Fa41m394OX&Zpm&0OPpD%y8!ARZ^9L*j1(&e7-jNfWu-WTR@@^WPcZz9Hp&f!=3 zAl4n7XlK?(l{_C!V_R?`@u0L{aL!HCu^{sp5(YHZ ze9AdQyZv#>`|U$WwmE#xgYn&OvD(Si$bE6ylp|baqPQ&QXJDk z`;1hMHa(NQ2wBs~wYnW~9vb}HJe>Mp24^96i4~^nHoRd$j zXYxMYZJU4h39l^}2twob|B{PyPn|?#;i` zJ1HFZ_+Q?+hj*U-ml$8nKh0tHHPB~-{q(KG@pe8`4!`chm>NRaFZ0NMy^^0&nos{i ziENB1T-obP>*;Jov<1P`loEcOPa}t>m_srAA^+w;!h;5Ze)j0ZPqv_fPr^dFtqHag zJS(WImC)=CNX)m(9lwx(##@~SLI8StemV5eqo~pfLsy5EYINly^%Xq#87!`sVpTn{}&U}Iu ziZu9Ro$%up?8y?44J5bi^YQ0O+2wF7f?$5-k+h-KjrkZ~V2wmjL+0QEJ;W9?TqQ`v zG2NxbRPs8<=!Q4t!}s+B$+NpD2PHu~D#)hqTnpkL(BNqZ-yw*H=f zzlL`lyKYtj8Mm{!7&&}FqCb{n(t00+8X`e`%JD=#=YQpwXJcw@M@DoBN~3!C_U%aB zuCw`?$YE#?io<}#^e=Z`&c}AZ+8A@nt8u87iFCd{>mB#K*?g$RX4~lF`HXS{TwALM|TPV5jaEL=C+5VT3 zut2SHTzGGcrd&nkcx#|1EiY}p0di{&0l9`c#MgI5GIA)&zjt5q4AN|(j%HVYv{}T; zPoaHlG8yC~Zu5M6hEbe96AGBLVL=Q^z-yE9INamRtapfe`gw=?pLAe4L!9RDvy`@7 zJ`X$D=XGN;&1Al7K33se;liWi9T9wRU8EnrHXpvF5}9xdIX;5O-0MHQne^Jj>EL+8 zy~m@6-^}vnlmGJOzgZ3)>gL|#nx8P)wdfvjGe|V zkkyfB#vjI>!wGKnno-)Gq^C)*3u^-hjDyTl4bwC&)27y0?lTp?|Gm#jPi$H<#HWbw zK}OAySqV>|qs?Q?V~J&l-xF`Ufjm#}{Ar#aXC7}>HmjIb<1|hUe)A2#TSBvka9jIz zo>w!gnAM{PTGcD=$#LLIRCGFaSw<2pPrm) zqu#|*x4Mx@7+5`J)Zf*~w%~59wJ%q1fPPn5)mN8VyNo;S-f9y|9~qpPZB^%E zw|{`0tp7v{JU_xz)u@KnXeD;TXXAfd3?|9$2sa#KQiqA(;5%vEaTMn z*c7jD54!k3u=RGvI~ZM`N+l}`Z{YpnsgiIM{b6DBWH6UG=WF^czB9DnUEZGPZDzaT zvGEFb-&Pq9`x0pJ40e;>#}@4Ku$_Ab{>O6N+OKwb`=cSO`4}k&eNJ0u;zi0)CTniX zS-D!M=33wB!pL`u!=-o!EOeG)^;QH95ckk7EJowLL}kObK!xdxmzDD0QgcB9N+(}1 z7ed`5^STOBWaQ}I7&!VybEr_>dM((N=gSrUY4W?vUaWRGyX+-=S1=a-6Mu}wMoF*) z0#A*e)@`t0ZsNDW+qbpf$~VJ$Ze{BtBMTy0XS_d3!pfY#34&=2)($JH^H^&ctk3fg znCJMXsTNpI4b_|YD`UoNLc31B#JXBH_iL$QzrBxkm%HcsX|#nWqbJzvp9VhM^SVf- zpo)*xm~S@#chARD^i=#Cv}(v5K^M~Y4W!)AIn|lT?oFp+xg58H#aVdGU3RH##o^PE`{ z#O|vXR*#LWhHeHMw)%Dlbl^p*0qAb`asNKnB2&oeO8hR*^S|L+Jc`csJNS~P311Em}T%@L!bBHPGrb4TSQ$ z^j1AIvBK@|v^B0%WpK!O92vA^DQJ8lc9f0LsHEUpcFo~##_5f%V<}f_;;WJQt0F-M zbWXPJMGJN{nz9dc#>qHWadj=$dh#R_bfty(=s)H{S-^GG~x`N5>WNVk|sv}{xDa2LcYAkUzSdw{hWq1!{0dzm(& z#cI&iv52Arc{s)@YZk15|F>IP-Hzu9L=b`{Z|Ax2s&PFwIEB&A_)d1QW?3nBN8&wW5@;xLwiLXF zp@|Hw``K993^F?TCVa4gwScD3=Rv4ZJDGCU>D9qD@+O?qG}zD1L7%4XwG1e>N4NFY zg!?QvfRX<4VWkCL>%jV`)YI$Ut2(Ex8p8QYdI(RR=KD5&JFxbGiwOB{40T=)UUyRV z^~URQ?PO&A37w<(2ekc9lBAaPr9U)SK<*o;2KH~(D!yC!4V(scbybgcU)^fu*G2j@ zK<_pm+qJXMx!nRK1l3IWCs=juy0pf+c0D)CI+Wo2)U}W2t=~YJZ3F#U`&A-YH*4pw z(itAl8h zQ(`1K@#U&-f9Acd-`2zRK>kYgyPSUr0&9Jz$a<7F>+@Y73*=AXk|%X1RvLK6YD|nG z3obQA;A?0YHyGvK->q`*at<>r_ipC*R$A=s9D*(|2Sn9Jsr?1|Hl7q?RaFTKzh2g7 z&SybK|M#fa{VWi^pN&`ca_Dj;c7nB&Pt(c@qtAlRoN`K^3HKvE*U{gwR3(3o?-a5A zkqwWtPG?=H3jS?XX^%D4+F+Xk1B7?hbKRd1qOEM}Uraq@!_$z#XJd)KP92M6f0I(L z(cm=DMxV#`aBM8U*XZ;8<$66f7#FktwZS`$(ht{Z>pJ5!ES^T`)2y2;LoEp1pd_s8 z{z}hsnsp-@)H8#V(d}lj=Mb55kP^?+w;(w#qP%O6v!@}gGNJgN69eB}Pl^GCU7A|2LKs;5(mXXp8Yk)Qau#h^W5ld}}--B=jo{kH}Q+#c>f*Ds8wU}<@3 z9xX@O>n*g^>)`y;D9H%?Gfrde`UOhA+?zvO75*nk{_pYie^TQSpg+;eY5TbrG&Rb# zxKH#3Z>m0xx_Msb@*XDF)++Zl>kLK*hH(bH z(kgeAv&v4Yq_r&e_}1`dk##G)BEL&Pkd^kf#_C~JkPp#{tg;XK9sT{$`EIY6!;{e3 z3onDqB}~$~(x~v?&>P&emx%;7{h(_xN@EVmj6SxN@ejuB`d9Ssj;c;>|KRTuMlgc^ zwTm!EJ{k6ni2Fb58e=e={+d4YcMWsP!PXG+`K}(!I_F?kWs0nRx`eZ-@x3(bJ-I#` z?HjESTypA4*4PW9p+O6z-3aQtS1*-b!mkKs=nB#NhuLrwEw3Ut-~WYmg6fPhr3Hz6I~hsblyK+y!`$_8PmrVkuj&l7 zp0;syHLD*AV+&v4N5C;z(pm75e5XRs+t87>8C+3ss%d9ju(d&p%z| zuk-pZ)>;6*`n7`Ug@hBTmQ)dh`DBwdJ(C4MJ&U` zw{8$Jy@(NtNO;zNg6*mnEK>wk9JMBV2O1QqH^4|+16D#2{J7d0s+L&goacJ@D~;vg zCbaVF*vnLHdnK6P1z|lr0LJPr#PCu;T@&^ccn0+HOy@{%sc%}YRJI5MiM>ml$OZhtbzG>{P;V=AgT2|b zN#WYT-p`!PbT5a7M>|vO67~R<^502oR-j`Z$Ih);q|;x^pYhO#+lyI$yueK2r&8j) zL5OK?7uJ;$gw7!!rxPpUK10&8QjcH*yC$?~kFV+%QXN=P^`hJuu$MP57-*b_pM*%- z&fuaxk=o~1_@?@U`SCH>Fv{=opt~D!48^R2gK`(j8|U~kzWI}uEuLT&Mt%E@&dUF}&4AZ`~ zn_hE2^LW2Q5V zxA8-IR$pMhLyUv;d;YsI54`PWu?Rc{YsJCvdUbr%2}{IOWFt!Aue zFdqf22#qc^cA1{8=j#>J^HYux>6ATTp#O=J?))>=XPV zYa?aup->{tP5UY5Izqh=?`|%bzX?!^UnW#1*0sMgWz}pR=%4e@!elvT-=qBf9LM_X zsD9|qEaN5HWcNt9cPNb)SSNhJ>axq+NAcNH$`)IJ2LH#!`NwhUB)+}T%(*y|p1Hdko zeczAdbunv%-3+qY3#_A^*{sdU4$0DDbGyhNp^&`$o$(Rnn`5+w zY`H#E-pt)Sg4CajZyqwfoECI3p5CBj^LB0xHMc4v?+G1bHvvi}X#d>loRHl2r$k3e zJkl}PIVe{*lE1EpYi7Rl5SPMR~BmFFMzVoqhagbYuIdcC{3@@0JjGY0*Izv)S zm{}}5x*8Xloy~OOJbNxrR=^+q?PJxUT>zwyll;rO(-I!*&FO?ZFLMQRTI@YeLgt=l z&v#^%%uHn2De}-Ylw@au_gN#C-al=YB#xtwI>I@p4R#Bxp)qRp9B^98yBj6ar=^C1Mkmw<#H(|ycItLtcH&u!G--=;{s;Qwg0MI~%W@};DV^nQ>g_Kj!b# z2dsPiO4P2*mHz;5;5@Dy8jsR9{N3NKzwvtb&79_7gj8h~+6CmioBeg9TN)LEz*-o! z;;pyzS>)qxbo=DWdBne&5sgp;uymuj)7)xBz8+)#+bza0c?LKGDf#TS6@sVW3*Vabi^09gA$)!v8rCEnWvcrq2QZr)*YM< z&NT1|)8S>zy0YQrX!?C@^E+_WjW8Y1TXg~x^D_P}=kHoyp7{28YEqzW?Pym+vt`sZ zPu*+%J>UjBu52X~>%lmxEj1;(A_>K>qz10{_hK=7g?h|?Nx!9YSD=_$cluWt?`c7E zJ;3NG;fG+D3VzF8%6?M*X%%!)6}k$cv*>E-T8HXbu1mnUKARHzpp{%po%T^zlTshT zmZHJD(mF@AR>dG@vhK^;NC9En5~3YACy#+3A)K=vZCP8D=E(_Gv3eY8Rk2zV=5ccV zh~FA3#O`SME@d5IJzBb($!|8+@e3}^VAgjY_Fv_@A>8t+uEV{jg1**!+-bll zrXP0ZW6<)+U92+c$Dax=MqUY)!4#0Agx*v16X2${Bc8S#i+S@&_-&S!J11I8sDW%$ z9$yLfXVGIV%cttw4@2)Iv^r^r>j`royuL+W4l<+oi}c3)qO(~2hFV>2*D^GO+;MgZ_khCRhwN_(p;8Cw>5bMC+qhtq1T;UzM1V$b_A(ex$b#nqAI#X(Xjfv!3&i z|B&BK4e&pXOS?b5W<BJ`Z9!jnDtO3$#($dh`azo+Sag^2eYxF$SZ2g; zwN>&?uANVbbAObvFCS}f-{-uHlpFA##NHnr-V&XmH5KxthOttuv;_0zF26VW)~5sV zNIFjjQV09u_zQWj9kq87l+4klgtK10&HjH6`O<<@Mn&)sYge=r{=bzlSFnzCrq#^J z;*(xXSZTqX+0j6*ub^y4fo&&uGTeDDZr?+&-xmpUKl0%u&W<-ETqWZ!@P+;s%an)x ztDHvzkrv~;lPq~#_PD#4V{~2~RYM;2@NMQqCI}ugXpaYIBiF^{dNgQk*lIF$S;y$% z%aauz=+wqzjDvgom3b3;oV-NZs8`s(#dTm9D}oiy3VW;S%`9aFVW4CzY0IPS%IQV;Xa~q-_;Rds|Dc^61i4%2d@|=f{2u6IR|g{hr1tLvjro4)aup?f zNnZtb-VLuyuU8sL4W7ulxlnQx@pq>DuVSw*XJyeR==JaPM>($sLbF$lQLIkC8jNBm z##g~Ic$HECpk}mjzSE=8gHJ=Rwgb*x==1KM`J;DW_A+5Tqm-rT(1PPO?rQ$e7@#82av|RP~ z8-sBneLy#B0AXkATGSHr8cHTT#xsh%snPep2~;xuOu5z!4KkW^{6%^OoG5aA zB{{9Zn(@UTyNRbnStuimOn8=6K`O1t#V%cnB)lIC_FjHnV-*^08N=j88+U;ub&r1n zcManyB+j2vH}d+l775cEP8YfI8mpLV!a<%Oc|HJ=;RF5{ZxH7)^C$=}B>e067mV>_ z6;s02vj%yC^XFOK`-tdjATp&|Q>h6MS)`G@Gn7jMDC*ADE1eSVml@aK_3mE&C>r z<7CuVJuXwR)d4)1)_A0}2C?1?&r!bzP0Gby zxNK$N=l18^`JAgy(3Kevf|~sD5B|^M>p^AbO~7NR4&g2EUE- z3#+LT<3+5vtajHhg8;@|$vB{?F-2eN>_yLq{b;<3!}>L2wspuV+27Q+LHnnl+fUne zV~VdM-gwOJ>}Bk6Q`|zT#!t$K^*zR|?|?4wJ}Y@2s4OceA6a!-K^aVX!hIiFAL8dU z1RL%rgU_8B-t?HaGGOpX4!-p7aPOl{m0K;KeqkiIMCU-qWxCXF$@x#Z3{CDZzolc~ z7d70^{k6b8vW2>Xeods|7a+rrH?q+PR!Of^!~HAqKIt0wE~i^9@YHHgO&6;X&WK=7 zG?aEO@+%#Wc~k7>Sju>=H~rnCSh}QX6}=hh_3$4J7DNikDg8$UsD8Qe-*Br@_^`7_ zKkR%SK7>W`y-rc^Ae0o@@pq*8KM5^-kqw)%c6%N3#asQ4yx#sv#4dA*LHZ-_Q$KCg zH<~$vXi@AOOn)WwmHX&PKMHn6E6_D`vnCRDR8WlPaWQ;f8>GSVcmztkw7F5iFU*sE zM|-(D*hw$bjb7qJS2Myt%jlsTXWmI9+O^nEoYGse=LCDhH{+X0bIAA36*b+SwIvK_=HNYN$ z{2H!CxMkrmYV89Mjfc@MzN^bZ?pq^RUHgdh;jHh<*>E*bkFW%jGsxtz@DuJ(O<7(9NKHJo{;7gIhrHmhWaghx6P z(=d+VYM3?LSv%I{Mxv8T_&BHVNM&R6jo%+Haotkg|ncU<2k(`6~Plb9U znQGqxJW2_2%eKwFyiKv2OhX6o~`o z&S-|eIqKnUigvMz{YSLV-VyyHel9!Ho~`WWQJ zvBvX`1G;)h7|WPy91RL>74rJmk7d{_+9V9u&_>2+%8o!4?CK*nx4YR-YFo4cpUD-` zau9pV@v>hS&50(`FaOscp-t}T1p$B5zZ~+(-R}f?Medq)ICGM@-G0tG#cS`p>e$X_ z&K!TCGePOZQ2z$!DYvWZ`z0y>BcUa}x}U51etY$`nxs0pZQMQPZGMTnm%0)?VE@=k z9A&C;1Nu;Os&H3-yv`r8o>T_%>NRu~{n_tH`7N-e=%=1SyZMyrk5Bp-uLTGc{b{+? z2s_5>tDaJ;I9mrgr_GL@D|t4?Ggu8<&PpJb2ukcKB>tzUsa&ib!_ue{R$R-7afP+a zse-)&yYL*gXIo9Wfz_WB$1{eP^QRa?UTwx%Wy!vZu|A?8>~`T{W9X}`@QG$m3*XtG zTj&b&Z^pa-Q<|4iUs3W_&{st+NYD9bAftnRzRjH0#zMnJ3n|tcU~b^CUJVI66pchR zEG?>l)@#P4$A( zk6MqhuW4`V9`%_0m~$dy>=V?9-s5f`=W*x3#0kzB`b4iVx=a^Gr!n>`jIN5md&J)l z1fs!eL5OtJl~R%}-p75^wb&t-NB0L0Gy6Qz>!TjB`k;-Ja1Y52u-KLNu}%PSv5i!YW813d`Qle@f`bZRRKSxKlbi(sLy%ieHL_? zk9C*u>yLU7l4q&42!8zm<&WK)F8F9Bf@iVYega^VG;d_MQSB&q(de0*lkq9LpwWZ6yU7HCm5IzBl* z_{P5k`}6I=&8&H!p?0&9n575P_C1E|{r(udH3ZAyGdQ0b3Cg~<=Xy6|{aqZM?>7R$ zUv?$!X~-C_h&`Ql+vUvZB>z%~1n^IMZ<_5dn z->rH23croDhNlCOiIVC)#vO$DRu^N%oCZPn4BGu%ZwLM2O!P-nV@*{7QsHu|J9{Iu z3%$F8cl$w?mC?rNB=1&hccO>CLv;?)er{FFFb}11hH9jms}{)4Ch$vBjx*Kis-8N9 z-daj6^90aV!d1-3*64Eb@k7k_W8&`_@%MPNW`!VPuIBqkG}u{e4$fdE+Qb?oXHFCK zBG-atd8U&A2}hp4sGD*=UZ3uGTxG-436rBpJ?n8wmeKXBrsxg?XLw(I(d7Gy#7#%S>8EefxEDG~}RJg17P~G`kw>%tp+T8u8vKPD%KO zK0UgPw$xZs2^zDj&OC667NR>?h(r~>u97^9lBc6Z#4=w0!gnTE%r~C+e2*l~8==Ot zaDC1~cPf}gS-cl6^H(tLU2080JMm*2>sef#rJmKzNb7s7S;aCp!$`ZaaTdECUgclo zZ@0t><41js|A;Bqd$2ftQa46pc8$L!@uZ#^EsMUva(*{ElQaX>>Hs_B2{&Ek|3;d> z66$XD82OF5#YP^qv(3Q{^YnNn^-_B(>#O3YD42(njJd4&&16NkZQNc4;my#T(zM`c zNlW-V7!8#Q;U!Q<^k?w$P-6fk?Zg_r{53@WG-P~{jca588lZb=vtIxfZ(}dXS=W;KWtSt$3FQI;6WLn9{ID3uf z^k95uSQEwTI_b@{%Ru|@?=Uv`%cszJp7DKERvlhP15!8dC(zT#(1Hq8UAw1I*U1DY z(hn7=H@p(sqUa(^b$ka4;$qf$2C}E|iAYUwuC2P{y->XYQpt&Gl=lYp!JBB+KpC;7 zG9sG>{*Bn`{m4vHLRR68QOvz#$)C^H&)zKkv$rU`l6DNj1Gp;<)!!*^BSsoh>Ysz_ z!1@nUohhkrT!aP93Ch3*w6Qu34%mi`|8|Z9ntb_O!VKdg<|17Qmv$vaNp~OVb`CD_ zuk)XWo^6?r%G0zxkP;1o77};We16)g7ws3FNG%H6nUR~*5IkteSvw~kz3AMMKbJd^ z8@Vr%Mj`$i6FuzmodWs;vCXf`J{RrOL{F&th|w1PgUtL@I2xLklOw5vfziY~tuOQ^ z24y-V2iN*t=v74aS2NH6>tEDmjD>&6%fsLG9&)^%H#g{7&ecZefPF~_-8qmD?CcxK zjw!$5xzRbWj6u;Z?6LPlfs^C5a#PGjX~t2k@1orpp|hSy{%rUjx{-AuC3H`tUHpwU zQ61docD9Utj^q7y_DEfm+@*Oh3vIJbHptb^C4N3Ww*dV_LH=7L@&w%_UO&2-ersOP zjvZ_ZXbpIbI<=vFJCIw_PF>EZDLcnUB_Q#14oXzQ6m8Q=>_1EJtq{$y$c1b;F9^&p zEfcw1U#-BmDvY_Mxmq7KH=DZ`_!(Ut8*!=gC1G<~>MksV#S5vS`dwcOcP*tQ@d*d| zg3)f%ig6~VC3?`$bN`_m**Do6bWe6gd(j%?K4HD&mRK*l{qm#q_}%{vUrSjZk-aTI z&r#jO41Rx$^+n*aW#~g?1--f*|`HJ^;^oqBeqawO0_G^(@?kjc&WMgZ*far19<0uop;+zA@HY-R$DSU|!V9>>X zjO#CgFRd~3&R-$(S9!zrj6@BiC;9Ga2)5f)?q20T0y0~N=x*ySYlpkTspX6b#vq#t zqm|YKHO+3PraA5M@+cjR@!BDa3ef{_hMr`V7l#TSp${uz_n?AM#v!YM0?^jj&kXq| zcXuc>;?6FJB^=HyA%E-&T429|9u0Zoshep9J`$!YEv=n84bAVH@IJdo*n(6pUVTNZ z5}08-BPTxwMkehR1UN=8;FiZTkf~9r^{lQGuA?nnPMm2*A*VTC2CYE0zJ@(gItR+F zfrnl;oXVI^`u3}Q!6uqX?=n07twP`E;bYOw_pkuC)UN^G?uafyYHb9kEv?e_X4WRa z>n8SGOB1*t7y*e@Mxfdqrv3X+{(bK`9YB{NbQz!1mp3OT=V6a{Gv(+U45K|r z-Mp$N9Da_^8TJ@hZWHeP;02>hS27+;klzzln33JJI<-8O}X;C0*w1w=dS+bg8Q2WU%VE)Vbci*S^O3IkDeg z?apu}V4?h{XQ&&TVTpQ)uM*=D->M7sT}CU(vbT-!+f+unPtfna!T93P_~~kY8e=1|D18G@F!?JB z`&%+kcs*)?zOy+x7>>54?Ldxy<#S8RG%*IRz(t ziT*9fxH4W~ypBh~Ludm<_LtGSw;>G&UEDcvsKdytHL>r&8dXMn&*%=U(~H;5XgqH3 zhXN09NQ$dSv7uc~e%{pe=oK4UgBX!FqHKd%J4uJRJe7nW(ynFYV?_LRBi`xeOO8HZ zPYS%XxRO}gqqDl1SR=0M;nB?MIQ|Nakb#XTp^}w(zad%_x%0Co7APXNv9jBP_WB+PniutuS6g2X3!hUxchfU z_9+uPaN%Q-R|lXMyZ5LHyBtaVXuQABE$Dla>=?8zOvY`ioVC(NkrD@~jX(*SVmo^A zPuTAVZwn`|A7zKMgU$ixZEQRa&?*nA17LV1SbeOBL!{&9f}xii#hnsM-GQCEW1;LRNY@2WeGxMTDOWvbu1<$5RJr#lR1rBReV|WXZX+k<0r-xj zye2$I+AHY6_u(btllOzr20e*Y;hH?Fhd*UG-hh8ZpE>WV%2vH_5hc4GoU(L0zdo4} zL}jD0df)mI4c7D45O;`uvo#b9zofbzY~G}Gz55|LhmWie-K6yq^{~g?kI$*?bx3>~ z4TnE!Cl8H7gbM}p@ga6IMKA5NbJOvdB$*p^Kz-?VYNN?bGxk|PO&sdy{kWg6#2#YB z&g^iH*BZ2|GGzC;{=Pid@4<7^3m;*&vp44FJ=Px8(%Odv?}dEcLyK*$_QLC})NUm3 z1i@vaY{2cn&$d`m`iup3Hk=WoN)k`z1>>&){}j8>(K+A;%wGy zg1gWNTtxrZIS?)L1n>fc12Vw`YUXUDZAVrb2U8-ki77_TO<>&D;qXd&8>rVtd8~d- za9+~GboX!qs}*OdkC5jRoDbtU{wKN&Z|Jk3snlmHt1WtXsoin${Y9*W3D0E6^}a}Y z?Jho}GiJ=bbpxr^W;Am{+~UR4wsRnMZ*`rz!D9DD^i!Ll%=yUv`cR+&b$KfEKc5xH zQ{jnz$oB^DM?dPPKJtAD^Ta>srRph}Bg#m+mQjyUfRtU@=tI=3{66QkQp2%=NRz8Y z;X_L14Y_%z(BduQPTKi!?<}j7GCUVFvmP?q#+>pIdttpu+2u~N*pl$3Xdg6{YrK7f zVNhXsP{|nTbYNfep^nnkj7^M##(8p2eh01&H4gnr=$6nH%s(G)+{88#Q2@AYW_@_<`8yY{QMoKU7WgYwADq1 zgq`DF;a7GR>Z$PKP9-DEM)CL7m`=NtU;=F6{5pR>5_dcPJ2KAP>rd1Bf+|q4hOyHT z4EvAOCiNk$M(h+eIosI>WgE5%f+w(%9njZ=+oAba>`IyDokB*yJ84%5Y}^=^yE|eH z>O>^@y=YChkqUcOT0?audcMuppNFL}wh_*~?E2Y}Rr$@ziwdmm&SL6x3kZ+9Qu|V( zao=j~VK3<|PJy#rcSe_b2b^`}^LTtU&g-A@tP=RVGyp~ljNF{Y;X1!mufs=X1XShB z{sf*c)%DbDd}!*S8xil_%4os5gz30nSZCi#TOXo7W(4%U{=~{S>uBNW=myRPGtx=0 z>MNfLX4)5l44v`j<5vM1bnIvU9Vy7%d_7#h7C!GB+qxyNDEt*aZK2N5SWB0r(u|$f z+3k@hNI}+9zJe~DgLNPSq*JAw<+%A|<3fKI8un+LoDTW!V4INwyJe5wqpM&Uv<|L0 zV69>;hBDyapNpXe{Tgp6Muhs=e0{DDpL3tbE2T6Z;~ry_A|>v`XXnmDuf$g4>SR0i z$$g1Dzf6Di3bSO7U8IWW>u-cMS=NPLjD2CU=#kQBbY!=)lVZ(IEqa4ORfkon+TeGK z)6=AmpjhS_%GUvS>1lv{z_G~4SS@0k^Po>L0zBt-95`_nlKUuzR*|d^Agu8 z_6SQD)<#3t@B}4C(9-urKJZ67v5m|c#jNM`F)~I5R_$x7H!37rAk#ScTt={F3%K)ymKY9eUm?{Lq#=)3_sT z`%PN)hgg)H1s}buZ!!8Zo;WM^<$loU&3r?~gt_srhrH~Elxd|zD(0k=#PlXoW2rST z|J#}dW`cDNT+|WY6=bk_d7CwlixRt2e_9D_p_1ZZT4;DcQ*RTF7a>o{O>jS z-z)ij$H}FA6d^)moGqn&$Qnmax8M3hjk6CTXZK>&zY|F;v58!h^nWr#`s>_Xk)c`V zD11M1A-=S1LZJUd9*X45-OV~b$CUVn`%?A^q%ObT=YJ>Vf5&-U;@l2(uAuD>G_QnW zjF_prGIsq`#vkS_&Mx!0m|n{*$%`gNsa>Jqa;wx_VjRPrZ@k={MR}UOgX9l`4E>WC z&Zaa{;vBuQ&Y(Qqup{QpdpO>4W^;UJ$k{++Wqc=hca7E7=*Rt8R_9p5CH<1Y=wmi~ zafl z=?sk;8*A)+%5a4j2F8>fOS+ZVaS@y&^8J}r)tG0N>2vi_!64_*C|C0GDgAya`r|A7 zpPgp#bZ_gTuzQTEEu+z!Sa~~?%cG2!iD?#P8^kZ?=F3hSBQ!=MJ#+o8<0S0ong71- zR8EA>;_z$s#As~x@^=M;JloxE_fTJ_4g{AbRyY-I&bq*HMkFs{7ZZ`Y$2pfKUCVWj z3i`PTXRKFdB-p#8er{-D*OX_j`23TNCkSd z`DQTDcs4o5Y?^u|^`18`Iw3j0*&off?nus1RRX#9L)0QUz&sGm@#-Z<1@CzSkT!Fp zPN_L&r_@aU;pBHl$5g3NKRG#ZM{-W$b^X_P76nJroE4{;)bmWO7r8}PXf5&v=mXJr zcGFaapNn^PR79K|Q-96VkI}N^07h3IhlPQJ`zK-MCF-ZL{?(~@;oHe{747e>OQUDR~ll?Z@Wg%H%9#1IHbyIh1o&@`%`0p--ZD>N!?*KM#W73uCIT@XrrEHM&95Z<3O~0ZGYcA^9Gc{K|aA+xQyX>|L^#(XkZv0<`E+sri#Fc90@+;?=fQJNYEo2bI6~dNXpZqR2mC{ z()=3_#dwmNc*?uHCujF_CdiT_lf9E8!JHgPTNG>Lod4zT$xZnf#}Z!RElQo4x`RIn z`v-5zU3p_<{*4EdMG_0o?@LL{BU4#&@JSvy6FbE`O6CsmI7cMKOT0Y)>}4=rI~kS0 zkQPtM8s5j|Bgrgiu?h4eg0Z<1Y*|4p&pHvyo`TU@Eo9huwB_R&2-4x{;j z7(sk(9&>YST%rvsfrlgGV2pMC|BV0ap-I0{v}I;1>kw*o4!icQ_%0T$F?Q|go}j2d zm@jKTue~+EoNpX!x3kLeV|77#&zhaB=|ULg?wE8Ofm38oAc`utQQKEYuQTJ2fK_iDAyWQ!@9CnUzwAa~)%=7I2 zSUs-GKPv=JTApspUyrBs=o|A_k2!L+FMqYeY3Uu~jfm0R9WxgW>-|vz~`5l|=PM=@<@ZCe)yDiRPox}Hg<+*xWvYdRG!EiVj93|_3yH;7m z`+wwvy?}wa;ZJtP&N!E=k>(n+i88Q3+G5Y34Q9f}(Jed{v|=YOGdSRGu=*P{RiU0> zS20dY6&v42XE|3pLxaCNHCRVRNA};N0EAo!8j4dyuY*hGC)iG_$_SwhCn*oXW(&9iCRUD?4|I#!e67?w!mt zC&f>zVnHmL$_Sm_)4H-*3I&d}B4$pJ{W==QDLQf@X9}e%VE<&EQ0|5JiLsYm9Ahck zqZL81@j+CL`kqQDD>0)7o&ls-*va^N(l$CKJ>$}3HdV=)Vs1-rP4*17ByWm&?G8$Q zJNko6cpFwh$1^+Y=t-U{(Coa%9wfDsCE@MRBoiEfk>~ z&a&b0!~;?cF}+XDR#TTLkTu6~OyHQP{=}2;R(ulMqSu}4mFIs~=6^-|ybpY}z3d*e z0-FknVFu`Gd#ry-?4SXzKr^%4*=NlSR-oAzuh+kRGGNpcqfJ?3SBkdk)vB`dEBczs z)*5F`Fw@)w1-2yLO)Ym2)CUh!#hIh9l?4up9GHtfL+c^>TZ+WWc8@ zjs6T4vFr7%)=|)Bv1;!3B&`Si#UQpE#mrIYy@r@8Vf`g>Nmw~|*vQ9&e>;Q&gPX6)`~w;0>{aBtRe}F$otH9ongm zQnX;bU`XJ5-}PH7`<#HS|L>V+o^QSaPm*)i-h1tJ{oU95Yt|U0{qd( z`oG={;n^lezC3w>dJ%4-ne!ZSnX!V+|xddELo{W5bf zR_Eq^f=p8V?e^dRMu%D6`U4BDKX%k>em~d~hehkqx_-zHRRyb*4Jx`Xw!;WiYIpn< z`y^|3_NDmp7?cqEe<(EAewlBeufXZRPk&H@{>~80+v9$JSn1Bf%JTAq;4K)0b@ySc z#ign|lgAE$P3=K{c5WD=SV(rFv|pC}#ArIm9+I8zbmJ)^ zEY$>f#^w3Ks{9s*_TLMDb^2}0DyTm)AI;8v+}ji9!53`w8TYt6Ygs_#P>h`wgO10* zMZF4A$R0n&m2X)GLA|Q-uLm!~CR-N1<-dyPw5qs(97VI^kA&xehE(MlPgxZV2le_G z+B5_9&%?Ou;~3?;eWE{BfXE_h=fN`0zd7`yJImZu2eUcs&O>k4#Rq}{yhJ(Ri=B<0eg!=q3QP0Q%ruM$ zvbMuR{$1QV)qWeje%Sku_>Ih4xmV$_e*=*~I}y=yG2#Yi=kD}gMbz?zxi>N6ulqAG zGUsJpOs&XlwWemj>Mpi?Yf$!tEG@+A;@P=rpb2B($ExtS$|!U6L)(Xd9>8OcRS(Ju zu1^1X4_f9q7vNM~E_*kAzJV3pgYu!6lMkvZEB$M&{@MNx=f=u^I@cd_&_DC<{+xVw z_8{*3GU}TGYTXa#D_Osn{Sv;-#1H>ojvpX{WIltl-2<^#23TD<)iEbh@M5sdW^B$yB*YaCw9{g z|A2b{6zg5YH}=cCgK>HXzXxV|a_`_hu=Tk5KjVi2hYt0kMBX$ z-1yw__A}n2sG09(EzjU{RbF`2af+sX7c+i?{U^VldmP5-xJ-Y@>cG?w`r}g>s3!c4 z&b5}TrT_HHvER|*TqggPS7H5U>i606Fd8>uxBS{WUAO&P!21JN3+G|QkH=Yl^Zj<% z>%Wle#?MLiMY)5xMjkx}$iQW3QQJEF)3RTbB$p5wv zQo`$?vU}mjygB+aYTl+ij}@qoSGM8K;(sqg>o^qe$$Zcn4g}8AtkbPs@Jdt#AGbp5 z#nfq7IY0B6vybO2D{wY^G*X7`$2n#gbZ2ZU~X4%m-|)>WQ)wf_f$bRkurCHsg=65Fax+Ul*sUM%A4!m?)}Ppz^lPG zNQWxNfRzW&fDCV0_dEX?u5_;R7CYbe7dzMD@7KNGI(xlU4x>_mvg&-_t9ITDmpe1? z^ndTadaKTAu^t3^YXP4+@W090h!VkdMOF-ywt@N~(oC+@3CH>0E~-H!XrC`GxSTfjfZ zZ{$e8DDl4EBUb`{BmUMe;4Gi{KRZ3hzQ$jAM9H!~B|u2eO|i>@N_#2lnTC4GfTLKA z-{;x9Vp$DdS+LEX9X*fFQSL?iN#vf#+wxD^W%=1D&%P!gnDSG&YXzS83O<)PPuNeR zwhj2q2%~Ko$T84CZVpDLL)UXW{Dj%P-p#?y-cI1K?sPYRqa6z5uI;|(^vk>p+HwK( z$h%<;>UO#iX?GA(*EUc!KI?%RSAr_N=7)AAP#y;1T=AjICLnosA+qQf*?ramoCaEu zUEpuaq_QJ2U711Fx1B?o8QEtt1FTOt!r~Emyt|<$vr?P6rsg^YJrVZEki&b-kzI%>GJ9{CR z3kz@7YXWvL?;Tlk?hdIXw#&%F}w^kwwm~ z$(D`$T50dIR@zw%d*|qq=T9$s2QB@u!#XX_*I?y2OVzwK^)EWF=MO_#WzW@iTd@g` z(N9~}1=?DAO>YJ@<~^-YrL+-`*5#64a)W)yZ9W`U+jUL8Ktvowo>lgNxe@~ZRqskxXEx%Tme@~S! z>n;DjF8{tNf4sN+2fF+^RldHr{5oBJy((|ky}MN-M&1fk&VkC4@QiNvbs^_qyT0!> zuP!wJ7?_h%9_;wJRGn4kPDhs7IDLjU4E@-tpORdkyY*8)@jhq$5-|{5d3#FgeN*3Y zJ3K<0)O!z=T=$T9kQoo}#2TEWt`D$fJf&Sj^z}KOpSsYRm?}%pNnK{wrN0J&^OTZ1 zPwTB|jynwY*KFd-anvzL|>?u--8{R!YO-rUeK~}ShIcq5A;5Z478odb?JD=J9ns2`i_3O7Dx)m z!7stQu(Ce;KF#lvVew3rDGw+5)O%OxCzt=#C%G?oJJ-TPXE9bpJz2mx50+l@SD$=B zJ-Jdn`8`|wFdQG|y^wn7J(`RN=Hs0LJU;aKIq(B^fG+IDin96&?%UhP{o=FDEnaZbAt6O`gmjW6s=bK)!TY(eH9Gqzzl+q#{UftWPr*xe{ z12(Alc3a;o=}((}QxEd>(bxK%erC1m!5>T7akXm4OXdmW6^1WO)q2RfR@Zu6o^)l8 zDka5wB=u@|F_5ce43S?MSNG|bm@&K#?|nnR_igpwH`N^+QA3v`tMCC;zTbUJkMmi1 z`o?TW)`8@ZE%(n*nNMqxHFLlJ$@~?8d|&3T4)^<4MmPI!1Xts;$*zffza`JR{#D_t zX>xwf-q>_O?Y+_74;9BePv6_)3{crQnL+w0|8)On$R_ z!R5#6XCzDRK>so~_G`0sxYzZ^1y_c(*(-6^W$JySQlnF+#q=bet$eUkb;jdQsd4>^ z&Z^9umag|1py&d-S7k_@-rI+3k<}U5rSx-WsOP?}>K>Egu9U3E`&4g^<^MjG|C?FM zkLCY9mj7F_NgvDqeJua?vHagAc8D=QBK6FNw1qga|K<6=Q$dyGAlli){~-TwbYkei zV}DD`{J&N9R@<^)#-V~L=TUntY#!>LTLo$Ph<~=F{PRbY>w@L5jq%?SpmZNn7;1;( zb*bsjZQhb-5l(s{UFetqhI==;wvzmCe_2snX z+0kM6ZGI6I^5bD~=?S)aCx&|if0HaaZteaH(gm9KhILpSuOU-J9V%-hp@dZA4qW}=7lp`%ZZCQ65ojm5&vBIby=FWj%%#Zq`KPTW^ z@qpY2kDrJx41b|osof|&&Ks}&N!MA&Nj{R~e#gIw9GYA%j;MI*G)t@=0j#DyvHuX1_l5Uv7t22W!cHx$9wdP2zu^ zNxkMCOjTPOQr~dSu$H2R+Y#|`9U>Q)hnpzDw>yKgx4VPgJKVYOm{h4q2J{ZGTvhO` z{lH!Vv>5U8J>=biIl2{3JcOJ#cOXOZt(ZsbZ}jug%%k=Xu+zVfvl5TmgR_I(hcHGb zhEMCgwFGCn1RQOi^e)z&IU}pZpU5s_M7+3h| ze#ATcCUd{@i|qZl@*Avp(hB+4n0dh2m}#^(W;eR)GaC^pNz{e)ZVgt+VY@!F(JkaR zIt`f(h$y=`+5j);!Q2BbBLz$UZOCjuoRh>moQcmBDsOZbveNd?ZNlBW{;tJRUhTmr z59f&c=XT=S%V_^TtR$|+eej09jIsivXvz>1Bk@1`feL!Q^{aH9gNOtRX92CZ&~q1i z8?heoA$vb~3(@HQlKG4MCVKm}y1EHjblw8(J!rq31@at9-$EP95fRF_zXfFZDyJJU z`_?_wu4_$*ngz8}E% zW_*9$CGy}~h+-R$_4`)l&p<}u_kE!7Wxxx59l!sGQ?X^B7_a&V(dO3?L+}Q$G7qBN z`|$hC%ma!Nm5!{1h_6NQV4NRWZe@WCf-`jBzqcWuFZnMrnJAP9`f^Tm%R&8avzdFB zoUy^{M(oXp^6N9B-Sxn)xHV!%?|R^dkLC^sf3U6kqfq?%B8u={DZUC-+M=KnYZyd;S_J-TVC;-hCuR-F;CXWig;g3K)g|?Cc7ZB}6#PJUS_r4ovc1f8@_dL|ujgh;~dM5J>XyP-7 z*va5Gub-gM^9SP0DCuO@dl!+U>CT z^k-J(Niko9KmGUqq4;=vKWO-Ch~k=Vea+tI?8_qN4d^w+@jr8&+nuU(MY=Y9S$Yw? zq7TOZl-?KrC`}J(2RxeeO*X&F)6j zG4kypc17lfbFmFM-Ykn$=LXD>$zc_Fx2Wud7pJY%666RO z?L{%rkNHh12D-_=FP+3dKkGgVl!HQ=QP5Ybc$Yr}?-d2@BEF14_l5WZG}p;Inm*3@ zZJP3bas2<`bgBGr*~cSB|1r=?9xNX2p5%Vk{S0F7Evzv9D~sQPrT{bm|DD_tNV4Q{ z!I);U>`RB4#hmb$^d@;>xvHp%UEd*(b44pp%L64(Qup_vYctrq^K$!40&*v(hEAR z3vi|p`bYlO=n~|sVz!|}!6k@5W0pz86T85@iaZw~vxr&sveb+0sNAbcog5wn<-5nf zEOQxnJ@HQ@&X`Da#JhS2HLdlRdCZo)4*8e8>?F4`y)0OlU*^4yJ#-oJXim!982v0 zuF@GCPjSDT8H6im`hS9~JU1GYn`*u4mwU@nGQMy4U$rJ+l^>3O4TMQVr&&K`Bot0? zt^?g?&6{=2(?R8k{Cm4U6`z>Rsu5SF;!umUgP+IhXutuv0iNej_o2*-!z}o0E6FE~ z&qLuAKN)<9``pF%e!1gwm3At>CQ}a1dVFpjYMc&9e=2ec{>+aMulz0|h6>;a2h=%< zu{aSReP-OvSbqu-WTcl3Y891xPp51k<`%kA_!5uNa4>fhW2);Uok z|C{*#&s$$jy^wk?wKLU{I-H)+8*3ra8xrfmSPn+9)FBFjks6G`Xi!u^{_arG37gcF zX3&hSh<#x6#S-;gz4ef)m7JH9g>fUBR2^For}8ZB-KMV>U+qNv3?ok%UDB+tUxd7X zpGA&BdV)>1+j4K6J>4h07yAB^yEgTb`xJiuBmI(VJGZ6lybkNV<^Kb*6Ag;K8AjHv z*b!6{S7cUZRw(&*rMm+AU!;{QAH&zm@-Uf^hA#=sTwhwM95 zOywcuHs?9EpJSH~fiBEdD*x8nh0N2yfBPMz*>(1M=p!dX5BVVUk)cW-srH9L>pwZO z-u<;-a36p^vL5KyL)?1MxqpK`QV)G(5i+l^Y>~ei*$J!szhx6bemmgdD;o%6)H}iD zmmmh6Qun^hR_N8Qz*4Z!Ez7^)?*r9(5qP}!Tl=v>ce$@1HvC1*dlk=tgl|AjF!BE) z{||Jmbbl-g>c59e^xq-Se}}w>{)%YE8uTjmUKUB6Nj~&TjQvGQsb*f1mje=S6#W_CF9A@_Toik2_R- ztaG)B2>e$5yYbiZJM()W(*u7Znhl?y1>BV%N5%5L#Q(2%sw}aHVSI4<$IAZ_qrks+ z>%aHl49G8?yR*M!8Gh~oR!pMnEOdUIp#|_<_h4)xR_f+x9p+^r?px?CM7x$c%Sx{Q zSY2O=>r36G!MR||$v^NRNX8oxYwn@thwW#fJMButXaoa|b0_7`!x_B+>S}V=pAqMEY3?jUSO3{( zOmzkB^0JraZp1ka%Kzu#9h5uBkY#MAw8-q)Rf#BbN(9UlQAljWD% ze@o@RkJwQ9>|3qh0r6^4{B=kTw_zl9<|)^Sm1rJn+lP8^5)p5lZGX`}39`yWe#_vGE6y6EwR1OQ*a9C zo!sSq3*PWC=U{Fv>LhOelKAc1yNDkyi!b+mP_T>`U|p0og5MowkOyFDSKzI)7|6#$^AXhsAvZ${+FEp9BdCuSq^O1sS8q` z^-4TF{vvL~zJuONoWT!6V#{Se?EX~k^m{XlV5#^u_T_z<0w~ta(fwFcj3B(Pdr<;*u{Ue^&^Pt=9vrN z{lU`pVT|~8*!a8bw=EBCX@V5X?-TuX?uYHS@Z7rKBlQShpDi0giD z`Ok&jqZ>K8PKGC7NXp6`h-0k#lVJN<0_3(ss`bq5_#uqMJj~rnHFw=;{|2Cb9?W&& zd|Ek>z`Jk)pcSW2+Hl4I@s`NIV0vE2x8n0WH41n2)>Ib%0<(Hb_>NlZ&Q%4z+im|C^Iq`2Wao70 z-I%`u5ETABGY;I~Anway{vPlj!2DeR8hjgeO%Ag~^t%hO55~u@@`_{$r4}$-~Zap6wG26hX z?GEb^>v7ax2g^delF=E>jdOA+VH`Rw1B_H|!Bw`j2LJi&Jm3nLrz8UYH~9V(>T6SV zHCj*OJ3sRsJ5Y1G(j}h4-$vBB4S!p32V=_%sGFq{1^x)WiQYghq#9SL8%Uc(-!M-V z$A&*$q+76M7Ft+PwbHuLj=nHPyiv75`YO7PjOu$?LGIVJvM&B_K)X3}tW8>L#(>(5 zjNEVZyLo?cPmVSk>^*W0LT^yfQ{HNuI?_|7x>DwSBxmB=V{K~JjAI;wDuXe`gS370-$6yV8Jj-k4;P@ZP zugR{4eD?%OpUf_2dGL?mqX?+eF`Q_F>Szofg z_&+ZHiRJ{!3;NHxv_wf-)+SiW(}*5in|c`76~M?yON8r66&bcm-*+1#bj#A4U~B(a zx`18(d;OHevbp|4c=BcaGbr}293k9CRKo+pwpd*b##kIbePMmfvK_}1x|IYTToH0 z7wI;O*1zMa$WPh*Elc9Gp z;)aP$!?@I0y-ybKA71GWz{GY#P{2#&0deA1;+oG^7KP`IHB~BM`%!tGk03$3PA`?&KcRIvj zBeokbzFgw1O^aF-UK{b$&WYArLxAHoCL%uB;&^jZuz|yt*&BAG$3zQK#80aX>wxoB z01n#LbP&x=b;Zxc)52Dp_;0}eN{?4~ZS}wt+n{jPx{zOPc+?zTp~{K*R8MB8$EubJpq_%ui(10{V~;cVAUvox%FsBZS{#iI4kT- zzZPyy%lL1^S}nL^qHS28jZTEQyBFWjMn4QjVo%Jn6|UUhq3)j+6)a-Yas3Sm7r16U z+~;kJ_lBK0!BZ5BMc^q~Y(u%~UkBER;0{)Y9G_)Cfa#0X*kTh~5OWnrk<`uge4od* zwzyNHxse{vY(><7_1uYUFWWGWojKo^x+~S#Nn1uC;~MYp^4mR*rQkLitVi~()-A`l zaD9)7wx_0GFOJ8Yl=eTlhvOIdt-y5zy$I`5kE^|8`YQEZZ|VbHBXJZfqE4#|YXf}ANBn*erNZN-&}aPb$iv?CZ1zGuo&AStS?v;*!E&9$=>fycifn*jJD-> z>isNzX|%^;U%eJKVvQ?INtd*M`({SCQPV8qDmF&DQ2+2q#s_;Se?zpxni95W@dLc! zhSWmUPuZ&+L&2XUZez2iIlZ`>L9$L7;t5fm$Mwa2k^T+A8azqW*$VnBYhXgy;R+oh z-Pi&A&dwayYh~1&1APIu``q2q`E_2VhWnV+T8FaG)xRdN>OKLp&DVUUV zGqR?dovGN%pxv(AEA$HZk-%O|Fg8guNANPGGMVFh2F^p0Gjl*G|wK;U)j?=1iU~9xu}M*RXbkM;AaZ z+HLS0)h?koO~BJ^S2Wk`@9ubgFg2>p$o$r;wo88=hAmI_*;-c)2Rf1 zFj%m@UyHrd;&+FwP83yxmh`3Lh89U%C^MLGmiZ~&7iP|mwl69poF2v=83Xz&vIY0g z2GnQvPaW15*HmB3*cPlq;Y}05cDKBDj)Vuy2%==ar|HSe4iwR(`16c7J$_`dd6XvU}%7k4N4!~$5V7R1$Fqc;Tm zcQ|Cip19K)fpMwvghmesMy)PG%!ibnlax6%9^1b{$#Wy%gW`Ud{t4zQ#sG5AHlMVS zbsdByr|&(()jeB$8J}v%2no+!8_M`l)-`)l-dU^KdoW&(y(jgL3aYb$olBfv(g4;~ z+>R}fcQ&Ni4#CH*%~0N|_8tp}-OG2F_3?c8m>mSwn9CYH7xN;+KLj6lUc|k~&t^|n zBfsGbVYS7*@&e><(D}3;U&W)I3zPmsUJQ$A*7JH#%Rbr?8w})xrmfeQ$g-cG3b~gP zp3Xfl`@I8xRIVG+D!~p8a3&w`^F~F*vP5$%@_J{yHB9(#1X@da1DQ?9#C_Yz_nLJn z{D)Y+LIXxc?MkK+p3n-K-3i&_3F~=(1@#8#6NT6hYPDS4X;V(T&#QxcMcnGgfVI3F zW5;%r*3_km>rC1(96HOr;FZ$9tqK!*VYm@;5@n|ak&JO|#JRwH0$*9`lKEV2c^Ids zAm>vyGy9BX_j${Eaf`Vo<-YX+pEKjz91`2PHvT}c0N4bw-@<5PiZahSSXC_8%w(>s zA%9AJX3oZhq{Ayp=x~HF8m#wq7&XNl>!J8b=KvkNt#;Re$ZvKrG@g2Gb$3fZ7;CB_bOa#!w)**YW-f3X`2EcGTT*< zS%yY+=}o=5-&|PATl1CCGwI87mLGao&en?2CODx$4Q9|k?wGNI^56QVXPryIUp$O-oO+#s1x zgCYK#68(xg*I4XP+1G+U4|y_IyvCjae!LkY(QP{8d!t5Gk6FuO!J}oIg+I@NY*`V? zyUaanuvX359;0;)(OrZmQ}^nIekAo69kEoufld&NidOd8JkG{iI9mT@FDAOg(d+Jj zj^7TQyO3skMLscO$oH&zU+)oG{nz?n^u8T2 z_mN(53=Lne25tpq2=e%9kJ$I*zvQ39q~GF?2x`^7TvBppE?S-y& zfHu(Pv`x_l(n?vg3j)Y27<*|4_qNbC?%}rBVECV-bT^YDAlVn(+p=EC6B^@DQ7z^W zIi67uWt;9;tz}2vv8tEHk4Jww7gvFg>w6S`ukkn^3H?WI03~xz!23(}@HRy!YP@Fm zNZQ)wCNxE8tJwU6u8fK5@}>N*)8hV;eb7!C0o|~`oC+Dv3w42`@pbakl6tiq(jAM8 zTHNMh-Xi*fHmD!>h!0A+k2@J0r0V zi)oI~r4>pp0FAbV546XX(SnftTzo;|nL?+={_21Yq0zn}T#)Db5V@uS<7V_{L!XbNuRd_gr((^* z9%UK3$kO1!68>h|E#oFUZfvv+b`id_kS|Z<6vwO$x%a*JSi1uoi?ZYN_(=|yzO+8! zZ!!l)=AnMaewONeO)h0uwJ)LbjZ%3@NCO`Q4SYn|gur)T&!xS`f=3IHSD^8d&tzpJ zYk8THo4aD+Q(bYR;(?Ic_1{kYw@&|U(|^r<1^wOJ-`eNCXVv$E@e2ELMax9~W?x47 zqL++&h8llFahH}30fza-K zpSL)c{k%9npyqCI?CJ8$)jnSwzoN@!jThao+Aa5U{K!|j;+4@As@#m)GPiY_%`(OGCxPQZ-u^Y+V{Jn z_B8s2Ut`RDJy+(hvI$_0%$zFvjqhe|RbC%_4~plQ{DnN5@<&%(UGy%F(GLCH^uhGe ztXUa5kyXg=sp~I}mlVw#zjLqf@6Ysnd-|^_KU-fn>%^3coM_ey^+NVvWC`?N_0OzT z^h@d5roTs7yK2pv`%S;6px;N^Bj);5YFtcz&D@$b@qYKHdCrWV`P+9~pDY=Fj;qjT z<^x)R9GDC8k{hTNpC8VPOh|fjECBcbFM@nwe%PD>zf6-ZjtX};&%-_mKcMnw4hd^Q$}HXRA>&!-87%?y-7N2et_weD z2d*_n#Nce%s09)c2;d&+0!2aRRFS0erIE!BVxZ3NqO|Mt> z0@1%39s1Yk!<`z{JM=}*44ajl`nUWsSHb^K+;++WT33V3zsZIF3UjuBwh_#wkx@2L zu2;Ia^uH0;Ta*ugzM5kB`1!EbV*WAGOp%S4f2^->vi5!Ekt?J=p#8o*@J-V8Gc9U` zU!oyDEo|~=uc0ou(?eu5>_()?)L)q+Ebx~@4>bO&Ldxi!BKH@tuC}H<$kZaMC4MHX z7p!0Aj}uuc@l8@rqn$?V64d!5_gt|Zpn&{t>+xRE3FUexWLM!al~IS*m5cp&d`8*= ze|xq<$4bbUHp3=VDqqd_J5po9rrh01CMflfz$dQ#5s$#hZOC#j2krSCJP{e_(D zl`DR;p1JX~ug%z1>3^-WAdkcUx55#*jIw*dg$>2JF%Ul=*Ejrr@IP*W{{wmB!cO?> z>8F#nC+#WjTdzH@*G63dnlM%Qx6M2zc3+`2%Yy*E6|?>-u(n}qOv#=}bWxMP5NkTT zLFWqOGo}920%9GEeXU*V8XW&4#|-;J`*Vx!*<$BT^o)+&(r72_@up7N-+rg}=vLp4 z#MVi>6Mev&efh52rD@3{prOr(*VqByPYd>?*zlGj$Kp`NW$65P5`R&EJ%F}d%GXb# z{abv}G~w6FL7x|-tGx|@~vYN4hH zwAZ{>9NP7YXDWJK5)%fyc}cq|E7l-)*c2dYPG6v829Ug1~ z*y|!AP_DrKM!bj6NaL#s{jKRJde%LlbO!0;sAzp!#-p{@URN4(XLuE3r8*#+Y=rDp z2q~ZJEsDV_j!|0#yTxX|9yYYn7`sI(4v=w7k6w=O$w|G9Yn2@qG#z!5r>{q!w;;Z& z4K|&l&1WL_nE6k5Qxp7FdRq;JU<|<;kPz zpJW_~@C(LRHep}Zr{{-tF~>pHrrA3sYYwrMby)9sUdgx{AjeT(;#$~&EHj)7x!?40 zQMeT{K7Gth*nBlVtKt>0KgExC zw0qeO#6@8aTCum=5ofg>d$$SetJ$6wl4o}MlsCABsY}*)yjT1O)Nf@jsIybImU}Bo z?v=c~yqE8youDUN3%Oln$A#fCWxJytpK>$pmqs>$y%clH@uP3H9{NW?`}hm!KjUOK z!mn9p&BWLak2b^qTkU`*Lk?@T;bV7eyf(|tl(__L$w7n28W)g9^n2$}^i%p1gD0t%6D;*!a zA8V=3ItOuM=o6mlfS*?SQwf?q13KwW%z^N(LQd>&4Ukv2yB|(;A0K`*svbHmbH+5`}U0e*(~D-(ZK%@||w!=(LYzq5X> z5#vK!0NsZv`w(udD zKk=~@0?{cW3_zajI9W*n8{ik$byvV>S13mjd$Q2$-9f^h)Q^%GH&s+n3aW&RI zY=$}qp?!UnNsXK>@~W&0;Zb}~CwM)dF*(pTfTk4ev(YE6Y3OpwkHs|rK7zGL9iB0m zta0!q=hd9>GvhIeS}G%ZAsmYF%nq- zvdR&%Pd(k&=-z)u6)%Fi(}?TF4iD z>u7a3-;8IEBAzX4LtMfRmp06i7+1&;_%1T8p^Kt7P#$Ic+|lGwmWw>P2r?OL(<}%`+n0JRp!J=QHL0KX>PGHU zu>GAIE%0l+CYR$1`35>%Q;b-|2>P+}g1-s2hz0o?Z$17tW&b4iz_tK63g7pH+n^^k zxtp;EM}`}*j%xC=AQv@VYOFm0d0Z3h zQ#^advx!@*;cAW2k6`qHP0o<8B|jD8;s;AOCx{JPkgN7uazfWcmh6h3ivJW85K~Ou zo9Ek_bDSgEGvvM{*3w`ZVj*$1JK*!pdFW4>%~}?vEWmw*amF)=?$Zq45aunc_Udpx z2R4k}`;+$>xeay`tO=acfgBIrC**k-dAB)FQS6VQ-?wyJp^rhIc5%cT&t@e|U zFXm&fZG}z?TAQIv4!aZfUpr`RtMyd)Z0aP$N+9+PG2qRa8;&v#kh2gA*$7`B?LP&F z^-%|)uEKS|_RRO)5;hy$~!!-*@^QWa^8&eUha`KNT1aQlDI+0@jHCdY0+_n zW=qU|vxBvkPu@XV$~rj?a-aC3wqU+#@8G%2E%BElv1LpEFQh!k^}jZx4T-i!+ACgOs>Xh=ytGXIR(I~YrhRk!xr%=4FLZ@@f}R*7G|5q{RW zz)YnsBK9$Jwn_K}{WTp}FUS1t#eVhwEuTZ5=Q}#Uha1wfAVU}$ZPq08uMqNHAZxk< zw(ENE)jF)t2Ci-FivqHvHiA|(g02?R55{23S2#hw#rXG5(1qsIy}-D}b4pHwPut!M z-VEKu-3wknL(y^ZHS@dx=sI}DBXQ}q4!=^_(B-V;N#QE^2gMd}(0?qt8oC_iEaAD2 z1fU(D|BOv;wWmf6`Jv&nil-R+XJ0=>>AR@Ew)fiS$AAtc@##FTZtNEApjoY;qlFA@ zvXoWs^EzOckho*mBb|zfylK4}yT{e_EsQr%=WP*#NBe5(-e?o-6&sa(pD40npIB_) z2i`MmD)Yj}p$k4so02~tbZ!=S)tIOyE(eWdOwrZh;-E{7%i>^o#PL}iROr9+boukZ zWcoSIEnX6=u|@>TLBqE|#@+&(S2JiwV|F;^8TJb0BZZ7%uR)x|lfkp<@0ws0&M++w z9xi&1sdta6pY_UltWo}&>`4FN9N&Y#A^(o@A9nP2#AK-Qyt#iwusXE{xi--zoT;Q= znP>Q`GtI%a{1(VRq95aY3Fd-yRBRk#YvTRF-yeg1zFga3#SQ~Mw>n!cbJ3<{vI5oz zV+-mLd){oH1D@2a&fm(siY&Sb>k~4Nk|XQ2?}c?XK^|-hUxN%^4%!R(GlM;Vb+$f$ z4*>S&g4>O`5&55IigsxKm&7j6#txkbx`p_LlKr+d_Z(!$ZrEnU?l14!6*fc?%RpXQ zz}YylJ4pNGEb>XBR1s~&a(i6duR2jpHI;~+j0+CZ@0 zzzZ0w-I9V`#G0@B3V9_5xd(i+B_^My4*{}^Z{#-4%Sg}*?0tJI`ke^Xsa_d+KAX$ zWv^0wAU`jryJIk}mC%d!f=0`GC61y}^{EYVNvYpTY}95=&?l9=qZ|Ilsp{M|{h<;A zPdQ0wlK7*F`&@~4Ll$!@q05S$l`*`cJD4~d*u_KGs=+&y{XQHDSrD=x=72JJGxtx1 zdNyrfyYw6zpNPnv#3Z0ELe5n5o+niO6S?^c^}MuiQMdzs1ktf&&S-}ymec9;doZ&H za=yf_=`r@YJwDIf*28wT zT-nZWCQP4oDW(@nM+QBou1LFbeU5vXwl>&=)n~OIpreszT!psm!g|JBf|eE1qzjj$ zuLrP?%y~e5Hg*NlJc%I^|FqFn=r<}}8)Bbn%;M|^e6vDhj2v0&PizgLcLk&epker2 z2;hT+Pl#uy$=_wIjg6YsS$o>Cp9Z-!$^c|B}5c*K5T`1ndWnk)bo)mXsp0e}AdUV69*bw22x1Nu21x@WP~Q*I3%>KZ(l@zgg&VH zq+=V^m^`ForM4k{vkrT?Z(F#ZnxH#2N1)9|tOvwL!M9C4sZIG*$0CM+ItAC#ROrk` zSMmKPJ>OrJ-{Y^bgpY_VvOAocH}Q)vVD6g1|446#z!E3(T*vbaN=G3dpxwdH@1ymR zbA6vDel(n?QP0WR@4(!&V61ke7;DKrTmg9qeF9IHIU20^oA?^cp5%Hl_KpdVH*xks z)54Z`0(?)K6}}H*L**=0dOqa6#CEbFx65ya@3%(rtUa((ARY(tGvZ4yv?uAuW{g>z z^5dd?j*LfVio6&5wO7|%3R>F@S~fCjMmgJ5Pu`)g%XyUvu&epjN0Cuzqcg{y?!?Gw z#!R>=ZxFm;BU35w7M)!*=P{>j3~cpEYoK?zJr`LfkYNJP-edXRCa2&ur3WI@c3JSL z@YBI()7J+d1Cm>RTyM4RaxNpP8L$GU+i}`FeQT=V-kQ489c7p0fw^XV-k#&!12nbc zEZ3W05Ax3PiQRUxCD?TRvdq0a%xg{G0#vmyJJCjlm-II*I~bY!BaHXuz=%uPKXs<3 zzF{$A@UC=gYMWcIm^s+8PVc??fWCS$-f)_KlV7IujPtHB$Xrfrw$VTawvaQ+)cD80 z^30_r&rHF$-5A9)Jl6LO^!`?NGRAFsD%RL}gS=CHWQ}v`om6_Hb2>8Br0hEs4&8Js zm%a%2ZQr(-`zhx!EB9{amGr6MKrfvxa|@{PT8kOyUP)hRpNCA>lC|}RDF41S$jhNO zZ{YI}^gUPGSBA-5%W>s8b=Q7<-}QQA9dCeLo?~9#L4MAki8{XHpPGLYKlOQD;oGha zYQnyEJnr)z;?(`LV1LEnI zkkM%!mVVy4-2Ma*Sl{)(p8KG_Iv9whhyB60yAT)hr`n&jKb!fieUbV;C;vhF{LGEH zoE>Dok~`m?otcU^&BnDQuxn4TKa=@%=7P-R43PhF_aR5h`I&LJ<03oA-jur;`7oBm z`~5O|95P>>58U+&GXDx(+`;yzanHZn=b+wC1A%{f{Ho7VX~n;0W(9oiUDzPUp+)Ij zY)#DpAw54EpHo2eKEXQ0%0SQA7|(J7=i|=Tox_<0z-T?3xh!)-ZjSv0p!vQ6Jl=1i zy#@R&K|JNW3i_8oD0bYRi zXIM6}_Z(*n{5r+5x5VNkGC{AL0{i*1u*cIcRF{FB9W=iKvJLEvDu$@m+U#$Hyx3+5 zZ!I{+x6T*^=pI^sr_FYQvbR-eTb=OkMt1@1BR#OC4-J3k9#FDdAy)(0n0%#2FwQbJ zsrNP_eyYxyg=^$7GTsuKW@0s@&xX%S96=N@W~W|ZLUqNaQ^3G%#EB#-Q1k*<9tw_F}|7C&{y~g-Mz}r_#DP~TOM++ zJsh%8MYIkw4&^Gw>@!ZTB}Y3A&xgQ=10PFgSUM-<$y;FCq+La@`jo5*xdm$hF;B7< zOsvlstZ&UfG2aFQ1m{%3ZQ!5H>7iQwGy06a*GcZhS`OUew6yO4>v<2&|z6v~H*jA8VJl?9}l7-ZRz}uv1KpRzU`1yux;cLBx24A+UW-37>}#W;uLS z!1qydnmWs%&b3K9mpegFtImDQ2%AD*$!A;ObJ>7BTL*o=0c)$#g2Aw8DpYm z#A#7SF40{;-=5VrBGNpzX{Bn@qHueD2L)UVPNq*hf|F6 z{iXSe;Nje!a4B$+*5dC9-^Up_bylZ0W_gv;qbTqH{YE|<>p4e&bd~?sN5=ht_rb4WeKYgqVLM5@4*(P z&i;$tl`acHM9vKeLPp;}fZCX4W^ zM(zc-8*%{eH@JLeohd(D*rI%7a+ZUB2F7ByVtoo@FwcE za*k;VY_61tlD@4_eKR&Z!ES0r+_LD9iy&)}Zx~u9d`EOU_*38$5*lde>5U5WL(bqL z-UVZ~Qei;8pS`bT++?2?%}p_lHS-igXDa2D;%giazHEGAv*5ciyeQ$BNBA$nS9#vA z6FNHW^a(wZHa!NP?P|rZ$KpH*ZKI&Q(3cI}E5uKNzh4zp=b!gqQ2G)5bK>_A`h6~9 z>dsYX`YwgE<7;sTf(W))7qXbHWz-Tjs9A zmRPNt;M`yt;w(g;k~ttg*-B*OI-EOZ|DBi;d+pz+{rA}X|9#K@G5i1DxBdUv{QrH= zzp)Df2Z?r775mVPGc3>}p#ygm$@R@8SOu`_LO-URTH^eS+=|#3rC*9nPwb*j#M0Cw zZgizJyvPnod-KtC;DVjt@f=NdN^GohzQ0(;OK_GGy+Pz*Ion`jawu1=5}91Z7!?rj zM!caF@T1Ts-HuqeM(QK5FVKGR6wbXgr(eNYQ0;@V1Sfol>T4ofZ$)g-Dx2r_y5iah za;oxSQ9qgjS+-cuItTGbdji_JYn?rQO*k}I5NVr@I)^H9^7F{~@~AD>3lYyItU=8A zh+tXzIh;|Z{TpWo*v>4+@=0~BLF9DGhc{v_7=y;xhGJQr^%z;b$FB)cUxxDGbGl8y zQV*vDFCf-`1I~{i)CCYzbQIF@tT8Vo!n3fLtlfVKwX_Vw>8c&!vsjXA>wRi>-{dIl;v@KB(gO zDY2C-S7%6oDS~*B4)G}={&BO$`k=1~G0E^_nz&BRx17B~+?vXz1B@!0=b+%bf{!kV z*^>Cg4qNP}qJQvw>Md8cf#l5G!}-B#PciqC;Q9&X@mj2{(sN!C54~L3RV9XN8Ek&_^pp8KLnmi-80XZG z!dW&Oah|Z>mYy3FT>UERe@krs|3o`Qe}4$RIoWGl)S3U{IL$_Tm-eTMJ=C22G3RZX z++FJIp~Tbj?4i+l&6-ba4vg_l&g}>Wx3a0H%~?aC+qB^({sqB>V|!rhpIc6L& zKNfw7aq|5@TCz(>42^Hh@mp1h}4rt|a!NLXL5u+|v^x zuKA5AoG(+p2xB>3Dn5K< zjxqR}`@~oInjRHFW%i zV%(#7nWiB#c6V4)cAO^E|4>jcO z1%?l>u08(UgS`cQV;eiH_*0H-Hk8V9;1Q0*u1kzJ z#|=3plpQ|OCkNnd;7_Ztr*b3t2ow=e#JSy2aKba;M-IlZ>!B~D!4OWP;TiXk4p z9b>_>y^S``ho~44IfE;7s(79UtGYQ}P1Y><)#w8>`;xd&;zJbrD(#>=n#9c*`*QJ^ zFrG{N?g@U@`-x>gI{sI(riB)WpIG*U`1*`rL&{dGebQaDPPt!0=xbNvqx5>z z&yuHek1PW1i~I*eoX78_5#q1vl{=vS6}M6LVxk9{vo~gMaLsWHnR}{l{FsVuFn%rU zGvsUnexC4d>4V7s2H(%%y&Y|=1gEvQ9bNG*g(*zD;;E2>cHtb?ISLc6F$Ar|IwUPU zhW}}3-rrmPU*qdCG;LllO-p=Ylyl6Pqhfw>G~Njwh}f0q;71f3ccbeGAEIt6v4u&D zLSI^$&{AoeIm?&$BZW^D5OciA!PyYh*$COI73cjV_e!64dgknj$$<)NO2o$q?^vj8 zH7~|fVEcf7)oBLqukc5nFR53!5ykQ}>+Va36a0p4c{zjoUOB9V-W1EYlxH9VV-I#h zmoPG8W9BGw9r{T>AY)$Jz~3NG!2c?8gZK;I&lq>b4#BKoD^VDtb}XqxgriG4%(Jn`y<&x<|X*zkyl%=o5lIG;}2 z;=Je*=y^W}Z@bT10en+pEIf|xd3VnM5$E#^Brm^&R?M5JwFgT#ZHDF~Q^!-Ms>`ccK@G9fWPBy-@7aZIC;dW0UwP zjXvcX*6Ar3O!`Xu#c*}r*2qeUtuwI!iJX<#h(tFyH(Z^S_$i~0FxNvh;-?;ScEQGI z@>Ef_leHi*aK*l>14Vu?&doubgG$a(wK>o;9OyBj*parnQ=yBSzR;HSw{&KMdaJkT$ejr+u=lqm6&H4lO%S% z@AH(4#aAP1UymDPx=nFK^jpZD9gzQsl_mX}3O#UWSOdFKF`EQ z&6rUhJQ&w9hmO`Mn{l?N32Ul=IJq6L!L@lqR9+pf|A%0&YE?St)xokNd=j&+#CJ%Y zRMy<10sT1K`|^GhlP~MC)J`Vy`2mcTiT8d5>wFsQT{s_&J|M@LU=F|rRvNb^YyT1d zXm$zMcU7FZSz~M${mYbviJw>PCHs(Z*|JZ$A7N)xSkiSa&(;$os0)8#M{r)ld2RgI zd!yiJ0e)AY#TjiS&=4oICDRr8`LU52X5ig?(7o+CH(l?0R1Pup zC&l+LW-!SId&GNy+p|Kw$K<3jZ8OKL7sjyO{Dy%oP*+f2BW@i z;5^E?GRZGUOz5unz{)jrP}Z&Zp-EE>&nor<48eH}*akrpi48;lzhDu{`{|n!+`>zG zX?z{9tCBc-V|((8@)Zc56l`R%QL8x4-myyPM}i@P^Ifj7`Aa+n?McL&l=CEJza_EQ zlDnYPmYST~BmXXr*$_Kty}cHEi!{x|3y+0Q3FC#h=1z_E)d+0K#D^35k2yC667M=T zlw5o~A4p6F*i%(rD5<*+xC4#wiA&vLOB7kk%)|4@&1-A|W{xCxd%-Q{RY_c{dEei* z5!3F@xflaqF!!v;6+7&Ep+l30^URW*;h3i}Wmok25RN{Fi4CF>d7h5WpWfS6YU~oG zZdreF7KXHuGQddKHphY8whw!n@u%?8Yk&A#h zNc3g2VO=J+bJIVOf5e6<{Ec?>B&SS`SLYJTUHZYZ0>o1<-jjuttYx#e`sUUWoGHN< zWz5Z1#+4&BeLHm8g3a~Vt?m2bM@rU$*j{Qucm-QvAF zRpG%F=YA4tGCg!<1>b2Iw0zbIvskA7eNaeKY)@YkO+cqVcd;uc1xcSH@;c z++x8CN@OL{%zFPu@UwFuFCB~@%ObazvsB?eGC!>3!!4Z;v5(2xOYrHs;frjBT^Z*# za3+f_;2Y3`YYn1hkghOqCLaBm1+bdqDljDa~* z&UqTCVwFmj58LteOG0NzM@?Iq$NXrvOwJi{g8-NwDK& z54CA50m{>A|L8qza2L1X?Aq_NKf}=Mgh$}aplUa1g`DdVyal#h_^n_!$XJ!eK!HbV z%mhOph_(F)vQRxkIwrYT44)RBSjb5`ma77`TI=<#7weLzVac-WUfiAG-co;%SD9+HE^>%MlzLv5qx1^2?aFnL2R-|pTA-%z|y-%kmr!TfE)2_F}xzpJJ z1S)Ca$5L!VT0dVvPYOQU-)c>8CZ~`ejniMEf`|Z9CpJ=MHyzYLay# zKJocX$@8K6C94pmy?M^Fj=ICGOI_sb&Nt$j&u6BmCj%iWZIAXQ=gVx4!ZKi^T2@xq zVOcqaX%%{-{ZoO%p15kd$&6oxL3_iAvMu% zw#KDzP%~gqp_Y5&<5p)cMrTr-a~iF(U~L$??T(r48L2b9$?+Vw%-!U6I(ywuc$dbL z)4B9d)jT9vP@B>h+GTbN5WZr6zH?>9^omGjoxlVm9+dRxID9ThkJ8g4LCGTi)lxl1 z`_+iG12Jl%6{kMu{5WG-FY9aN&Z!~CbDtSc^xm@G(%)`!`K?QTd&3=zmHTkW5qDEE zZ$0Y%e2O?-YcUsm`x)LfxMNsK_SrpLVQxJ}V0x;>@i1;*OVy-qMC3(X`Va1Y;BkBy zYlA3aqrJD(JbXmew%@%ie#4jfc_Q46x%dZNekqW`IBQRY(=o57^p<`%kn(-1g&*xL z|6XtTZnUdhzpc#Mudvci)$RPbcTuWLubWS&%2IKvCCybmT;DIf8lmr=R11=MX>voJP9v^!HF+WiFII-T84ty)#LnO0_qG{^OGwkluPTmC&=evK-B zptt;5UH&~)zO1+W`?~!5s{HZZ@*n8(>s0yr-ty~o`Sq&2S@-T%Z*n@u?zt6wW}u=Z z&**kvr{-Y0zV9}#E;YcbOixM~x>n{+2Pz)X_l98>cIu~opjP#6{nSsq&so1DHOJ`e zDXI5OeaG$CpPSTs50zZ^Y}vneVhv7G*9X`#p3<%%`uZHtPhDtD1TNj2)Ma*E`fH#r zrr?39fn`~XC-ZQb}`V5=2@0@{p1S$LZHdd%yDu z_2f$R;PRLC%g_LN>1qD&DZNEEbB%!&fUG^ z%>93pDm!HHjf&!`m0P7t%M`Eqq@wooR2eD7C-f?RQ{8)~D(|truWOLfdvxi_lG0!6 zd4EDZxkUGDzv4PG6-}?zt-TX6R#}?!O|Ez=qzRF0Kq)QK;nlspdP>(RG+={zZ@2Zm zlK!;mH}zPrS(H$o)6c9{?f7F!JFZskc*#7G=BU4{YCU9Kt82Y3PpY^_m6BpTl6p0~ zIR1;~LO;kCaCM(?eN)}R5jAw_EcN68RleVSOpo(fdGbcvk##US z^||;?r`$io9~GWz*ZQl2{r)HOR|N8XnZG*R?_U|+?7tCQjnB9Hw>SfUGznCslILAy z1AG-oDP`m*sj=xoFZL#TcAmbs2hZ~P@A!`gSNW&=KlAtd4@GnQJFMgUi5BZv9-I+g z84yHbr3~RG&#bxS!qf(<&r^S>c&Q>zmR7dE}r_{K9 zMI*FQu5i82q<;(zj(*u68cVW5=a^Gjtg@8M&JvTj-aywn_5K1@SRy6De-Ildz zon_skzl}|uj&Hxv@2HJ;YiaFt)snk=%S{VO2P|u`E?d%Byv)TqFMi8SYWt zlkbQ7(EG>LQ*XG>_^;M9D1%uh@FH=QKuyE6KYf4yG4Sf6e)|sA3yEnV!C(DEB;BFuD{v}TuS*L5b&ATksXx-^# zzzfTq9qvSXcZ$4!Gg?HdHVB`a^}UwWsoHr6`;=`v%R3FT`7FvZ-v7hiyTDmdUiqT6 zt7_M-cR9v0qXrXj<~j^E3CS2`6ecDbLl81Xy}6D9GtNxTTt`Vx9+NrVjC0e78bLZy zL!uHm*})i58U@7ni>7Iyq3LeB8$mz?9|%n&4*_{}>-qn`Ro|}KO`~Scx%YP;4ZrT* zk9vHyzV)rOzP0{qtq}Eauko*`(3EoCFkV&1XYxwc;*RwBw;Im@i2Z`yAoh`8DU5VYJn=N^V%P<|cR{>!5N^gQ*%0rVR8 zV@K?3ll?aN;fHv>P#w#eJ!1d6e?)P2+4^qC5u9Xamc5G=(S*^T=~ARM1>(cik*=+xza3|>Z zFX=fy2+48(XYQQu;hfv5u6S4at;p`r_+N-`_Wv2zn3EnQ^6Phs8l>#wspS8DxCl?P zC`XC1+Ef0K`*o}yRIkQbpiM`vH3 z<$yd(tNbL`fYXcXt*tiw7__%|&DQjq&zTEM%7l&mo^n(Aer%zPf>W=jPa}NWbAnN? z2Pe|ovEI7bddKFvKcvpvXDwEoVnE|lBW+D(xbV*@Md9Jk7rvM5@Viy*=F$FV!*i4t zyw3lrJ-qOsO%3y@qVS!}%W!oy`SzzNRezwU`uX&V&sh&yOYp2?(t6gim-$bHn+({K zL6<$j9IAXOQ|-^F(O!~XU!L-^%2nvWxH`KxsP(P%ia*1SjsBXB!dD9OEbfLJ?nD*c zxnfSju7}kA&*|~glqE+$%;oq5z9kew&SYm|7vWL5#`%TyWmF*->+}ccT4Nahl%9X4 z`=9Jn@VX1$p_d_tCqjeHQy!8V(rV})sD4vA@;txHRMgrB8F5)KKN(>z3ie0W`{i^d z#D{XHI_7<|`qNqI)%wg`ic@~6jv8AO>*sUs50vgLr$>FhaB;FQyv{tw-|uS+WgjdV zcr?^`pD&C|^z~(rwKV;FNjir=3`c>&&!z~6g5Q%$1 zdOhsw(^sTG0c*J64lNeJYb#Sf%rk|utGVZ9SL>glLBXD9UjTmQ(|#o#!@GsACcDC+ z*k4_lUX`3nE<9OzL}`gr5C3g?JgR_WjMrks*^d1C{mu;COTg(@n4&#ytejcKnYUJ* zc}M!>vaV+1$*(M2UM!>P`EMN?Qtle#P&g&5iE4mmIUG(w)>03UZ;L|UTkvT;=v)&{ ziF%YZ^SktnQBe(!tH<{T)fx3T`}6qGSK+rc(NM_P`RN(|hq@jRG9k{zd3^P+c*QH% zhd&5`q`?nI|4@3yL11fmm73_ObaXY*dC?U7=dthMOn%2R>eDlB2y1v1eE-9USFVp} zk3C$O)0a{z?Zek266-e-dB0~XoL9bvfsRMdGrFUBs`fH)P3F_6NAOIbda$cl7vs@= z=>H~o67(}gU2l#P`BTaGaG@bF8i`fnK1QH=FX~vO^k^ksF^gF?Gq*!sn=x6*Wy$BA zWPQ*j7ToOK2!Ddcqe%Q}sp`)nI91k45ggbS)o;5ESctMc6aBnrATMk#YDmbvGwcm& zCZOM!#LOfPDC4}^PpExC05#r9PlQG z`KnhV_R5^{?3sx-(0wT-{*=Wjv;2P4FLdT2Uv;vo&)((DL|(}aD(JHr$IE4a8o8PL||hHlrSFhI1q)F?-G| zpE8f3l6bk`4>Jsx&i`Q^ZHEz}7cgmsJfaf&hRsAD9HG@}#12;jqd+VnX~$ap+BVfUZ5swTN7szW$4@7yep*e)S(0NXM$8=+ zJaKOQpx%YV3TFcsDr+k18OOMG9=DJm^Ema~I!;KsRMw=!K3v3DNE|kg!H_i-3EmDmp*>#Q>$QaBTt z=Pb4@y;Rww8+24XCg!AdfXB1GKw78ZA=G5ieX9kZ$5=3H!0X&pVtE9^dU~L9rC76s zabv+|AlC{sdBo59Q;`=0SI7DhPa}pu8T^j>JEQ@4QuVsZ*OweaoOj6D6FMf%8roes z?0}4cSVfHu$Yg0d>PM7K=7|HRh5AVH46M1+7p^iVhwQQ4;>#K)_FecOUjun;N~6tw z8Y@;ZBA;j8W}%lm^6Xign>AlH7KrnZ-n2^;z6d-D41czc1z)nF;QLD={D41KBM1Hw zOX@7wsk*6xNy_SX^LqYqbpR^yZ|DV)KO@q*7lH#^jvj&2OKD#xtoL$o2Iws^v<=t> z*1llRKdGrBV}4YPxxWks4x%WyuWGq1aeR%{K^+@~`)@)mrw;p9RecqN54p}Y267Dg z5R*rM6HL#O9=w@+&G2fy{!7ToV=WBSR7U^$dzAcaOy*Q@LQOIBN?KQ3ujhO{(B~43 z|Ac*0z?|gjfL7$VqjUaQ6V+Gu6Q1Fiq!yO&+i0a9n!&f7kmtH*pqAOhh*ho$-WB{2 zaAit%_m?Sxh2mTbE<ueJ#uyKKE!=a2sai515!P=|FJm`8jw#| zi=qEq@IIQSBG?Gzamtqg>?^DjEk{H~$+cKRH|@6;v3~JNZ#LEi>oSc~e5NsHl{p0l zTFb|}SkvIT91Z%@I@KA|GLyN zH>11olkSb3Uo!*YhJfd*;9OZ7RTv9G+KURU18Gy+IH2M(}tK zetx86uINSfsMCFYHo7bPvEfVhC&N6RlQ_&qV3=4>pY&+9d&36YrylQD6sAP2kd0+x zn2njxOOs$gHZNY?MMp)?nLrezH_6vtvco*uBrK~rjPq_(!g zTkmFywpGu?Ab@Q@S2M&Jck!hUKAiG$SF;+%;stDm(2 zwn!N=vz~nrfsbF2Vjs1PSz*YW(FWBrhCIhP%W6}}+&0?B`pvDj>4xO6iP>DUeolUl zEA&pWqoOBpFVtFUvuM}Lx|8)U7}xcNMfLH0v=8tCIbj0V#Cyc)~d5Iq}iC}#F9?eGTJ&gG)4r?MycO#|7! ztnXEhIhTCKUi3C5&XqO4vEM@dE!rQf)5l(w>w$xox(S-*6GG%pMh~dIBIt8w4hey8 z_BWy@bC;@_&N^0C;~I03`yn)vF-+-KM-O=dD*vlKWbUVyMeS)_zL!nTgUAi`jMqJ6 z%jmx$^ZD`m$jWp4Tdt2RuT_IQEyya+ko~V^t>)JN_Ob8FPelxi3(CPE+2<>wL=DPU98WTQ{m&bJ`z~^# z!BiMvl~<72TzMN_Uqk#bdfnyiCeoz=e3IeRGo96xpk|fwe@MPdWiDaA3Vs{1UD>A0 z!<`aJKAK==nG+?oLE-a*{h;mYPS}FWQ9CT7f!Hwp`vHq?&h}W1^lcTz*3$lrCzuiuj9*A^zD?kR0ek&o5=yiuP``Ioc}(^Bb8(E#0AjZdEw zw!jwR=Z`=~uR}efra*cH^dEnJ+;EjY4)!9SuLHf<>mh$TlE4=XaX-4F?%`te-PQR* z*&g8-dxoLE;bhpPy&>(hY(7PH((gu$JbTHuN5EU-81Mns0_70oFm!xJLF_n@k3uKu z6+)gOc3wVvOx4?E4ys%ec`MKZ0kG+$z3d6a|B%j~>Sss)me?`ew^Vou-|4Snz9?bvmiU;%m2lM|Y!9J#cB(q`Z>z25j*kFVC|AYDe%2%y=qOuOe zVE+GL{{I8nE#*E^cc+lhd)ZyK9d^j;+vu0HmhkYKDqwB-82q1nE#Jh z9c^{^NC)wMDJ^b9oEQFS_r^i|AN=^N!8M5gyGq3x2l0Oz(=&+wlQ_*F{_jy$n=v0d zRIx>cpBTjd4dVX>@qZG>7i^Bk(hcJO2JwG`_`gB?-yr^v7&49Z9K`<-(>#d(tHSvJ z<0QQ?2l0Oy_Dx~1(j109;1aSNpF#ZJ5cn(x@qbloXb}IW>cD4M*FpT>2K1m1{2wre z$R%PQ+I-Ft`G+~vd8}X-r@kO0hL(97PoUR@^k*28)+O&#{!_t`*1Lk|WuC!iUuwIf z#Ihzx%i`ch$jlTjoR_4?+ z!>?a15nDYc+z|JLE7F`S;Iv3 zI^fLPWiA7ArSkn_o6viu%^VI~F>$dP*S{q!D?Yd`%<^31d6yKj=gs(8az`4B(J6Lz zOjs_=20gcgDP+PCt>slCF#IiHHoivG z^Cre$#+J{a@%=`OwIy5w?EPfq3R6~%Omo5XxK9Tk0t;T%6IgP{wcoj=uvXHMQ| zJfx~$GjiFHlYd*9H_F%SVRIC<8dy_eOqlOOQ})K7|A$;p=9t%_J~)b+5*(|Hi}F+6 zlZFG)D7(%;H0tmththWkHmkut73Zt`kFo<t?a^JTI_TNgH~}WVB$70InO3m9!Tg?BBb(-Qef9Be#(+vZjaR8+MRyFn{^^sb2GPZ{oOxuQR$;*CXLG2hkJJ^{{1hE=c`xdHC%Z zS9_xA`qA`T5Ba^)UW1%Y(ykBr^O+vX=pxTkE=)mM?rLTq5IjPp~9jFySxm6B$&Xn*G$fORRw9ELB zdRKT&Y#D7gF}E{&4xy#)@6i@h*ONadM9uE`$R(cxc_%%M%CJ9>Z;8A^*uf!lh5P9~ zV>aX|$1u4Wx^|JjeI6W2t25@r7}XTKHeWTom~hu(Z9*Tc+kUTV)(^Yd)z zO!TZ#>q(xGwlwFE{S}qmRBKf7tMonfnyd6mGDHW84nAYR9M|kVnpeaw?|>d|jyLD> zdPhdB{p?0QV^dY_rOc+*d1NZTsdReyH1-%x_LT62bo|Hj6>ZYZs>ip^9c;6^(ZiGZ zT_aI%A@r9QWY5tQkBw;iOJ6+6Cu{+KH95@1M{cNky*6w`&loLNo2%sNZuCJDIu6v! z?6`5DMpFl#wZ)ti)Ut5dl>4|)A*5&B3Mn;WAu36fYu; zff4(rG1iZbDDjO^{@IpaL=j5Agp)kuWYZ|1eTMN#^N$LqWf`{lxk6aLz#_*Ay$BM` zw8AJf{xtlo8Cs$7>F{hIt3x9S|Ii4%(6poT+*+fy|BqLTTb%gcJb!BNCF32hE&P)4 zCF3-Q?@s*x8^&G5U)ob0eZ)76d+aN1zWau8r@gV*P}JXi{J$3(KS?gP|G@cHaeMd= zenaK{-}UwcQ(b+X?-<`K7M$-uPc{T!h#D;U{CB|*f^)(;?>oj)H;Lr4E9`sh4aJx6 z|748wTSoO&_lDcugX&qo6SRe=6lrUcFSrjBoz?(*X?iGidHA{R);;O4CZn(IuT`z6I=dcSDLBTf@oeDxbZqRo)ar{3lGzwyt2DqqEra12p;wsG zuH{R)RAoaeTaNZ>>IYH#a=ot$`8G@8#ML zsSCkgpkt!N>YU%ZE=1Ip+B4h_u?CvRPS~;idNi@dMUypA$=7lzi(iZVO@5dZb;Zx5 zb*N5|NW$f5sZJ@T;WZ)t-LZbI!K`bk)WrIEEv6b?`8UD9M^Bt05+{ee2a z0XfLigQLmHgu0u3=TOJQ5&NMN*R1#*P@`$BF#>y2)(Ch~?Q_?{@1*NzaE=+57CSlB z1E{f++6SoJG6b@oaa+i5H{*bXb#6JBZIZ9?yb2Z?zZbOWJJaYEu`D3D>$c zVXMm57F$7Tt%%*dsxSm&q&-vPj5XdpdWXy{%S(PV3EUl|FAQYzcUca@>pkBWxgRE@;BK zQS>eHGws_Do1T3+QD+E!tz|7{y`3>X@i^sA%GX6?{&X4oTlr0#F;(@5xMvm`QP*ZR z(sEyTp&q&D;>VZ}u?9<4LxOZoX@#}WWTFOv&Hc{RkdNItzX|t43*8R%Q*HGqvvf~C zv5{G8s0p-_J~;P;WcnkhAyXS7EGIyv0iaI4&Gr!k7XF0rF8ytIcxJ%iV)v{*{>J-67 z_w;@&pX;h?P5S<`u=`fT-N71rxO!&Rz39RoTHPpbt!>L&19#wR}N1CdtR?$`NX z_ux9b=ESH=`6JHu+0%4h(h{^5FAb&7_tB(Dt#8Cd)4$^1KAJqQ-XBXIHAh3H9QD`O zzF)>#mVTkE(KsG*f`00;uq|P;syZ$;ew|O-m2!z|KZ-cs#j)P2LhhsXo8bIp&!K8{ zxguZNQEy>wr7yGYi!OUCt=szZ!u$kt4mn1-MV^ryH)iqP~)M$f0eb+GXEs6 zGhEf1V&6~5HoVvMJ875r{z8}aL_{944|*qfMr<3_KA4O3JqL0E^QP)!h|H|;1?t_> zkCX4WT()_L@nqFD|?vF1wwNC(o<|W=z z{5<2<`nCQ7_c8B~`LwsdeG;GC>EGl3#6M!LPHO#w<{{^C>?Qf`zoqYZE`Of#p70Lf ztb_Pjg7-hcGcLwo{wxT}#?wZfF~cwlPT`*lQwrZl*PC06a(u)&;2d<^aW)o0+< zt-&pLHOHA1-eLa2nF`zCx25^!{kXy`_&I)O-51ry51`WgozZQHncNl4^`}O+2Ro9T z$wh^W3kPw<+IW%myV7FofzpG)0d!A9kCC{^S!phJnlNq~uba#>j8z!pa{CFN{UqdH zZ?XuzYEBEA{dV_L;a?hK&DFtwE}Ry&2Se~~vw2~1QanE?1nogz^00+w4apn+S>dp7 zn_nA$&D(9bsjL!a|-cjXL>l_yUm|q7UH1^e;zc;$z8r{p6i@j8s%Q(tuI{Y z-J;H|4Qi8S>mQ8E6lE7U<@g+2$F)4iGaoX?CCmL`c!uTv1*YdLFfRcmJad7w*k2Ye zFzbWgMAM_%WLk7r)a`c%=vh)|F1p2ndy4f}R2m(f{iB0Mpkb(e8D`WdvN ztHqT@2WI0W_X=YJdNO>mV7MP7?oTb|Dz$mXl@vDr-HCU*;F$+i=ZQ z_9|;NX!t@9+824(m+tbHT89eVcrGlGc)io=wgj6XRnV~^9g&`$^|(i?nyZs>$DfB= zA?ZHnyyNlvQ}M}ObC0vf8s&`g_Sif9%OTl*WHyzG&Q^BlEGE{)=u@(+bedDLuC#~P zLGgE>%xGtOJkPn$s}0UIe`{Wo%=YicT+Q~+b>`V_QX7oMOpP|}_*`?e^F?pAe=E4{ zljb~gKEA89N1L_ashg~?CX}1|qm#jp5Bg`qF?D)4E&S{7iKr0X5d6ZJU~*>AZ6lr) zj=`8mxldTj6lE{+W;tK+&aqm}3&CA&pwkP!6F*@;5qu^&29CQV{)XbBiQuHK9^UM9njOx~_=KyV7F28SJ@e)gejL|+)Hjn3Yk0EO_nZ!J@36QQe;@a6F1c85 zQ^P;S3i}D3>M4xwBJbPQH{-6Lwe-IgLU$GV%tYv9*kCsmwt`a@MXq~!;dJyU*?={{ zPrjReQgA!%iAB!4ddPmiu1Wp~pM24~DX2Bi1z%6a2&efs**67s?o7@9^b0Axqz)#KYlm1HF@rmFCf13ZV$q$kl#xm<$##cQ^7jpuxw#{DyjyM-r zbIsA_vSgosuIZM}HCN%&cl_06i;_ex?sJ~G6?8n;y2LAEZd?bi&1SnfxX8P<)Osi`XIyRmo%0vPA0+U%8t*0nem}0H+tubW zXqQXvui$Q!a$oS~`oA>45#J4cHP@f5-v0^o*FEa}uhjc{v99L&qn%miUEXZ-FYx^5 zIlsW`(V+WW|5x~AYWT01@j1a?p{Mgmvrzc9^A&WRE~AHxVN4InS?5Elo?n_8jdHv2 zOs+*b{Tvj0+ke%5HIOHN72oW#cG-K?`r_JpACx@me*l^t^LN?1K$EAOJ^tsDgUO5T zG-oT;ebi0Tl^Q@-#EW9>zx=&4q-x7^4$=;I)8Sbd338@GIQ?BJXX?!o}Ws z&Q^3_x*YwnuQW!wlr@hdhP(&TYIpGY!UChE1n()je@-mc*q?9<#aZ^y;L5@WAmV|f z!x)(ug{#aR$*BhRYq%$8cQNiNvwJS)Z>Ikf-2XPr=S~^1 zj@asqa^5gscP@;#nr@7D=1Iv$|H611-i>lzx7&Sweqp=@$MWBSWUG5c@pANv`-*9! zzsoiFyi-|SjmB!RzU06GewX77&Yzf_&c0}@F+YJt6>WsX>Wwy)F2L*8+kKVZNOEw7zd&*bPSu}cbS`MI|kpuxBH@@ z<|{^*^EK~a^fj*wpYU~Ua8mL!|2t-f{WDzeKy;C}rdSA8lrBQ2@}gaI?}ALM9`doI zC)u5R$^RnSCh?mi(N^%>(P&xnT5vRa)p^zYj!{OZ=zY;ajDt^uI<(G#s1`HL<5uH4 z!+zKAQFgdt+yg$m8#-Bd>>TS1V-{ZDulS7?$}DphBn0pDC0M`Hq9>p+Yh&u$VfbX8 zd7pc4a0+bd1$X)T}g^%S+{W8Fd$A|0vgmHtQ zo>4NasUCGR%$-zIUug)3{;$CoZF2IP@dD=@$l?y`Ug(FN?j@KJC%zZg+3DVE-CMfX z9_22uH~AgGHIPpCS?^+wI)eMG`|KU&^l)eJgXHUlFQa4hr_hz@7FbM|7k{j@v0;q! zriVZCTv(OMoSES;jCX!=N3hH^liK(W*mIkbpL;j?zd^UCiw$(uwL6Men%5M_U(*W{ zV53QAF|N0hix(MN&Fp}A%w&b!J=-elB8%dGM7GTV*si>8K~LCr0tY0R1tUm|w!)$&K&970)o2m`j{RzF2)turgs)f?t>6nO`b)71tMQizgYU8c&!)W6q6U zD;r7$^NYpyQqj5s)IYg+jq_FGYsRnpts;&||GV6&amPU(Zzx>ky;=B*H`Vh%r_Ggj z!|?94%Dc}QHz{juc=B7n7M9rbuohhSD}TKCI;@{7!Kd10-R`|@j`Oyee{Q~sZ=Cp2 z^DXGE>EVvj_V_JxXX!Qb)zVwAvsd}M@J+Y5)p^T&!`y1~6CSzMd=;Nv8NWqoSK0t7 zY%OiI*MlmzL>|^&A$TaJ3^+&*fSA=zDPl7<)GdxJ7pX-ANJ30TnmERH3~*x48@VYk>Kb*!246-ff#C- z#vdD_j6cC^@fn$TXBp?<{dvY{<1g?Uo%N!}!oMzj0GW9cdhfl65n&|Q8MMQW+vvCE zMu^d2CAzrx8-7>ZRvH?&*=?mZXa#;g44;g0^}6W@j^y~iwz40i{yzYe#U;+E;YHp- z*i@u}3#~>xI4j+_oMk&wAwWV7BEq4+m{3!PkYY}AQ1+Y?n3#c}XPS(a&CZ38k|LxR!lOzbeyd0;ZaR8DFR{K94>Rvc z8lg+S?EQC!rE0|U~C%K|DCb_(HUJ}|PlgJ*P z81Y{whB+#!HEI&0^toi1IW{qzKTYm*&PvX5|2(i2p6CdZ_ zUzr9yX^3psa`OmDbQ7Q&g?I<{Z9C2F&OOOef4kLF+U@mN?*PfL7k{^x_5^R6`@H@5 z%X5Z>&%=LH8$TQT4l}yezbARo-|fANqYuD#F2n~*CnbA=ZgYYETk}xqJ!=;%n^*k9 z)}hjG&BLW5*3r_e@P6}Hsn;5p^abzZnxlbtm=gSRV0ix+?+rJ{clq~wU-z#MnuF`3 z>(B>ghyShMZvO{CDflnJMZq~71v;_r$L!AW-!{9QJ+NGV>TfsSaJJdC!FG)5-C$^Z z!0L7mU~hU5+IU#}l>2V*7G$*%ziGbd)Z+U$jknBSLqFBJ%i=?&ZLlC7_YW1{G#@c* zlQ+%1#v9O+`%D+F-z(jZd+v0)?SG1QVMpEL?12BW+v>K5#k;NDHg)DMyVdWup0b|` zdhF%?PWu`Eso-$&wD3sqzJF?REa#@ju3YAHM;rd?6`Bk42}4M}w2%H@pkuH-ll}&AtmP&~*5NZx23zh5L4} z!`o?fmv$BDLEBw=$J&FRVewu?g?**{UfKV7u-kItWyvehRqsOA9q@KruNwzFd|o<) z;}7BZcPhs}>A#2L4|?wfhpnxk(vje()#|>5SsWI>g*j;UUo+SGL*rvsZ>g`u`P|}g z4C3GXUc3c#d^;G1zpePLHyP^vI4K!r{aw--KqN&S!HdCNm@_l1P0k8?FmBj={yU{TrM;!yrMumq`8&-W zr5^7!b02>14}NLh={Ml`cdZ@Zg$t8|-ZHG7yMsgCd)8s^2tGXuE<6?-^mbVFIJd{! zfw|pf+>PHh_6-*%Px@}$8`!V}mSOjB#F}c{ZQkviggE_C(By8j*=Pn$?k*lq?zZlB zaK8DP(TzF23Tx^$aQ^$j5o;Unau9Sb#CKy3Fxh-QQvD#5vpW4r46**ysvN zSO?byQ-ZPBWqcR>-WHNJPY2%*z8B05y5esIS9qQAXk$0z^#Z>uT#h5in>WYZu!MIx zdtp27G50yU;q&Qn-m#|zQ^RA{>rSur2DHMP@J9axzUSW3)OaJV@Fsq0V|ruf`903- zSe0+!yPLgz=6KA_Ey1nuj_)ninj4*s=B?gOxSp|wH<~T5fS&ZH#=kW8VZXNz-(3~& zbN1VZlOA#ij^B+{c$fJ$)?~Li4))GY$f#HS{do4B&Mq9!_x!g%;Aj0jyx2Q%{{TJb zJHBI-f|7A&xEE^%Vq5*AP5nygRqwUZOXe(hy}1=u_6Bnsc6PJe*D<~~N^h3lD$$?( zl=HGV&v~l!6uQCQkxjrmFMQi zZnyPbV8q+J??p$F-sA=28lODg9DXaF>s^z)<^5gqx5;+z)NqWqSIsil!d?D%g300c zgQugp@eKbuaKmO;_vvFBUr$MZU<*lMUSZZkV;QzpxR8f9b>=e4b+^u>eE{{1UEf}; zZ;tDGu<3k@1XCTN>k$CS8aX zl>Ax#vhWM>=i|A--1uzBOB?swqV_5O82y>IHQC?|_r3^p!1j0qzJ0}eJ09WvsrsIz zS&+`5VO$k`HYxkBg%`kIYsJNQWo-CoC7(<_ll(6c{3(ea7ZAtF|A!HjgurcF7Mt-m z;xhbD@O8vTtlD^4Fav&yvauC+SZN;hn(#xf-9h*wriN{JbqEoeHusR(6}WK_d-4As zL9WE_QU7^;*83$&f|=l~?TC0@m>f1&;|k>4+ISUS?ZxWl=$9q0dtKJs_^M7oWX@HTq8J9ecm}{jU1G3%`F6 zKtDT&ix0a;frMV4J_~m0UH;tQy|4q4@v}Ix9QT=hPOtN1>3#6mJVf1I z!}~t#@8e_U9f$+;ntzXb^HrbK>-3o)IPb$F$Ov66bkQ+Lr`q73;t$NHyjs`{$DFsU zKKu-ew=2E(zEkTi#TxI$anJgVes_EaWY~OvyEzr^~W zjJhx`WB0GD84uD3Yq^{};BSN6ehoX-t>$aaet0&wSqHo~oP*vQ=4;+T?@jvX!N zz2HvRbG%}cd(e6v=N$I!jdG{&Hpex)P-h!EL z4!4KjOyGbYN?hR&JK6KQtaJ5~K*W%%yxSTU~gJP5t|hV6=CA z@L6v=R?{6$H`d9mF03n~A>L=cR2Z7H$1hp?j8hQ>xX->X*yU`n-Zgfa^oZ?JULD*4 z7U8Y-P(*o_2K&v8-mO?2n}en93;s#T%fTk^CD?b6viO-@dJozkmag{>XmBi`^)|+% zjl+oQF5G>Od8@P3-RAceY5x}D-R1|%Zo=5&ZtvZo7xvMQApvWXyZ!gV?*-q61^jeC z&Hp5x{x1KE@qFigbH4cyR@~6|Hsdzu&hTNk!Fk?%!Fj-4<~;1q^&fXnO78Wab6zl) znGNO)|GCn0b}eN1 zto-+^_k&@^-&w!G)#M+a5#G=Ot=v<>x4eIdw|lkFl&?b{-WGIwg=jByA#I;>@b@V% zTpxWa?)1iBB^t&p=3de<*n=(VE$ETzh0pr$nXfu4-8+Dd;_oBQVOTuJARQmYy6OZu7ADb9^=|K5W)v?^PQdhF|UPN_ZFa8MS!cp7iN=n~w#1 z-CO)xcR6Y0zi+O9T-<~wdJIv86}bK~c;a95AG3$XtNh2X%2xYF&0ga^yjp3m40!KZ ziq_r!r^2Hc+be+=cKb23+fH}}_qwkt>Kt)?>reHM+Ixc)_$kK={5MmoU6?GxUTJFB z;OqXYLx9n_K6n_Iu|}6TNnp5ux9l{fuWz`To-__UJUP zMq_}0S8~VW+Qc6{<1cl(eZejPZv)IO`_DESTYyg;8MUZ)!6SnsX}_OCG-QNdicC6l9e z^e-zTPo)J|%ykCxCsp36#>N5<8&AU61=}mQPr+0+0#l7XoeEnjpMws-RW<;3EB(m@ z*V%&nrgEtl*s=-089#m8_spB=LXIbLc7S_i{__ar7xk)K>sItF&ho!{!6mC0F~=!3kbTUvXT1toJ7NOoAYbX}3O$;W>yS%2 z6Zt0^U(24B%*g?szZgX?+swsht}U?7=(X2oGl!ek>h;$r6OnJpUWC9zf@67|R$|MM z6I-^20NY0V+z4PZIUgF|DwsO-?Zb1icUVivJo=UB<@Ztnm~7ysiOVMDI2)T_YFB_p zokbZNd%bQzAF9yT#o9R1p)4-|9wiKot=)9jFDJJi^lqAfUQHgJYA9*uP- zj*-vP5`qWt4D8*`oOR}EuS0%Plf%z}fwSEc~t$Z(;&(Wgu*7qcFl!WZnX2^={-Z}o1-;g)AY4vLOhtkz-}HM19?&9M`I+5^1! z8qDRSXn8a_)itaGA(+mlqz=8&x&Ek+C|5P^v;UfU#cx!(ypmH`&Ckqpr)=xa=`+Dh zFGsIt=CCX@nKweZ&Vk&KJeGWJjjSK$UTz7OTcibR(^F4UE|DjZFA@#UjZZ)KaID!Z zPpmB>KZ5s7;_fFxx2-`QL`&G1h&FJq6mHYV=* zXp-gR@cNt&<~__*`lGb~dG5_r^){AcEmIe18C-@g;yQ#}spy?77sdBAoro{)L>-bc zJrRVwFcPVv|I$gBcG-{*7nBVq`6x~>oTn#MZVv6i<;-DC^Oz}5vz+2FDn~BM?cn*y-LB-&aeYed z4AvDWTm5yz?A)~^SMS4foOPWMk)fTHoNvl3EeFL$6Ztb6Yfo|lvp$Q@hA*eOtc!M6 zK$}44xqQ@kviv{EXV5m9@3*?(d$nHj`45uQw@Bsmi7uB~46uj#^&-xXQ`Z7v?xW0~ z@c&X(^91V+_6Pe-H=92~-WT$ykONS5DO&^oaqv)6h#CY%=8|2f^hlRQ-Llbb^d(=h z9n7I|TX8hpn5eX;MDyQK4(q)r8CJt=HJj@?VJ;j_Jm$ka8E zTV2S~*eTmRm9jwT-}kxjc<_)TEL+34O3dCx;tM z*j~&9MIK2P`X|$NWW5Nf71BSaoa38-wJCaE=9xONFVXqsl2Z;|!5Wvf%=_tl9@v?X zYikRV6PT@2d3Lc0WGz(LN2nnub{NM;c|{p7_hp_2YcJ3icuds;7yT-8lRqZ(`RtM> z%VT`ME8<$BEzI84s0U`>rq)#_>{FFz1o_CkmlerTWiP*sxt8abTnx!O5uTzPW{m); z#nPW{c^V6Vd+(#=~dbdv?0eSJwh8o z%?I|s(8s95HYaSxxY|5jkBxaa^dFq6_(u4l+kZ686U_KQbW~RFOy^4L+?uf=YvD-m zY5iQ;9IZh8l5C#=8ETJJ{kt1bkD=^|{nlg;S2nE9g%Vm^T2-fsd(^t*A>>D%5jKEk z9R<{eLvOfN(1ddHIgI;ZRsSl}$5M}nw$MY!<-HWWtHo#2QfLV`DB0cZx4<@Sa@Jv8 zf=<{!h%UbY=a7~dLv%Em9_MW#%6+VP?E41m|7G($SpRPe{2_A&>;GYYqW4Gn8jT`n z2kZaQ_EmCju>N1F8{vZ-tpA5xX{jSPSpRR5vXON?DcZ<`_5WsIpCEe+Z6giV{~N6T zH(37ThKqR)AJ>Zh!Z11(T-AgM`$7)e^+ z40WlB{|^5pYZ;-Q6KVuYZSs7qPJG(p6JtyxjT6C7Cvl>DtZ+Qy5h_*|brs+bb>v*} z$InUY%Sm0CtUs%qPoJ^GRpEnDb?CUC?@by!U61I-s1yF}E-z5^ZC^-ZVp2zDAfK(S z??c~^#LVeW(lK+1_0b2K`J-Bjv*Fj9gV^gNU>GJvt1I_dt^88e&w*H3CGIUT^k#bs zVn6iV(5FMcObvWwe4nRLK1MOaUmoS-biJrGPCsl`L#%A-Iimk=LR#Op4|U~;)j0z` zqN~;44s$l*fY()Ok7eie1oEuebx7Ar{T)>!QrF+XSYu#Ys%jGDX~!5I`Rx3DbYhKE z)+J{gEANMqx_}F8@l&%t;qh~PV$4I?u805raLy-~kB6}z!_}4Abme%a--7r-17gW# zkAI01nHjcVT?kI)qxcx}u6SF=9nVMHQT)YRSHuemhCtTP@y{VLzdv>&^ND7$Mv2MF zb?6uDfZf2Do#2Tkhn=~2TXt{O6w3S=8GcE8qUZwvEK+W50XtDf#TD@{pC2tmoSk(T z>s;lJR&~AMmjy;DAKRUS`J0I6%;swaVlj+2@pFmeZGxW?ag9>{>x>AO2HD)t$2t;O z!7=4y+&AuPtIRgYFQyRV$BR!c{3_g}NV<53k%4yAi zDR+>2>VZOT$2a8gAG53Ip3N_5 zI4&noXCO9%`d+}-ti-)E*6M}+_1-?BPME~Wi8s-`Nx)AkE)4l)fbUftCd0c(?2gZ_ z<+RAE3}=PsQMK4)E%d{>q%uf^zauo^d9jUhhR*k zMq!MIO=LW?3(wc2u$;X43|cY;n~r%G3#MUea6*FPE>Fisy^Tn z7d6mekE~5bfKJf40cq3|)%*Af@Dt)E+8s&1jOQSKMCJ(I<5|SkMnbj?$ziROtPZD_ zG$y16_=PE`@eNt6Y7F+F-c3GMH5)bVYJj5?xl~s1b=37E){62S*hO9Yvk@_BiLH?@ zCjtY6@j`bscBqae=?{;9YDdPFs>(f(*|6t4LrvB`^~_9 zluMLnj3tV^U1Bp{OgyW+f3)&`0czH6bXUNhpv-$X5nE|?r!%Vc1g>zQ4_Fy=x>3~s5{ocSI1+i z_tA?8dZWo060Sy!Uemok4yw*=Anz2nKo7BR&lJpCp6}P72Zx-GHI>#-?hRXF%J*LX zrQ+o9Wi#-*+!-nDfVGYL60RHCMV*CStd%@n$fFaY26sGbUPAwm0bXHZ)M*{_%fLvs z#IqyzxgsX8xv(4Y@P}NDf$HSi!}CaQA;AfjgHVmP!yba(1bB_ws^t*(uz4TK7RV^j zs2Mn%Cd9>w=M}teALu1`EaF&+QSJl|dOgNQjD_&QbGXKhQ5P^)>v3J$EWmIon?*3h zTX20|N8}3X`Qp0?7&~nm*d5_S;K6~{2p>Xho-&uR1hNA>zsQ;qtb_dP!kjh%H_-r_ zxhWPK81oc1AP!1g#cKNuJPX$d=V&g+6Dk}Iupq>)l#5)Ch)YN75Yyd~Vml$@6g@z9 z)V}?|n-S1DBaP;wF9mwVK*lr_Tf&!7qZb$)&}$}ey3Ycm zJ|kqk)pp>a1q)1!+z4Q&X;00>_oCN`MG|{KuV1Vug>%iXU$MD~RcOZgqwXMnwKL%Q zljEf3cOE;MouBSI!NYUHmz|AnlTUm+XbM>^n0vv35MM}{QD-v-kNWV4_je$(f^v>> zr2}>+agOpi=!`xQ4d4~g|MloA75OhiA5I4bL)X=u2bsYh3}x7(dOpg5=o|JrSqFPK z!~9X6L0&@N2!=!R&S*Sm7Efz4$12RQzDJeM95vY673Nuw*Z1qe`?6om-&gP`vhNfb zzPMuJ)Akjtf_$&{lC)Q_Pq0Qpjt^0NK^jc#g_Zpy&(D4rU8)|d*1K~n`0|12^H9)) zIyOzLIgA*{JcWCazC(|ueY!Hd`HjR{rq41tYzJPe%bJv4Uoe8A$2iWT{tA3AIHdgk zOh0S3pCC3#pZ8&O7Q0w%|AB3c5q>$G0v@8C%F}wBn&W)!@T&c)!=5$Sc%=6BrKmf9 zG?|Y)7L5z4Qy4MgMfG^|b4ZL~FXRg_)oIT(();-N$ZTYZ&-UjR@VB)F`><=39o+~y zvoh`P#XdQbTQV{tmRGQfn!okh;ofbadc=LO`vk9EF4g&+&}n7L@`N&kegW!(*-C!4 zra4492BiD_DEk|-4e}OaJB&5Kv1hf;le1tHfKX_&BgOq?+=N6qR&I{t3rR$M)w)( z@_7zz4ZYvjb2l11D*JTmv8>MWiR#afj~1nCL+bWtvZg6nr}S8s<3qf+?g^mf0R3As z)@m#iY4|s)#(4|$bGx$9rDkv=^l@f~4Mbbux3SkyIBx6FUP$a=SyuXZNcfb6-iQU*tp)Ph zNa+7;P4c+r(l~|p*YaBTFOV3kj7QF8Z_?qI2i|Mu33J(GolL-fdTy26U4p$o><0C@ z?CnGb$(j@1=>P^+)+2O@@?Rl;2K$ra#~EPVQ5VbjGo6s9&56(LvS(DCtJe-~g~mka zA^g#e{RC(Z`9`Jju+k5@xu$#0GXd(51@~`G)n%EYZ4~6ex zPs3(tKu;3*Thg&nc3y|P8|1Jh*C9s%djsH+x$l_nbDxvi78Y{U&;w!#>yN`;n1>qv z9oDX(CA>bZ<9{q!jJzV!g?l8KBiN|$pVkA1ihg9!3$T?TH+8<>YS?JR_cdCw57hpK zf%PtJ4QFNgtHVx7byHZ^42s3Y)nLd#kcJ zTUqUR;=YyZOz6Yj zetEfr^-;lP3VvK{TGC`)#I=^`krmhjEl~JtJOgqv*Q4K~*swfD?kO>o%wE*{WXaJ& zo~ogIsH%r=m#y>l#P*RqBC##SZ!t04SUIL9+5jC&9}ayxdE4%I+jc^vo;?&BpwoOP z5c`e2VlX$wybY<3(Q;k$p5AX~GCVJ{s%5yyzf2F04ePOA)%HmT)>NIt=hm3rnc#sN zB$r5G=LPR9eQ|X!$y{!4q26sm?gR7l2Da};BA;w-_yS^DvPRg`h`l(-dyq@8P5FJ< z-i2FS&xXs*NznpF z>~Y;sOUp2!LH>HW?~=sr*q26n9m=>e&~0+x zv0)4P?_~N*kCl2>)&~8To#;=T<%9Po+=tFL{w;W-M7hef%iKlUgs?m8Uico*50>-1 z)J71UvkAT?(u!E|tFaHBjD9(^bJ)Z5^eTNgaPGyJs-8W=#P3T^3Ue;HVCRT^0euA>%HG$Ki#a4*r0f`x@tK{V^=<&$ zgkupsP5;NERd$c;1ITZbvGnhD75LorWBiZuA^lj$=Tdeo;ONt zsGdO7?|M)ADDF!h)%r#I?~b=GL&SGQ&WqgSd#+o|A^foIuzQ=J|7Bj-k4fUFqR0B{ zC-(Ij8$NHg1S`Ycf%qCP@ca9c+cDQ&R$bcbM`*Rsg|0{L#kyn&?pN&}EQgceH=zy3 zJp}WwsMBUgPeK=H-%i?-S?&LL-^Eq-7jpS?u{HJxUxhpf`uoaGW-H`tm^BsU%Bj0$rl@4iHkA+O!h^b zJNm1cgCM?-u`1t!@hN`SgAsI(Nf&JRzrFn42iJYA0$cXd0Gd=pd^HI00Uh z@_^&Xo})~83futw!>nhZTqLaUy#ZSl?SS2p74pp z3o`p&+daO&)TJ&F8OoSeC-lh%*neH{8GMx8rLp}&fA}r1uNB*hc8Wa9eB^blEM6Zj zOl>u-hxI<~mc!`u8v%fCP$0&UN`KqH5YFkih6fDi<0%o>j1YhaNv(VF1}rD_fXz1RknuMJ()b3oW^SF0@g&4 zdtk1rVzz5kKX{EZ(fPG%1wzoX0jjlCFV>p6O#8&|CjWa)9WacK~e)?1o~Q%m-QObz6sx7qSmqKG?{z) z1v4y8BYc)Euxb0t91>%Aw{nq2|k+49uJYh+xh_%v+%3Dn`K-yux*PTFSvx8U&- z>AVFo(Wjv+ahyFdT$%0}HdS(M;SUZNV`D!0(bRt;G!wrW*D2)!uT>MZ7a>}>kY}EbUhCo`hux)Q znd}pU4%s@BxQNzy=L3U7JAQ|X;mNW8&(#BxpI@y97~dd`@-n9x^y@^-o;~UXi;>}m z%0;nX>XOVCLmeYMLP<-#_Mmrd9wXQ(z2_AAvtEE;Av7MB{y))8`L$3zmpq1hDBVw0 zd|6^&Xy2dqmu9tn7)x5FssK+%-#cQu%0=?}%oJBde`1YKT{17{ckP1i>9YF!ZL|KX zjj9$9_U7r|hV*ZH`d9k29!r**uHvTsQo{#J~^t|cgrH^hl&g{9y_j|7D z7;rXT&{Fv)@mH;lk*Ft_(pvZ0RqH{ImGcX1mhzu~yPXTjEBG&8rms^Zt=) zf2ro%qsjV|_PR%LbNXJ>{DlE{sKXaud_7{c1I0}`5Od1=>Yv5_O8hk4X-p%#e@A*h zJ+~Xu_j(+9T)KC1|Ib&Y$3HyaU&d~(QfpeR*|ZiU;?-$PB`;5?3$$%9P#gyHqId%H zqV%?=es9>kj_>&!7S9sc?;|!^wJ3_3$Ne@6FtSCg9R!4-a3HioZ!Od%>>3 zcZB#+Ct{z=y_S#|VX3)BS*h*43_CA-G+i@D>{ZsFYPTmU91LsFw7{?4gcvmIbY``| z=*N)#jm9t%SHgTA;sl#;Y?eF1xDIU(__u*kVU4P+whiO5z|`8T>zetLyKv8RznU1b#~I(I4i`**R*zO}!hGG?3?tJBUomrR+KeZajAk4>v(brTLA@bW z^F@4?@?LCQ@q^p|xy$uBCar;01KSogf`Id7ZL}^=#w7I%2eO-WypVA-#{IPK<#;<# z$6%$_Cj3soC}|p^{tobek?IfMq%e)ydi((SAgka5ejMwx9kxKDCHkyCW(OFBu)+Kh ze3E0ap8~c^>BY&2Y0Dh1rfrV8v8+$qW@%gIHbpn_b7eH=es_Ji1%5WMuf+CdP5|kp zaWR4asM!r4>>SvPLMOQn=vNH1|6b*^v;lk6hBScSp__$6OJPJ;U&k zr@0^GkB>RNPJJ)WCVS|`27Rg$b8I%~Gl9P`o&$_;p3jJN?NN1Y1sg$(E%Bwj*vlaQ zDy{R#x>(2id!*iFIp&^6u(_*&uMoW=a}J)ubBJ9{+yd8LJ@ir=d~+LBOtU6pO-g;A zJdKE7(6zrbZcuPz+V3y|{?lvK9LXFAZFye*bHKA}$^3C#TY_f-rZL6qGtLSBrB{bF2n;|d{(c>k zZczAMO?%V>L|kaGN&PADQIS_1gTx0A+k#&abcQ|5J(XTdtK7-qTKF5Ld!z^b5fc=4 zKyWQBh)ZM`w|2+|zGv;IPWUa$@S_rgyCGTQ(;rKImo+)>m$zMM07>W700LN zEBr&7wGQ!knY;EPXscpTA6*lib-NhXA)jg)R~IjId3~`#F9;YT{cZ9q=*VaMCxD@8 zRDXAUE2HCzM!pv-~45%H~Zh}cYVa-`#Y8SZyNih-5&pO+!BhY=r@)E5*zOndmp7dYTgsr7@@JCSoxQeE2=47$Y zun#W7CrUg;gK@s%8CA;`vYmN>)pAVZvUol6EOc!&X0ZONC44KqH(39bb;Jkjzh0HI zY5u=j|CKUPWCwLkCO5R-H`8nX*XbBt%ab-uM*;%zx;2C>#&dbsCn$46U2OoNuc#r%1)FE3~K zEzz}#b}PfYjc}q|hiV(46*OXOiM3kmL1WpEWHx`^9-ytJV}*j5ouqIn)N}L~H92BK z$T82RbM@hTC3V{~n|(R#?3P$!RP;q;_7BDf%zHL3+7FQFb?pa`_?_$lmLuNKiaA(d z%QeMjplyI&3L)o{vAVo1qxbp19pbtAk3swua!ga2i&3e`aU2$a^pR)F_FgilE!e9t zR>nMb+1G)W$*=H1_osRPeO%sN*$A8Ocz)%5$#Wl%U%4NZy{^RhWxp=tX6{YKi@L9f z_9bawQ=WdZ*JIAjiEKgQUx8^1#SfjUX>uI>dMa^5K64XzL*$Os-)}Nz0&kSJ13zjm zCC2eT!k^g~NaHowyG{mnrY6NkWOWK8)|a1OZI|o05sa(O3u^NDYyL20%ToMwq~_JxPQ^OTJj0=rn{?sCu%=WKa$Q_pMbb{ zf19@YymEZIFFjP~@0g@&!?(rkH$*?@J+PxGOPPbr=R|LdDjOR6D)>P7LyWEV=Sa@4 zu3;~EEM;I>j<@&eYft0p<_+l{mY7Ri3-7rv5*@1dhUCE%lbP;eGvCF`iag^utFdPy z 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 z

Shpv;+#PCS!q0X?Q`qG^ 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, 18-May-2000. diff --git a/tss8/system/fipa.pal b/tss8/system/fipa.pal new file mode 100644 index 0000000..57bc1d9 --- /dev/null +++ b/tss8/system/fipa.pal @@ -0,0 +1,1195 @@ +/EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB +/COPYRIGHT 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON WHICH INDIVIDUAL +/EDUSYSTEM 50 MONITORS ARE TO RUN. +/FOR EACH STATEMENT, THE COMMENT INDICATES THE POSSIBLE RESPONSES. + +CPU= 2 /1 IF CPU IS PDP-8; 0 IF CPU IS PDP-8/I; + /2 IF CPU IS PDP-8/E + +CORMEM= 70 /HIGHEST DATA FIELD SELECT. FOR 12K SYSTEM, + /RESPOND 20, FOR 16K SYSTEM, RESPOND 30, ETC. (70 MAX) + +PHONES= 0 /1 IF DC08 INCLUDES 689AG; + /0 IF IT DOES NOT OR IF TTY INTERFACING IS OTHER THAN DC08 + +EAE= 0 /20 IF PROCESSOR INCLUDES EAE; 0 IF IT DOES NOT + +RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF SYSTEM DISK IS RF08 + +RS08= 1 /NUMBER OF DISCS ON THE SYSTEM, WHETHER DF/DS OR RF/RS. + /RESPOND WITH 1, 2, 3, OR 4. + +PUNCH= 1 /1 IF SYSTEM INCLUDES PUNCH; 0 IF IT DOES NOT + +TC01= 1 /1 IF SYSTEM INCLUDES DECTAPE(S); 0 IF IT DOES NOT + +RK05= 1 /NUMBER OF RK05 CARTRIDGE DISK DRIVES ON THE SYSTEM; 0 TO 4 + +CDR= 1 /1 IF SYSTEM INCLUDES CARD READER; 0 IF IT DOES NOT + +LPT= 1 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER + +DECIMAL /MONITOR CAPACITY FOR THIS SYSTEM + +JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (20 MAXIMUM) + +/THE FOLLOWING ENTRIES DEFINE THE NUMBER OF TERMINALS +/ATTACHED TO THE SYSTEM, AND ALSO THE METHOD OF INTERFACING + +CONTTY= 1 /WE ALWAYS HAVE A CONSOLE (K00) + +DC08A= 0 /NUMBER OF TERMINALS INTERFACED VIA DC08A (PDP-8/I ONLY, 19 MAX.) + +DC08LO= 0 /LOWEST HARDWARE LINE NUMBER UTILIZED ON DC08A; USUALLY 0 + +PT08= 0 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY) + +KL8= 16 /NUMBER OF ADDITIONAL TERMINALS INTERFACED VIA KL8 (PDP-8/E ONLY, 19 MAX.) + /PARAMATERS VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + OCTAL +PLT= 0 +IFNZRO CPU < IFNZRO DC08A > +IFNZRO 24-JOBMAX&4000 +IFNZRO 23-KL8-PT08&4000 +IFNZRO 24-DC08A&4000 +IFZERO DC08A +IFNZRO DC08A < IFNZRO PHONES + IFZERO PHONES > +NULINE= DC08A+PT08+KL8 /EVERY TERMINAL EXCEPT THE CONSOLE +SWDEX= 5 /DISK TRACK OF THE FIRST USER SWAP TRACK +STOMIN= 5 /MINIMUM # FREE STORAGE BLOCK FOR NEW JOB +IFZERO RF08-40 < +IFZERO RS08-1 +IFZERO RS08-2 +IFZERO RS08-3 +IFZERO RS08-4 +DSKEXT= DSKSIZ-1> +IFZERO RF08 +CLOCKR= 144 /MILLISECONDS PER TICK +TICMIN= 1130 /600 TICKS PER MINUTE +INCLK2= 0322 /INITIAL CLOCK +INCLK1= 7400 +TICSPS= 12 /NUMBER OF SYSTEM TICKS PER SECOND +INIDEX= 10 /INIT DISC EXTENSION +TS8DEX= 30 /FIELD 0 DISC EXTENSION*2^3 +ERPDEX= 0 /ERP DISC EXTENSION*4 +ERPWC= 0 /ERP WORD COUNT +FIPDEX= 4 /FIP DISC EXTENSION*4 +FIPWC= 0 /FIP WORD COUNT +SIDEX= ERPDEX /SI DISC EXTENSION*4 +SIWC= ERPWC /SI WORD COUNT +LIBACT= 2 /LIBRARY ACCOUNT # +BRKINI= 4000 /INITIAL USER BREAK MASK + + /IOT DEFINITIONS + +IFNZRO DC08A < /DC08A, DL8I IOTS +TTIL= 6401 /INCREMENT LINE REGISTER +TTI= 6402 /TELETYPE INPUT COMMAND +TTO= 6404 /TELETYPE OUTPUT COMMAND +TTCL= 6411 /CLEAR LINE REGISTER +TTLL= 6412 /LOAD LINE REGISTER, CLEAR AC +TTRL= 6414 /READ LINE REGISTER +T1SKP= 6421 /SKIP ON CLOCK FLAG +T1OFF= 6422 /TURN CLOCK OFF +T1ON= 6424 /TURN CLOCK ON +TTIR= 6461 /INCREMENT THE R REG. +TTCR= 6471 /CLEAR THE R REG. +TTLR= 6472 > /LOAD THE R REG. +/EXTENDED MEMORY + +CDF= 6201 /CHANGE TO DATA FIELD 0 +CIF= 6202 /CHANGE TO INSTRUCTION FIELD 0 +CINT= 6204 /CLEAR USER IOT + +RDF= 6214 /READ DATA FIELD +RIF= 6224 /READ INSTRUCTION FIELD +RIB= 6234 /READ INTERRUPT BUFFER +RMF= 6244 /RESTORE MEMORY FIELD +SINT= 6254 /SKIP ON USER IOT +CUF= 6264 /USER FLAG OFF +SUF= 6274 /USER FLAG ON + + +/EAE +MUY= 7405 /MULTIPLY +DVI= 7407 /DIVIDE +NMI= 7411 /NORMALIZE +SHL= 7413 /SHIFT ARITHMETIC LEFT +ASR= 7415 /ARITHMETIC SHIFT RIGHT +LSR= 7417 /LOGICAL SHIFT RIGHT +MQL= 7421 /LOAD MQ +SCL= 7403 /STEP COUNTER LOAD FROM MEMORY +SCA= 7441 /STEP COUNTER TO AC +MQA= 7501 /MQ TO AC + +IFZERO CPU-2 < + +DBSZ= 7451 /MODE B ONLY - SKIP IF AC&MQ ARE CLEAR +SWBA= 7447 /CHANGE MODE TO A +SWAB= 7431 /CHANGE MODE TO B (ALSO DOES MQL) +ACS= 7403 /AC(7:11) TO SC; AC CLEARED +SGT= 6006 /SKIP ON GT FLAG + > + + + +/LINE PRINTER IOTS +LSF= 6661 /SKIP ON CHAR FLAG SET + LCF= 6662 /CLEAR CHAR FLAG +LSRP= 6663 /SKIP ON NOT READY OR ON ERROR +LLC= 6664 /TRANSMIT CHAR TO PRINTER +LSP= 6665 /SET PROGRAM INTERRUPT; LP08/LE8 +LPC= 6666 /TRANSMIT CHAR & CLEAR FLAG +LCP= 6667 /CLEAR PROGRAM INTERRUPT +LIE= 6665 /AC11 TO INTERRUPT ENABLE; LS08/LS8E + +/CTY + +TPC= 6044 /LOAD TELEPRINTER AND PRINT + +/DISC (DF32) + +DCMA= 6601 /CLEAR +DMAR= 6603 /READ +DMAW= 6605 /WRITE +DCEA= 6611 /CLEAR DISC EXTENDED ADDRESS +DEAL= 6615 /LOAD EXTENDED ADDRESS +DFSE= 6621 /SKIP ON ERROR +DFSC= 6622 /SKIP ON COMPLETION +DEAC= 6616 /READ EXTENDED ADDRESS + +/DISC (RF08) + +DSAC= 6612 +DORS= 6614 +DIML= 6615 +DIMA= 6616 +DCXA= 6641 +DXAL= 6643 + +/CARD READER IOT'S +RCSF= 6631 +RCRA= 6632 +RCRB= 6634 +RCNO= 6635 /8E ONLY +RCRC= 6636 /8E ONLY +RCNI= 6637 /8E ONLY +RCSD= 6671 +RCSE= 6672 +RCRD= 6674 +RCSI= 6675 /8E ONLY +RCTF= 6677 /8E ONLY + +/RK05 IOT'S + +IFZERO PHONES < +DSKP= 6741 +DCLR= 6742 +DLAG= 6743 +DLCA= 6744 +DRST= 6745 +DLDC= 6746 +DMAINT= 6747 > + IFNZRO PHONES < +DSKP= 6751 +DCLR= 6752 +DLAG= 6753 +DLCA= 6754 +DRST= 6755 +DLDC= 6756 +DMAINT= 6757 > + +/DECTAPE + +DTRA= 6761 +DTCA= 6762 +DTXA= 6764 +DTSF= 6771 +DTRB= 6772 +DTLB= 6774 + + +IFZERO CPU < +/KW8I REAL TIME CLOCK + +CECI= 6137 /CLEAR AND ENABLE CLOCK AND INTERRUPT +CSCF= 6133 /SKIP AND CLEAR FLAG IF FLAG +> +IFZERO CPU-1 < +CECI= 6315 /CLOCK ENABLE +CSCF= 6301 /SKIP ON CLOCK FLAG +CCF= 6302 /CLEAR CLOCK FLAG, CLEAR ENABLE, AND CLEAR BUFFER +CLB= 6304 > /LOAD BUFFER FROM AC + +IFZERO CPU-2 < +CECI= 6131 /CLOCK ENABLE +CSCF= 6133 /SKIP AND CLEAR FLAG IF FLAG + +/POWER FAIL IOT + +SPL= 6102 /SKIP IF POWER LOW + +/ 8/E PROCESSOR IOT +SRQ= 6003 /SKIP ON INTERRUPT REQUEST +GTF= 6004 /LINK TO AC0, GT FLAG TO AC1 +RTF= 6005 /AC0 TO LINK, AC1 TO GT FLAG +CAF= 6007 > /CLEAR ALL FLAGS + +IFZERO CPU-4 < +CLLE= 6135 /AC11 TO INTERRUPT ENABLE FOR CLOCK +CLCL= 6136 /CLEAR CLOCK FLAG +CLSK= 6137 /SKIP ON CLOCK FLAG +SPL= 6102 /SKIP POWER LOW +CAL= 6133 > /CLEAR AC LOW FLAG + + IFNZRO DC08A < + +/689AG + +SRF= 6701 /SKIP IF RING FLAG +SCF= 6711 /SKIP IF CARRIER FLAG +DFCRF= 6742 /CLEAR RING FLAG +CTG= 6721 /CLEAR GROUP COUNTER +RRS= 6702 /READ RING STATUS +ITG= 6731 /INCREMENT GROUP COUNTER +STR= 6722 /SET TERMINAL READY +EDF= 6704 /ENABLE DATAPHONE FEATURES +DDF= 6714 /DISABLE DATAPHONE FEATURES +CTR= 6724 /CLEAR TERMINAL FLAG +CCF= 6741 /CLEAR CARRIER FLAG +RCS= 6712 /READ CARRIER STATUS + > + +/FIP IOTS (IN ABBREVIATED FORM) + +SEGS= 0006 /RETURN NUMBER OF FREE SEGMENTS ON DISK +ASD= 0040 /ASSIGN +REL= 0042 /RELEASE +REN= 0200 /RENAME +OPEN= 0201 /OPEN +CLOS= 0202 /CLOSE +RFILE= 6603 /READ FILE +PROT= 0204 /PROTECT +WFILE= 6605 /WRITE FILE +CRF= 0210 /CREATE +EXT= 0211 /EXTEND +RED= 0212 /REDUCE +FINF= 6613 /FILE INFORMATION +LIN= 0214 /LOGIN +LOUT= 0215 /LOGOUT +WHO= 6616 /WHO +/DEVICE DATA BLOCK + +DDBSTS= 0 /WORD 1, STATUS AND UNIT NUMBER + DXON= 2000 /XOFF SENT FLAG + DSI= 1000 /DESTINATION IS S.I. FLAG + DFULL= 400 /KEYBOARD BUFFER IS FULL + DUPL= 200 /CONSOLE IN DUPLEX MODE + SICOM= 100 /COMMAND WAITING + DECHO= 40 /CAUSE SI TO RE-ECHO CURRENT INPUT BUFFER + + /DEVICE UNIT NUMBER IS IN BITS 6-11 + +DDBJN= 1 /WORD 2, JOB NUMBER IN 7-11 +DDBBRK= 2 /BREAK MASK +DDBTIM= 3 /TIME THAT DEVICE WAS ASSIGNED +DDBINP= 4 /BUFFER FILL POINTER +DDBINC= 5 /BUFFER TOTAL COUNT +DDBOUC= 6 /BUFFER EMPTY COUNT +DDBOUP= 7 /BUFFER EMPTY POINTER + /JOB DATA AREA + +JOBSTS= 0 /STATUS + /STR0 + JSRUN= 4000 /RUN BIT + JSEREN= 2000 /USER ERROR ENABLE + JCOMBD= 1000 /LAST TIME THE JOB RAN AS COMPUTE BOUND + JSPEEK= 400 /ALLOW "PEEK" AND "LOGOUT" IOT'S + JSACC= 200 /JOB LOGGED IN UNDER PRIVILEGED ACCOUNT (1, 2, OR 3) + JSIOT= 100 /NON-RESIDENT IOT + JSIOTC= 40 /COPY IOT RESULT TO USER + JSEXON= 20 /EXECUTE ONLY + JSINER= 10 /INHIBIT ERROR REPORT FROM SI, (UNTIL NEXT COMMAND) + /BITS 9-11 ARE SYSTEM ERROR CODE + UUOERF= 1 /IOT ERROR + SWPRER= 2 /SWAP READ ERROR + SWPWER= 3 /SWAP WRITE ERROR + DSKERR= 5 /DISC ERROR + HUNGDV= 6 /HUNG DEVICE + + /STR1 + JSTIME= 4000 /TIME IS UP + JSF0= 2000 /FILE 0 IS NOT BUSY + JSF1= 1000 /FILE 1 IS NOT BUSY + JSF2= 400 /FILE 2 IS NOT BUSY + JSF3= 200 /FILE 3 IS NOT BUSY + JSDEL= 100 /KEYBOARD DELIMITER SEEN + JSLPT= 40 /LINE PRINTER BUFFER IN USE BUT NOT FULL + JSTEL= 20 /TELEPRINTER OUTPUT BUFFER IN USE BUT NOT FULL + JSPTR= 10 /CHARACTERS IN READER BUFFER + JSPTP= 4 /PUNCH BUFFER IN USE BUT IS NOT FULL + JSERR= 2 /SYSTEM ERROR DETECTED + JSWAIT= 1 /JOB NOT IN WAIT STATE + + +JOBSTB= 2 /DEVICE STATUS REGISTER (FOR RK05, DECTAPE, AND CARD READER) +JOBWMK= 3 /WAIT MASK +JOBSRA= 5 /JOB RESTART ADDRESS +JOBERR= 6 /JOB ERROR RESTART ADDRESS +JOBLNK= 7 /IOT LINKAGE +JOBSWR= 10 /SWITCH REGISTER +JOBREG= 11 /PC LINK AC +JOBEAE= 14 /MQ MODE GT SC +JOBACC= 16 /ACCOUNT NUMBER +JOBF0= 17 /POINTER TO FILE 0 CONTROL +JOBF1= 20 /POINTER TO FILE 1 CONTROL +JOBF2= 21 /POINTER TO FILE 2 CONTROL +JOBF3= 22 /POINTER TO FILE 3 CONTROL +JOBRTM= 23 /LOW ORDER RUN TIME +JOBRTH= 24 /HI ORDER RUN TIME + /FILE CONTROL BLOCK - POINTED TO BY JOBFX, X=0,1,2,3 + +FILWPT= 0 /POINTER TO FILE RETRIEVAL WINDOW +FILSCT= 1 /SEGMENT NUMBER OF FIRST WINDOW ENTRY +FILPRO= 2 /FILE PROTECTION - BIT 9 +FILPAR= 3 /POINTER TO RFILE OR WFILE PARAMETER BLOCK +FILDA= 4 /DISC ADDRESS OF RFILE OR WFILE +FILWC= 6 /-WORD COUNT OF RFILE OR WFILE +FILRES= 7 /POINTER TO FILPIF IN USER AREA + +/FILE RETRIEVAL WINDOW +/WORD 0: UFD LINK TO NEXT GROUP OF 7 SEGMENT POINTERS +/WORDS 1-7: SEVEN SEGMENT ADDRESSES + +/RFILE OR WFILE PARAMETER BLOCK - POINTED AT BY FILPAR + +FILPFN= 0 /FUNCTION: 0603 OR 0605 +FILPDX= 1 /DISC EXTENSION +FILPIF= 2 /INTERNAL FILE # (BITS 10-11) AND FIELD # (BITS 7-9) +FILPWC= 3 /-WORD COUNT FOR THIS TRANSFER +FILPCA= 4 /CORE ADDRESS FOR THIS TRANSFER +FILPDA= 5 /DISC ADDRESS +FILPRA= 6 /EXEC RETURN ADDRESS FOR THIS TRANSFER +FILPCT= 7 /POINTER TO FILE CONTROL BLOCK + + +/CORE TABLE CONTROL FLAGS + +SWAP= 4000 /SWAP REQUEST +LOCK= 2000 /LOCK IN CORE +NOTRUN= 1000 /HAS NOT BEEN SCHEDULED TO RUN +FIP= 400 /FILE PHANTOM +SI= 200 /SYSTEM INTERPRETOR +NOHOLD= 140 /INHIBIT "NOTRUN" STATUS AFTER FOUR CONSECUTIVE FILE TRANSFERS +CJOB= 37 /BITS 7-11 CONTAIN THE JOB # + + + +/FIP TABLE DEFINITIONS + +SATSIZ= 530 +JTABLE= 6000 +ENTABL= JTABLE+JOBMAX+1 +UTABLE= ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX +RTABLE= UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX + + +/TABLES +CORTBL= 7001 /CORE ASSIGNMENT TABLE +L2QTB= CORTBL+7 +IFZERO DC08A +IFNZRO DC08A /SIZE OF FIELD 1 DC08A CODE PLUS 689AG CODE + +OUTREG= 200 /ACTIVE OUTPUT REGISTERS (TTY'S, LPT & PTP) +SKPTBL= OUTREG+NULINE+3 /START OF IOT SKIP TABLE +SKPTP= SKPTBL+NULINE+NULINE+3 /POSITION OF PUNCH SKIP IN SKIP TABLE +RINGIN= SKPTP+3 /KEYBOARD INPUT RING BUFFER +ENDBUF= OUTREG+200 /END OF KEYBOARD INPUT BUFFER +INPUTS= ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE ENTRIES IN THE KEYBOARD RING BUFFER + +DATFLD= CDF 10 /MONITOR DATA FIELD SELECT + +IFZERO EAE-20 +IFZERO EAE + IFZERO CPU&7776 > +IFNZRO OUTREG&1 + /SUPER CRITICAL LOCATIONS +/THESE LOCATIONS ARE USED TO LINK TS8, TS8II, FIP, SI, AND INIT. + +/IT MAY BE NECESSARY TO ADJUST THEM ACCORDINGLY + +/DEFINED IN TS8: + +WSCHED= 2573 /ADDRESS FOR WAIT +GETJTB= 401 /GETJTA +CORSRC= 1317 /SEARCH CORE TABLE +OVERLA= 5171 /FILE STUFF +READFI= 574 /MORE FILE STUFF +CONDBA= 132 /DEVTBL POINTER USED BY "PRINT" ETC. +RETB= 611 /RETURN A BLOCK TO FREE CORE +GETB= 1405 /GET A BLOCK OF FREE CORE +GETDB0= 1447 /GET A DDB +CLK1= 51 /LOW ORDER DAYTIME CLOCK +CLK2= 50 /HIGH ORDER DAYTIME CLOCK +DATE= 166 /12 BIT DATE WORD +TTCHAR= 31 /SAVE REG. FOR CONSOLE CHARACTERS +KBD00= 3201 /PROCESS KEYBOARD INPUT +PRINT0= 1205 /TYPE OUT A CHARACTER +OVRLA1= 562 /MORE FILE STUFF +RUNFI= 605 /SI FILE TRANSFER INITIALIZER +L2SF= 103 /LEVEL 2 SAVED MODE AND FIELD +SICLR= 6572 /SI CLEAR LINKED BUFFER +TIMSI= 2421 /TIMER FOR SI "COMWAT" +SIWAIT= 1702 /NUMBER OF SI COMMANDS BEING WAITED ON +TIMFIP= 2423 /TIMER FOR FIPLOCK +FIPLOK= 2724 /CORTBL STATUS CHECK FOR FORCE OUT +CLKINI= 322 /CONVERT HARDWARE CLOCK TO SYSTEM-TICKS (100MS) +BLT0= 1602 /BLOCK TRANSFER FROM CORE TO CORE +KBDSQ= 3213 /ADDRESS OF JMS TO ^S/^Q CODE + +/DEFINED IN TS8II: + +F1TCNT= 175 /SI DDB CHARACTER COUNT +F1ECNT= 176 /SI DDB EMPTY COUNT +F1BUF= 177 /SI DDB EMPTY BLOCK POINTER +DTJOB= 20 /JOB OWNING THE DECTAPE CONTROLLER +RKJOB= 54 /JOB OWNING RK05 CONTROLLER +DTSI= 1175 /SI TERMINATE A DECTAPE ON TIMER +DATA1= 2200+DCSIZE +DEVTBL= DATA1+140 +DEVTBE= DEVTBL+NULINE+NULINE+2 +JOBTBL= DEVTBE+22 +CLKTBL= JOBTBL+JOBMAX+1 +TTYTBL= CLKTBL+JOBMAX+1 +PRGTBL= TTYTBL+JOBMAX+1 +DSUTBL= PRGTBL+JOBMAX+JOBMAX+JOBMAX-7 +FIPBLK= 7720 /FIXED BLOCK FOR FIP I/O +WINBAS= 7730 /ADDRESS OF THE BASIC WINDOW +OUTDIF= -OUTREG^2+DEVTBL /FOR LINKING BETWEEN OUTREG AND DEVTBL +F1OFFJ= 164 /FOR OFF/ON COMMANDS USED BY SI +IFNZRO DEVTBL&1 + +/DEFINED IN SI: + +DTSIDT= 7270 /RETURN FROM STOPPING A DECTAPE ON TIMER +VERBRK= 7600 /START OF INSTALLATION DEFINED LOGIN MESSAGE + /FIP VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + /FIP HANDLES ALL NON-RESIDENT FILE IOT'S + +/RUNS IN AN UPPER FIELD IN PLACE OF USER IT IS SERVING + +/RUNS IN EXEC MODE + +FIELD 1 /FIP LOADS ONTO DISK TRACK 1 + +*0 + JMP I .+1 + FIP0 +LNS01, LNS0 +RETBK1, RETBKS +LNK01, LNK0 +ZDS1, DS1 / + +*10 +INDEX, 0 /ONLY REGISTER AVAILABLE IN FIP FOR INDEXING +P5400, 5400 +P2000, 2000 +P0077, 0077 +P0007, 7 +FIDEXP, /TO REPLACE FIDEXP, FIPDEX WHERE FIPDEX=4 +P0004, 4 +FIPFLD, /FIELD WE ARE RUNNING IN +C0020, 20 +C002, +FILPRP, FILPRO + + +FIPDAT= 155 /DATA REFERENCED BY FIP +*FIPDAT + +FIPJOB, . +C0400, 400 +SEGSIZ= C0400 /# WORDS PER SEGMENT +FIBASE, SWDEX+JOBMAX /BASE ADDRESS OF ALLOCATABLE DISC STORAGE +JOB, . /# OF CURRENT JOB +JOBDAT, . /ADDRESS OF CURRENT JOB DATA LIST. MUST RESIDE IN DATA FIELD. +P7000, +CORTBA, CORTBL-1 /CORE ALLOCATION TABLE +DEVTBA, DEVTBL /DEVICE TABLE +DEVEND, DEVTBE /START OF ASSIGNABLE DEVICE TABLE +DSBUSY, . /DISC BUSY COUNT + +/THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT +/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1 + +DATE, . + BLTA, BLT0 /BLOCK TRANSFER +BLT= JMS I BLTA +CORSRA, CORSRC +CORE= JMS I CORSRA +GETBA, GETB +GETBLK= JMS I GETBA +GETDBA, GETDB0 /GET A DATA BLOCK +GETDDB= JMS I GETDBA +PRINTA, PRINT0 /TYPE OUT A CHARACTER +PRINT= JMS I PRINITA +GETJT0, GETJTB /GET JOB DATA TABLE ADDRESS +GETJTA= JMS I GETJT0 +RETBA, RETB /RETURN BLOCK TO FREE STORAGE +RETBLK= JMS I RETBA +WAITA, WSCHED +WAIT= JMP I WAITA +DEVOVR, JOBTBL /END OF DEVICE TABLE; START OF JOB TABLE + +*20 +FIUSAC, 0 /SAVED USER AC +FIJOB, 0 /JOB NUMBER FILE PHANTOM IS REPRESENTING +FIOPTR, 0 /POINTER TO FIELD 0 IOT +GDRETP, 0 /RETRIEVAL POINTER, SET BY GD0 ROUTINE +WNDREM, 0 /REMAINDER FROM DIVISION BY 7 +BUFSTA, 0 /BUFFER STATUS, 7777 IF FULL +BUFMOD, 1 /BUFFER MODIFIED IF =0; UNCHANGED IF =1 +SATSTA, 0 /SATSTATUS, 7777 IF CHANGED THIS RUN +TABSTA, 0 /TABLE STATUS, 7777 IF CHANGED THIS RUN + +/POINTERS TO FILE PHANTOM'S INTERNAL TABLES + +JOBTAB, JTABLE /TABLE OF PROJ,PROG NUMBERS FOR ALL ACTIVE JOBS +ENTEND, /END OF ENTRY TABLE +UFDTBL, UTABLE /TABLE OF ALL ACCESSED UFD'S +UFDEND, /TOP OF UFD TABLE +RETTBL, RTABLE /TABLE OF RETRIEVAL INFORMATION FOR ALL ACCESSED UUFD'S +ENTTBL, ENTABL-10 /TABLE REFLECTING STATE OF ALL POSSIBLE FILE NUMBERS +BUFFER, 5400 /BUFFER FOR DIRECTORY MANIPULATIONS +SATBOT, -SATSIZ /BOTTOM OF STORAGE ALLOCATION TABLE + /SUBROUTINE POINTERS + +DE01, DE0 /GET A DIRECTORY ENTRY +DS01, DS0 /DIRECTORY SEARCH +GE01, GE0 /GET A DIRECTORY WORD INTO CORE +GD01, GD0 /GET A FILE DIRECTORY ENTRY INTO CORE +WRT1, WRITE /MAKE SURE THE BUFFER IS EMPTY +DTE01, DTE0 +FIO01, FIPIO /COMMON DISC I/O ROUTINE +SATL1, SATLOK /GET A FREE SEGMENT FROM SAT +TF01, TF0 /FREE AN ENTRY ON UFD TABLE +UC01, UC0 /USER-OWNER FILE CHECK +UFO01, UFO0 /OPEN A UFD +UTS01, UTS0 /SEARCH UFD TABLE FOR PROJ,PROG NUMBER +CL01, CL0 /CLOSE A FILE +WND201, WND20 /DIVIDE BY SEVEN +FIEXIT, FIX0 /EXIT ROUTINE +BLDP1, BLDP /BUILD A POINTER TO ENTTBL +ENR01, ENR0 +REL01, REL00 +WR01, WR0 +GTBLO1, GTBLOK +EBLD0, EBLD +JBLD0, JBLD +FIX401, FIX40 +IFN01, IFN0 +LGI201, LGI20 /-1 TO USER AC +FGETJT= JMS I . + FGETJ0 +DIRBAD, BADDIR + +/CONSTANTS + +C0006, 6 +C0200, 200 +P0037, 37 +P0003, 3 +P6000, 6000 +P0777, 777 +C0605, 6605 +C0005, 5 +C0603, 6603 +C7774, -4 +C4400, 4400 +C7771, 7771 +P7770, 7770 + CFLD= CDF 20 /FIP IS ALWAYS IN FIELD 2 +EXQ1, +UTPRNU, 0 /USED BY UTS0 ROUTINE TO HAVE THE PTR TO UFD TABLE WHILE SEARCHING +CFH, 0 /THIS LOCATION IS USED FOR TEMP STORAGE BY MANY ROUTINES +ACC01, ACT01 /SEE IF CALLING USER IS ACCOUNT 1 +BASCO1, BASCO0 /SEE IF THE FILE IS BASIC +BASSWT, 0 /SWITCH FOR BASIC +C0010, 10 +C7700, 7700 +BASWIN, WINBAS /FIELD 1 ADDRESS OF BASIC WINDOW +BAS1A, BAS0 /CREATES A BASIC WINDOW +SEGLIM, 0 +REWNDC, +REL6, 0 + + + +FIOSTK, 0 /STACK HOLDING IOT LINKAGE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + +FLPARB, 0 /TABLE FOR READ OR WRITE PARAMETER CONSTRUCTION + 0 + 0 + 0 + 0 + 0 + OVERLA + 0 + +/ROUTINE TO RELEASE FREE BLOCK, (IF ANY), IF IT IS +/NECESSARY TO ABORT FIP FOR SOME REASON. +RETURN, TAD FIOSTK /GET THE IOT THAT BROUGHT US HERE + CMA /IS THERE A PARAMETER BLOCK? + AND C4010 + SZA CLA + JMP I FIEXIT /NONE, OK TO EXIT + DATFLD + TAD I FIOPTR /GET THE BLOCK + JMS I RETBK1 /RETURN IT SO IT WON'T BE LOST FOREVER + CLA + JMP I FIEXIT /NOW IT'S OK TO LEAVE + +C4010, 4010 /MASK FOR FINF AND WHO + /FILE PHANTOM START +/FIP'S FIRST JOB IS TO PICK UP THE IOT WHICH IT IS TO PERFORM +/AND THE PARAMETERS WHICH GO ALONG WITH IT (IF ANY). THESE +/ARE MOVED INTO AN 8-WORD BLOCK CALLED 'FIOSTK.' THE FIRST REG- +/ISTER IN THIS BLOCK CONTAINS THE IOT, PARAMETERS FOLLOW +*200 + +FIP0, CLL CLA IAC + DCA BUFMOD /MARK BUFFER AS NOT MODIFIED + DCA SATSTA /CLEAR SAT STATUS + DCA TABSTA /CLEAR TABLE STATUS + TAD BUFSTA /IS THERE VALID DATA IN THE BUFFER? + SZA CLA + IAC /YES; RE-CALCULATE DISK PARAMETERS IF NEEDED + DCA BUFSTA + 6201 /CDF FIELD ZERO + TAD I JOB /GLOBAL TO "JOB" + AND P0037 + DCA FIJOB /SAVE IT + CFLD + FGETJT /SAVE USER AC + JOBREG+2 + DCA FIUSAC /ADDRESS OF USER'S AC + FGETJT + JOBLNK /IOT REQUEST WORD + DCA FIOPTR /POINTER TO IOT LINKAGE + DATFLD + TAD I FIUSAC + DCA FIUSAC /USER'S AC + TAD I FIOPTR /PICK UP LINKAGE + AND IC7400 /IS IT AN IOT? (IF IT IS, JOBLNK WILL HAVE BITS 0-3 CLEARED) + SNA CLA + JMP FIP2 /IS AN IOT, SO GO MOVE IT INTO FIOSTK (AC IS PARAMETER) + TAD I FIOPTR /IS A POINTER, PICK UP LINKAGE + DCA FIP6 /POINTER TO LINKAGE TABLE + CFLD + 6202 /CIF FIELD 0 + BLT /MOVE IOT PARAMETERS INTO FIOSTK + DATFLD +FIP6, 0 + 6221 /CDF THIS FIELD + FIOSTK /IOT LINKAGE BUFFER + -10 + TAD FIOSTK + SPA CLA /WILL THE IOT PARAMETER BLOCK BE NEEDED TO RETURN PARS? + JMP FIP4 /YES, SO DON'T RETURN IT + TAD FIP6 + JMS I RETBK1 /RETURN THE IOT PARAMETER BLOCK TO FREE CORE + CLA CLL + DATFLD + DCA I FIOPTR /CLEAR JOBLNK TO AVOID CONFUSION LATER + CFLD + /COMES HERE WHEN IOT AND ITS PARAMETERS ARE COMFORTABLY +/NESTLED IN FIOSTK +FIP4, TAD IOTABL + DCA FITPTR /TABLE POINTER +FIP5, ISZ FITPTR /PICK UP IOT FROM TABLE + TAD I FITPTR + SNA /END OF TABLE? + JMP I LGI201 /DON'T KNOW WHAT TO DO SO PASS BACK AN ERROR AT LEAST + CIA /NO + TAD FIOSTK /IOT FROM USER + SZA CLA /DISPATCH? + JMP FIP5 /NO + TAD IOTABL /YES, FIND PROPER POINTER + CIA + TAD FITPTR + TAD IODSPA + DCA FITPTR + TAD I FITPTR /PICK UP DISPATCH ADDRESS + DCA FITPTR + TAD FIOSTK /IS THIS AN IOT WHICH DOES REQUIRE PARAMETERS TO BE + /RETURNED IN AN IOT PARAMETER BLOCK? + SMA CLA /...IF SO, USER AC CONTAINS A PTR TO WHERE THEY WILL GO + DCA FIUSAC /CLEAR USER AC + JMP I FITPTR /DISPATCH + +/COMES HERE FOR A "SHORT" IOT. SAVED AC IS ONLY PARAMETER +/PUT IT IN FIOSTK+1 +FIP2, TAD I FIOPTR /PICK UP IOT + DCA FIOSTK /PLACE ON STACK + TAD FIUSAC /USER ACCUMULATOR + DCA FIOSTK+1 /SIMULATE LINKAGE + JMP FIP4-2 + IOTABL, . /TABLE OF USER FILE IOT'S + ASD /ASSIGN A DEVICE + REL /RELEASE A DEVICE + REN /RENAME A FILE + OPEN /OPEN A FILE + CLOS /CLOSE A FILE + RFILE /FILE READ (WINDOW MOVE) + PROT /FILE PROTECTION + WFILE /FILE WRITE (WINDOW MOVE) + CRF /CREATE A FILE + EXT /EXTEND A FILE + RED /REDUCE A FILE + FINF /FILE INFORMATION + LIN /LOGIN + LOUT /LOGOUT + WHO /RETURN PASSWORD + SEGS /RETURN # OF DISK SEGMENTS AVAILABLE + 0 + +IODSPA, IODISP-1 +FITPTR, 0 +IC7400, 7400 + /ROUTINE TO GET A DIRECTORY ENTRY INTO CORE + +/CALLING SEQUENCE: +/ TAD (INTERNAL FILE NUMBER) +/ JMS GD0 +/ RETURN (BUFFER POINTER IN AC, 0=ERROR) + +GD0, 0 + JMS I EBLD0 + DCA GDUFDP + TAD I GDUFDP /RELATIVE POSITION IN UFD TABLE + JMS I BLDP1 + DCA GDRETP /POINTER TO UFD RETRIEVAL INFORMATION + ISZ GDUFDP + TAD I GDUFDP /PICK UP ENTRY ADDRESS WITHIN UFD + DCA GD1 + TAD GDRETP + JMS I GE01 /GET ENTRY INTO CORE +GD1, 0 + JMP I GD0 +GDUFDP, 0 + +IFN0, 0 + TAD FIOSTK+1 + AND P0003 + DCA FIOSTK+1 + JMP I IFN0 + +EBLD, 0 + DCA CFH + TAD FIJOB + CLL RTL + TAD CFH + RAL + TAD ENTTBL + JMP I EBLD + +WR0, 0 /WRITE OUT THE CONTENTS OF THE BUFFER + TAD C0605 /WRITE IOT + DCA FLPARB /I/O PARAMETER BLOCK + JMS I FIO01 /PERFORM THE WRITE + HLT /ERROR ON WRITE, TOO BAD + CLA IAC + DCA BUFMOD /SET NOT-MODIFIED STATUS + JMP I WR0 + /ROUTINE TO OPEN A FILE + +OPN0, JMS I BASCO1 /IF BASIC SET BASSWT TO -1 + DCA OPENTT /PTR TO ENTTBL + JMS I JBLD0 /PROJ PROG # OF THIS JOB IN AC + DCA PRJPRO /SAVE PROJ, PROG # + TAD FIOSTK+2 + SNA /IF [S]HE OWNS THE FILE THEN FIOSTK+2 IS 0 + JMP OPNOWN /YES, [S]HE DOES + CIA + TAD PRJPRO /IF [S]HE HAS MENTIONED THE PROJ, PROG # + SNA CLA /CHECK IF [S]HE IS THE OWNER + JMP OPNOWN + STA + TAD FIOSTK+2 /TRYING TO OPEN ACCOUNT 1 FILE? + SZA CLA + JMP .+6 /NO, OK + TAD FIOSTK+3 /WHOSE UFD? + CIA + TAD PRJPRO /HIS/HER OWN? + SZA CLA + JMP OPN3 /NO, TELL HIM/HER FILE NOT FOUND + TAD FIOSTK+2 + AND C7700 /TAKE OUT JUST THE PROJ # OF THE FILE + CIA + TAD PRJPRO /DOES IT AGREE WITH JOB'S PROJ #? + AND C7700 + SNA CLA + TAD P0003 /4 IN AC SAME PROJ # + CLL IAC /1 IN AC DIFF PROJ # + JMP .+4 +OPNOWN, TAD PRJPRO + DCA FIOSTK+2 + TAD C0010 /10 IN AC IF [S]HE OWNS THE FILE + DCA PRJPRO /STORE PROTECTIVE BITS FOR READ CASE + TAD FIOSTK+2 /PICK UP THE PROJ PROG # OF THE FILE + JMS I UTS01 /SEARCH OPEN UFD TABLE RETURN WITH PTR IN AC + JMP OPN6 /UFD NOT OPEN, GO OPEN IT +OPN2, DCA I OPENTT /SAVE ITS RELATIVE PTR IN ENTTBL + TAD I OPENTT /GET RELATIVE ADDRESS OF UFD TBL + JMS I BLDP1 /BUILD A PTR TO RETTBL ENTRY + DCA FIOSTK+2 /SAVE IT + JMS I DS01 /3 WORD SEARCH + FIOSTK+2 + JMP OPN3 /NO SUCH FILE + TAD P0007 /PTR TO RETRIEVAL ENTRY IN BUFFER + DCA OPBUFP + ISZ OPENTT + TAD I ZDS1 /GET THIS FILE'S DIRECTORY ADDRESS + DCA I OPENTT /SAVE IN SECOND WORD OF ENTTBL ENTRY + CLL CMA RTL /-3 IN AC + TAD OPBUFP /PTR TO PROTECTION BIT + JMS I OPN11A /CHECK PROTECTION OF THE FILE +PRJPRO, 0 + TAD I OPBUFP /ADD POINTER TO FIRST RETRIEVAL WINDOW AND + DCA PRJPRO /SAVE WITH PROTECTION BIT + TAD OPNFI0 /JOB STATUS WORD FILE FOR FILE 0 + TAD FIOSTK+1 + DCA OPACSC /FOR LINKING A BLOCK + TAD I OPBUFP /GET RETRIEVAL WINDOW + DCA OPBUFP /SAVE IT + TAD FIOSTK+2 + JMS I GE01 /GET RETRIEVAL WINDOW IN CORE +OPBUFP, 0 + DCA OPENTT /SAVE THE BUFFER ADDRESS + FGETJT /GET THE ADDRESS OF JOB STATUS FOR THIS FILE +OPACSC, 0 + DCA OPACSC /SAVE POINTER + TAD OPACSC + JMS I GTBLO1 /GET A BLOCK LINKED FOR FILE CONTROL + JMP OPNOT /NO FREE CORE; CAN'T OPEN THEN + DCA OPBUFP /SAVE IT TO BUILD THE FILE CONTROL BLOCK + ISZ BASSWT + JMP OPN123 + TAD I BASWIN /IS BASIC WINDOW ALREADY SET UP? + IAC + SNA CLA /YES THEN HAS -1 + JMP OPRET1 /BASIC WINDOW ALREADY LOADED + TAD OPENTT /BUFFER ADDRESS OF THE WINDOW + JMS I BAS1A /CREATE BASIC WINDOW +OPRET1, TAD BASWIN /PUT BASIC WINDOW POINTER IN CONTROL BLOCK + DCA I OPBUFP +OPRET, CFLD + CLA CMA /ACCESS COUNT IN UFDTBL + TAD I UTPRNU /INCREASE BY -1 + DCA I UTPRNU + DATFLD + ISZ OPBUFP + ISZ OPBUFP /POINTS TO PROTECTION BIT + TAD PRJPRO + DCA I CPBUFP /PUT IN THE WRITE PROT BIT CREATED BEFOREHAND + JMP I .+1 /EXIT AND WRITE OUT TABLES + TABOUT + +OPN123, TAD OPBUFP /LINK A BLOCK + JMS I GTBLO1 + JMP OPN4 /NO FREE CORE, CAN'T OPEN + DCA OPENTU + CFLD + CIF + BLT + CFLD /SOURCE +OPENTT, 0 + DATFLD +OPENTU, 0 + -10 + JMP OPRET + OPN5, SNA /DID THE ACCOUNT EXIST? + JMP OPNOT /YES; LACK OF ROOM IN UFDTBL +OPN3, STL CLA RTR /NOT FOUND ERROR +OPNPRE, TAD P2000 /PROTECTED + TAD P2000 +OPNOT, CLL CML RAR /NOT OPEN, LACK OF SYSTEM RESOURCES + DCA FIUSAC + TAD FIOSTK+1 + JMS I EBLD0 /BE SURE TO REMOVE ALL THE POINTERS PUT IN BY OPEN + DCA OPENTT + DCA I OPENTT + JMP I FIEXIT + +OPN4, TAD I OPACSC /CONTROL BLOCK ADDR + JMS I RETBK1 /RETURN IT + DATFLD + DCA I OPACSC /CLEAR POINTER FROM JOB BLOCKS + CFLD + JMP OPNOT /TELL HIM/HER WE COULDN'T OPEN + +OPN6, TAD FIOSTK+2 /PICK UP PROJ PROG # + JMS I UFO01 /OPEN UFD + JMP OPN5 /NO LUCK, ERROR + JMP OPN2 /OPENED RELATIVE POSITION IN AC + + +OPNFI0, JOBF0 +OPN11A, OPN11 + + + +/ROUTINE TO CLOSE A FILE + +*600 + +CLS0, DCA CLSIFN /INTERNAL FILE NUMBER + TAD C7774 + DCA CLCNTR /COUNTER FOR BIT SCAN +CLS1, TAD FIOSTK+1 /PICK UP BIT PATTERN + RAL + DCA FIOSTK+1 + SZL + JMP CLS3 +CLS2, ISZ CLSIFN /NEXT FILE NUMBER + ISZ CLCNTR /DONE ALL FOUR? + JMP CLS1 /NO, KEEP AT IT + JMP I FIEXIT /THROUGH +CLS3, TAD CLSIFN /PICK UP INTERNAL FILE NUMBER + JMS CL0 /CLOSE THE FILE + JMP CLS2 /LOOK FOR MORE + +CLSIFN, 0 +CLCNTR, 0 + +/ROUTINE TO DO ACTUAL FILE CLOSE +CL0, 0 + JMS I EBLD0 + DCA CLENTP + TAD CFH + JMS I LNK01 /RETURNS WITH PTR TO FILE CONTROL BLOCK FROM JOB STATUS BLOCK + SNA + JMP CL3 /FILE WAS NOT OPEN + DCA CLPARP /SAVE IT + DCA I CFH /CLEAR POINTER TO FILE CONTROL BLOCK --- INDICATES FILE CLOSED + CFLD /SET DATA FIELD TO THIS FIELD + TAD CLPARP /POINTER TO PARAMETER BLOCK + JMS I CLOBA /PROPERLY CLOSE TESTING FOR BASIC + DCA CLO3 /SWITCH SET TO -1 IF BASIC FILE + CLA CMA CLL + TAD I CLENTP /RELATIVE POINTER TO UFD RETRIEVAL TABLE + CLL RTL + IAC + TAD UFDTBL + DCA CLUFDP /POINTER TO ACCESS COUNTER + DCA I CLENTP /CLEAR PTR IN ENTTBL TO INDICATE FILE IS CLOSED + CLA CMA + DCA TABSTA /SET TABLE STATUS TO WRITE OUT + ISZ I CLUFDP /REMOVE THIS JOB FROM ACCESS COUNT IN UFDTBL + JMP I CL0 + /THIS WAS THE ONLY GUY USING THIS UFD, SO CLOSE IT OUT + ISZ CLO3 /IS IT BASIC FILE BEING CLOSED? + JMP CL11 /NO, PROCEED FURTHER + DATFLD /YES, JUST ZERO ONE LOC IN FIELD 1 + DCA I BASWIN + CFLD +CL11, CLA CMA /NO ONE IS NOW ACCESSING THIS UFD + TAD CLUFDP + JMS I TF01 /FREE A TABLE ENTRY +CL3, CFLD + JMP I CL0 + +CLOBA, CLOBAS +CLPARP, 0 +CLENTP, 0 +CLUFDP, 0 + +/SKIPS IF NO OTHER USER IS ACCESSING THIS FILE +ENR0, 0 + TAD FIOSTK+1 + JMS I EBLD0 + DCA ENR1 /PTR INTO ENTTBL + ISZ ENR1 + TAD I ENR1 /GET ADDR IN ENTTBL + DCA ENR1 + TAD GDRETP /RTABLE + JMS I ENS01 /HOW MANY PEOPLE HAVE THIS FILE OPEN? +ENR1, 0 + SKP /FOUND THE SAME FILE OPEN + ISZ ENR0 /...ONLY ONE WHO HAS IT OPEN + JMP I ENR0 + +ENS01, ENS0 + +/CHANGE THE PROTECTION OF A FILE + +PRT0, TAD FIOSTK+1 /PICK UP INTERNAL FILE NUMBER + RTR + RTR + RAR + AND P0003 /AND OFF PROTECTION BITS + DCA PRIFNU /INTERNAL FILE NUMBER + TAD PRIFNU + JMS I UC01 /CHECK TO SEE IF USER IS OWNER + JMP PRT1 /ERROR RETURN, USER IS NOT OWNER + JMS I ACC01 /IS [S]HE UNDER ACCOUNT 1? + JMP PRT1+1 /YES; ERROR - [S]HE MUST USE #RENAME# + TAD PRIFNU + JMS I GD01 /GET THIS DIRECTORY ENTRY INTO CORE + SNA + JMP I DIRBAD /**************DEBUG************* + TAD P0004 + DCA PRENTP /POINTER TO PROTECTION BITS OF THIS FILE + TAD C7637 + AND FIOSTK+1 /PICK UP NEW PROTECTION BITS + DCA I PRENTP /RESTORE + DCA BUFMOD /SCHEDULE WRITE + JMP I FIEXIT + +PRT1, SZA CLA /ERROR + CLL CML RAR + CLL CML RAR + DCA FIUSAC + JMP I FIEXIT + +CLO3, +PRIFNU, 0 +PRENTP, 0 +C7637, 7637 + + +WHO0, JMS I JBLD0 + DCA PAS1 + CMA /ONE WORD SEARCH + JMS I DS01 /SEARCH THE MFD FOR THIS ACC'T # + PAS0 + JMP I DIRBAD /************DEBUG ONLY*********** + DCA PAS1 + TAD I PAS1 /GET ACC'T # FROM UFD FILE NAME BLOCK + ISZ PAS1 + DCA FIOSTK+1 /STORE ACC'T # + TAD I PAS1 + ISZ PAS1 + DCA FIOSTK+2 /STORE FIRST TWO CHRS OF PASSWORD + TAD I PAS1 + DCA FIOSTK+3 /STORE LAST TWO CHARS OF PASSWORD + JMP I PAINF5 /GO STORE THIS INFORMATION FOR RETURN TO MONITOR + +PAINF5, INF5 +PAS0, RTABLE +PAS1, +JBLD, 0 + TAD FIJOB + TAD JOBTAB + CFLD + DCA CFH + TAD I CFH + JMP I JBLD + +/ROUTINE TO MOVE THE RETRIEVAL WINDOW IN FIELD ZERO +*1000 + +WND0, TAD FIOSTK+2 /PICK UP INTERNAL FILE NUMBER + AND P0003 /AND OFF FIELD BITS + JMS I EBLD0 + DCA WNENTP /POINTER TO RETRIEVAL INFORMATION POINTER + TAD I WNENTP + JMS I BLDP1 /GENERATE ABSOLUTE PTR INTO RETTBL + DCA WNRETP /RETRIEVAL POINTER + TAD FIOSTK+7 + DCA WNFCBP /PTR TO THIS FILE'S FILE CONTROL BLOCK + TAD FIOSTK+5 + DCA WND5 /LOW ORDER DISK ADDRESS + DCA WNDCNT /GET INTO CORE + TAD WNDCCT /INITIALIZE COUNT + DCA WNDSCT + TAD C0177 + AND FIOSTK+1 /GET HIGH ORDER FILE ADDRESS + DCA WNDIRP + TAD SEGSIZ /GET RID OF ADDRESS WITHIN SEGMENT + CLL CIA + AND WND5 + RAL + TAD WNDIRP /NOW HAVE FILE SEGMENT #; NEED TO SHIFT IT + SKP + RAL + ISZ WNDSCT /SHIFT SEGCCT TIMES? + JMP .-2 + DCA WNSEGC + DATFLD /WNSEGC NOW HAS SEGMENT NUMBER TO GET + TAD I WNFCBP /PICK UP FIELD 0 WINDOW POINTER + DCA WNDPTR /PNTS TO FILE RETRIEVAL WINDOW FOR THIS FILE + ISZ WNFCBP + TAD I WNFCBP /PICK UP NUMBER OF CURRENT SEGMENT IN WINDOW + DCA WNCURS /CURRENT SEGMENT IN WINDOW + TAD WNSEGC /SEGMENT TO GET + JMS I WND201 /DIVIDE BY 7 (IGNORE REMAINDER) + JMS WND30 /MULTIPLY BY 7 + DCA WNSEGC /FIRST SEGMENT IN PROPER WINDOW + CLA CMA + TAD I WNDPTR /GET FIRST WORD OF FILE RETRIEVAL WINDOW + SNA CLA /=7777? + JMP WND6 /INVALID WINDOW POINTER + TAD WNCURS /CURRENT SEGMENT AT TOP OF CURRENT CORE WINDOW + CIA + \ No newline at end of file diff --git a/tss8/system/fipb.pal b/tss8/system/fipb.pal new file mode 100644 index 0000000..1a7de02 --- /dev/null +++ b/tss8/system/fipb.pal @@ -0,0 +1,1268 @@ +/NOW SEE IF THE SEGMENT BEING SOUGHT IS ONE WHICH FOLLOWS +/THOSE WHICH ARE PRESENTLY IN THE CORE WINDOW. IF THE +/SOUGHT BLOCK DOES FOLLOW THE PRESENT ONE, WE CAN LOOK +/THROUGH THE RETRIEVAL INFORMATION BLOCKS STARTING AT THE ONE +/NOW IN CORE. OTHERWISE, WE MUST START AT THE VERY BEGINNING +/OF THE LIST OF FILE RETRIEVAL INFORMATION BLOCKS + TAD WNSEGC + SPA SNA + JMP WND6 /PREVIOUS BLOCK, SO MUST START AT BEGINNING OF STRING + JMS I WND201 /DIVIDE BY 7 + CIA + DCA WNDCNT /MOVE FORWARD THIS MANY WINDOWS + TAD WNDPTR +WND10, DCA WNDIRP + TAD I WNDIRP /PICK UP ADDRESS OF NEXT WINDOW + CFLD /CHANGE TO CURRENT FIELD + SNA + JMP WND13 /END OF STRING + DCA WND11 + TAD WNRETP /POINTER TO UFD RETRIEVAL INFORMATION + JMS I GE01 /GET ENTRY INTO CORE +WND11, 0 + ISZ WNDCNT /HAVE WE MOVED AHEAD ENOUGH BLOCKS? + JMP WND10 /NOT PROPER WINDOW, KEEP LOOKING + DCA WNDIRP +WND13, 6202 /CIF FIELD 0 + BLT + 6221 /SOURCE FIELD (ALWAYS 2) +WNDIRP, 0 /SOURCE + DATFLD /DESTINATION FIELD +WNDPTR, 0 /DESTINATION + -10 /WORD COUNT + TAD WNDCNT /CORRECT FOR WINDOWS THAT WEREN'T THERE + JMS WND30 /MULTIPLY BY 7 + TAD WNSEGC /SEGMENT NUMBER OF FIRST IN WINDOW + DATFLD + DCA I WNFCBP /FILE CONTROL BLOCK POINTER + ISZ WNFCBP /POINT AT PROTECTION WORD IN CONTROL BLOCK + TAD I WNFCBP /GET CURRENT STATUS + AND P0007 /SAVE ONLY STATUS BITS + TAD WND11 /ADD IN POINTER TO CURRENT RETRIEVAL WINDOW + DCA I WNFCBP /AND SAVE + JMP I .+1 /GO SET #JSIOTC# BEFORE EXITING + INF6 + +WND6, CFLD /CHANGE TO CURRENT FIELD + CLA CLL + TAD WNSEGC /SEGMENT TO GET INTO IN CORE WINDOW + JMS I WND201 /DIVIDE BY 7 + CMA + DCA WNDCNT /WINDOW NUMBER TO GET INTO CORE + ISZ WNENTP + TAD I WNENTP /UFD ENTRY ADDRESS OF OPEN FILE + DCA WND5 + TAD WNRETP /RETRIEVAL INFORMATION POINTER + JMS I GE01 /GET ENTRY INTO CORE +WND5, 0 + TAD P0007 + JMP WND10 + +/ROUTINE TO MULTIPLY A NUMBER BY 7 + +WNDSCT, +WND30, 0 + DCA CFH + TAD CFH + CLL RAL + TAD CFH + CLL RAL + TAD CFH + JMP I WND30 + +WNFCBP, 0 +WNENTP, 0 +WNRETP, 0 +WNDCNT, 0 +WNSEGC, 0 +WNDCCT, 7773 +WNCURS, 0 +C0177, 177 + + +IODISP, + ASD1 + REL1 + REN0 + OPN0 + CLS0 + WND0 + PRT0 + WND0 + CRF0 + EXT0 + RED0 + INF0 + LGI0 + LGO0 + WHO0 + SEGS0 + +*1200 + +/ROUTINE TO CREATE A NEW FILE + +CRF0, TAD FIOSTK+1 + SNA CLA + JMP CRF30 + JMS I JBLD0 + JMS I UTS01 /SEARCH THE UFD TABLE + JMP I DIRBAD /***************DEBUG************** + JMS I BLDP1 /BUILD A PTR TO RETTBL + DCA FIOSTK /MAKE A LINKAGE FOR DIRECTORY SEARCH + JMS I ACC01 /IS IT ACCOUNT 1? + CMA /YES; MAKE IT A ONE WORD SEARCH + JMS I DS01 /SEARCH THE DIRECTORY FOR THIS NAME + FIOSTK /POINTER TO SEARCH PARAMETERS + JMP CRF2 /COULD NOT FIND THIS NAME, CONTINUE + DCA CRBUFP /FOUND A FILE OF THIS NAME IN UFD. PTR INTO CRBUFP + JMS I ACC01 /SEE IF THIS IS ACCOUNT 1 + JMP CRF30 /CAN'T DELETE UFD'S AS THOUGH THEY ARE FILES + TAD I ZDS1 /POINTER TO "DS1"=ADDR WITHIN UFD WHERE THIS FILE NAME'S BLOCK IS + DCA CRF11 /UFD ADDRESS OF DIRECTORY ENTRY + TAD FIOSTK + JMS I CRENS /SEARCH ENT TABLE FOR ACCESSES TO THIS FILE +CRF11, 0 /UFD ADDR OF DIRECTORY ENTRY + JMP CRF10 /ERROR, FILE IS OPEN +/COMES HERE IF A FILE BY THIS NAME ALREADY EXISTS, BUT NO ONE HAS OPENED IT + TAD CRF11 + DCA I CRGD11 /GD1 + TAD FIOSTK + DCA GDRETP + TAD CRBUFP /PTR TO WHERE IN CORE BUFFER THE UFD BLOCK FOR THIS FILE IS + JMS I SAVCRA /DELETE THE EXISTING FILE OF THIS NAME + JMS I DS01 /SEARCH THE UFD FOR AN EXISTING FILE OF THE SAME NAME + FIOSTK + SKP /NONE THERE, SO OKAY TO CREATE ONE + JMP I DIRBAD /**************DEBUG ONLY********** + /NOW ALL SET TO CREATE THE FILE. TO DO THIS, WE NEED TWO BLOCKS OF +/THE UFD -- ONE FOR A NAME BLOCK AND THE SECOND FOR A FILE RETRIEVAL INFORMATION +/BLOCK. THESE BLOCKS ARE OBTAINED BY TWO CALLS TO DE0. AFTER THE FIRST, +/A DUMMY 7777 IS PUT IN THE FOUND BLOCK TO PREVENT THE SECOND CALL +/TO DE0 FROM FINDING THE SAME BLOCK. IF BOTH BLOCKS CANNOT BE OBTAINED, +/THE CREATE CANNOT BE EXECUTED. +CRF2, DCA CRLINK /ADDR OF LINK WORD OF LAST ENTRY IN UFD CHAIN + ISZ UTPRNU /POINTS AT LOGIN DISK QUOTA + TAD I UTPRNU /-SEGMENTS ALLOWED WHILE LOGGED IN + TAD SEGLIM /PLUS NUMBER OF SEGMENTS FOUND WHILE SEARCHING HIS/HER DIRECTORY + ISZ UTPRNU /POINT AT HOLD REG FOR SEGMENT COUNT + SMA CLA /IS [S]HE ALLOWED ONE MORE? + JMP CRF1 /NO; TELL HIM/HER DIRECTORY FULL + TAD FIOSTK /POINTER TO RETRIEVAL INFORMATION + JMS I DE01 /FIND AN EMPTY DIRECTORY ENTRY + JMP CRF1 /ERROR, NO AVAILABLE ENTRIES + DCA CRF4 /ADDRESS OF THIS ENTRY + JMS CRF40 /GET THIS ENTRY INTO CORE + CLA CMA + DCA I CRBUFP /SIMULATE A USED ENTRY + DCA BUFMOD /SCHEDULE WRITE + TAD FIOSTK + JMS I DE01 /FIND ANOTHER ENTRY + JMP CRF51 /ERROR + DCA CRF3 + TAD FIOSTK + JMS I GE01 /MAKE SURE SECOND ENTRY IS IN CORE +CRF3, 0 + DCA INDEX + JMS I SATL1 /FIND A FREE SEGMENT IN THE SAT + SNA + JMP CRF20 /COULD NOT FIND A FREE SEGMENT + /AT THIS POINT, WE HAVE A DISC SEGMENT AND TWO BLOCKS FROM THE +/UFD. THIS IS ALL THAT IS NEEDED, SO GO AHEAD AND EXECUTE THE CREATE + DCA CRF11 /SAVE SEGMENT NUMBER + TAD CRF11 + DCA I INDEX /PUT IT IN THE FIRST BLOCK OF RETRIEVAL + DCA BUFMOD /SCHEDULE WRITE + JMS CRF40 /GET FIRST FOUND ENTRY INTO CORE + TAD FIOSTK+1 /TRANSFER FILE NAME INTO DIRECTORY ENTRY + DCA I CRBUFP + TAD CRBUFP /MOVE POINTER TO AUTO-INDEX + DCA INDEX + TAD FIOSTK+2 + DCA I INDEX + TAD FIOSTK+3 + DCA I INDEX + DCA I INDEX /ZERO LINK (THIS IS THE LAST FILE) + TAD CRPROT /PICK UP PROTECTION BITS + DCA I INDEX /STORE INITIAL PROTECTION CODE + JMS I CRFUFA /GO SEE IF WE'RE CREATING A NEW ACCOUNT + CDF /CDF FIELD 0 + TAD I DATE /GLOBAL TO DATE + CFLD /CHANGE TO CURRENT FIELD +CRFUFR, DCA I INDEX /STORE DATE OF CREATION + TAD CRF3 /POINTER TO RETRIEVAL + DCA I INDEX /SET UP PTR TO RETRIEVAL INFORMATION + DCA BUFMOD /SCHEDULE WRITE + TAD FIOSTK /GET LAST ENTRY ON STRING INTO CORE + JMS I GE01 +CRLINK, 0 + DCA CRBUFP /PTR TO WHERE THE PRESENT LAST ENTRY IS + TAD CRF4 + DCA I CRBUFP + DCA BUFMOD /SCHEDULE WRITE + JMS I ACC01 /IS [S]HE CREATING A NEW UFD? + JMP CRFUFZ /YES + IAC +CRFSEG, TAD SEGLIM /STORE SEGMENT COUNT IN THE UFDTBL + DCA I UTPRNU + JMP I .+1 /REMEMBER TO WRITE OUT THE TABLES + TABOUT + +CRFUFZ, TAD CRF11 + JMS I SCL01 /WRITE OUT DIRECTORY BLOCK & CLEAR NEW UFD BLBOCK + JMP I FIEXIT /DON'T MODIFY THE MFD'S ENTRY IN THE UFDTBL + CRF20, STL RTR /DISK FULL + STL RTR + DCA FIUSAC /SAVE PARTIAL ERROR CODE +CRF51, JMS CRF40 /GET FIRST ENTRY BACK AGAIN + DCA I CRBUFP /ZERO OUT THE -1 WE PUT THERE + DCA BUFMOD /SCHEDULE WRITE +CRF1, CLA CLL CML RTR + CLL CML RAR + TAD FIUSAC /GET PARTIAL ERROR CODE + DCA FIUSAC /SAVE ERROR CODE; EITHER DISK FULL OR DIRECTORY FULL + JMP CRFSEG /GO SAVE SEGMENT COUNT ANYWAY +CRF30, CLA CLL CML RTR +CRF10, TAD C4400 + DCA FIUSAC /SAVE ERROR CODE; EITHER FILE IN USE OR BAD FILE NAME + JMP I FIEXIT + +CRF40, 0 + TAD FIOSTK + JMS I GE01 +CRF4, 0 + DCA CRBUFP + JMP I CRF40 + + +CRPROT, 12 +CRGD11, GD1 +CRENS, ENS0 +SAVCRA, SAVCRE +SCL01, SCL0 +CRFUFA, CRFUFD +CRBUFP, 0 + /ROUTINE TO EXTEND A FILE + +*1400 + +EXT0, JMS EXT1 /MAKE SURE IT'S OKAY TO EXTEND THIS FILE + TAD P0007 /...EXT1 RETURNS WITH PTR TO NAME BLOCK FOR THIS FILE + DCA EXBUFP /SAVE POINTER TO RETRIEVAL CHAIN + JMS I EXTQUA /CHECK THE DISK QUOTA FOR THIS USER +/NOW TRACE THROUGH TO LAST RETRIEVAL INFORMATION BLOCK FOR THIS FILE +EXT4, TAD I EXBUFP + SNA /END OF CHAIN? + JMP EXT3 /YES + DCA EXWNDP /WINDOW POINTER + TAD EXWNDP + JMS EXGE0 /GET WINDOW INTO CORE + DCA EXBUFP /SAVE POINTER TO NEXT RETRIEVAL WINDOW + JMP EXT4 /KEEP LOOKING FOR END + +EXT3, TAD C7771 + DCA EXT1 /7 SEGS PER WINDOW +EXT5, ISZ EXBUFP + TAD I EXBUFP /PICK UP ENTRY IN WINDOW + SNA CLA /IS IT THE FIRST FREE? + JMP EXT7 /YES, FIND A SEGMENT + ISZ EXT1 /END OF WINDOW? + JMP EXT5 /NO, KEEP LOOKING +EXT9, TAD GDRETP /RETRIEVAL POINTER + JMS I DE01 /FIND AN EMPTY ENTRY + JMP EXT20 /PARTIALLY SATISFIED + DCA EXNFRE /FREE SEGMENT ADDRESS + TAD EXWNDP /CURRENT WINDOW POINTER + JMS EXGE0 /GET IT INTO CORE + DCA EXBUFP + JMS I SATL1 /GET A FREE DISK SEGMENT FOR THE NEXT WINDOW + SNA + JMP EXT20 /THERE ARE NONE; AVOID LINKING TO NEXT WINDOW + DCA EXPROP /SAVE UNTIL WINDOWS ARE LINKED UP + TAD EXNFRE /NEXT FREE WINDOW + DCA I DXBUFP /LINK IT ONTO CHAIN + DCA BUFMOD /SCHEDULE WRITE + TAD EXNFRE + DCA EXWNDP /UPDATE CURRENT WINDOW POINTER + TAD EXWNDP + JMS EXGE0 /GET NEW WINDOW INTO CORE + IAC + DCA EXBUFP /POINTER TO FIRST ENTRY OF NEW WINDOW + TAD C7771 /ALLOW 7 ENTRIES IN NEW WINDOW + DCA EXT1 + TAD EXPROP /GET DISK SEGMENT + EXT12, DCA I EXBUFP /STORE SEGMENT IN RETRIEVAL WINDOW + DCA BUFMOD /SCHEDULE WRITE + ISZ I EXQ1 /INCREMENT TOTAL COUNT IN UFDTBL + ISZ EXBUFP /INCR WINDOW POINTER + ISZ EXSEGC /HAVE WE EXTENDED FAR ENOUGH? + JMP EXT6 /NO +EXT20, TAD EXSEGC + CIA + DCA FIUSAC /NUMBER OF SEGMENTS WE FAILED TO FIND + TAD FIOSTK+1 /REQUEST IS SATISFIED + JMS I GD01 /GET DIRECTORY ENTRY INTO CORE + TAD C0005 + DCA EXBUFP /POINTER TO SEGMENT COUNT + TAD FIOSTK+2 /NUMBER OF WORDS TO BE ADDED + TAD I EXBUFP /NUMBER ALREADY IN FILE + TAD EXSEGC /MINUS NUMBER WE FAILED TO GET + DCA I EXBUFP /UPDATE ENTRY + DCA BUFMOD /SCHEDULE WRITE + JMP I .+1 /EXIT AND WRITE OUT TABLES + TABOUT + +EXT6, ISZ EXT1 /END OF CURRENT WINDOW? + SKP /NOT YET + JMP EXT9 /YES, TRY LINKING TO ANOTHER +EXT7, JMS I SATL1 /GET A FREE SEGMENT FROM SAT + SNA + JMP EXT20 /PARTIALLY SATISFIED + JMP EXT12 /SAVE NEW SEGMENT +EXGE0, 0 /GET WORD OF THIS UFD INTO CORE + DCA EXGE1 + TAD GDRETP + JMS I GE01 +EXGE1, 0 + JMP I EXGE0 + +EXT30, TAD C4400 + JMP EXT10+2 + +EXT10, CLL CML RAR + CLL CML RAR + DCA FIUSAC + JMP I FIEXIT + +EXTQUA, EXTQU0 +EXFCBP, 0 +EXPROP, 0 +EXBUFP, 0 +EXWNDP, 0 +EXSEGC, 0 +EXNFRE, 0 + /ROUTINE TO SET UP TO ALTER A FILE (BY EITHER EXTENDING IT OR +/REDUCING IT). CHECK PROTECTION CODE TO SEE IF THIS IS ALLOWED. MAKE SURE +/NO ONE ELSE HAS THIS FILE OPEN. JMP TO ERROR EXIT ON EITHER OF THESE CON- +/DITIONS. IF ALL IS OKAY. RETURN WITH PTR TO UFD NAME BLOCK ENTRY +EXT1, 0 + JMS I IFN01 /MASK OFF BITS 0-9 OF FIOSTK+1 + TAD FIOSTK+1 /INTERNAL FILE NUMBER + JMS I LNK01 /GET PTR TO APPROPRIATE FILE CONTROL BLOCK + SNA + JMP EXT10+1 /ERROR, FILE NOT OPEN + DCA EXFCBP /FILE CONTROL BLOCK POINTER + JMS I ACC01 /AS [S]HE UNDER ACCOUNT1? + JMP EXT2 /YES; SKIP PROTECTION CHECK + TAD FILPRP /GLOBAL TO "FILPRO" + TAD EXFCBP + DCA EXPROP /POINTER TO PROTECTION BIT + DATFLD /CDF FIELD 1 + TAD I EXPROP /PICK UP PROTECTION BIT + CFLD /CHANGE TO CURRENT FIELD + AND P0004 /STRAIN OFF ANY EXTRANEOUS BITS + SZA CLA + JMP EXT10 /WRITE PROTECTED +EXT2, TAD FIOSTK+1 /INTERNAL FILE NUMBER + JMS I GD01 /GET DIRECTORY ENTRY INTO CORE + DCA REL6 /POINTS TO WHERE UFD NAME BLOCK IS IN CORE + JMS I ENR01 /IS THIS THE ONLY USER WHO HAS THIS FILE OPEN? + JMP EXT30 /NO, SO ABORT AND RETURN ERROR CODE + TAD FIOSTK+2 /ARE ANY SEGMENTS INVOLVED? + SNA + JMP I FIEXIT /NO, NOTHING TO DO THEN + CIA + DCA EXSEGC /SAVE NEGATIVE COUNT + DATFLD + TAD I EXFCBP /GET POINTER TO CURRENT WINDOW + DCA EXPROP + IAC + DCA I EXPROP /INVALIDATE THE WINDOW + CFLD + TAD REL6 + JMP I EXT1 + /ROUTINE TO REDUCE A FILE + +*1600 + +RED0, JMS I EXT11 /MAKE SURE IT'S OKAY TO REDUCE THIS FILE + DCA REBUFP /...IF OKAY, RETURNS WITH PTR TO FILE NAME BLOCK + JMS I ACC01 /IS [S]HE UNDER ACCOUNT 1? + JMS I REDUFD /SEE IF [S]HE'S REDUCING A UFD + TAD REBUFP + TAD C0005 + DCA RELINK /NOW POINTS TO NUMBER OF SEGMENTS PRESENTLY IN FILE + TAD FIOSTK+2 /SEGMENTS TO BE REMOVED + SPA /IS IT NEGATIVE? + JMP RED5 /YES; DELETE THE ENTIRE FILE + CIA + TAD I RELINK + SMA SZA /DELETE THE FILE? + JMP RED6 /NO, REDUCE IT +RED5, CLA CLL /YES, WIPE IT OUT AND CLOSE + TAD REBUFP + JMS RED1 /WIPE OUT THE FILE NAME BLOCK FROM THE UFD + TAD FIOSTK+1 /INTERNAL FILE NUMBER + JMS I CL01 /CLOSE THIS FILE SINCE IT NO LONGER EXISTS + JMP I FIEXIT +RED6, DCA I RELINK /UPDATE SEGMENT COUNT + DCA BUFMOD /SCHEDULE WRITE + TAD I RELINK + DCA CFH + ISZ RELINK + ISZ RELINK + TAD I RELINK + DCA RELINK /POINTER TO FIRST WINDOW ON CHAIN + TAD CFH + JMS RED40 /WIPE OUT REST OF FILE + JMP I FIEXIT + +REDGD1, GD1 + +RED40, 0 + JMS I WND201 /DIVIDE BY 7 + CMA + DCA REWNDC /NUMBER OF WHOLE WINDOWS WHICH ARE TO REMAIN + TAD RELINK /GET POINTER TO FIRST RETRIEVAL WINDOW + JMS I RED302 /ROUTINE TO DO ACTUAL REDUCTION + JMP I RED40 + +EXT11, EXT1 +LINK01, LINK0 +RED302, RED30 +REDUFD, REDUF0 +REBUFP, 0 + /ROUTINE TO DELETE A FILE + +UFBUFP, +RED1, 0 + DCA REBUFP /PTR TO THE UFD ENTRY FOR THE FILE + TAD REBUFP + TAD P0003 + DCA RELINK /LINK TO NEXT FILE NAME IN THIS UFD + TAD I RELINK + DCA RED3 + TAD I REDGD1 /UFD ADDR OF THIS DIRECTORY ENTRY + DCA RED4 + TAD REBUFP + TAD P0007 + DCA RELINK /NOW POINTS TO A RETRIEVAL BLOCK FOR THIS FILE + TAD I RELINK + DCA RELINK +RED2, DCA I REBUFP /CLEAR OUT FIRST WORD OF ENTRY + ISZ REBUFP + TAD REBUFP + AND P0007 + SZA CLA /END OF CURRENT WINDOW? + JMP RED2 /NO, KEEP CLEARING + DCA BUFMOD /SCHEDULE WRITE + JMS I LINK01 +RED4, 0 /UFD ADDR OF THIS DIRECTORY ENTRY +RED3, 0 /UFD ADDR OF DIRECTORY ENTRY WHICH IS NEXT IN THE CHAIN + JMS RED40 /GO WIPE OUT ACTUAL FILE + JMP I RED1 + /ROUTINE TO EXTEND A UFD + +/CALLING SEQUENCE: +/ TAD (RETRIEVAL POINTER) +/ JMS UFD0 +/ ERROR RETURN +/ NORMAL RETURN + +UFD0, 0 + DCA UFRETP /RETRIEVAL POINTER + TAD C7771 + DCA CFH /COUNTER FOR OVERSIZE UFD +/NOW SCAN DOWN THE UFD'S FILE RETRIEVAL BLOCK +UFD2, TAD I UFRETP + SNA CLA + JMP UFD1 /FOUND THE END OF THE LIST OF SEGMENT NUMBERS + ISZ UFRETP /POINT TO NEXT SEGMENT NUMBER + ISZ CFH /UFD ALREADY MAXIMUM SIZE? + JMP UFD2 /NO, LOOK AT NEXT WORD + JMP I UFD0 /YES, ERROR RETURN + +/COMES HERE WHEN IT HAS FOUND THE END OF THE RETRIEVAL BLOCK'S LIST OF SEGMENTS +UFD1, JMS I SATL1 /GET A FREE SEGMENT FROM SAT + SNA + JMP I UFD0 /NO MORE FREE SEGMENTS + DCA I UFRETP /ADD TO RETRIEVAL INFORMATION + TAD UFRETP + JMS I ENS31 /CONVERT ABS RETTBL PTR TO A RELATIVE ENTRY NUMBER + CLL RTL /...TIMES FOUR + TAD UFDTBL /...PLUS BASE ADDR OF UFDTBL + DCA CFH /POINTER TO PROJ,PROG NUMBER OF FILE OWNER + TAD I CFH /PICK UP PROJ,PROG NUMBER + JMS I UFO61 /GO GET THE RETRIEVAL INFO FOR THIS GUY'S UFD INTO CORE + JMP I DIRBAD /*************DEBUG ONLY*********** + DCA UFBUFP /PTR TO RETRIEVAL INFORMATION + ISZ UFBUFP + TAD I UFBUFP + SZA CLA /SCAN TO END OF LIST OF SEGMENT NUMBERS + JMP .-3 + TAD I UFRETP /GET NUMBER OF NEW SEGMENT + DCA I UFBUFP /PUT IT IN RETRIEVAL BLOCK LIST + DCA BUFMOD /SCHEDULE WRITE + STA + DCA TABSTA /SET TABLE STATUS TO CHANGE + TAD I UFRETP /NEW SEGMENT NUMBER + JMS SCL0 /ZERO OUT THE NEW SEGMENT + ISZ UFD0 /SET UP NORMAL RETURN + JMP I UFD0 + +ENS31, ENS3 +UFO61, UFO6 + /ROUTINE TO ZERO OUT A DISC SEGMENT +/IT ZEROES THE CORE BUFFER THEN EXECUTES A CALL +/TO RD301 (THE ACTUAL READ NEVER HAPPENS). +/THUS, THE SYSTEM THINKS THAT THE SEGMENT BEING +/CLEARED IS ACTUALLY IN CORE. IT WILL BE WRITTEN OUT LATER. +SCL0, 0 + DCA UFRETP /SEGMENT NUMBER + JMS I WRT1 /MAKE SURE THE BUFFER IS EMPTY + TAD P7400 + DCA CFH /SET UP COUNTER FOR CLEARING SEGMENT + TAD BUFFER + DCA UFBUFP +UFD3, DCA I UFBUFP /START TO CLEAR BUFFER AREA + ISZ UFBUFP + ISZ CFH + JMP UFD3 + STA + TAD UFRETP /SEGMENT NUMBER + JMS I SCL11 /NOW FAKE A READ + DCA BUFMOD /SCHEDULE WRITE + JMP I SCL0 +RELINK, +UFRETP, 0 +SCL11, SCL1 +P7400, 7400 + +/ROUTINE TO PROVIDE FILE INFORMATION + +*2000 + +INF0, JMS I IFN01 /GET INTERNAL FILE NUMBER IN FIOSTK+1 + TAD FIOSTK+1 /INTERNAL FILE NUMBER + JMS I EBLD0 + DCA CFH /RELATIVE POINTER TO UFD RETRIEVAL INFORMATION + TAD I CFH /GET PTR TO RETTBL OUT OF ENTTBL + SNA /DOES IT EXIST? + JMP INF1 /NO, SO FILE IS NOT OPEN + CIA + CLL CMA RTL /SUBTRACT ONE; MULTIPLY BY FOUR + TAD UFDTBL + DCA INUFDP /POINTER TO USER PROJ,PROG NUMBER + TAD I INUFDP + DCA FIOSTK+2 /SET UP LINKAGE FOR GD0 + TAD FIOSTK+1 /INTERNAL FILE NUMBER + JMS I GD01 /GET DIRECTORY ENTRY FOR THIS FILE INTO CORE + CIA + CMA + DCA INDEX /SET UP INDEX REGISTER FOR TRANSFER + TAD I INDEX /OF NAME AND OTHER DIRECTORY INFORMATION + DCA FIOSTK+3 + TAD I INDEX + DCA FIOSTK+4 + TAD I INDEX + DCA FIOSTK+5 + ISZ INDEX + TAD I INDEX + DCA FIOSTK+6 + TAD I INDEX + DCA FIOSTK+7 +INF5, DATFLD + TAD I FIOPTR /PICK UP JOBLNK WORD FROM JOB STATUS BLOCK + DCA INF4 /DESTINATION IN FIELD 0 + CFLD /CHANGE TO PRESENT FIELD + 6202 /CIF FIELD 0 + BLT /MOVE FIOSTK INFORMATION INTO IOT PARAMETER BLOCK + 6221 /SOURCE FIELD + FIOSTK /SOURCE + DATFLD /DESTINATION FIELD +INF4, 0 /DESTINATION + -10 /WORD COUNT + INF6, CDF + TAD I OURFLD + AND C0200 + SZA CLA + JMP I FIEXIT /WE WERE CALLED BY SI - DON'T SET JSIOTC OR WE'LL GAG + DATFLD + TAD I JOBDAT /GLOBAL TO "JOBDAT" + IAC + DCA INSPTR /NOW POINTS TO STATUS WORD + TAD INIOTC /JSIOTC + CMA + AND I INSPTR /SET JSIOTC TO INDICATE THAT FIP + TAD INIOTC /...IS RETURNING INFORMATION IN THE IOT PAR. BLOCK + DCA I INSPTR + JMP I FIEXIT /EXIT + +INF1, DCA FIOSTK+2 + JMP INF5 + +INUFDP, 0 +INSPTR, 0 +OURFLD, CORTBL+1 +INIOTC, 40 + + +/ROUTINE TO SKIP IF CALLING USER IS NOT SYSTEM MANAGER +ACT01, 0 + JMS I JBLD0 /GET PPN + CLL RAR + SZA CLA /IS IN ACCOUNT 1? + ISZ ACT01 /NO; SKIP ON RETURN + JMP I ACT01 + /LOGIN ROUTINE + +LGI0, TAD RETTBL /MFD RETRIEVAL IS IN ENTRY 0 + DCA FIOSTK+1 /SET UP PTR TO RETRIEVAL INFORMATION CONTAINED IN RETTBL + TAD FIOSTK+2 /ACCOUNT #0 + SNA CLA + JMP LGI20 /UNAUTHORIZED ACCOUNT + JMS I DS01 /SEARCH THE MFD (AC=0 TO INDICATE 3-WORD SEARCH) + FIOSTK+1 /ADDR OF PTR TO RETRIEVAL INFORMATION OF DIRECTORY TO BE SEARCHED + JMP LGI20 /COULD NOT FIND ENTRY IN MFD + DCA LGMFDP /OK TO LOG IN - POINTER TO DIRECTORY ENTRY IS IN ACC. + TAD FIOSTK+2 /PROJ,PROG NUMBER + JMS I UTS01 /SEARCH THE UFD TABLE + SKP /THIS PROJ,PROG NUMBER NOT THERE + JMP LGI1 /UFD ALREADY ON TABLE - RETURNS WITH ITS RELATIVE POSITION IN TABLE + TAD FIOSTK+2 /PROJ,PROG NUMBER + JMS I UFO01 /OPEN THE UFD - I.E. MAKE AN ENTRY IN UFDTBL, RETTBL + JMP LGI20 /COULD NOT FIND ROOM ON TABLE + +LGI1, CLA CMA + TAD I UTPRNU + DCA I UTPRNU /ACCOUNT FOR NEW ENTRY IN ACCESS COUNT + +/COMES HERE WHEN THE UFDTBL & RETTBL HAVE BEEN UPDATED +/TO INCLUDE THIS LOGIN + + FGETJT + JOBSTS + DCA LGI3 /ADDRESS OF STR0 + TAD FIOSTK+2 /ACCOUNT NUMBER? + AND C7774 /IS IT LESS THAN 4? + SNA CLA + TAD C0200 /YES - SET ACCOUNT PRIVILEGE BIT + DATFLD + DCA I LGI3 /AND SAVE IT + JMS I JBLD0 + CLA + TAD FIOSTK+2 /PROJ,PROG NUMBER + JMP I .+1 + RESET + +LGI20, CFLD + CLA CMA /COULD NOT LOGIN - RETURN WITH 7777 + DCA FIUSAC /INDICATE INABILITY TO LOG IN + JMP I FIEXIT + +GTB1, +LGMFDP, 0 + + /DIRECTORY SEARCH + +/CALLING SEQUENCE: +/ CLA OR CIA (3 OR 1 WORD SEARCH) +/ JMS DS0 +/ POINTER-----------------RETRIEVAL STACK POINTER +/ RETURN IF NOT FOUND NA +/ GOOD RETURN ME +/ (POINTER IN AC) XX + +*2200 +DS0, 0 + SNA CLA /SKIP IF ONE WORD SEARCH + CLL CML RTL /THREE WORD COMPARE + CMA + DCA DSWDNR /MINUS NUMBER OF WORDS TO COMPARE + TAD I DS0 /PICK UP POINTER TO RETRIEVAL INFORMATION + DCA DSRETS + ISZ DS0 + TAD DSM160 /SET UP COUNTER ON # ENTRIES CHECKED + DCA DSKCNT + TAD I DSRETS /GET RETRIEVAL POINTER + CIA + TAD RETTBL + SNA CLA + STA /INHIBIT SEGMENT COUNTING OF THE MFD + DCA SEGLIM /ZERO SEGMENT COUNTER +DS2, DCA DS1 + TAD I DSRETS /GET PTR TO RETRIEVAL INFORMATION BLOCK + JMS I GE01 /GET THE ENTRY INTO CORE +DS1, 0 /WORD NUMBER -- I.E. THE ADDR WITHIN THE DIRECTORY + SNA + JMP BADDIR /FOULED-UP DIRECTORY! + DCA DSENTP /STORE POINTER TO ENTRY + TAD C0005 + TAD DSENTP + DCA DSCNTR /POINTS TO SEGMENT COUNT + TAD SEGLIM /THE TOTAL FOR THIS UFD + SPA /IS IT A UFD? + JMP DS4 /NO; SEE IF WE SHOULD RESET THE MFD + TAD I DSCNTR /ADD THIS FILE'S COUNT + DCA SEGLIM /SAVE NEW TOTAL +DS3, TAD DSWDNR /NUMBER OF WORDS TO COMPARE + DCA DSCNTR + TAD DSRETS + DCA DSOBJT /POINTER TO OBJECT NAME + TAD DSENTP + DCA DSENT /POINTER TO NAME IN BUFFER +DSCOM2, TAD I DSENT + ISZ DSENT + CIA + ISZ DSOBJT + TAD I DSOBJT + SZA CLA + JMP DSCOM1 /NOT FOUND + ISZ DSCNTR + JMP DSCOM2 /LOOK AT NEXT WORD OF NAME + ISZ DS0 /FOUND THE ENTRY + TAD DSENTP /PICK UP POINTER + JMP I DS0 /RETURN +/THIS ENTRY IS NOT THE ONE WE'RE LOOKING FOR, SO WE MUST +/GO LOOK AT THE NEXT ONE. IN THIS ENTRY IS A RELATIVE PTR TO THE NEXT ONE +/GET IT. +DSCOM1, ISZ DSKCNT /BAD DIRECTORY? + JMP DSCOM3 /IT ISN'T BAD AT THIS POINT +BADDIR, DCA RESFLG /CLEAR AC AND RESET FLAG + TAD P5400 /YES, INDICATE BAD DIRECTORY AND GET OUT + DCA FIUSAC /ONCE AGAIN, GOODNESS TRIUMPHS OVER EVIL + JMP RETURN /GO CLEAN UP BEFORE ABORTING +DSCOM3, TAD P0003 /CREATE POINTER TO NEXT ENTRY + TAD DSENTP + DCA DSCNTR + TAD I DSCNTR + SZA /IS THIS THE END OF THE DIRECTORY CHAIN? + JMP DS2 /NO, SO CONTINUE SEARCH + TAD P0003 + TAD DS1 + JMP I DS0 +DS4, TAD RESFLG /SHOULD WE RESET? + SZA CLA + JMP DS3 /NO + DCA I DSCNTR /CLEAR CPU TIME ACCUMULATOR + ISZ DSCNTR + DCA I DSCNTR /CLEAR DEVICE TIME ACCUMULATOR + DCA BUFMOD /REMEMBER TO WRITE IT BACK + JMP DS3 +DSWDNR, 0 +ENRETP, +DSRETS, 0 +ENADDR, +DSENTP, 0 +DSOBJT, 0 +DSENT, 0 +DSM160, -161 /-MAXIMUM # FILES USER CAN OWN (+2) +/RETURN A BLOCK OF FREE CORE +RESFLG, +RETBKS, 0 + CFLD + CIF + RETBLK + JMP I RETBKS +/RETURN A LINKED LIST OF FREE BLOCKS +ENTPTR, +DSKCNT, +RETBLS, 0 + SNA + JMP I RETBLS + JMS RETBKS + JMP .-3 + /SEARCH ENTTBL FOR OPENINGS TO FILE +/CALLING SEQUENCE: +/ TAD (RETRIEVAL POINTER) +/ JMS ENS0 +/ UFD ADDRESS OF DIRECTORY ENTRY +/ RETURN - FOUND AN ACCESS +/ RETURN - FOUND NO ACCESS + +DSCNTR, +ENS0, 0 + JMS I ENS30 + DCA ENRETP /RELATIVE POINTER + TAD I ENS0 /GET FILE DIRECTORY ADDRESS + CIA + DCA ENADDR + ISZ ENS0 /SKIP PAST ARG + TAD ENTTBL + DCA ENTPTR +ENS2, TAD ENRETP + CMA + TAD I ENTPTR + ISZ ENTPTR + SZA CLA + JMP ENS1 /DIFFERENT UFD ACCESS + TAD I ENTPTR /SAME UFD, SAME FILE? + TAD ENADDR + SZA CLA + JMP ENS1 /DIFFERENT FILE + TAD FIOSTK /WHICH IOT BROUGHT US HERE? + TAD ENSCRF /IF IT'S "CRF" ONE MATCH IS ENOUGH + SNA CLA + JMP I ENS0 /IT WAS; GET OUT + TAD FIOSTK+1 /FOUND A SIMILAR ENTRY + JMS I EBLD0 /SEE IF WE FOUND THE ENTRY FOR + CMA /THE GUY WHO CAUSED THE CALL TO + TAD ENTPTR /ENS0; IF IT IS, IGNORE THIS MATCH + SZA CLA + JMP I ENS0 /FOUND A SIMILAR ENTRY; DIFFERENT ENTTBL ENTRY +ENS1, ISZ ENTPTR + TAD ENTPTR + CIA + TAD ENTEND /END OF ENT TABLE + SZA CLA + JMP ENS2 /KEEP LOOKING + ISZ ENS0 /SKIP ON RETURN + JMP I ENS0 +ENS30, ENS3 +ENSCRF, -CRF + /ROUTINE TO LOOK IN THE SAT FOR A FREE SEGMENT + +/CALLING SEQUENCE: +/ JMS SATLOK +/ RETURN (SEGMENT NUMBER IN AC, 0=NONE AVAILABLE) +*2400 +SATLOK, 0 + CLA CMA CLL RAL /7776 + DCA SATMSK /MAKE TWO PASSES OF THE TABLE + TAD I SATCNT /# OF AVAILABLE DISC SEGMENTS + SNA /ARE THERE ANY? + JMP I SATLOK /NO, SO FORGET IT + CIA + CMA + DCA I SATCNT /DECREMENT SATCNT + DCA SATCT2 + CLA CMA + DCA SATSTA /SET SAT STATUS TO WRITE OUT +/LOOK FOR A WORD IN SAT TABLE WITH A ZERO BIT IN IT +SAT1, TAD I SATPNT /GET A WORD FROM SAT TABLE + CMA + SZA CLA /ARE ALL BITS SET TO ONE? + JMP SAT2 /NO, SO WE'VE FOUND A SEGMENT + ISZ SATPNT /WAS THIS THE LAST WORD IN THE SAT TABLE? + JMP SAT1 /NO, SO KEEP LOOKING + TAD SAT5 /START LOOKING FROM THE BEGINNING + DCA SATPNT /PTR INTO SAT TABLE + ISZ SATMSK + JMP SAT1 /MAKE 1 MORE PASS + DCA I SATCNT /SOMETHING WRONG.. BETTER AVOID L2Q OVERFLOW + /BY SAYING NO SEGMENTS AVAILABLE + JMP I SATLOK +SAT5, -SATSIZ+2 + +/WE FOUND A SAT WORD WITH A ZERO BIT. NOW FIND THAT BIT. +SAT2, CLL CML RAR /4000 INTO ACC. + DCA SATMSK + ISZ SATCT2 + TAD I SATPNT /GET WORD FROM SAT TABLE + AND SATMSK /IS THE BIT CORRESPONDING TO THE ONE IN SATMSK SET? + SNA + JMP SAT3 /NO, SO WE FOUND THE ZERO BIT + RAR /MOVE MASK BIT ONE TO THE RIGHT + JMP SAT2+1 /...AND LOOK AT THE NEXT BIT + + /FOUND THE BIT WITHIN THE WORD - SATCNT INDICATES WHICH ONE IT IS +SAT3, TAD SATMSK + TAD I SATPNT + DCA I SATPNT /SET THE BIT IN SATTBL TO INDICATE THAT THIS SEGMENT IS NOW ALLOCATED + TAD SATPNT + TAD C0526 + DCA SATMSK +/NOW CALCULATE THE NUMBER OF THE DISC SEGMENT +/WHICH CORRESPONDS TO THIS BIT IN THE SAT TABLE + TAD SATMSK + CLL RAL + TAD SATMSK + RTL + TAD SATCT2 + JMP I SATLOK /EXIT WITH DISC SEGMENT NUMBER IN AC + + +SATPNT, -SATSIZ+2 +SATCNT, -SATSIZ+1 +SATEMP, +SATCT2, 0 +SATMSK, 0 + /ROUTINE TO RELEASE A SEGMENT IN SAT + +/CALLING SEQUENCE: +/ TAD (SEGMENT NUMBER) +/ JMS SATREL + +/DIVIDE SEGMENT NUMBER BY 14 (12 DECIMAL) +/QUOTIENT INDICATES WHICH WORD IN SAT TABLE CORRESPONDS +/TO THIS DISC SEGMENT. REMAINDER INDICATES WHICH BIT IN +/THAT WORD. +SATREL, 0 + TAD P2000 /SUBTRACT 14 X 400 + SZL /WAS THE SEGMENT THAT BIG? + JMP .+3 /YES + TAD P6000 /NO, ADD 14 X 400 + CLL /UN-DO THE LINK + RAL /SHIFT OUT A BIT OF THE QUOTIENT + ISZ CFH + JMP SATREL+1 /MORE TO DO YET + DCA SATPNT /REMAINDER IN LINK THRU AC2; QUOTIENT IN AC3 THRU AC11 + TAD SATPNT + AND P7000 + RTL + RTL + CMA /NEGATE THE REMAINDER + DCA SATEMP + TAD SATPNT + AND P0777 /JUST THE QUOTIENT THIS TIME + TAD SAT5 + DCA SATPNT + CLL CMA + RAR + ISZ SATEMP /SET UP A MASK CORRESPONDING TO PROPER BIT + JMP .-2 + AND I SATPNT /CLEAR SAT TABLE BIT; SEGMENT IS NOW AVAILABLE + DCA I SATPNT + ISZ I SATCNT /UPDATE THE AVAILABLE SEGMENTS COUNT + CLL STA + DCA SATSTA /REMEMBER WE CHANGED THE SAT TABLE + JMP I SATREL + /ACTUAL I/O ROUTINE +/SET UP ALL I/O PARAMETERS IN #FLPARB#, AND JMS FIPIO + +FIPIO, 0 + TAD FIPFLD + RAR + DCA FLPARB+2 /='S FIELD WE'RE IN TIMES 4 + CDF + TAD I JOB + AND C0400 /FIP OR SI CORTBL BIT ON? + SNA CLA + JMP .+3 /SI + TAD FIJOB + DCA I FIPJOB /FIP - KEEP HIGH PRIORITY ON THE SCHEDULER + TAD FIRETP /POINTER TO FIORET + DCA 1 /RETURN ADDRESS - SET TO RETURN BELOW WHEN FIP IS RESTARTED + TAD FIO3 /GET FIPBLK + DATFLD + DCA I FIUTBA + CFLD + CIF 00 + BLT /MOVE DISC TRANSFER PARAMETERS INTO FREE BLOCK LINKED TO DSUTBL + CFLD /FIP ALWAYS IN FIELD 2 + FLPARB /PARAMETER BLOCK + DATFLD /DESTINATION FIELD +FIO3, FIPBLK /DESTINATION + -10 /WORD COUNT + CDF CIF 00 + ISZ I DSBUSY /GLOBAL TO "DSBUSY" + WAIT /DISK BUSY + JMP I OVER /GO TO FIELD 0 TO INITIATE THE TRANSFER + +/MONITOR RETURNS CONTROL HERE AFTER COMPLETING THE TRANSFER +FIORET, CLA /RETURNS FROM DISC I/O COME HERE + TAD C0200 /RESET THE FIP STARTING ADDRESS + DCA 1 /... TO 0200 + FGETJT + JOBSTS + DATFLD + DCA FIPTR1 + TAD I FIPTR1 /PICK UP #JOBSTS# + CFLD /CHANGE TO CURRENT FIELD + TAD P0003 + AND P0007 /CHECK ERROR BITS + SZA CLA + ISZ FIPIO /NO DISC TRANSFER ERROR + JMP I FIPIO /EXIT WITHOUT SKIPPING TO INDICATE DISC TRANSFER ERROR + +FIPTR1, 0 +FIUTBA, DSUTBL+4+4 +FIRETP, FIORET +C0526, 0526 +OVER, OVRLA1 + /ROUTINE TO GET A DIRECTORY WORD INTO CORE +/CALLING SEQUENCE: +/ TAD (POINTER TO RETRIEVAL INFORMATION) +/ JMS GE0 +/ WORD NUMBER +/ RETURN (BUFFER POINTER IN AC. 0 IF NON-EXISTENT) + +*2600 + +GE0, 0 + DCA GERETP /STORE RETRIEVAL INFORMATION POINTER + TAD I GE0 + CLL RAL + RTL + RTL + AND P0007 + TAD GERETP + DCA GERETP + TAD I GERETP + SNA + JMP GE3 + CIA + CMA + DCA RDTEMP +/FILE READ ROUTINE, CHECKS TO SEE IF BUFFER IS FULL. +/IF SO, IS IT THE SEGMENT WE ARE TRYING TO READ? +/IF YES, LEAVE. IF NO, WRITE OUT THE BUFFER +/BEFORE READING THE PROPER SEGMENT. + TAD RDCURR /MAY THE DESIRED SEGMENT ALREADY BE IN THE BUFFER + CIA + TAD RDTEMP + SNA CLA + TAD BUFSTA /PROBABLY; IS THE DATA STILL VALID? + SPA + JMP RD3 /YES + SNA /MAYBE + JMS I WRT1 /WRONG SEGMENT, SO WRITE IT OUT (IF MODIFIED) + DCA BUFSTA /SAVE BUFFER STATUS + TAD RDTEMP + JMS RD30 /SET UP PARAMETERS FOR A READ OPERATION + TAD BUFSTA /WAS THE CORRECT DATA IN THE BUFFER AFTER ALL? + SZA CLA + JMP RD3 /YES; ONLY NEEDED TO SET THE DISK PARAMETERS + JMS I FIO01 /PERFORM THE READ + JMP I DIRBAD /ERROR ON READ + IAC + DCA BUFMOD /NEW DATA AS YET UNCHANGED +RD3, CLA CMA + DCA BUFSTA /SET BUFFER STATUS TO FULL + TAD C0377 + AND I GE0 /ADDRESS WITHIN SEGMENT + TAD BUFFER /CREATE A POINTER +GE3, ISZ GE0 + JMP I GE0 /RETURN + GERETP, 0 +RDTEMP, 0 +RDCURR, 0 +K7400, 7400 +C0377, 0377 + + + +/ROUTINE TO DIVIDE A NUMBER BY 7 +/REMAINDER IS LEFT IN WNDREM, PAGE 0 + +WND20, 0 + DCA WNDREM + DCA CFH + TAD WNDREM +WND24, TAD C7771 + SPA + JMP WND21 + ISZ CFH + JMP WND24 +WND21, TAD P0007 + DCA WNDREM + TAD CFH + JMP I WND20 + + /ROUTINE TO SET UP FOR A READ. +/ENTER WITH SEGMENT NUMBER. THIS IS CONVERTED TO +/A PHYSICAL DISC ADDRESS. +RD30, 0 + DCA RDCURR /SAVE SEGMENT NUMBER + TAD RDCURR + CLL RTR + RTR + DCA RDTEMP + TAD RDTEMP + RAR + AND K7400 + DCA FLPARB+5 + TAD RDTEMP + AND C0377 + TAD FIBASE + CLL RTL + DCA FLPARB+1 + CFLD /CHANGE TO CURRENT FIELD + TAD K7400 + DCA FLPARB+3 /WORD COUNT (ONE BUFFER) + CLA CMA + TAD BUFFER + DCA FLPARB+4 /CORE ADDRESS + TAD C0603 /READ IOT + DCA FLPARB + JMP I RD30 + FIPFIP= C0400 + + +FIX301, FIX30 +C5600, 5600 +USENAM, 0 /CALLED ONLY ONCE BY RE-NAME ROUTINE + TAD FIOSTK+1 /TO SEE IF THE NEW NAME EXISTS IN DIRECTORY + DCA FIOSTK + JMS I JBLD0 + JMS I UTS01 + JMP I DIRBAD + JMS I BLDP1 + DCA FIOSTK+1 + JMS I DS01 + FIOSTK+1 + ISZ USENAM /NO FILE OF THIS NAME FOUND - OK TO RENAME + CLA + JMP I USENAM + +NUCOR, CORSRC-2 +C7437, SWAP LOCK NOTRUN FIP CJOB +JOBMX, -JOBMAX +FIPLOC, FIPLOK +FIPTIM, TIMFIP + +REL1, TAD FIOSTK+1 /RELEASE A DEVICE + SPA /DON'T LET THE USER RELEASE CONSOLES + JMS I REL01 + CLA + JMP I FIEXIT + + +FIX50, TAD I FIOPTR + AND FIPFIP /GLOBAL TO "FIP" + SNA CLA /IF FIP BIT IS NOT SET, FIP WAS CALLED BY SI + JMP I FIX301 /GET THE SYSTEM INTERPRETER BACK INTO CORE + TAD C5600 + AND I FIOPTR + DCA I FIOPTR /CLEAR OUT THE LOCK BIT + TAD JOBMX + DCA CFH /SAVE COUNT OF JOBS TO SCAN + STL RTL + TAD I NUCOR + SMA + JMP FIX51 + DCA I FIPTIM + TAD C7437 + DCA I FIPLOC +FIX51, CLA + DATFLD + TAD FIJOB + TAD DEVOVR + DCA INDEX + FIX50L, TAD INDEX + TAD JEND + SZA CLA + JMP .+3 + TAD DEVOVR + DCA INDEX + TAD I INDEX + SZA + JMS I FIX5CK + ISZ CFH + JMP FIX50L + JMP I .+1 + FIXOUT +JEND, -JOBTBL-JOBMAX +FIX5CK, FIXSCH +/ROUTINE TO FREE AN ENTRY ON THE UFD TABLE AND RETTBL + +/CALLING SEQUENCE: +/ TAD (POSITION ON UFDTBL) +/ JMS TF0 +/ RETURN + + +TF0, 0 + DCA TFUFDP /POSITION ON TABLE + DCA I TFUFDP /CLEAR OWNER'S PROJ,PROG NUMBER + TAD UFDTBL /BEGINNING OF TABLE + CIA + TAD TFUFDP + CLL RTR /RELATIVE POSITION ON TABLE + IAC + JMS I BLDP1 /BUILD A PTR TO RETTBL + DCA TFUFDP /POINTER TO RETRIEVAL INFORMATION + TAD P7770 /8 WORDS PER ENTRY + DCA TFCNTR +TF1, DCA I TFUFDP /ZERO OUT THE ENTRY + ISZ TFUFDP + ISZ TFCNTR + JMP TF1 + JMP I TF0 + +TFUFDP, 0 +TFCNTR, 0 + + /ROUTINE TO CHECK WHETHER THE FILE A USER +/IS ATTEMPTING TO ACCESS IS HIS/HERS OR SOMEONE ELSE'S. + +/CALLING SEQUENCE: +/ TAD (INTERNAL FILE NUMBER) +/ JMS UC0 +/ ERROR RETURN (AC=0 IF FILE NOT OPEN) +/ NORMAL RETURN + +UC0, 0 + JMS I EBLD0 + DCA UCENTP + TAD I UCENTP /PICK UP ENTRY FOR THIS FILE OF THIS USER'S + SNA + JMP I UC0 /FILE NOT OPEN + CIA + CLL CMA RTL /SUBTRACT ONE; MULTIPLY BY FOUR + TAD UFDTBL + DCA UCUFDP /POINTER TO OPEN UFD TABLE + JMS I JBLD0 + CIA + TAD I UCUFDP + SNA /SKIP IF DIFFERENT + ISZ UC0 /CORRECT RETURN + JMP I UC0 + +UCENTP, 0 +UCUFDP, 0 + /LOGOUT ROUTINE + +LGO0, JMS I ACC01 /IS IT FROM ACCOUNT 1? + TAD FIOSTK+1 /YES; SEE IF [S]HE WANTS TO RESET + TAD FIJOB /SEE IF HIS/HER AC=JOB + SNA CLA + JMP I LGRESA /GO CLEAR EVERYBODY'S CPU & DEVICE TIME ACCUMULATORS + TAD FIOSTK+1 /DID [S]HE SET HIS/HER AC= TO HIS/HER JOB #? + CIA + TAD FIJOB + SZA CLA + JMP I LGO1A /NO; SO SEE IF [S]HE WANTS COUNT OF USERS UNDER HIS/HER ACCOUNT + JMS I LNS01 /RELEASE ALL HIS/HER DEVICES + JMP .+3 + JMS I REL01 + JMP .-3 /KEEP GOING + JMS I CL01 /CLOSE FILE 0 + IAC + JMS I CL01 /CLOSE FILE 1 + CLL CML RTL + JMS I CL01 /CLOSE FILE 2 + TAD P0003 + JMS I CL01 /CLOSE FILE 3 + JMS I JBLD0 + DCA LOSRRI+1 /DELIVER TO CALLING SEQUENCE FOR SEARCH + TAD CFH + DCA LOJOBP + CLA CMA + JMS I DS01 /FIND MFD ENTRY; 1 WORD SEARCH + LOSRRI + JMP I DIRBAD /************DEBUG ONLY*********** + TAD C0006 + DCA LOSRRI+1 /POINTER TO CP TIME COUNTER + FGETJT + JOBRTM /JOB RUN TIME IN STATUS + DCA FIOSTK+6 /INTS TO LOW ORDER RUN TIME + DATFLD + TAD I FIOSTK+6 + RTR + RTR + RTR /USE ONLY HIGH ORDER OF LOW ORDER RUN TIME + AND P0077 + DCA FIOSTK+7 + ISZ FIOSTK+6 + TAD I FIOSTK+6 + CFLD /BACK TO THIS FIELD + AND P0077 + CLL RTL + RTL + RTL + TAD FIOSTK+7 + TAD I LOSRRI+1 + DCA I LOSRRI+1 /LOW ORDER TIME UPDATE + DCA BUFMOD /SCHEDULE WRITE + \ No newline at end of file diff --git a/tss8/system/fipc.pal b/tss8/system/fipc.pal new file mode 100644 index 0000000..6878767 --- /dev/null +++ b/tss8/system/fipc.pal @@ -0,0 +1,1329 @@ + TAD I LOJOBP /PICK UP PROJ,PROG NUMBER + JMS I UTS01 /SEARCH UFD TABLE + JMP LGO2 /OOPS!! MIGHT AS WELL TRY TO LEAVE GRACEFULLY + ISZ I UTPRNU /REMOVE THIS JOB FROM ACCESS COUNT + JMP LGO2 + CLA CMA /LAST USER ACCESSING THIS UFD + TAD UTPRNU + JMS I TF01 /FREE THE UFD TABLE ENTRY +LGO2, CLA + DCA I LOJOBP /REMOVE USER FROM JOB TABLE + TAD LGO4A /KLUDGE FIEXIT TO RETURN TO LGO4 + DCA LGKLUJ +TABOUT, CLA CMA + DCA TABSTA /FORCE TABLES OUT + JMP I FIEXIT +LOJOBP, 0 + +LOSRRI, RTABLE + 0 +LGO4A, LGO4 +LGO1A, LGO1 +LGKLUJ, FIX500 +LGRESA, LGRES0 + /ROUTINE TO OPEN A UFD + +/CALLING SEQUENCE: +/ TAD (PROJ,PROG NUMBER) +/ JMS UFO0 +/ ERROR RETURN (AC=0 IF TABLES FULL; OTHERWISE UFD NOT FOUND) +/ NORMAL RETURN (POSITION ON TABLE IN AC) + +*3200 + +UFO0, 0 + JMS UFO6 /GO GET THE RETR. INFO FOR THIS GUY'S UFD INTO CORE + JMP I UFO0 /COULDN'T GET IT + DCA UOBUFP /POINTER TO RETRIEVAL INFORMATION + TAD UFDTBL + IAC + DCA UOUFDP /UFD TABLE POINTER +/SEARCH FOR A FREE SLOT IN UFDTBL +UFO3, TAD I UOUFDP + SNA CLA + JMP UFO2 /FOUND A FREE SLOT ON THE TABLE + TAD UOUFDP /THIS SLOT IS OCCUPIED + TAD P0004 + DCA UOUFDP /NEXT POSITION (ACCES COUNT ENTRY) + TAD UFDEND /ARE WE AT THE END OF THE TABLE + CMA + TAD UOUFDP + SNA CLA /HAVE WE SEARCHED THE WHOLE TABLE? + JMP I UFO0 /NO ROOM ON TABLE + JMP UFO3 /LOOK AT NEXT SLOT + +/COMES HERE WITH UOUFDP POINTING TO A FREE SLOT IN UFDTBL +UFO2, CLL STA RAL /AC=-2 + TAD UOUFDP /BACK UP THE POINTER + DCA INDEX + TAD UFORET+1 + JMS I UFQUOA /LOAD THE UFD TABLE + STA + TAD UFDTBL + CIA + TAD INDEX + CLL RTR + DCA UFO6 /RELATIVE POSITION ON TABLE + TAD UFO6 + JMS I BLDP1 /GENERATE A PTR INTO RETTBL + DCA UFORET /RETRIEVAL POINTER + TAD C7771 + DCA CFH /COUNTER FOR TRANSFER TO TABLE + /NOW MOVE RETRIEVAL INFORMATION FOR THIS GUY'S +/UFD INTO RETTBL +UFO4, ISZ UOBUFP + TAD I UOBUFP + DCA I UFORET + ISZ UFORET + ISZ CFH /ENTIRE RETRIEVAL BLOCK TRANSFERRED? + JMP UFO4 /NO, KEEP IT UP + ISZ UFO0 /YES, PREPARE FOR NORMAL RETURN + TAD UFO6 /PICK UP RELATIVE POSITION + JMP I UFO0 + +UFORET, 0 + 0 +UFQUOA, UFQUOT +UOUFDP= UTPRNU +UOBUFP, 0 + + +UFO6, 0 + DCA UFORET+1 /SET UP CALLING SEQUENCE FOR MFD SEARCH + TAD RETTBL + DCA UFORET + CMA + JMS I DS01 /ONE WORD MASTER FILE DIRECTORY SEARCH FOR PROJ,PROG MATCH + UFORET + JMP I UFO6 /COULD NOT FIND UFD ENTRY + TAD P0004 /POINT AT DISK QUOTA WORD + DCA UFORET + TAD I UFORET + AND P0077 /SAVE ONLY LOGIN QUOTA + DCA SEGLIM /SAVE FOR LATER + TAD P0003 + TAD UFORET + DCA UFORET /POINTER TO UFD RETRIEVAL INFORMATION + TAD I UFORET + DCA UFO1 + TAD RETTBL /POINTER TO RET. INFO OF FILE BEING SEARCHED (IN THIS CASE, THE MFD) + JMS I GE01 /GET RETRIEVAL INFORMATION INTO CORE +UFO1, 0 + ISZ UFO6 + JMP I UFO6 + /ROUTINE TO SEARCH UFD TABLE FOR PROJ,PROG NUMBER + +/CALLING SEQUENCE: +/ TAD (PROJ,PROG NUMBER) +/ JMS UTS0 +/ NOT FOUND RETURN +/ NORMAL RETURN (RETRIEVAL POSITION IN AC) + +UTS0, 0 + DCA UTPR1 /PROJ,PROG NUMBER + TAD UFDTBL /PTR TO HEAD OF UFDTBL + DCA UTUPTR +UTS1, TAD UFDEND /END OF UFD TABLE + CIA + TAD UTUPTR + SNA CLA + JMP I UTS0 /COULD NOT FIND PROJ,PROG NUMBER ON TABLE + TAD I UTUPTR + CIA + TAD UTPR1 + SNA CLA + JMP UTS3 /FOUND ENTRY, GET POINTER + TAD UTUPTR /STEP UP ONE SLOT + TAD P0004 + DCA UTUPTR + JMP UTS1 /LOOK IN THE NEXT ENTRY +UTS3, TAD UFDTBL + CIA + TAD UTUPTR + CLL RTR /RELATIVE POSITION ON TABLE + IAC /THE RELATIVE POSITION + ISZ UTPRNU /UTPRNU POINTS TO ACCESS COUNT OF THIS PROJ, PROG # + ISZ UTS0 + JMP I UTS0 + +DVT1, +UTPR1, 0 +UTUPTR= UTPRNU + +DVT0, 0 /COMPUTE DEVICE TIME AT RELEASE + DCA DVT1 /ELAPSED DEVICE TIME + JMS I JBLD0 + DCA DVT3 /PROJ,PROG NUMBER OF CURRENT USER + CLA CMA + JMS I DS01 /SEARCH MFD FOR PROJ,PROG NUMBER + DVT4 + JMP I DIRBAD /***********DEBUG ONLY*********** + TAD C0005 + DCA CFH /POINTER TO DEVICE TIME WORD + TAD DVT1 + TAD I CFH /UPDATE USER'S CUMULATIVE DEVICE TIME + DCA I CFH + DCA BUFMOD /SCHEDULE WRITE + DATFLD + JMP I DVT0 + +DVT4, RTABLE +DVT3, 0 + + + +/COMES HERE IF FIP WAS CALLED BY S.I. +/READ S.I. BACK IN AND RETURN TO IT +FIX30, CFLD /CHANGE TO CURRENT FIELD + TAD C0603 + DCA FLPARB /SET UP READ IOT + DCA FLPARB+1 /SI IS ON TRACK 0 OF THE DISC + JMS I FIX401 + JMS I FIO01 /RETURN WILL BE TO SI + + +SCL1, 0 + JMS I RD301 /SET UP DISK PARAMETERS + STA + DCA BUFSTA /FUDGE TO APPEAR THAT READ WAS DONE + JMP I SCL1 + +RD301, RD30 + /EXIT ROUTINE +/COMES HERE WHEN FIP HAS COMPLETED ITS TASK +/FIRST, SEE IF ANY INTERNAL FILES HAVE BEEN CHANGED +/THOSE THAT HAVE CHANGED MUST BE WRITTEN BACK OUT TO DISC +*3400 +/*** ANY DATA FIELD IS OK AT THIS POINT!! + +FIX0, JMS I WRT1 /MAKE SURE THE BUFFER IS EMPTY + ISZ TABSTA /CHECK TABLE STATUS + JMP FIX1 /NOTHING CHANGED IN TABLES + TAD JOBTAB /BOTTOM OF TABLE AREA + JMP FIX2 /SAVE TABLES BEFORE EXIT + +FIX1, ISZ SATSTA /CHECK SAT STATUS + JMP FIX20 /NOTHING TO BE SAVED, EXIT + TAD SATBOT /BOTTOM OF SAT +FIX2, JMS I FIX401 + TAD FIDEXP /GLOBAL TI "FIPDEX" + DCA FLPARB+1 /MEMORY FIELD + TAD C0605 + DCA FLPARB /WRITE IOT + JMS I FIO01 /PERFORM THE WRITE + HLT /ERROR ON WRITE, FATAL + +/ALL DISC TABLES ARE NOW UP TO DATE (*** ANY DATA FIELD IS OK AT THIS POINT!!) +FIX20, FGETJT + JOBSTS + DCA FIOPTR + DATFLD + TAD I FIOPTR + AND FISIOT + DCA I FIOPTR + CFLD + FGETJT /RESTORE USER AC + JOBREG+2 + DCA FIOPTR /ADDRESS OF USER'S AC + TAD FIUSAC + DATFLD + DCA I FIOPTR + CDF + TAD C002 /FIP ALWAYS RUNS IN FIELD 2 SO ADD 2 TO CORTBL + TAD CORTBA /GLOBAL TO "CORTBL" + DCA FIOPTR /POINTS TO THIS FIELD'S ENTRY IN CORTBL + JMP I .+1 +FIX500, FIX50 + +FISIOT, -JSIOT-1 + /ROUTINE TO DETERMINE IF A DEVICE IS ASSIGNED TO THIS JOB + +/CALLING SEQUENCE: +/ TAD (DEVICE NUMBER) +/ JMS DTE0 +/ 0 (SET BY DTE0 TO POINT TO ENTRY IN DEVTBL) +/ RETURN (DEVICE NOT ASSIGNED TO THIS JOB) +/ RETURN (DEVICE ASSIGNED) + +DTE0, 0 + SPA + JMP DTE10 /NON-TTY DEVICE + TAD NULNM1 /CHECK FOR VALID TTY NUMBER + SMA + JMP DTE6 /INVALID TTY NUMBER + CLL RAL /TWO WORDS PER TTY +DTE4, TAD DEVEND /FIND LOCATION IN DEVTBL +DTE5, CFLD + DCA I DTE0 /RETURN ARGUMENT + TAD I DTE0 + ISZ DTE0 + DCA DTE2 + DATFLD + TAD I DTE2 /GET POINTER TO DDB + SNA /IS THERE ONE? + JMP I DTE0 /NO, RETURN + DCA DTE2 /YES + ISZ DTE2 + TAD I DTE2 /GET JOB NUMBER + CIA + TAD FIJOB /NUMBER OF CURRENT JOB + AND P0037 + SNA CLA /DOES DEVICE BELONG TO THIS JOB? + ISZ DTE0 /YES + JMP I DTE0 /RETURN +DTE6, STA + TAD DEVTBA /POINT TO DUMMY DEVTBL ENTRY + JMP DTE5 + + +DTE2, 0 +NULNM1, -NULINE-1 +P3777, 3777 +NUDEVM, DEVTBE-JOBTBL +NUDEV, JOBTBL-DEVTBE + +DTE10, AND P3777 + TAD NUDEVM /CHECK DEVICE NUMBER FOR VALIDITY + SMA + JMP DTE6 /INVALID DEVICE NUMBER + TAD NUDEV /GET DEVICE NUMBER BACK + JMP DTE4 /GO FINISH UP + LNK0, 0 /GET FILE LINKAGE + TAD LNKF + DCA LNK1 + FGETJT +LNK1, 0 + DCA CFH + DATFLD + TAD I CFH /PTR TO FILE CONTROL BLOCK + JMP I LNK0 +LNKF, JOBF0 +SAV1, +FGETJ0, 0 + CFLD + TAD I FGETJ0 + DCA .+4 + TAD JOBDAT + CIF + GETJTA + 0 + ISZ FGETJ0 + JMP I FGETJ0 +SAVCRE, 0 + DCA SAV1 + TAD SAV1 /FILE ADDR + TAD P0004 /PTR TO PROTECTION BITS IN FILE + DCA SAV2 + TAD I SAV2 /GET THE PROTECTION BITS + AND C0020 /IS IT WRITE PROTECTED AGAINST THE OWNER? + SZA CLA + JMP I EXT10A /YES, RETURN WITH PROT. VIOLATION MESSAGE + TAD SAV1 /NO, REDUCE THE FILE TO 0 SEGS + JMS I RED11 /GO DO REDUCTION + JMP I SAVCRE /RETURN +RED11, RED1 +EXT10A, EXT10 +SAV2, +CRFUFD, 1 + JMS I ACC01 /IS THIS ACCOUNT 1? + JMP CRFUF1 /YES + IAC + DCA I INDEX /FILE SIZE INITIALLY 1 + JMP I CRFUFD /BACK FOR THE DATE +CRFUF1, DCA I INDEX /ZERO CPU TIME + JMP I .+1 /GO ZERO DEVICE TIME ALSO + CRFUFR +/CONVERT AN ABSOLUTE PTR INTO RETTBL TO A RELATIVE ENTRY NUMBER +ENS3, 0 + CIA + TAD RETTBL /REL. PTR TO ADDRESS WITHIN RETTBL + CIA + AND P7770 /ANY POINTER WITHIN THE BLOCK IS OK + CLL RTR + RAR /DIVIDE BY 8 + JMP I ENS3 + /ROUTINE TO ASSIGN A DEVICE + +*3600 +ASD1, TAD FIOSTK+1 + SMA /TTY? + JMP I LGI201 /DON'T LET HIM/HER ASSIGN TTY'S! RETURN WITH AC=7777 + JMS I DTE01 /IS THIS DEVICE ASSIGNED TO THIS JOB? +ASD2, 0 /SET BY DTE01 TO POINT TO PROPER ENTRY IN DEVTBL + SKP + JMP ASD4 /YES + TAD I ASD2 /GET DDB ADDRESS FOR THIS DEVICE + SZA /ZERO? + JMP ASD11 /NO, SO SOMEONE HAS IT +/COMES HERE IF OKAY TO MAKE THIS ASSIGNMENT + CFLD /CHANGE TO CURRENT FIELD + TAD ASD2 + 6202 /CIF FIELD 0 + GETDDB /GET A BLOCK FROM THE FREE LIST AND LINK IT INTO DEVTBL + JMP I LGI201 /NO BLOCK.. REDO IN CASE OF USER OTHERWISE ERROR RETURN FOR SI + DATFLD + TAD I ASD2 /PICK DDB ADDRESS FROM DEVTBL + DCA CFH /SAVE IT + TAD FIOSTK+1 + AND P0037 /CLEAR BIT 0 + DCA I CFH /SET TO REFLECT THE DEVICE NUMBER + ISZ CFH + TAD FIJOB + DCA I CFH /PLUG IN THE JOB NUMBER +ASD7, CFLD + JMP I FIEXIT + +/COMES HERE IF ONE JOB ATTEMPTS TO ASSIGN AN ALREADY ASSIGNED DEVICE +ASD11, IAC + DCA CFH + TAD I CFH + SNA + CMA + DCA FIUSAC /DELIVER TO USER'S AC + JMP ASD7 /EXIT + +ASD4, TAD FIOSTK+1 + CLL RAL + SZA CLA /PTR? + JMP ASD7 /NO + TAD I ASD2 + CIF 00 + JMS I ASDCLR /CLEAR THE READER BUFFER + JMP ASD7 +ASDCLR, SICLR + /ROUTINE TO PERFORM ACTUAL REDUCTION + +/CALLING SEQUENCE: +/ TAD (NUMBER OF SEGMENTS TO REMAIN) +/ JMS RED30 +/ RETRIEVAL CHAIN POINTER +/ UFD RETRIEVAL POINTER +/ RETURN + + +/FIRST TRACE THRU THE LINKED LIST OF FILE INFORMATION +/RETRIEVAL BBLOCKS UNTIL WE GET TO THE ONE IN WHICH THE +/NEW LAST SEGMENT IS +RED30, 0 + DCA RED31 /LINKAGE TO RETRIEVAL CHAIN + TAD GDRETP /PICK UP RETRIEVAL POINTER + JMS I GE01 /GET THIS WORD INTO CORE +RED31, 0 + DCA REBUFF + TAD I REBUFF /PICK UP LINK TO NEXT + DCA RED31 /SAVE LINK + TAD WNDREM /DELETING ENTIRE WINDOW? + SNA CLA + JMP RED36 /YES, REMOVE LINK TO LAST WINDOW AS WELL +RED37, ISZ REWNDC /AT END OF CHAIN? + JMP RED30+2 /NO, KEEP SAVING + DCA I REBUFF /YES, TERMINATE IT +/FOUND RETRIEVAL BLOCK IN WHICH TO CHOP OFF +/THE LIST OF SEGMENTS. +/START DELETING THE SEGMENT NUMBERS AND RETURNING +/THE ACTUAL DISC SEGMENTS TO THE POOL + TAD WNDREM + IAC /GET POINTER TO FIRST SEGMENT TO BE DELETED + TAD REBUFF + DCA REBUFF /POINTER TO FIRST SEGMENT TO REMOVE + DCA SEGLIM /CLEAR SEGMENT COUNTER + TAD WNDREM /NUMBER OF SEGMENTS TO LEAVE IN RET. WINDOW +RED32, TAD C7771 /7 SEGMENTS PER RETRIEVAL WINDOW + DCA REWNDC /SAVE COUNT + DCA BUFMOD /REMEMBER TO WRITE OUT THE BUFFER +RED33, TAD REDM9 + DCA CFH /SET COUNT FOR SATREL DIVIDE + STL STA + TAD I REBUFF /PICK UP THE SEGMENT NUMBER + SZL /IS IT A REAL SEGMENT + JMP RED38 /NO; END OF WINDOW, END OF FILE + JMS I SATREA /RELEASE IT ON SAT + DCA I REBUFF /CLEAR THE CCELL + ISZ SEGLIM /COUNT SEGMENT + ISZ REBUFF + ISZ REWNDC /END OF CURRENT RETRIEVAL WINDOW? + JMP RED33 /NO, CONTINUE + TAD RED31 /YES, MOVE TO NEXT + SNA /END OF CHAIN? + JMP RED39 /YES, EXIT + RED34, DCA RED35 /NO + TAD GDRETP + JMS I GE01 /GET NEXT WINDOW +RED35, 0 + DCA REBUFF + TAD I REBUFF + DCA RED31 /SET UP LINK TO NEXT + DCA I REBUFF /CLEAR FIRST WORD OF WINDOW + ISZ REBUFF + JMP RED32 /KEEP WIPING OUT + +RED36, STL CLA RTL /ARE WE TWO WINDOWS FROM THE END YET? + TAD REWNDC + SZA CLA + JMP RED37 /NOT EXACTLY + DCA I REBUFF /YES, CLEAR LINK TO NOW EMPTY WINDOW + DCA BUFMOD /SCHEDULE WRITE + JMP RED37 + +RED38, CLA + DCA I REBUFF /CLEAR TO END OF WINDOW + ISZ REBUFF + ISZ REWNDC /ARE WE THERE YET? + JMP RED38 /NO +RED39, TAD GDRETP /GET RETRIEVAL POINTER + JMS I ENS32 /CONVERT IT INTO A RELATIVE ENTRY NUMBER + STL RTL /TIMES 4 PLUS 2 + IAC + TAD UFDTBL /POINTS TO WORD3 OF UFDTBL ENTRY + DCA REBUFF + TAD I REBUFF /HAS HIS/HER SEGMENT COUNT BEEN SET UP YET? + SNA CLA + JMP I RED30 /NO; SO JUST EXIT + TAD SEGLIM /NUMBER OF SEGMENTS WE REMOVED FROM THIS FILE + CIA + TAD I REBUFF /SUBTRACT FROM THOSE THAT WE KNEW ABOUT + DCA I REBUFF /UPDATE UFDTBL ENTRY + STA + DCA TABSTA /REMEMBER TO WRITE OUT THE TABLES + JMP I RED30 /EXIT + +ENS32, ENS3 +REDM9, -11 +SATREA, SATREL +REBUFF, 0 + *4000 +/RENAME ROUTINE + +REN0, JMS I ACC01 /IS IT ACCOUNT 1? + JMP PASSQU /YES; GO CHANGE PASSWORD AND DISK QUOTA + JMS I IFN01 + TAD FIOSTK+1 /PICK UP INTERNAL FILE NUMBER + JMS I UC01 /USER-OWNER CHECK + JMP I REN1A /USER NOT OWNER, ERROR + JMS I FILNAM /CHECK IF THIS NEW NAME IS IN DIRECTORY + JMP I BADNAM /YES, DON'T RENAME + TAD FIOSTK /PICK UP INTERNAL FILE NUMBER NOW SHIFTED TO FIOSTK + JMS I GD01 /GET THIS DIRECTORY ENTRY INTO CORE + DCA REENTP /POINTER TO DIRECTORY ENTRY + TAD REENTP + TAD P0004 + DCA REPRTP /POINTER TO PROTECTION BITS + TAD I REPRTP /PICK UP PROTECTION BITS + AND C0020 /WRITE PROTECTED AGAINST OWNER? + SZA + JMP I REN1A /YES, ERROR + TAD FIOSTK+2 /TRANSFER NEW NAME TO DIRECTORY + SNA /IS IT A NULL NAME? + JMP I BADNAM /YES, DON'T RENAME + DCA I REENTP + ISZ REENTP + TAD FIOSTK+3 + DCA I REENTP + ISZ REENTP + TAD FIOSTK+4 + DCA I REENTP + DCA BUFMOD /SCHEDULE WRITE + JMP I FIEXIT /EXIT FROM FILE PHANTOM +REN1A, REN1 +FILNAM, USENAM +BADNAM, CRF30 +SEGS0, TAD I SEGCNT + DCA FIUSAC + JMP I FIEXIT +SEGCNT, -SATSIZ+1 +SIFLD, CORTBL+1 + +PASSQU, CDF 00 + TAD I SIFLD /IS THIS REQUEST FROM SI? + AND C0200 + CFLD + SZA + JMP I REN1A + TAD FIOSTK+1 /OR IS [S]HE TRYING ACCOUNT 0? + SNA + JMP I BADNAM /YES; ERROR + JMP I .+1 + PASQU0 + /BUILD A RETRIEVAL POINTER GIVEN RELATIVE POSITION ON RETTBL + +/CALLING SEQUENCE: +/ TAD (RELATIVE POSITION) +/ JMS BLDP +/ RETURN (POINTER IN AC) + +REENTP, +BLDP, 0 + DCA CFH + CLA CMA + TAD CFH + CLL RAL + RTL + TAD RETTBL + JMP I BLDP +/JMS I LINK01 +/MISSING SEGMENT ADD +/REPLACEMENT + +LINK0, 0 + DCA LINK1 + TAD GDRETP + JMS I GE01 +LINK1, 0 /GET A DIRECTORY WORD INTO CORE + TAD P0003 + DCA LINK2 + TAD I LINK2 + CIA + TAD I LINK0 + SZA CLA /SEARCH THROUGH UFD UNTIL WE FIND ENTRY BEING SOUGHT + JMP LINK3 + ISZ LINK0 + TAD I LINK0 /TAKE A BLOCK OUT OF THE CHAIN + DCA I LINK2 + DCA BUFMOD /SCHEDULE WRITE + ISZ LINK0 + JMP I LINK0 + +REPRTP, +LINK2, 0 + +LINK3, TAD I LINK2 + JMP LINK0+1 + /ROUTINE TO SET UP A UFDTBL ENTRY AS FOLLOWS: +/WORD 0: PROJECT, PROGRAMMER NUMBER +/WORD 1: -ACCESS COUNT +/WORD 2: -DISK SEGMENT QUOTA (LOGIN) +/WORD 3: ACTUAL NUMBER OF SEGMENTS OWNED. +/(WORDS 1 AND 3 ARE INITIALLY SET TO 0.) +/WORD 3 IS LOADED BY "CREATE," OR BY "EXTEND" IF IT HAS NOT PREVIOUSLY +/BEEN LOADED. "CREATE" & "EXTEND" ALWAYS MODIFY WORD 3, "REDUCE" ONLY +/MODIFIES WORD 3 IF IT IS NON-ZERO. + +UFQUOT, 0 + DCA I INDEX /SAVE PROJECT, PROGRAMMER NUMBER + DCA I INDEX /ZERO ACCESSES SO FAR + TAD SEGLIM /LOGGED IN QUOTA + CLL RAL /TIMES 2 + TAD SEGLIM /THREE + RAL /SIX + RTL /TWENTY FOUR + TAD SEGLIM /TWENTY FIVE + CIA /NEGATE + DCA I INDEX /SAVE LOGGED-IN SEGMENT QUOTA + DCA I INDEX /NO KNOWN SEGMENTS AS OF YET + JMP I UFQUOT + /ROUTINE TO GET THE NUMBER OF A DEVICE ATTACHED TO THIS JOB + +/CALLING SEQUENCE: +/ JMS LNS0 +/ RETURN IF NONE AVAILABLE +/ NORMAL RETURN (DEVICE NUMBER IN AC) + +LNS0, 0 + TAD DEVTBA /GLOBAL TO #DEVTBL# + DCA CFH + DATFLD /CDF FIELD 0 +LNS4, TAD I CFH /PICK UP POINTER TO DDB + SNA + JMP LNS2 /DEVICE UNASSIGNED + IAC + DCA LNS3 /POINTER TO SECOOND WORD OF DDB + TAD I LNS3 + AND P0037 /PICK OFF THE JOB NUMBER OF OWNER + CIA + TAD FIJOB /NUMBER OF CURRENT JOB + SNA CLA + JMP LNS5 /THIS DEVICE IS OURS +LNS2, ISZ CFH + TAD CFH + CMA + TAD DEVOVR /GLOBAL TO "JOBTBL" + SZA CLA + JMP LNS4 /CONTINUE LOOKING DOWN TABLE +LNS7, CFLD /MAKE SURE WE ARE IN THIS FIELD + JMP I LNS0 /FOUND NOW DEVICES + +LNS5, TAD DEVEND + CIA + TAD CFH + ISZ LNS0 + SMA + JMP LNS6 + TAD LNS10 + CLL RAR + JMP LNS7 + +LNS6, TAD C4000 + JMP LNS7 + +LNS10, DEVTBE-DEVTBL +LNS3, 0 +C4000, 4000 + /ROUTINE TO RELEASE A DEVICE + +*4200 + +REL00, 0 + JMS I DTE01 /IS THIS DEVICE ASSIGNED TO THIS USER? +REL5, 0 /SET BY DTE0 TO POINT TO DEVTBL ENTRY FOR THIS DEVICE + JMP REL13 /NO, SO DON'T RELEASE IT + TAD I REL5 + DCA REL6 /SAVE ADDRESS OF DDB FOR LATER + TAD REL6 + TAD P0003 /POSITION OF TIME IN DDB + DCA REL2 + TAD I REL2 /GET TIME ASSIGNED + CIA + DCA REL2 /-TIME ASSIGNED + CDF + TAD I RELCK1 /GET TIME NOW + RTL + RTL + AND P0007 /JUST SIGNIFICANT PART OF LOW ORDER TIME + DCA REL3 + TAD I RELCK2 + DATFLD + RTL + RAL + AND P7770 /JUST INSIGNIFICANT PART OF HI ORDER + TAD REL3 /TIME AT RELEASE + CLL + TAD REL2 /-TIME AT ASSIGNMENT + DCA REL2 /TIME WE OWNED IT + TAD REL2 + SNL /GONE THRU MIDNITE WHILE ASSIGNED? + TAD RELCON /YES, FUDGE TO PROPER VALUE + SZA + JMS I DVT01 /RECORD TIME SINCE WE USED A MEASURABLE AMOUNT + STL + TAD REL5 + TAD RELCDR /IS IT A CARD READER OR DECTAPE OR RK05? + SPA + RAR /NO - IS IT A KEYBOARD OR THE PTR? + SNL + JMP REL11 /EITHER KEYBOARD, PTR, CDR, DTA, OR RK05 + TAD RELREG /EITHER PTP OR LPT + REL8, DCA REL6 /ENTER HERE FROM REL12 FOR TELEPRINTER + STA + TAD I REL5 + DCA INDEX /POINT TO WORD 0 OF DDB (AUTOINDEXED) + TAD I INDEX /CHECK STATUS IF TELEPRINTER + SPA CLA + JMP REL4 /[S]HE'S IN THE ^S CONDITION - FLUSH HIM/HER OUT + DCA I INDEX /CLEAR THE JOB NUMBER + ISZ INDEX + ISZ INDEX + TAD I INDEX /CHECK FILL POINTER + SZA CLA + JMP REL9 /STILL BUSY - LET "CONOUT" RELEASE IT + TAD REL6 + SZA CLA /ASSIGNABLE DEVICE? + JMP REL7 /YES +REL4, TAD I REL5 + CIF 00 + JMS I RELTBL /MAKE SURE THE BUFFER IS CLEAR + DATFLD + TAD I REL5 /RELEASE THE DDB + JMS I RETBK1 + CLA + DATFLD + DCA I REL5 +REL9, CFLD + JMP I REL00 +REL7, CIF 20 /INHIBIT INTERRUPTS + TAD I REL6 + CLL RAL + SNA + JMP REL4 + SPA + STL + RAR + DCA I REL6 + JMP REL9 + REL11, SMA CLA /IS IT A KEYBOARD OR THE PTR? + JMP REL12 /NO + TAD REL6 + CIF 00 + JMS I RELTBL /FLUSH OUT THE BUFFER +REL12, TAD REL6 + JMS I RETBK1 /RELEASE THE DDB + CLA + DATFLD + DCA I REL5 /REMOVE FROM DEVTBL + TAD DEVEND + CIA + TAD REL5 + SMA CLA + JMP REL9 + ISZ REL5 + JMP REL8 + +REL13, CDF + TAD I JOB + AND C0200 + CFLD + SZA CLA /CALLED BY SI?? + JMP I LGI201 /YES, INDICATE ERROR WITH AC=-1 + JMP I REL00 /NO, UUO CALL +RELREG, OUTREG+NULINE+3 +RELCDR, -DEVTBE-4 +DVT01, DVT0 +REL2, 0 +REL3, 0 +RELCK1, CLK1 +RELCK2, CLK2 +RELCON, 3227 /FUDGE FOR MIDNIGHT OVERFLOW +RELTBL, SICLR +P0100, 100 +FIXSCH, 0 + IAC + DCA REL5 + TAD I REL5 + AND P0100 + SNA CLA + JMP I FIXSCH + TAD DEVOVR + CIA + TAD INDEX +FIXOUT, CIF CDF + DCA I FIPJOB + WAIT + EXCEED, 215;212;"[;" ;" ;" ;" ;" ;" ;" ;"E;"X;"C;"E;"E;"D;"I;"N;"G + " ;"D;"I;"S;"K;" ;"Q;"U;"O;"T;"A;"];215;212;0 +/COMPLETION OF LOGOUT ROUTINE +/REMOVES JOB FROM PERMANENT MONITOR TABLES +/MUST BE DONE LAST, SINCE WE NEED THE JOB STATUS BLOCKS +/TO INDICATE ANY ERRORS IN THE FIP I/O + +LGO4, TAD LGO500 /RESTORE THE FIP EXIT + CFLD + DCA I LGOFIX + TAD FIJOB /SEE IF [S]HE OWNS ANY CORE FIELDS + CIF + CORE /SEARCH CORE TABLE FOR HIM/HER + FIP SI CJOB + JMP LGO5 /NO; NOTHING TO RELEASE + AND P0007 /YES; RELEASE THE FIELD + TAD CORTBA + DCA CFW /POINTS TO ENTRY IN CORTBL + CDF + DCA I CFH /ZERO THE ENTRY +LGO5, TAD FIJOB /RETURN STATUS BLOCKS + TAD DEVOVR /START OF JOB TABLE (END OF DEVTBL) + DCA LGO6 /POINTS TO JOB TABLE ENTRY + DATFLD + TAD I LGO6 /GET ADDRESS OF JOB STATUS + JMS I LGOBLS /RETURN STATUS + DATFLD + DCA I JOBDAT /CLEAR JOBDAT + DCA I LGO6 /CLEAR POINTER IN JOBTABLE + CDF + DCA I JOB /CLEAR JOB (SO SAVJOB WON'T SAVE US) + JMP I .+1 /AND NOW GO DO FIX50 +LGO500, FIX50 +LGOBLS, RETBLS +LGOFIX, FIX500 +LGO1, TAD FIOSTK+1 /LOGOUT WITH AC=0? + SZA CLA + JMP I LGI201 /NO, SO IT'S AN ERROR + TAD FIJOB + TAD JOBTAB + DCA CFH /GET HIS/HER PROJ-PROG # + TAD I CFH + CIA + DCA FIOSTK+2 /SAVE HIS/HER # + TAD JOBTAB + DCA INDEX /INITIALIZE TO START OF TABLES + TAD LGOMAX /-JOBMAX + DCA FIOSTK+3 /COUNT OF JOBS TO CHECK + DCA FIOSTK+4 /COUNT OF MATCHES + TAD I INDEX + TAD FIOSTK+2 /COMPARE + SNA CLA + ISZ FIOSTK+4 /EXACT MATCH - INDEX COUNT + ISZ FIOSTK+3 /DONE? + JMP .-5 /NO + STA /YES - RETURN # OF MATCHES -1 + TAD FIOSTK+4 + DCA FIUSAC + JMP I FIEXIT /AND AWAY + +LGOMAX, -JOBMAX + OPN11, 0 + DCA OPN13 + TAD FIOSTK+2 /GET RETRIEVAL POINTER OF UFD BEING ACCESSED + CIA + TAD RETTBL /IS IT THE MFD? + SNA CLA + JMP OPN14 /MFD OR UFD, READ OK/WRITE NEVER OK + JMS I ACC01 /IS [S]HE THE SYSTEM MANAGER? + JMP OPN12 /YES; SKIP PROTECTION CHECK + TAD I OPN11 /GET PROPER TEST BITS + AND P0007 /JUST TEST FOR READ PROTECTION FIRST + AND I OPN13 /COMPARE AGAINST FILE'S PROTECTION WORD + SZA CLA + JMP I OPNPRA /PROTECTION ERROR + TAD I OPN11 /READ OK, GET TEST BITS FOR WRITE + CLL RAL /CHECK FOR WRITE PROTECTION + AND I OPN13 +OPN12, CMA + DCA LGO6 /-1 IF OK TO WRITE + TAD I ZDS1 /SOME MORE CONDITIONS TO TEST + DCA OPN13 + TAD FIOSTK+2 + JMS I OPN16 /IS [S]HE THE ONLY PERSON TO OPEN THE FILE? +OPN13, 0 + JMP OPN14 /NO + TAD BASSWT + CIA + DATFLD + SZA + DCA I BASWIN /MAKE SURE THE BASIC WINDOW GETS LOADED + CFLD + ISZ LGO6 /IS [S]HE ALLOWED TO MODIFY IT? +OPN14, TAD P0004 /NO, SO WRITE PROTECT BIT IS ON + ISZ OPN11 /SKIP ON RETURN + JMP I OPN11 +OPN16, ENS0 +OPNPRA, OPNPRE + + +LGO6, +FIX40, 0 + DCA FLPARB+3 + TAD FLPARB+3 + DCA FLPARB+5 + CLA CMA + TAD FLPARB+5 + DCA FLPARB+4 + JMP I FIX40 + *4600 +TTYTBA, TTYTBL +CLK1A, CLK1 +CLK2A, CLK2 +RESET, DCA I CFH + FGETJT + JOBACC + DCA ADDR + DATFLD + TAD FIOSTK+2 + DCA I ADDR /PLUG HIS/HER ACCOUNT # INTO HIS JOB STATUS BLOCKS + TAD FIJOB /GET JOB # + TAD TTYTBA + DCA ADDR + TAD I ADDR /GET LINE # + CLL RAL + TAD DEVTBA /FIND THE DDB + DCA ADDR + TAD P0003 + TAD I ADDR + DCA ADDR + CDF + TAD I CLK1A + RTL + RTL + AND P0007 + DCA CFH + TAD I CLK2A + RTL + RAL + AND P7770 + TAD CFH + DATFLD /NOW RESET THE + DCA I ADDR /ASSIGN TIME + JMP I .+1 /THEN EXIT + TABOUT + BASCO0, 0 + JMS I IFN01 /JUST RETURN INTERNAL FILE # IN FIOSTK+1 + TAD FIOSTK+1 + JMS I CL01 /CLOSE ANY FILE THAT IS OPEN + TAD FIOSTK+3 /MAY BE + SNA /IS IT A NULL FILE NAME? + JMP I OPN3A /YES, ERROR RETURN + TAD OPN3A+1 /COMPARE BA + SZA CLA + JMP BASSET /NO MATCH + TAD FIOSTK+2 /IS ACCT # 2? + SNA + JMS I JBLD0 /WHAT'S HIS/HER ACCOUNT? + CLL RTR + SNA CLA + TAD FIOSTK+4 /COMPARE SI + TAD OPN3A+2 + SNA CLA + TAD FIOSTK+5 + TAD OPN3A+3 /COMPARE C + SNA CLA + CMA /IF BASIC, BASSWT=-1 +BASSET, DCA BASSWT /IF NOT, BASSWT=0 + TAD FIOSTK+1 + JMS I EBLD0 /GET PTR TO ENTTBL WORD 1 RELATIVE PTR WORD 2 ADDRESS IN UFD + JMP I BASCO0 /RETURN +OPN3A, OPN3 + -4241 /-BA + -6351 /-SI + -4300 /-C + +CLOBAS, 0 + JMS I RETBK1 + DCA BAS3 + TAD BAS3 + CIA + TAD BASWIN + SNA CLA + JMP CLOBA1 + TAD BAS3 + JMS I RETBK1 + CLA SKP +CLOBA1, CLA CMA + JMP I CLOBAS + BAS0, 0 + DCA BAS1 /SAVE BUFFER ADDRESS OF RETRIEVAL WINDOW + TAD BASWIN /BASIC WINDOW ADDRESS + DCA ADDR /GET BUFFER ADDRESS READY +BAS5, TAD BAS1 / + DCA BAS2 + TAD C7771 + DCA BAS3 /COUNT OF 7 SEGS PER WINDOW +BAS4, ISZ BAS2 + CFLD + TAD I BAS2 /PICK UP THE SEG # + ISZ ADDR + SNA + JMP BAS6 + DATFLD + DCA I ADDR /SAVE IT IN WINDOW + ISZ BAS3 /COUNT + JMP BAS4 /STILL IN SAME BLOCK + CFLD + TAD I BAS1 /CHANGE THE BLOCK + SNA + JMP BAS6 /NO MORE SEGMENTS + DCA BAS1 + TAD FIOSTK+2 /GET THIS BLOCK OF UFD IN BUFFER + JMS I GE01 +BAS1, 0 + DCA BAS1 /SAVE THE BUFFER ADDRESS CONTAINING THE NEEDED BLOCK + JMP BAS5 /CONTINUE +BAS6, SNA + TAD I BAS1 + SZA CLA + JMP I BAS123 /BASIC MUST BE 39 SEGMENTS OR LESS TO USE SPECIAL WINDOW + TAD ADDR + SMA CLA + JMP .+5 + DATFLD + DCA I ADDR + ISZ ADDR + JMP .-2 + DATFLD + CLA CMA + DCA I BASWIN /-1 IN FIRST WORD TO MARK BASIC WINDOW + JMP I BAS0 +ADDR, 0 +BAS2, 0 +BAS3, 0 +BAS123, OPN123 + /ROUTINE TO LET SYSTEM MANAGER CHANGE PASSWORDS AND DISK QUOTAS + +UFDNAM, RTABLE + 0 + +PASQU0, DCA UFDNAM+1 /SAVE ACCOUNT NUMBER TO SEARCH FOR + CMA + JMS I DS01 /SEARCH MFD FOR THIS ACCOUNT + UFDNAM + JMP PASNOT /ACCOUNT NOT FOUND IN MFD + DCA INDEX /SAVE POINTER TO OLD PASSWORD + TAD FIOSTK+2 /FIRST TWO CHARACTERS OF NEW PASSWORD + DCA I INDEX /SAVE IN MFD NAME BLOCK + TAD FIOSTK+3 /SECOND TWO CHARACTERS OF NEW PASSWORD + DCA I INDEX /SAVE IN MFD + ISZ INDEX /SKIP PAST LINK TO NEXT UFD + TAD FIOSTK+4 /GET NEW DISK QUOTA + DCA I INDEX /SAVE NEW QUOTA + DCA BUFMOD /REMEMBER TO WRITE OUT THE MFD SEGMENT + TAD FIOSTK+1 /SEE IF THIS ACCOUNT IS CURRENTLY IN THE UFDTBL + JMS I UTS01 + JMP I FIEXIT /NOT THERE + ISZ UTPRNU /POINTS TO -QUOTA ENTRY + STA + TAD FIOSTK+1 /IS IT THE QUOTA FOR THE "GRACE SPACE"? + SNA CLA + JMP PASQU1 /YES + TAD FIOSTK+4 /TRIM OFF THE LOGOUT PORTION OF THE QUOTA + AND P0077 + DCA FIOSTK+4 + TAD FIOSTK+4 + CLL RAL /MULTIPLY BY TWO + TAD FIOSTK+4 /THREE + RAL /SIX + RTL /TWENTY FOUR +PASQU1, TAD FIOSTK+4 /TWENTY FIVE; OR ACTUAL COUNT IF FOR "GRACE SPACE" + CIA /NEGATE THE RESULT + DCA I UTPRNU /SAVE AWAY IN THE UFDTBL + JMP I .+1 + TABOUT + +PASNOT, TAD P7000 /RETURN FILE NOT FOUND + DCA FIUSAC + JMP I FIEXIT + /SUBROUTINE TO FIND AN EMPTY DIRECTORY ENTRY + +/CALLING SEQUENCE: +/ TAD (POINTER TO UFD RETRIEVAL INFORMATION) +/ JMS DE0 +/ BAD RETURN (COULD NOT FIND A FREE ENTRY) +/ NORMAL RETURN (POINTER TO ENTRY IN AC) + +DE0, 0 + DCA DERETP /SAVE RETRIEVAL PTR + DCA DE2 /ZERO THE ADDRESS IN UFD + TAD BUFSTA /IS THERE A SEGMENT IN THE BUFFER? + SMA CLA + JMP DE7 /NO, SO START FROM THE BEGINNING + TAD I GERETA /GET THE SEGMENT IN CORE + CMA + DCA NSEGCR + TAD DERETP /GET RETRIEVAL PTR FOR INCREMENT + DCA UFDPTR +DE5, TAD I UFDPTR + SNA /IS THERE A SEGMENT? + JMP DE7 /NO, START FROM 0 LOC IN UFD + TAD NSEGCR /YES, DOES IT AGREE WITH THE SEGMENT IN CORE? + SNA CLA + JMP DE6 /YES, START SEARCHING AT THIS POINT + TAD DE2 /NO, INCREMENT THE ADDR + TAD C0400 + DCA DE2 + ISZ UFDPTR /POINT TO NEXT SEGMENT IN RETRIEVAL BLOCK + JMP DE5 /GO BACK +DE7, DCA DE2 /INDICATE THAT SEARCH IS FROM WORD 0 + STA +DE6, DCA I UFD01 /SAVE SECOND PASS FLAG +DE1, TAD DERETP + JMS I GE01 /GET ENTRY INTO CORE +DE2, 0 + SNA /SKIP IF ENTRY EXISTS + JMP DE4 /DID NOT EXIST, EXTEND UFD + DCA DEBUFP + TAD I DEBUFP /FIRST WORD OF ENTRY + SZA CLA + JMP DE3 /NOT EMPTY, LOOK AT NEXT ENTRY + ISZ DEBUFP /ZERO COULD MEAN END OF STRING OF RETRIEVAL INFORMATION BLOCKS + TAD I DEBUFP /LOOK AT SECOND WORD OF ENTRY + SZA CLA /IF ZERO, EMPTY ENTRY + JMP DE3 /NOT EMPTY, KEEP LOOKING + TAD DE2 /PICK UP ENTRY POINTER + SNA /ENTRY 0 NEVER AVAILABLE + JMP DE3 + ISZ DE0 /POINT TO NORMAL RETURN + JMP I DE0 + DE3, TAD C0010 /INCREMENT TO NEXT ENTRY + TAD DE2 + DCA DE2 /SAVE NEXT ENTRY INDEX + JMP DE1 /LOOK AT NEXT ONE + +DE4, ISZ I UFD01 /HAVE WE TRIED FROM THE BEGINNING YET? + JMP DE7 /NO, WELL TRY IT THEN... + TAD DERETP + JMS I UFD01 /TRY EXTENDING THE UFD + JMP I DE0 /TOO BAD, CAN'T EXTEND UFD + JMP DE1 /NOW WE HAVE PLENTY OF ROOM +DEBUFP, 0 +UFD01, UFD0 +DERETP, 0 +UFDPTR, 0 +GERETA, RDCURR +NSEGCR, 0 + +/ROUTINE TO OUTPUT QUOTA EXCEEDED MESSAGE +EXTEL0, 0 + DATFLD + TAD FIJOB /CURRENT JOB NUMBER + TAD TTYTAB /POINTS AT POSITION IN TTYTBL + DCA DE0 + TAD I DE0 /GET CONSOLE NUMBER FOR THIS JOB + STL RAL /TIMES 2 PLUS 1 + TAD DEVTBA /INDEX TO OUTPUT DDB + CDF + DCA I CONDVA /STORE FOR FIELD 0 PRINT ROUTINE + CFLD + TAD EXTMES /GET MESSAGE POINTER + DCA INDEX +EXTEL1, TAD I INDEX /GET CHARACTER OF THE MESSAGE + SNA /ANY LEFT? + JMP I EXTEL0 /NO; SO GO EXTEND + CIF CDF 00 + DCA I FICHAR /STORE FOR PRINT OUT ROUTINE + CFLD + PRINT /SEND MESSAGE #[EXCEEDING DISK QUOTA]# + JMP I EXTEL0 /RAN OUT OF SPACE IN THE OUTPUT BUFFER (TOO BAD!) + JMP EXTEL1 /BACK FOR NEXT CHARACTER + +TTYTAB, TTYTBL +CONDVA, CONDBA +EXTMES, EXCEED-1 +FICHAR, TTCHAR + /ROUTINE TO CLEAR ALL CPU AND DEVICE TIME ACCUMULATORS IN THE MFD +/THIS IS USED BY THE #RESET# FUNCTION IN THE CUSP #CAT# +LGRES0, CLA IAC /SET RESET FLAG IN DIRECTORY SEARCH ROUTINE + DCA I RETBK1 + TAD RETBK1 + DCA EXQ1 /SET POINTER SO FLAG WILL CLEAR ON COMPLETION + TAD RETTBL + DCA GDRETP /SET RETRIEVAL POINTER + JMS LOQUO /GO DO THE RESET + CMA /SHOULD RETURN A ZERO IN AC + JMP EXTQU1 + +/ROUTINE TO COUNT TOTAL SEGMENTS OWNED BY A UFD AND +/SAVE THE RESULT IN WORD 3 OF THE UFDTBL ENTRY FOR THE RESPECTIVE UFD +/CALL: +/ EXQ1 POINTS TO WORD 3 OF CORRECT UFDTBL ENTRY +/ JMS LOQUO +/ RETURN (ENTRY 3 LOADED, TOTAL ALSO IN AC) + +EXQ3, +LOQUO, 0 + DCA WNDREM /FUDGE A FILE NAME BEGINNING WITH TWO SPACES + JMS I DS01 /SEARCH DIRECTORY TO DETERMINE SEGMENT COUNT + GDRETP /(HOPE NO ONE SCRAMBLES LOC. 23-26 ON PAGE 0!!) + CLA SKP /GOOD - COULDN'T FIND SUCH A FILE + JMP I DIRBAD /FOUND IT! OOPS! + TAD SEGLIM /GET THE TOTAL FROM THE DIRECTORY SEARCH + DCA I EXQ1 /SAVE IN UFDTBL + TAD FIOSTK+1 /INTERNAL FILE NUMBER? + SMA /IF THIS IS NOT A "RESET" WE MUST RELOAD + JMS I GD01 /THE CORRECT DIRECTORY SEGMENT + DCA REL6 /SAVE POINTER TO NAME BLOCK + TAD SEGLIM /RETURN WITH CURRENT TOTAL + JMP I LOQUO + + +EXTQU8, CLA /WE'VE BEEN HERE BEFORE FOR THIS GUY + CFLD + TAD EXQ2 /WILL THIS EXTEND CARRY + TAD I EXQ1 /THIS FILE ACROSS THE QUOTA BOUNDARY AGAIN? + SMA SZA CLA /(I.E. HAS [S]HE REDUCED SINCE LAST EXTEND?) + JMP EXTQU9 /NO; [S]HE'S STILL ABOVE QUOTA, EXTEND QUIETLY +EXTQU6, TAD EXFILE /ADDRESS WITHIN MESSAGE TO STORE FILE NAME + DCA INDEX + JMS EXTNAM /CHAR 1 & 2 OF FILE NAME + JMS EXTNAM /CHAR 3 & 4 OF FILE NAME + JMS EXTNAM /CHAR 5 & 6 OF FILE NAME + JMS I EXTELL /NOTIFY USER THAT QUOTA IS BEING EXCEEDED +EXTQU9, CLA + JMP I EXTQU0 /EXIT TO EXTEND FILE AS REQUESTED + +EXTQU5, TAD FIOSTK+2 /NUMBER OF SEGMENTS [S]HE WON'T GET +EXTQU1, DCA FIUSAC /PASS RESULT BACK TO THE USER + JMP I FIEXIT + /ROUTINE TO CHECK LOGIN QUOTA BEFORE EXTENDING A FILE + +EXTQU0, 0 + TAD GDRETP /COMPARE RETRIEVAL POINTER + CIA + TAD RETTBL /AGAINST THE MFD'S ENTRY + SNA CLA /IS IT FROM THE SYSTEM MANAGER? + JMP I VIOLAT /GET OUT QUICK, BEFORE [S]HE DESTROYS THE SYSTEM + TAD FIOSTK+2 /NUMBER OF SEGMENTS TO BE ADDED + SPA /IS [S]HE BEING REASONABLE? + JMP EXTQU1 /NO - [S]HE DESERVES TO FAIL! + CLL CIA + TAD I SATSEG /ARE THERE THAT MANY SEGMENTS LEFT ON THE SYSTEM? + SNL CLA + JMP EXTQU5 /NO; SO DON'T GIVE ANY + TAD GDRETP /RETRIEVAL POINTER + JMS I ENS33 /CONVERT TO RELATIVE ENTRY NUMBER + STL RTL /TIMES FOUR PLUS TWO + TAD UFDTBL /POINTS AT -LOGIN QUOTA + DCA EXQ1 /SAVE POINTER + TAD I EXQ1 /GET NEGATIVE QUOTA + DCA EXQ2 /AND SAVE + ISZ EXQ1 /POINTS AT CURRENTLY OWNED COUNT + TAD I EXQ1 /GET HIS/HER PRESENT TOTAL + SNA /HAS THE COUNT BEEN SET UP YET? + JMS LOQUO /NO; GO FIGURE IT OUT + TAD FIOSTK+2 /ADD THE NUMBER [S]HE WANTS + TAD EXQ2 /AND SUBTRACT FROM QUOTA + SPA SNA /WILL THIS EXCEED THE QUOTA FOR THIS ACCOUNT? + JMP EXTQU9 /NO; GO EXTEND + TAD I GRACE /WILL IT GO BEYOND THE #GRACE SPACE#? + SMA SZA CLA + JMP EXTQU5 /YES; DON'T BOTHER EXTENDING + TAD FIOSTK+1 /SEE IF THIS FILE IS ALREADY IN THE GRACE AREA + JMS I LNK01 /GET POINTER TO FILE CONTROL BLOCK + TAD FILPRP /POINT TO STATUS WORD + DCA EXQ3 + DATFLD + TAD I EXQ3 /GET CURRENT STATUS FOR THIS FILE + RAR + SZL /IS THIS FILE IN THE GRACE AREA? + JMP EXTQU8 /MAYBE; SEE IF [S]HE'S REENTERING + STL RAL /SET GRACE BIT + DCA I DXQ3 + CFLD + JMP EXTQU6 /SEND MESSAGE, THEN GO EXTEND + /ROUTINE TO PLANT FILE NAME INTO "EXCEEDING QUOTA" MESSAGE + +EXTNAM, 0 + TAD I REL6 /GET PART OF FILE NAME + RTR + RTR + RTR + AND P0077 /SAVE LEFT BYTE + TAD P0240 /CONVERT TO ASCII + DCA I INDEX /STORE IN THE MESSAGE AREA + TAD I REL6 /NOW FOR THE RIGHT BYTE + AND P0077 + TAD P0240 /CONVERT TO ASCII + DCA I INDEX /SAVE RIGHT BYTE + ISZ REL6 /POINT TO NEXT CHARACTER + JMP I EXTNAM + +/ROUTINE TO CHECK FOR THE SAFE REDUCTION OF A UFD +/TWO CONDITIONS MUST BE MET: +/ THE ACCOUNT CANNOT BE IN USE TO ANYONE +/ THE ACCOUNT MUST HAVE AN EMPTY DIRECTORY + +EXQ2, +REDUF0, 0 + TAD GDRETP /GET RETRIEVAL POINTER + CIA + TAD RETTBL /IS [S]HE TRYING TO REDUCE A UFD? + SZA CLA + JMP I REDUF0 /NO; LET HIM/HER REDUCE NORMAL FILES + TAD I REL6 /GET THE ACCOUNT NUMBER OF THE UFD IN QUESTION + JMS I UTS01 /LOOK IT UP IN THE UFD TABLE + JMP REDUF1 /NOT THERE - GOOD + CLA + TAD C4400 /TELL HIM "FILE IN USE" + JMP EXTQU1 +REDUF1, TAD I REL6 /GET THE ACCOUNT NUMBER OF THE UFD TO BE DELETED + JMS I UFO01 /LOAD ITS RETRIEVAL WINDOW INTO RTABLE + JMP EXTQU5 /COULDN'T; PAS HIS/HER OWN AC BACK AS AN ERROR INDICATION + JMS I BLDP1 /MAKE A RETRIEVAL POINTER + DCA GDRETP /SAVE IT FOR THE SEARCH + ISZ EXQ1 /POSITION UFDTBL POINTER FOR THIS ACCOUNT + ISZ EXQ1 /TO POINT TO THE SEGMENT ACCUMULATOR + JMS LOQUO /SEE IF THIS UFD STILL CONTAINS FILES + CLL STA RTL /AC=-3 + TAD EXQ1 /POSITION WE'VE BEEN ASSIGNED ON UFDTBL + JMS I TF01 /FREE THE POSITION + TAD I EXQ1 /DID [S]HE OWN ANY SEGMENTS? + SZA CLA + JMP I VIOLAT /STILL SOME FILES IN THERE! + STA + DCA FIOSTK+2 /FORCE HIM/HER TO COMPLETELY DELETE THIS UFD + JMP I REDUF0 + + VIOLAT, PRT1+1 +ENS33, ENS3 +SATSEG, -SATSIZ+1 +EXFILE, EXCEED+2 +EXTELL, EXTEL0 +P0240, 240 +GRACE, UTABLE+2 + +$%&$%&$%&$%&$%&$%&$%&$%&$%&$%&$%&$%&$%&$%&$%&$%&$%&$ + \ No newline at end of file diff --git a/tss8/system/inita.pal b/tss8/system/inita.pal new file mode 100644 index 0000000..4510ab3 --- /dev/null +++ b/tss8/system/inita.pal @@ -0,0 +1,1223 @@ +/EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB +/COPYRIGHT 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON WHICH INDIVIDUAL +/EDUSYSTEM 50 MONITORS ARE TO RUN. +/FOR EACH STATEMENT, THE COMMENT INDICATES THE POSSIBLE RESPONSES. + +CPU= 2 /1 IF CPU IS PDP-8; 0 IF CPU IS PDP-8/I; + /2 IF CPU IS PDP-8/E + +CORMEM= 70 /HIGHEST DATA FIELD SELECT. FOR 12K SYSTEM, + /RESPOND 20, FOR 16K SYSTEM, RESPOND 30, ETC. (70 MAX) + +PHONES= 0 /1 IF DC08 INCLUDES 689AG; + /0 IF IT DOES NOT OR IF TTY INTERFACING IS OTHER THAN DC08 + +EAE= 0 /20 IF PROCESSOR INCLUDES EAE; 0 IF IT DOES NOT + +RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF SYSTEM DISK IS RF08 + +RS08= 1 /NUMBER OF DISCS ON THE SYSTEM, WHETHER DF/DS OR RF/RS. + /RESPOND WITH 1, 2, 3, OR 4. + +PUNCH= 1 /1 IF SYSTEM INCLUDES PUNCH; 0 IF IT DOES NOT + +TC01= 1 /1 IF SYSTEM INCLUDES DECTAPE(S); 0 IF IT DOES NOT + +RK05= 1 /NUMBER OF RK05 CARTRIDGE DISK DRIVES ON THE SYSTEM; 0 TO 4 + +CDR= 1 /1 IF SYSTEM INCLUDES CARD READER; 0 IF IT DOES NOT + +LPT= 1 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER + +DECIMAL /MONITOR CAPACITY FOR THIS SYSTEM + +JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (20 MAXIMUM) + +/THE FOLLOWING ENTRIES DEFINE THE NUMBER OF TERMINALS +/ATTACHED TO THE SYSTEM, AND ALSO THE METHOD OF INTERFACING + +CONTTY= 1 /WE ALWAYS HAVE A CONSOLE (K00) + +DC08A= 0 /NUMBER OF TERMINALS INTERFACED VIA DC08A (PDP-8/I ONLY, 19 MAX.) + +DC08LO= 0 /LOWEST HARDWARE LINE NUMBER UTILIZED ON DC08A; USUALLY 0 + +PT08= 0 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY) + +KL8= 16 /NUMBER OF ADDITIONAL TERMINALS INTERFACED VIA KL8 (PDP-8/E ONLY, 19 MAX.) + /PARAMATERS VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + OCTAL +PLT= 0 +IFNZRO CPU < IFNZRO DC08A > +IFNZRO 24-JOBMAX&4000 +IFNZRO 23-KL8-PT08&4000 +IFNZRO 24-DC08A&4000 +IFZERO DC08A +IFNZRO DC08A < IFNZRO PHONES + IFZERO PHONES > +NULINE= DC08A+PT08+KL8 /EVERY TERMINAL EXCEPT THE CONSOLE +SWDEX= 5 /DISK TRACK OF THE FIRST USER SWAP TRACK +STOMIN= 5 /MINIMUM # FREE STORAGE BLOCK FOR NEW JOB +IFZERO RF08-40 < +IFZERO RS08-1 +IFZERO RS08-2 +IFZERO RS08-3 +IFZERO RS08-4 +DSKEXT= DSKSIZ-1> +IFZERO RF08 +CLOCKR= 144 /MILLISECONDS PER TICK +TICMIN= 1130 /600 TICKS PER MINUTE +INCLK2= 0322 /INITIAL CLOCK +INCLK1= 7400 +TICSPS= 12 /NUMBER OF SYSTEM TICKS PER SECOND +INIDEX= 10 /INIT DISC EXTENSION +TS8DEX= 30 /FIELD 0 DISC EXTENSION*2^3 +ERPDEX= 0 /ERP DISC EXTENSION*4 +ERPWC= 0 /ERP WORD COUNT +FIPDEX= 4 /FIP DISC EXTENSION*4 +FIPWC= 0 /FIP WORD COUNT +SIDEX= ERPDEX /SI DISC EXTENSION*4 +SIWC= ERPWC /SI WORD COUNT +LIBACT= 2 /LIBRARY ACCOUNT # +BRKINI= 4000 /INITIAL USER BREAK MASK + + /IOT DEFINITIONS + +IFNZRO DC08A < /DC08A, DL8I IOTS +TTIL= 6401 /INCREMENT LINE REGISTER +TTI= 6402 /TELETYPE INPUT COMMAND +TTO= 6404 /TELETYPE OUTPUT COMMAND +TTCL= 6411 /CLEAR LINE REGISTER +TTLL= 6412 /LOAD LINE REGISTER, CLEAR AC +TTRL= 6414 /READ LINE REGISTER +T1SKP= 6421 /SKIP ON CLOCK FLAG +T1OFF= 6422 /TURN CLOCK OFF +T1ON= 6424 /TURN CLOCK ON +TTIR= 6461 /INCREMENT THE R REG. +TTCR= 6471 /CLEAR THE R REG. +TTLR= 6472 > /LOAD THE R REG. +/EXTEDED MEMORY + +CDF= 6201 /CHANGE TO DATA FIELD 0 +CIF= 6202 /CHANGE TO INSTRUCTION FIELD 0 +CINT= 6204 /CLEAR USER IOT + +RDF= 6214 /READ DATA FIELD +RIF= 6224 /READ INSTRUCTION FIELD +RIB= 6234 /READ INTERRUPT BUFFER +RMF= 6244 /RESTORE MEMORY FIELD +SINT= 6254 /SKIP ON USER IOT +CUF= 6264 /USER FLAG OFF +SUF= 6274 /USER FLAG ON + + +/EAE +MUY= 7405 /MULTIPLY +DVI= 7407 /DIVIDE +NMI= 7411 /NORMALIZE +SHL= 7413 /SHIFT ARITHMETIC LEFT +ASR= 7415 /ARITHMETIC SHIFT RIGHT +LSR= 7417 /LOGICAL SHIFT RIGHT +MQL= 7421 /LOAD MQ +SCL= 7403 /STEP COUNTER LOAD FROM MEMORY +SCA= 7441 /STEP COUNTER TO AC +MQA= 7501 /MQ TO AC + +IFZERO CPU-2 < + +DBSZ= 7451 /MODE B ONLY - SKIP IF AC&MQ ARE CLEAR +SWBA= 7447 /CHANGE MODE TO A +SWAB= 7431 /CHANGE MODE TO B (ALSO DOES MQL) +ACS= 7403 /AC(7:11) TO SC; AC CLEARED +SGT= 6006 /SKIP ON GT FLAG + > + + + +/LINE PRINTER IOTS +LSF= 6661 /SKIP ON CHAR FLAG SET + LCF= 6662 /CLEAR CHAR FLAG +LSRP= 6663 /SKIP ON NOT READY OR ON ERROR +LLC= 6664 /TRANSMIT CHAR TO PRINTER +LSP= 6665 /SET PROGRAM INTERRUPT; LP08/LE8 +LPC= 6666 /TRANSMIT CHAR & CLEAR FLAG +LCP= 6667 /CLEAR PROGRAM INTERRUPT +LIE= 6665 /AC11 TO INTERRUPT ENABLE; LS08/LS8E + +/CTY + +TPC= 6044 /LOAD TELEPRINTER AND PRINT + +/DISC (DF32) + +DCMA= 6601 /CLEAR +DMAR= 6603 /READ +DMAW= 6605 /WRITE +DCEA= 6611 /CLEAR DISC EXTENDED ADDRESS +DEAL= 6615 /LOAD EXTENDED ADDRESS +DFSE= 6621 /SKIP ON ERROR +DFSC= 6622 /SKIP ON COMPLETION +DEAC= 6616 /READ EXTENDED ADDRESS + +/DISC (RF08) + +DSAC= 6612 +DORS= 6614 +DIML= 6615 +DIMA= 6616 +DCXA= 6641 +DXAL= 6643 + +/CARD READER IOT'S +RCSF= 6631 +RCRA= 6632 +RCRB= 6634 +RCNO= 6635 /8E ONLY +RCRC= 6636 /8E ONLY +RCNI= 6637 /8E ONLY +RCSD= 6671 +RCSE= 6672 +RCRD= 6674 +RCSI= 6675 /8E ONLY +RCTF= 6677 /8E ONLY + +/RK05 IOT'S + +IFZERO PHONES < +DSKP= 6741 +DCLR= 6742 +DLAG= 6743 +DLCA= 6744 +DRST= 6745 +DLDC= 6746 +DMAINT= 6747 > + IFNZRO PHONES < +DSKP= 6751 +DCLR= 6752 +DLAG= 6753 +DLCA= 6754 +DRST= 6755 +DLDC= 6756 +DMAINT= 6757 > + +/DECTAPE + +DTRA= 6761 +DTCA= 6762 +DTXA= 6764 +DTSF= 6771 +DTRB= 6772 +DTLB= 6774 + + +IFZERO CPU < +/KW8I REAL TIME CLOCK + +CECI= 6137 /CLEAR AND ENABLE CLOCK AND INTERRUPT +CSCF= 6133 /SKIP AND CLEAR FLAG IF FLAG +> +IFZERO CPU-1 < +CECI= 6315 /CLOCK ENABLE +CSCF= 6301 /SKIP ON CLOCK FLAG +CCF= 6302 /CLEAR CLOCK FLAG, CLEAR ENABLE, AND CLEAR BUFFER +CLB= 6304 > /LOAD BUFFER FROM AC + +IFZERO CPU-2 < +CECI= 6131 /CLOCK ENABLE +CSCF= 6133 /SKIP AND CLEAR FLAG IF FLAG + +/POWER FAIL IOT + +SPL= 6102 /SKIP IF POWER LOW + +/ 8/E PROCESSOR IOT +SRQ= 6003 /SKIP ON INTERRUPT REQUEST +GTF= 6004 /LINK TO AC0, GT FLAG TO AC1 +RTF= 6005 /AC0 TO LINK, AC1 TO GT FLAG +CAF= 6007 > /CLEAR ALL FLAGS + +IFZERO CPU-4 < +CLLE= 6135 /AC11 TO INTERRUPT ENABLE FOR CLOCK +CLCL= 6136 /CLEAR CLOCK FLAG +CLSK= 6137 /SKIP ON CLOCK FLAG +SPL= 6102 /SKIP POWER LOW +CAL= 6133 > /CLEAR AC LOW FLAG + + IFNZRO DC08A < + +/689AG + +SRF= 6701 /SKIP IF RING FLAG +SCF= 6711 /SKIP IF CARRIER FLAG +DFCRF= 6742 /CLEAR RING FLAG +CTG= 6721 /CLEAR GROUP COUNTER +RRS= 6702 /READ RING STATUS +ITG= 6731 /INCREMENT GROUP COUNTER +STR= 6722 /SET TERMINAL READY +EDF= 6704 /ENABLE DATAPHONE FEATURES +DDF= 6714 /DISABLE DATAPHONE FEATURES +CTR= 6724 /CLEAR TERMINAL FLAG +CCF= 6741 /CLEAR CARRIER FLAG +RCS= 6712 /READ CARRIER STATUS + > + +/FIP IOTS (IN ABBREVIATED FORM) + +SEGS= 0006 /RETURN NUMBER OF FREE SEGMENTS ON DISK +ASD= 0040 /ASSIGN +REL= 0042 /RELEASE +REN= 0200 /RENAME +OPEN= 0201 /OPEN +CLOS= 0202 /CLOSE +RFILE= 6603 /READ FILE +PROT= 0204 /PROTECT +WFILE= 6605 /WRITE FILE +CRF= 0210 /CREATE +EXT= 0211 /EXTEND +RED= 0212 /REDUCE +FINF= 6613 /FILE INFORMATION +LIN= 0214 /LOGIN +LOUT= 0215 /LOGOUT +WHO= 6616 /WHO +/DEVICE DATA BLOCK + +DDBSTS= 0 /WORD 1, STATUS AND UNIT NUMBER + DXON= 2000 /XOFF SENT FLAG + DSI= 1000 /DESTINATION IS S.I. FLAG + DFULL= 400 /KEYBOARD BUFFER IS FULL + DUPL= 200 /CONSOLE IN DUPLEX MODE + SICOM= 100 /COMMAND WAITING + DECHO= 40 /CAUSE SI TO RE-ECHO CURRENT INPUT BUFFER + + /DEVICE UNIT NUMBER IS IN BITS 6-11 + +DDBJN= 1 /WORD 2, JOB NUMBER IN 7-11 +DDBBRK= 2 /BREAK MASK +DDBTIM= 3 /TIME THAT DEVICE WAS ASSIGNED +DDBINP= 4 /BUFFER FILL POINTER +DDBINC= 5 /BUFFER TOTAL COUNT +DDBOUC= 6 /BUFFER EMPTY COUNT +DDBOUP= 7 /BUFFER EMPTY POINTER + /JOB DATA AREA + +JOBSTS= 0 /STATUS + /STR0 + JSRUN= 4000 /RUN BIT + JSEREN= 2000 /USER ERROR ENABLE + JCOMBD= 1000 /LAST TIME THE JOB RAN AS COMPUTE BOUND + JSPEEK= 400 /ALLOW "PEEK" AND "LOGOUT" IOT'S + JSACC= 200 /JOB LOGGED IN UNDER PRIVILEGED ACCOUNT (1, 2, OR 3) + JSIOT= 100 /NON-RESIDENT IOT + JSIOTC= 40 /COPY IOT RESULT TO USER + JSEXON= 20 /EXECUTE ONLY + JSINER= 10 /INHIBIT ERROR REPORT FROM SI, (UNTIL NEXT COMMAND) + /BITS 9-11 ARE SYSTEM ERROR CODE + UUOERF= 1 /IOT ERROR + SWPRER= 2 /SWAP READ ERROR + SWPWER= 3 /SWAP WRITE ERROR + DSKERR= 5 /DISC ERROR + HUNGDV= 6 /HUNG DEVICE + + /STR1 + JSTIME= 4000 /TIME IS UP + JSF0= 2000 /FILE 0 IS NOT BUSY + JSF1= 1000 /FILE 1 IS NOT BUSY + JSF2= 400 /FILE 2 IS NOT BUSY + JSF3= 200 /FILE 3 IS NOT BUSY + JSDEL= 100 /KEYBOARD DELIMITER SEEN + JSLPT= 40 /LINE PRINTER BUFFER IN USE BUT NOT FULL + JSTEL= 20 /TELEPRINTER OUTPUT BUFFER IN USE BUT NOT FULL + JSPTR= 10 /CHARACTERS IN READER BUFFER + JSPTP= 4 /PUNCH BUFFER IN USE BUT IS NOT FULL + JSERR= 2 /SYSTEM ERROR DETECTED + JSWAIT= 1 /JOB NOT IN WAIT STATE + + +JOBSTB= 2 /DEVICE STATUS REGISTER (FOR RK05, DECTAPE, AND CARD READER) +JOBWMK= 3 /WAIT MASK +JOBSRA= 5 /JOB RESTART ADDRESS +JOBERR= 6 /JOB ERROR RESTART ADDRESS +JOBLNK= 7 /IOT LINKAGE +JOBSWR= 10 /SWITCH REGISTER +JOBREG= 11 /PC LINK AC +JOBEAE= 14 /MQ MODE GT SC +JOBACC= 16 /ACCOUNT NUMBER +JOBF0= 17 /POINTER TO FILE 0 CONTROL +JOBF1= 20 /POINTER TO FILE 1 CONTROL +JOBF2= 21 /POINTER TO FILE 2 CONTROL +JOBF3= 22 /POINTER TO FILE 3 CONTROL +JOBRTM= 23 /LOW ORDER RUN TIME +JOBRTH= 24 /HI ORDER RUN TIME + /FILE CONTROL BLOCK - POINTED TO BY JOBFX, X=0,1,2,3 + +FILWPT= 0 /POINTER TO FILE RETRIEVAL WINDOW +FILSCT= 1 /SEGMENT NUMBER OF FIRST WINDOW ENTRY +FILPRO= 2 /FILE PROTECTION - BIT 9 +FILPAR= 3 /POINTER TO RFILE OR WFILE PARAMETER BLOCK +FILDA= 4 /DISC ADDRESS OF RFILE OR WFILE +FILWC= 6 /-WORD COUNT OF RFILE OR WFILE +FILRES= 7 /POINTER TO FILPIF IN USER AREA + +/FILE RETRIEVAL WINDOW +/WORD 0: UFD LINK TO NEXT GROUP OF 7 SEGMENT POINTERS +/WORDS 1-7: SEVEN SEGMENT ADDRESSES + +/RFILE OR WFILE PARAMETER BLOCK - POINTED AT BY FILPAR + +FILPFN= 0 /FUNCTION: 0603 OR 0605 +FILPDX= 1 /DISC EXTENSION +FILPIF= 2 /INTERNAL FILE # (BITS 10-11) AND FIELD # (BITS 7-9) +FILPWC= 3 /-WORD COUNT FOR THIS TRANSFER +FILPCA= 4 /CORE ADDRESS FOR THIS TRANSFER +FILPDA= 5 /DISC ADDRESS +FILPRA= 6 /EXEC RETURN ADDRESS FOR THIS TRANSFER +FILPCT= 7 /POINTER TO FILE CONTROL BLOCK + + +/CORE TABLE CONTROL FLAGS + +SWAP= 4000 /SWAP REQUEST +LOCK= 2000 /LOCK IN CORE +NOTRUN= 1000 /HAS NOT BEEN SCHEDULED TO RUN +FIP= 400 /FILE PHANTOM +SI= 200 /SYSTEM INTERPRETOR +NOHOLD= 140 /INHIBIT "NOTRUN" STATUS AFTER FOUR CONSECUTIVE FILE TRANSFERS +CJOB= 37 /BITS 7-11 CONTAIN THE JOB # + + + +/FIP TABLE DEFINITIONS + +SATSIZ= 530 +JTABLE= 6000 +ENTABL= JTABLE+JOBMAX+1 +UTABLE= ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX +RTABLE= UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX + + +/TABLES +CORTBL= 7001 /CORE ASSIGNMENT TABLE +L2QTB= CORTBL+7 +IFZERO DC08A +IFNZRO DC08A /SIZE OF FIELD 1 DC08A CODE PLUS 689AG CODE + +OUTREG= 200 /ACTIVE OUTPUT REGISTERS (TTY'S, LPT & PTP) +SKPTBL= OUTREG+NULINE+3 /START OF IOT SKIP TABLE +SKPTP= SKPTBL+NULINE+NULINE+3 /POSITION OF PUNCH SKIP IN SKIP TABLE +RINGIN= SKPTP+3 /KEYBOARD INPUT RING BUFFER +ENDBUF= OUTREG+200 /END OF KEYBOARD INPUT BUFFER +INPUTS= ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE ENTRIES IN THE KEYBOARD RING BUFFER + +DATFLD= CDF 10 /MONITOR DATA FIELD SELECT + +IFZERO EAE-20 +IFZERO EAE + IFZERO CPU&7776 > +IFNZRO OUTREG&1 + /SUPER CRITICAL LOCATIONS +/THESE LOCATIONS ARE USED TO LINK TS8, TS8II, FIP, SI, AND INIT. + +/IT MAY BE NECESSARY TO ADJUST THEM ACCORDINGLY + +/DEFINED IN TS8: + +WSCHED= 2573 /ADDRESS FOR WAIT +GETJTB= 401 /GETJTA +CORSRC= 1317 /SEARCH CORE TABLE +OVERLA= 5171 /FILE STUFF +READFI= 574 /MORE FILE STUFF +CONDBA= 132 /DEVTBL POINTER USED BY "PRINT" ETC. +RETB= 611 /RETURN A BLOCK TO FREE CORE +GETB= 1405 /GET A BLOCK OF FREE CORE +GETDB0= 1447 /GET A DDB +CLK1= 51 /LOW ORDER DAYTIME CLOCK +CLK2= 50 /HIGH ORDER DAYTIME CLOCK +DATE= 166 /12 BIT DATE WORD +TTCHAR= 31 /SAVE REG. FOR CONSOLE CHARACTERS +KBD00= 3201 /PROCESS KEYBOARD INPUT +PRINT0= 1205 /TYPE OUT A CHARACTER +OVRLA1= 562 /MORE FILE STUFF +RUNFI= 605 /SI FILE TRANSFER INITIALIZER +L2SF= 103 /LEVEL 2 SAVED MODE AND FIELD +SICLR= 6572 /SI CLEAR LINKED BUFFER +TIMSI= 2421 /TIMER FOR SI "COMWAT" +SIWAIT= 1702 /NUMBER OF SI COMMANDS BEING WAITED ON +TIMFIP= 2423 /TIMER FOR FIPLOCK +FIPLOK= 2724 /CORTBL STATUS CHECK FOR FORCE OUT +CLKINI= 322 /CONVERT HARDWARE CLOCK TO SYSTEM-TICKS (100MS) +BLT0= 1602 /BLOCK TRANSFER FROM CORE TO CORE +KBDSQ= 3213 /ADDRESS OF JMS TO ^S/^Q CODE + +/DEFINED IN TS8II: + +F1TCNT= 175 /SI DDB CHARACTER COUNT +F1ECNT= 176 /SI DDB EMPTY COUNT +F1BUF= 177 /SI DDB EMPTY BLOCK POINTER +DTJOB= 20 /JOB OWNING THE DECTAPE CONTROLLER +RKJOB= 54 /JOB OWNING RK05 CONTROLLER +DTSI= 1175 /SI TERMINATE A DECTAPE ON TIMER +DATA1= 2200+DCSIZE +DEVTBL= DATA1+140 +DEVTBE= DEVTBL+NULINE+NULINE+2 +JOBTBL= DEVTBE+22 +CLKTBL= JOBTBL+JOBMAX+1 +TTYTBL= CLKTBL+JOBMAX+1 +PRGTBL= TTYTBL+JOBMAX+1 +DSUTBL= PRGTBL+JOBMAX+JOBMAX+JOBMAX-7 +FIPBLK= 7720 /FIXED BLOCK FOR FIP I/O +WINBAS= 7730 /ADDRESS OF THE BASIC WINDOW +OUTDIF= -OUTREG^2+DEVTBL /FOR LINKING BETWEEN OUTREG AND DEVTBL +F1OFFJ= 164 /FOR OFF/ON COMMANDS USED BY SI +IFNZRO DEVTBL&1 + +/DEFINED IN SI: + +DTSIDT= 7270 /RETURN FROM STOPPING A DECTAPE ON TIMER +VERBRK= 7600 /START OF INSTALLATION DEFINED LOGIN MESSAGE + /INIT VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + /RIM AUTO-LOADER FOR TSS/8 INIT + RIM1= 7757 + RIM2= 7760 +*7400 + FIX, DCA RD1 /SAVE SKIP IOT +*7401 + TAD K5 +*7402 + TAD RD1 +*7403 + DCA RD2 /SAVE READ IOT +*7404 + RIF /CURRENT FIELD +*7405 + CMA +*7406 + AND KCDF /CREATE CDF FOR FIELD 0 OR 2 +*7407 + DCA KCDF +*7410 + KCDF, CDF 20 +*7411 + JMS FRM /READ NEXT FRAME; SKIP ON RETURN +*7412 + LOOP, DCA SUM /SAVE NEW CHECKSUM +*7413 + TAD CHAR0 +*7414 + DCA CHAR1 /SAVE LEFT BYTE +*7415 + JMS READ +*7416 + DCA CHAR2 /SAVE RIGHT BYTE +*7417 + JMS FRM /LOOK AHEAD +*7420 + JMP CHKSUM /WE HAVE THE CHECKSUM +*7421 + JMS ASSMBL /ASSEMBLE BOTH BYTES +*7422 + SNL /DATA OR ORIGIN? +*7423 + JMP OSAVE /DATA +*7424 + DCA ORG /SAVE NEW ORIGIN +*7425 + ADD, TAD CHAR1 +*7426 + TAD CHAR2 /SUM BOTH BYTES +*7427 + TAD SUM /WITH THE OLD SUM +*7430 + JMP LOOP +*7431 + OSAVE, DCA I ORG /SAVE DATA + *7432 + ISZ ORG /INCREMENT ADDRESS +*7433 + RM200, 7600 /COVER SKIP WITH CONSTANT +*7434 + JMP ADD +*7435 + CHKSUM, JMS ASSMBL /ASSEMBLE CHECKSUM BYTES +*7436 + CIA +*7437 + TAD SUM /SUBTRACT CALCULATED SUM +*7440 + SZA /OK? +*7441 + HLT /NO; ERROR +*7442 + STL RTL /AC=2 +*7443 + TAD KCDF /PLUS CDF TO "INIT'S" FIELD +*7444 + DCA K5 /SAVE +*7445 + K5, 5 /CIF CDF TO FIELD 0 OR 2 +*7446 + JMP 0 /JUMP INTO INIT +*7447 + READ, 0 +*7450 + RD1, HLT /SKIP IOT +*7451 + JMP .-1 +*7452 + RD2, HLT /READ IOT +*7453 + DCA CHAR0 +*7454 + TAD CHAR0 +*7455 + JMP I READ +*7456 + FRM, 0 +*7457 + JMS READ /READ A FRAME +*7460 + TAD RM200 +*7461 + SPA /IS IT DATA/ORIGIN? +*7462 + ISZ FRM /YES; SKIP ON RETURN +*7463 + SPA SNA CLA /FIELD SETTING? +*7464 + JMP I FRM /NO +*7465 + JMP FRM+1 /YES; IGNORE IT +*7466 + ASSMBL, 0 +*7467 + TAD CHAR1 /LEFT BYTE +*7470 + CLL RTL +*7471 + RTL +*7472 + RTL /SHIFTED INTO POSITION +*7473 + TAD CHAR2 /PLUS RIGHT BYTE +*7474 + JMP I ASSMBL +*7475 + ORG, 0 +*7476 + CHAR0, 24 /CHECKSUM CORRECTION; RIGHT BYTE +*7477 + CHAR1, 0 +*7500 + CHAR2, 0 +*7501 + SUM, 6000 /CHECKSUM CORRECTION; LEFT BYTE +*7601 + RIMJMP, TAD RIMFIX +*7602 + DCA RIM2 /RESTORE RIM LOADER +*7603 + TAD RIM1 /GET SKIP IOT +*7604 + JMP I FIXA +*7605 + RIMFIX, JMP RIM1 +*7606 + FIXA, FIX +*RIM2 + JMP RIMJMP /EXIT FROM RIM + /PAGE 0 + +FIELD 2 /INIT LOADS ONTO DISK TRACK 2 + +*0 + JMP I SUPERA /JUST IN CASE!! +SUPERA, SUPER + + +*10 +AXS1, . +AXS2, . + +SIDATA= 20 /SYSTEM INTERPRETER DATA + +CONSTANTS=SIDATA+12 +*CONSTANTS +C0002, 2 +C0003, 3 +C0004, 4 +C0007, 7 +C0037, 37 +C0100, 100 +C1000, 1000 +C7770, 7770 +C7600, 7600 +C7763, 7763 +DM32, +C7740, 7740 + +JOBCON= CONSTANTS+11 /JOB CONTROL + +FRSTOR= JOBCON+3 +*FRSTOR + +FREE, . /POINTER TO HEAD OF FREE STORAGE +FRECNT, . /# FREE BLOCKS AVAILABLE + + +TIMDAT= FRSTOR+2 /CLOCK AND DATE +*TIMDAT + +/CLOCK +CLK2, . +CLK1, . + + +SCHDAT= TIMDAT+2 + +DATEND= 60 /END OF FIELD 0 PAGE 0 DATA + + + +FIPDAT= 155 /DATA REFERENCED BY FIP +*FIPDAT+1 + +C0400, 400 +SEGSIZ= C0400 /# WORDS PER SEGMENT + CORTBA, CORTBL-1 /CORE ALLOCATION TABLE +DSUTBA, DSUTBL /USER DISC REQUEST QUEUE + +/THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT +/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1 + +*DATE +DATE, . + +CORSRA, CORSRC +WAITA, WSCHED +WAIT= JMP I WAITA + + +/SUBROUTINE DISPATCHES + +SUBDSP= DATEND +*SUBDSP + +CHDFA, 0 +INIF, HLT + JMP I CHDFA + +CHDF= JMS CHDFA + +CJOBMX, -JOBMAX +INBUF, INBUFA +NUMBIA, NUMBI0 +CHAR, 0 +NUMHO, 0 + 0 + 0 +CORCNT, 0 + +C0010, 10 +C6201, 6201 +C0200, 0200 +C0177, 0177 + +COMGEA, COMGE0 +DISCA, DISC0 +DISCHA, DISCH0 +YESNO= JMS I . + YESNO0 +MESSAG= JMS I . + MESSA0 +OCTIN= JMS I . + OCTIN0 +GETIN= JMS I . + GETIN0 +OUTTLS= JMS I . +OUTA, OUT +INKRB= JMS I . + IN +ZERO1= JMS I . + ZERO +CHEKCC= JMS I . + CCCHEK +SWBASE, SWDEX /SWAP TRACK FOR JOB 1 +C7777, -1 +MC0377, -377 +OSF, OSTRAP +OST, 7607 +OSC, -16 +OSA, 7607 +OSTAB, . + RBOOT + 7746 + -7 + 7746 + KBOOT + 26 + -4 + 26 +KBOOT, DLCA + DLDC + DLAG + JMP 31 +OSTRAP, +NOPUNCH +*7607 +ENPUNCH + TAD KA + DCA 7754 + TAD KA + DCA 7755 + DTLB + TAD KB + DTLA + DTSF + JMP .-1 + TAD KC + JMP .-4 +KA, 7577 +KB, 600 +KC, 220 +/PAGE ASSIGNMENTS + + INIP= 1000 + /PROGRAM TO OPEN AND MODIFY SINGLE DISC REGISTERS + +*0200 +DISCLK, TAD KCR /PUT OUT A CR, LF + OUTTLS + TAD KLF + OUTTLS +/ NOW GET AN ADDRESS FROM THE KEYBOARD + JMS OTIN + JMP DISCLK /: IS ONLY VALID TERMINATOR + JMP DISCLK / " " +/DISC ADDRESS FOLLOWED BY ":" HAS BEEN ENTERED +DISPLA, JMS SPACE /PROVIDE ELEGANT FORMAT + JMS I POPEN /GET REG FROM DISC + TAD OPNREG /GET THIS VALUE + JMS I PHACK /DISPLAY IT + JMS SPACE /CONTINUE POLICY OF ELEGANT FORMATING + JMS I PSAVE /SAVE VALUE, VALUE1 +/REGISTER IS OPEN ---- WAIT FOR A MODIFY + JMS OTIN + JMP SHUT /TERMINATOR WAS CR + JMP CLSOPN /TERMINATOR WAS LF + +/: WAS TYPED ---- MUST BE NEW DISC ADDRESS + JMP DISPLAY + +/CARRIAGE RETURN MEANS CLOSE REGISTER +/FIRST, SEE IF IT WAS MODIFIED +SHUT, TAD INPUT + SPA CLA + JMP DISCLK /NO MODIFY +/OPEN REGISTER WAS MODIFIED, SO CHANGE ON THE DISC + TAD VALUE1 + DCA OPNREG + JMS I PCLOSE /WRITE VALUE OUT +/NOW SEND OUT LF AND START AGAIN + JMP DISCLK +/LINE FEED MEANS CLOSE REGISTER AND OPEN THE NEXT ONE +CLSOPN, TAD INPUT + SPA CLA + JMP .+4 /NO MODIFY +/VALUE WAS MODIFIED, SO WRITE OUT NEW ONE + TAD VALUE1 + DCA OPNREG + JMS I PCLOSE +/RESPOND TO LF WITH CR + TAD KCR + OUTTLS + TAD KCR + OUTTLS /FOR TIMING (??) + +/NOW RESTORE ADDR WORD TO VALUE1 + JMS I PRESTOR +/NOW INCREMENT ADDRESS IN VALUE, VALUE1 + JMS I PNEXTAD + /NOW TYPE OUT THIS NEW ADDRESS + TAD VALUE + JMS I PHACK + TAD VALUE1 + JMS I PHACK + TAD KCOLON + OUTTLS + JMP DISPLAY + +/TYPE TWO SPACES + +SPACE, 0 + TAD KSPACE + OUTTLS + TAD KSPACE + OUTTLS + JMP I SPACE +KSPACE, 0240 + +KCOLON, 0272 +KCR, 0215 +KLF, 0212 +POPEN, XOPEN +PCLOSE, CLOSE +PNEXTAD, NEXTAD + PSAVE, SAVE +PRESTOR, RESTOR +PHACK, HACK +/ROUTINE TO INPUT AN OCTAL NUMBER +/ECHOES INPUT IF IT WAS VALID +/CALL: JMS OTIN +/ CR TERMINATOR +/ LF TERMINATOR +/ : TERMINATOR +/ +/RETURNS WITH "DOUBLE PRECISION" INPUT IN +/VALUE AND VALUE1 +/INPUT=0 IF THERE WAS ANY, ELSE -1 + +OTIN, 0 + CLA CMA + DCA INPUT /NO INPUT YET + DCA VALUE /SUBTOTAL + DCA VALUE1 + SKP + + OUTTLS +LISTEN, INKRB + DCA YCHAR +/IS THE INPUT A VALID TERMINATOR? + TAD YCHAR + TAD KMCOLON /COLON? + SNA + JMP COEXIT /YES + TAD KMLF /LF? + SNA + JMP LFEXIT /YES + TAD KMCR /CR? + SNA + JMP CREXIT /YES +/NOT A VALID TERMINATOR --- IS IT A VALID OCTAL DIGIT? + TAD KMEIGHT + STL + TAD C0010 + SZL /IS IT A VALID OCTAL DIGIT? + JMP NOTOK /NO +/COMES HERE WITH A VALID OCTAL DIGIT + ISZ INPUT /REMEMBER THAT THERE IS INPUT + NOP +/NOW ADD THIS DIGIT TO THE DOUBLE PRECISION TOTAL + DCA XCHAR +/FIRST, SHIFT HIGH-ORDER WORD LEFT ONE PLACE + TAD VALUE + CLL RAL + CLL RAL + CLL RAL + DCA VALUE +/NOW GET LEFT-MOST LOW-ORDER DIGIT + TAD VALUE1 + RTL + RTL + AND C0007 + /MOVE THIS DIGIT INTO THE HIGH ORDER WORD + TAD VALUE + DCA VALUE +/NOW ADD NEW INPUT DIGIT + TAD VALUE1 + CLL RAL + CLL RAL + CLL RAL + TAD XCHAR + DCA VALUE1 + TAD YCHAR + JMP LISTEN-1 /NOW GO ECHO INPUT + +COEXIT, ISZ OTIN +LFEXIT, ISZ OTIN +CREXIT, TAD YCHAR + OUTTLS /ECHO TERMINATOR + JMP I OTIN + +NOTOK, CLA + MESSAG + NOTOK1 + JMP OTIN+1 +NOTOK1, TEXT " ?_" + + +VALUE, 0 +VALUE1, 0 +OPNREG, 0 +YCHAR, 0 +XCHAR, 0 +INPUT, -1 + +KMCOLON, -0272 +KMLF, -0212+": +KMCR, -0215+212 +KMEIGHT, -0270+215 + +*0400 +XOPEN, 0 + JMS CONVERT /MAKE A DISC ADDRESS OUT OF VALUE, VALUE1 + TAD READCOM /WE ARE READING + JMS DISK + JMP I XOPEN +READCOM, 6603 /DMAR + +/ROUTINE TO CLOSE A DISC REGISTER +CLOSE, 0 + TAD WRITECOM + JMS DISK + JMP I CLOSE +WRITECOM, 6605 /DMAW + +/DISC TRANSFER ROUTINE +DISK, 0 + DCA DISCIOT /READ IOT OR WRITE IOT +/NOW HAVE TO SET UP 7750,7751 IN FIELD 0 +/REMEMBER WHAT FIELD WE'RE IN NOW +/SO WE CAN RESTORE + RIF + TAD .+2 + DCA XFIELD + CDF /NOW GO TO DATA FIELD 0 + CLA CMA + DCA I P7750 /LOOKING FOR ONE WORD + TAD POPNREG + DCA I P7751 /READ INTO OPNREG +/7750, 7751 ARE SET --- RESTORE DATA FIELD +/ALSO, SET DISC TO TRANSFER INTO THIS FIELD +XFIELD, 0 + RIF + IFZERO RF08-40 + 6615 /DIML; FIELD , NO INTERRUPTS +IFZERO RF08 + CLA /DEAL DOESN'T CLEAR AC + TAD I PDISCLO /PICK UP LOW ADDRESS +DISCIOT, 0 /DMAR OR DMAW + 6621 /DFSE -- ANY ERRORS? +IFZERO RF08 +IFZERO RF08-40 + DCMA /DON'T LEAVE DISK FLAG UP + JMP I DISK /YES + +P7750, 7750 +P7751, 7751 + +PDISCHI, DISCHI +PDISCLO, DISCLO +POPNREG, OPNREG-1 + + + +/ROUTINE TO CONVERT THE DOUBLE PRECISION NUMBER +/IN VALUE, VALUE1 INTO AN RF08 DISC ADDRESS +/PUT IT IN DISCHI, DISCLO + +CONVERT, 0 + CLA + TAD I PVALUE +IFZERO RF08-40 + DCA I PDISCHI + TAD I PVALU1 + DCA I PDISCLO + JMP I CONVERT +PVALUE, VALUE +PVALU1, VALUE1 + +/ROUTINE TO TYPE THE 4 OCTAL DIGITS IN THE AC +/ON THE TELEPRINTER + +HACK, 0 + CLL RAL + DCA XHACK + TAD KM4 + DCA XCNT /4 DIGITS +YHACK, TAD XHACK + RTL + RAL + DCA XHACK + TAD XHACK + AND C0007 + TAD K260 + OUTTLS + ISZ XCNT + JMP YHACK + JMP I HACK +XCNT, 0 +DISCHI, 0 +DISCLO, 0 +XHACK, 0 +KM4, -4 +K260, 260 + +/ROUTINE TO GET A CHAR FROM THE KEYBOARD +IN, 0 + KSF + JMP .-1 + JMS CCCHEK /IS IT A CONTROL-C? + KRB + AND C0177 + TAD C0200 /IN CASE OF PARITY TERMINALS + JMP I IN /RETURN + +CCCHEK, 0 + KSR + JMP I CCCHEK + KRS /WHAT'S THE CHARACTER? + AND C0177 /PARITY TERMINAL? + TAD KCRC + SMA + CML + SNA CLA + JMP I SUPERA /[S]HE WANTS TO RESTART - ^C + JMP I CCCHEK /NO ^C + +KCRC, -3 /- ^C, STRIPPED OF PARITY BIT + +/ROUTINE TO TELEPRINT A CHAR + +OUT, 0 + NOP /CHANGE TO "KSF" IF DESIRED TO TERMINATE PRINT-OUT UPON TYPE-AHEAD + SKP /NO + JMP OUT0 /YES; DON'T WASTE TIME WITH FURTHER PRINTING + TLS + TSF + JMP .-1 +OUT0, CLA + CHEKCC + JMP I OUT + /ROUTINE TO INCREMENT THE DOUBLE-PRECISION VALUE +/IN VALUE, VALUE1 + +NEXTAD, 0 + CLA + ISZ I PVALU1 + JMP I NEXTAD + ISZ I PVALUE + JMP I NEXTAD + +/ROUTINE TO SAVE VALUE, VALUE1 +SAVE, 0 + TAD I PVALUE + DCA SAVE1 + TAD I PVALU1 + DCA SAVE2 + JMP I SAVE + +/ROUTINE TO RESTORE VALUE, VALUE1 +RESTOR, 0 + TAD SAVE1 + DCA I PVALUE + TAD SAVE2 + DCA I PVALU1 + JMP I RESTOR +SAVE1, 0 +SAVE2, 0 + + *600 +LOGMES, 0 /PUT MESSAGE OF THE DAY IN SI + YESNO + LOGM1 /"PROMO?" + JMP I LOGMES /NO + DISC /YES, READ SI INTO FIELD 1 + 6603 + SIDEX+1 + DISCHK /SHECK FOR DISK OK +LOG2LG, MESSAG /MESSAGE TOO LONG + LOGM2 /"END WITH ALTMODE" + STA + TAD LOGST /VERBRK + DCA AXS1 + TAD LOGST + DCA NUMHO /FOR GETCH + IAC + DCA NUMHO+1 + DATFLD /LOGIN MESSAGE TO FIELD 1 +LOGNEX, JMS I GETCHA /GET A CHARACTER INTO BUFFER + JMP LOG2LG /MESSAGE TOO LONG + TAD MC0377 /IS IT AN ESCAPE OR ALTMODE? + IAC /TEST FOR MODEL 35 ALTMODE + SZA + IAC /TEST FOR ALTMODE + SZA + TAD LOGESC /TEST FOR ESCAPE + SZA CLA + JMP LOGNEX /NOT ESCAPE OR ALTMODE, GET ANOTHER CHAR + TAD AXS1 + DCA CHAR + DCA I CHAR /A 0 ENDS THE MESSAGE IN SI + CHDF + MESSAG /ECHO $CR-LF + LOGM3 + DISC /WRITE OUT SI + 6605 + SIDEX+1 + DISCHK /CHECK FOR DISK OK + JMP I LOGMES + +LOGST, VERBRK /START OF INSTALLATION MESSAGE OF THE DAY +GETCHA, GETCH +LOGESC, 375-233 /ALT MODE MINUS ESCAPE + \ No newline at end of file diff --git a/tss8/system/initb.pal b/tss8/system/initb.pal new file mode 100644 index 0000000..9de475f --- /dev/null +++ b/tss8/system/initb.pal @@ -0,0 +1,1184 @@ +OCI260, -260 +OCTINT, 0 + +OCTIN0, 0 + DCA OCTINT + STA + TAD INBUF + DCA AXS1 +OCTIN1, TAD I AXS1 + DCA AXS2 + TAD AXS2 + TAD OCI260 + SPA + JMP OCTIN2 + TAD C7770 + SMA + JMP OCTIN2 + TAD C0010 + DCA AXS2 + TAD OCTINT + CLL RTL + RAL + TAD AXS2 + DCA OCTINT + JMP OCTIN1 +OCTIN2, CLL CLA + TAD OCTINT + JMP I OCTIN0 + +/AFTER LOAD OR DUMP, BOOT BACK TO WHATEVER OPERATING SYSTEM IS ON THE RF08. +/THIS WAY, INIT CAN BE USED TO LOAD/DUMP OS/8. +RBOOT, 6641 /DCXA /CLEAR RF08 EXTENDED DISK ADDRESS + DCEA /AND EVERYTHING ELSE + -200 /CLA + DMAR + DFSC + 5352 /JMP . + 5752 /JMP I .-1 + CRLF= LOGM2+10 +LOGM2, TEXT "END WITH ALTMODE_" +LOGM3, TEXT "$_" +SYSTEM, TEXT "SYSTEM" +LIBARY, TEXT "LIBRARY" +OPRAT, TEXT "OPERATOR" +PASWRD, TEXT " PASSWORD? " +TAB, -01 + -11 + -21 + -41 + -51 /THE NEXT WORD MUST BE POSITIVE +MSG, TEXT "_SI" + TEXT "_FIP" + TEXT "_INIT" + TEXT "_TS8" + TEXT "_PUTR" +UPAROW, TEXT " ^ " + *INIP + +/ZERO OUT FIRST 6 TRACKS IN PREPARATION FOR BUILDING NEW SYSTEM + +SBUILD, YESNO + REALLY + JMP I SUPERA /LUCKILY WE CAUGHT HIM/HER + ZERO1 /ZERO FIELD 1 + TAD C0051 /START AT TRACK 5, FIELD 1 +SB2, DCA SB3 + DISC + DMAW /WRITE A FIELD OF ZEROES TO DISK +SB3, .-. + DISCHK /MAKE SURE DISK IS OK + TAD SB3 + TAD C7770 /GO TO PREVIOUS TRACK + SMA /ARE WE THROUGH? + JMP SB2 /NO + TAD MSGA /INITIALIZE ADDRESS OF MESSAGES + DCA MSGB + TAD TABA /INITIALIZE TABLE POINTER + DCA TABB +BUILD1, MESSAG /ASK FOR A TAPE +MSGB, .-. + TAD I PATXAD + DCA SB3 + MESSAG + UPAROW /" ^ " +SB4, +IFNZRO CPU&7776 <6030> /ON 8E, CLEAR FLAG, BUT NO READER RUN +IFZERO CPU&7776 /CLEAR FLAG + INKRB /WAIT FOR A KEY TO BE PRESSED + TAD C7600 /LEADER? + SZA + TAD C7763 /CARRIAGE RETURN? + SZA CLA + JMP SB4 /NO + STA + DCA FLAG + +/ROUTINE TO PATCH THE DISK. A BINARY TAPE IS READ, AND THE CORRESPONDING +/WORDS ON A DISK TRACK ARE PATCHED. THE FIELD SETTING ON THE TAPE +/DETERMINES WHICH TRACK WILL BE PATCHED. A TAPE WITHOUT A FIELD SETTING +/WILL PATCH TRACK 5. A TAPE WITHOUT AN ORIGIN WILL LOAD STARTING AT 0 +/HENCE A SAVE FORMAT TAPE WILL LOAD PROPERLY INTO THE SWAP TRACK FOR +/JOB NUMBER 1. + +PATCH, DISC + DMAR /READ TRACK 5 INTO CORE +C0051, 0051 /TO PATCH IT IF NO FIELD SETTING + DISCHK /MAKE SURE THE DISK IS OK + TAD .-2 /NOW REMEMBER WHAT IS IN FIELD 1 + DCA PATW /SO IT WILL BE PROPERLY RE-WRITTEN + TAD PATW + DCA PATR + CDF 10 /USE FIELD 1 AS BUFFER + JMS I BINTA /READ THE BINARY TAPE + JMP PATFLD /A FIELD SETTING HAS BEEN ENCOUNTERED + SNA /END OF TAPE - WAS THERE A CHECKSUM ERROR? + JMS PATRW /NO, SO WRITE OUT FIELD 1 + ISZ FLAG /WHERE DID WE COME FROM? + JMP I SUPERA /BACK TO SUPERVISOR + CHDF + SZA CLA /CONTINUE BUILDING - WAS THERE ERROR? + JMP BHUH /YES - TRY AGAIN + TAD I TABB /NO - WAS RIGHT TAPE LOADED? + TAD PATR + SZA CLA + JMP BHUH /NO - TRY AGAIN + IAC + TAD SB3 /ADDRESS OF LAST CHARACTER TYPED + 1 + DCA MSGB /SET UP FOR NEXT MESSAGE + ISZ TABB + TAD I TABB /ARE WE THROUGH? + SPA CLA + JMP BUILD1 /NO + JMP I .+1 /YES + SUPREF + +BHUH, MESSAG + HUH2 + JMP BUILD1 + +PATXAD, BUFPTR +MSGA, MSG+7 /AC IS -7 WHEN THIS IS TADDED +TABA, TAB +FLAG, 0 +TABB, 0 + +PATFLD, IAC /TRACK IS IN BITS 6-8, MAKE IT FIELD 1 + DCA PATR /AND SAVE IT + JMS PATRW /WRITE PREVIOUS TRACK; READ NEW ONE + JMP I BINT3A /AND CONTINUE +BINT3A, BINT3 +BINTA, BINTAP + +PATRW, 0 + DISC + DMAW /WRITE THE PREVIOUS TRACK +PATW, .-. /TRACK FOR PREVIOUS PATCHING + DISCHK /MAKE SURE THE DISK IS OK + DISC + DMAR /READ IN NEW TRACK +PATR, 1 /TRACK FOR UPCOMING PATCHING + DISCHK /MAKE SURE THE DISK IS OK + TAD PATR + DCA PATW /REMEMBER WHICH TRACK WE'RE WORKING ON + JMP I PATRW /AND RETURN + +/SYSTEM INITIALIZATION + +SYSINI, DISC /READ INIT INTO FIELD 2 + DMAR + 0022 + DISCHK /MAKE SURE DISK IS OK + CIF CDF 20 /NOW GO THERE + JMP .+1 + TAD .-2 + DCA INIF /SET UP CHDF + JMS I SYSPER /INITIALIZE FIP + DISC /LOAD FIELD 0 + 6603 + TS8DEX + DISCHK /CHECK FOR DISK OK + TAD DVTBA + DCA INIT0 +SYSI1, TAD I INIT0 + DCA CHDFA + JMS I CHDFA + ISZ INIT0 + JMP SYSI1 + +SYSPER, PERSET +INIT0, 0 /VARIABLE DVTB POINTER +DVTBA, DVTB /ADDRESS OF DVTB +XTELL, TEXT "_EXEC DDT LOADED_" + +DVTB, CLEAR /READ MONITOR II INTO DATFLD + CORINI + DSKINI + DATEIN + TIMEIN + START + *INIP+200 +/NUMBER INPUT +/CALL NUMBIN +/ NOT A NUMBER +/ # IN AC + +NUMBIN= JMS I NUMBIA + +NUMBI0, 0 + DCA NUMAGN /NUMBER MAGNITUDE + CLL STA RTL /MAXIMUM OF TWO DIGITS IN NUMBER + DCA NUMCNT + JMS I NUMSKP /SKIP LEADING TABS AND SPACES + JMP I NUMBI0 /NOTHING THERE +NUMBI1, TAD CHAR + TAD NUMM9 + SMA SZA + JMP NUMBI3 /NOT A NUMBER + TAD NUMP9 + SPA + JMP NUMBI3 /NOT A NUMBER + DCA CHAR + ISZ NUMCNT + SKP + JMP I NUMBI0 /TOO MANY DIGITS + TAD NUMAGN / * 1 + CLL RTL / * 4 + TAD NUMAGN / * 5 + RAL / * 10 + TAD CHAR + DCA NUMAGN + COMGET + JMP NUMBI3 /NO MORE CHARACTERS + JMP NUMBI1 + +NUMBI3, CLA + TAD C0003 /HAVE ANY DIGITS BEEN FOUND? + TAD NUMCNT + SNA CLA + JMP I NUMBI0 /NO + ISZ NUMBI0 + TAD NUMAGN + JMP I NUMBI0 + +NUMAGN= NUMHO+1 +NUMCNT, 0 +NUMSKP, SKIPS +NUMM9, -"9 +NUMP9, 11 + START, 0 + DTCA + PCF + + IFZERO D689-4 < + EDF /TURN ON DATA PHONES + DFCRF + CCF > + + TSF /WAIT FOR CONSOLE FLAG FROM DIALOG + JMP .-1 + TCF + RRB + KCC + CIF CDF + IFNZRO DC08A < + T1ON > + IFZERO DC08A < + IFZERO CPU-1 < + CLL CMA /LOAD CLOCK BUFFER + CCF CLB > + > + IFZERO DC08A < +IFNZRO CPU-4 +IFZERO CPU-4 + > + + IFZERO LPT-1 /CLEAR INTERRUPT FOR LPT + + ION + WAIT + + +REALLY, TEXT "BUILD? " + +/ASK WHETHER TO READ OR WRITE +RW, 0 + CLA CLL + RIF + TAD C6201 + DCA INIF /INITIALIZE CHDF + CHDF + TAD I RW + DCA .+2 +RW1, MESSAG + .-. /CRLF OR "TAPE " + MESSAG + RDORWT /READ OR WRITE? + GETIN + TAD I INBUF /FIRST CHARACTER + TAD RWMR /R? + CLL + SZA /YES + TAD RWMW /W? SET LINK + SZA CLA + JMP RW1 /NOT R OR W + RTL /0 FOR R, 2 FOR W + ISZ RW + JMP I RW +RWMR, -"R +RWMW, "R-"W + +KEBOOT, IAC + CLL RTL +RFBOOT, TAD OSTAB + DCA AXS1 + TAD I AXS1 + DCA OSF + TAD I AXS1 + DCA OST + TAD I AXS1 + DCA OSC + TAD I AXS1 + DCA OSA +/BOOTWTRAP FOR DEVICE OF YOUR CHOICE -- SET FOR DECTAPE HERE +OSB, CHDF + TAD I OSF + CDF + DCA I OST + ISZ OSF + ISZ OST + ISZ OSC + JMP OSB + DTRA DTXA /MAKE LAST TAPE FLAP (LOAD/DUMP) + CDF CIF + JMP I OSA + *INIP+400 + +FREND, -FIPBLK /END OF FREE CORE +LODDTA, LODDT /LOAD XDDT INTO FIELD 1 +XDDFLG, -1 +CORFLD, 0 +CORLNK, 0 +CORJMS, 0 /ISZ I CONDBA IF ^S/^Q FEATURE DISABLED +CORCSQ, KBDSQ /LOCATION OF JMS FOR ^S FEATURE + +CORINI, 0 + ISZ XDDFLG /DID [S]HE WANT EXEC DDT? + JMS I LODDTA /YES + TAD CORJMS + CDF + SZA + DCA I CORCSQ /NO! + TAD CORFLD /HOW MANY USER FIELDS DID [S]HE SAY + SNA /NO RESPONSE + IAC /ASSUME 1 USER FIELD + DCA CORCNT + TAD CORCNT + CMA /INIT CORE SEARCH ROUTINE + DCA AXS1 + CLL CMA RTL + TAD CORSRA + DCA AXS2 + IAC + TAD AXS1 + DCA I AXS2 + TAD CORTBA + CMA + TAD AXS1 + DCA I AXS2 + TAD CORTBA + DCA AXS2 + CLL CML RTR /ASSIGN AND LOCK DATFLD + DCA I AXS2 /NOW UNLOCK ALL USER FIELDS + ISZ AXS1 + JMP .-2 + STL RTL + TAD CORCNT + CLL RTL + DCA CORCNT + TAD CORCNT + TAD DSUTBA + TAD C0010 /MUST START IN MULTIPLE OF 8 + AND C7770 + DCA I FREE + TAD I FREE + DATFLD + DCA CORLNK + TAD CORGEA + DCA CORF1 +CORIN1, TAD CORLNK + TAD C0010 + DCA AXS2 +CORIN4, TAD AXS2 + TAD FREND + SNA CLA + JMP CORIN2 /DONE + TAD AXS2 + DCA I CORLNK + TAD AXS2 + DCA CORLNK + ISZ AXS1 + JMP CORIN1 + HLT /OOPS!!! +CORIN2, TAD I CORF1 /ANY EXTRA FREE CORE TO BE GENERATED? + SNA + JMP CORIN3 + DCA AXS2 + ISZ CORF1 + TAD I CORF1 + CIA + DCA FREND + ISZ CORF1 + JMP CORIN4 +CORIN3, DCA I CORLNK /LAST LINK IS ZERO + TAD AXS1 + IAC + CDF + DCA I FRECNT + CHDF + JMP I CORINI + + + + +CORF1, 0 +CORGEA, RINGIN +FRETEL, 0 + MESSAG + CY50 + IFNZRO CPU-2 + IFZERO CPU-2 + JMP I FRETEL +LOGM1, TEXT "_NEW LOGIN MESSAGE? " +FREQUE, TEXT "60 HERTZ POWER? " + CY50, TEXT "50 HERTZ ASSUMED_" + *INIP+600 + +/SKIP LEADING SPACES AND TABS +/CALL JMS SKIPS +/ BUFFER EMPTY +/ NORMAL RETURN + +SKISPA, -240 +SKITAB, 240-211 + +SKIPS, 0 +SKIPS1, COMGET + JMP I SKIPS /NONE LEFT + TAD SKISPA + TAD CHAR + SZA + TAD SKITAB + SNA CLA + JMP SKIPS1 + ISZ SKIPS + JMP I SKIPS + +MESSA0, 0 + RDF + TAD C6201 + DCA MESSA2 + CHDF + TAD I MESSA0 + DCA BUFPTR + ISZ MESSA0 +MESSA1, TAD I BUFPTR /PICK UP NEXT WORD + SNA /DONE? + JMP MESSA2 /YES + RTR /GET LEFT HALF OF WORD + RTR + RTR + JMS PRINTI /PRINT IT + TAD I BUFPTR + AND K0077 + SNA /DONE? + JMP MESSA2 /YES + JMS PRINTI /PRINT IT + ISZ BUFPTR /NEXT WORD + JMP MESSA1 + +MESSA2, .-. /CDF TO RESTORE DATA FIELD + JMP I MESSA0 /RETURN + + +PRINTI, 0 + AND K0077 + TAD K7741 + SNA /BACKARROW? + JMP PRCRLF /YUP - TIME FOR CARRIAGE RETURN, LINE FEED + SPA + TAD C0100 /RESTORE BIT 5 + TAD C0037 +PRINT2, OUTTLS /PRINT THE CHARACTER + JMP I PRINTI /RETURN + +PRCRLF, TAD CM215 /GET A CARRIAGE RETURN + CIA + OUTTLS + TAD C0212 /AND NOW LINE FEED + JMP PRINT2 + +BUFPTR, 0 +K0077, 0077 +K7741, 7741 + +GETIN0, 0 +GETIN1, STA + TAD INBUF + DCA AXS1 /FOR GETCH + TAD INBUF + DCA NUMHO + TAD GETIN3 /MINUS THE LAST LOCATION IN THE BUFFER + DCA NUMHO+1 +GETIN2, JMS GETCH /GET A CHARACTER INTO THE BUFFER + JMP GETIN1 /BUFFER FULL; TRY AGAIN + TAD CM212 /HAS [S]HE TYPED A CR (OR LINE FEED)? + SNA CLA + JMP I GETIN0 /YES, WE'RE ALL THROUGH HERE + JMP GETIN2 /NO, GET ANOTHER CHARACTER + +GETIN3, -INBUFA-20 +CM212, -212 +CM215, -215 +C0212, 212 + /SUBROUTINE TO GET A CHARACTER, AND PUT IT IN THE BUFFER. +/RETURN CALL PLUS 1 IF TOO MANY CHARACTERS WERE TYPED. +/RETURN CALL PLUS 2 WITH CHARACTER IN AC IS THE NORMAL RETURN. +/UPON RUBOUT, ECHOES RUBBED CHARACTERS, BUT NOT PAST BEGINNING OF BUFFER. + +GETCH, 0 +GETESC, 377-233 +GETCH1, INKRB +GETCH2, DCA CHAR + TAD CHAR + TAD MC0377 + SNA /IS IT A RUBOUT? + JMP GETCH3 /YES, GO WORRY ABOUT IT + TAD GETESC /IS IT ESCAPE? + SZA CLA /YES; DON'T ECHO + TAD CHAR + OUTTLS /ECHO CHARACTER + TAD AXS1 + TAD NUMHO+1 /THIS SHOULD BE MINUS THE LAST ADDRESS IN THE BUFFER + SMA CLA /HAVE WE OVERRUN THE END OF THE BUFFER? + JMP GETCH5 /YES + TAD CHAR + DCA I AXS1 /ALL OK, NOW SAVE THE CHAR IN THE BUFFER + TAD CHAR + TAD CM215 + SZA CLA /WAS THAT A CARRIAGE RETURN? + JMP GETCH4 /NO + TAD C0212 /GET LINE FEED AND ECHO, STORE IT + JMP GETCH2 + +GETCH3, TAD AXS1 /[S]HE TYPED A RUBOUT + DCA CHAR /SAVE BUFFER POINTER + TAD AXS1 + CIA + TAD NUMHO /THIS SHOULD BE THE INITIAL VALUE OF AXS1 + SMA SZA CLA /IS [S]HE BACKING UP TOO FAR? + JMP GETCH1 /YES, JUST IGNORE THE RUBOUT + TAD I CHAR /GOT GET THE RUBBED-OUT CHARACTER + OUTTLS /AND ECHO IT + STA + TAD AXS1 /NOW BACK UP AXS1 + DCA AXS1 + JMP GETCH1 + +GETCH4, TAD CHAR /PUT CHAR IN AC FOR RETURN + ISZ GETCH //SKIP ON RETURN + JMP I GETCH /AND RETURN + +GETCH5, MESSAG /THE DUMMY IS TOO PROLIFIC WITH THE TYPING!! + HUH + JMP I GETCH + *INIP+1000 + +/INIT BOOTSTRAP - LOAD TRACK 2 INTO FIELD 0 + + +INBOOT, DCA DATEIN /SAVE AC + DISC + DMAR /READ TRACK 2 TO FIELD 0 + 0020 + TAD DATEIN /RESTORE AC + DFSC + JMP .-1 + CIF CDF /AWAY TO FIELD 0, IF WE AREN'T THERE ALREADY + DCA CHDFA /AC SAYS WHERE TO JUMP + TAD C6201 + DCA I INIFA + JMP I CHDFA /SO JUMP THERE + +SUPREF, TAD SUPFUG /REFRESH +SUPST, TAD SYSINA /START + JMP INBOOT /BOOT IN FRESH COPY OF INIT + +INIFA, INIF +SYSINA, SYSINI +SUPFUG, REFCO0-SYSINI + +/DATE INPUT +/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1 + +DATMUL, DMUL +CMCR, -215 +C0012, 14 +C0031, 37 + DECIMAL +DM13, -13 +D11, 11 +D31, 31 +DM74, -74 + OCTAL +DATMON, 0 +DATDAY, 0 + +DATEIN, 0 + CLA CLL + MESSAG /MONTH-DAY-YEAR: + DATMES + GETIN + STA + TAD INBUF + DCA AXS1 + NUMBIN /MONTH + JMP DATEIN+1 + TAD DM13 + STL IAC + TAD D11 + SZL /0 /55 TICKS PER SYSTEM TICK IF DC08A; INITIALIZED AT REFRESH TIME +IFZERO DC08A <-12> /IN CASE OF PDP-8/A +CLKINA, CLKINI +TIMCK2, -INCLK2-1 +TIMCK1, -INCLK1 +C660, TICMIN /TICKS PER MINUTE + DECIMAL +DM24, -24 +D24, 24 +DM60, -60 +D60, 60 + OCTAL + +TIMEIN, 0 + CLA CLL + MESSAG + TIMESS /TIME: + GETIN + STA + TAD INBUF + DCA AXS1 + DCA CHAR + NUMBIN + JMP TIMEIN+1 + TAD DM24 + STL + TAD D24 + SZL /HOURS BETWEEN 0 AND 23? + JMP TIMEIN+1 /NO + DCA NUMHO+1 + DCA NUMHO + TAD D60 + JMS DMUL + DCA CHAR + NUMBIN + JMP TIMEIN+1 + TAD DM60 + STL + TAD D60 + SZL /MINUTES BETWEEN 0 AND 59? + JMP TIMEIN+1 /NO + TAD NUMHO+2 + DCA NUMHO+1 + DCA NUMHO + TAD C660 + JMS DMUL + CLL + CDF + TAD NUMHO+2 + TAD TIMCK1 + DCA I CLK1 + RAL + TAD NUMHO+1 + TAD TIMCK2 + DCA I CLK2 + TAD FREQ + DCA I CLKINA + CHDF + JMP I TIMEIN + +DMUL, 0 + DCA MP2 /MULTIPLIER + TAD NUMHO+1 /LOW ORDER MULTIPLICAND + JMS MP4 + DCA NUMHO+2 /LOW ORDER + TAD MP5 + DCA NUMHO+1 /HIGH ORDER + TAD NUMHO /HIGH ORDER MULTIPLICAND + SNA + JMP I DMUL + JMS MP4 + TAD NUMHO+1 + DCA NUMHO+1 + RAL /GET CARRY + TAD MP5 + DCA NUMHO + JMP I DMUL + + +MP4, 0 + DCA MP1 + DCA MP5 + TAD M12 + DCA MP3 + CLL + TAD MP1 + RAR + DCA MP1 + TAD MP5 + SNL + JMP .+3 + CLL + TAD MP2 + RAR + DCA MP5 + ISZ MP3 + JMP MP4+6 + TAD MP1 + RAR + CLL + JMP I MP4 + +MP1, 0 +MP2, 0 +MP3, 0 +MP5= CHDFA +M12, -14 + CORMES, TEXT "# USER FIELDS - " + + +INBUFA= . + ZBLOCK 20 /INPUT BUFFER FOR INIT INPUT + *INIP+1600 + +/DECTAPE - READ OR WRITE ONE FIELD +/JMS TO DTRORW WITH DESIRED FIELD IN DTFLD, BEGINNING BLOCK MINUS +/ONE IN DTBLOK, DESIRED DRIVE IN CONTROLLER, AND DTFUNC +/0050 FOR A WRITE OR 0030 FOR A READ. + +DTRORW, 0 + STA + DCA DTCAS /START CA AT -1 + TAD C7740 + DCA DTBLCT /40 BLOCKS PER FIELD + DTRA + AND C0200 /IS TAPE MOVING?? + SNA CLA + TAD C0600 /NO - START IT THE OTHER WAY + DTXA +DTSR1, TAD C7773 + DCA DTRY /TRY 5 TIMES UPON ERROR +DTSR2, DTLB /BLOCK NUMBERS TO THIS FIELD + DCA I C7755 /AT LOCATION 0 + TAD C0010 /START SEARCHING +DTSR3, DTXA + JMS DTWAIT /WAIT + DTRA + RTL + RTL /DIRECTION BIT TO LINK + CLA + TAD DTBLOK /DESIRED BLOCK - 1 + CMA /-DESIRED BLOCK + SZL /FUDGE IF GOING IN REVERSE + TAD C0003 + TAD 0 /REAL BLOCK - DESIRED BLOCK (+3?) + SNA CLA /WHAT DO WE DO NOW? + SNL + JMP DTSR7 /KEEP GOING, MAYBE REVERSE DIRECTION + TAD C7600 /WE'RE THERE, MAKE WC=-200 + DCA I C7754 + TAD DTCAS + DCA I C7755 /SET UP CA + TAD DTFLD + DTLB /SET UP FIELD FOR TRANSFER + TAD DTFUNC + DTXA /SET UP FOR READ OR WRITE + JMS DTWAIT /WAIT + TAD I C7755 /SAVE NEW CURRENT ADDRESS + DCA DTCAS + DTRA /REMOVE ANY FUNCTION FROM CONTROLLER + AND C0077 + DTXA + ISZ DTBLOK /TIME FOR NEXT BLOCK + ISZ DTBLCT /ARE WE THROUGH? + JMP DTSR1 /NO + TAD DTBLOK /YES - + TAD CM2677 /END OF TAPE?? + SPA CLA + JMP I DTRORW /NO + TAD C0400 /YES + DTXA /REWIND TAPE + DTRA + TAD C1000 /GO TO NEXT DRIVE + AND C7000 + DCA DTBLOK + CHEKCC /STALL + DTRA DTXA + CHEKCC /STALL + TAD DTBLOK + DTXA /REMEMBER IT IN THE CONTROLLER + DCA DTBLOK /START AT BLOCK 1 + CHEKCC /STALL + JMP I DTRORW /RETURN +DTSR7, SNL /REVERSE DIRECTION? + JMP DTSR3 /NO + TAD C0400 + ISZ DTRY /COUNT AN ERROR + JMP DTSR3 /AND GO REVERSE DIRECTION + TAD C7600 /AC=200 + DTXA /STOP THE TAPE + MESSAG + TAPMIS + JMP I SUPERA + +TAPMIS, TEXT "_DECTAPE ERROR" + +DTRY, 0 +DTBLCT, 0 /COUNT OF BLOCKS TO R/W FOR ONE FIELD +DTBLOK, 0 /CURRENT DESIRED BLOCK MINUS ONE +DTFLD, 0 /DECTAPE FIELD IN BITS 6-8 +DTFUNC, 0 /DECTAPE FUNCTION, 30 FOR READ, 50 FOR WRITE +DTLA= 6766 /SHOULDN'T BE HERE, BUT PUT IT IN WHILE I REMEMBER +DTCAS, 0 +C7773, 7773 +C7754, 7754 +C7755, 7755 +CM2677, -2677 +C0077, 0077 +C7000, 7000 +STATB, 0 /FOR DIAGNOSTIC PURPOSES + /MOST RECENT DECTAPE STATUS B ON ERROR + +/DTWAIT - SUBROUTINE TO WAIT FOR DECTAPE COMPLETION FLAG + + + DTWAIT, 0 + DTSF + JMP .-1 /WAIT FOR FLAG + CHEKCC + DTRB + SMA CLA /ANY ERROR? + JMP I DTWAIT /NO + DTRB + DCA STATB /FOR DIAGNOSTIC PURPOSES + TAD STATB + AND C0400 /SELECT ERROR? + SZA CLA + JMP DTWSEL /YES +DTWGOR, DTRA + AND C0377 /REMOVE FUNCTION FROM CONTROLLER + DTXA + TAD C0600 /GO IN REVERSE + DTXA + JMP DTSR2 +DTWSEL, DCA 0 + DTXA /SELECT ERROR! +C0600, 0600 /WASTE TIME - SELECT ERROR RETURNS AFTER +C0377, 0377 /WASTE TIME - 5 MICROSECONDS AFTER DTXA + CHEKCC + DTRB /IS IT STILL THERE? + SPA CLA + JMP DTWSEL /YES, TRY AGAIN + ISZ 0 /NO, WAIT A WHILE + JMP DTWSEL+1 + JMP DTWGOR /OK, IT SEEMS TO BE GONE + + *INIP+2000 + +/4K DISK READ OR WRITE + + +LOAD, JMS I RWB /GO TO INITIALIZE CHDF, PRINT MESSAGE, + CRLF /AND DETERMINE READ OR WRITE + TAD C6603 /MAKE A DMAW OR A DMAR + + DCA RORW + MESSAG + FIELD1 + GETIN + TAD I INBUF + AND C0007 + DCA FLDNUM + MESSAG + TRACK + GETIN + OCTIN + CLL RTL + RAL + TAD FLDNUM + DCA FLDNUM + DISC +RORW, 0 +FLDNUM, 0 + DISCHK /CHECK FOR DISK OK + JMP LOAD + +C6603, 6603 +RWB, RW + ASCI7, +CLEAR, 0 + CLA + DISC /READ MONITOR II INTO FIELD 1 + 6603 + TS8DEX+11 + DISCHK /CHECK FOR OK DISK COMPLETION + TAD CLR1 + JMS ZERO /ZERO OUT FREE CORE + JMP I CLEAR + +CLR1, JOBTBL + +ASCI6, +ZERO, 0 /CLEAR FIELD 1 FROM C(AC) TO 7777 + DCA CLR2 /BEGINNING ADDRESS + DATFLD + DCA I CLR2 + ISZ CLR2 + JMP .-2 + CHDF + JMP I ZERO +ASCNT, +CLR2, 0 + /ROUTINE TO MOVE XDDT INTO DATFLD + +LODDT, 0 + TAD KM4400 + DCA I FRENDA /MAKE FRECORE STOP AT 4400 + STA + TAD K4400 + DCA AXS1 /POINTS TO ORIGINAL + TAD AXS1 + DCA AXS2 /POINTS TO COPY +LODDT1, CHDF + TAD I AXS1 + DATFLD + DCA I AXS2 + ISZ DDTSIZ /ARE WE DONE YET? + JMP LODDT1 + DCA I XOPA /CHANGE ^C TO JUMP TO FIELD 0 + CHDF + MESSAG + XTELL + JMP I LODDT /YES + +XOPA, XOP +K4400, 4400 +KM4400, -4400 +FRENDA, FREND +DDTSIZ, 4400-7577 /THIS GETS DESTROYED, BUT WHAT THE HECK + +DDTMES, TEXT "LOAD EXEC DDT AT START-UP? " + \ No newline at end of file diff --git a/tss8/system/initc.pal b/tss8/system/initc.pal new file mode 100644 index 0000000..c9e9cc1 --- /dev/null +++ b/tss8/system/initc.pal @@ -0,0 +1,888 @@ +/ROUTINE TO CONVERT ASCII TO TSS/8 SIXBIT + +ASCSIX, 0 + CLL STA RAL /SET AC=-2 + DCA ASCNT + TAD INBUF + DCA ASCI6 /INPUT BUFFER + TAD I ASCSIX + DCA ASCI7 /POINTER TO OUTPUT VECTOR + ISZ ASCSIX +ASCI1, JMS ASCGET /GET ONE CHARACTER + CLL RTL + RTL + RTL /SHIFT TO HIGH ORDER + DCA I ASCI7 /SAVE THE CHARACTER + CHDF + JMS ASCGET /GO GET ANOTHER CHARACTER + TAD I ASCI7 /PACK IT IN WITH THE LAST ONE + DCA I ASCI7 /AND SAVE IT + ISZ ASCI7 + CHDF + ISZ ASCNT /DONE? + JMP ASCI1 /NO + JMP I ASCSIX /YES, EXIT + +ASC240, -240 + +ASCGET, 0 /GET A PASSWORD CHARACTER, EXIT UPON CARRIAGE RETURN + TAD I ASCI6 /GET NEXT CHARACTER + TAD ASCCR + SNA CLA /IS IT CR? + JMP I ASCSIX /YES, RETURN + TAD I ASCI6 + ISZ ASCI6 + TAD ASC240 /PASSWORDS ARE STORED IN EXCESS 240 CODE + DATFLD + JMP I ASCGET + +ASCCR, -215 +CSQ, TEXT "ENABLE ^S FEATURE? " + *INIP+2200 + +/USES INIT'S BINARY LOADER TO LOAD INTO FIELD 1 + ZERO1 /ZERO FIELD 1 + DATFLD +Y1, JMS I BINLD /GO LOAD BINARY TAPE + SKP /FIELD SETTING ENCOUNTERED + JMP I SUPERA /END OF TAPE + DCA DISC0 /SAVE IT + RDF + CIA + TAD DISC0 /IS IT THE CURRENT FIELD ANYWAY? + SNA CLA + JMP I BINT3B /YES - SO IT'S OK + TAD DISC0 /NO - LET HIM/HER KNOW ABOUT IT + HLT + CLA /IGNORE FIELD SETTING + JMP I BINT3B + +BINLD, BINTAP +BINT3B, BINT3 + +Y, JMS I STFLDA + JMP Y1 + +STFLDA, STFLD + +RDORWT, TEXT "READ OR WRITE - " +FIELD1, TEXT "FIELD NUMBER - " +TRACK, TEXT "TRACK NUMBER - " +TAPMES, TEXT "_TAPE " + TIMESS, TEXT "HR:MIN - " +NUMBLK, TEXT "# - " +YN, TEXT "YES OR NO... " + /DISK READ OR WRITE +/CALL DISC +/ FUNCTION +/ DEAL ARGUMENTS (DISC EXTENSION IN BITS 1-8; MEMORY FIELD IN BITS 9-11) +/ DISCHK +/ RETURN HERE WHEN OK + +DISC= JMS I DISCA +DISCHK= JMS I DISCHA + + +DISC0, 0 + RDF + TAD C6201 + DCA DISC2 + CHDF + TAD I DISC0 + DCA DISROW + ISZ DISC0 + TAD I DISC0 + DCA DEALSV /SAVE THE DEAL ARGUMENTS + TAD DEALSV +IFZERO RF08-40 < ISZ DISC0 + CLL RTL + RAL + DEAL + CLA CLL> +IFZERO RF08 < RTL + RAL + AND C0070 + DIML + TAD I DISC0 + CLL RTR + ISZ DISC0 + RAR + DXAL> + CDF + DCA I C7750 + STA + DCA I C7751 +DISROW, 0 + JMP I DISC0 + +C0070, 70 +C7750, 7750 +C7751, 7751 + + +/SUBROUTINE TO WAIT FOR DISK COMPLETION, CHECK FOR ERRORS, AND +/IF THERE ARE ANY ERRORS, RETRY THE OPERATION. + +DISCH0, 0 + CLL STA RTL + DCA RFTRY /TRY 3 TIMES +IFZERO RF08 + IFNZRO RF08 + JMP .-1 /WAIT FOR THE DISK TO FINISH + DFSE /ERROR? +IFZERO RF08-40 /DF32 SKIPS BACKWARDS + JMP DISC2 /NO + DIMA + AND DSKFLG /CHECK WLS, DRL, PER + CDF + SNA + TAD I C7750 /MAYBE NXD - IS WC=0? +DISC2, .-. /CDF -- RESTORE DATA FIELD + SNA /OK? + JMP I DISCH0 /I GUESS SO + ISZ RFTRY /3 TRIES YET? + CLA SKP + JMP DISERR /DISK WRITE LOCKED, PARITY ERROR, OR DRL + TAD DISROW /GET OLD DMAR OR DMAW + DCA .+2 + DISC + 0 +DEALSV, 0 /DEAL ARGUMENTS SAVED BY LAST DISC CALL + JMP DISCH0+3 + +DSKFLG, IFZERO RF08 <1005> + IFZERO RF08-40 <0007> +RFTRY, 0 /RETRY COUNT FOR DISK ERRORS + +DISERR, MESSAG + DISKER + JMP I SUPERA +DISKER, TEXT "_DISK ERROR" + *INIP+2400 + +/DISC DUMP ON DTA1 +/DECTAPE BLOCK 40N+1=DISC TRACK N + +DSKDMP, JMS I RWA /GO TO INITIALIZE CHDF, PRINT MESSAGE, + TAPMES /AND DETERMINE READ OR WRITE + DCA DTA + MESSAG + NUMBLK + GETIN + OCTIN + CIA + SNA +DSKSUP, TAD DSKSZ + DCA LDFCNT /SAVE DISK TRACK COUNT + DCA RFFUNC /WELL, FOLKS, THE FOLLOWING ROUTINE + CHDF /ONLY WORKS IN FIELD 0, SO HERE + TAD I RFFUNC /WE GO, MOVING EVERYTHING DOWN TO + CDF /FIELD 0 SO THAT IT WILL BE HAPPY + DCA I RFFUNC + ISZ RFFUNC + JMP .-5 + CIF CDF /AND DOWN TO FIELD 0! + JMP .+1 + TAD .-2 + DCA INIF /SET UP CHDF FOR FIELD 0 + TAD DTA /IS IT LOAD OR DUMP?? + CLL + SNA CLA + STL + SNL /SKIP IF READ + TAD C0020 + TAD C0030 + DCA I DTFUNA /SAVE FUNCTION FOR DECTAPE + TAD RFDMAR + SZL /SKIP IF DISK READ + TAD C0002 /MAKE IT DMAW + DCA RFFUNC /SAVE DMAR OR DMAW + TAD LDFCNT + RAL + DCA LDFCNT /FUDGE LDFCNT SO THAT IT ISZES TO 0 AT THE RIGHT TIME + DCA I DTBLKA /START AT DECTAPE BLOCK 1 + TAD C1000 + DTLA /START WITH DECTAPE DRIVE 1 + IAC + DCA RFTRAK /START WITH RF08/DF32 TRACK 0 FIELD 1 + TAD C0010 + DCA I DTFLDA /START WITH DECTAPE FIELD 1 + TAD DTA + SZA CLA /LOAD OR DUMP? + JMP DMPINI /MUST BE DUMP + JMS I DTRWA /READ FIRST TRACK FROM DECTAPE + DISC /READ OR WRITE - START OPERATION ONLY +RFFUNC, 0 /DMAR OR DMAW + RFTRAK, 0 /BITS 1-8=TRACK, 9-11=FIELD + ISZ LDFCNT /DONE LOADING? + JMP LD2 /NO + DISCHK /YES - LAST WRITE OK?? + JMP LDSTOP +LD2, TAD RFTRAK /WHAT FIELD DOES DECTAPE GO TO NOW? + RTR + SPA CLA + TAD C0010 + TAD C0010 + DCA I DTFLDA + JMS I DTRWA /READ/WRITE DECTAPE + ISZ LDFCNT /DONE DUMPING??? + JMP DMPJMP /NO + DCMA /MAKE SURE THE DISK IS STOPPED +LDSTOP, TAD C0400 /YES - REWIND LAST DECTAPE + DTXA + JMP I .+1 + RFBOOT /NOW GO BOOT WHATEVER IS ON RF08/DF32 +DMPJMP, DISKCHK /DISK OK?? + TAD RFTRAK + RAR + SZL CLA + TAD C0002 + TAD C0007 + TAD RFTRAK + DCA RFTRAK + JMP RFFUNC-1 +DMPINI, DISC +RFDMAR, DMAR + 1 + JMP DMPJMP + +SUPDMP, STA +SUPLOD, DCA DTA /SET DTA NON-0 FOR LOAD, 0 FOR DUMP + JMP DSKSUP /AND GO LOAD OR DUMP + +DTA, 0 +DSKSZ, -DSKSIZ +LDFCNT, 0 +DTFUNA, DTFUNC +DTBLKA, DTBLOK +DTFLDA, DTFLD +DTRWA, DTRORW +C0020, 0020 +C0030, 0030 +RWA, RW + TAPERR, TEXT "_TAPE READ ERROR" +HUH, TEXT "_WHAT?_PLEASE TRY AGAIN_" +HUH2= HUH+3 + /FILE PHANTOM AND DISK REFRESHER + +/WRITE NEW MFD ON DISC DIRECTLY ABOVE THE SWAPPING AREA +PAGE +FIPR4, 0 +FIPASC, ASCSIX +MFD1, MFDT-1 + +FIPREF, ZERO1 /ZERO FIELD 1 + MESSAG /"SYSTEM" + SYSTEM + MESSAG /"PASSWORD" + PASWRD + GETIN + JMS I FIPASC /CONVERT PASSWORD TO SIXBIT + 0011 /GOOES AT WORD 11, 12 OF MFD + MESSAG /"LIBRARY" + LIBARY + MESSAG /"PASSWORD" + PASWRD + GETIN + JMS I FIPASC /CONVERT PASSWORD TO SIXBIT + 0041 /AND PUT IT AT WORDS 41,42 OF MFD + MESSAG /"OPERATOR" + OPRAT + MESSAG /"PASSWORD" + PASWRD + GETIN + JMS I FIPASC /CONVERT PASSWORD TO SIXBIT + 0061 /AND PUT IT AT WORDS 61,62 OF MFD + TAD MFD1 /INITIALIZE POINTER + DCA AXS1 +FIPR2, TAD I AXS1 /GET ADDRESS OF DATA TO BE STORED IN MFD + SNA /ARE WE THROUGH? + JMP FIPR3 /YES + DCA FIPR4 /SAVE IT + TAD I AXS1 /GET DATA TO STORE + DATFLD + DCA I FIPR4 /STORE IT IN THE MFD + CHDF + JMP FIPR2 /GO FOR MORE + +FIPR3, TAD SWBASE + TAD JBMXP /"JOBMAX" + CLL RTL + STL RAL /MAKE IT FIELD 1 + DCA .+3 + DISC + DMAW /WRITE OUT THE MFD + .-. + DISCHK + /INITIALIZE STORAGE ALLOCATION TABLE "SAT" +/THE SAT TABLE RESIDES IN FIP AT 7777 AND EXTENDS +/DOWN THROUGH 7777-(SATSIZ-1). EACH BIT POSITION REPRESENTS 1 SEGMENT +/OF FILE STORAGE. +/SEGMENT 0 IS BIT 0 OF 7252, +/SEGMENT 1 IS BIT 1 OF 7252, ETC. 7252=7777-(SATSIZ+2). +/LOCATION SATCNT=7777-(SATSIZ-1)+1 CONTAINS THE COUNT OF AVAILABLE +/SEGMENTS. A SEGMENT IS AVAILABLE IF ITS SAT BIT HAS THE +/VALUE 0. + + JMS I FIPRFD /FIP TO FIELD 1 + TAD CJTABL + ZERO1 /CLEAR ALL FIP TABLES AND RETRIEVAL INFORMATION + TAD SWDEXP + TAD CJOBMX + TAD DSKSZP /"DSKSIZ" + CLL RTL + RTL + TAD C7777 /CAN'T USE LAST SEGMENT ON DF32 + DCA STORE0 /NUMBER OF DISK SEGMENTS + CLA CMA + DATFLD + DCA I SATBOT /"-255" + CLL STA RTL /SUBTRACT THREE SEGMENTS (FOR 1,2,3 UFD'S) + TAD STORE0 /SET SATCNT TO # DISC SEGMENTS-2 + DCA I SATCNT /"-254" + TAD K7000 /MARK SEGMENTS 1,2,3 FOR MFD, UFD USAGE + DCA I SATTBL + TAD STORE0 /MORE THAN 4000 SEGMENTS. + SMA + JMP .+6 /NO OK + TAD CM4004 /SUBTRACT 4004 + DCA STORE0 + TAD C0253 /253 WORDS=4004 SEGS + DCA COUNT + TAD STORE0 + TAD C7764 /-14 + ISZ COUNT /COUNT # ZERO WORDS IN SAT + SMA + JMP .-3 + DCA STORE0 + STA + TAD COUNT + TAD SATTBL + DCA COUNT + STL RAL + ISZ STORE0 + JMP .-2 + DCA I COUNT /MARK END OF FILE STORAGE AS ALLOCATED + JMP FIPRF5 +FIPRF4, CLA CMA + DCA I COUNT +FIPRF5, ISZ COUNT + JMP FIPRF4 + DISC + DMAW + 0011 /FIP IS TRACK 1, FIELD 1 + DISCHK /MAKE SURE THE DISK IS OK + JMP I SUPERA +SATTBL, -SATSIZ+2 +K7000, 7000 + +COUNT, 0 +SWDEXP, -SWDEX +JBMXP, JOBMAX +C7764, -14 +DSKSZP, DSKSIZ +STORE0, 0 +FIPRFD, FIPRD +CJTABL, JTABLE +SATBOT, -SATSIZ +SATCNT, -SATSIZ+1 +C0253, 253 +CM4004, -4004 +FIPREM, TEXT "_WRITE ZERO SYSTEM DIRECTORY? " + *INIP+3000 + JMP I .+1 + INBOOT + + +/MFD SEGMENT #S TO INBUF + +FRD0, 0 + TAD SWBASE + TAD JBMAX + CLL RTL + STL RAL + DCA FRD1 + DISC + DMAR +FRD1, 0 + DISCHK /MAKE SURE THE DISK IS OK + TAD K0020 + DCA AXS1 + TAD INBUF + DCA AXS2 + TAD K7771 + DCA Z1 +FRD2, DATFLD + TAD I AXS1 + CHDF + DCA I AXS2 + ISZ Z1 + JMP FRD2 + DATFLD + TAD I FGRACE /FETCH SIZE OF "GRACE SPACE" + CHDF + DCA I AXS2 + JMP I FRD0 + +JBMAX, JOBMAX +FGRACE, 0014 +K0020, 0020 + +Z1, +FIPRD, 0 + DISC + DMAR + 0011 /FIP IS TRACK 1, READ INTO FIELD 1 + DISCHK /MAKE SURE THE DISK IS OK + JMP I FIPRD + +Z0, JMS I STFLDB /SET DATA FIELD TYPED + DCA Z1 + DCA I Z1 /ZERO OUT A FIELD + ISZ Z1 + JMP .-2 + JMP I SUPERA + +STFLDB, STFLD + /TABLE USED TO CONSTRUCT VIRGIN MFD +/INCLUDES ENTRIES FOR ACCOUNTS 1, 2, 3 +/EACH PAIR OF NUMBERS INCLUDES FIRST THE MFD ADDRESS, THEN ITS CONTENTS + +MFDT, 3;10 /DUMMY POINTER + 10;1 /ACCOUNT NUMBER 1 + 13;40 /NEXT ACCOUNT STARTS AT 40; LINK TO IT + 14;12 /DEFAULT "GRACE SPACE" OF 10 SEGMENTS PAST QUOTA + 17;20 /SEGMENT LIST IS AT 20 + 21;1 /MFD STARTS WITH SEGMENT 1 ONLY + 30 /AN EXTRA BLOCK IS USED HERE. THE REASON IS SO THAT THE + 7777 /LAST ACCOUNT IN A SEGMENT WON'T HAVE ITS RETRIEVAL + /BLOCK IN THE NEXT SEGMENT. + 40;2 /ACCOUNT 2 + 43;60 /LINK TO NEXT ACCOUNT AT 60 + 44;7777 /NO LIMIT ON DISK SEGMENTS + 47;50 /SEGMENT LIST IS AT 50 + 51;2 /ACCOUNT 2 UFD STARTS WITH ONLY SEGMENT 2 + 60;3 /ACCOUNT 3 + 64;7777 /NO LIMIT ON DISK SEGMENTS + 67;70 /SEGMENT LIST IS AT 70 + 71;3 /ACC. 3 UFD OWNS SEGMENT 3 ONLY, INITIALLY + 0 /TABLE TERMINATOR + CRTABL, RTABLE-1 /MFD SEGMENT #S +CUTABL, UTABLE +SATCON, SATSIZ+1 +CJOBTB, JTABLE-1 /START OF AREA TO CLEAR IN FIP + +PERSET, 0 + JMS FRD0 /MFD SEGMENT #S TO INBUF + JMS FIPRD /FIP TO FIELD 1 + TAD CJOBTB /CLEAR FIP TABLES + DCA AXS1 + DATFLD + DCA I AXS1 + TAD AXS1 /HAVE WE REACHED BOTTOM OF SAT? + TAD SATCON + SZA CLA + JMP .-4 /NO + TAD CRTABL /MOVE MFD SEGMENT #S TO RTABLE + DCA AXS1 + TAD INBUF + DCA AXS2 + TAD K7771 + DCA Z1 +PERSE3, CHDF + TAD I AXS2 + DATFLD + DCA I AXS1 + ISZ Z1 + JMP PERSE3 + CLL CLA CML RAL + DCA I CUTABL /UTABLE=1 + CMA + ISZ CUTABL + DCA I CUTABL /UTABLE+1=-1 + ISZ CUTABL + CHDF + TAD I AXS2 + DATFLD + CIA + DCA I CUTABL /UTABLE+2=-"GRACE SPACE" + CHDF + DISC + DMAW + 0011 /WRITE FIP FROM FIELD 1, TO TRACK 1 + DISCHK /MAKE SURE THE DISK IS OK + JMP I PERSET + +K7771, 7771 + +/THERE'S ALWAYS SOMEONE WHO WILL TRY TO LOAD INIT INTO THE SAME FIELD AS +/THE BINARY LOADER. GIVE HIM/HER A MESSAGE IF [S]HE DOES!! + +*4200 + CLA + RIF + TAD C6201 + DCA INIF + MESSAG + OOPS + HLT + JMP .-4 +OOPS, TEXT "_PLEASE DON'T TRY TO LOAD INIT WITH THE BINARY LOADER " +*.-1 + TEXT "LOCATED IN FIELD 2!" +*7632 + JMP I SUPERA /THIS INSTRUCTION SHOULD INTERCEPT ANY BINARY + /LOADER IN PROGRESS IN THIS FIELD. + /INIT SUPERVISOR +/OVERLAYS XDDT PERMANENT SYMBOL TABLE + + *4200 +SUPER, CLA /SET DATA FIELD + RIF + TAD C6201 + DCA INIF + CHDF + DTRA + AND C0200 + DTXA /STOP ANY DECTAPE WHICH MAY BE MOVING AFTER AN ERROR + TAD OUT1 + DCA OUTA /RESTORE TTY OUTPUT +IFZERO CPU-2 <6030> /DO HIM/HER A FAVOR IF IT'S AN 8/E +IFNZRO CPU-2 <6032> /NOT QUITE AS HELPFUL, BUT NECESSARY + + MESSAG + LDXRS /LOAD, DUMP, START AND OTHER THINGS IN THE LIST OF COMMANDS?? + GETIN /WAIT FOR REPLY + TAD SUPTBA /ADDRESS OF TABLE OF LETTERS + DCA AXS1 /SAVE IT AUTO-INDEX +SUPER2, TAD I AXS1 /GET A LETTER FROM TABLE + SNA /END OF TABLE? + JMP SUPHUH /YES - LET HIM/HER TRY AGAIN + TAD I INBUF /ADD ON FIRST CHARACTER TYPED + SNA CLA /THIS ONE? + JMP SUPER3 /YES - DISPATCH + ISZ AXS1 /NO - PASS UP DISPATCH ADDRESS + JMP SUPER2 /NEXT + +SUPER3, TAD I AXS1 /GET DISPATCH ADDRESS + DCA CHDFA + JMP I CHDFA /AND DISPATCH + +SUPHUH, CLA + MESSAG + HUH + JMP SUPER + +SUPTBA, SUPTBL-1 +OUT1, OUT + STFLD, 0 + CHDF + TAD I STFAD /WHAT WAS THE SECOND CHARACTER TYPED? + TAD STFM8 + CLL + TAD C0010 + SNL + JMP SUPHUH + CLL RTL + RAL + TAD C6201 + DCA .+1 + .-. + JMP I STFLD +STFAD, INBUFA+1 +STFM8, -"8 +/REFRESHER CONTROL + +LOGSMA, LOGMES +REFFLD, CORFLD +REFDDT, XDDFLG +NOCSQ, ISZ CONDBA +REFCSQ, CORJMS +IFZERO DC08A < +REFREQ, FREQ +CYC50, FRETEL +CYC60, +IFNZRO CPU-2 <-6> +IFZERO CPU-2 <-14> > + +REFCO0, JMS I LOGSMA /CHECK FOR NEW SI LOGIN MESSAGE + DISC /READ INIT INTO FIELD 1 + DMAR + 21 + DISCHK /IS IT OK? + YESNO /LAOD XDDT? + DDTMES + STA + DATFLD + DCA I REFDDT /INITIALIZE XDDT LOAD FLAG +REFCO1, CHDF + MESSAG /# USER FIELDS - + CORMES + GETIN + OCTIN + DATFLD + DCA I REFFLD /INITIALIZE NUMBER OF USER FIELDS + TAD I REFFLD + CLL IAC + TAD C7770 + SZL CLA /IS HIS/HER ANSWER REASONABLE? + JMP REFCO1 /NO + CHDF + YESNO + CSQ /DOES [S]HE WANT ^S FEATURE? + TAD NOCSQ /NO + DATFLD + DCA I REFCSQ +IFZERO DC08A < IFNZRO CPU-4 < + CHDF + YESNO + FREQUE /60 HERTZ? + JMS I CYC50 + TAD CYC60 + DATFLD + DCA I REFREQ > > + CHDF + DISC /WRITE OUT INIT + DMAW + 21 + DISCHK /MAKE SURE IT'S OK + YESNO /DO YOU WANT TO REFRESH? + FIPREM + JMP I SUPERA /NO + JMP I .+1 + FIPREF /GO REFRESH + +SUPTBL, -"L + SUPLOD /LOAD + -"D + SUPDMP /DUMP + -"I + SUPREF /INITIALIZE + -"S + SUPST /START + -"X + 7000 /XDDT + -"B + SBUILD /BUILD + -"P + DISCLK /PATCH + -"T + DSKDMP /LOAD OR DUMP; YOU CHOOSE HOW MANY TRACKS + -"O + PATCH /LOAD AN OVERLAY TAPE + -"C + LOAD /READ OR WRITE 4K TO "C" OR + -"Y + Y /READ BINARY TAPE TO A SELECTED FIELD + -"Z + Z0 /ZERO A SELECTED FIELD + -"M + MF0 /MATCH A SELECT FIELD WITH FIELD 1 + -"W + CD0 /DUMP A SELECTED FIELD + -"E + OSB /EXIT TO SOME OPERATING SYSTEM + -"R + RFBOOT /BOOT TO OPERATING SYSTEM ON RF08/DF32 + -"K + KEBOOT /ROOT TO RK8E + 0 /TABLE TERMINATOR + +/FOLLOWING THIS COMMENT, YOU WILL FIND XDDT. ONLY IT MIGHT BE A +/LITTLE HARD TO SEE, SINCE IT'S XLISTED. + + + *5400 + 70 /PATCH FIELD SELECT FOR XDDT + + *6400 + 4434 + 4434 + 4434 + +*4724 + 6031 /PATCH TO FIX XDDT BUGS ON 8E +*4726 + 5376 +*4776 + 6032 + 5772 +*5004 /^C CODE + TSF + JMP .-1 /WAIT FOR FLAG FROM ^C +XOP, SKP /NOP IF XDDT IS EXEC DDT + CIF CDF 0 + JMP I .+1 + 4200 +*5523 + 1222 +*5547 + 7000 +*5572 + 7760 /GIVE THE TTY FLAG MORE TIME +*6045 + 5225 /DON'T GO TO BINARY LOADER + /BINARY LOADER SUBROUTINE +/CALLING SEQUENCE: CDF TO FIELD TO LOAD TAPE INTO +/ JMS BINTAP +/ JMP ? /RETURN WITH FIELD SETTING IN AC6-8 +/ /JMP BINT3 WHEN DESIRED ACTION HAS BEEN TAKEN +/ ? /RETURN WITH CHECKSUM IN THE AC + +*7600 + +BINTAP, 0 + KCC /BRING UP FLAG ON LS READER, AC=0 + RFC /BRING UP FLAG ON HS READER + TAD M200 + DCA TEMP /INITIALIZE DELAY TIME +BLORI, +BINF, KSF /LS READER FLAG YET? + JMP .+3 /NO + TAD BLORI /YES --- + JMP .+4 + RSF /HS READER FLAG YET? + JMP BINIL /NO + TAD BHIRI /YES + DCA BINRD+1 /SAVE HI/LO SWITCH + JMS BFR /READ TAPE-LEADER? + JMP .+2 /YES - GO FIND END OF LEADER + JMP .-2 /NO - FIND LEADER BEFORE ANYTHING + JMS BFR /READ TAPE - LEADER? + JMP .-1 /YES - KEEP LOOKING + DCA ORIGIN /INITIALIZE ORIGIN FOR SAVE TAPES +GO, DCA BINCHK /CLEAR OUT OR UPDATE CHECKSUM +BINT2, TAD FRAME /WHAT WAS IT? + TAD C7500 + SMA + JMP BINFLD /MUST HAVE BEEN A FIELD SETTING + TAD MASK /NOW GET THE FRAME BACK + DCA WORD1 + JMS BINRD /GET NEXT FRAME + DCA WORD2 + JMS BFR /NOW LOOK AHEAD FOR LEADER/TRAILER + JMP BINC /TRAILER! GO DO CHECKSUM + JMS ASSEMB /ASSEMBLE WORD + SZL /ORIGIN? + JMP BINORG /ORIGIN + DCA I ORIGIN /STORE AWAY DATA + ISZ ORIGIN /PREPARE FOR NEXT +M200, CLA 400 +BINT4, TAD WORD1 /NOW UPDATE THE CHECKSUM + TAD WORD2 + TAD BINCHK /ADD IN OLD CHECKSUM + JMP GO /AND GO SAVE IT AND CONTINUE + +BINC, JMS ASSEMB /ASSEMBLE THE CHECKSUM + CIA + TAD BINCHK /COMPUTE FINAL CHECKSUM +BINC2, ISZ BINTAP /SKIP ON RETURN + SNA /CHECKSUM OK? + JMP I BINTAP /YES + DCA BINCHK /SAVE IT + MESSAG /TELL HIM/HER ABOUT BAD CHECKSUM + TAPERR + TAD BINCHK /GET CHECKSUM + JMP I BINTAP /AND RETURN; CHECKSUM IN AC + +BINFLD, AND K0070 /GET FIELD BITS + JMP I BINTAP /AND GO PROCESS THEM + +SWITCH, +ASSEMB, 0 + TAD WORD1 + CLL RTL + RTL + RTL + TAD WORD2 + JMP I ASSEMB +BINIL, JMS DELAY + JMP BINF + +/HERE IS THE REAL BINARY LOADER! + + JMS BINTAP /GO AND BINARY LOAD + JMP .+3 /FOUND A FIELD SETTING +M376, HLT /FINISHED - CHECKSUM IN AC +BEGIN, JMP .-3 /CONTINUE - [S]HE WANTS ANOTHER TAPE READ + TAD K6201 /MAKE A CDF + DCA .+1 /SAVE IT +TEMP, .-. + JMP BINT3 /AND CONTINUE + +/MORE BINARY LOAD JUNK + +/BFR - READ TAPE, IGNORING FRAMES BRACKETED BY RUBOUTS +/SKIP ON RETURN IF LEADER NOT FOUND + +BFR, 0 + DCA SWITCH /SET THE SWITCH (OR RESET IT) + TAD M200 + DCA TEMP + JMS BINRD /GET A CHARACTER + TAD M376 /TEST FOR 377; RUBOUT + SPA SNA CLA + JMP .+4 /NOT RUBOUT + ISZ SWITCH /YES; COMPLEMENT SWITCH + CMA + JMP BFR+1 + TAD SWITCH + SZA CLA /IS THE SWITCH SET? + JMP BFR+2 /YES; IGNORE THE DATA + TAD FRAME /WHAT WAS THE CHARACTER AGAIN? + AND MASK + TAD M200 + SZA CLA /WAS IT LEADER? + ISZ BFR /NO, SKIP ON RETURN + JMP I BFR /AND RETURN + +BINT3, JMS BFR /GET NEXT FRAME + JMP BINC /HUH? LEADER/TRAILER FOLLOWING FIELD SETTING OR ORIGIN!! + JMP BINT2 /AND PROCESS IT + +BINRD, 0 + HLT /KSF OR ELSE JMP HIR + JMP BINDL + KRB + DCA FRAME + TAD FRAME + JMP I BINRD +BHIR, RSF + JMP BINDL + RRB RFC + JMP .-6 + +*7750 /WC & CA; INIT WILL READ INTO FIELD 0 OK + .+1;. +BINDL, JMS DELAY + JMP BINRD+1 + +WORD1, .-. /DECTAPE WC & CA +WORD2, .-. + +/MORE BINARY LOAD JUNK + +BINORG, DCA ORIGIN /SAVE ORIGIN + JMP BINT4 + +DELAY, 0 + ISZ FRAME + JMP I DELAY + ISZ TEMP + JMP I DELAY + STA /TIME OUT - GIVE HIM/HER ERROR MESSAGE + JMP BINC2 + +BHIRI, JMP BHIR +BINCHK, 0 /CHECKSUM ACCUMULATION +ORIGIN, 0 /CURRNET ADDRESS +FRAME, 0 +C7500, 7500 +MASK, 0300 +K0070, 0070 +K6201, 6201 + +*7777 + JMP BEGIN /BINARY LOADER?!! +$ $ $ $ $!!!!!!!!!! + \ No newline at end of file diff --git a/tss8/system/link.pal b/tss8/system/link.pal new file mode 100644 index 0000000..64e8e7c --- /dev/null +++ b/tss8/system/link.pal @@ -0,0 +1,61 @@ +/SUPER CRITICAL LOCATIONS +/THESE LOCATIONS ARE USED TO LINK TS8, TS8II, FIP, SI AND INIT. + +/IT MAY BE NECESSARY TO ADJUST THEM ACCORDINGLY + +/DEFINED IN TS8: + +MSCHED=2573 /ADDRESS FOR WAIT +GETJTB=401 /GETJTA +CORSRC=1317 /SEARCH CORE TABLE +OVERLA=5171 /FILE STUFF +READFI=574 /MORE FILE STUFF +CONDBA=132 /DEVTBL POINTER USED BY "PRINT" ETC. +RETB=611 /RETURN A BLOCK TO FREE CORE +GETB=1405 /GET A BLOCK OF FREE CORE +GETDB0=1447 /GET A DDB +CLK1=51 /LOW ORDER DAYTIME CLOCK +CLK2=50 /HIGH ORDER DAYTIME CLOCK +DATE=166 /12 BIT DATE WORD +TTCHAR=31 /SAVE REG. FOR CONSOLE CHARACTERS +KBD00=3201 /PROCESS KEYBOARD INPUT +PRINT0=1205 /TYPE OUT A CHARACTER +OVRLA1=562 /MORE FILE STUFF +RUNFI=605 /SI FILE TRANSFER INITIALIZER +L2SF=103 /LEVEL 2 SAVED MODE AND FIELD +SICLR=6572 /SI CLEAR LINKED BUFFER +TIMSI=2421 /TIMER FOR SI "COMWAT" +SIWAIT=1702 /NUMBER OF SI COMMANDS BEING WAITED ON +TIMFIP=2423 /TIMER FOR FIPLOCK +FIPLOK=2724 /CORTBL STATUS CHECK FOR FORCE OUT +CLKINI=322 /CONVERT HARDWARE CLOCK TO SYSTEM-TICKS (100MS) +BLT0=1602 /BLOCK TRANSFER FROM CORE TO CORE +KBDSQ=3213 /ADDRESS OF JMS TO ^S/^Q CODE + + +/DEFINED IN TS8II: + +F1TCNT=175 /SI DDB CHARACTER COUNT +F1ECNT=176 /SI DDB EMPTY COUNT +F1BUF=177 /SI DDB EMPTY BLOCK POINTER +DTJOB=20 /JOB OWNING THE DECTAPE CONTROLLER +RKJOB=54 /JOB OWNING RK05 CONTROLLER +DTSI=1175 /SI TERMINATE A DECTAPE ON TIMER +DATA1=2200+DCSIZE +DEVTBL=DATA1+140 +DEVTBE=DEVTBL+NULINE+NULINE+2 +JOBTBL=DEVTBE+22 +CLKTBL=JOBTBL+JOBMAX+1 +TTYTBL=CLKTBL+JOBMAX+1 +PRGTBL=TTYTBL+JOBMAX+1 +DSUTBL=PRGTBL+JOBMAX+JOBMAX+JOBMAX-7 +FIPBLK=7720 /FIXED BLOCK FOR FIP IO +WINBAS=7730 /ADDRESS OF THE BASIC WINDOW +OUTDIF=-OUTREG^2+DEVTBL /FOR LINKING BETWEEN OUTREG AND DEVTBL +F1OFFJ=164 /FOR OFF /ON COMMANDS USED BY SI +IFNZRO DEVTBL&1 + +/DEFINED IN SI + +DTSIDT=7270 /RETURNED FROM STOPPING A DECTAPE ON TIMER +VERBRK=7600 /START OF INSTALLATION DEFINED LOGIN MESSAGE diff --git a/tss8/system/param.pal b/tss8/system/param.pal new file mode 100644 index 0000000..c897cd6 --- /dev/null +++ b/tss8/system/param.pal @@ -0,0 +1,450 @@ +/PARAMETERS VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + +/EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB +/COPYRIGHT 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON WHICH INDIVIDUAL +/EDUSYSTEM 50 MONITORS ARE TO RUN. +/FOR EACH STATEMENT, THE COMMENT INDICATES THE POSSIBLE RESPONSES + +CPU=2 /1 IF CPU IS PDP-8; 0 IF CPU IS PDP-8/I; + /2 IF CPU IS PDP-8/E + /4 is defined too (PDP-8/A???) + +CORMEM=70 /HIGHEST DATA FIELD SELECT, FOR 12K SYSTEM, + /RESPOND 20, FOR 16K SYSTEM, RESPOND 30, ETC. (70 MAX) + +PHONES=0 /1 IF DC08 INCLUDES 689AG; + /0 IF IT DOES NOT OR IF TTY INTERFACING IS OTHER THAN DC08 + +EAE=0 /20 IF PROCESSOR INCLUDES EAE; 0 IF IT DOES NOT + +RF08=0 /40 IF SYSTEM DISC IS DF32; 0 IF SYSTEM DISK IS RF08 + +RS08=1 /NUMBER OF DISCS ON THE SYSTEM, WHETHER DF/DS OR RF/RS, + /RESPOND WITH 1, 2, 3, OR 4. + +PUNCH=1 /1 IF SYSTEM INCLUDES PUNCH; 0 IF IT DOES NOT + +TC01=1 /1 IF SYSTEM INCLUDES DECTAPE(S); 0 IF IT DOES NOT + +RK05=1 /NUMBER OF RK05 CARTRIDGE DISK DRIVES ON THE SYSTEM; 0 TO 4 + +CDR=1 /1 IF SYSTEM INCLUDES CARD READER; 0 IF IT DOES NOT + +LPT=1 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER + +DECIMAL /MONITOR CAPACITY FOR THIS SYSTEM + +JOBMAX=20 /NUMBER OF SIMULTANEOUS USERS (20 MAXIMUM) + +/THE FOLLOWING ENTRIES DEFINE THE NUMBER OF TERMINALS +/ATTACHED TO THE SYSTEM, AND ALSO THE METHOD OF INTERFACING + +CONTTY=1 /WE ALWAYS HAVE A CONSOLE ( K00 ) + +DC08A=0 /NUMBER OF TERMINALS INTERFACED VIA DC08A (PDP-8/I ONLY, 19 MAX.) + +DC08LO=0 /LOWEST HARDWARE LINE NUMBER UTILIZED ON DC08A; USUALLY 0 + +PT08=0 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY) + +KL8=16 /NUMBER OF ADDITIONAL TERMINALS INTERFACED VIA KL8 (PDP-8/E ONLY, 19 MAX.) + +OCTAL +PLT=0 +IFNZRO CPU < IFNZRO DC08A > +IFNZRO 24-JOBMAX&4000 +IFNZRO 23-KL8-PT08&4000 +IFNZRO 24-DC08A&4000 +IFZERO DC08A +IFNZRO DC08A < IFNZRO PHONES + IFZERO PHONES > +NULINE=DC08A+PT08+KL8 /EVERY TERMINAL EXCEPT THE CONSOLE +SWDEX=5 /DISK TRACK OF THE FIRST USER SWAP TRACK +STOMIN=5 /MINIMUM # FREE STORAGE BLOCK FOR NEWJOB +IFZERO RF08-40 < +IFZERO RS08-1 +IFZERO RS08-2 +IFZERO RS08-3 +IFZERO RS08-4 +DSKEXT=DSKSIZ-1> +IFZERO RF08 +CLOCKR=144 /MILLISECONDS PER TICK +TICMIN=1130 /600 TICKS PER MINUTE +INCLK2=0322 /INITIAL CLOCK +INCLK1=7400 +TICSPS=12 /NUMBER OF SYSTEM TICKS PER SECOND +INIDEX=10 /INIT DISC EXTENSION +TS8DEX=30 /FIELD 0 DISC EXTENSION*2^3 +ERPDEX=0 /ERP DISC EXTENSION*4 +ERPWC=0 /ERP WORD COUNT +FIPDEX=4 /FIP DISC EXTENSION*4 +FIPWC=0 /FIP WORD COUNT +SIDEX=ERPDEX /SI DISC EXTENSION*4 +SIWC=ERPWC /SI WORD COUNT +LIBACT=2 /LIBRARY ACCOUNT # +BRKINI=4000 /INITIAL USER BREAK MASK + + +/IOT DEFINITIONS + +IFNZRO DC08A < /DC08A,DL8I IOTS +TTIL=6401 /INCREMENT LINE REGISTER +TTI=6402 /TELETYPE INPUT COMMAND +TTO=6404 /TELETYPE OUTPUT COMMAND +TTCL=6411 /CLEAR LINE REGISTER +TTLL=6412 /LOAD LINE REGISTER, CLEAR AC +TTRL=6414 /READ LINE REGISTER +T1SKP=6421 /SKIP ON CLOCK FLAG +T1OFF=6422 /TURN CLOCK OFF +T1ON=6424 /TURN CLOCK ON +TTIR=6461 /INCREMENT THE R REG. +TTCR=6471 /CLEAR THE R REG. +TTLR=6472 > /LOAD THE R REG. +/EXTENDED MEMORY + +CDF=6201 /CHANGE TO DATA FIELD 0 +CIF=6202 /CHANGE TO INSTRUCTION FIELD 0 +CINT=6204 /CLEAR USER IOT + +RDF=6214 /READ DATA FIELD +RIF=6224 /READ INSTRUCTION FIELD +RIB=6234 /READ INTERRUPT BUFFER +RMF=6244 /RESTORE MEMORY FIELD +SINT=6254 /SKIP ON USER IOT +CUF=6264 /USER FLAG OFF +SUF=6274 /USER FLAG ON + + +/EAE +MUY=7405 /MULTIPLY +DVI=7407 /DIVIDE +NMI=7411 /NORMALIZE +SHL=7413 /SHIFT ARITHMETIC LEFT +ASR=7415 /ARITHMETIC SHIFT RIGHT +LSR=7417 /LOGICAL SHIFT RIGHT +MQL=7421 /LOAD MQ +SCL=7403 /STEP COUNTER LOAD FROM MEMORY +SCA=7441 /STEP COUNTER TO AC +MQA=7501 /MQ TO AC + +IFZERO CPU-2 < + +DPSZ=7451 /MODE B ONLY - SKIP IF AC&MQ ARE CLEAR +SWBA=7447 /CHANGE MODE TO A +SWAB=7431 /CHANGE MODE TO B (ALSO DOES MQL) +ACS=7403 /AC(7:11) TO SC; AC CLEARED +SGT=6006 /SKIP ON GT FLAG + > + + + +/LINE PRINTER IOTS +LSF=6661 /SKIP ON CHAR FLAG SET +LCF=6662 /CLEAR CHAR FLAG +LSRP=6663 /SKIP ON NOT READY OR ON ERROR +LLC=6664 /TRANSMIT CHAR TO PRINTER +LSP=6665 /SET PROGRAM INTERRUPT; LP08/LE8 +LPC=6666 /TRANSMIT CHAR &CLEAR FLAG +LCP=6667 /CLEAR PROGRAM INTERRUPT +LIE=6665 /AC11 TO INTERRUPT ENABLE; LS08/LS8E + +/CTY + +TPC=6044 /LOAD TELEPRINTER AND PRINT + +/DISC (DF32) + +DCMA=6601 /CLEAR +DMAR=6603 /READ +DMAW=6605 /WRITE +DCEA=6611 /CLEAR DISC EXTENDED ADDRESS +DEAL=6615 /LOAD EXTENDED ADDRESS +DFSE=6621 /SKIP ON ERROR +DFSC=6622 /SKIP ON COMPLETION +DEAC=6616 /READ EXTENDED ADDRESSES + +/DISC (RF08) + +DSAC=6612 +DORS=6614 +DIML=6615 +DIMA=6616 +DCXA=6641 +DXAL=6643 + +/CARD READER IOT'S +RCSF=6631 +RCRA=6632 +RCRB=6634 +RCNO=6635 /8E ONLY +RCRC=6636 /8E ONLY +RCNI=6637 /8E ONLY +RCSD=6671 +RCSE=6672 +RCRD=6674 +RCSI=6675 /8E ONLY +RCTF=6677 /8E ONLY + +/RK05 IOT'S + +IFZERO PHONES< +DSKP= 6741 +DCLR= 6742 +DLAG= 6743 +DLCA= 6744 +DRST= 6745 +DLDC= 6746 +DMAINT= 6747 > +IFNZRO PHONES < +DSKP= 6751 +DCLR= 6752 +DLAG= 6753 +DLCA= 6754 +DRST= 6755 +DLDC= 6756 +DMAINT= 6757 > + +/DECTAPE + +DTRA=6761 +DTCA=6762 +DTXA=6764 +DTSF=6771 +DTRB=6772 +DTLB=6774 + + +IFZERO CPU < +/KW8I REAL TIME CLOCK + +CECI=6137 /CLEAR AND ENABLE CLOCK AND INTERRUPT +CSCF=6133 /SKIP AND CLEAR FLAG IF FLAG +> +IFZERO CPU-1 < +CECI=6315 /CLOCK ENABLE +CSCF=6301 /SKIP ON CLOCK FLAG +CCF=6302 /CLEAR CLOCK FLAG, CLEAR ENABLE AND CLEAR BUFFER +CLB=6304 > /LOAD BUFFER FROM AC + +IFZERO CPU-2 < +CECI=6131 /CLOCK ENABLE +CSCF=6133 /SKIP AND CLEAR FLAG IF FLAG + +/POWER FAIL IOT + +SPL=6102 /SKIP IF POWER LOW + +/ 8/E PROCESSOR IOT +SRQ=6003 /SKIP ON INTERRUPT REQUEST +GTF=6004 /LINK TO AC0, GT FLAG TO AC1 +RTF=6005 /AC0 TO LINK, AC1 TO GT FLAG +CAF=6007 > /CLEAR ALL FLAGS + +IFZERO CPU-4 < +CLLE=6135 /AC11 TO INTERRUPT ENABLE FOR CLOCK +CLCL=6136 /CLEAR CLOCK FLAG +CLSK=6137 /SKIP ON CLOCK FLAG +SPL=6102 /SKIP POWER LOW +CAL=6133 > /CLEAR AC LOW FLAG + + IFNZRO DC08A < + +/689AG +SRF=6701 /SKIP IF RING FLAG +SCF=6711 /SKIP IF CARRIER FLAG +DFCRF=6742 /CLEAR RING FLAG +CTG=6721 /CLEAR GROUP COUNTER +RRS=6702 /READ RING STATUS +ITG=6731 /INCREMENT GROUP COUNTER +STR=6722 /SET TERMINAL READY +EDF=6704 /ENABLE DATAPHONE FEATURES +DDF=6714 /DISABLE DATAPHONE FEATURES +CTR=6724 /CLEAR TERMINAL FLAG +CCF=6741 /CLEAR CARRIER FLAG +RCS=6712 /READ CARRIER STATUS + > + + +/FIP IOTS (IN ABBREVIATED FORM) + +SEGS=0006 /RETURN NUMBER OF FREE SEGMENTS ON DISK +ASD=0040 /ASSIGN +REL=0042 /RELEASE +REN=0200 /RENAME +OPEN=0201 /OPEN +CLOS=0202 /CLOSE +RFILE=6603 /READ FILE +PROT=0204 /PROTECT +WFILE=6605 /WRITE FILE +CRF=0210 /CREATE +EXT=0211 /EXTEND +RED=0212 /REDUCE +FINF=6613 /FILE INFORMATION +LIN=0214 /LOGIN +LOUT=0215 /LOGOUT +WHO=6616 /WHO +/DEVICE DATA BLOCK + +DDBSTS=0 /WORD 1, STATUS AND UNIT NUMBER + DXON=2000 /XOFF SENT FLAG + DSI=1000 /DESTINATION IS S.I. FLAG + DFULL=400 /KEYBOARD BUFFER IS FULL + DUPL=200 /CONSOLE IN DUPLEX MODE + SICOM=100 /COMMAND WAITING + DECHO=40 /CAUSE SI TO RE-ECHO CURRENT INPUT BUFFER + + /DEVICE UNIT NUMBER IS IN BITS 6-11 + +DDBJN=1 /WORD 2, JOB NUMBER IN 7-11 +DDBBRK=2 /BREAK MASK +DDBTIM=3 /TIME THAT DEVICE WAS ASSIGNED +DDBINP=4 /BUFFER FILL POINTER +DDBINC=5 /BUFFER TOTAL COUNT +DDBOUC=6 /BUFFER EMPTY COUNT +DDBOUP=7 /BUFFER EMPTY POINTER + +/JOB DATA AREA + +JOBSTS=0 /STATUS + /STR0 + JSRUN=4000 /RUN BIT + JSEREN=2000 /USER ERROR ENABLE + JCOMBD=1000 /LAST TIME THE JOB RAN AS COMPUTE BOUND + JSPEEK=400 /ALLOW "PEEK" AND "LOGOUT" IOT'S + JSACC=200 /JOB LOGGED IN UNDER PRIVILEGED ACCOUNT (1,2 OR 3) + JSIOT=100 /NON-RESIDENT IOT + JSIOTC=40 /COPY IOT RESULT TO USER + JSEXON=20 /EXECUTE ONLY + JSINER=10 /INHIBIT ERROR REPORT FROM SI. (UNTIL NEXT COMMAND) + /BITS 9-11 ARE SYSTEM ERROR CODE + UUOERF=1 /IOT ERROR + SWPRER=2 /SWAP READ ERROR + SWPWER=3 /SWAP WRITE ERROR + DSKERR=5 /DISC ERROR + HUNGDV=6 /HUNG DEVICE + + /STR1 + JSTIME=4000 /TIME IS UP + JSF0=2000 /FILE 0 NOT BUSY + JSF1=1000 /FILE 1 IS NOT BUSY + JSF2=400 /FILE 2 IS NOT BUSY + JSF3=200 /FILE 3 IS NOT BUSY + JSDEL=100 /KEYBOARD DELIMITER SEEN + JSLPT=40 /LINE PRINTER BUFFER IN USE BUT NOT FULL + JSTEL=20 /TELEPRINTER OUTPUT BUFFER IN USE BUT NOT FULL + JSPTR=10 /CHARACTERS IN READER BUFFER + JSPTP=4 /PUNCH BUFFER IN USE BUT IS NOT FULL + JSERR=2 /SYSTEM ERROR DETECTED + JSWAIT=1 /JOB NOT IN WAIT STATE + + +JOBSTB=2 /DEVICE STATUS REGISTER (FOR RK05 DECTAPE AND CARD READER) +JOBWMK=3 /WAIT MASK +JOBSRA=5 /JOB RESTART ADDRESS +JOBERR=6 /JOB ERROR RESTART ADDRESS +JOBLNK=7 /IOT LINKAGE +JOBSWR=10 /SWITCH REGISTER +JOBREG=11 /PC LINK AC +JOBEAE=14 /MQ MODE GT SC +JOBACC=16 /ACCOUNT NUMBER +JOBF0=17 /POINTER TO FILE 0 CONTROL +JOBF1=20 /POINTER TO FILE 1 CONTROL +JOBF2=21 /POINTER TO FILE 2 CONTROL +JOBF3=22 /POINTER TO FILE 3 CONTROL +JOBRTM=23 /LOW ORDER RUN TIME +JOBRTH=24 /HI ORDER RUN TIME + +/FILE CONTROL BLOCK - POINTED TO BY JOBFX, X=0,1,2,3 + +FILWPT=0 /POINTER TO FILE RETRIEVAL WINDOW +FILSCT=1 /SEGMENT NUMBER OF FIRST WINDOW ENTRY +FILPRO=2 /FILE PROTECTION - BIT 9 +FILPAR=3 /POINTER TO RFILE OR WFILE PARAMETER BLOCK +FILDA=4 /DISC ADDRESS OF RFILE OR WFILE +FILWC=6 /-WORD COUNT OF RFILE OR WFILE +FILRES=7 /POINTER TO FILPIF IN USER AREA + +/FILE RETRIEVAL WINDOW +/WORD 0: UFD LINK TO NEXT GROUP OF 7 SEGMENT POINTERS +/WORDS 1-7: SEVEN SEGMENT ADDRESSES + +/RFILE OR WFILE PARAMETER BLOCK - POINTED AT BY FILPAR + +FILPFN=0 /FUNCTION; 0603 OR 0605 +FILPDX=1 /DISC EXTENSION +FILPIF=2 /INTERNAL FILE # (BITS 10-11) AND FIELD # (BITS 7-9) +FILPWC=3 /-WORD COUNT FOR THIS TRANSFER +FILPCA=4 /CORE ADDRESS FOR THIS TRANSFER +FILPDA=5 /DISC ADDRESS +FILPRA=6 /EXEC RETURN ADDRESS FOR THIS TRANSFER +FILPCT=7 /POINTER TO FILE CONTROL BLOCK + + +/CORE TABLE CONTROL FLAGS + +SWAP=4000 /SWAP REQUEST +LOCK=2000 /LOCK IN CORE +NOTRUN=1000 /HAS NOT BEEN SCHEDULED TO RUN +FIP=400 /FILE PHANTOM +SI=200 /SYSTEM INTERPRETER +NOHOLD=140 /INHIBIT "NOTRUN" STATUS AFTER FOUR CONSECUTIVE FILE TRANSFERS +CJOB=37 /BITS 7-11 CONTAIN THE JOB # + + + +/FIP TABLE DEFINITIONS + +SATSIZ=530 +JTABLE=6000 +ENTABL=JTABLE+JOBMAX+1 +UTABLE=ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX +RTABLE=UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX + + +/TABLES +CORTBL=7001 /CORE ASSIGNMENT TABLE +L2QTB=CORTBL+7 +IFZERO DC08A +IFNZRO DC08A /SIZE OF FIELD 1 DC08A CODE PLUS 689AG CODE + +OUTREG=200 /ACTIVE OUTPUT REGISTERS (TTY'S, LPT & PTP) +SKPTBL=OUTREG+NULINE+3 /START OF IOT SKIP TABLE +SKPTP=SKPTBL+NULINE+NULINE+3 /POSITION OF PUNCH SKIP IN SKIP TABLE +RINGIN=SKPTP+3 /KEYBOARD INPUT RING BUFFER +ENDBUF=OUTREG+200 /END OF KEYBOARD INPUT BUFFER +INPUTS=ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE ENTRIES IN THE KEYBOARD RING BUFFER + +DATFLD=CDF 10 /MONITOR DATA FIELD SELECT + +IFZERO EAE-20 +IFZERO EAE + IFZERO CPU&7776 > +IFNZRO OUTREG&1 diff --git a/tss8/system/si.pal b/tss8/system/si.pal new file mode 100644 index 0000000..5ac817e --- /dev/null +++ b/tss8/system/si.pal @@ -0,0 +1,4456 @@ +/SI VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + +/SI PAGE 0 +FIELD 0 /SI LOADS ONTO DISK TRACK 0 + +*0 + CLA CLL +C6201, CDF /CHANGE TO FIELD ZERO + JMP I .+1 +SI1, COM +SKIP= JMS I . + SKIPS + + IX1=10 + IX2=11 + IX3=12 + IX4=13 + IX5=12 + + *10 + . /IX1 + . /IX2 + . /IX3 + . /IX4 +C4000, 4000 +C0200, 200 +NOPUNCH +*6622 +ENPUNCH + DMAR /FOR BOOT-STRAPPING + JMP . /FOR BOOT-STRAPPING + +SIDATA=20 /SYSTEM INTERPRETER DATA +*SIDATA + +COMPTR, . /POINTER TO LAST DEVTBL ENTRY SCANNED, INITIALIZE TO DEVTBL-1 +CONDVA, CONDBA /DEVTBL POSITION OF OUTPUT SIDE +SITCNT, F1TCNT +COMDSP, . /FIP RETURN DISPATCH +SIFLG, . /COMMAND FLAGS +SICHAR, . /SAVE LAST CHAR FROM COMMAND SCAN +SIREG, . /USER AC, LINK, PC + . + . +TTCHAR, . /TTY CHARACTER + +CONSTANTS=SIDATA+12 +*CONSTANTS +C0002, 2 +C0003, 3 +C0004, 4 +C0007, 7 +C0037, 37 +C0100, 100 +C1000, 100 +C7770, 7770 +C0010, 10 + +JOBCON=CONSTANTS+11 /JOB CONTROL +*JOBCON + +JOBTIM, . /-#TICKS REMAINING TO RUN +JOBTBA, JOBTBL /JOB TABLE ADDRESS +C0006, 6 + +FRSTOR=JOBCON+3 +*FRSTOR + +FREE, . /POINTER TO HEAD OF FREE STORAGE +FRECNT, . /# FREE BLOCKS AVAILABLE + + +TIMDAT=FRSTOR+2 /CLOCK AND DATE +*TIMDAT + +/CLOCK +CLK2, . +CLK1, . + + +SCHDAT=TIMDAT+2 +*SCHDAT /SCHEDULING DATA + +COMCNT, . /NUMBER OF COMMANDS WAITING EXECUTION + + + +FIPDAT=155 /DATA REFERENCED BY FIP +*FIPDAT+1 + +C0400, 400 +SEGSIZ=C0400 /#WORDS PER SEGMENT +FIBASE, SWDEX+JOBMAX /BASE ADDRESS OF ALLOCATABLE DISC STORAGE +JOB, . /# OF CURRENT JOB +JOBDAT, . /ADDRESS OF CURRENT JOB DATA LIST, MUST RESIDE IN DATA FIELD. +CORTBA, CORTBL-1 /CORE ALLOCATION TABLE +DEVTBA, DEVTBL /DEVICE TABLE +DSUTBA, DSUTBL /USER DISC REQUEST QUEUE +DSBUSY, . /DISC BUSY COUNT + +/THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT +/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1 + +DATE, . + + +FISUBL= 400 + +BLTA, BLT0 /BLOCK TRANSFER +BLT=JMS I BLTA +CORSRA, CORSRC +CORE=JMS I CORSRA +GETBA, GETB +GETBLK=JMS I GETBA +GETDBA, GETDB0 /GET A DATA BLOCK +GETDDB=JMS I GETDBA +PRINTA, PRINT0 /TYPE OUT A CHARACTER +PRINT=JMS I PRINTA +GETJT0, GETJTB /GET JOB DATA TABLE ADDRESS +GETJTA=JMS I GETJT0 +KBDA, KBD00 /INPUT KEYBOARD CHARACTERS +KEY=JMS I KBDA +RETBA, RETB /RETURN BLOCK TO FREE STORAGE +RETBLK=JMS I RETBA +WAITA, WSCHED +WAIT=JMP I WAITA + + + *SCHDAT+1 + +SIJOB, 0 +CHDFA, 0 /TEMP LOC USED BY MANY ROUTINES +CHDF=6221 +COMDB0, 0 /ADDRESS OF COMMAND DDB +COMRDB, 0 /RESPONSE DEVTBL ADDRESS +COMBFA, COMBUF-1 +COMTBE, 0 /COMMAND TABLE ENTRY ADDRESS +COMFLG, 0 /COMMAND CONTROL FLAGS +IOTPAR, . /IOT PARAMETER BLOCK +IOTP0, 0 +IOTP1, 0 +IOTP2, 0 +IOTP3, 0 +IOTP4, 0 +IOTP5, 0 +IOTP6, 0 +IOTP7, 0 +CHAR, 0 /CURRENT SCAN CHARACTER +NUMHO, 0 /HIGH ORDER FOR NUMBIN + 0 + 0 +TEXTS=JMS I . + CTEXT /ASCII READ +DECRCA, DECRC0 /DECREMENT COMCNT +NUMBIA, NUMBI0 /NUMBER CONVERT +ASCOUA, ASCOU0 /ASCII OUTPUT +ENDTSA, ENDTS0 /TEST FOR END OF COMMAND +COMGEA, COMGE0 /GET COMMAND STRING CHARACTER +COMERA, COMERR /ERROR RETURN +COMEXA, COMRET /OK RETURN +COMEXP, COMRET /FOR RESETTING COMEXA +ASCSIA, ASCSI0 /ASCII TO SIXBIT +GETFBA, GETFB0 /GET FREE BLOCK +GETBAA, GETTB0 /GET JOB TABLE ADDRESS +RETDBA, RETDB0 /RETURN BLOCK +RETBKA, RETBK0 /RETURN BLOCKS +IOTEND, FIPEND +LNGIOT, FOPEN1 /LONG IOT +SHTIOT, ACSET /SHORT IOT +CALFIA, CALFI0 /FIP OVERLAY +RESPDA, RESPDB /GET RESPONSE DDB +EXITA, COMEXT +EXIT=JMP I EXITA +GETWRA, GETWR0 /GET STATUS WORD +OCTASA, OCTAS0 /OCTAL TO ASCII +BUFDEA, BUFDE0 /BUFFER DELETE +RETPAA, RETPA0 /RETURN PARAMETERS +CORES=JMS I . + CORSER +ASSCOR=JMS I . + ASSCO0 +RELCOR=JMS I . + RELCO0 +TTYTBA, TTYTBL /START OF TTY TABLE +SIERR=JMS I . + SYSER0 +SWBASE, SWDEX /START OF SWAPPING TRACKS +ACCTIN= JMS I . + ACC0 +P7777, -1 +C7700, 7700 +JOBONC, -JOBMAY +SIECNT, F1ECNT /DDB EMPTY COUNT +SIBUF, F1BUF /DDB EMPTY POINTER +COMES1, COMLGM +COMWAA, COMDEL +COMWAT=JMP I COMWAA + +/SI PAGE DIRECTORY + +SCAN=200 +SUBR=SCAN+1400 +COMMAN=SUBR+1200 +CTABLE=COMMAN+3000 +ERPAGE=CTABLE+1000 + + +/COMMAND CONTROL FLAGS + +NOLOG=4000 /LOGIN NOT REQUIRED +USERM=2000 /REFERENCES USER MEMORY +USAVE=1000 /SAVE USER REGISTERS +UREST=400 /RESTORE USER REGISTERS + +PRBUF=200 /PRINT BUFFER +PRQM=100 /PRINT ? +PRPER=40 /PRINT . +PRCRLF=20 /PRINT CRLF +NOMESS=10 /NO MESSAGE +/BITS 9-11 CONTAIN # FREE BLOCKS REQUIRED + +*SCAN + +DEVTND, -DEVTBE+1 +COMSIC=C0100 /SICOM +COMFND=IOTP7 /COUNT OF SEARCH MATCHES +COMLNK=IOTP5 +COMNXT=IOTP6 +COMSET, RESTBP + +COM, TAD I JOB + AND C0037 + DCA SIJOB + TAD SIJOB + SZA CLA /FIP RETURN? + JMP COMFIP /YES + TAD I COMPTR + DCA IX1 + TAD IX1 + DCA IOTP0 + DATFLD +COM1, ISZ IX1 /DON'T BOTHER LOOKING AT THE OUTPUT SIDE + TAD DEVTND + TAD IX1 + SZA CLA /END OF TABLE? + JMP COM1 /NO + STA + TAD DEVTBA /YES, RESET TO BEGIN OF TABLE + DCA IX1 +COM2, TAD I IX1 /GET TABLE ENTRY + SZA + JMP COM3 +COM4, TAD IX1 /SCANNED ENTIRE TABLE? + CIA + TAD IOTP0 + SZA CLA + JMP COM1 /NO + CDF + DCA I COMCNT +COMEXT, RELCOR /RELEASE COR + CIF CDF + DCA I COMDSP + WAIT /RESCHEDULE + +SIWATA, SIWAIT +SITIMA, TIMSI + +COM3, DCA COMDB0 + TAD I COMDB0 /COMMAND WAITING? + AND COMSIC + SNA CLA + JMP COM4 /NO + TAD COMDB0 /SET JOB # + IAC + DCA COMTBE + TAD I COMTBE + CDF + AND C0037 + DCA SIJOB + TAD IX1 + DCA I COMPTR + TAD SIJOB + TAD I JOB + DCA I JOB + TAD SIJOB + DATFLD + SNA + JMP COM31 + TAD JOBTBA + DCA CHDFA + TAD I CHDFA +COM31, DCA I JOBDAT + TAD I JOBDAT /DO WE HAVE JOB? + SNA + JMP COM33 /NO + IAC + DCA CHDFA /ADDRESS OF STR0 + JMS I COMLRA /CHECK FOR RUBOUT AND LINE-FEED + TAD C7367 + AND I CHDFA /CLEAR OUT THE R PRIVILEGE & ERROR REPORT INHIBIT BITS + DCA I CHDFA /SAVE IT +COM33, JMS I COMSET /SETUP BUFFER POINTERS + DCA COMRDB + DCA COMFLG +COM32, DCA CHAR + TAD COMBFA /GET COMMAND NAME + TEXTS + CIA + TAD COMBFA /NULL? + SZA CLA + JMP I COM41A + TAD CHAR + SZA CLA + ENDTST /END OF COMMAND? + JMP I COM64A /YES + JMP COM32 /TRY TO FIND A VALID COMMAND + +C7367, -JSPEEK-JSINER-1 +COM64A, COM64 +COMLRA, COMLRB +COM41A, COM41 + +COMFIP, TAD I COMDSP + SNA + JMP COMFI2 + DCA IOTP0 + DCA I COMDSP + TAD I SIFLG /RESTORE CONTROL FLAGS. + DCA COMFLG + TAD I SICHAR + DCA CHAR + TAD I COMPTR + DCA COMDB0 + DATFLD + TAD I COMDB0 + DCA COMDB0 + TAD I JOBDAT + SNA + JMP COMFI1 + IAC + DCA CHDFA + TAD C0003 + TAD I CHDFA + AND C0007 /WAS THERE A SYSTEM DISK ERROR? + SZA CLA +COMFI1, ISZ IOTP0 + CHDF + JMP I IOTP0 +COMFI2, CHDF + JMP I .+1 + SYSERR + +COMDEL, CDF /SI MUST WAIT FOR SOME REASON + TAD I COMCNT /NUMBER OF COMMANDS LEFT TO DO + TAD I SIWATA /PLUS THOSE ALREADY WAITING + DCA I SIWATA + DCA I COMCNT /WE'LL RELOAD THE COUNT WHEN THE TIMER RUNS OUT + STA + DCA I SITIMA /WAIT FOR ONE SECOND + EXIT +PAGE + +COMTBA, COMTBL +COM9A, COM9 +COM91A, COM91 +COM41, DCA COMFND /SEARCH COMMAND TABLE + TAD COMTBA +COM6, DCA COMLNK + TAD I COMLNK + SNA + JMP I COM9A /END OF TABLE + DCA COMNXT + TAD COMLNK + TAD C0003 + DCA IX2 + TAD COMBFA + DCA IX3 +COM5, TAD IX2 + CMA + TAD COMNXT + SNA CLA + JMP COM99 /EXACT MATCH + TAD I IX3 + SNA + JMP COM8 + TAD I IX2 + SNA CLA + JMP COM5 + JMP COM7 +COM8, ISZ COMFND /PARTIAL MATCH + TAD COMLNK + DCA COMTBE +COM7, TAD COMNXT + JMP COM6 + + +COM99, TAD I IX3 + SNA CLA + JMP I COM91A /EXACT + JMP COM7 +COMECH, DECHO +COMLBT, -SICOM-DECHO-1 +COMPST, STRNG0 +COMPNT, RESTBP + +COMLRB, 0 + TAD I COMDB0 + AND COMECH + SNA CLA + JMP I COMLRB + JMS I COMPNT + DCA CHAR +DCA COMRDB + DCA COMFLG + JMS I COMPST + ASCOUT + CRLF + NOP + GETWRD + JOBSTS + SPA CLA + JMP COMLRR + ASCOUT + PERIOD + NOP +COMECC, ASCOUT + VERBRK + NOP + DATFLD + TAD COMLBT + AND I COMDB0 + DCA I COMDB0 + DECRCT + EXIT +COMLRR, ASCOUT + CB + NOP + JMP COMECC +CB, "^ + "B + 0 + +SWITCH, TAD JBSWR +RESTRT, TAD JBSRA + DCA .+2 + GETTBA + 0 + JMP BRK0 + +JBSWR, JOBSWR-JOBSRA +JBSRA, JOBSRA + +BREAK, TAD COMDB0 /DDB ADDRESS + TAD C0002 +BRK0, DCA IOTP1 /POINTER TO APPROPRIATE REGISTER + ENDTST /ARGUMENT? + SKP /NO; TELL HER WHAT IT IS + JMP BRK1 /YES, NEW VALUE FOR MASK + DATFLD + TAD I IOTP1 /GET BREAK MASK + CHDF + OCTASC /CONVERT TO ASCII + IOTP2 /STORE IN IOTP3,4,5,6,7 + ASCOUT /OUTPUT A CRLF + CRLF + NOP + ASCOUT + IOTP3 + NOP + JMP I COMEXA + +BRK1, NUMBIN + -267 + JMP I COMERA /INVALID CHARACTER IN STRING + DATFLD + DCA I IOTP1 + JMP I COMEXA + +STARS, 215;212;"*;"*;"*;240;0 +FM5400, "B;"A;"D;240;"D;"I;"R;"E;"C;"T;"O;"R;"Y;0 + +/ROUTINE TO SEE IF JOB IS RUNNING WHEN COMMAND REQUIRING FIP IS ISSUED. +/IF SO, WE CAN'T HONOR COMMAND +/THE MESSAGE "TYPE ^BS FIRST" IS GIVEN + +/CALL TAD IOT ENTRY FROM COMMAND TABLE +/ JMS FIPCHK +/ RETURN IF OK TO PROCEED [OTHERWISE RETURN IS TO COMEXT] +/ IF NOT RUNNING BUT JOB IS BUSY WITH FIP OR FILE I/O, EXIT VIA COMWAT + + +FIPCHK, 0 + DCA IOTP0 /SAVE THE IOT + GETWRD /IT'S A CALL TO FIP; IS SHE RUNNING? + JOBSTS /IF SO HER RUN BIT IS ON + SPA + JMP FIPCH2 /SHE'S TURNED ON SO DON'T HONOR COMMAND + AND C0140 /DOES SHE STILL HAVE A FIP REQUEST IF HER OWN PENDING? + SZA CLA + COMWAT /YES DON'T CONFUSE THE ISSUE + ISZ IOTP7 + DATFLD + TAD I IOTP7 /STR1 + RAR + CMA RAL + ISZ IOTP7 + ISZ IOTP7 + AND I IOTP7 /WAIT MASK 1 + AND FILES + CHDF + CLL RAR + SNA SZL CLA /IS SHE WAITING FOR A FILE TRANSFER? + JMP I FIPCHK /NO; SO LET HER PROCEED + COMWAT /WAIT FOR THINGS TO COOL OFF + +FIPCH2, CLA + TAD IOTP0 + SPA + AND C0010 /EITHER FINF, DMAR, OR DMAW + SNA CLA + JMP I FIPCHK /WANTS TO EXAMINE OR DEPOSIT + TAD COMFLG + AND P7377 /DON'T RESTORE REGISTERS SINCE THEY ARE NOT SAVED + DCA COMFLG + TAD FIPTCB + JMP I COMEXA /"TYPE ^BS FIRST" + +FIPTCB, TYCRLB +C0140, JSIOT JSIOTC +P7377, 7377 +FILES, JSF0 JSF1 JSF2 JSF3 JSWAIT + +WAIT1, TAD I DTJOBA + CIA + TAD SIJOB /DOES SHE CURRENTLY OWN THE CONTROLLER, OR IS SHE JUST WAITING IN THE QUEUE + SNA CLA + JMP I COMEXA /SHE OWNS IT - DON'T BOTHER HER + + JMP I .+1 /GO DO THE STUFF COMMON WITH THE RK05 + DTSIDT + +K5, 5 + +WAIT2, TAD I IOTP7 /GET POINTER TO HER TIMER + TAD K5 + DCA CHDFA + STA + DCA I CHDFA /SET HER TIMER=1 SECOND + STA + TAD SIJOB + TAD JOBTBA + CIF DATFLD + JMP I .+1 /FORCE THE TIMER TO RUN - JUST FOR HER JOB + DTSI +DTJOBA, DTJOB + +ACCBUF, " ;" ;"[;0;0;0;0;0;"];0 + +SYSET6, "H /HUNG DEVICE + "U + "N + "G + 240 + "D + "E + "V + "I + "C + "E +SYRING, 207;207;207 + 0 + +*724 /DO NOT MOVE ANYTHING IN THIS AREA + /IT IS VITAL FOR BOOT-STRAPPING +NOPUNCH +*7730 /THIS IS WHERE IT WILL ACTUALLY EXECUTE +ENPUNCH +IFZERO RF08 < +TRBOOT, 2 +FLBOOT, 20 +GOBOOT, DCMA + CLA + TAD FLBOOT + DIML + TAD TRBOOT + DXAL + > +IFZERO RF08-40 < + NOP;NOP;NOP /FOR SIZE +TRBOOT, 220 +GOBOOT, DCMA + CLA + TAD TRBOOT + DEAL + > + STA + DCA CABOOT + DCA WCBOOT + DMAR + DFSC + JMP .-1 + CIF CDF 20 + JMP 0 +WCBOOT, -3 /READ 3 WORDS AFTER OVERLAYING ITSELF +CABOOT, 6621 /OVERLAY OUR CURRENT "JMP ." WE'RE EXECUTING AT 6623 +NOPUNCH +*6622 +ENPUNCH + GOBOOT + JMP I .-1 +*750 +GETACC, 0 + TAD JOBTBA + CIF + GETJTA + JOBACC + DCA CHDFA + DATFLD + TAD I CHDFA + CHDF + OCTASC + ACCBUF+2 + TAD ACCBUF+6 + DCA ACCBUF+7 + TAD ACCBUF+5 + DCA ACCBUF+6 + TAD ACOMMA + DCA ACCBUF+5 + JMP I GETACC +ACOMMA, ", +SYBELL, ASCOUT + SYRING + NOP + EXIT + +CUSERM=CLA CLL CML RTR /AC =2000 + +COM9, STA + TAD COMFND + SZA CLA + JMP COM99A /NOT UNIQUE OR NOT FOUND + JMP COM91Z +FIPCOM, FIPCHK +COM91, TAD COMLNK + DCA COMTBE +COM91Z, ISZ COMTBE /GET COMMAND FLAGS + TAD I COMTBE + DCA COMFLG + TAD COMFLG /ENOUGH FREE STORE? + AND C0007 + CIA + CDF + TAD I FRECNT + CHDF + SPA CLA + COMWAT /NO + CUSERM /AC=2000 + AND COMFLG /USER MEMORY REFERENCE? + SNA CLA + JMP COM16 /NO + STL RAR /AC=SWAP + TAD SIJOB /YES, IS USER BEING SWAPPED? + CORES + SZA CLA + COMWAT +COM16, ISZ COMTBE + TAD SIJOB + SZA CLA + TAD I COMTBE /STORE IOT + SZA /NON RESIDENT IOT? + JMS I FIPCOM /YES--IS SHE RUNNING A PROGRAM? + TAD IOTPAR + DCA IX1 + TAD C7770 + DCA CHDFA + TAD I COMTBE /FIX UP IOTP0 + DCA I IX1 + ISZ CHDFA + JMP .-2 + ISZ COMTBE + TAD I COMTBE + DCA COMTBE + TAD COMFLG + SPA CLA /LOGIN REQUIRED? + JMP I COMTBE /NO, DISPATCH + TAD SIJOB + SNA CLA /NULL JOB? + JMP I COM12A + TAD COMFLG /SAVE REGISTERS? + AND C1000 + SNA CLA + JMP I COMTBE /NO, DISPATCH + GETTBA + JOBREG + DCA COMREG + CIF + BLT + DATFLD +COMREG, 0 + CDF + SIREG + -3 + DATFLD /PC=-1 + STA + DCA I COMREG + CHDF + JMP I COMTBE +COM12A, COM12 + +COM99A, TAD SIJOB /IS SHE LOGGED IN? + SNA CLA + TAD COMES1 /NO, SO SEND "LOGIN PLEASE" + JMP I COMERA + +CALFIP=JMP I CALFIA + +CALFI0, STA CLL RAL /SAVE RETURN ADDRESS + TAD COMTBE + CDF + DCA I COMDSP + TAD COMFLG /SAVE FLAGS + DCA I SIFLG + TAD CHAR + DCA I SICHAR + TAD CALFBA +LOADUS, DCA CALFI2 + CHDF + TAD CALFI4 + TAD DSUTBA + GETFBL + COMWAT + DCA CALFI1 + ASSCOR + CIF CDF + TAD SIJOB + TAD C0200 + DCA I JOB + CHDF + BLT + CHDF +OFF5, /SOURCE FIELD +CALFI2, 0 /SOURCE ADDR + DATFLD /DESTINATION FLD +CALFI1, 0 /DESTINATION ADDR + -10 + CIF CDF + ISZ I DSBUSY + WAIT + JMP I .+1 + OVRLA1 +DEPEXA, TAD CALFI5 + JMP LOADUS +CALFI5, IOTP0 + +CALFBA, .+1 + DMAR + FIPDEX +CALFI4, 10 /MEMORY EXT IN 7-9 + -FIPWC + -1 + 0 + OVERLA + 0 + +OFF3A, ACTNM1 +OFF4, 7774 /ALLOW ONLY ACCOUNTS 1, 2 & 3 TO LOGIN +OFFJOB, F1OFFJ +OFFLIN, TAD OFF4 +ON, DCA OFF5 + JMS I OFF3A /CHECK ACCOUNT NUMBER + TAD OFF5 /.. 0 IF ON + DATFLD + DCA I OFFJOB /STORE IT IN FIELD 1 + JMP I COMEXA /RETURN +COMFLE, PRQM+PRBUF +COPRBF, PRBUF +COMESF, NOMESS +COMQM, PRQM +COMCRF, PRCRLF +COMELF, PRPER+PRCRLF +CO18A, COM18 +COMURE, UREST +COMURM, -UREST-1 +MSEMI, -273 +MCR, -215 + +COM12, TAD COMFLG + AND COMURM + DCA COMFLG + TAD COMES1 + +COMERR, DCA COMESA + TAD COMFLG + AND C7700 + TAD COMELF /SET FLAGS FOR ERROR MESSAGE + DCA COMFLG + TAD COMESA + SZA CLA + JMP COMRET+1 + TAD COMFLE + TAD COMFLG + SKP +COM64, TAD COMELF + DCA COMFLG + +COMRET, DCA COMESA + CHDF + TAD COMFLG /RESTORE REGISTERS +AND COMURE + SNA CLA + JMP COMRE0 + GETTBA + JOBREG + DCA .+6 + CIF + BLT + CDF + SIREG + DATFLD + 0 + -3 +COMRE0, TAD COMFLG /MESSAGE? + AND COMESF + SZA CLA + JMP COM10 /NO + ASCOUT + CRLF + NOP + TAD COMFLG + AND COPRBF + SNA CLA /PRINT BUFFER? + JMP COMRE3 /NO, DELETE COMMAND + JMS I CORSET /YES, RESTORE BUFFER POINTER +COMRE1, COMGET /GET A CHAR + JMP COMRE3 /NONE + STL RTL + ENDTST /LAST CHARACTER OF COMMAND LINE? + JMP COMRE3 /YES; DON'T ECHO THIS ONE + RESDDB + CIF CDF + DCA I CONDVA + TAD CHAR + DCA I TTCHAR + CHDF + PRINT + JMP COMRE1 + JMP COMRE1 +COMRE3, SKPCOM /SKIP TO END OF COMMAND + NOP + BUFDEL /DELETE TO CURRENT POINTER + TAD COMESA + SNA CLA + JMP COM11 + ASCOUT /OUTPUT MESSAGE + JMP COM10 /WON'T FIT +COM11, TAD COMFLG /PRINT ?? + AND COMQM + SNA CLA + JMP COM13 /NO + ASCOUT + QQEST + JMP COM10 +COM13, TAD COMFLG /PRINT CRLF? + AND COMCRF + SNA CLA + JMP COM10 + ASCOUT + CRLF + NOP +COM10, TAD CHAR + TAD MSEMI + SNA CLA + JMP I COM22A + DECRCT /DECREMENT COMCNT + JMP I CO18A /YES +COM22A, COM22 +CORSET, RESTBP +LOGIF2, DCA .+4 /SAVE POINTER TO TIME ASCII STRING + TAD COMEXP /RESTORE COMRET + DCA COMEXA + ASCOUT /OUTPUT TIME MESSAGE + 0 + JMP I COMEXA /NO ROOM, SO DON'T PROCEED + TAD CHAR /ENDED WITH RETURN? + TAD MCR + SNA CLA + TAD VERBRA /YES, SO OUTPUT MESSAGE OF THE DAY + JMP I COMEXA /DONE AT LAST + +VERBRA, VERBRK-2 +SKPCOA, SKPCO0 /SKIP TO END OF COMMAND +SKPCOM=JMS I SKPCOA + + +LOGE0, "A;"L;"R;"E;"A;"D;"Y;240;"L;"O;"G;"G;"E;"D;240;"I;"N;0 +COMMSI, -SICOM-DECHO-1 +COMPF, PRPER +COMCLN, -272 +COMKEY, -JSDEL-1 +COMKEF= C0100 + +COM18, DATFLD + TAD COMDB0 /JOB DEFINED? + SNA /HAS SHE JUST LOGGED OUT? + JMP COM22 + IAC + DCA CHDFA + TAD I COMDB0 + AND COMMSI + DCA I COMDB0 + TAD I CHDFA + AND C0037 + SNA CLA + JMP COM17 /NO + CHDF + GETWRD + JOBSTS + DATFLD + SMA CLA /IS JOB RUNNING? + JMP COM20 /NO + TAD I COMDB0 + AND COMSIF + DCA I COMDB0 /SAVE WITH FLAG CLEARED + TAD COMPF + CMA + AND COMFLG + DCA COMFLG + ISZ IOTP7 + TAD CHAR + TAD COMCLN + SZA CLA + JMP COM21 + TAD I IOTP7 + AND COMKEY + TAD COMKEF + DCA I IOTP7 +COM21, STL RTL + TAD IOTP7 + DCA NUMHO + IAC + TAD NUMHO + DCA NUMHO+1 + TAD I NUMHO+1 + SNA + TAD I NUMHO + SZA CLA + JMP COM19 + ISZ I NUMHO + TAD I IOTP7 + RAR + STL RAL + DCA I IOTP7 +COM19, TAD CHAR /GET TERMINATING CHARACTER + TAD MCRS + SZA CLA /WAS IT CR + JMP COM22 /NO; LEAVE OUTPUT MODE AS IS + RESDDB /DETERMINE DEVTBL ADDRESSES FOR THIS TERMINAL + STA + TAD COMRDB + DCA QON /SAVE KEYBOARD DEVTBL POINTER + DATFLD + TAD I COMRDB /GET ADDRESS OF OUTPUT DDB + DCA IOTP7 + TAD I IOTP7 + SMA CLA /^S MODE? + JMP COM22 /NO + TAD CTRLQ /YES; FORCE A ^Q THROUGH THE INPUT ROUTINES + CIF CDF 00 + DCA I TTCHAR + CHDF + KEY /PUSH IT THRU +QON, .-. /DEVTBL ADDRESS +CTRLQ, "Q-100 /"KEY" CAN'T FAIL +COM22, CLA + CHDF + TAD COMFLG + AND COMPF + SNA CLA + EXIT + ASCOUT + PERIOD + EXIT + EXIT +COM20, CIF 00 + TAD COMDB0 + JMS I SICLRA + JMP COM19 +COMSIF, -DSI-1 +COM17, CIF CDF 00 + TAD I COMPTR /DELETE THE INPUT DDB SINCE WE'RE DONE + DCA CHDFA + DATFLD + DCA I CHDFA + TAD COMDB0 + JMS I SICLRA + TAD COMDB0 + RETDBL + JMP COM22 + +MCRS, -215 +SICLRA, SICLR + +/ROUTINE TO GET TEXT STRING FROM USERS INPUT BUFFER TO LAST PAGE +/OF SI, WHERE THEY STORE LOGIN MESSAGE + +/CALL JMS STRNG0 +/ RETURN + +STRNG0, 0 + TAD STRBRK /SET UP POINTERS + DCA IOTP0 /POINTS TO START OF BUFFER + TAD IOTP0 + DCA IOTP1 /POINTS TO END OF BUFFER + SKIP /SKIP SPACES AND TABS + JMP STREND /END OF INPUT BUFFER REACHED +STRNG1, TAD CHAR /SAVE CHARACTER IN BUFFER + DCA I IOTP1 + ISZ IOTP1 /READY FOR NEXT CHARACTER + SKP + JMP I COMERA /HOW COULD SHE TYPE SO MUCH? + COMGET /GET ANOTHER CHARACTER + JMP STREND /NONE + JMP STRNG1 /AND LOOK AT IT + +STREND, DCA I IOTP1 /END THE STRING + JMP I STRNG0 /RETURN + +STRBRK, VERBRK + + +*SUBR + +/GET A TEXT STRING +/CALL TAD ADDRESS OF BUFFER -1 +/ TEXTS +/ RETURN WITH POINTER TO LAST CHAR IN AC + +CTEXA, -241 +CTEXZ, -340 +CTEXCN, -272 +CTEX6, -6 +CTEXBF, 0 /BEGIN OF BUFFER +CTEXNU, 0 /NUMBER OF CHARACTERS + +CTEXT, 0 + DCA IX1 /INITIALIZE INDEX + TAD IX1 + CIA + DCA CTEXBF + DCA CTEXNU + SKIP /SKIP SPACES AND TABS + JMP CTEXT4 +CTEXT3, TAD CHAR + TAD CTEXCN + CLL RAR + SNA CLA /COLON OR SEMICOLON? + JMP CTEXT4 /YES + TAD CHAR /NO + TAD CTEXA + SPA CLA + JMP CTEXT4 /NO + TAD CHAR + TAD CTEXZ + SMA CLA + JMP CTEXT4 /NO + TAD CTEXNU /STORE CHARACTER + TAD CTEX6 + SMA CLA + JMP .+3 + TAD CHAR + DCA I IX1 + ISZ CTEXNU + COMGET /GET ANOTHER CHAR + SKP /NONE + JMP CTEXT3 +CTEXT4, DCA I IX1 /CLEAR NEXT POSITION + STA + TAD IX1 + JMP I CTEXT + +/SKIP LEADING SPACES AND TABS +/CALL JMS SKIPS +/ BUFFER EMPTY +/ NORMAL RETURN + +SKISPA, -240 +SKITAB, -211 + +SKIPS, 0 + JMP .+3 +SKIPS1, COMGET + JMP I SKIPS /NONE LEFT + TAD CHAR + SNA + JMP .-4 + TAD SKISPA + SNA CLA + JMP SKIPS1 + TAD SKITAB + TAD CHAR + SNA CLA + JMP SKIPS1 + ISZ SKIPS + JMP I SKIPS + +/GET A CHARACTER FROM COMMAND STRING +/CALL COMGET +/ NONE LEFT +/ RETURN WITH CHARACTER IN CHAR + +TC7766, 7766 +TC7400, 7400 +C0377, 377 +COMGET=JMS I COMGEA +COMGE0, 0 + CLA + DATFLD + TAD I SITCNT + SNA + JMP COMGE3 + ISZ COMGE0 + CIA + CMA + DCA I SITCNT + ISZ I SIECNT + JMP COMGE1 + TAD TC7766 + DCA I SIECNT + TAD I SIBUF + DCA COMGT1 + TAD I COMGT1 + DCA I SIBUF +COMGE1, TAD I SIECNT + TAD C0003 + SMA + STL RAL + SPA + STL CIA + TAD I SIBUF + DCA COMGT1 + TAD I COMGT1 + SZL + JMP COMGE2 + AND TC7400 + DCA COMGT2 + ISZ COMGT1 + TAD I COMGT1 + AND TC7400 + CLL RTR + RTR + TAD COMGT2 + RTR + RTR +COMGE2, AND C0377 + DCA CHAR +COMGE3, CHDF + JMP I COMGE0 + +/GET A FREE BLOCK AND RETURN ITS ADDRESS +/CALL TAD FIELD 1 LINK +/ GETFBL +/ NONE AVAILABLE +/ ADDR IN AC + +GETFBL=JMS I GETFBA + +COMGT1, +GETFB0, 0 + DCA CHDFA + TAD CHDFA + CIF + GETBLK + JMP I GETFB0 + DATFLD + TAD I CHDFA + CHDF + ISZ GETFB0 + JMP I GETFB0 + + +/SEARCH FOR JOB IN CORE +/CALL TAD SEARCH ITEM +/ CORES +/ RETURN WITH CORE ARG IN AC + +COMGT2, +CORSER, 0 + CIF + CORE + SWAP SI CJOB + CLA + JMP I CORSER + + + + +JOBNO, "J;"O;"B;240;0 +KSPACE, 240;240;"K;0 + + +/NUMBER INPUT +/CALL NUMBIN +/ -N N=7,9 IN ASCII +/ NOT A NUMBER +/ # IN AC + +NUMBIN=JMS I NUMBIA + +ASCOT0, +NUMSGN, 0 /SIGN +NUMAGN=NUMHO+1 /MAGNITUDE +ASCOT1, +NUMCNT, 0 /DIGIT COUNT +NUMCOM, 240-254 /" "-"," +NUMPLS, -253 /+ +NUMINU, -255 /- +NUMZER, -260 +NUMM5, -5 +NUMB17, 17 +NUMDSP, JMP NUMDEC + +NUMBI0, 0 + TAD I NUMBI0 /SET CONVERSION DISPATCH + AND C0002 + SNA CLA + TAD C0010 + TAD NUMDSP + DCA NUMDEC-1 + DCA NUMSGN /INITIALIZE + DCA NUMAGN + DCA NUMHO + DCA NUMCNT + SKIP /SKIP SPACES AND TABS + JMP NUMBI4 /BUFFER EMPTY + TAD CHAR + TAD NUMPLS /+? + SNA CLA + JMP NUMBI1 /YES + TAD CHAR + TAD NUMINU /-? + SZA CLA + JMP NUMBI2 /NO + ISZ NUMSGN +NUMBI1, COMGET /GET A CHARACTER + JMP NUMBI3 +NUMBI2, TAD CHAR + TAD NUMZER + SPA CLA /DIGIT? + JMP NUMBI3 /NO + TAD CHAR + TAD I NUMBI0 + SMA SZA CLA + JMP NUMBI3 + TAD CHAR + AND NUMB17 + DCA CHDFA + ISZ NUMCNT + TAD NUMCNT /MORE THAN 4 DIGITS? + TAD NUMM5 + SPA CLA + JMP NUMBI5 /NO + TAD NUMHO /SHIFT HIGH ORDER + CLL RTL + RAL + AND C7770 + DCA NUMHO + TAD NUMAGN + CLL RTL + RTL + AND C0007 + TAD NUMHO + DCA NUMHO +NUMBI5, TAD NUMAGN + CLL RTL + RAL + AND C7770 + . +NUMDEC, CLL + TAD NUMAGN + SZL + ISZ NUMHO + CLL + TAD NUMAGN + SZL + ISZ NUMHO + CLL + TAD CHDFA + SZL + ISZ NUMHO + DCA NUMAGN + JMP NUMBI1 + +NUMBI3, TAD C7540 /-SPACE + TAD CHAR /WAS TERMINATOR A SPACE? + SNA + JMP NUMBI6 /YES, OK + TAD NUMCOM /NO- IS IT A "," + SNA CLA + JMP NUMBI6 /YES + ENDTST /NO--WAS IT AN ACCEPTABLE END CHAR? + SKP /YES, OK + JMP NUMBI4 /NO, COMPLAIN + +NUMBI6, TAD NUMCNT /ANY VALID DIGITS IN STRING? + SNA CLA + JMP NUMBI4 /NOPE + ISZ NUMBI0 /YES, IT WAS A VALID STRING. + TAD NUMSGN + CLL RAR + CLA + TAD NUMAGN + SZL + CIA +NUMBI4, ISZ NUMBI0 + JMP I NUMBI0 +C7540, -240 /-SPACE + +/OUTPUT ASCII MESSAGE +/CALL TAD ADDR OF DEVTBL ENTRY OR 0 IF RESPONSE DDB +/ ASCOUT +/ POINTER TO MESSAGE (TERMINATED BY 0 +/ WON'T FIT +/ OK + +ASCOUT=JMS I ASCOUA + + +ASCOU0, 0 + SNA + RESDDB +ASCOU3, CDF + DCA I CONDVA + CHDF + TAD I ASCOU0 + DCA ASCOT1 + ISZ ASCOU0 +ASCOU1, TAD I ASCOT1 /GET NEXT CHAR + SNA /END OF STRING + JMP ASCOU2 /YES + CIF CDF /NO, STORE IT IN BUFFER + DCA I TTCHAR + CHDF + PRINT + JMP I ASCOU0 /WON'T FIT + ISZ ASCOT1 + JMP ASCOU1 +ASCOU2, ISZ ASCOU0 + JMP I ASCOU0 + +*SUBR+400 + +/GET JOB TABLE ADDRESS +/CALL GETTBA +/ RELATIVE ADDRESS +/ RETURN + +GETTBA=JMS I GETBAA + +GETTB0, 0 + CHDF + TAD I GETTB0 + DCA GETTB1 + ISZ GETTB0 + TAD JOBDAT + CIF + GETJTA +GETTB1, 0 + JMP I GETTB0 +/GET RESPONSE DEVTBL ADDRESS +/CALL RESDDB +/ ADDR IN AC AND COMRDB + +RESDDB=JMS I RESPDA + +RESPDB, 0 + CDF + IAC + TAD I COMPTR + DCA COMRDB + TAD COMRDB + CHDF + JMP I RESPDB + +/DELETE BUFFER TO CURRENT POINTER +/CALL JMS BUFDEL +/ RETURN + +BUFDEL=JMS I BUFDEA + +BUFDT0, 0 +BUFDE0, 0 + TAD COMDB0 + SNA + JMP I BUFDE0 /NO, NOTHING TO DELETE + TAD C0004 + DCA BUFDT0 + DATFLD + TAD I BUFDT0 + SNA CLA + JMP BUFDE3 + TAD COMDB0 + TAD C0007 + DCA BUFDT0 +BUFDE1, TAD I SIBUF + CIA + TAD I BUFDT0 + SNA CLA + JMP BUFDE2 + TAD I BUFDT0 + CHDF + RETDBL + DATFLD + DCA I BUFDT0 + JMP BUFDE1 +BUFDE2, TAD C0003 + TAD COMDB0 + DCA IX1 + TAD I SITCNT + SNA + JMP BUFDE4 + ISZ IX1 + DCA I IX1 + TAD I SIECNT + DCA I IX1 +BUFDE3, CHDF + JMP I BUFDE0 + +BUFDE4, TAD I BUFDT0 + CHDF + RETBKS + DATFLD + DCA I IX1 + DCA I IX1 + DCA I IX1 + DCA I IX1 + CHDF + JMP I BUFDE0 + +/DECREMENT COMCNT +/CALL DECRCT +/ RETURN + +DECRCT=JMS I DECRCA + +DECRC0, 0 + CDF + STA + TAD I COMCNT + SPA + CLA + DCA I COMCNT + CHDF + JMP I DECRC0 +ASSIND, "A;"S;"S;"I;"G;"N;"E;"D;0 +S3757, 3757 + +S, GETWRD + JOBSTS + DATFLD + AND S3757 /TURN OFF HER RUN BIT + DCA I IOTP7 + CHDF + +IFNZRO TC01 RK05 CDR < + GETWRD + JOBWMK+1 + DATFLD + AND C0007 + TAD .+3 + DCA .+1 + .-.> + JMP I .+1 + SEXIT /NO WAIT 2 CONDITIONS TAKE S EXIT +IFNZRO TC01 RK05 CDR < +IFNZRO TC01 < + WAIT1 /DECTAPE CONTROLLER WAIT + WAIT2> /DECTAPE TIMER WAIT +IFZERO TC01< + SEXIT + SEXIT> +IFNZRO RK05 < + WAIT3> /WAITING FOR THE RK05 +IFZERO RK05 < + SEXIT> + IFNZRO CDR < + SEXIT> /NOTHING SPECIAL FOR THE CARD READER AT THIS TIME +IFZERO CDR < + SEXIT> + SEXIT + SEXIT + SEXIT> +SEXIT, JMP I COMEXA +SPACES, " ;" ;" ;" ;0 + +IFZERO MQREG-1 < + +WHERMQ, 240 /SP MQ= + 315 + 321 + 275 + 0 > + + + +/RUN USER PROGRAM "LOGOUT" TO DELETE FILES FOR THIS GUY +/"LOGOUT" ISSUES USER LOUT IOT TO MAKE JOB GO AWAY + + JMP I LOGRER /SYSTEM ERROR ON OPEN + JMP I LOGR1 /"LOGOUT" SAVE FILE OPENED + +LOGOUT, TAD LOGMA /GET POINTER TO "LOGOUT" STRING + JMP I .+1 /USER CODE FROM "SYSTAT" TO FINISH UP + SYSTAT+1 + +LOGRER, RERR +LOGR1, R1 +LOGMA, LOGOMA-1 + +*SUBR+600 + +/ASCII TO SIXBIT CONVERT +/CALL ASCSIX +/ SOURCE-1 (TERMINATED BY 0) +/ DESTINATION-1 +/ RETURN + +ASCSIX=JMS I ASCSIA + +ASC240, -240 + +ASCSI0, 0 + TAD I ASCSI0 + DCA IX1 + ISZ ASCSI0 + TAD I ASCSI0 + DCA IX2 + ISZ ASCSI0 +ASCSI1, TAD I IX1 + SNA + JMP I ASCSI0 /THAT'S ALL + TAD ASC240 /CONVERT TO SIXBIT + CLL RTL /NO + RTL + RTL + DCA CHDFA + TAD I IX1 + SNA + JMP ASCSI2 + TAD ASC240 + TAD CHDFA + DCA I IX2 + JMP ASCSI1 +ASCSI2, TAD CHDFA + DCA I IX2 + JMP I ASCSI0 + +/SKIP TO END OF COMMAND +/CALL SKPCOM +/ EMPTY BUFFER +/ NORMAL RETURN + + +SKPCO0, 0 +SKPCO1, ENDTST /END? + JMP SKPCO2 /YES + COMGET /NO, GET NEXT CHAR + JMP I SKPCO0 /NONE + JMP SKPCO1 +SKPCO2, ISZ SKPCO0 + JMP I SKPCO0 + + +/RETURN BLOCK TO FREE STORAGE +/CALL TAD ADDR OF BLOCK +/ RETDBL +/ RETURN + +RETDBL=JMS I RETDBA + +RETDB0, 0 + CIF + RETBLK + JMP I RETDB0 + +/RETURN LINKED BLOCKS TO FREE STORAGE +/CALL TAD ADDRESS OF BLOCK +/ RETBKS +/ RETURN + +RETBKS=JMS I RETBKA + +RETBK0, 0 + SNA + JMP I RETBK0 + RETDBL + JMP .-3 + +/OCTAL TO ASCII CONVERT +/CALL TAD OCTAL # +/ OCTASC +/ BUFFER ADDR-1 +/ RETURN + +OCTASC=JMS I OCTASA + +OCTASN=ASSCO0 +OCTACT=RELCO0 +OCT260, 0 + +OCTAS0, 0 + DCA OCTASN + TAD C0004 + CIA + DCA OCTACT + TAD I OCTAS0 + DCA IX1 + ISZ OCTAS0 + TAD OCTASN + CLL RAL + SKP +OCTAS1, TAD OCTASN + RTL + RAL + DCA OCTASN + TAD OCTASN + AND C0007 + TAD OCT260 + DCA I IX1 + ISZ OCTACT + JMP OCTAS1 + DCA I IX1 + JMP I OCTAS0 + +/ASSIGN THIS FIELD TO JOB +/CALL ASSCOR + +ASSCO0, 0 + CDF + TAD I JOB + DCA I SICORE + CHDF + JMP I ASSCO0 + +/RELEASE THIS FIELD +/CALL RELCOR + +SICORE, CORTBL+1 + +RELCO0, 0 + CDF + TAD C0200 + DCA I SICORE + CHDF + JMP I RELCO0 + +ASSIG9, ASCOUT /TELL USER WHAT SHE GOT + CRLF + NOP + JMS ASSUNI + ASCOUT + ASSIND /TYPE "ASSIGNED" +C0260, 260 + JMP I COMEXA /AND LEAVE + +ASSOUT, 0 /TYPE CHARACTER IN AC OUT; + CIA /FOLLOWED BY SPACE + DCA ASSBUF /CALLED WITH - CHAR IN AC + ASCOUT + ASSBUF /TYPE STRING + NOP + JMP I ASSOUT + +ASSUNI, 0 /ROUTINE TO TYPE OUT UNIT NAME + GETWRD /FIRST FIGURE OUT WHAT SHE WANTED + JOBREG /PC CONTAINS ORIGINAL REQUEST + AND C0037 + DCA IOTP0 /DEVICE # + TAD IOTP0 /WHAT KIND OF DEVICE + TAD C7773 /-5 + SPA /DEVICE #'S .GE. 5 ARE DTA + JMP ASSG10 /NOT DTA + DCA IOTP0 /UNIT # + TAD IOTP0 + AND C7770 + SNA CLA + TAD C0007 + TAD ASSDK + JMS ASSOUT /TYPE "D SPACE" (or K space) + TAD IOTP0 + AND C0007 + TAD C0260 + CIA +ASSG11, JMS ASSOUT /TYPE "N SPACE"; N=0,1,...,7 + JMP I ASSUNI /RETURN + +ASSG10, TAD ASSTBZ /END OF ASSIGNMENT TABLE + DCA IOTP0 / +UNIT # -5 = PTR TO ASSTBL + TAD I IOTP0 + JMP ASSG11 /TYPE OUT DEVICE ASSIGNED + +ASSDK, -"K +C7773, 7773 +ASSTBZ, ASSD +ASSBUF, 0 + 240 + 0 + +*SUBR+1000 + +/SIXBIT TO ASCII CONVERT +/CALL JMS SIXASC +/ SIXBIT ADDR (TERMINATED BY 0 OR SIXTH CHAR) +/ ASCII BUFFER-1 +/ RETURN + +SIXM6, -3 +SIXCNT, 0 +SIXADR, 0 +SIX240=WHERLK +C0077, 77 + +SIXASC, 0 + SNA + TAD SIXM6 /COUNT + DCA SIXCNT + TAD I SIXASC + DCA SIXADR + ISZ SIXASC + TAD I SIXASC + DCA IX2 + ISZ SIXASC +SIXAS2, TAD I SIXADR + AND C7700 + SNA + JMP SIXAS1 + CLL RTR + RTR + RTR + TAD SIX240 + DCA I IX2 + TAD I SIXADR + AND C0077 + SNA + JMP SIXAS1 + TAD SIX240 + DCA I IX2 + ISZ SIXADR + ISZ SIXCNT + JMP SIXAS2 +SIXAS1, DCA I IX2 /CLEAR LAST WORD + JMP I SIXASC + +/RETURN PARAMETERS +/CALL RETPAR +/ RETURN + +RETPAR=JMS I REPAA + + +RETPA0, 0 + GETWRD + JOBLNK + IAC + DCA RETPA1 + CIF + BLT + DATFLD /SOURCE FLD +RETPA1, 0 /SOURCE ADDR + CHDF /DESTINATION FIELD + IOTP0 /DEST ADDR + -7 /-COUNT + STA /RETURN PARAMETER LBLOCK TO FREE STORAGE + TAD RETPA1 + CIF + RETBLK + CLA + JMP I RETPA0 +/SAVE/RESTORE BUFFER POINTERS +/CALL JMS RESTBP +/ RETURN + + +RESTBP, 0 + TAD COMDB0 + TAD C0004 + DCA IX1 + DATFLD + TAD I IX1 + DCA I SITCNT + TAD I IX1 + DCA I SIECNT + TAD I IX1 + DCA I SIBUF + CHDF + JMP I RESTBP + +SAVNAM, TAD SIJOB /PRGTBL INDEX=3*JOB + TAD SIJOB + TAD SIJOB + TAD PRGTBA /START OF PRGTBL-3 (NO ENTRY FOR JOB 0) + DCA IX1 + DATFLD + TAD IOTP3 /TRANSFER 3 WORD BLOCK + DCA I IX1 + TAD IOTP4 + DCA I IX1 + TAD IOTP5 + DCA I IX1 + CHDF + TAD C0003 /FILE 3 + DCA IOTP1 + JMP I LNGIOT /GO DO OPEN + +PRGTBA, PRGTBL-3-1 + + +HASITM, " ;" ;"H;"A;"S;" ;" ;0 + +/ROUTINE TO GET USER'S ACCOUNT # IN FORM M,N OR M +/CALL +/ ACCTIN +/ ILLEGAL CHARACTER IN STRING +/ RETURN WITH ACCOUNT # IN AC + +ACC0, 0 + DCA ACC1 /CLEAR # +ACC3, NUMBIN /GET ONE COMPONENT + -"7 + JMP ACC4 /COULDN'T DO IT + TAD ACC1 /ACCUMULATE INTO TOTAL + DCA ACC1 + TAD CHAR /TERMINATOR A COMMA + TAD ACCOMA + SNA CLA + JMP ACC2 /YES-- SO SHIFT NUMBER THUS FAR INTO LEFT HALF OF WORD + TAD ACC1 /NO- RETURN WHOLE # + ISZ ACC0 /SKIP TO INDICATE GOODNESS +ACC4, JMP I ACC0 + +ACC2, TAD ACC1 /SHIFT IT LEFT 6 PLACES + CLL RTL + RTL + RTL + DCA ACC1 /SAVE IT + COMGET /GET PAST THE OFFENDING COMMA + JMP ACC4 /NONE LEFT, BUT WE NEED ONE--ERROR + JMP ACC3 /GET NEXT PART OF NUMBER + +ACC1, 0 +ACCOMA, -", +WHERLK, 240 /SP L= + 314 + 275 + 0 + +*COMMAN + +LOGINE, JMS LOGIE0 + SIERR + JMP I COMEXA + +LOGIE0, 0 + TAD COMDB0 + SNA + JMP LOGIE1 + IAC + DCA IOTP0 + DATFLD + TAD I IOTP0 + AND C7700 + DCA I IOTP0 + CHDF +LOGIE1, RESDDB + DATFLD + CLA + TAD I COMRDB + SNA + JMP LOGIE2 + IAC + DCA IOTP0 + DCA I IOTP0 +LOGIE2, CDF + TAD I JOB /SET JOB = 0 + AND C7700 + DCA I JOB + TAD SIJOB + TAD JOBTBA /SET JOBTBL ENTRY=0 + DCA CHDFA + DATFLD + DCA I CHDFA + TAD I JOBDAT /RETURN JOB STATUS BLOCKS + CHDF + RETBKS + DATFLD + DCA I JOBDAT + CHDF + JMP I LOGIE0 +LOGUNA, UNACCT + +LOGINF, GETWRD + JOBREG+2 + SNA CLA + JMP LOGIF1 /HOW DID SHE TERMINATE COMMAND + JMS LOGIE0 + TAD LOGUNA + JMP I COMEXA +LOGIF1, ASCOUT /FINISH TYPING MESSAGES ON LOGIN +VERSMA, VERSIM /FIRST OUTPUT VERSION # + JMP I COMEXA + TAD SIJOB /NOW OUTPUT JOB# + JMS I LOGJPR /PRINT #JOB, ACCOUNT & CONSOLE# + ASCOUT + SPACES + JMP I COMEXA + TAD LOGFA2 /FUDGE COMRET TO GO TO LOGIF2 ON COMPLETION + DCA COMEXA / OF TIME EVALUATION + TAD SIJOB /PUT "LOGIN" IN PRGTBL FOR THIS JOB + TAD SIJOB + TAD SIJOB /PRGTBL INDEX IS 3*JOB# + TAD LOGPRG /START OF PRGTBL-3-1 + DCA IX1 + DATFLD + TAD LOGN5A /LO + DCA I IX1 + TAD LOGN5B /GI + DCA I IX1 + TAD LOGN5C /N + DCA I IX1 + JMP I .+1 /NOW GO DO TIME EVALUATION + TIME3 + +LOGPRG, PRGTBL-3-1 +LOGN5A, 5457 /LO +LOGN5B, 4751 /GI +LOGN5C, 5600 /N + + + +VERSIN, TAD VERSMA /TYPE OUT VERSION # + JMP I COMEXA + +LOGJPR, USRJPR /PRINT USER # +LOGFA2, LOGIF2 + + + + +IOTSET, GETTBA + JOBLNK + DCA CHDFA + TAD IOTP0 + DATFLD + DCA I CHDFA + CHDF + CALFIP /EXECUTE IOT +LOGME0, LOGE0 +LOGME1, LOGE1 +LOGME2, ILLREQ + JMP LOGINE /FIP ERROR RETURN + JMP LOGINF /OK RETURN +LOGIN, TAD SIJOB + SZA CLA + JMP LOGIN2 + TAD JOBTBA /JOB # AVAILABLE? + DCA IX4 + DATFLD + TAD JOBONC + DCA CHDFA +LOGIN1, TAD I IX4 + SNA CLA + JMP LOGIN4 /GOT A JOB # + ISZ CHDFA + JMP LOGIN1 +LOGIN3, TAD LOGME1 /CAPACITY EXCEEDED + SKP +LOGIN6, TAD LOGME2 /NUMBER REQUIRED + DCA IOTP0 + CDF + TAD I JOB + AND C7700 + DCA I JOB + TAD IOTP0 + JMP I COMERA +LOGIN2, TAD LOGME0 /CONSOLE IN USE + JMP I COMERA +LOGIN4, TAD JOBTBA /SAVE JOB # + CIA + TAD IX4 + DCA SIJOB + TAD SIJOB + CDF + TAD I JOB + DCA I JOB + CHDF + ACCTIN /GET ACCT # + JMP LOGIN6 /NOT A NUMBER + DCA IOTP2 + DATFLD + TAD IOTP2 + AND I OFFMSK + CHDF + SZA CLA + JMP I LOGI3A + TAD COMBFA /GET PASSWORD IN ASCII + TEXTS + CLA + ASCSIX /CONVERT TO SIXBIT + COMBUF-1 + IOTP3-1 + CDF + TAD I FRECNT + TAD LOGMIN + SPA CLA + JMP I LOGI3A + TAD SIJOB /PUT ENTRY IN TTYTBL + TAD TTYTBA + DCA IOTP7 + RESDDB + STA + TAD COMDB0 + DCA IX1 + TAD DEVTBA + CIA + TAD COMRDB + DATFLD + CLL RAR + DCA I IOTP7 + TAD I IOTP7 + TAD I COMDB0 + DCA I IX1 + TAD SIJOB + DCA I IX1 + STL RAR + DCA I IX1 + TAD I COMRDB + SZA + JMP LOGIN5 + TAD COMRDB + CHDF + GETFBL +LOGDDB, 0 +LOGIN5, DCA LOGDDB + DATFLD + TAD I IOTP7 + DCA I LOGDDB + ISZ LOGDDB + TAD SIJOB + DCA I LOGDDB + CHDF + TAD IX4 /INITIALIZE JOB STATUS + GETFBL + 0 + DCA IX1 + TAD IX1 + ISZ IX1 + GETFBL +LOGMIN, -STOMIN /MINIMUM FREE STORAGE FOR NEW JOB + GETFBL +OFFMSK, F1OFFJ + STA + TAD IX1 + DATFLD + DCA I JOBDAT +IFZERO CPU+EAE-22 < /8E WITH EAE: + CHDF + GETWRD /SC IS BUMPED OVER 2 BITS AND MODE AND GT ARE + JOBEAE+1 /IN BITS 10 AND 11 + CLA CLL CML RTL + DATFLD + DCA I IOTP7 > /SET TO MODE A, GT OFF. + DCA IOTP7 + CHDF + GETTBA + JOBLNK + GETFBL + NOP + DCA LOGPMA + DATFLD + ISZ I IX1 /SET JSWAIT IN STR1 + ISZ IX1 + ISZ I IX1 /SET JSWAIT IN WAIT MASK + CHDF + CIF + BLT + CHDF /SOURCE FLD + IOTPAR+1 /SOURCE ADDR + DATFLD /DEST FLD +LOGPMA, 0 /DEST ADDR + -10 /-COUNT + CALFIP +LOGI3A, LOGIN3 + +EXAMI1, CHDF + ASCOUT + CRLF + JMP I EXAMI5 + TAD IOTP3 + DCA NUMHO + TAD COMBFA + DCA IX2 + DCA IOTP4 +EXAMI3, TAD I IX2 + OCTASC + IOTPAR + ASCOUT + IOTP0 + JMP I EXAMI5 + ISZ NUMHO + SKP + JMP I EXAMI5 + ASCOUT + SPACE + JMP I EXAMI5 + JMP EXAMI3 + +EXAMI5, DEPOS3 + + + +*COMMAN+400 + +ASSTBL, . + -"R + -"P + -"I + -"L + -"C +ASSD, -"D +ASSK, -"K /****** THIS TABLE MUST BE FOLLOWED BY A POSITIVE NUMBER +ASSCAL, IOTSET +ASSBFA, -COMBUF + + SIERR + JMP ASSIGF +ASSIGN, JMS W2BUSY /SEE IF WAIT 2 IS BUSY + TAD COMBFA + TEXTS + DCA CHDFA /POINTER TO LAST CHAR IN AC + TAD ASSBFA /ONE CHARACTER ONLY? + TAD CHDFA + SZA CLA + JMP ASSIG4 /NO + TAD ASSTBL + DCA IOTP2 +ASSIG2, ISZ IOTP2 + TAD I IOTP2 + SMA + JMP ASSIG4-1 + TAD I CHDFA + SZA CLA /MATCH? + JMP ASSIG2 /NO + TAD I CHDFA /YES, RK05? + TAD ASSK + SZA + JMP ASSIGD /NO, CHECK FOR DECTAPE? + NUMBIN + -"7 + JMP ASSGK2 /WE MUST FIND A DRIVE +ASSGK1, DCA IOTP1 + TAD IOTP1 + AND C7774 + SZA CLA + JMP ASSIG4 + TAD C0015 + JMP ASSG3K + +ASSGK2, TAD ASSRK5 + DCA IX2 + TAD C7774 + JMS ASSSUB + AND C0003 + JMP ASSGK1 +ASSIGD, TAD C0007 /"K-"D + SZA CLA + JMP ASSIG3 /NO, MUST BE SOME OTHER DEVICE + NUMBIN /YES, GET UNIT # + -"7 + JMP ASSIG6 /SHE WANTS US TO CHOOSE FOR HER +ASSIG7, DCA IOTP1 + TAD IOTP1 /IS UNIT # .LE. 7? + AND C7770 + SZA CLA + JMP ASSIG4 /NO...ERROR +ASSIG3, TAD ASSTBL + IAC + CIA + TAD IOTP2 +ASSG3K, TAD IOTP1 + TAD C4000 +ACSET, DCA IOTP1 /SAVE AC IN BOTH USER'S AC AND PC + GETTBA + JOBREG + DCA CHDFA + TAD IOTP1 + DATFLD + DCA I CHDFA + ISZ CHDFA + ISZ CHDFA /NOW POINTS TO USERS AC + TAD IOTP1 + DCA I CHDFA + CHDF + JMP I ASSCAL + +C0015, 15 +C7774, 7774 + +ASSIG6, TAD ASSDTA /POSITION OF DTA IN DRVTBL-1 + DCA IX2 + TAD C7770 /ONLY EIGHT POSSIBILITIES + JMS ASSSUB + AND C0007 + JMP ASSIG7 + +ASSSUB, 0 + DCA IX1 + DATFLD + TAD I IX2 /PICK UP DEVTBL ENTRY + SNA CLA /AVAILABLE? + JMP ASSG60 /YES + ISZ IX1 /NO...TRY THE NEXT ONE + JMP .-4 +ASSIG8, CLA /NO MORE TO TRY + TAD ASSNON + JMP I COMEXA /"NO SUCH DEVICE" + +ASSG60, TAD IX1 /GOT ONE; UNIT # IN BITS 8-11 IF IX1 + JMP I ASSSUB + + + +ASSNON, NONSUC /NO SUCH DEVICE +ASSG9A, ASSIG9 +ASSDTA, DEVTBE+5-1 +ASSRK5, DEVTBE+5+10-1 + + + + SIERR + JMP RELF +RELEAS, JMP ASSIGN + +RELF, GETWRD + JOBREG+2 + SZA CLA +ASSIG4, TAD .+2 + JMP I COMEXA + ILLREQ + + +W2BUSY, 0 + GETWRD + JOBWMK+1 /GET JOB WAIT MASK 2 + SNA CLA /IS SHE WAITING FOR ANYTHING???? + JMP I W2BUSY /NO BACK TO WHATEVER + TAD WAITMS /WAIT FOR I/O COMPLETION + JMP I COMEXA +WAITMS, WAITIO + +ASSIGF, GETWRD /HOW DID WE FARE IN FIP + JOBREG+2 + SNA + JMP I ASSG9A /WE GOT IT TELL THE USER + SPA + JMP ASSIG8 /FAILED + DCA IOTP0 + ASCOUT + CRLF + NOP + TAD IOTP0 /OWNER + JMS I ASSUPN + ASCOUT + HASITM + NOP + JMS I ASSUNA + ASCOUT + CRLF + NOP + JMP I COMEXA + +ASSUPN, USRJPR +ASSUNA, ASSUNI + + + SIERR + JMP I IOTEND +FOPEN, NUMBIN /FILE # + -267 + JMP I COMERA + AND C0003 + DCA IOTP1 + JMS NULLNA + ASCSIX + COMBUF-1 + IOTP3-1 + ENDTST + JMP FOPEN1 + ACCTIN /ACCOUNT # + SKP + DCA IOTP2 +FOPEN1, GETTBA + JOBLNK + GETFBL + COMWAT /NONE, TRY LATER + DCA FOPEN2 + CIF + BLT + CHDF /SOURCE FLD + IOTPAR+1 /SOURCE ADDR + DATFLD /DEST FLD +FOPEN2, 0 /DEST ADDR + -10 /-COUNT + CALFIP + + SIERR + JMP I IOTEND +CLOSE, NUMBIN + -267 + JMP CLOSE2 + AND C0003 + CMA + DCA IOTP2 + STL + RAR + ISZ IOTP2 + JMP .-2 + DCA IOTP2 + TAD IOTP1 + AND IOTP2 + SNA CLA + TAD IOTP2 + TAD IOTP1 + DCA IOTP1 + JMP CLOSE +CLOSE2, TAD IOTP1 + SNA + TAD C4000 + JMP I SHTIOT + + + SIERR + JMP I IOTEND +CREATE, JMS NULLNA + ASCSIX + COMBUF-1 + IOTP1-1 + JMP I LNGIOT +NULLNA, 0 + TAD COMBFA + TEXTS /READ IN THE NAME + CIA + TAD COMBFA /WAS IT A NULL NAME + SNA CLA + JMP I COMERA /YES + JMP I NULLNA + + + SIERR + JMP I IOTEND +RENAME, NUMBIN /FILE # + -267 + JMP I COMERA + AND C0003 + DCA IOTP1 + JMS NULLNA + ASCSIX + COMBUF-1 + IOTP2-1 + JMP I LNGIOT + + SIERR + JMP I IOTEND +EXTEND, +REDUCE, NUMBIN /FILE # + -267 + JMP I COMERA + AND C0003 + DCA IOTP1 + NUMBIN + -271 + JMP I COMERA + DCA IOTP2 + JMP I LNGIOT + + + +C7637, 7637 + + SIERR + JMP I IOTEND +PROTEC, NUMBIN /FILE # + -267 + JMP I COMERA + AND C0003 + CLL RTL + RTL + RAL + DCA IOTP1 + NUMBIN + -267 + JMP I COMERA + AND C7637 + TAD IOTP1 + JMP I SHTIOT + + +*COMMAN+1000 + +ST3770, 3770 +ST7377, 7377 +STERF, -JSWAIT-JSERR-JSDEL-1 +STACHK, W2BUSY + +START, JMS I STACHK /CAN'T START IKF I/O IN PROGRESS + ENDTST /END OF COMMAND? + JMP START1 /YES +START0, GETTBA /NO, SET STARTING ADDRESS + JOBREG + DCA IOTP2 + ENDTST + JMP START2 /NO STARTING ADDRESS FOR "R" OR "RUN" ASSUME 0 + GETWRD + JOBSTS + AND ST7377 /CLEAR "R PRIV. BIT" + DATFLD + DCA I IOTP7 + CHDF + NUMBIN + -267 + JMP I COMERA /NON-ACTAL ADDRESS +START2, DATFLD + DCA I IOTP2 + ISZ IOTP2 /CLEAR LINK & AC + DCA I IOTP2 + ISZ IOTP2 + DCA I IOTP2 +IFZERO CPU+EAE-22 < + CHDF + GETWRD + JOBEAE+1 + RTR + STL RAL + CLL RAL + DATFLD + DCA I IOTP7 > /ZERO OUT GT, AND SET MODE A + CHDF + GETTBA /RESET STATUS + JOBSTS + DCA IX1 + DATFLD + DCA I IX1 + DCA I IX1 /THIS IS CLEARING OUT PART OF JOB STATUS BLOCK 1 + DCA I IX1 + DCA I IX1 + CHDF +START1, GETWRD /JSRUN=1 + JOBSTS + AND ST3770 /CLEAR ERROR FLAGS + JSSTOP + TAD C4000 + DATFLD + DCA I IOTP7 + ISZ IOTP7 + TAD I IOTP7 + AND STERF + IAC /JSWAIT=1 + DCA I IOTP7 + ISZ IOTP7 + ISZ IOTP7 + CLL CLA CMA RAL + AND I IOTP7 + IAC + DCA I IOTP7 + CHDF + JMP I COMEXA + +/ +JOBS10=C0010 + +WHERE, JMS WHEPRT /ANSWER TO WHERE COMMAND + JMP I COMEXA + +WHEPRT, 0 + TAD WHEVEC /SET POINTER TO WHLST + DCA IX2 + TAD JOBS10 /INITIALIZE WHERE3 TO SWITCH REG + DCA WHERE3 + +WHERE1, TAD I IX2 /GET TEXT ADDRESS + SNA + JMP I WHEPRT /DONE + DCA WHERE2 + ASCOUT /PRINT TEXT +WHERE2, 0 + NOP + GETWRD /GET JSB WORD +WHERE3, 0 + JMP I IX2 /JUMP TO PROCESS JSB WORD +WHEVEC, WHLST-1 + +WHERE4, OCTASC /PRINT 4 OCTAL DIGITS + COMBUF-1 + ASCOUT + COMBUF + NOP +WHERE5, ISZ WHERE3 /GO TO NEXT JSB WORD + JMP WHERE1 + +WHERE6, SPA CLA + IAC + TAD K0260 + DCA I WHACA /SAVE WHERE IT WILL BE PRINTED + JMP WHERE5 + +IFZERO CPU+EAE-22 < /ON 8E WITH EAE: +WHERE7, RTR /GT FLAG IFF BIT 10=0, 11=0 + SMA SNL CLA + IAC + TAD K0260 + DCA I GT /SAVE WHERE IT WILL BE PRINTED + CML RAL /LINK HAS EAE MODE, SET FOR MODE A + TAD C0301 + DCA I WHSCA /SAVE WHERE IT WILL BE PRINTED + JMP WHERE1 +GT, WHERSC+5 + +WHERE8, RAR CLL /8E WITH EAE: SC IS BUMPED 2 BITS + RAR CLL + JMP WHERE4 > + + +WHLST, WHERSW + JMP WHERE4 + WHERPC + JMP WHERE4 + WHERLK + JMP WHERE6 +WHACA, WHERAC + JMP WHERE4 +IFZERO MQREG-1 < + WHERMQ + JMP WHERE4 +IFZERO CPU+EAE-22 < + WHERGT + JMP WHERE7 > +IFNZRO EAE < +WHSCA, WHERSC +IFZERO CPU-2 +IFNZRO CPU-2 > > + 0 + +C0301, 301 +K0260, 260 + +*4200 +/TEST FOR END OF COMMAND STRING +/CALL ENDTST WITH CHARACTER IN CHAR +/ END RETURN +/ NOT END + +ENDTST=JMS I ENDTSA + +ENDTS0, 0 + TAD ENDTBA + DCA IX5 + TAD I IX5 + SNA + JMP .+5 + TAD CHAR + SZA CLA + JMP .-5 + SKP + ISZ ENDTS0 + JMP I ENDTS0 + +ENDTBA, . + -273 /; + -272 /: + -215 /CR + -212 /LF + -213 /VT + -214 /FF + 0 + + +/GET USER STATE WORD +/CALL GETWRD +/ RELATIVE ADDRESS +/ RETURN WITH USER WORD IN AC, ADDRESS IN IOTP7 + +GETWRD=JMS I Z GETWRA + +GETWR0, 0 + TAD I GETWR0 + DCA GETWR1 + ISZ GETWR0 + GETTBA +GETWR1, 0 + DCA IOTP7 + DATFLD + SZL + TAD I IOTP7 + CHDF + JMP I GETWR0 + +/ROUTINE TO FORCE A STRING INTO AN INPUT BUFFER +/USER MUST BE LOGGED IN AS ACCOUNT 1 OR 3 TO SUCCEED + +FORSE, JMS I ACCNT1 /IS THIS ACCOUNT # 1 OR 3 + NUMBIN /GET CONSOLE # + -"7 + JMP I COMERA /BAD CONVERSION, QUIT + CLL RAL /*2 FOR DEVTBL INDEX + TAD DEVTBA /+START OF DEVTBL + DCA FORDEV + TAD FORDEV + TAD FOR5 + SMA CLA + JMP I COMERA + DATFLD + TAD I FORDEV /DOES SHE HAVE A DDB? + CHDF + SZA CLA + JMP FOR0 /YES + TAD FORDEV /NO; GET ONE + CIF + GETDDB + JMP I COMERA /NONE TO GET- NEVER HAPPENS + DATFLD + TAD I FORDEV + DCA BRO8 + TAD C1000 + DCA I BRO8 + CHDF +FOR0, JMS I FORSTG /GET INPUT STRING +FOR7, TAD I IOTP0 + TAD FORFOR /CHECK FOR FORM FEED + SNA + JMP I COMEXA /IT IS; SO EXIT + TAD FORARW /NO, MAYBE IT'S A ^? + SZA CLA + JMP FOR2 + ISZ IOTP0 /IT IS SO MAKE THE NEXT CHARACTER A CONTROL CHARACTER + TAD C0100 +FOR2, CMA + AND I IOTP0 /GET CHARACTER + SNA /END OF STRING? + JMP I COMEXA /YES, FINISH UP + CIF CDF + DCA I TTCHAR /SET UP GIR CALL + CHDF /BACK UP HERE, SO GIR WILL RETURN PROPERLY + KEY /PUSH CHARACTER THRU PROPER CHANNELS +BROAD4, +FORDEV, 0 /DEVTBL ADDRESS + JMP FOR3 /DIDN'T FIT FOR SOME REASON + ISZ IOTP0 /NEXT CHARACTER + JMP FOR7 +FOR3, BUFDEL /DELETE FORCE COMMAND + TAD FOR6 + DCA COMFLG /PRINT ?? AT END OF FAILED TEXT STRING + TAD IOTP0 + JMP I COMERA /EXIT; PRINT THE PORTION OF THE COMMAND THAT DIDN'T FIT +FOR5, -DEVTBE +FOR6, 167 +FORFOR, -"L+100 /-FORM FEED +FORARW, "L-100-"^ +ACCNT1, ACTNM1 + + + +/ROUTINE TO TYPE A MESSAGE ON EVERYBODY'S CONSOLE AT ONCE +/THE USER MUST BE LOGGED IN UNDER ACCOUNT 1 OR 3 + +BROAD, JMS I ACCNT1 /ONLY ACCOUNT 1 OR 3 + JMS I FORSTG /GET STRING INPUT + TAD BROLN /INITIALIZE FOR ALL CONSOLES + DCA IOTP3 + TAD DEVTBA /GET POINTER TO FIRST OUTPUT DDB + IAC + DCA IOTP4 + DCA BROAD4 /TO REMEMBER WHETEHR WE SUCCEED + +BROAD3, JMS BRO8 /PUSH STRING CR-LF STARS THRU + STARS + JMS BRO8 /OUTPUT MESSAGE + VERBRK + JMS BRO8 /CR-LF + CRLF +BROAD2, ISZ IOTP4 /ON TO NEXT CONSOLE + ISZ IOTP4 + ISZ IOTP3 /ARE WE DONE? + JMP BROAD3 /NO, CONTINUE + TAD BROAD4 + SZA CLA /DID ANY FAIL? + TAD BROBUS /YES + TAD BROOK + JMP I COMEXA + +BRO8, 0 + TAD I BRO8 + DCA .+3 + TAD IOTP4 + ASCOUT + 0 + ISZ BROAD4 + ISZ BRO8 + JMP I BRO8 + +BROBUS, BUSY-OK +BROOK, OK +BROLN, -NULINE-1 +FORSTG, STRNG0 + +*COMMAN+1400 +FSIXAS, SIXASC +FDECOU, DECOUT + + SIERR + JMP F2 +F, NUMBIN /INTERNAL FILE # + -267 + JMP I COMERA + AND C0003 + DCA IOTP1 + JMP I LNGIOT +F2, RETPAR + ASCOUT + CRLF + NOP + TAD IOTP1 /ACCT # + SNA + JMP I COMEXA /FILE NOT OPEN + OCTASC + COMBUF-1 + JMS FOUT + STA + TAD IOTP1 + SNA CLA + JMP F4 /DON'T GIVE AWAY A PASSWORD + JMS I FSIXAS /FILE NAME + IOTP2 + COMBUF-1 + JMS FOUT + TAD IOTP5 /PROTECTION + CLL RTL +F3, RTL + RTL + JMS USRPR + ASCOUT + SPACE + JMP I COMEXA + TAD IOTP5 + JMS USRPR + ASCOUT + SPACE + JMP I COMEXA + STA + TAD IOTP1 + SNA CLA + JMP I COMEXA /UFD; SIZE NOT RETURNED + TAD COMBFA + DCA IX1 + TAD IOTP6 /SIZE + JMS I FDECOU + DCA I IX1 + JMS FOUT + JMP I COMEXA + +F4, TAD IOTP5 /LOGOUT QUOTA + CLL RAL + RTL + JMP F3 /SHIFT AN EXTRA PLACE + +FOUT, 0 + ASCOUT + COMBUF + JMP I FOUT + ASCOUT + SPACE + JMP I FOUT + JMP I FOUT + + +USER, ASCOUT /TELL USER WHERE SHE IS + CRLF + JMP I COMEXA /NO ROOM, SO SKIP IT + ENDTST /THIS JOB? + JMP USER1 /YES + NUMBIN /NO; WHAT JOB THEN? + -267 /OCTAL JOB # +USER1, TAD SIJOB /ASSUME THIS JOB +USER2, SPA + CIA + DCA IOTP0 /SAVE JOB # + TAD IOTP0 /VALID JOB #? + TAD USEMAX /-HIGHEST JOB # - 1 + SMA CLA + JMP I COMERA /NO SUCH JOB + DATFLD /IS THE JOB LOGGED IN? + TAD IOTP0 + TAD JOBTBA + DCA IOTP1 /POINTER TO JOBTBL + TAD I IOTP1 /ADDRESS OF JOB STATUS + SNA CLA + JMP I COMEXA /NOT LOGGED IN; SAY NOTHING + CHDF /BACK UP HERE + TAD IOTP0 /JOB # + JMS USRJPR /PRINT "JOB ACCOUNT & CONSOLE" + JMP I COMEXA + +USEMAX, -JOBMAX-1 + +USRJPR, 0 /PRINT "JOB NN" + DCA IOTP7 /SAVE # + ASCOUT + JOBNO + JMP I USRJPR /NO ROOM + TAD IOTP7 /JOB # + JMS USRPR /PRINT # + TAD IOTP7 + JMS I USRACC /FIND HER ACCOUNT NUMBER + ASCOUT + ACCBUFF + JMP I USRJPR + ASCOUT + KSPACE + JMP I USRJPR + DATFLD + TAD IOTP7 /GET HER TTY # + TAD TTYTBA /POINTS TO ENTRY IN TTYTBL + DCA IOTP1 + TAD I IOTP1 /GET TTY # + CHDF + JMS USRPR + JMP I USRJPR +USRACC, GETACC + +USRPR, 0 /PRINT OCTAL # AS MM + OCTASC + COMBUF-1 /SNEAKY WAY TO SUPPRESS LEADING 00 + ASCOUT + COMBUF+2 + NOP + JMP I USRPR + +*COMMAN+1600 + +R4A, R4 +R6A, R6 +R6B, COMEXT +STARTA, START0 +RRFILE, RFILE +RLSA, RLS +RUNLOD, LOAD +RUNSAV, SAVE1 +SETPRA, SETPRV + + JMP RERR + JMP R1 +RUN, JMP I RUNLOD +RERR, SIERR + JMP I COMERA + + + JMP RERR + JMP R1 +R, JMS I SETPRA /SET THE R PRIVILEGE BIT + STL RTL /AC=LIBACT + JMP I RUNSAV + +R1, GETWRD /RETURN FROM OPEN + JOBREG+2 + SZA CLA + JMP I IOTEND + GETTBA + JOBLNK + GETFBL + COMWAT + DCA I R4A + TAD R6A + DCA EXITA + JMP I STARTA +R6, TAD R6B /RESTORE NORMAL EXIT + DCA EXITA + TAD C0003 + TAD C4000 + DCA IOTP2 /FILE 3 + STA + DCA IOTP4 /CORE ADDRESS + TAD RRFILE + DCA IOTP0 + IAC /CALL RLS WITH NONZERO AC FOR R AND RUN + JMS I RLSA + + TAD SIJOB + CORES + SZA + JMP R8 + CORES + SZA + JMP R8 + ASSCOR + TAD C0122 /USER MODE, FIELD 2 +R7, CIF CDF + DCA I RL2SF /FIELD OF JOB + TAD SIJOB + JMP I .+1 + RUNFI + +R8, DCA NUMHO /SAVE FIELD INFO + TAD R6B /RESTORE EXIT + DCA EXITA + RELCOR + TAD NUMHO + AND C0007 + TAD CORTBA + DCA IOTP0 + CDF + TAD SIJOB + DCA I IOTP0 + TAD NUMHO + JMP R7 +RL2SF, L2SF +C0122, 122 + + + + JMP RERR + JMP R1 +SYSTAT, TAD SYSMA /SYSTAT COMMAND + DCA IX1 /POINTER TO FILE NAME + JMS I SETPRA /SET THE R PRIVILEGE BIT + TAD I IX1 /PUT "SYSTAT" OR "LOGOUT" IN IOTP3,4,5 + DCA IOTP3 + TAD I IX1 + DCA IOTP4 + TAD I IX1 + DCA IOTP5 + STL RTL /AC=LIBACT + DCA IOTP2 + JMP I .+1 + SAVNAM /GO SAVE NAME; THEN OPEN FILE + +SYSMA, SYSM-1 + +SWFILE, WFILE + + JMP RERR + JMP SAVE2 +SAVE, JMP I .+1 + SAVE3 +SAVE2, GETWRD + JOBF3 /WRITE PROTECTED? + TAD C0002 + DCA IOTP0 + DATFLD + TAD I IOTP0 /POINTS TO PROTECTION WORD IN FILE CONTROL BLOCK + AND C0004 + CHDF + SZA CLA + JMP SAVPRO /WRITE PROTECTED + TAD SWFILE + JMP I .+1 + LOAD2 + +SAVPRO, TAD SFMS + JMP I COMERA + +SFMS, FM6000 /"PROTECTION VIOLATION" + +IFZERO CPU+EAE-22 < +WHERGT, 240 /SP MODE= + 315 + 317 + 304 + 305 + 275 + 0 +WHERSC, 240 /SP SP GT=X SC= + 240 + 307 + 324 + 275 + 330 + 240 + 323 + 303 + 275 + 0 > +IFZERO CPU+EAE-20 < +WHERSC, 240 /SP SC= + 323 + 303 + 275 + 0 > + +*COMMAN+2003 + +LOADER, RERR +LRFILE, RFILE +LOADUA, LOADUS +SAVCHK, W2BUSY + + JMP I LOADER + JMP LOAD1 +LOAD, +SAVE3, ACCTIN + SKP +SAVE1, DCA IOTP2 /ACCOUNT # + ENDTST + JMP I COMERA + JMS I SAVCHK /SEE IF I/O IN PROGRESS + TAD COMBFA + TEXTS + CLA + ASCSIX + COMBUF-1 + IOTP3-1 /FILE NAME + JMP I .+1 /SAVE PROGRAM NAME IN PRGTBL + SAVNAM + +LOAD1, TAD LRFILE +LOAD2, DCA IOTP0 + GETWRD /ERROR? + JOBREG+2 + SZA CLA + JMP I IOTEND /YES + GETTBA /NO, SET UP RFILE OR WFILE + JOBLNK + GETFBL + COMWAT + DCA R4 + CLL CML RTR /AC=2000 + TAD C0003 /FILE # + DCA IOTP2 + STA /DEFAULT CORE ADDRESS + DCA IOTP4 + ENDTST /ANY PARAMETERS? + JMP LOAD4 /NO + NUMBIN /YES, FILE ADDRESS 02 CAN BE 6 DIGITS! + -267 + JMP LOAD4 + DCA IOTP5 /LEAST SIGN, 12 BITS + TAD NUMHO + DCA IOTP1 /HIGH ORDER + ENDTST + JMP LOAD4 + NUMBIN /STARTING CORE ADDRESS + -267 + JMP LOAD4 + TAD IOTP4 + DCA IOTP4 + ENDTST + JMP LOAD4 + NUMBIN /LAST CORE ADDRESS + -267 + CLA CMA + CIA + TAD IOTP4 + DCA IOTP3 /WORD COUNT +LOAD4, TAD SIJOB /SET UP XFER BLOCK TO LOAD USER AREA + TAD LOADM1 + TAD SWBASE + CHDF + CLL RTL + DCA LOADEX + TAD LOAD5A + DCA EXITA + JMP I COMEXA +LOAD5, JMS RLS + TAD SIJOB + CORES + SZA + JMP I LOAD6A /JOB IS IN CORE + TAD LOADUB + JMP I LOADUA + +LOAD6A, R8 +LOAD5A, LOAD5 +LOADUB, .+1 + DMAR +LOADEX, 0 + 10 + 0 +LOADM1, -1 + 0 + OVERLA + READFI + +RJSF3, JSF3+1 +C5600, 5600 + +RLS, 0 + SNA CLA /CALLED FROM RUN? + JMP RLS1 /NO + GETWRD /YES; INITIALIZE JOB STATUS + + JOBSTS + AND C5600 /CLEAR ERROR FLAGS + DATFLD + DCA I IOTP7 /POINTS TO STR0 + ISZ IOTP7 + TAD I IOTP7 /GET STR1 + AND C0100 /SAVE DELIMITER BIT IF SET + IAC /TURN ON THE DUMMY WAIT BIT + DCA I IOTP7 /POINTS TO STR1 + ISZ IOTP7 + DCA I IOTP7 /POINTS TO JOBSTB +RLS1, CHDF + GETWRD /F3 WAIT + JOBWMK + CLA + TAD RJSF3 + DATFLD + DCA I IOTP7 + ISZ IOTP7 /CLEAR WAIT MASK 2 AS WELL + DCA I IOTP7 + TAD SIJOB + CIF CDF + DCA I SIREG + TAD I SIREG + DCA I JOB + CHDF + BLT + 6221 /SOURCE FIELD (ALWAYS 2) + IOTP0 + DATFLD +R4, 0 + -6 + JMP I RLS + +*COMMAN+2200 + +C7766, 7766 +DEPO3A, DEPOS3 + +DEPOSI, NUMBIN /STARTING ADDRESS + -267 + JMP I COMERA + DCA IOTP5 /LOW ORDER DISC ADDRESS + TAD C7766 + DCA IOTP1 + TAD COMBFA + DCA IX1 +DEPOS2, NUMBIN /CONVERT ARGUMENT LIST + -267 + JMP DEPOS1 + DCA I IX1 + ISZ IOTP1 + JMP DEPOS2 +DEPOS1, TAD IX1 + CIA + TAD COMBFA + SNA + JMP I COMERA /NOTHING TO DEPOSIT + DCA IOTP3 /-WORD COUNT + TAD SIJOB + CORES + SZA + JMP DEPOS4 + TAD DEPO3A + +EXAMI2, DCA SI1 /RETURN ADDRESS + TAD COMBFA + DCA IOTP4 /CORE ADDRESS-1 + CLA CMA /-1 IN AC + TAD SIJOB + TAD SWBASE + CLL RTL + DCA IOTP1 /DISC EXTENSION + TAD C0010 + DCA IOTP2 + TAD DEPEX2 + DCA IOTP6 + DCA IOTP7 + TAD IOTP3 /ARE WE GOING INTO NEXT JOB'S DISK IMAGE? + CLL CMA /WORD COUNT -1 + TAD IOTP5 /WC+ADDRESS>7777? + SNL CLA + JMP I DEPEX /OK TO PROCEED + TAD COMA /RESET DISPATCH ADDRESS + DCA SI1 + JMP I COMERA /EVIL ONCE AGAIN AVERTED +DEPEX, DEPEXA +DEPEX2, OVERLA + +/RETURN AFTER READING OR WRITING USER AREA + +DEPOS3, TAD COMA + DCA SI1 + JMP I COMEXA + +COMF, CHDF + +COMA, COM +C0070, 70 + +DEPOS4, AND C0070 + TAD C6201 + DCA DEDEF + TAD IOTP5 + DCA DEDEA + TAD COMF + DCA DESRF + TAD BUFFER + DCA DESRA + JMS DEMOVE + JMP I COMEXA + +DEMOVE, 0 + TAD IOTP3 + DCA DECNT + CIF + BLT +DESRF, 0 /FROM FLD +DESRA, 0 /FROM ADDR +DEDEF, 0 /TO FLD +DEDEA, 0 /TO ADDR +DECNT, 0 /-COUNT + JMP I DEMOVE + +EXAMIN, NUMBIN /STARTING ADDRESS + -267 + JMP I COMERA + DCA IOTP5 + NUMBIN + -271 + IAC + SNA + IAC + CIA + DCA IOTP3 + TAD IOTP3 /IS COUNT WAY OUT OF LINE? + SMA CLA + JMP I COMERA /YES + TAD IOTP3 + CIA + TAD C7766 + SMA SZA CLA + JMP I COMERA + TAD SIJOB + CORES + SZA + JMP EXAMI4 + TAD EXAM1A + JMP EXAMI2 + +EXAM1A, EXAMI1 +BUFFER, COMBUF + +EXAMI4, AND C0070 + TAD C6201 + DCA DESRF + TAD IOTP5 + DCA DESRA + TAD COMF + DCA DEDEF + TAD BUFFER + DCA DEDEA + JMS DEMOVE + JMP I EXAM1A + + +FORJOB, 240 + 306 /F + 317 /O + 322 /R + 240 + 312 /J + 317 /O + 302 /B + 240 + 0 + +*COMMAN+2400 + + +TICLK2, INCLK2 +TICLK1, INCLK1 +JOBRSA, JOBRES /RESTORE JOBDAT + +TIME, ENDTST /ARGUMENT? + JMP TIME1 /NO, THIS JOB + NUMBIN + -267 + JMP TIME1 + DCA IOTP0 /LEGAL JOB #? + TAD IOTP0 + TAD JOBONC + SMA SZA CLA + JMP I COMERA /NO + TAD IOTP0 /JOB 0? + SNA CLA + JMP TIME3 /YES, TIME OF DAY + DATFLD + TAD IOTP0 + TAD JOBTBA + DCA IOTP0 + TAD I IOTP0 + SNA /LOGGED IN? + JMP TIME5 /NO + DATFLD + DCA I JOBDAT + +TIME2, CHDF + GETWRD + JOBRTM + DCA NUMHO+1 + GETWRD + JOBRTH /HI ORDER TIME +TIME4, DCA NUMHO + JMS PTIME + JMS I JOBRSA /RESTORE JOBDAT IF ALTERED + TAD COMBFA + IAC +TIME5, CHDF + JMP I COMEXA + +TIME1, TAD SIJOB + SZA CLA + JMP TIME2 + +TIME3, CDF + TAD I CLK1 + CLL + TAD TICLK1 + DCA NUMHO+1 + SZL + IAC + TAD I CLK2 + TAD TICLK2 + CHDF + JMP TIME4 + +/ROUTINE TO CONVERT VALUE IN NUMHO AND NUMHO+1 (IN TICKS) +/TO HOURS, MINUTES AND SECONDS. +/THE RESULT IS STORED IN COMBUF AS HH:MM:SS + +PTIME, 0 /ENTER WITH AC=0 + TAD COMBFA /START OF OUTPUT BUFFER + DCA IX1 + TAD PTABX /SET UP TABLE FETCH (LOW) + DCA PTIMX + TAD PTABX1 /SET UP TABLE FETCH (HIGH) + DCA PTIMX1 + + TAD PTFORM /FORMAT MASK + DCA PTCONT + +PTLOOP, TAD PT0260 /INITIALIZE DIGIT COUNTER + DCA PTDIGI + CLL /DIVIDE LOOP + TAD NUMHO+1 /DOUBLE PRECISION ADD +PTIMX, NOP /(TAD PTAB1+N) + DCA NUMHO+2 /SAVE LOW ORDER REMAINDER + RAL /GET OVERFLOW + TAD NUMHO /ADD HIGH ORDER +PTIMX1, NOP /(TAD PTAB+N) + SNL + JMP PTIMA /DIVIDE OVERFLOW + DCA NUMHO /RESTORE REMAINDER + TAD NUMHO+2 /LOW ORDER RESTORE + DCA NUMHO+1 + ISZ PTDIGI /COUNT THIS SUBTRACTION + JMP PTIMX-2 /CONTINUE LOOP + + + +PTIMA, ISZ PTIMX /ADVANCE TABLE FETCH + ISZ PTIMX1 /ADVANCE TABLE FETCH + CLA /CLEAR OUT REMAINDER + TAD PTDIGI + DCA I IX1 /STORE ASCII DIGIT + TAD PTCONT + SNA /TEST FOR ALL DONE + JMP I PTIME /EXIT + RAL CLL /TEST FOR COLON PRINT + DCA PTCONT /RESTORE FORMAT + SZL /PRINT COLON? + JMP PTLOOP /CONTINUE LOOP + TAD PTCOLN /ADD COLON TO OUTPUT + DCA I IX1 + JMP PTLOOP /CONTINUE LOOP + + + +PTABX, TAD PTAB1 /TABLE FETCH LOW +PTABX1, TAD PTAB /TABLE FETCH HIGH +PTFORM, 5200 /FORMAT FOR OUTPUT +PT0260, 260 +PTCOLN, 272 /ASCII COLON + +PTDIGI, 0 /ASCII DIGIT BUILT HERE +PTCONT, 0 /LOOP CONTROL +C0005, 5 + +/SUBROUTINE TO SET R PRIVILEGE BIT +/SET BY R COMMAND, AND IN ADDITION K, LOGOUT, AND SYSTAT COMMANDS +/ALLOWS PRIVILEGED IOT'S; IE LOGOUT, PEEK + +SETPRV, 0 + GETWRD + JOBSTS + DATFLD + TAD C0400 /PRIVILEGE BIT + DCA I IOTP7 /SAVE IT + TAD C0005 + TAD IOTP7 + DCA IOTP7 + DCA I IOTP7 /CLEAR HER RESTART ADDRESS + CHDF + JMP I SETPRV /AND RETURN + +SYSM, 6371 /SY + 6364 /ST + 4164 /AT + + +/DOUBLE PRECISION WORDS...HIGH ORDER BITS +PTAB, 7650 /-TICKS PER 10 HRS + 7767 /-TICKS PER 1 HR + 7776 /-TICKS PER 10 MIN + 7777 /-TICKS PER 1 MIN + 7777 /-TICKS PER 10 SEC + 7777 /-TICKS PER 1 SEC + +/DOUBLE PRECISION WORDS...LOW ORDER BITS +PTAB1, 0700 /-TICKS PER 10 HRS + 1540 /-TICKS PER 1 HR + 4220 /-TICKS PER 10 MIN + 6650 /-TICKS PER 1 MIN + 7634 /-TICKS PER 10 SEC + 7766 /-TICKS PER 1 SEC + + *5600 + +/ROUTINE TO CONVERT CONTENTS OF AC INTO DECIMAL CHARACTER STRING +/STORE STRING USING IX1 AS BUFFER POINTER +/ONLY DECIMAL VALUES <4000 (DECIMAL) ARE VALID + +DECOUT, 0 + DCA BCDI /SAVE VALUE + TAD BCDC + DCA BCDP /RESET TABLE POINTER + CLL CMA RTL /AC:=-3 + DCA NUMHO /SET DIGIT COUNTER + DCA JOBRES /CLEAR OUTPUT FLAG + TAD BCDT + DCA BCDN /SET MAGIC BIT + TAD BCDI /RECALL CURRENT VALUES + CLL +BCDP, TAD BCDTB /SUBTRACT BIT VALUE + SZL /SKIP IF TOO LARGE + DCA BCDI /SAVE NEW VALUE + CLA + TAD BCDN /RECALL CONSTRUCTION WORD + RAL + ISZ BCDP /ADVANCE TABLE POINTER + SNL /SKIP IF CHARACTER ASSEMBLED + JMP BCDP-3 /KEEP AT IT + DCA BCDN /SAVE CURRENT ASSEMBLY WORD + TAD BCDN + AND DEC17 /MASK OUT BCD CHARACTER + SZA /ZERO SUPPRESSION? + JMP .+4 /NON ZERO- PROCEED + TAD JOBRES /PRECEDING OUTPUT? + SNA CLA + JMP .+4 /NO; DON'T TYPE THE 0 + TAD DEC260 + DCA I IX1 /STORE IN BUFFER + ISZ JOBRES /SET OUTPUT FLAG + ISZ NUMHO /3 DIGITS ASSEMBLED? + JMP BCDP-2 /NO, REPEAT + TAD BCDI /NOW GET LAST DIGIT + TAD DEC260 /CONVERT TO ASCII + DCA I IX1 /STORE IN BUFFER + JMP I DECOUT /RETURN + +DEC260, 260 +DEC17, 17 +BCDC, TAD BCDTB +BCDI, 0 +BCDN, 0 +BCDT, 2104 /MAGIC BITS +BCDTB, -3720 /-2000 DECIMAL + -1750 /-1000 DECIMAL + -1440 /-800 + -0620 /-400 + -0310 /-200 + -0144 /-100 + -0120 /-80 + -0050 /-40 + -0024 /-20 + -0012 /-10 + + +/ROUTINE TO RESTORE JOBDAT IF IT HAS BEEN KLUGED + +JOBRES, 0 + TAD SIJOB + SNA /IS SHE LOGGED IN? + JMP .+7 /NO; JOBDAT IS NOT RELEVANT + DATFLD /YES + TAD JOBTBA /START OF JOBTBL + DCA IOTP7 + TAD I IOTP7 + DCA I JOBDAT /NOW JOB AND JOBDAT AGREE + CHDF + JMP I JOBRES /RETURN + +/ROUTINE TO SEE IF A CONSOLE IS "ACTIVE" +/ACTIVE IS DEFINED AS HAVING A NONZERO +/FILL OR EMPTY POINTER ON INPUT OR OUTPUT SIDES +/CALL TAD DEVTBL POINTER +/ JMS TALK1 +/ RETURN IF ACTIVE +/ RETURN IF NOT ACTIVE +/ IF INPUT DDB DOES NOT EXIST, CONSOLE IS INACTIVE + +TALK1, 0 + DCA IOTP2 /DEVTBL POINTER + DATFLD + TAD I IOTP2 /DDB ADDRESS + SNA /EXISTING? + JMP TALK12 /NOT YET + TAD C0004 + DCA IOTP2 /POINTS TO FILL PTR + TAD I IOTP2 /FILL PTR + SZA CLA / =0? + JMP TALK13 /NO - SEE IF SHE IS UNDER A PRIVILEGED ACCOUNT +TALK12, ISZ TALK1 /YES; CONSOLE IS THUS INACTIVE + JMP I TALK1 /RETURN + +TALK13, CHDF + GETWRD + JOBSTS + AND C0200 + SZA CLA + JMP TALK12 /SHE IS - LET HER DO THE TALK + JMP I TALK1 + +ACTNM1, 0 + GETWRD /CHECK ACCOUNT # + JOBACC + TAD P7777 + CLL RTR /ALLOW EITHER ACCOUNT 1 OR ACCOUNT 3; NOONE ELSE!!!! + SZA CLA + JMP I COMERA /NOT ACCOUNT #; ERROR + JMP I ACTNM1 + +COMLGM, 314 /L + 317 /O + 307 /G + 311 /I + 316 /N + 240 + 320 /P + 314 /L + 305 /E + 301 /A + 323 /S + 305 /E + 0 +ILLREQ, 311 /I + 314 /L + 314 /L + 305 /E + 307 /G + 301 /A + 314 /L + 240 + 322 /R + 305 /E + 321 /Q + 325 /U + 305 /E + 323 /S + 324 /T + 215 + 212 + 0 +QQEST, 277 /? + 277 /? + 0 +PERIOD, 256 /. + 0 + +*CTABLE + + 0 +COMBUF, 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + +FIPFLS=PRPER+USAVE+UREST + +COMTBL, CL1 /LOGIN O1 S1; + NOLOG+PRPER+PRCRLF /IOTP2:=O1 ACCOUNT # + LIN /IOTP3-4:=S1 PASSWORD + LOGIN /RESP: VERSION # HR:MIN + -314 /. + -317 + -307 + -311 + -316 +CL1, CL2 /LOGOUT; + USERM+2 /RESP: . + OPEN /. + LOGOUT + -314 + -317 + -307 + -317 + -325 + -324 +CL2, CL3 /TIME; + NOLOG+PRPER+PRCRLF /RESP: HR:MIN + 0 /. + TIME + -324 + -311 + -315 + -305 +CL3, CL4 /ASSIGN L1 O1; + FIPFLS+2 /AC0-5:=DEVICE # OF L1 + ASD /AC6-11:=O1 UNIT # + ASSIGN /ERROR: AC NOT 0 + -301 /RESP: + -323 /. + -323 + -311 + -307 + -316 +CL4, CL5 /RELEASE L1 O1; + FIPFLS+2 /SAME AS ASSIGN + REL + RELEAS + -322 + -305 + -314 + -305 + -301 + -323 + -305 +CL5, CL7 /TALK C1 S1 + NOLOG+PRPER+PRCRLF /C1=CONSOLE TO TALK TO + 0 /S1=MESSAGE TO TRANSMIT + TALK /RESP: BUSY IF TARGET TTY IS ACTIVE + -"T / OTHERWISE CRLF + -"A + -"L + -"K +CL7, CL8 /OPEN O1 S1 O2; + FIPFLS+2 /IOTP1:=O1 INTERNAL FILE # + OPEN /IOTP2:=O2 ACCOUNT # + FOPEN /IOTP3-5:=S1 FILE NAME + -317 /ERROR: AC NOT 0 + -320 /RESP: + -305 /. + -316 +CL8, CL9 /CLOSE S1; + FIPFLS+2 /ACI:=1 I=0,1,2,3 + CLOS /ERROR: AC NOT 0 + CLOSE /RESP: + -303 /. + -314 + -317 + -323 + -305 +CL9, CL10 /CREATE S1; + FIPFLS+2 /IOTP1-3:=S1 FILE NAME + CRF /ERROR: AC NOT 0 + CREATE /RESP: + -303 /. + -322 + -305 + -301 + -324 + -305 +CL10, CL12 /RENAME O1 S1; + FIPFLS+2 /IOTP1:=O1 INTERNAL FILE # + REN /IOTP2-4:=S1 NEW NAME + RENAME /ERROR: AC NOT 0 + -322 /RESP; + -305 /. + -316 + -301 + -315 + -305 +CL12, CL13 /REDUCE O1 D1; + FIPFLS+2 /IOTP1:=O1 INTERNAL FILE # + RED /IOTP2:=D1 # SEGMENTS TO REMOVE + REDUCE /ERROR: AC NOT 0 + -322 /RESP: + -305 /. + -304 + -325 + -303 + -305 +CL13, CL14 /EXTEND O1 D1; + FIPFLS+2 /SAME AS REDUCE + EXT + EXTEND + -305 + -330 + -324 + -305 + -316 + -304 +CL14, CL15 /PROTECT O1 O2; + FIPFLS+2 /AC5-6:=O1 INTERNAL FILE # + PROT /AC7-11:=O2 NEW PROTECTION + PROTEC /ERROR: AC NOT 0 + -320 /RESP: + -322 /. + -317 + -324 + -305 + -303 + -324 +CL15, CL17 /F O1; + FIPFLS+3 /IOTP1:=O1 INTERNAL FILE # + FINF /ERROR: AC NOT 0 + F /RESP: ACCT # FILE NAME PROT SIZE + -306 /. +CL17, CL18 /SAVE S1 O1 O2 O3; + USAVE+UREST+PRPER+2+USERM + OPEN + SAVE + -323 + -301 + -326 + -305 +CL18, CL19 /LOAM0G1 S1 O2 O3 O4 + USAVE+UREST+PRPER+USERM+2 + OPEN + LOAD + -314 + -317 + -301 + -304 +CL19, CL20 /START O1; + 0 + 1 /FORCE IT THROUGH "FIPCHK" + START + -323 + -324 + -301 + -322 + -324 +CL20, CL21 /S; + PRPER + 0 + S + -323 +CL21, CL22 /WHERE; + PRPER+3 + 0 + WHERE + -327 + -310 + -305 + -322 + -305 +CL22, CL23 /USER O1; + NOLOG+PRPER+3 + 0 + USER + -325 + -323 + -305 + -322 +CL23, CL29 /SWITCH O1; + PRPER + 0 + SWITCH + -323 + -327 + -311 + -324 + -303 + -310 +CL29, CL32 /DUPLEX; + PRPER+PRCRLF + 0 + DUPLEX + -304 + -325 + -320 + -314 + -305 + -330 + +CL32, CL33 /R S1 O1 + USERM+2 /S1=FILE NAME + OPEN /O1=STARTING ADDRESS; 0000 IF OMITTED + R + -322 +CL33, CL34 /RUN C1 S1 O1 + USERM+2 /C1=ACCOUNT OF FILE OWNER (OPTIONAL) + OPEN /S1=FILE NAME + RUN /O1=STARTING ADDRESS; 0000 IF OMITTED + -322 + -325 + -316 +CL34, CL35 /EXAMINE C1 D1 + PRPER+USERM+1 /C1=STARTING ADDRESS + DMAR + EXAMIN /D1=# OF LOCATIONS TO EXAMINE + -305 + -330 + -301 + -315 + -311 + -316 +CL35, CL36 /DEPOSIT C1 C2 C3 ... C13 + PRPER+USERM+1 /C1=STARTING ADDRESS + DMAW /C2,...,C13=NEW VALUES + DEPOSI + -304 + -305 + -320 + -317 + -323 + -311 /no ending T??? PROTECT has one! +CL36, CL37 /VERSION + NOLOG+PRPER+PRCRLF /RESP: TSS8/.C1 + 0 + VERSIN /C1=VERSION # + -326 + -305 + -322 + -323 + -311 + -317 +CL37, CL38 /BREAK O1 + PRPER+PRCRLF + 0 + BREAK + -"B + -"R + -"E + -"A + -"K + +CL38, CL39 /RESTART O1 + PRPER + 0 + RESTRT + -"R + -"E + -"S + -"T + -"A + -"R +CL39, CL40 /UNDUPLEX + PRPER+PRCRLF + 0 + UNDUPL + -"U + -"N + -"D + -"U + -"P + -"L +CL40, CL41 /SYSTAT + USERM+2 + OPEN + SYSTAT + -"S + -"Y + -"S + -"T + -"A + -"T +CL41, CL42 /KJOB + USERM+2 /EQUIVALENT TO .R LOGOUT + OPEN + LOGOUT + -"K + -"J + -"O + -"B +CL42, CL43 /BROADCAST S1 + PRPER+PRCRLF+7 /SEND MESSAGE TO ALL CONSOLES + 0 /MUST BE LOGGED IN AS ACCT 1 OR 3 + BROAD + -"B + -"R + -"O + -"A + -"D + -"C +CL43, CL44 /FORCE C1 S1 + PRPER+PRCRLF+7 /FORCE STRING S1 INTO INPUT BUFFER OF CONSOLE C1 + 0 /USER MUST BE LOGGED IN AS ACCT 1 OR 3 + FORSE /ANY "LETTER" PRECEEDED BY "^" WILL BECOME A CONTROL CHARACTER + -"F /"^S", "^Q", "^B" OR "^C" ARE THE MOST USEFUL + -"O + -"R + -"C + -"E +CL44, CL45 /ON LINE + PRPER+PRCRLF + 0 + ON + -"O + -"N +CL45, CL46 /OFFLINE + PRPER+PRCRLF + 0 + OFFLIN + -"O + -"F + -"F +CL46, 0 + +UNACCT, 325 /U + 316 /N + 301 /A + 325 /U + 324 /T + 310 /H + 317 /O + 322 /R + 311 /I + 332 /Z + 305 /E + 304 /D + 240 + 301 /A + 303 /C + 303 /C + 317 /O + 325 /U + 316 /N + 324 /T + 240 + 0 + +LOGE1, 306 /FULL + 325 + 314 + 314 + 0 + +WHERPC, 240 /SP PC= + 320 + 303 + 275 + 0 +WHERAC, 240 /SP SP AC= + 240 + 301 + 303 + 275 + 0 +WHERSW, 215 /CR LF SW= + 212 + 240 + 323 + 327 + 275 + 0 + +TYCRLB, "T;"Y;"P;"E;240;"^;"B;"S;240;"F;"I;"R;"S;"T;215;212;0 +NONSUC, "D;"E;"V;"I;"C;"E;240;;"N;"O;"T;240;"A;"V;"A;"I;"L;"A;"B;"L;"E +CRLF, 215 + 212 + 0 + +TALK, ENDTST /END OF COMMAND + JMP I COMERA /YES + NUMBIN /GET CONSOLE # + -267 + JMP TALK6 /IGNORE "K" +TALK7, SPA + CIA /MAKE SURE IT'S POSITIVE + DCA IOTP0 + TAD IOTP0 /VALIDITY CHECK + TAD TALKMX /-HIGHEST CONSOLE # + SMA CLA + JMP I COMERA + TAD IOTP0 + CLL RAL + TAD DEVTBA /POINTER TO DEVTBL + DCA IOTP4 + TAD IOTP4 + JMS I TALK1A /INPUT SIDE INACTIVE? + JMP TALKNO /NO + ISZ IOTP4 /POINTS TO OUTPUT SIDE + TAD IOTP4 + JMS I TALK1A /OUTPUT SIDE INACTIVE? + JMP TALKNO /NO + CDF /GET # OF CALLING CONSOLE + TAD I COMPTR + TAD TALKXX + CLL RAR + CHDF + OCTASC + COMBUF-1 /AND PUT IN COMBUF + JMS TALK5 /"CRLF** K" + TALKM1 + JMS TALK5 /"MM" + COMBUF+2 + TAD SIJOB + SNA + JMP .+4 + JMS I TALKAC + JMS TALK5 /OUTPUT HER ACCOUNT NUMBER + ACCBUF + JMS TALK5 /" ** " + TALKM2 + DCA NUMHO /MAKE CHAR,NUMHO TWO WORD VECTOR +TALK2, JMS TALK5 /PUT CHAR IN DESTINATION BUFFER + CHAR + COMGET /GET NEXT CHARACTER + JMP TALK4 /END OF MESSAGE + JMP TALK2 + +TALK4, JMS TALK5 + CRLF + JMP I COMEXA + +TALKAC, GETACC +TALKXX, -DEVTBL +TALKNO, TAD TABSYM /"BUSY" + JMP I COMEXA + + + +TALK6, TAD CHAR /WAS IT A K? + TAD TALKMK + SZA CLA + JMP TALK7 /NO, ASSUME OPR + TAD TALKZE /MAKE CHARACTER A "0" + DCA CHAR + JMP TALK+2 + +TALKMK, -"K + + +TALK5, 0 /OUTPUT A CHARACTER + TAD I TALK5 /BUFFER ADDRESS + DCA .+3 + TAD IOTP4 /DEVTBL ADDRESS + ASCOUT + 0 + JMP TALKNO /NO ROOM...INDICATE BUSY + ISZ TALK5 /SKIP ARGUMENT + JMP I TALK5 + +TABSYM, BUSY +TALKZE, "0 +TALK1A, TALK1 +TALKMX, -NULINE-1 + + +LOGOMA, 5457 /LO + 4757 /GO + 6564 /UT + +TALKM1, 215;212;"*;"*;240;"K;0 +BUSY, "B;"U;"S;"Y;0 +OK, "O;"K +SPACE, 240 + 0 + +*ERPAGE + +SYSDSI, DSI +SYSPRT, WHEPRT +SYDING, SYBELL +SY3760, 3760 +CONCLR, SICLR +SYSEJN, USRPR + +SYSERR, TAD SIJOB + TAD TTYTBA + DCA COMDB0 /POINTER TO TTYTBL + DATFLD + TAD I COMDB0 + CLL RAL /UNIT*2= POSITION IN DEVTBL + TAD DEVTBA + DCA COMDB0 + TAD COMDB0 + CDF + DCA I COMPTR + DCA COMRDB + DATFLD + TAD I COMDB0 + DCA COMDB0 + TAD SYSDSI + CMA + AND I COMDB0 + TAD SYSDSI + DCA I COMDB0 + CHDF + JMS SYSER0 + TAD IOTP6 + AND C0010 + SZA CLA + JMP I SYDING + TAD IOTP6 + SPA CLA + JMS I SYSPRT + ASCOUT + CRLF + NOP + ASCOUT + PERIOD + NOP + EXIT + +SYSER0, 0 + GETWRD + JOBSTS + AND C0007 + TAD SYSETB + DCA SYSER1 + DATFLD + TAD I IOTP7 + DCA IOTP6 + TAD IOTP6 + AND SY3760 + TAD C0010 + DCA I IOTP7 + ISZ IOTP7 /POINTS TO STR1 + CLL STA RTL + AND I IOTP7 + DCA I IOTP7 + CHDF + TAD IOTP6 + AND C0010 + SZA CLA + JMP I SYSER0 + TAD I SYSER1 + DCA SYSER1 + RESDDB + DATFLD + DCA CHDFA + TAD I CHDFA + CIF + JMS I CONCLR /MAKE ROOM FOR THE ERROR MESSAGE + ASCOUT + CRLF + JMP SYSER2 + ASCOUT +SYSER1, 0 + NOP +SYSER2, ASCOUT + FORJOB + JMP SYSER4 + TAD SIJOB + JMS I SYSEJN + ASCOUT + CRLF + NOP +SYSER4, JMP I SYSER0 + +SYSETB, .+1 + QQEST + SYSET1 + SYSET2 + SYSET3 + QQEST + SYSET5 + SYSET6 + QQEST + +SYSET1, 311 /ILLEGAL IOT + 314 + 314 + 305 + 307 + 301 + 314 + 240 + 311 + 317 + 324 + 0 +SYSET2, +SYSET3, 323 /SWAP ERROR + 327 + 301 + 320 + 240 + 305 + 322 + 322 + 317 + 322 + 0 +SYSET5, 304 /DISK ERROR + 311 + 323 + 313 + 240 + 305 + 322 + 322 + 317 + 322 + 0 + + +/RETURN FOR FILE COMMANDS + +FIPEND, GETWRD + JOBREG+2 + SNA + JMP I COMEXA + CIA + DCA IOTP1 + TAD FIPETB + DCA IX1 +FIPEN1, TAD I IX1 + SNA + JMP FIPEN2 /NOT IN TABLE + TAD IOTP1 + SZA CLA + JMP FIPEN1 + TAD IX1 /GET MESSAGE ADDRESS + TAD FIPMTB + DCA IOTP1 + TAD I IOTP1 + JMP I COMERA + +FIPEN2, ASCOUT + CRLF + NOP + ASCOUT + FAILBY + NOP + TAD COMBFA + DCA IX1 + TAD IOTP1 + CIA + JMS I FIPDEC + DCA I IX1 + ASCOUT + COMBUF + NOP + ASCOUT + SEGMTA + NOP + JMP I COMEXA +DUPLEX, TAD C0200 /DUPLEX BIT +UNDUPL, DCA IOTP0 + DATFLD + TAD I COMDB0 /WORD 1 OF DDB + AND P7577 /CLEAR BIT + TAD IOTP0 /SET BIT + DCA I COMDB0 /SAVE IT + JMP I COMEXA +P7577, 7577 + +FIPDEC, DECOUT + +RKJOBA, RKJOB + +WAIT3, TAD I RKJOBA + CIA + TAD SIJOB + SNA CLA /DOES SHE OWN THE RK05 CONTROLLER? + JMP I COMEXA /YES - LET HER FINISH +DTSIDT, DCA I IOTP7 /CLEAR OUT WAIT 2 MASK + CLL STA RAL + TAD IOTP7 + DCA IOTP7 + STA + DCA I IOTP7 /-1 TO DEV. STATUS REG + CHDF + GETWRD + JOBREG+2 + DATFLD + DCA I IOTP7 /CLEAR HER AC + JMP I COMEXA + +WAITIO, "W;"A;"I;"T;" ;"F;"O;"R;" ;"I;"/;"O;215;212;0 +FAILBY, 306 /F + 301 /A + 311 /I + 314 /L + 305 /E + 304 /D + 240 + 302 /B + 331 /Y + 240 + 0 + +SEGMTA, 240 + 323 /S + 305 /E + 307 /G + 315 /M + 305 /E + 316 /N + 324 /T + 323 /S + 0 + +FIPETB, . + 4000 /FILE NOT OPEN + 4400 /FILE IN USE + 5000 /DIRECTORY FULL + 5400 /BAD DIRECTORY + 6000 /PROTECTION VIOLATION + 6400 /BAD FILE NAME + 7000 /FILE NOT FOUND + 7400 /DISK FULL + 0 +FIPMTB, .-FIPETB + FM4000 + FM4400 + FM5000 + FM5400 + FM6000 + FM6400 + FM7000 + FM7400 + +FM6400, "B;"A;"D;240;"F;"I;"L;"E;240;"N;"A;"M;"E;0 + +FM7000, 306 + 311 + 314 + 305 + 240 + 316 + 317 + 324 + 240 + 306 + 317 + 325 + 316 + 304 + 0 +FM4400, 306 + 311 + 314 + 305 + 240 + 311 + 316 + 240 + 325 + 323 + 305 + 0 +FM5000, 304 + 311 + 322 + 305 + 303 + 324 + 317 + 322 + 331 + 240 + 306 + 325 + 314 + 314 + 0 +FM6000, 320 + 322 + 317 + 324 + 305 + 303 + 324 + 311 + 317 + 316 + 240 + 326 + 311 + 317 + 314 + 301 + 324 + 311 + 317 + 316 + 0 +FM4000, 316 + 311 + 314 + 305 + 240 + 316 + 317 + 324 + 240 + 317 + 320 + 305 + 316 + 0 +FM7400, 304 + 311 + 323 + 313 + 240 + 306 + 325 + 314 + 314 + 0 +TALKM2, 240;"*;"*;215;212;0 +VERSIM, 215;212;"T;"S;"S;"/;"8;".;"2;"4;207;240;240;0 + + *VERBRK-2 + 215 + 212 +/VERBRK, + ZBLOCK 200 /LOGIN MESSAGE GOES HERE + + +$$$$$$ diff --git a/tss8/system/ts8a.pal b/tss8/system/ts8a.pal new file mode 100644 index 0000000..4c5fd6b --- /dev/null +++ b/tss8/system/ts8a.pal @@ -0,0 +1,1372 @@ +/EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB +/COPYRIGHT 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON WHICH INDIVIDUAL +/EDUSYSTEM 50 MONITORS ARE TO RUN. +/FOR EACH STATEMENT, THE COMMENT INDICATES THE POSSIBLE RESPONSES. + +CPU=2 /1 IF CPU IS PDP-8; 0 IF CPU IS PDP-8/I; + /2 IF CPU IS PDP-8/E + +CORMEM=70 /HIGHEST DATA FIELD SELECT. FOR 12K SYSTEM, + /RESPOND 20. FOR 16K SYSTEM, RESPOND 30, ETC. (70 MAX) + +PHONES=0 /1 IF DC08 INCLUDES 689AG; + /0 IF IT DOES NOT OR IF TTY INTERFACING IS OTHER THAN DC08 + +EAE=0 /20 IF PROCESSOR INCLUDES EAE; 0 IF IT DOES NOT + +RF08=0 /40 IF SYSTEM DISC IS DF32; 0 IF SYSTEM DISK IS RF08 + +RS08=1 /NUMBER OF DISCS ON THE SYSTEM, WHETHER DF/DS OR RF/RS. + /RESPOND WITH 1, 2, 3, OR 4. + +PUNCH=1 /1 IS SYSTEM INCLUDES PUNCH; 0 IF IT DOES NOT + +TC01=1 /1 IF SYSTEM INCLUDES DECTAPE(S); 0 IF IT DOES NOT + +RK05=1 /NUMBER OF RK05 CARTRIDGE DISK DRIVES ON THE SYSTEM; 0 TO 4 + +CDR=1 /1 IF SYSTEM INCLUDES CARD READER; 0 IF IT DOES NOT + +LPT=1 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER + +DECIMAL /MONITOR CAPACITY FOR THIS SYSTEM + +JOBMAX=20 /NUMBER OF SIMULTANEOUS USERS (20 MAXIMUM) + +/THE FOLLOWING ENTRIES DEFINE THE NUMBER OF TERMINALS +/ATTACHED TO THE SYSTEM, AND ALSO THE METHOD OF INTERFACING + +CONTTY=1 /WE ALWAYS HAVE A CONSOLE ( K00 ) + +DC08A=0 /NUMBER OF TERMINALS INTERFACED VIA DC08A (PDP-8/I ONLY, 19 MAX.) + +DC08LO=0 /LOWEST HARDWARE LINE NUMBER UTILIZED ON DC08A; USUALLY 0 + +PT08=0 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY) + +KL8=16 /NUMBER OF ADDITIONAL TERMINALS INTERFACED VIA KL8 (PDP-8/E ONLY, 19 MAX.) + /PARAMETERS VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + OCTAL +PLT=0 +IFNZRO CPU < IFNZRO DC08A > +IFNZRO 24-JOBMAX&4000 +IFNZRO 23-KL8-PT08&4000 +IFNZRO 24-DC08A&4000 +IFZERO DC08A +IFNZRO DC08A < IFNZRO PHONES + IFZERO PHONES > +NULINE=DC08A+PT08+KL8 /EVERY TERMINAL EXCEPT THE CONSOLE +SWDEX=5 /DISK TRACK OF THE FIRST USER SWAP TRACK +STOMIN=5 /MINIMUM # FREE STORAGE BLOCK FORR NEW JOB +IFZERO RF08-40 < +IFZERO RS08-1 +IFZERO RS08-2 +IFZERO RS08-3 +IFZERO RS08-4 +DSKEXT=DSKSIZ-1> +IFZERO RF08 +CLOCKR=144 /MILLISECONDS PER TICK +TICMIN=1130 /600 TICKS PER MINUTE +INCLK2=0322 /INITIAL CLOCK +INCLK1=7400 +TICSPS=12 /NUMBER OF SYSTEM TICKS PER SECOND +INIDEX=10 /INIT DISC EXTENSION +TS8DEX=30 /FIELD 0 DISC EXTENSION*2^3 +ERPDEX=0 /ERPDISK EXTENSION*4 +ERPWC=0 /ERP WORD COUNT +FIPDEX=4 /FIP DISC EXTENSION*4 +FIPWC=0 /FIP WORD COUNT +SIDEX=ERPDEX /SI DISC EXTENSION*4 +SIWC=ERPWC /SI WORD COUNT +LIBACT=2 /LIBRARY ACCOUNT # +BRKINI=4000 /INITIAL USER BREAK MASK + /IOT DEFINITIONS + +IFNZRO DC08A < /DC08A,DL8I IOTS +TTIL=6401 /INCREMENT LINE REGISTER +TTI=6402 /TELETYPE INPUT COMMAND +TTO=6404 /TELETYPE OUTPUT COMMAND +TTCL=6411 /CLEAR LINE REGISTER +TTLL=6412 /LOAD LINE REGISTER, CLEAR AC +TTRL=6414 /READ LINE REGISTER +T1SKP=6421 /SKIP ON CLOCK FLAG +T1OFF=6422 /TURN CLOCK OFF +T1ON=6424 /TURN CLOCK ON +TTIR=6461 /INCREMENT THE R REG. +TTCR=6471 /CLEAR THE R REG. +TTLR=6472 > /LOAD THE R REG. +/EXTENDED MEMORY + +CDF=6201 /CHANGE TO DATA FIELD 0 +CIF=6202 /CHANGE TO INSTRUCTION FIELD 0 +CINT=6204 /CLEAR USER IOT + +RDF=6214 /READ DATA FIELD +RIF=6224 /READ INSTRUCTION FIELD +RIB=6234 /READ INTERRUPT BUFFER +RMF=6244 /RESTORE MEMORY FIELD +SINT=6254 /SKIP ON USER IOT +CUF=6264 /USER FLAG OFF +SUF=6274 /USER FLAG ON + + +/EAE +MUY=7405 /MULTIPLY +DVI=7407 /DIVIDE +NMI=7411 /NORMALIZE +SHL=7413 /SHIFT ARITHMETIC LEFT +ASR=7415 /ARITHMETIC SHIFT RIGHT +LSR=7417 /LOGICAL SHIFT RIGHT +MQL=7421 /LOAD MQ +SCL=7403 /STEP COUNTER LOAD FROM MEMORY +SCA=7441 /STEP COUNTER TO AC +MQA=7501 /MQ TO AC + +IFZERO CPU-2 < + +DPSZ=7451 /MODE B ONLY - SKIP IF AC&MQ ARE CLEAR +SWBA=7447 /CHANGE MODE TO A +SWAB=7431 /CHANGE MODE TO B (ALSO DOES MQL) +ACS=7403 /AC(7:11) TO SC; AC CLEARED +SGT=6006 /SKIP ON GT FLAG + > + + + +/LINE PRINTER IOTS +LSF=6661 /SKIP ON CHAR FLAG SET + LCF=6662 /CLEAR CHAR FLAG +LSRP=6663 /SKIP ON NOT READY OR ON ERROR +LLC=6664 /TRANSMIT CHAR TO PRINTER +LSP=6665 /SET PROGRAM INTERRUPT; LP08/LE8 +LPC=6666 /TRANSMIT CHAR & CLEAR FLAG +LCP=6667 /CLEAR PROGRAM INTERRUPT +LIE=6665 /AC11 TO INTERRUPT ENABLE; LS08/LS8E + +/CTY + +TPC=6044 /LOAD TELEPRINTER AND PRINT + +/DISC (DF32) + +DCMA=6601 /CLEAR +DMAR=6603 /READ +DMAW=6605 /WRITE +DCEA=6611 /CLEAR DISC EXTENDED ADDRESS +DEAL=6615 /LOAD EXTENDED ADDRESS +DFSE=6621 /SKIP ON ERROR +DFSC=6622 /SKIP ON COMPLETION +DEAC=6616 /READ EXTENDED ADDRESS + +/DISC (RF08) + +DSAC=6612 +DORS=6614 +DIML=6615 +DIMA=6616 +DCXA=6641 +DXAL=6643 + +/CARD READER IOT'S +RCSF=6631 +RCRA=6632 +RCRB=6634 +RCNO=6635 /8E ONLY +RCRC=6636 /8E ONLY +RCNI=6637 /8E ONLY +RCSD=6671 +RCSE=6672 +RCRD=6674 +RCSI=6675 /8E ONLY +RCTF=6677 /8E ONLY + +/RK05 IOT'S + +IFZERO PHONES< +DSKP= 6741 +CDLR= 6742 +DLAG= 6743 +DLCA= 6744 +DRST= 6745 +DLDC= 6746 +DMAINT= 6747 > + IFNZRO PHONES < +DSKP= 6751 +DCLR= 6752 +DLAG= 6753 +DLCA= 6754 +DRST= 6755 +DLDC= 6756 +DMAINT= 6757 > + +/DECTAPE + +DTRA=6761 +DTCA=6762 +DTXA=6764 +DTSF=6771 +DTRB=6772 +DTLB=6774 + + +IFZERO CPU < +/KW8I REAL TIME CLOCK + +CECI=6137 /CLEAR AND ENABLE CLOCK AND INTERRUPT +CSCF=6133 /SKIP AND CLEAR FLAG IF FLAG +> +IFZERO CPU-1 < +CECI=6315 /CLOCK ENABLE +CSCF=6301 /SKIP ON CLOCK FLAG +CCF=6302 /CLEAR CLOCK FLAG, CLEAR ENABLE AND CLEAR BUFFER +CLB=6304 > /LOAD BUFFER FROM AC + +IFZERO CPU-2 < +CECI=6131 /CLOCK ENABLE +CSCF=6133 /SKIP AND CLEAR FLAG IF FLAG + +/POWER FAIL IOT + +SPL=6102 /SKIP IF POWER LOW + +/ 8/E PROCESSOR IOT +SRQ=6003 /SKIP ON INTERRUPT REQUEST +GTF=6004 /LINK TO AC0, GT FLAG TO AC1 +RTF=6005 /AC0 TO LINK, AC1 TO GT FLAG +CAF=6007 > /CLEAR ALL FLAGS + +IFZERO CPU-4 < +CLLE=6135 /AC11 TO INTERRUPT ENABLE FOR CLOCK +CLCL=6136 /CLEAR CLOCK FLAG +CLSK=6137 /SKIP ON CLOCK FLAG +SPL=6102 /SKIP POWER LOW +CAL=6133 > /CLEAR AC LOW FLAG + + IFNZRO DC08A < + +/689AG + +SRF=6701 /SKIP IF RING FLAG +SCF=6711 /SKIP IF CARRIER FLAG +DFCRF=6742 /CLEAR RING FLAG +CTG=6721 /CLEAR GROUP COUNTER +RRS=6702 /READ RING STATUS +ITG=6731 /INCREMENT GROUP COUNTER +STR=6722 /SET TERMINAL READY +EDF=6704 /ENABLE DATAPHONE FEATURES +DDF=6714 /DISABLE DATAPHONE FEATURES +CTR=6724 /CLEAR TERMINAL FLAG +CCF=6741 /CLEAR CARRIER FLAG +RCS=6712 /READ CARRIER STATUS + > + /FIP IOTS (IN ABBREVIATED FORM) + +SEGS=0006 /RETURN NUMBER OF FREE SEGMENTS ON DISK +ASD=0040 /ASSIGN +REL=0042 /RELEASE +REN=0200 /RENAME +OPEN=0201 /OPEN +CLOS=0202 /CLOSE +RFILE=6603 /READ FILE +PROT=0204 /PROTECT +WFILE=6605 /WRITE FILE +CRF=0210 /CREATE +EXT=0211 /EXTEND +RED=0212 /REDUCE +FINF=6613 /FILE INFORMATION +LIN=0214 /LOGIN +LOUT=0215 /LOGOUT +WHO=6616 /WHO +/DEVICE DATA BLOCK + +DDBSTS=0 /WORD 1, STATUS AND UNIT NUMBER + DXON=2000 /XOFF SENT FLAG + DSI=1000 /DESTINATION IS S.I. FLAG + DFULL=400 /KEYBOARD BUFFER IS FULL + DUPL=200 /CONSOLE IN DUPLEX MODE + SICOM=100 /COMMAND WAITING + DECHO=400 /CAUSE SI TO RE-ECHO CURRENT INPUT BUFFER + + /DEVICE UNIT NUMBER IS IN BITS 6-11 + +DDBJN=1 /WORD 2, JOB NUMBER IN 7-11 +DDBBRK=2 /BREAK MASK +DDBTIM=3 /TIME THAT DEVICE WAS ASSIGNED +DDBINP=4 /BUFFER FILL POINTER +DDBINC=5 /BUFFER TOTAL COUNT +DDBOUC=6 /BUFFER EMPTY COUNT +DDBOUP=7 /BUFFER EMPTY POINTER + /JOB DATA AREA + +JOBSTS=0 /STATUS + /STR0 + JSRUN=4000 /RUN BIT + JSEREN=2000 /USER ERROR ENABLE + JCOMBD=1000 /LAST TIME THE JOB RAN AS COMPUTE BOUND + JSPEEK=400 /ALLOW "PEEK" AND "LOGOUT" IOT'S + JSACC=200 /JOB LOGGED IN UNDER PRIVILEGED ACCOUNT (1, 2, OR 3) + JSIOT=100 /NON-RESIDENT IOT + JSIOTC=40 /COPY IOT RESULT TO USER + JSEXON=20 /EXECUTE ONLY + JSINER=10 /INHIBIT ERROR REPORT FROM SI. (UNTIL NEXT COMMAND) + /BITS 9-11 ARE SYSTEM ERROR CODE + UUOERF=1 /IOT ERROR + SWPRER=2 /SWAP READ ERROR + SWPWER=3 /SWAP WRITE ERROR + DSKERR=5 /DISC ERROR + HUNGDV=6 /HUNG DEVICE + + /STR1 + JSTIME=4000 /TIME IS UP + JSF0=2000 /FILE 0 IS NOT BUSY + JSF1=1000 /FILE 1 IS NOT BUSY + JSF2=400 /FILE 2 IS NOT BUSY + JSF3=200 /FILE 3 IS NOT BUSY + JSDEL=100 /KEYBOARD DELIMITER SEEN + JSLPT=40 /LINE PRINTER BUFFER IN USE BUT NOT FULL + JSTEL=20 /TELEPRINTER OUTPUT BUFFER IN USE BUT NOT FULL + JSPTR=10 /CHARACTERS IN READER BUFFER + JSPTP=4 /PUNCH BUFFER IN USE BUT IS NOT FULL + JSERR=2 /SYSTEM ERROR DETECTED + JSWAIT=1 /JOB NOT IN WAIT STATE + + +JOBSTB=2 /DEVICE STATUS REGISTER (FOR RK05, DECTAPE, AND CARD READER) +JOBWMK=3 /WAIT MASK +JOBSRA=5 /JOB RESTART ADDRESS +JOBERR=6 /JOB ERROR RESTART ADDRESS +JOBLNK=7 /IOT LINKAGE +JOBSWR=10 /SWITCH REGISTER +JOBREG=11 /PC LINK AC +JOBEAE=14 /MQ MODE GT SC +JOBACC=16 /ACCOUNT NUMBER +JOBF0=17 /POINTER TO FILE 0 CONTROL +JOBF1=20 /POINTER TO FILE 1 CONTROL +JOBF2=21 /POINTER TO FILE 2 CONTROL +JOBF3=22 /POINTER TO FILE 3 CONTROL +JOBRTM=23 /LOW ORDER RUN TIME +JOBRTH=24 /HI ORDER RUN TIME + /FILE CONTROL BLOCK - POINTED TO BY JOBFX, X=0,1,2,3 +FILWPT=0 /POINTER TO FILE RETRIEVAL WINDOW +FILSCT=1 /SEGMENT NUMBER OF FIRST WINDOW ENTRY +FILPRO=2 /FILE PROTECTION - BIT 9 +FILPAR=3 /POINTER TO RFILE OR WFILE PARAMETER BLOCK +FILDA=4 /DISC ADDRESS OF RFILE OR WFILE +FILWC=6 /-WORD COUNT OF RFILE OR WFILE +FILRES=7 /POINTER TO FILPIF IN USER AREA + +/FILE RETRIEVAL WINDOW +/WORD 0: UFD LINK TO NEXT GROUP OF 7 SEGMENT POINTERS +/WORDS 1-7: SEVEN SEGMENT ADDRESSES + +/RFILE OR WFILE PARAMETER BLOCK - POINTED AT BY FILPAR + +FILPFN=0 /FUNCTION: 0603 OR 0605 +FILPDX=1 /DISC EXTENSION +FILPIF=2 /INTERNAL FILE # (BITS 10-11) AND FIELD # (BITS 7-9) +FILPWC=3 /-WORD COUNT FOR THIS TRANSFER +FILPCA=4 /CORE ADDRESS FOR THIS TRANSFER +FILPDA=5 /DISC ADDRESS +FILPRA=6 /EXEC RETURN ADDRESS FOR THIS TRANSFER +FILPCT=7 /POINTER TO FILE CONTROL BLOCK + + +/CORE TABLE CONTROL FLAGS + +SWAP=4000 /SWAP REQUEST +LOCK=2000 /LOCK IN CORE +NOTRUN=1000 /HAS NOT BEEN SCHEDULED TO RUN +FIP=400 /FILE PHANTOM +SI=200 /SYSTEM INTERPRETER +NOHOLD=140 /INHIBIT "NOTRUN" STATUS AFTER FOUR CONSECUTIVE FILE TRANSFERS +CJOB=37 /BITS 7-11 CONTAIN THE JOB # + + + +/FIP TABLE DEFINITIONS + +SATSIZ=530 +JTABLE=6000 +ENTABL=JTABLE+JOBMAX+1 +UTABLE=ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX +RTABLE=UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX + + /TABLES +CORTBL=7001 /CORE ASSIGNMENT TABLE +L2QTB=CORTBL+7 +IFZERO DC08A +IFNZRO DC08A /SIZE OF FIELD 1 DC08A CODE PLUS 689AG CODE + +OUTREG=200 /ACTIVE OUTPUT REGISTERS (TTY'S, LPT & PTP) +SKPTBL=OUTREG+NULINE+3 /START OF IOT SKIP TABLE +SKPTP=SKPTBL+NULINE+NULINE+3 /POSITION OF PUNCH SKIP IN SKIP TABLE +RINGIN=SKPTP+3 /KEYBOARD INPUT RING BUFFER +ENDBUF=OUTREG+200 /END OF KEYBOARD INPUT BUFFER +INPUTS=ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE ENTRIES IN THE KEYBOARD RING BUFFER + +DATFLD=CDF 10 /MONITOR DATA FIELD SELECT + +IFZERO EAE-20 +IFZERO EAE + IFZERO CPU&7776 > +IFNZRO OUTREG&1 + /SUPER CRITICAL LOCATIONS +/THESE LOCATIONS ARE USED TO LINK TS8, TS8II, FIP, SI AND INIT. + +/IT MAY BE NECESSARY TO ADJUST THEM ACCORDINGLY + +/DEFINED IN TS8: + +WSCHED=2573 /ADDRESS FOR WAIT +GETJTB=401 /GETJTA +CORSRC=1317 /SEARCH CORE TABLE +OVERLA=5171 /FILE STUFF +READFI=574 /MORE FILE STUFF +CONDBA=132 /DEVTBL POINTER USED BY "PRINT" ETC. +RETB=611 /RETURN A BLOCK TO FREE CORE +GETB=1405 /GET A BLOCK OF FREE CORE +GETDB0=1447 /GET A DDB +CLK1=51 /LOW ORDER DAYTIME CLOCK +CLK2=50 /HIGH ORDER DAYTIME CLOCK +DATE=166 /12 BIT DATE WORD +TTCHAR=31 /SAVE REG. FOR CONSOLE CHARACTERS +KBD00=3201 /PROCESS KEYBOARD INPUT +PRINT0=1205 /TYPE OUT A CHARACTER +OVRLA1=562 /MORE FILE STUFF +RUNFI=605 /SI FILE TRANSFER INITIALIZER +L2SF=103 /LEVEL 2 SAVED MODE AND FIELD +SICLR=6572 /SI CLEAR LINKED BUFFER +TIMSI=2421 /TIMER FOR SI "COMWAT" +SIWAIT=1702 /NUMBER OF SI COMMANDS BEING WAITED ON +TIMFIP=2423 /TIMER FOR FIPLOCK +FIPLOK=2724 /CORTBL STATUS CHECK FOR FORCE OUT +CLKINI=322 /CONVERT HARDWARE CLOCK TO SYSTEM-TICKS (100 MS) +BLT0=1602 /BLOCK TRANSFER FROM CORE TO CORE +KBDSQ=3213 /ADDRESS OF JMS TO ^S/^Q CODE + +/DEFINED IN TS8II: + +F1TCNT=175 /SI DDB CHARACTER COUNT +F1ECNT=176 /SI DDB EMPTY COUNT +F1BUF=177 /SI DDB EMPTY BLOCK POINTER +DTJOB=20 /JOB OWNING THE DECTAPE CONTROLLER +RKJOB=54 /JOB OWNING RK05 CONTROLLER +DTSI=1175 /SI TERMINATE A DECTAPE ON TIMER +DATA1=2200+DCSIZE +DEVTBL=DATA1+140 +DEVTBE=DEVTBL+NULINE+NULINE+2 +JOBTBL=DEVTBE+22 +CLKTBL=JOBTBL+JOBMAX+1 +TTYTBL=CLKTBL+JOBMAX+1 +PRGTBL=TTYTBL+JOBMAX+1 +DSUTBL=PRGTBL+JOBMAX+JOBMAX+JOBMAX-7 +FIPBLK=7720 /FIXED BLOCK FOR FIP IO +WINBAS=7730 /ADDRESS OF THE BASIC WINDOW +OUTDIF=-OUTREG^2+DEVTBL /FOR LINKING BETWEEN OUTREG AND DEVTBL +F1OFFJ=164 /FOR OFF/ON COMMANDS USED BY SI +IFNZRO DEVTBL&1 + +/DEFINED IN SI + +DTSIDT=7270 /RETURN FROM STOPPING A DECTAPE ON TIMER +VERBRK=7600 /START OF INSTALLATION DEFINED LOGIN MESSAGE + /TS8 VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + VERNUM=30 +/PAGE 0 +FIELD 3 /LOAD THIS INTO TRACK 3 ON DISK + +*1 + JMP I .+1 + +C0200, 200 +WS0, 0 /WORKING STORAGE FOR MAIN FLOW +WS1, 0 +JOBSWA, 0 + + +*10 +ACX10, 0 /FOR INTERRUPT SERVICE +ACX11, RINGIN-1 /INPUT RING BUFFER POINTER (LEVEL 1) +DSPAR, 0 /DISK HANDLER +L2Q, L2QTB-1 /LEVEL 2 QUEUE +L2QE, L2QTB-1 /LEVEL 2 EMPTY POINTER +AXS1, 0 /MISCELLANEOUS LEVEL 2 AUTO-INDEX +AXS2, 0 / " +DSKPTR, DSUTBL+6 /DISK REQUEST QUEUE POINTER + + +SIDATA=20 /SYSTEM INTERPRETER DATA +*SIDATA + +COMPTR, DEVTBL /POINTER TO LAST DEVTBL ENTRY SCANNED +SIBUF, 0 /BUFFER STATE +SICNT, 0 +COMDSP, 0 /FIP RETURN DISPATCH +SIFLG, 0 /COMMAND FLAGS +SICHAR, 0 /SAVE LAST CHAR FROM COMMAND SCAN +SIREG, 0 /USER AC, LINK, PC + 0 + 0 +TTCHAR, 0 /TTY CHARACTER + +CONSTANTS=SIDATA+12 +*CONSTANTS +C0002, 2 +C0003, 3 +C0004, 4 +C0007, 7 +C0037, 37 +C0100, 100 +C1000, 1000 +C7770, 7770 + +JOBCON=CONSTANTS+11 /JOB CONTROL +*JOBCON + +JOBTIM, 0 /NUMBER OF TICKS RUN +JOBTBA, JOBTBL /JOB TABLE ADDRESS + + FRSTOR=JOBCON+3 +*FRSTOR + +FREE, 0 /POINTER TO HEAD OF FREE STORAGE +FRECNT, 0 /# FREE BLOCKS AVAILABLE + + +TIMDAT=FRSTOR+2 /CLOCK AND DATE +*TIMDAT + +/CLOCK +CLK2, 0 +CLK1, 0 + + +SCHDAT=TIMDAT+2 +*SCHDAT /SCHEDULING DATA + +COMCNT, 0 /NUMBER OF COMMANDS AWAITING EXECUTION +SQREQ, 0 /SWAP REQUEST FLAG +FINISH, 0 /+(I)-(O) FIELD OF JOB BEING SWAPPED +FIT, 0 /JOB # TO BE SWAPPED IN +FORCE, 0 /FIELD TO BE SWAPPED OUT + +DATEND=60 /END OF FIELD 0 PAGE 0 DATA + + + +FIPDAT=155 /DATA REFERENCED BY FIP +*FIPDAT + +FIPJOB, 0 /JOB NOW (OR SOON TO BE) RUNNING FIP +C0400, 400 +SEGSIZ=C0400 /# WORDS PER SEGMENT +*160 +JOB, 0 /# OF CURRENT JOB +JOBDAT, . /ADDRESS OF CURRENT JOB DATA LIST. MUST RESIDE IN DATA FIELD. +C7000, +CORTBA, CORTBL-1 /CORE ALLOCATION TABLE +DEVTBA, DEVTBL /DEVICE TABLE +DSUTBA, DSUTBL /USER DISC REQUEST QUEUE +DSBUSY, -1 /DISC BUSY COUNT + +/THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT +/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1 + +DATE, 0 + + +FISUBL=400 + +BLTA, BLT0 /BLOCK TRANSFER +BLT=JMS I BLTA +CORSRA, CORSRC +CORE=JMS I CORSRA + GETBA, GETB +GETBLK=JMS I GETBA +GETDBA, GETDB0 /GET A DATA BLOCK +GETDDB=JMS I GETDBA +PRINTA, PRINT0 /TYPE OUT A CHARACTER +PRINT=JMS I PRINTA +GETJT0, GETJTB /GET JOB DATA TABLE ADDRESS +GETJTA=JMS I GETJT0 +GIRSCA, GIRSC /STORE CHARACTER IN BUFFER +STORE=JMS I GIRSCA +RETBA, RETB /RETURN BLOCK TO FREE STORAGE +RETBLK=JMS I RETBA +WAITA, WSCHED +WAIT=JMP I WAITA + /SUBROUTINE DISPATCHES + +SUBDSP=DATEND +*SUBDSP + +IOR=JMS I . + IOR0 /INCLUSIVE OR +UUOEXT=JMP I . + UUDEX1 /UUO EXIT +FIUSER, DSUSER /QUEUE FILE REQUEST IN DSUBTL +ERROR=JMS I . + SYSERR /SYSTEM ERROR +TTYUSE=JMS I . + TTYSRC /FIND USER TTY +SCHED=JMP I . +SCHEDA, SCHEDI /SCHEDULE NEXT JOB NOW CORE RESIDENT +RSCHED=JMP I . +RSCHEA, SCHED0 /FIND NEXT JOB TO BE RUN +EXIT=JMP I . +EXITA, L2EXIT /LEAVE LEVEL 2 +REDO=JMP I . + REDO0 /REPEAT IOT LATER WHEN (HOPEFULLY) IT CAN BE COMPLETED +KEY=JMS I . + KBD00 /PROCESS KEYBOARD INPUT INTO A USER'S INPUT BUFFER +SAVJOB=JMS I . + SAVJO0 /SAVE THE STATUS OF THE CURRENT JOB +RESJOB=JMS I . + RESJO0 /RESTORE THE PREVIOUSLY SAVED STATUS +START=JMP I . /START USER JOB + SUJ +DSGO=JMS I . + DSGO0 /START DISK REQUEST +GETJTW=JMS I . + GETJW0 /GET CONTENT OF JOB STATUS WORD (CURRENT JOB) +GETJTI=JMS I . + GETJI0 /GET CONTENT OF JOB STATUS WORD (ANY JOB) +DISMIS=JMP I . + DISMI0 /DISMISS INTERRUPTS +RUNABL=JMS I . + RUNTST /TEST IF SPECIFIED JOB IS RUNNABLE + +SETFLG, PTSTAR + +L2CON=SUBDSP+23 /LEVEL 2 (EXEC) CONTROL +*L2CON + +L2SF, 100 /RELOCATION AND MODE +L2SV0, NULJOB /SAVED PC +L2SVLK, 0 /SAVED LINK +L2SA, 0 /SAVED ACCUMULATOR + +FETCH=JMS I . + TOF /RETRIEVE A CHARACTER FROM A LINKED FREE CORE BLOCK +CLOCK, -1 /NUMBER OF SYSTEM TICKS PENDING ON LEVEL 2 (MINUS 1) +DEAD, 0 /CORTBL-1 OF JOB THAT SHOULD BE PUSHED OUT + SCHNEW, 0 /-1 TO ALLOW FULL TIME SLICES +C0010, 10 +IFNZRO DC08A < +D6FLAG, -1 /ALLOW 689 ANSWER ONLY ONE TIME IN L2Q +D6ANSR, ANSWER > + + +/ROOM FOR PATCHES!! +*CONDBA + 0 /POINTER TO DEVTBL POSITION CURRENTLY UNDER CONSIDERATION +CONDDB, 0 /ADDRESS OF DDB UNDER CONSIDERATION +SEGLMK, 7400 /-WRDSEG +C7400=SEGLMK +BASWIN, -WINBAS-1 +CJOBDA= JOBDAT +C0006, 6 +C0070, 70 +SEGSM1, /WRDSEG-1 +C0377, 377 +C0005, 5 +C0600, 600 +C3777, 3777 +C6203, 6203 +QUANTM, +C7776, 7776 +C0177, 177 +CURJOB, 0 /NUMBER OF JOB INTERRUPTED BY FILE TRANSFER +*150 +UDF=JMS . /SELECT FIELD OF CURRENT JOB +WS2, 0 +UUDF, 0 /DATA FIELD SELECT FOR FIELD OF CURRENT JOB + JMP I .-2 +INTRC, 0 /TRACK # TO BE SWAPPED IN (DF32 0X00) (RF08 000X) +OUTTRC, 0 /TRACK # TO BE SWAPPED OUT +*42 +FANCOR, CORTBL+1 /FIELD OF PHANTOM I.E. FIELD 2 +*57 +BONUS, 0 /JOB # JUST BROKEN OUT OF I/O WAIT + +*157 +SWPIOA, SWPIO +*45 +SWPREA, SWPRET + +/FIELD 0 PAGE DIRECTORY +IOTS=4000 +DISC=IOTS+1400 /DISC CONTROL + *200 + +/PRIORITY LEVEL 0 (HIGHEST PRIORITY) +/KEEPS TRACK OF REAL TIME +/ALWAYS ENTERED BY CLOCK FLAG +/DISMISSES TO LEVEL 1 IF INTERRUPT WAS NOT FROM LEVEL 1 +/OTHERWISE, DISMISSES TO INTERRUPTED LOCATION. + +INT, +IFZERO CPU-2 < + SPL /POWER FAILURE? + JMP INTX0 /NO + JMP I .+1 /YES, HURRY UP AND SERVICE IT + POWINT +INTX0, > +IFZERO CPU-4 < + SPL /POWER LOW + SKP /NO + JMP .-2 /WAIT FOR POWER + CAL > /CLEAR POWER LOW CONDITION + SINT /USER IOT? (HAS TO BE CHECKED FIRST!!!) + IFZERO DC08A + IFNZRO DC08A /DC08? + JMP I UUOA /YES, GO SAVE LEVEL 2 STUFF + IFNZRO DC08A < + T1SKP /CLOCK? + JMP INT0 /NO, KEEP LOOKING + ISZ CLKCNT /YES, IS A SYSTEM TICK UP YET? + JMP I T8DISA /NO, RUN DC08 INTERRUPT SERVICE + DCA CLKIT /SAVE AC AT INTERRUPT + TAD L2TIMA /SCHEDULE L2TIME ON L2QUE + ISZ CLOCK /BUMP NUMBER OF TICKS TO COUNT AT LEVEL 2 + CLA SKP /ALREADY SCHEDULED + DCA I L2Q + TAD CLKINI /RESET TIMER FOR NEXT TICK + DCA CLKCNT + TAD CLKIT /GET AC AT INTERRUPT + JMP I T8DISA /RUN DC08 SERVICE +T8DISA, T8DIS> + /INTERRUPTS OTHER THAN 680 (LEVEL 1) +/DISMISSES TO LEVEL 2 IF NOT FROM LEVEL 1 OR 2. + +INTAC, 0 /AC AT LEVEL 1 +INTLK, 0 /LINK AT LEVEL 1 +UUOA, UUO0 + + + +INT0, DCA INTAC /SAVE AC AND LINK + RAR + DCA INTLK + + IFZERO DC08A < +IFNZRO CPU-4 /SKIP AND CLEAR FLAG IF FLAG +IFZERO CPU-4 /SKIP IF CLOCK FLAG + JMP DTINT +IFZERO CPU-4 /CLEAR CLOCK FLAG + IFZERO CPU-1 < + CLA CMA /KW08 + CCF CLB /CLEAR FLAG AND LOAD BUFFER + CECI > /ENABLE + + ISZ CLKCNT /IT WAS CLOCK - WAS IT A SYSTEM TICK + JMP DISMI1 /NO - NOTHING TO DO THEN + TAD CLKINI /YES - SET FOR NEXT SYSTEM TICK + DCA CLKCNT + ISZ CLOCK + JMP DISMI1 + TAD L2TIMA /SCHEDULE A SYSTEM TICK ON LEVEL 2 + JMP DISMI0 > + + + +DTINT, JMS DTCHK + DISMIS +IFNZRO D689 < + SRF + JMP D6CF + DFCRF /CLEAR THE RING FLAG + ISZ D6FLAG /HAVE WE GOTTEN MORE THAN ONE FLAG? + DISMIS /YES! DON'T OVERFLOW L2Q + TAD D6ANSR + DISMIS /SCHEDULE PHONE ANSWERING ON L2Q +D6CF, SCF + JMP RFINT + CCF /A CARRIER HAS CHANGED + TAD DFM4 + DCA I TIM68A /TAKE A LOOK AT IT IN FOUR SECONDS + DISMIS +DFM4, -4 +TIM68A, TIM689 > + RFINT, +IFZERO RF08-40 +IFZERO RF08 /RF08 ERROR? + ISZ DSWAIT /NO ERROR - TRANSFER OK + + JMP I DSWAIT +DSWAIT, 0 /SET BY DISK SERVICE +INT2, +IFNZRO CDR /CONTINUE IN THE INTERRUPT CHAIN +IFZERO CDR +DTCHK, 0 +IFNZRO CDR /CARD READER? +IFZERO CDR + JMP .+5 + CIF DATFLD-1 + CDF + JMP I .+1 + CDL11 +IFNZRO RK05 < DSKP > /RK05? +IFZERO RK05 < JMP .+5 > + JMP .+4 + CIF DATFLD + JMP I .+1 + RKL11 +IFNZRO TC01 /DECTAPE? +IFZERO TC01 + JMP .+10 + DTRA + AND C0004 + SNA CLA + JMP .+4 + CIF DATFLD + JMP I .+1 + DTL11 + ISZ DTCHK +F1RTN, JMP I DTCHK /THESE 3 DEVICES RETURN HERE FROM FIELD 1 + INT7, TAD CLKIT + DCA I L2Q /QUEUE REQUEST +DISMI1, TAD INTLK /RESTORE LINK AND AC + CLL RAL + TAD INTAC +DISMI2, RMF /RESTORE IF, DF, & MODE + ION + JMP I 0 /BACK TO INTERRUPTED PROGRAM + +L2TIMA, L2TIME +REST0, +CLKIT, 0 /TEMPORARY FOR AC +CLKCNT, -3 /WILL INITIALIZE ITSELF TO THE CORRECT VALUE + +*322 +CLKINI, 0 /SET BY INIT TO CAUSE 1 SYSTEM TICK TO = 100 M.S. +/DISMIS ROUTINE +/ENTERED FROM INTERRUPT HANDLER TO ENTER LEVEL 2 FROM LEVEL 1 +/AC = ADDRESS OF LEVEL 2 SERVICE ROUTINE +/ OR 0 IF NO LEVEL 2 SERVICE REQUIRED + +DISMI0, +C6201, CDF + SNA /DISMISS INTERRUPTS? + JMP DISMI1 /NO - BACK TO WHATEVER WAS GOING ON BEFORE + DCA CLKIT /SAVE DISPATCH + RIB /MODE BIT = 100 + AND C0100 + SNA CLA /FROM USER MODE? + JMP INT7 /NO - QUEUE REQUEST UNTIL LATER + TAD INTAC /MOVE THE AC TO LEVEL 2 + DCA L2SA + TAD INTLK /MOVE LINK TO LEVEL 2 + DCA L2SVLK + TAD 0 /MOVE PC TO LEVEL 2 + DCA L2SV0 + RIB + DCA L2SF /FIELDS AND MODE TO LEVEL 2 + ION /DISMISS TO EXEC MODE, FIELD 0, LEVEL 2 + JMP I CLKIT + + + /RESTORE INTERRUPTED STATE + +RESTOR, DCA REST0 /POINTER TO SAVED INFO + TAD I REST0 /SAVED FIELDS AND STATE + AND C0070 /GET INSTRUCTION FIELD + TAD C6203 + DCA RCIF /CIF FOR PROPER FIELD + TAD I REST0 + CLL RTL + RAL + AND C0070 /CDF FOR RETURN + TAD C6201 /NOT NECESSARILLY EQUAL TO INSTRUCTION FIELD + DCA RCDF + TAD I REST0 + AND C0100 /USER PROGRAM, FIP OR SI? + SZA CLA + SUF /USER MODE; SET USER FLAG + ISZ REST0 + TAD I REST0 /PC + DCA 0 + ISZ REST0 + TAD I REST0 /LINK + CLL RAL + ISZ REST0 + CLA + TAD I REST0 /AC +RCIF, 0 +RCDF, 0 + ION + JMP I 0 /BACK TO INTERRUPTED PROGRAM + /RETURN ADDRESS OF LINKED TABLE ENTRY +/CALL TAD TABLE ENTRY ADDRESS +/ GETJTA +/ ENTRY NAME (NUMBER) +/ RETURN + +GETJTB, 0 + DCA GETJT1 /SAVE JOBTABLE ADDRESS + TAD I GETJTB /ENTRY # + DCA GETJT2 + RDF /FIELD CALLED FROM + TAD C6203 + DCA GETJT3 /SO WE CAN GET BACK + DATFLD /CHANGE TO DATA FIELD + DCA I GETJTZ /CLEAR FLD 1 LOC. 0 +GETJ1, TAD I GETJT1 /GET JOBTBL ENTRY + CLL /TO LET CALLER KNOW IT DOESN'T EXIST + SNA /LINK 0? + JMP GETJ3 /YES - RETURN 0 + DCA GETJT1 /NO, JOB DATA ADDRESS + TAD GETJM7 + TAD GETJT2 /ARE WE IN PROPER BLOCK? + SPA /ENTRY<7? + JMP .+3 /YES + DCA GETJT2 /NO, LINK TO NEXT + JMP GETJ1 /AND TRY AGAIN + STL CLA IAC /SET LINK TO LET CALLER KNOW WE WERE SUCCESSFUL + TAD GETJT2 /INDEX INTO BLOCK + TAD GETJT1 /START OF BLOCK +GETJ3, ISZ GETJTB /SKIP CALLING ARGUMENT +GIRSB, +GETJT3, 0 /BACK TO CALLING FIELD + JMP I GETJTB +GETJTZ, 0 /POINTER TO LOC. 0 OF FIELD 1 (NOT FOR TEMPORARY STORAGE) + +GIRSCT, /POINTER TO ITEM COUNT +GETJT1, 0 +GIRST, +GETJT2, 0 +GETJM7, -7 + /STORE CHARACTER +/CALL WITH ADDRESS OF DDB IN AC, CHARACTER IN TTCHAR +/ STORE +/ ADDRESS OF ROUTINE TO CHECK BUFFER SIZE +/ WON'T FIT +/ OK +EMPTY=WS1 +DBINPA=C0004 + +GIRSC, 0 + TAD DBINPA + DCA GIRSB /POINTS TO ADDRESS OF BUFFER + TAD I GIRSB + SNA /IS BUFFER SET UP? (I.E. IS FILL POINTER NON ZERO?) + JMP GIRSC8 /NO - GO GET A BUFFER + DCA GIRSCT /POINTER TO FILL COUNT + ISZ I GIRSCT /ANY ROOM LEFT? + JMP GIRSC1 /YES + CDF + TAD I GIRSC /GET ADDRESS OF SIZE SUBROUTINE + DATFLD + DCA GIRST + TAD GIRSB + IAC /POINT TO CHARACTER COUNT + JMS I GIRST /GO CHECK BUFFER SIZE + JMP GIRSC0 /BUFFER ALREADY FULL - NO ROOM FOR THIS ENTRY +GIRS11, CLL CLA CMA RTL /IS THERE ENOUGH (I.E. 3 BLOCKS) FREE CORE LEFT? + TAD FRECNT + SPA SNA CLA + JMP GIRSC0 /NO - DON'T GIVE HIM ANOTHER BUFFER NOW + TAD GIRSCT /OK - GET A BUFFER + CDF + GETBLK /NO, LINK NEW BUFFER + JMP GIRSC0 /NONE AVAILABLE + DATFLD + TAD I GIRSCT /POINTER TO HEAD OF NEW BUFFER + DCA I GIRSB /BUFFERS NOW CHAINED TOGETHER +GIRSC7, TAD I GIRSB + DCA GIRSCT /POINT TO NEW FILL COUNT + TAD GIRSIZ /INITIALIZE CHAR COUNT TO -12 + DCA I GIRSCT /AND SAVE IN NEW BLOCK +GIRSC1, TAD I GIRSCT /ARE WE DOING LAST THREE CHARACTERS IN BLOCK? + TAD C0003 + SMA + STL RAL /YES SO MULT. BY 2 THEN ADD 1 + SPA /PACK? + STL CIA /NO - GET ADDRESS WITHIN BUFFER + TAD I GIRSB /START OF BUFFER + DCA GIRSCT /ADDRESS TO STORE CHARACTER + TAD TTCHAR + SNL /PACK? + JMP GIRSC4 /YES + AND C0377 + GIRSC5, DCA I GIRSCT /STORE CHARACTER + ISZ GIRSB /POINT TO CHARACTER COUNT + ISZ I GIRSB /COUNT THIS ENTRY + ISZ GIRSC /INDICATE SUCCESS +GIRSC3, ISZ GIRSC /TO SKIP PAST ARG. + JMP I GIRSC +GIRSC4, RTL /SHIFT BITS TO LEFT + RTL + AND C7400 + TAD I GIRSCT /AND SAVE IN CURRENT LOCATION IN BUFFER + DCA I GIRSCT + ISZ GIRSCT /NEXT LOCATION IN BUFFER + TAD TTCHAR /GET LOW 4 BITS FROM CHARACTER + RTR + RTR + RAR + AND C7400 /AND COMBINE WITH PREVIOUS CHARACTER + TAD I GIRSCT /SAVE THE WHOLE MESS + JMP GIRSC5 /AND AWAY + +GIRSC8, CDF /ATTACH A BUFFER TO FILL POINTER + TAD GIRSB /LINK ADDRESS + GETBLK + JMP GIRSC3 /CAN'T GET ONE - TOO BAD + DATFLD /OK - SET UP POINTERS + STL RTL / 2 PLUS + TAD GIRSB /ADDRESS OF FILL POINTER + DCA EMPTY / = ADDRESS OF EMPTY COUNT + STA + TAD GIRSIZ /-13 TO THE EMPTY COUNT + DCA I EMPTY + ISZ EMPTY /NOW INITIALIZE THE EMPTY POINTER + TAD I GIRSB /SET EMPTY POINTER EQUAL TO FILL POINTER + DCA I EMPTY /SINCE IT'S THE ONLY BUFFER + JMP GIRSC7 +GIRSC0, DATFLD /COULDN'T SQUEEZE CHARACTER IN + STA /BUT WE ALREADY BUMPED FILL COUNT + DCA I GIRSCT /INDICATE CURRENT BLOCK IS STILL FULL + JMP GIRSC3 /AND EXIT WITHOUT SKIPPING + +GIRSIZ, -12 /10 (DECIMAL) CHARACTERS/BLOCK + + OVRLA1, JMS I FIUSER + WAIT + +REMJOB, 0 + TAD SCHNEW /GET NEW JOB MASK + AND JOB /AND THE CURRENT JOB + DCA CURJOB /IF THERE'S A JOB; REMEMBER HIM/HER + SAVJOB /SAVE HIS/HER STATE + STA + DCA SCHNEW /SET MASK FOR FULL SLICE + JMP I REMJOB + +READFI, TAD SIREG /FIND RESIDENT FIELD FOR THIS JOB +FILCON, DCA WS0 + JMS REMJOB /BUMP OFF THE PRESENT USER - BUT MAYBE REMEMBER WHO [S]HE IS + TAD WS0 + CORE + CJOB /ANY FIELD WITH THIS JOB IN IT IS OK + HLT /IF IT'S NOT THERE IT'S DOOMS DAY FOR ALL + DCA L2SF /RESTORE FOR THIS JOB + TAD WS0 +RUNFI, RESJOB /RESTORE LEVEL TWO FOR THIS JOB + GETJTW /GET ADDRESS OF FILE PARAMETER BLOCK + JOBLNK + JMP I SIFILA /AND OFF TO THE FILE HANDLER + /RETURN BLOCK TO FREE LIST +/CALL TAD BLOCK ADDRESS +/ RETBLK +/ RETURN WITH LINK IN AC + +RETB, 0 + DCA RETB1 /SAVE BLOCK ADDRESS + RDF + TAD C6203 + DCA RETF /FOR RETURNING TO CALLER + TAD RETB1 + CLL + TAD RETEND /SEE IF IT'S FIP'S BLOCK OR A FILL COUNT FOR A LINKED BUFFER + SZL CLA + JMP RETF /IT IS - DON'T RELEASE IT + TAD RETB1 + SNA + HLT /SHOULD NEVER RETURN 0000 + AND C0007 + SZA + HLT /SHOULD ALWAYS BE XXX0 + DATFLD + TAD I RETB1 /NOW GET THE LINK, IF ANY + DCA RETBL /SAVE IT + TAD FREE /GET OLD START OF FREE LIST + DCA I RETB1 /PUT IT IN LINK + TAD RETB1 /PUT ADDRESS OF THIS BLOCK + DCA FREE /AS START OF FREE LIST + ISZ FRECNT /INCREMENT FREE + TAD RETBL +RETF, 0 /RETURN WITH LINK + JMP I RETB + +RETEND, -FIPBLK + + +SIFILA, SIFILE + SJCOPY, JSIOTC + +SUJERR= C0007 +/RESTART USER JOB AT RESTART ADDRESS + +GIR90, CIA /NEGATE THE JOB NUMBER + TAD JOB /IS THE JOB CURRENTLY RUNNING? + SZA CLA + JMP GIR91 /NO + TAD I WS0 + DCA L2SV0 /SET PC=RESTART ADDRESS + DCA L2SVLK /SET LINK=0 + DCA L2SA /SET AC=0 + JMP I GIR0A /LEAVE +GIR91, TAD I WS0 + DCA I JOBSWA /SET PC=RESTART ADD + ISZ JOBSWA + STA + DCA I JOBSWA /SET LINK=-1 SO WE'LL REMEMBER TO CLEAR HIS'HER LINK & AC LATER + JMP I GIR0A +GIR0A, KBD01 +CNOTR, -NOTRUN-1 + +/START USER JOB + +SUJ, TAD L2SF /CLEAR NOTRUN FLAG SO JOB CAN BE SWAPPED + AND C0007 /GET CORTBL INDEX + TAD CORTBA + DCA SUJSRC /POINTS TO ENTRY IN CORTBL FOR THIS JOB + TAD I SUJSRC /GET CORTBL ENTRY + AND CNOTR /CLEAR NOT RUN BIT + DCA I SUJSRC /SAVE ENTRY + TAD JOB /IS IT A PHANTOM? + AND C0600 +SUJ2, SZA CLA + EXIT /YES - WE'RE ALL SET +SUJ5, GETJTW /NO, IOT RESULTS TO USER? + JOBSTS + AND SJCOPY /IOTC BIT IN STR0 + DATFLD + SNA + JMP SUJ4 /NO - WAS THERE A SYSTEM ERROR? + CMA /CLEAR THE BIT + AND I JOBSWA /JSIOTC:=0 + DCA I JOBSWA /SAVE NEW STR0 + CDF /GET # ARGUMENTS TO RETURN + GETJTW + JOBLNK + DCA SUJSRC /POINTS TO WORD1 OF PARAMETER BLOCK + DATFLD + TAD I SUJSRC /IOT IN QUESTION + CDF + RAR /SAVE "WHO FINF" INDICATOR IN LINK + AND C0004 + SNA CLA /WAS BIT 8 ON? + JMP SUJ3 /NO - MUST HAVE BEEN AN RFILE OR WFILE WINDOW TURN + CML CMA RAL + CLL RTL /CA=-3 FOR "WHO"; AC=-7 FOR "FINF" + DCA SUJCNT /SAVE COUNT + TAD SUJSRC /RETURN PARAMETER BLOCK + RETBLK + CLA + ISZ SUJSRC /POINTS TO WORD 2 OF BLOCK + TAD UUDF /TRANSFER RESULTS TO USER'S FIELD + DCA SUJDFS /...SET FIELD IN BLT CALL + TAD L2SA /POINTS TO USER'S PARAMETERS + DCA SUJDES /SAVE FOR BLT + DCA L2SA /CLEAR HIS/HER AC + BLT /MOVE RESULTS TO USER + DATFLD /FROM FIELD 1 +SUJSRC, 0 /SOURCE ADDRESS +RETBL, +SUJDFS, 0 /TO USER FIELD +RETB1, +SUJDES, 0 /AT THIS ADDRESS +SUJCNT, 0 /-WORD COUNT + TAD JOB + RUNABL /IS [S]HE STILL RUNNABLE? + WAIT /NO - JUST NEEDED TO PASS THE INFO TO HIM/HER + JMP SUJ5 + +SUJ3, TAD SUJSRC /UFILE RETURN + JMP I SIFILA + +SUJ4, ISZ JOBSWA /POINT AT STR1 + TAD I JOBSWA + STL RTR /PLACE SYSTEM ERROR PENDING BIT IN LINK + SNL /IS THERE AN ERROR? + JMP SUJ2 /NO; GO CLEAR AC AND EXIT +/ROUTINE TO START USER JOB AT ERROR ADDRESS +/DOES A JMS TO ERROR ADDRESS +/USER PC AT TIME OF ERROR TO ADDRESS; JMP TO ADD+1 + CLL RTL /CLEAR THE ERROR PENDING BIT + DCA I JOBSWA /TO AVOID A SECOND JMS TO HIS ERROR ROUTINE + TAD JOBSWA + TAD C0005 + DCA JOBSWA /POINTS TO ERROR RESTART ADD + TAD I JOBSWA /ERROR ADDRESS + DCA WS0 + TAD L2SV0 /OLD PC + UDF /GET USER'S FIELD + DCA I WS0 /SAVE OLD PC + IAC + TAD WS0 /ERROR ADDRESS + 1 + DCA L2SV0 /NEW PC + EXIT + + /PAPER TAPE READER SERVICE FOR TSS/8 + +UPTR, JMS I PTRCHK /DOES [S]HE OWN DEVICE? +PTRDEV, DEVTBE /POINTS TO READER ENTRY IN DEVTBL + TAD URCBI /CHECK FOR "RCB" + TAD UUOCAL + SNA CLA + JMP URCB /IT IS! + JMS I PTRIOT /ANALYZE IOT + JMP URRS /READ A STRING +PTRFL, JSPTR /READER FLAG + JMP I PTRSKP /WE ALWAYS SKIP + SNL CLA /RRB? + UUOEXT /NO - MUST HAVE BEEN RFC - SO WHAT! + DCA WS0 /SET READER'S BREAK MASK TO 0 + DATFLD + TAD I PTRDEV /ADDRESS OF DDB + FETCH /FETCH A CHARACTER FROM READER BUFFER + JMP PSTWT0 /NONE AVAILABLE - START READER + DCA PTRCH /SAVE FOR NEXT RRB + CDF + TAD PTRACA /POINTS TO L2SA + IOR /OR CHARACTER INTO L2SA +PTRCH, 0 + UUOEXT /EXIT TO USER +PTRSKP, UUOEX2 + +URRS, DATFLD + TAD I PTRDEV /GET DDB ADDRESS + DCA CONDDB + JMS I PSTRIN /TRANSFER STRING TO USER + JMP PSTWT0 /INSUFFICIENT NUMBER OF CHARACTERS IN BUFFER + UUOEXT + +URCB, DATFLD + TAD I PTRDEV /CLEAR THE ENTIRE READER BUFFER + JMS I PTRCLR + UUOEXT + PSTWT0, STA +L2PTR1, DCA PTRSET /REMEMBER WHY WE ARE HERE + CDF CIF /SELECT F0 AND INHIBIT INTERRUPTS + TAD I PTRTIM /IS THE READER BUSY? + SNA CLA + RFC /START THE READER + CLL STA RAL /AC=-2 + DCA I PTRTIM /SET READER TIMER + DCA I RCNTA /NO LIMIT UNTIL IT'S READ AT LEAST ONE BLOCK WORTH + ISZ PTRSET /FROM UUO OR LEVEL 2? + EXIT /LEVEL 2 - FINISHED + STA + TAD L2SV0 /BACK UP HIS PC FOR A REDO + DCA L2SV0 + TAD PTRFL + UUOEXT /NOW WAIT FOR THE READER + +PTRSIZ, 0 + DCA PTRSET /SAVE POINTER TO CHARACTER COUNT + ISZ PTRSIZ /WE ALWAYS SUCCEED + CDF CIF /NO INTERRUPTS WHILE WE CHECK THE READER'S STATUS + TAD I PTRTIM + SMA CLA /IS IT STILL RUNNING? + JMP PTRSI2 /NO - JUST MAKE SURE THE FLAG IS SET + TAD FRECNT /HOW'S THE SUPPLY OF FREE CORE? + TAD C7770 + SMA SZA CLA + TAD PTRFUL /MINUS NUMBER ALLOWED + DATFLD + TAD I PTRSET /PLUS CURRENT CHARACTER COUNT + CDF + SMA + STA /SHUT DOWN THE READER AFTER THE NEXT CHARACTER + DCA I RCNTA + TAD I RCNTA + TAD C0100 + SMA CLA +PTRSI2, JMS PTRSET /SET THE READER FLAG IN STR1 + JMP I PTRSIZ + + L2PTR, JMS PTRSET /WAKE HIM/HER UP - [S]HE'S HUNG + TAD I PTRDEV /DDB? + SNA + EXIT /NO + DCA AXS2 /YES - SAVE IT, WE'LL NEED THE JOB # FROM IT + TAD AXS2 + TAD C0004 + DCA WS0 + TAD I WS0 /IS IT EMPTY? + SZA CLA + EXIT /NO - SO IT ISN'T OFFICIALLY HUNG YET + TAD I AXS2 /JOB OWNING PTR + CDF + ERROR /REPORT THE HUNG READER TO HIM/HER + HUNGDV + EXIT + +PTRSET, 0 + DATFLD + TAD PTRDEV /READER'S POSITION IN DEVTBL + DCA CONDBA + TAD PTRFL + JMS I SETFLG /SET JSPTR IN STR1 + JMP I PTRSET + +PTRCHK, DEVCHK +PTRIOT, UKT1 +PSTRIN, UKREAD +PTRTIM, TIMPTR +RCNTA, RCNT +URCBI, -6017 +PTRCLR, CLRBUF +PTRFUL, -240 + \ No newline at end of file diff --git a/tss8/system/ts8b.pal b/tss8/system/ts8b.pal new file mode 100644 index 0000000..433460b --- /dev/null +++ b/tss8/system/ts8b.pal @@ -0,0 +1,1263 @@ +/ROUTINE TO HANDLE EASY DECTAPE STUFF +/LIKE DTSF AND DTRB +/DTSF ALWAYS SKIPS + +UDTRBS, ISZ L2SV0 /BUMP HIS PC +PTRACA, L2SA /TRICKY, TRICKY +UDTRB, GETJTW /GET LAST VALUE OF STATUS B + JOBSTB + DCA L2SA /GIVE IT TO USER + UUOEXT + +C4000, 4000 +MCSCQ, -4044 /COVERS BOTH ^Q AND ^S + +CONSQ, 0 + ISZ CONDBA /POINT TO OUTPUT SIDE IN DEVTBL + TAD TTCHAR + CLL RTR + TAD MCSCQ /CHECK FOR ^Q AND ^S + SZA CLA + JMP I CONSQ /NEITHER + TAD I CONDBA + SNA + JMP I CONSQ /DOESN'T HAVE AN OUTPUT DDB - SO ^S/^Q MEANS NOTHING + DCA WS2 /ADDRESS OF OUTPUT DDB + TAD I WS2 + AND C3777 /CLEAR THE BIT FIRST + SNL /NOW WHICH WAS IT? + TAD C4000 /^S - SET THE BIT TO INHIBIT HIS/HER TTY FROM PRINTING + DCA I WS2 /SAVE UPDATED STATUS + SZL /WHICH WAS IT AGAIN? + JMS TYPE /^Q - START HIM/HER TYPING IF [S]HE HAS ANYTHING TO TYPE + JMP I .+1 /TAKE SUCCESSFUL EXIT THROUGH "KEY" + KBDXIT + /MULTI-FIELD ROUTINE TO OUTPUT TO A TTY, PTP, OR LPT +/CALL: CONDBA CONTAINS POINTER TO POSITION IN DEVTBL +/ TTCHAR CONTAINS CHARACTER TO BE OUTPUT +/ PRINT +/ NO ROOM IN OUTPUT BUFFER +/ OK + +PRINT0, 0 + RDF + TAD C6203 + DCA PRINTX /REMEMBER FROM WHENCE WE CAME + DCA EMPTY /CLEAR EMPTY BUFFER INDICATOR +PRINT1, DATFLD + TAD I CONDBA /GET ADDRESS OF DDB + SNA + JMP PRINT2 + STORE /STASH THE CHARACTER IN HIS BUFFER + OUTSIZ /ADDRESS OF SIZE CHECK ROUTINE FOR OUTPUT + JMP PRINTX /WOULDN'T FIT + ISZ PRINT0 /OK - SKIP ON RETURN + TAD EMPTY /WAS THE BUFFER EMPTY? + SZA CLA + JMS TYPE /YES - BETTER START THE HARDWARE +PRINTX, .-. /FIELD SELECT + JMP I PRINT0 /AND BACK +PRINT2, TAD CONDBA /NO BUFFER SETUP YET + CDF + GETBLK /CREATE A PSEUDO DDB + JMP PRINTX /NO BLOCKS AVAILABLE + JMP PRINT1 +TTOFLB, TTOFLG + +CORSR4, +TYPE, 0 + TAD CONDBA /DEVTBL POINTER + TAD OUTOFF /MINUS DIF. + CLL RAR /DIVIDE BY 2 + DCA OUTSIZ / = OUTREG POINTER + CIF /NO INTERRUPTS + TAD I OUTSIZ + AND C4001 + SZA CLA /CHECK SERVICE AND CHARACTER FLAGS + JMP I TYPE /CHARACTER WILL BE TAKEN BY AN INTERRUPT + STL RAR + TAD I OUTSIZ /SET THE SERVICE FLAG + DCA I OUTSIZ + CDF + DCA I TTOFLB /SCHEDULE LEVEL 2 TO PRINT IT + JMP I TYPE + CORSR2, +OUTSIZ, 0 + DCA TYPE /SAVE POINTER TO CHARACTER COUNT + TAD I TYPE /CURRENT COUNT + SPA /DOES IT INCLUDE A FILLER CHARACTER COUNT + AND C0377 /YES - DISREGARD IT + DCA TYPE /THE ACTUAL COUNT TO COMPARE WITH + TAD PRINTX + AND C0070 + SZA CLA + JMP OUTSI1 /CALLED FROM SI + TAD CONDBA + CLL + TAD LPTSIZ /ALLOW LINE PRINTER BUFFER TO GOBBLE UP ABOUT 40% OF FREE CORE + AND FRECNT + AND C0400 /DON'T LOOK AT TOO MUCH FREE CORE + SNA + TAD FRECNT + SZL + CLL RTL /THE LINE PRINTER GETS 4 TIMES AS MUCH + CIA +OUTSI2, TAD TYPE /CURRENT COUNT + TAD OUTLIM + SPA CLA + ISZ OUTSIZ /STILL ROOM + JMP I OUTSIZ +OUTSI1, TAD C7366 + JMP OUTSI2 + +C4001, 4001 +C7366, 7366 +OUTLIM, 25 +LPTSIZ, -DEVTBE-3 +OUTOFF, -OUTDIF + /SEARCH FOR JOB IN CORE +/CALL TAD JOB # +/ JMS CORSRC +/ MASK +/ NOT THERE, AC:=0 +/ THERE, SAVE FIELD IN AC + + +/THESE TWO WORDS MUST IMMEDIATELY PRECEDE CORSRC +/THEY MUST ALSO BE ORIGINED AT CORSRC-2 +*CORSRC-2 + +CORCNT, 0 /INIT TO -NUMBER OF USER FIELDS +CORTBE, 0 /INIT TO -((END OF CORTBL)+1) + +CORSRC, 0 /ENTER WITH BIT PATTERN TO MATCH + AND I CORSRC /MASK AS SPECIFIED + CIA + DCA CORSR4 /-WHAT WE WANT + RDF /FIGURE OUT WHENCE WE CAME + TAD C6203 + DCA CORSR3 /SO WE CAN RETURN + TAD I CORSRC /GET THE MASK + DCA CORSR2 /SAVE IT + ISZ CORSRC /SKIP PAST MASK IN CALL + CDF + TAD CORCNT /-# ENTRIES TO CHECK + DCA AXS1 /USED AS COUNTER +CORSR1, ISZ CORTBP /INCREMENT TABLE POINTER + TAD CORTBP /ARE WE AT END OF TABLE? + TAD CORTBE + SPA CLA + JMP CORSR5 /NO + STL RTL + TAD CORTBA /YES, START ALL OVER AT FIELD 2 + DCA CORTBP +CORSR5, TAD I CORTBP /GET TABLE ENTRY + AND CORSR2 /MASK IT + TAD CORSR4 /COMPARE WITH DESIRED ENTRY + SNA CLA + JMP CORSR6 /FOUND IT! + ISZ AXS1 /NOT YET + JMP CORSR1 /KEEP GOING +CORSR3, 0 /RETURN WITH AC=0 + JMP I CORSRC + CORSR6, TAD CORTBA /WE HAVE IT; GET CORTBL INDEX + CIA + TAD CORTBP + DCA AXS1 /FIELD # + TAD CORSR4 /WE HAVE TO SET MODE BIT APPROPRIATELY + CIA /RECOMPLEMENT CALLING JOB # + AND C0600 /A PHANTOM? + SNA CLA /EXEC MODE? + TAD C0010 /NO - SET USER MODE BIT + TAD AXS1 /SET UP SAVE FIELD + CLL RTL /SHIFT AND ADD DATA FIELD + RAL + TAD AXS1 + ISZ CORSRC /SKIP TO INDICATE SUCCESS + JMP CORSR3 /BACK +CORTBP, CORTBL+1 / "ROUND-ROBIN" POINTER + +/WHEN THE USER EXECUTES A "SEA" IOT, +/WE MUST DO TWO THINGS: +/ 1) SET THE ERROR ENABLE BIT IN STR0 +/ 2) SAVE THE USER'S AC IN THE JOB DATA AREA +/ JSEREN IS SET HERE +/ WE GO TO USEA1 TO SAVE THE ERROR ADDRESS +/JSEREN MAY BE CLEARED BY .RUN, START, OR +/A USER EXECUTING A "CLEAR STATUS" IOT. + +USEA, DATFLD /SET JSEREN WHEN USER EXECUTES SEA + TAD I CJOBDA /POINTS TO WORD 0 OF JOB DATA AREA + IAC /POINTS TO STR0 + IOR /OR IN JSEREN + JSEREN + CDF + JMP I .+1 + USEA1 /GO PICK UP ERROR ADDRESS + +/GET A BUFFER FROM FREE LIST +/CALL TAD (ADDRESS TO STORE LINK) +/ GETBLK +/ NONE AVAILABLE +/ OK WITH LINK STORED + +GETB, +GETDB2, 0 + DCA GETBT /SAVE ADDRESS TO SAVE PTR + RDF /SAVE CALLING FIELD + TAD C6203 + DCA GETB1 /SO WE CAN GET BACK + DATFLD + TAD FREE /ANY BUFFERS LEFT? + SNA + JMP GETB1 /NONE LEFT + DCA I GETBT /STORE LINK IN ADDRESS SPECIFIED + STA /NOW WE'LL BE GOOD GUYS + TAD FREE /AND PREPARE TO CLEAR THE BUFFER + DCA AXS1 + TAD I FREE /REMOVE FROM FREE LIST + DCA FREE /SET NEW POINTER TO FREE LIST + ISZ GETB /INDICATES SUCCESS + STA /DECREMENT FREE COUNT + TAD FRECNT + DCA FRECNT + TAD C7770 /8 WORDS TO ZERO + DCA GETBT + DCA I AXS1 + ISZ GETBT /DONE? + JMP .-2 /NO +GETB1, 0 /RETURN + JMP I GETB + +USTM, TAD L2SA /GET UNITS OF TIME IN AC + DCA USTM1 /SAVE IT + DCA L2SA /ZERO USER'S AC + TAD USTM1 + SNA /ANY TIME SPECIFIED? + UUOEXT /NO, SO DON'T SLEEP + JMP I USTM2 /YES, GO PUT TO SLEEP +USTM2, DOUSTM + /GET A DATA BLOCK +/CALL TAD LINK +/ GETDDB +/ NONE AVAILABLE +/ OK + + +GETDB0, +DEVWT0, 0 + DCA GETDB1 /ADDRESS OF DDB POINTER (USUALLY IN DEVTBL) + RDF + TAD C6203 + DCA GETDB5 /SAVE CALLING FIELD SO WE CAN GET OUT + CDF + TAD GETDB1 /GET A BUFFER FROM FREE CORE + GETBLK + JMP GETDB5 /SORRY + DATFLD + ISZ GETDB0 /SUCCESSFUL RETURN + TAD I GETDB1 + TAD C0003 + DCA GETDB1 /SAVE IT + TAD CLK1 /GET LOW ORDER CLOCK + RTL /AND SHIFT BITS 0-2 INTO AC 9-11 + RTL + AND C0007 /GET MOST SIGNIFICANT BITS FROM LOW ORDER + DCA GETDB2 /SAVE THEM + TAD CLK2 /GET HIGH ORDER TIME + RTL /SHIFT LEFT 3 PLACES + RAL + AND C7770 /KEEP BITS 0-8 + TAD GETDB2 /ADD COMPONENT DERIVED FROM CLK1 + DCA I GETDB1 /SAVE IN DDB +GETDB5, 0 /RETURN + JMP I GETDB0 + + + +CTIMER, -5 +TIMCOA, TIMCON +CONJMS, JMSTIM +TTIMEB, TTIMER +L2OUT, TAD CTIMER /AC=-5 + DCA I TIMCOA /RESET THE OUTPUT MASTER TIMER + TAD CONJMS + DCA I TTIMEB /PLACE THE TIMER "HOOK" IN CONOUT + DCA I TTOFLC /SCHEDULE CONOUT FOR LEVEL 2 + /BEFORE DISMISSING BACK TO USER JOB, IT IS A GOOD IDEA TO CHECK AND SEE IF ANY OTHER +/LEVEL 2 PROCESSING HAS BEEN SCHEDULED WHILE WE WERE WORKING ON THE LAST REQUEST +/WE CAN ASCERTAIN IF THIS IS THE CASE BY COMPARING THE L2QUE EMPTY AND +/FILL POINTERS -- IF THEY ARE EQUAL, THEN WE'RE DONE, AND CAN GO TO L2EX1, +/WHERE BOTH POINTERS ARE RESET. IF UNEQUAL, WE GET THE NEXT ENTRY POINTED +/TO BY L2QE, AND DISPATCH TO IT LEAVE LEVEL 2 + +L2EXIT, CDF + IOF /NO INTERRUPTS WHILE CHECKING L2QUE STATUS + CLA + TAD I L2KEY + SZA CLA + JMP I CONINP /KEYBOARDS NEED SERVICE - TAKE CARE OF THEM FIRST +L2EX0, TAD L2Q /ARE FILL AND EMPTY POINTERS EQUAL? + CIA + TAD L2QE /-FILL PTR + EMPTY PTR + SNA CLA + JMP L2EX1 /YES - WE ARE CAUGHT UP + TAD I L2QE /NO; GET ADDRESS FROM L2QUE + DCA JOBSWA + ION /INTERRUPT BACK ON + JMP I JOBSWA /DISPATCH + +L2EX1, TAD L2QTA + DCA L2QE + TAD L2QTA + DCA L2Q /RESET FILL POINTER + TAD I TTOFLC + SNA CLA + JMP I CONOUA /PRINTERS NEED SERVICE + TAD L2SFA + JMP I .+1 /NOW BACK TO WORK + RESTOR + +TTOFLC, TTOFLG +CONOUA, CONOUT +L2QTA, L2QTB-1 +L2KEY, KEYC +CONINP, CONIN +L2SFA, L2SF +KBDJOA, DEVJOB + GETDB1, +CLST0, +KBDDLM, 0 /ROUTINE TO SET DELIMITER FLAG IN STR1 + TAD CONDDB + JMS I KBDJOA /GET JOB # + DCA BONUS /GIVE HIM/HER HIGHEST SCHEDULER PRIORITY + TAD C0100 /JSDEL + JMS I SETFLG /SET HIS/HER DELIMITER BIT + JMP I KBDDLM /AND BACK + +GETBT, +USTM1, +CLSTR1, 0 /ROUTINE TO CLEAR BITS IN STR1 + CMA /ENTER WITH BITS TO CLEAR IN AC + DCA CLST0 /SAVE MASK OF BITS TO SAVE + CDF + GETJTW /GET CURRENT SETTING OF STR1 + JOBSTS+1 + AND CLST0 /CLEAR SELECTED BITS + DATFLD + DCA I JOBSWA /SAVE CLEARED STATUS REGISTER + JMP I CLSTR1 /RETURN + +URK050, TAD C0005 +UDTXA0, TAD C0002 + CLL RAR + CIF DATFLD-1 /FIELD 1 DTA UUO SERVICE + JMP I .+1 + UUDTRK + *FISUBL+1202 +/BLOCK TRANSFER +/CALL BLT +/ 62S1 SELECT SOURCE DATA FIELD +/ SOURCE +/ 62D1 SELECT DESTINATION DATA FIELD +/ DESTINATION +/ -NUMBER WORDS +/ RETURN +BLT0, +RUNTDB, 0 + TAD I BLT0 /GET SOURCE FIELD SELECT + DCA BLT1 /SAVE + ISZ BLT0 /POINTS TO SOURCE ADDRESS + STA + TAD I BLT0 /CORE ADDRESS -1 OF SOURCE + DCA AXS1 /AUTO INDEX + ISZ BLT0 /POINTS TO DESTINATION FIELD SELECT + TAD I BLT0 /GET DESTINATION SELECT + DCA BLT2 /SAVE + ISZ BLT0 /POINTS TO DEST. ADD + STA + TAD I BLT0 /DEST. ADD-1 + DCA AXS2 /AUTO INDEX + ISZ BLT0 /POINTS TO -WORD COUNT + TAD I BLT0 + DCA BLTC /SAVE + ISZ BLT0 /RETURN ADDRESS + RDF + TAD C6203 + DCA BLTF /SAVE RETURN FIELD SELECT +BLT1, 0 /SELECT SOURCE DATA FIELD + TAD I AXS1 +BLT2, 0 /SELECT DESTINATION DATA FIELD + DCA I AXS2 + ISZ BLTC /DONE? + JMP BLT1 /NO +BLTF, 0 /RETURN + JMP I BLT0 + + /TEST JOB FOR RUNNABILITY +/CALL TAD JOB # +/ RUNABL +/ NOT RUNNABLE +/ RUNNABLE + +BLTC, +RUNTST, 0 /COME HERE WITH JOB # IN AC + TAD JOBTBA /TO GET JOBTABLE ADDRESS + GETJTI /GET STR0 + JOBSTS + SMA /RUN BIT ON? + JMP RUNTS3 /NO + DATFLD /YES, SEE IF IT RAN AS A COMPUTE BOUND JOB LAST TIME + AND C1000 /IS BIT 1000 ON SHOWING THAT IT WAS A COMPUTE BOUND JOB? + SNA /SNA + JMP RUNTS2 /NO, IT MAY BE READY TO RUN - TEST FURTHER + CMA /LAST TIME IT WAS COMPUTE BOUND, SKIP THIS TURN + AND I JOBSWA /CLEAR THE BIT 1000, SO THAT IT WILL RUN NEXT TIME + DCA I JOBSWA + JMP RUNTS1 /RETURN BY NOT RUNNABLE EXIT +RUNTS2, ISZ JOBSWA /GET THE ADDRESS OF STR1 + TAD I JOBSWA + ISZ JOBSWA + ISZ JOBSWA /POINT TO WAIT MASK 1 + AND I JOBSWA /ANY STR1-MASK1 MATCHES? + SZA CLA + ISZ RUNTST /YES +RUNTS1, CDF /NO + JMP I RUNTST +RUNTS3, AND RC0147 + SNA /FIP REQUEST STILL PENDING? OR ANY ERRORS SINCE HE STOPPED? + JMP I RUNTST /NONE + AND C0007 /IS IT FOR FIP OR SI? + SNA CLA + JMP RUNTS1-1 /FIP - LET HIM FINISH UP SO WE DON'T LOSE A FREE CORE BLOCK + DATFLD + CLL CMA RTR + AND I JOBSWA /CLEAR HIS ERROR ENABLE + DCA I JOBSWA + JMP RUNTS1-1 /ERROR - LET SI REPORT IT NOW + +RC0147, JSIOT JSIOTC UUOERF SWPRER SWPWER DSKERR HUNGDV +SIWAIT, 0 + + +L2SI, TAD SIWAIT /NUMBER OF SI COMMANDS IN "WAIT" + TAD COMCNT /PLUS NEW COMMANDS + DCA COMCNT /NOW THEY'RE ALL BACK ON-LINE + DCA SIWAIT /NONE NOW IN WAIT STATE + EXIT + /SET SYSTEM ERROR CODE +/CALL TAD JOB # +/ JMS SYSERR +/ ERROR CODE +/ NORMAL RETURN + + +SYSERR, 0 + AND C0037 /JOB # ONLY + SNA /IS IT JOB 0? + JMP SYSER1-1 /YES, RETURN + TAD JOBTBA /POINTER TO JOBTBL + GETJTI /GET CURRENT VALUE OF STR0 + JOBSTS + AND C0007 /EXTRACT ANY ERROR CODE IN THERE + SZA CLA /ANY OLD BITS? + JMP SYSER1 /YES; DON'T CONFUSE THE ISSUE + TAD I SYSERR /GET THE ERROR CODE SUPPLIED + DATFLD + TAD I JOBSWA /ADD IT TO OLD VALUE OF STR0 + DCA I JOBSWA /SAVE THE WHOLE MESS + ISZ JOBSWA + TAD JOBSWA /POINTS TO STR1 + IOR /SET THE "ERROR HAS OCCURRED" BIT IN STR1 + JSERR + CDF +SYSER1, ISZ SYSERR /SKIP ARGUMENT IN CALL + JMP I SYSERR /RETURN +/SKIP IF DISK NOT ACTIVE +/CALL TAD FIELD # +/ JMS DSKACT +/ ACTIVE +/ NOT ACTIVE + +DSUSTA, +DAUTBL, DSUTBL-1 + +DSKACT, 0 + CLL RTL /FIELD # *4 IS MAJOR INDEX IN DSUTBL + TAD DAUTBL /START OF TABLE -1 + DCA AXS1 /AUTO INDEX + DATFLD + TAD I AXS1 /FILE 1 BUSY? + TAD I AXS1 / " 2 " + TAD I AXS1 / " 3 " + TAD I AXS1 / " 4 " + CDF + SNA CLA /IF ANY ONE WAS BUSY, AC.NE.0 + ISZ DSKACT /NO ACTIVITY; INDEX RETURN + JMP I DSKACT /AND OFF + /START USER DISC REQUEST FROM QUEUE +/IF THIS ROUTINE IS CALLED, THERE HAD +/BETTER BE SOMETHING IN SQREQ OR DSUTBL +/FOR IT TO FIND. IT WON'T STOP LOOKING! +/CALL JMS DSUSER +/ RETURN + +DSUSER, 0 + TAD SQREQ /IS A SWAP REQUESTED? + SZA CLA + JMP DSUSR5 /YES, DO IT FIRST + DATFLD +DSUSR4, TAD I DSKPTR /GET ENTRY FROM DSUTBL + SNA /IS IT A REQUEST? + JMP DSUSR4 /NO - CHECK NEXT POSITION + CMA + SNA /END OF LIST? + JMP DSUSR2 /YES + CMA /REAL REQUEST FLIP IT BACK AGAIN + CDF + DSGO /YES, START IT UP + JMP I DSUSER /AND BACK +DSUSR5, JMS I SWPIOA /START A SWAP DISK I/O + JMP I DSUSER /RETURN BACK + + +DSUSR2, TAD DSUSTA /START OF DSU TABLE +7 + TAD C0007 + DCA DSKPTR + JMP DSUSR4 + *2000 + +/KEYBOARD SERVICE +/ENTERED WHENEVER CHARACTER IS RECEIVED. --==-- HIGHEST PRIORITY ON LEVEL 2 + +BELL=1000 +KLOST, 0 /NUMBER OF CHARACTERS LOST BECAUSE OF OVERFLOW SINCE THE SYSTEM WAS LAST STARTED +TYPEA, TYPE +KEYB, RINGIN /POINTER TO INPUT RING BUFFER +KEYCNT, -INPUTS +KEYA, KEYC +KEYSIZ, -INPUTS /SIZE OF KEYBOARD INPUT RING BUFFER +CONIN, DCA I SETFLG /CLEAR THE SCHEDULER REQUEST FLAG +CONIN3, STA + CDF + IOF + TAD I KEYA + SMA /ARE WE FINISHED? + JMP CONIN4 /NO +CONEXT, CDF + AND I SETFLG /DID WE AROUSE ANYONE? + SZA CLA + RSCHED /IF NULL JOB IS RUNNING WE MAY TERMINATE IT + EXIT + +CONIN4, DCA I KEYA /DECREMENTED COUNT + TAD I KEYA /CHECK FOR OVERFLOW + TAD KEYSIZ + SMA SZA CLA + JMP CONIN0 /OVERFLOW - SKIP AROUND TO THE FIRST ENTRY + DATFLD + TAD I KEYB /GRAB A CHARACTER FROM THE RING BUFFER + DCA TTCHAR + ISZ KEYB + ION + TAD I KEYB /LINE NUMBER + SPA + JMP HIPTR /HIGH SPEED READER + CLL RAL /TIMES 2 + TAD DEVTBA + DCA CONINA /POSITION IN DEVICE TABLE + TAD I CONINA + SZA CLA + JMP CONIN1 + TAD CONINA /NO DDB SETUP YET + CDF + GETBLK /ESTABLISH A PSEUDO DDB FOR THE TIME BEING + JMP CONIN2 /NONE AVAILABLE - DON'T BOTHER WITH BELLS + DATFLD + TAD I CONINA + IOR + DSI /SET NEW CONSOLE IN SI MODE + CONIN1, CDF + KEY /PROCESS THIS CHARACTER +CONINA, .-. + SKP /NO ROOM - RING BELL + JMP CONIN2 + DATFLD + TAD I CONDBA /POINTS TO OUTPUT SIDE + SNA + JMP CONIN2 /NO DDB DON'T BOTHER WITH BELLS + IOR + BELL /RING-A-DING TOO BAD!! + JMS I TYPEA /REMEMBER WE WANT TO RING HIS/HER CHIME + JMP CONIN2 +CONIN0, ISZ KLOST /COUNT A LOST CHARACTER +KEYBA, RINGIN /NOP + ISZ KEYB +CONIN2, ISZ KEYB + ISZ KEYCNT /END OF RING BUFFER? + JMP CONIN3 /NO + TAD KEYBA + DCA KEYB /RESET POINTER + TAD KEYSIZ + DCA KEYCNT /AND THE COUNT + JMP CONIN3 + +PTRPTR, DEVTBE +HIPTR, AND I PTRPTR /GET DDB ADDRESS OF PTR + SNA + JMP CONIN2 /OOPS - [S]HE RELEASED IT + STORE /STASH ITS CHARACTER AWAY + PTRSIZ /SIZE CHECK ROUTINE + SKP + JMP CONIN2 /ALL IS WELL + CDF /OOPS! - RAN OUT OF FREE CORE + IOF + ISZ I KEYA /UN-COUNT THE CHARACTER + STA + TAD KEYB + DCA KEYB /BACK UP THE RING BUFFER POINTER + JMP I .+1 /AND BACK TO THE REMAINDER OF L2 SERVICE + L2EX0 /JUST PAST THE HI-PRIORITY CHECK POINT + /CHECK DEVICE ASSIGNMENT AND ASSIGN IF AVAILABLE +/CALLING SEQUENCE: +/ JMS DEVCHK +/ DEVTBL ADDRESS FOR THE DESIRED DEVICE +/ RETURN - IF OK TO USE +/ IF NOT OK THE RETURN IS THROUGH "UUOERR" +DEVCHK, 0 + TAD I DEVCHK /GET DEVTBL POINTER + ISZ DEVCHK /INDEX PAST PARAMETER + DCA WS2 /DEVTBL ADDRESS + RDF /THE FIELD FROM WHERE WE CAME + TAD C6203 + DCA DEVEXT + DATFLD + TAD I WS2 /DDB ADDRESS + SZA /IN USE? + JMP DEVCH1 /YES + TAD WS2 + CDF + GETDDB /GET DATA BLOCK + REDO + DATFLD + TAD I WS2 /ADDRESS OF DDB + DCA WS1 + TAD WS2 /DEVTBE+UNIT# + TAD DEVCH0 /-DEVTBE + + DCA I WS1 /SAVE IN WORD 0 OF DDB + ISZ WS1 /POINTS TO JOB # IN DDB + TAD JOB + AND C0037 + DCA I WS1 /SAVE OWNER JOB +DEVEXT, 0 + JMP I DEVCHK /RETURN + +DEVCH1, DCA AXS1 /NOW POINTS TO WORD 0 OF DDB + TAD JOB + CIA + TAD I AXS1 /DOES THIS JOB OWN DEVICE? + SNA CLA + JMP DEVEXT + JMP I .+1 + UUOERR +DEVCH0, -DEVTBE + + +UUOCAL=WS0 +UUOADD=WS1 + +/ SAVE MACHINE STATUS WHEN USER EXECUTES IOT +/WE MUST CHECK USER IOT FLAG BEFORE ANYTHING ELSE, EVEN CLOCK FLAG +/IF WE DON'T, AND CLOCK INTERRUPTS WITHIN 8 MICROSECONDS AFTER USER +/EXECUTES IOT, THEN WE WOULD TRIP ON CLOCK FLAG, AND NOT BE ABLE TO +/FIGURE OUT WHAT IOT THE USER EXECUTED. + +UUO0, DCA L2SA /WE MUST HAVE BEEN IN USER MODE WHEN INTERRUPT OCCURRED! + RAR /SAVE LINK + DCA L2SVLK + TAD 0 + DCA L2SV0 /SAVE PC + RIB + DCA L2SF /SAVE FIELDS AND MODE + CINT /CLEAR FLAG + ION + STA + TAD L2SV0 /BACK UP USER PC TO POINT TO IOT IN QUESTION + DCA UUOADD + UDF /SELECT USER DATA FIELD + TAD I UUOADD /GET THE IOT THAT CAUSED ENTRY HERE + DCA UUOCAL + CDF + TAD UUOTBA /START SCANNING THE IOT TABLE + DCA AXS1 + TAD UUOCAL + AND C7770 /GET DEVICE CODE + CIA + DCA UUOC77 /SAVE-CODE + JMS UUOSR /FIRST SEE IF IT IS MICRO-CODED + JMP UUO22 +UUO3, TAD AXS1 /YES, NOW COMPUTE ADDRESS OF SERVICE ROUTINE + TAD UUOTLL /OFFSET BETWEEN IOT TABLE AND DISPATCH TABLE + DCA UUOC77 /POINTS TO DISPATCH ENTRY + TAD I UUOC77 /GET DISPATCH ADDRESS + DCA UUOC77 /SAVE IT + JMP I UUOC77 /AND JUMP TO IT +UUO7, JMS UUOSR /CHECK FOR NON-RESIDENT IOTS WHICH RETURN ARGUMENTS + UUOEXT /UNDEFINED + JMP UUO8 /FIND # OF ARGUMENTS TO SEND TO FIP + UUO22, TAD UUOCAL /IS IT AN IOT AT ALL? + AND C1000 + SZA CLA + JMP I UHALTA /IT'S A HLT, OSR, OR SOME COMBINATION + TAD UUOCAL /IT'S NOT MICROCODED + CIA + DCA UUOC77 /-IOT CAUSING INTERRUPT + JMS UUOSR /CHECK FOR NON-MICRO-CODED RESIDENT IOTS + SKP + JMP UUO3 /FOUND ONE; NOW GO GET DISPATCH ADDRESS AND AWAY--- + JMS UUOSR /SEARCH FOR SHORT NON-RESIDENT IOTS + JMP UUO7 +UUO6, TAD UUOCAL /THROW AWAY BITS 0-2 OF IOT + AND C0377 + DCA UUOCAL /AND SAVE IT +UUO8, TAD AXS1 /NOW FIND NUMBER OF ARGUMENTS + TAD UUOTLL /THIS POINTS TO # IN UUOTBL + JMS GETUSP /GET USER PARAMENTERS +UFILE4, TAD CJOBDA /GET POINTER TO STR0 + GETJTA + JOBSTS + DATFLD /OR IN "NON-RESIDENT IOT" BIT + IOR /SO FIP WILL RUN IN PLACE OF THIS JOB + JSIOT + TAD FIPJOB /ANYTHING CURRENTLY SCHEDULED? + SZA CLA + WAIT /YES - FIP WILL PICK US UP LATER + TAD JOB + DCA FIPJOB /SO THE SCHEDULER WILL TAKE US AS SOON AS POSSIBLE + WAIT /AND WAIT FOR FIP + +UUOSR, 0 /SEARCH FOR MATCH + TAD I AXS1 /GET ENTRY FROM TABLE + SNA /LAST ENTRY? + JMP I UUOSR /YES, RETURN + TAD UUOC77 /NO, CHECK FOR MATCH + SZA CLA /MATCH? + JMP .-5 /NO, KEEP GOING + ISZ UUOSR /YES, SKIP + JMP I UUOSR /AND RETURN + +UHALTA, UHALT +UUOTBA, UUOTBL-1 +UUOTLL, UUODTB-UUOTBL + /THIS ROUTINE COPIES THE PARAMETERS SUPPLIED BY THE +/USER PROGRAM INTO *BLOCK IN FREE CORE, WHICH IS POINTED +/TO BY JOBLNK. +/THE IOT ITSELF IS SAVED IN THE FIRST WORD OF THE PARAMETER BLOCK +/IF NO ARGUMENTS ARE REQUIRED, JOBLNK CONTAINS THE IOT, +/RATHER THAN A POINTER TO THE IOT PARAMETER BLOCK. +/FIP CAN TELL BY EXAMINING BITS 0-3 OF JOBLNK; IF THEY ARE +/NON-ZERO, JOBLNK IS AN ADDRESS; IF ZERO, JOBLNK IS THE IOT ITSELF. +/NOW YOU KNOW WHY THE START OF THE FREE CORE LIST MUST ALWAYS BE +/ON OR AFTER 400 OCTAL IN FIELD ONE? + +UUODAC, DSKACT + +GETUSP, 0 /ENTER WITH PTR -# ARGUEMTS TO GET + DCA UUOC77 /SAVE IT + CDF + TAD CJOBDA /OK - NOW GET PTR TO JOBLNK + GETJTA + JOBLNK + DCA UUOLNK /AND SAVE IT + TAD I UUOC77 + SNA /ANY ARGUMENTS? + JMP GETUS1 /NO - JUST SAVE IOT IN JOBLNK + CDF + DCA UUOC77 /YES. SAVE # ARGUMENTS + CLL CLA CMA RAL /CAN WE GET PARAMETER BLOCKS? + TAD FRECNT + SPA SNA CLA + REDO /NO - TRY LATER + TAD UUOLNK /PUT ADDRESS OF LINKAGE BLOCK IN UUOLNK + GETBLK /GET A FREE BLOCK + HLT /WHAT? "FRECNT" SAID THERE WERE PLENTY!! + DATFLD + TAD I UUOLNK /GET ADDRESS OF PARAMETER BLOCK + CDF + DCA UUOLNK /SAVE IT IN BLT CALLING SEQUENCE + STA /GET POINTER TO USER PARAMETERS-1 + TAD L2SA + DCA UUSRC /SAVE FOR BLT CALL + TAD UUDF /MOVE USER PARAMETERS TO LINKAGE AREA IN DATFLD + DCA .+2 + BLT + 0 /SOURCE FIELD SELECT +UUSRC, 0 /SOURCE ADDRESS + DATFLD /DESTINATION FIELD SELECT +UUOLNK, 0 /DESTINATION ADDRESS +UUOC77, 0 /-#WORDS +GETUS1, TAD UUOCAL /NOW GET IOT + DATFLD + DCA I UUOLNK /AND SAVE IT IN APPROPRIATE PLACE + CDF + JMP I GETUSP /RETURN + /STASH LEVEL 2 REQUESTS FROM FIELD 1 + + +QUEUE0, 0 + DCA I L2Q /QUEUE REQUEST FROM FIELD 1 + CIF DATFLD + JMP I QUEUE0 /AND BACK + +L2689, +IFNZRO D689 < + CIF DATFLD + JMP I .+1 /TO FIELD 1 689 CARRIER SERVICE + DFCARR > +IFNZRO DC08A <*2364 +T8OUT, CLA /DC08A CODE CALLED FROM "CONOUT" + TAD T8OBF2 /FIND ACTIVE OUTPUT REGISTER + TAD WS0 + DCA UUOSR + TAD TTCHAR /CHARACTER TO BE OUTPUT + CLL RAL + TAD T8STOP + DCA I UUOSR /STASH IT COMPLETE WITH STOP & START BITS + JMP I .+1 + CONTLS+1 +T8OBF2, SKPTBL-OUTREG+1 +T8STOP, 3000 > +IFNZRO CPU&7776 <*2360 +KLEN, SKPTBL-1 +KDEV, SKPTBL-1 +TIMER4, CLA + TAD KDEV /END OF LIST; RE-SET THE POINTER + DCA KLEN +L2TIME=. + ISZ KLEN /MAKE SURE THAT THE KL8E'S STAY ENABLED + DATFLD + TAD I KLEN + CDF + SMA + JMP TIMER4 /END OF LIST, RESET POINTER FOR NEXT TIME + TAD C0004 /CONSTRUCT A "KIE" + DCA .+2 + IAC + .-. + CLA > + *2400 +IFZERO CPU&7776 +L2TIM2, ISZ CLK1 /UPDATE LOW ORDER DAY CLOCK + JMP L2TIM3 /NOTHING UNUSUAL + ISZ CLK2 /UPDATE HIGH ORDER TIME. WOW! + JMP L2TIM3 + ISZ DATE /WOULD YOU BELIEVE IT'S MIDNIGHT! + TAD ICLK2 /REINITIALIZE THE CLOCK FOR ANOTHER + DCA CLK2 /24 HOURS WORTH OF TICKS + TAD ICLK1 /AND BUMP THE DATE ONE + DCA CLK1 /(EVERY MONTH HAS 31 DAYS FOR OUR PDP-8) +L2TIM3, CIF DATFLD /DECREMENT TIMERS + JMS I TIMERA /ROUTINE TO RUN TIMERS +TIMCON, -5 /TIMES OUT EVERY FIVE SECONDS + L2OUT /SCHEDULE "CONOUT-TIMER" SERVICE +TIMPTR, 0 /NON-ZERO IF BUSY + L2PTR /WHERE TO GO WHEN READER HANGS +TIMCDR, 0 /NON-ZERO IF BUSY + L2CDR /WHERE TO GO IF THE CARD READER HANGS +TIMSI, 0 /NON-ZERO WHEN SI IS IN THE WAIT STATE + L2SI /WHERE TO GO WHEN IT TIMES OUT +TIMFIP, 0 /NON-ZERO IF "FIPLOCK" IS ON + L2FIP /WHERE TO GO TO TURN "FIPLOCK" OFF +TIM689, 0 /NON-ZERO IF ACTIVE + L2689 /WHERE TO GO TO CHECK CARRIER STATUS +TIMER3, ISZ JOBTIM + NOP + CIF /INHIBIT INTERRUPTS WHILE WE UN-BUMP THE CLOCK + CLL STA + TAD CLOCK + DCA CLOCK + SZL /HAVE WE COUNTED ALL THE SCHEDULED SYSTEM TICKS? + JMP L2TIM2 /NO + /"RSCHED" IS ENTERED AT THIS POINT +/RSCHED'S FUNCTION IS TO FIND JOBS TO RUN, REGARDLESS +/OF WHERE THEY MAY CURRENTLY RESIDE. IF THEY ARE IN CORE, +/GOOD; IF NOT, THE NECESSARY STEPS WILL BE TAKEN TO +/BRING THEM INTO CORE. IN THE LATTER CASE, WE WILL THEN +/GO OFF AND FIND SOMETHING TO DO WHILE THE NON-RESIDENT +/JOB IS MADE RESIDENT. + +SCHED0, TAD JOB /GET CURRENT JOB + AND C0600 + SZA CLA + EXIT /?? - DON'T BUMP OFF A PHANTOM! + TAD SCHNEW /IS THIS SOMETHING THAT CAN BE BUMPED OFF? + SNA + JMP SCHE12 /YES - GET RID OF HIM/HER + TAD JOBTIM /HAS [S]HE USED A FULL TIME SLICE YET? + SPA SNA CLA + EXIT /NO, GO BACK TO HIM/HER +SCHE12, ION + SAVJOB /YES. SAVE ITS STATE. SET JOB=0 + STA + DCA SCHNEW /SET FOR FULL TIME SLICES + TAD CURJOB /DID FILE TRANSFER PROCESSING CUT INTO SOMEONE'S TIME SLICE? + SZA + JMP SCHEI6 /YES - START IT BACK UP + TAD NXTMAX + DCA I NXTJCA /NUMBER OF JOBS TO CONSIDER + TAD SQREQ /SWAP REQUEST IN PROGRESS? + SNA CLA /IF SO, THERE IS NO POINT IN GOING FURTHER NOW. + JMP SCHED1 /NO - PROCEED + /SCHEDULE NEXT RESIDENT JOB +/THIS IS THE ENTRY FOR "SCHED" +/WE ONLY COME HERE IF A SWAP IS IN PROGRESS +/OR IF WE FIND THE JOB WE REALLY +/WANT TO RUN IS CURRENTLY INDISPOSED TO RUNNING. SCHED +/WILL FIND SOME RESIDENT JOB TO RUN. IF NO JOB IS +/RUNNABLE OR RESIDENT, JOB 0 (THE NULL JOB) IS RUN. + +SCHEDI, TAD FANCOR /CHECK FOR PHANTOMS FIRST SO + DCA WS0 /START AT FIELD 2 + TAD I SCHMUC /NUMBER OF USER CORE FIELDS TO CONSIDER + CLL RAL /TIMES 2 + DCA I NXTCNA /ON THE SECOND PASS WE MAY PICK UP A COMPUTE-BOUND JOB + TAD I SCHMUC /NUMBER OF FIELDS + DCA WS1 +SCHEI3, TAD I WS0 + AND C1000 /CHECK FOR "NOTRUN" + SZA + JMP SCHEI4 /WE FOUND ONE + ISZ WS0 + ISZ WS1 + JMP SCHEI3 /TRY AGAIN + JMP I SCHNXT /LOOK FOR SOMEONE TO RUN ON BORROWED TIME + +SCHEI4, CMA + AND I WS0 /REMOVE THE "NOTRUN" BIT + DCA I WS0 + TAD I WS0 + AND C0600 /IS IT A PHANTOM? + SZA CLA + JMP SCHEI5 /YES - THEN IT MUST BE READY TO EXECUTE + TAD I WS0 + AND C0037 + RUNABL /IS IT RUNNABLE? + JMP SCHEI3+4 /NO +SCHEI5, TAD I WS0 /YES - IT MUST BE RUNNABLE +SCHEI2, DCA SCHNJN /IS JOB IN CORE? + TAD SCHNJN /SEARCH CORTBL FOR HIM/HER + CORE + SWAP LOCK FIP SI CJOB + SCHED /NOT THERE; HAVE TO SWAP HIM/HER IN LATER + DCA L2SF /YES - SET UP SAVE FIELD + TAD SCHNJN /RESTORE REST OF LEVEL 2 REGISTERS + RESJOB + START /START JOB + +SCHEI6, DCA SCHNJN /SAVE JOB NUMBER + DCA CURJOB /CLEAR "REMEMBERED" JOB + JMP SCHEI2+1 /NOW GO START HIM/HER BACK UP + SCHNXT, NXTCO1 +ICLK1, -INCLK1 +ICLK2, -INCLK2-1 +SCHNJN=WS0 +SCHSI=C0200 +TIMERA, TIMER0 +NXTMAX, -JOBMAX-1 +NXTJCA, NXTJCT +SCHMUC, CORCNT +NXTCNA, NXTCNT +L2CDR, DATFLD + TAD I UUCDR1 + DCA AXS1 + TAD I AXS1 + CDF + ERROR /PASS HUNG DEVICE ERROR TO THE USER + HUNGDV +CDL20, CIF DATFLD-1 + JMP I .+1 + CDL21 +UUCDR0, IAC + IAC + DCA UUOCAL /SAVE THE IOT INDICATOR + JMS I CDRCHK /SEE IF IT'S OK FOR HIM/HER TO USE THE CARD READER +UUCDR1, DEVTBE+4 + TAD UUOCAL /ALL IS WELL + CIF DATFLD-1 + JMP I .+1 /OFF TO THE CARD READER HANDLER + UUCDR +CDRCHK, DEVCHK +REDO0, STA /IF WE CAN'T FINISH AN IOT FOR LACK OF SYSTEM + TAD L2SV0 /FACILITIES, WE BACK UP THE USER'S PC TO POINT + DCA L2SV0 /TO THE SAME IOT AND HOPE THAT LATER ON THINGS WILL LOOSEN UP. +WSCHED, CDF /THE USER PROGRAM IS TO GO INTO A WAIT + JMP SCHE12 + + +SCHED1, TAD FIT /SOMETHING LEFT FROM LAST PASS THROUGH SCHEDULER? + AND C0037 /JOB ONLY + SZA + JMP SCHED4 /YES + TAD COMCNT /SI REQUESTED? + SNA CLA + JMP SCHED6 /NO + TAD SCHSI + JMP SCHED8 /YES - SCHEDULE IT +SCHED6, TAD FIPJOB /SOMETHING WAITING FOR FIP? + SNA + JMP SCHE13 /NO SPECIFIC JOB +SCHED4, DCA FIT /SAVE IT + TAD FIT + RUNABL /IS IT STILL GOOD? + SKP /NO + JMP SCHED5 /YES - CHECK IT OUT +SCHE13, JMS I SCHNXA /GET NEXT RUNNABLE JOB + DCA FIT /SAVE JOB # + DCA BONUS /BONUS JOB ALREADY PICKED UP +SCHED5, TAD FIT + TAD JOBTBA + GETJTI /GET CONTENTS OF STR0 + JOBSTS + RTL /PUT ERROR ENABLE IN THE LINK + AND SCFIP /NEED FIP? + SZA + JMP SCHED7 /YES; SCHEDULE FIP FOR HIM/HER + DATFLD + TAD I JOBSWA /GET STR0 AGAIN + CDF + AND C0007 /ANY ERROR BITS ON? + SZA SNL CLA /EVEN IF THERE ARE WE'LL LET HIM/HER HANDLE IT IF [S]HE'S ENABLED (LINK=1) + TAD SCHSI /CALL SI TO HANDLE ERROR +SCHED7, TAD FIT /UPDATE "FIT" IF THERE'S A NEED FOR FIP OR SI +SCHED8, DCA FIT + TAD FIT +SCHED3, AND C0600 /IS FIT JOB FIP OR SI? + SNA CLA + JMP SCHE11 /NO + TAD I FANCOR /IS FIP OR SI IN CORE? + AND FIT /IS IT THE PROPER PHANTOM? + AND C0600 + SNA CLA + JMP SCHE15 /NO - SCHEDULE THEIR SWAP IN + TAD I FANCOR /YES - IS THE PHANTOM IN USE? + AND C0037 /JOB # + SZA CLA + JMP SCHED9 /YES - NOT MUCH TO DO NOW + SCLOCK /LOCK PHANTOM FOR THIS JOB + TAD FIT /NO - LOCK PHANTOM FOR THIS USER + DCA I FANCOR /INDICATE THAT THIS FIELD IS NOW LOCKED + SCHED9, DCA FIT /CLEAR FIT + FANFLD /DISK ACTIVITY HERE? + JMS I SCDACT + JMP SCHE13 /YES - FORGET ABOUT PHANTOM FOR NOW + TAD I FANCOR /NO + JMP I .+1 /NOW GO FINISH BOOKKEEPING + SCHEI2 + +SCHNXA, NXTJOB +SCFIP= C0400 /FIP +SCLOCK= CLA CLL CML RTR /LOCK BIT AC=2000 +SCDACT, DSKACT +FANFLD= CLA STL RTL /PHANTOMS ALWAYS RUN IN FIELD 2 + +SCHE15, TAD I FANCOR /FANFLD LOCKED, SWAPPED, OR NOTRUN? + AND C7000 + SZA CLA + JMP SCHE13 /YES - GO FIND SOMETHING ELSE TO DO NOW + TAD I FANCOR /IS THERE CURRENTLY A USER JOB IN FANFLD? + AND C0037 /IS THERE A USER JOB IN FANFLD? + SZA CLA + JMP SCHE16 /YES, FORCE IT OUT + FANFLD /NO; FINISH:=FANFLD + JMP SCHE14 + +SCHE16, TAD I FANCOR /IS A PHANTOM IN HERE? + AND C0600 + SZA CLA + JMP SCHE13 /YES, GO FIND ANOTHER JOB TO RUN + DCA DEAD /DON'T GO LOOKING FOR AN ALTERNATIVE FIELD! + FANFLD /FORCE JOB OUT OF FANFLD + DCA FORCE + JMP SCHFR1 +SCHE10, CORE /FIRST LOOK FOR A FIELD WITH NOTHING IN IT + SWAP LOCK NOTRUN FIP SI NOHOLD CJOB + SKP /NO SUCH FIELDS + JMP SCHE19 /FOUND ONE TO USE + TAD DEAD /ARE THERE ANY OLD DEAD JOBS STILL IN CORE? + SZA + JMP SCHDED /YES - SEE IF WE CAN GET RID OF IT +SCHE18, CORE /LET'S TRY AGAIN +FIPLOK, SWAP LOCK NOTRUN CJOB + JMP SCNOUT /NO, SCAN FOR OUTPUT +SCHE19, AND C0007 /YES +SCHE14, DCA FINISH /FINISH:=FIELD # + TAD FINISH /SET SWAP BIT IN CORTBL ENTRY + TAD CORTBA + DCA SUJT2 /POINTS TO CORTBL ENTRY + STL RAR /AC=4000 (SWAP) + TAD FIT /JOB TO SWAP IN + DCA I SUJT2 /SAVE IN CORTBL + JMP I SCSWAP /SWAP IN + SCNOUT, TAD SCNSVP /RESTORE CORTBBL POINTER FOR OUTPUT SCANNING +SCHDED, DCA I SCNSV1 + CORE /SCAN FOR AVAILABLE FIELD + LOCK+NOTRUN+FIP+SI + JMP SCHE17 /ARE WE STUCK? + AND C0007 + DCA FORCE /FIELD TO SWAP OUT + TAD I SCNSV1 /PICK UP POSITION OF POINTER + DCA SCNSVP /SAVE FOR THE NEXT TIME +SCHFR1, TAD FORCE /DISC XFER IN PROGRESS? + JMS I SCDACT + JMP SCHE17 /SEE IF WE CAN TAKE ONE MORE LOOK AROUND + TAD FORCE + TAD CORTBA + DCA SUJT2 /CORTBL POINTER TO FORCED FIELD + DCA DEAD + TAD FORCE + CIA + DCA FINISH /SET FINISH=-FORCE (TO INDICATE SWAP OUT) + JMP I .+1 /NOW GO SET UP THE OUTSWAP + SWPOUT +SCHE17, TAD DEAD /CAN WE LOOK FURTHER? + SNA CLA + SCHED /NO - WE'RE STUCK + DCA DEAD /YES - GUESS WE GOT BAD ADVICE + JMP SCHE18 /GO TAKE ANOTHER LOOK + +SCSWAP, SWAPIN +SUJT2= WS0 +SCNSVP, CORTBL+1 /VALUE OF CORTBL POINTER AFTER LAST SEARCH +SCNSV1, CORTBP /POINTS TO CORTBL POINTER IN CORE SEARCH ROUTINE + + +SCHE11, TAD FIT /IS FIT JOB IN CORE? + CORE + SWAP LOCK FIP SI CJOB + JMP SCHE10 /NO - [S]HE HAS TO BE SWAPPED IN + DCA L2SF /SAVE FIELD + TAD FIT /RESTORE LEVEL 2 REGISTERS + RESJOB + DCA FIT /CLEAR FIT + START /START JOB + SWERER= C0002 /SWPRER + +SWPRET, JMP SWERR /ERROR ON SWAP + TAD CORTBA /GET A POINTER TO THIS FIELD'S + TAD FINISH /ENTRY IN CORTBL + DCA SQREQ + TAD FIT /JOB SWAPPED IN + TAD C1000 /NOT RUN BIT +SWGOD1, DCA I SQREQ /STORE IT IN THE CORTABLE + DCA FINISH + DCA FIT /SET ALL CONCERNED WORDS TO ZERO + DCA FORCE + DCA SQREQ + JMS I SWSCON /SEE IF ANY MORE DISC I/O WAITING TO BE ATTENDED TO + RSCHED /RE SCHEDULE +SWSCON, DSKCON + +SWERR, TAD FINISH /ERROR WHILE SWAPPING OUT OR SWAPPING IN? + SPA + CIA /DURING SWAP OUT + TAD CORTBA + DCA SQREQ /POINTER TO CORTBA FOR THIS FIELD + TAD FINISH + SPA CLA + JMP SWER1 /WHILE SWAPPING OUT; CODE=3 + TAD SWERER /WHILE SWAPPING IN; CODE=2 + DCA SWPER1 + TAD FIT +SWER2, AND C0037 /GET THE JOB # + SNA /IS IT A PHANTOM? + JMP SWGOD1 /YES, SO NO ERROR CODE TO SET + ERROR /NO JOB BEING SWAPPED IN SO HAVE TO SET ERROR CODE +SWPER1, 0 /ERROR CODE + JMP SWGOD1 /CLEAR ALL THE CONCERNED WORDS BEFORE LEAVING +SWER1, TAD SWER3 /ERROR CODE + DCA SWPER1 + TAD I SQREQ /JOB BEING SWAPPED OUT + JMP SWER2 +SWER3= C0003 +REMJOA, REMJOB +SCHFAN, JMS I REMJOA /REMEMBER WHO'S RUNNING + SCHED /GO RUN THE PHANTOM + /BOOTSTRAP FOR CRASH RECOVERY, USED TO BRING INIT INTO HIGHEST MEMORY FIELD +BOOT, CDF /IN THE (VERY RARE) EVEN THE SYSTEM + STA /SHOULD CRASH, THIS ROUTINE MAY + DCA I B7751 /BE STARTED AT 4200 OF FIELD 0 + DCA I B7750 /WC AND CA + TAD DSKFLD /HIGHEST FIELD + IFZERO RF08 < + DIML + CLA STL RTL + DXAL /TRACK 2 + > + IFZERO RF08-40 < + DEAL + NOP /FOR SIZE + CLA + > + DMAR + DFSC /WAIT + JMP .-1 + CIF CDF+CORMEM + JMP 0 /OFF TO INIT + +B7751, 7751 +B7750, 7750 +DSKFLD, + IFZERO RF08 + IFZERO RF08-40 + /SAVE JOB REGISTERS +/THIS ROUTINE IS USED TO SAVE THE LEVEL 2 REGISTERS +/IN THE JOB DATA AREA. AFTER SAVING THIS +/INFORMATION, JOB IS SET TO 0 TO INDICATE +/THAT NULJOB IS RUNNING +/CALL SAVJOB +/ RETURN + +SAVJO0, 0 + TAD JOB /IS NULJOB RUNNING ALREADY? + SNA + JMP I SAVJO0 /YES - NOTHING TO SAVE + AND C0600 + SZA CLA /IS A PHANTOM RUNNING? + JMP SAVJO3 /YES + TAD CJOBDA /MOVE LEVEL TWO REGISTERS TO JOB DATA AREA + GETJTA + JOBREG + DCA .+5 + BLT /MOVE PC, LINK, AC TO JOB DATA AREA + CDF /FROM FIELD 0 + L2SV0 + DATFLD + 0 + -3 +IFNZRO MQREG < + GETJTW /IF THERE'S AN MQ AND MAYBE AN EAE, SAVE THEM TOO + JOBEAE +IFNZRO CPU-1 < + CLA MQA MQL > /LOAD AC FROM MQ, CLEAR MQ +IFZERO CPU-1 < + CLA MQA > /LOAD AC FROM MQ + DATFLD + DCA I JOBSWA > /SAVE IN JOB MQ +IFNZRO EAE < + ISZ JOBSWA /GET POINTER TO JOB SC +IFNZRO CPU-2 < + SCA /GET SC + DCA I JOBSWA > /AND SAVE IT +IFZERO CPU-2 < + SCA /GET SC + CLL RTL /MAKE ROOM FOR MODE AND GT + DCA I JOBSWA /SAVE SC + DPSZ /SKIPS IF MODE B + ISZ I JOBSWA /INCR IF MODE A + SGT /CHECK GT FLAG + ISZ I JOBSWA /INCR, IF GT=0 OR IF MODE A + > > /IF MODE=A THERE MAY BE JUNK IN THE AC AT THIS POINT BUT + /BITS 7-11 ARE GUARANTEED CLEAR + + \ No newline at end of file diff --git a/tss8/system/ts8c.pal b/tss8/system/ts8c.pal new file mode 100644 index 0000000..838ac30 --- /dev/null +++ b/tss8/system/ts8c.pal @@ -0,0 +1,1294 @@ +SAVJO3, TAD JOB /DO WE HAVE A JOB #? + AND C0037 + SNA CLA + JMP SAVJO2 /NOT YET + CLA IAC /CORRECT THE CLOCK SINCE IT'S ALWAYS ONE BEHIND + TAD CLOCK /ADD IN ANY TIME [S]HE HASN'T BEEN CHARGED FOR YET + TAD JOBTIM /TO THE NUMBER OF TICKS [S]HE HAS ACCUMULATED + DCA JOBTIM /NOW IT'S OK TO PUT HIM/HER AWAY + CDF /GET POINTER TO LOW ORDER RUNTIME + GETJTW + JOBRTM + CLL + TAD JOBTIM /# TICKS [S]HE USED + DATFLD + DCA I JOBSWA /SAVE THE NEW CUMULATIVE TIME + ISZ JOBSWA + SZL /OVERFLOW INTO HIGH ORDER? + ISZ I JOBSWA /BUMP IT; WOULD NEED 16777216 TICKS FOR THIS TO SKIP!! + TAD SCHNEW /WAS THIS JOB TO HAVE A FULL SLICE? + TAD JOBTIM /ANY PART OF HIS/HER TIME SLICE STILL LEFT? + SPA SNA CLA + JMP SAVJO2 /YES, SO THIS JOB IS NOT A COMPUTE BOUND JOB AT THIS STAGE + TAD I CJOBDA + IAC /STR0 + IOR /MAKE HIM/HER COMPUTE BOUND + JCOMBD +SAVJO2, DCA JOB /SIMULATE NULJOB + DATFLD + DCA I CJOBDA /CLEAR POINTER TO CURRENT JOB DATA AREA + CDF + JMP I SAVJO0 /AND EXIT + +RUNULL, SCHNUL +DEBUG, /RESTART FOR DEBUGGING +IFZERO DC08A < + IFZERO CPU-1 < /SET PDP-8 CLOCK COUNT + STA + CCF CLB > +IFNZRO CPU-4 +IFZERO CPU-4 > +IFNZRO DC08A < T1ON > /TURN ON DC08 CLOCK +IFZERO D689-4 < EDF > /REENABLE DATA PHONES + DCA SCHNEW /ENABLE SCHEDULER TO BUMP NULL JOB + JMP I RUNULL + *3200 + +/PROCESS KEYBOARD INPUT CHARACTERS (MAY BE PSEUDO-INPUT) + +/MULTI-FIELD ROUTINE +/CALL: CHARACTER IN "TTCHAR" +/ JMS KBD +/ DEVTBL POINTER +/ RETURN; NO ROOM - CHARACTER NOT STORED +/ RETURN; CHARACTER STORED +/ +KBDCNT=WS2 +KBDSIB, -212 /DO NOT MOVE FROM BEGINNING OF A PAGE - SEE "DUPSI" +IFNZRO KBDSIB&177 + +KBD00, 0 + TAD I KBD00 /GET DEVTBL POINTER + DCA CONDBA + RDF + TAD C6203 + DCA KBDNSX /REMEMBER FROM WHENCE WE CAME + ISZ KBD00 + DATFLD + TAD I CONDBA /GET DDB ADDRESS + DCA CONDDB +KBDSQ, JMS I KBDCON /CHECK ^S/^Q; (ISZ CONDBA IF FEATURE DISABLED) + TAD I CONDDB /YES - GET DDB STATUS + AND C0100 + SZA CLA /"SICOM" SET? + JMP KBDNSX /YES - EXIT + TAD TTCHAR /CHECK FOR ^B, ^C + TAD KBDMCB + CLL RAR + SZA CLA /IS IT ^B OR ^C? + JMP KBD05 /NOTHING SPECIAL ABOUT THIS ONE + TAD CONDDB + JMS I KBDCLB /CLEAR HIS/HER INPUT BUFFER + TAD TTCHAR + RAR + SNL CLA /WAS IT ^B OR ^C? + JMS I KBDCHK /WAS ^B TYPED IN USER MODE? + JMP KBD04 /CLEAR OUTPUT + TAD I CONDDB + TAD C1000 /PUT THIS TTY IN SI MODE + DCA I CONDDB + KBD02, TAD KBDUPA + DCA TTCHAR /CHANGE TO ^ + CDF + PRINT /STASH "^" IN HIS/HER OUTPUT BUFFER + "B /WE DON'T CARE IF "PRINT" FAILS + TAD .-1 + DCA TTCHAR /CHANGE TO B +KBD01, CLL STA RTR + RTR + DATFLD + AND I CONDDB /CLEAR "FULL" STATUS + DCA I CONDDB +KBD03, TAD I CONDDB /GET DDB STATUS BITS + AND DUPSI + ISZ CONDDB + SZA CLA /DUPLEX OR SI MODE? + TAD I CONDDB + SNA CLA /AND LOGGED IN? + JMP KBDXIT /NO - SO DON'T ECHO + CDF + PRINT /STASH (TTCHAR) IN HIS/HER OUTPUT BUFFER +KBDUPA, "^ /WE DON'T CARE IF "PRINT" FAILS +KBDXIT, ISZ KBD00 /SHOW SUCCESS +KBDNSX, .-. /BACK TO THE CALLING FIELD + JMP I KBD00 +KBD04, TAD I CONDBA + JMS I KBDCLB /CLEAR THE OUTPUT BUFFER + TAD TTCHAR + RAR + SNL CLA /WAS IT ^B OR, OR ^C? + JMP KBD02 /IT WAS ^B + JMS I KBDCHK /USER MODE? + JMP KBDSSI /NO, GO TO SI FOR DOT OR ^B + JMP I KBDCCA /YES, GO DO ^C BUSINESS +KBD05, TAD C7770 /IS THERE PLENTY OF FREE CORE? + TAD FRECNT + SPA CLA + JMP KBDNSX /NO + JMS I KBDCHK /WHICH MODE? + JMS I KBDLRA /SI - CHECK FOR LINE-FEED AND RUBOUT + TAD I CONDDB + AND C0400 /"FULL" FLAG SET? + SZA CLA + JMP KBDNSX /YES - EXIT + TAD CONDDB + STORE /STASH (TTCHAR) IN HIS/HER INPUT BUFFER + KBD06 /FOR SIZE CHECK + JMP KBDNSX /STORE FAILED; BUFFER ALREADY FULL + JMS I KBDCHK /WHICH MODE? + JMP KBD08 /SI + STL RTL /AC=2 + TAD CONDDB /POINT TO BREAK MASK + DCA KBDCNT + TAD I KBDCNT /GET THE BREAK MASK + JMS I BRKTSA /IS IT A BREAK CHARACTER? + JMS I KBDBRK /GO SET DEL BIT IN STR1 AND PUT HIS/HER JOB NUMBER IN BONUS + DATFLD + JMP KBD03 /SEE IF WE SHOULD ECHO + KBDBRK, KBDDLM +KBDCCA, GIR9 +KBDLRA, KBDLRB +DUPSI, +KBD08, TAD KBDSIB /USED AS CONSTANT (MASK) SEE "KBD03+1" + TAD TTCHAR + AND KBDSIM + SZA CLA /IS THIS A BREAK FOR SI? + JMP KBD03 /NO +KBD11, ISZ COMCNT /TO SCHEDULE "SI" + TAD I CONDDB + TAD C0100 /SET "SICOM" + DCA I CONDDB /SAVE NEW KEYBOARD STATUS + JMP KBDXIT /EXIT WITHOUT ECHOING THE DELIMITING CHARACTER + +KBDCON, CONSQ +BRKTSA, BRKTST +KBDMCB, -"B+100 /-^B +KBDCLB, CLRBUF +KBDCHK, KBDMOD +KBD09, TAD CONDDB + TAD C0005 + DCA KBDCNT /POINTS TO CHARACTER COUNT IN DDB + TAD I KBDCNT + CIA + DCA KBDCNT /NUMBER OF CHARACTERS TO SPIN THROUGH THE BUFFER + DCA WS0 /FAKE HIS/HER BREAK MASK TO ZERO +KBD10, TAD CONDDB + FETCH /FETCH A CHARACTER + JMP KBDSSI /BUFFER EMPTY + DCA TTCHAR /SAVE IT + ISZ KBDCNT /RUB THIS ONE? + SKP + JMP KBD03 /YES - PRINT IT + TAD CONDDB + STORE /NO - PUT IT BACK + ALLOK /NO LIMIT +KB0040, DECHO /NOP /CAN'T FAIL + JMP KBD10 + +KBDSIM, /THE FOLLOWING INSTRUCTION IS USED AS A CONSTANT +KBDSSI, TAD KB0040 /SET "DECHO"; SCHEDULE SI TO PRINT CURRENT LINE + JMP KBD11 /PRECEDED BY EITHER "." OR "^B" + +IFNZRO KB0040&177-174 + *3400 + +/KEYBOARD IOTS + +/SEE IF THE USER IS GOING TO EXECUTE A "JMP .-1" AFTER A NON-SKIPPING "KSF" + +JMPTST, TAD UUOADD /ADDRESS OF THE "KSF" + AND C0177 /JUST THE PAGE ADDRESS BITS + TAD C5200 /MAKE UP THE REQUIRED "JMP" INSTRUCTION + CIA + UDF /SELECTS USER'S FIELD + TAD I L2SV0 /USER'S INSTRUCTION + DATFLD + SNA + JMP JMPTS1 /WE CAUGHT HIM/HER! + TAD C0200 /MAYBE IT'S A PAGE 0 "JMP" + SZA CLA + JMP JMPTS0 /NO - MUST BE SOMETHING ELSE - LET HIM/HER CONTINUE + TAD CC7600 /WILL WE BE ON PAGE 0? + AND UUOADD + SNA CLA +JMPTS1, TAD UKEYFL /PUT HIM/HER TO SLEEP - SO [S]HE DOESN'T WASTE OUR TIME +JMPTS0, DCA UKEYC /SAVE WAIT CCONDITION + STL RTR + AND I CONDDB + SNA CLA /NEED XON? + JMP JMPTS2 /NO + TAD UKXON + DCA TTCHAR + ISZ CONDBA /POINT TO OUTPUT SIDE + CDF + PRINT /SEND XON + WAIT /DIDN'T FIT - TRY AGAIN LATER + CLL STA RTR + DATFLD + AND I CONDDB /CLEAR XOFF BIT + DCA I CONDDB +JMPTS2, TAD UKEYC /WAIT FOR FLAG; EXCEPT KSF WITHOUT JMP .-1 + UUOEXT + +IFNZRO JMPTST&4177 +UKL2SA, L2SA +UKEY0A, UKT0 +UKEY1A, UKT1 + +UKWAIT, STA /BACK UP HIS/HER PC + TAD L2SV0 + DCA L2SV0 + JMP JMPTS1 /SEE IF XON SHOULD BE SENT + +UKXON, 221 + UKEY, JMS I UKEY0A /MAKE SURE [S]HE'S NOT IN SI MODE + JMS I UKEY1A /WHAT DOES [S]HE WANT TO DO? + JMP UKEYRS /READ STRING +UKEYFL, JSDEL JSERR /DELIMITER FLAG OR ERROR FLAG +C5200, JMP JMPTST /MAKE SURE [S]HE'S NOT HANGING ON "JMP .-1" + RAR + SPA CLA + DCA L2SA /KCC - CLEAR AC + SNL CLA /IS KRB OR KRS REQUESTED? + UUOEXT /NO - ALL DONE + DATFLD + TAD CONDDB + FETCH /GET A CHARACTER FROM THE BUFFER + JMP UKWAIT /NONE AVAILABLE + DCA UKEYC /SAVE CHARACTER + TAD UKL2SA /OR INTO USER'S AC + CDF + IOR /IT WOULD PROBABLY BE ADEQUATE TO JAM IT INTO HIS/HER AC +UKEYC, 0 + UUOEXT /AND BACK TO USER + +UKREAD, 0 + DCA WS0 /SAVE THE BREAK MASK + TAD L2SA /POINTS TO PARAMETERS IN USER AREA + IAC + DCA WS1 /ADDR OF USER BUFFER POINTER + UDF + TAD I WS1 /USER BUFFER ADDRESS + DCA AXS2 +UKEYR1, DATFLD + TAD CONDDB + FETCH /GET A CHARACTER + JMP I UKREAD /THEY'RE FRESH OUT + UDF /SELECT USER FIELD + DCA TTCHAR + TAD TTCHAR + DCA I AXS2 + ISZ I WS1 /UPDATE USER POINTER +MRUB, -377 /NOP + TAD WS0 /IS IT A DELIMITER? + ISZ I L2SA /DONE? + JMS BRKTST + CLA SKP /WE'RE FINISHED + JMP UKEYR1 /BACK FOR MORE + DCA L2SA /CLEAR AC + ISZ UKREAD /SKIP ON RETURN + JMP I UKREAD + /READ INPUT STRING + +UKEYRS, DATFLD + STL RTL + TAD CONDDB /ADDRESS OF DDB + DCA WS0 /POINTS TO BREAK MASK + TAD I WS0 /GET BREAK MASK + JMS UKREAD /READ STRING + JMP UKWAIT /WAIT FOR HIM/HER TO TYPE SOME MORE + UUOEXT + +BRKTST, 0 + CDF + SPA SNA + JMP BRKTS2 + DCA WS0 /SAVE THE BREAK MASK + TAD BRKTBA /ADDRESS OF BREAK TABLE + DCA AXS1 + TAD TTCHAR /CHARACTER TO COMPARE WITH TABLE +BRKTS1, ISZ AXS1 /SKIP OVER MASK + TAD I AXS1 /-HIGH END OF RANGE + CLL + TAD I AXS1 /+NUMBER OF CHARACTERS IN THIS RANGE + SNL + JMP BRKTS1 /NOT IN THIS GROUP +CC7600, CLA 400 /WE FOUND IT + TAD I AXS1 /GET THE MASK + AND WS0 /COMPARE IT WITH OUR MASK +BRKTS2, SNA CLA /IS IT A BREAK CHARACTER? + ISZ BRKTST /NO + JMP I BRKTST +BRKTBA, BRKTBL-2 + +MLF, 377-212 +KBD09A, KBD09 + +KBDLRB, 0 + TAD MRUB + TAD TTCHAR + SNA + JMP I KBD09A /RUBOUT + TAD MLF + SZA CLA + JMP I KBDLRB /NORMAL CHARACTER + JMP I .+1 /LINE-FEED + KBDSSI + *3600 + +IFZERO CPU-2 < /TEMPORARY POWER FAIL HANDLER FOR 8/E +POWINT, CLA + DCA 0 /CLEAR LOCATION 0 SO WE'LL FALL THROUGH IT + + TAD POW2 /CLOBBER LOCATION 2 (C0200) SO WE'LL COME TO "POWST" + /WHEN THE JUICE RETURNS + + DCA 2 + HLT /POWER FAILURE; WILL START AT POWST WHEN POWER COMES UP + +POW2, POWST + +POWST, DCA WS1 + ISZ WS0 /WE DELAY ABOUT A MINUTE TO MAKE SURE + JMP .-1 /THE DISK IS UP TO SPEED + ISZ WS1 + JMP .-3 + JMP I .+1 /NOW GO CALL INIT + BOOT + +USGT, SGT /SKIP ON PDP-8/E GREATER THAN FLAG (EAE) + UUOEXT + JMP I .+1 /CAUSE SKIP ON RETURN + UUOEX2 +> +IFNZRO CPU&7776 < +UGTF, SGT /PDP-8/E "GET FLAGS" SIMULATOR + SKP + STL RTR /POSITION OF GT FLAG + TAD L2SVLK /AND GIVE HIM/HER THE LINK + DCA L2SA + UUOEXT + +URTF, CLA STL IAC RTR /AC=6000 + AND L2SA /SAVE ONLY LINK AND GT BITS OF HIS/HER AC + RTF /RESTORE AS REQUESTED + CLA RAR /FETCH NEW LINK + DCA L2SVLK /SAVE FOR THE USER + UUOEXT +> + IFNZRO DC08A < +DC08B= DC08A+4%5 +T8FITH, -DC08B +T8TTIA, T8TTI +T8LC, -1 +T8SF, 0 +T8SV0, 0 +T8SVLK, 0 +T8SA, 0 +T8FLG, 0 +T8CNT0, -1 /SO IT WILL INITIALIZE ITSELF THE FIRST TIME IT'S USED +T8CNT1, 0 +T8CNT2, 0 +T8N5, -5 +T8OBA, SKPTBL+PT08+KL8+2 +T8OBF, 0 +T8NLN, -DC08A +T8LINE, DC08LO-SKPTBL-PT08-KL8-2 +RESTA, RESTOR +T8SFA, T8SF +T8BF2, OUTREG-SKPTBL-1 +T8TMP, 0 +T83000, 3000 +TTOFLD, TTOFLG +T8RTN, DISMI2 +T8DIS, T1ON /RE-ENABLE THE CLOCK + ISZ T8LC + JMP I T8RTN /ALREADY SERVICING DC08 + DCA T8SA /SAVE AC + RAR + DCA T8SVLK /AND LINK + TAD 0 + DCA T8SV0 /AND PC + RIB + DCA T8SF /FIELD & MODE + DCA T8FLG /CLEAR DC08A LEVEL 2 SERVICE FLAG +T8IN, TAD T8FITH + TTCR TTLR /LIMIT INPUT TO 1/5 OF THE LINES + DCA T8CNT2 /SAVE ALSO AS THE OUTPUT LINE COUNT + ION + CIF DATFLD + JMP I T8TTIA /TAKE A PASS THROUGH THE TTI STRING + /RETURNS HERE AFTER SERVICING INPUT SIDE (TTI'S) +T8OUT1, ISZ T8CNT0 /BUMP DIVIDE BY 5 COUNTER + JMP T8OUT2 /CONTINUE CURRENT PASS + TAD T8N5 + DCA T8CNT0 /RESET MAJOR COUNTER + TAD T8OBA + DCA T8OBF /RESET OUTPUT BUFFER POINTER + TAD T8NLN + DCA T8CNT1 /RESET TOTAL NUMBER OF LINES COUNTER +T8OUT2, TAD T8CNT1 + SMA CLA /ANYTHING LEFT THIS PASS? + JMP T8EXT /NO + TAD T8LINE /LINE NUMBER TO START AT + TAD T8OBF /COMPUTED FROM CURRENT BUFFER POSITION + TTCL TTLL /LOAD IT INTO THE DC08A + CLA +T8OUT3, TAD I T8OBF /BITS TO BE OUTPUT + SZA + JMP T8OUT5 /MUST BE SOMETHING THERE + TTIL /NOTHING - JUST BUMP THE LINE NUMBER +T8OUT4, ISZ TIOBF /BUMP THE BUFFER POINTER + ISZ T8CNT1 /AND THE TOTAL LINE COUNT + SKP + JMP T8EXT /FINISHED + ISZ T8CNT2 /CURRENT PASS COCUNT + JMP T8OUT3 /ONTO THE NEXT LINE +T8EXT, IOF + STL STA /DECREMENT THE INTERRUPT COUNT + TAD T8LC + DCA T8LC + SNL /ALL ACCOUNTED FOR? + JMP T8IN /NO - MAKE ANOTHER ROUND + TAD T8FLG /DOES THE DC08 REQUIRE LEVEL 2 + TAD L2Q /OR SOMETHING ELSE? + CIA + TAD L2QE + AND T8SF /ALLOW "L2EXIT" ONLY IF FROM USER MODE + AND C0100 + SZA CLA /HOW SHOULD WE EXIT? + JMP T8EXIT /VIA L2EXIT + TAD T8SFA /BACK TO WHERE WE CAME FROM + CDF + JMP I RESTA + /MOVE THE ACTIVE REGISTERS OVER TO LEVEL 2 +T8EXIT, TAD T8SVLK /THE LINK + DCA L2SVLK + TAD T8SA /THE AC + DCA L2SA + TAD T8SV0 /THE PC + DCA L2SV0 + TAD T8SF /FIELDS & MODE + DCA L2SF + EXIT +T8OUT5, TTO TTIL /OUTPUT A BIT + SZA + JMP T8OUT8 /SAVE THE REMAINING BITS FOR NEXT TIME +T8OUT6, TAD T8OBF /OUR POSITION + TAD T8BF2 /MINUS THE OFFSET + DCA T8TMP /SECOND BUFFER + TAD I T8TMP + RAR + SNL /ANYTHING WAITING? + JMP T8OUT7 /NO + AND C0377 + CLL RAL + TAD T83000 /NOW THE STOP BITS & START BIT ARE IN PLACE + DCA I T8OBF /SAVE IT TO BE OUTPUT NEXT TIME + STL IAC RTR + DCA I T8TMP /SET BOTH HARDWARE BUSY AND SERVICE FLAGS + CDF + DCA I TTOFLD /SET "CONOUT" FLAG + DATFLD + ISZ T8FLG /SCHEDULE LEVEL 2 FOR US + JMP T8OUT4 +T8OUT7, STL CLA RAR + AND I T8TMP + DCA I T8TMP /CLEAR EVERYTHING EXCEPT SERVICE FLAG +T8OUT8, DCA I T8OBF + JMP T8OUT4 + +T8IN1, 0 + IOF + DCA I ACX11 /STASH IT IN THE RING BUFFER + TTRL + TAD T8BASE /MAKE DC08A LINE NUMBER = KXX + JMS I T8INPA /FINISH HOUSE-CLEANING + ISZ T8FLG /SCHEDULE LEVEL 2 + CIF DATFLD + JMP I T8IN1 /BACK TO FIELD 1 +T8BASE, PT08+KL8-DC08LO+1 +T8INPA, ACINT9 +>/END OF FIELD 0 DC08A CODE + *4000 + +/ THIS WILL RUN A "ROUND ROBIN" OF CORE RESIDENT JOBS + +NXTCO1, DCA SCHNEW /ANY JOB STARTED FROM HERE MAY BE THROWN OFF +NXTCOR, ISZ NXTCNT /HAVE WE CHECK ALL ENTRIES? + TAD NXTCNT + SMA SZA CLA + JMP I NXTNUL /YES; NOTHING RUNNABLE EXCEPT NULL JOB +NXTCO2, ISZ NXTCOP /BUMP CORTBL POINTER + TAD NXTCOP /ARE WE PAST THE END OF THE TABLE? + TAD I NXTEND + SZA CLA /? + JMP .+3 /NOT YET + TAD FANCOR /YES, START AT THE BEGINNING AGAIN + DCA NXTCOP /ALL SET + TAD I NXTCOP /GET CORTBL ENTRY + SNA /IS THERE ANYTHING IN THERE? + JMP NXTCO4 /NO; CLEAR DEAD JOB POINTER (A FREE FIELD IS BETTER) + AND C6600 /IS IT BEING SWAPPED, LOCKED, OR A PHANTOM? + SZA CLA + JMP NXTCOR /YES - SO IT'S NOT A USEFULL FIELD NOW + TAD I NXTCOP + AND C0037 + RUNABL + JMP NXTCO3 /NOT RUNNABLE + TAD I NXTCOP /TRY TO RUN THIS ONE + AND C0037 /GET JOBTBL INDEX + TAD JOBTBA /GET POINTER TO JOB DATA + GETJTI /GET VALUE OF STR0 + JOBSTS + AND C0107 /DOES [S]HE WANT TO RUN FIP OR SI FOR ERROR? + SZA CLA + JMP NXTCOR /HAVE TO WAIT 'TIL LATER + TAD I NXTCOP + JMP I .+1 /GO RUN THIS ONE + SCHEI2 +NXTCO3, STA + TAD NXTCOP /POINTER-1 OF DEAD JOB + DCA DEAD /SAVE IT + TAD NXTCOP + TAD NXTFLD /FIELD INDEX ONLY + JMS I NXTDSK /IS THERE DISK ACTIVITY IN THIS FIELD? +NXTCO4, DCA DEAD /YES; SO [S]HE'S NOT REALLY DEAD-WOOD THEN + JMP NXTCOR /KEEPLOOKING +NXTNUL, SCHNUL +NXTFLD= C1000 /-CORTBL+1 +NXTDSK, DSKACT +NXTCOP, CORTBL+1 /ROUND ROBIN CORTBL POINTER +NXTEND, CORTBE /END OR CORTBL +C0107, 107 +C6600, SWAP+LOCK+FIP+SI + UHALSA, L2SA +UHALT, TAD UUOCAL /IS IT AN OSR? + AND C0004 + SNA CLA /OSR? + JMP UHALT1 /NO + CDF + GETJTW /YES, GET CURRENT VALUE OF SWITCHES + JOBSWR + DCA UHALT2 /OR IT INTO AC + TAD UHALSA /WHICH IS RIDICULOUS, SINCE OSR + IOR /IS UNIVERSALLY CODED AS LAS, AND +NXTCNT, +UHALT2, 0 /A SIMPLE "DCA L2SA" WOULD DO +UHALT1, TAD UUOCAL /NOW SEE IF IT WAS MICROCODED + AND C0002 /HALT? + SNA CLA + UUOEXT + JMS I USBCSI /LOCATE HIS/HER DDB AND SEE IF [S]HE'S IN SI MODE + TAD FRECNT /USER HAS EXECUTED HLT + TAD C7770 + SPA SNA CLA /IF WE'RE SHORT ON FREE CORE, TRY LATER + REDO + GETJTW /CLEAR HIS/HER RUN BIT + JOBSTS + AND C3777 /CLEAR JSRUN + DATFLD + DCA I JOBSWA + TAD CONDBA /CONDBA WAS SET UP BY THE JMS TO UKT0 + JMS UHLTMS /NOW TYPE ^BS FOR HIM/HER + WAIT + +UHLTMS, 0 + DCA UHLTM1 /SET DEVTBL POINTER + RDF + TAD UHMES /EITHER TYPE ^BS OR ^BS;K + DCA AXS2 + CDF +UHLTM0, TAD I AXS2 /GET A CHARACTER + SPA SNA + JMP UHLTM2 /END OF TEXT + DCA TTCHAR /SAVE IT + KEY /RUN IT INTO HIS/HER INPUT BUFFER +UHLTM1, .-. + NOP + JMP UHLTM0 /GET ANOTHER ONE +UHLTM2, SZA CLA /WHERE DID WE COME FROM? + CIF DATFLD /BACK TO 689 SERVICE + JMP I UHLTMS + + UHMES, . + "B-100 + "S + "; + "K + 215 +C7377, 7377 +USBCLR, CLRBUF +USBFLG, CLSTR1 + "B-100 + "S + 213 + 0 +USBCSI, UKT0 + +/SELECTIVE BUFFER CLEAR +USBC, JMS I USBCSI /CHECK FOR SI MODE + DATFLD + TAD L2SA + CLL RAL + SMA CLA /CLEAR INPUT BUFFER? + JMP USBC3 /NO + TAD CONDDB /INPUT DDB ADDRESS + JMS I USBCLR /CLEAR INPUT BUFFER + TAD C0100 + JMS I USBFLG /CLEAR FLAG + TAD I CONDDB + AND C7377 /CLEAR FULL BIT + DCA I CONDDB +USBC3, TAD L2SA /WHAT IS REQUESTED? + SMA CLA /CLEAR OUTPUT BUFFER? + JMP USBC4 /NO + ISZ CONDBA /POINT TO OUTPUT SIDE + TAD I CONDBA + JMS I USBCLR /CLEAR OUTPUT BUFFER +USBC4, DCA L2SA /CLEAR HIS/HER AC + UUOEXT + + + + + + + +*4200 + +/STANDARD BOOTSTRAP AND RESTART ADDRESSES + + JMP I .+2 /INIT BOOTSTRAP + JMP I .+2 /RESTART ADDRESS + BOOT + DEBUG + FILERC, 0 /ROUTINE TO RECOVER FROM DISK ERRORS +FILUSA, 0 /AND SET ERROR CODES FOR USER +FILEWC, 0 /ERROR CODES ARE: +FILER1= WS2 / 1 PARITY + / 2 END OF FILE + / 3 FILE NOT OPEN + / 4 PROTECTION VIOLATION +FJSF3, -JSF3-1 +FILECA= C0004 /FILPCA +FILECT= C0007 /FILPCT +FILEIF= C0002 /FILPIF +C6000, 6000 +FILERR, 0 + DCA FILERC /ERROR CODE + CLL CLA CMA RAL /AC:=-2 + TAD FILERC /ERROR CODE - .GT.2? + SPA SNA CLA /PROTECTED OR NOT OPEN? + JMP FILER2 /NO + GETJTW /GET ADDRESS OF PARAMETER BLOCK + JOBLNK + RETBLK /RETURN IT TO FREE CORE + CLA + TAD L2SA /GET POINTER TO PARAMETERS IN USER AREA + TAD F0005 + DCA FILERR /POINTS TO SIXTH USER PARAMETER (ERROR CODE) + TAD FILERC /GET ERROR + UDF /SELECT USER FIELD + DCA I FILERR /PASS ERROR TO USER + CDF + DCA L2SA /CLEAR HIS/HER AC + UUOEXT /AND BACK TO HIM/HER + +FILER2, TAD I FILERR /END OF FILE OR PARITY ERROR... + TAD FILEIF /GET ADDRESS OF FILE PARAMETER BLOCK + DCA FILER5 /POINTS TO WORD 3 OF BLOCK + DATFLD + TAD I FILER5 /WAS FILE CALL ORIGINATED BY SI? + AND C6000 /BITS 0-1 WILL BE SET IF SO... + SNA CLA + JMP FILER4 /NO - IT CAME FROM USER PROGRAM + TAD I FILER5 /YES - GET FIELD # FOR TRANSFER + RTR + AND C0007 /MASK OUT FILE # BITS + TAD CORTBA /INDEX INTO CORTBL + DCA FILUSA /SAVE POINTER TO CORTBL ENTRY FOR THIS TRANSFER + CDF + TAD I FILUSA /GET CORTBL ENTRY + AND C0037 /EXTRACT JOB # + DCA FILUSA /SAVE JOB # + CLL CMA RAL /AC=-2 + TAD FILERC /IS IT AN END OF FILE? + SNA CLA + JMP FILER3 /YES; WE'RE ALMOST DONE THEN + TAD FILERC /NO - WAS THERE ANY ERROR AT ALL? + SNA CLA + JMP FILER3 /NO + TAD FILUSA /PARITY ERROR - SET SYSTEM ERROR CODE IN STR0 + ERROR +F0005, DSKERR +FILER3, ISZ FILERR /INDEX PAST CALLING ARGUMENT + CDF + JMP I FILERR /AND BACK + + + +FILER4, TAD I FILER5 /UPDATE USER CONTROL TO INDICATE ERROR CODE + RAL /SHIFT FIELD # INTO BITS 6-8 + AND C0070 /SAVE IT + TAD FILCDF /GENERATE "UDF" + DCA FILER5 /USER FIELD SELECT + CDF + TAD I FILERR /PARAMETER BLOCK ADDRESS + DCA FILEWC /SAVE IT + TAD FILEWC + DATFLD + TAD FILECA + DCA FILER1 /POINTS TO CORE ADDRESS IN PARAMETER BLOCK + TAD I FILER1 /GET CORE ADDRESS + DCA FILER1 /SAVE IT + TAD FILEWC /START OF PARAMETERS + TAD FILECT /+7 + DCA FILUSA /POINTS TO PTR TO FILE CONTROL + TAD I FILUSA /GET ADDRESS OF FILE CONTROL + TAD C0006 /POINTS TO WORD COUNT IN FILE CONTROL + DCA FILEWC /SAVE IT + TAD FILEWC + IAC + DCA FILUSA /POINTS TO POINTER TO USER PARAMETERS + TAD I FILUSA /GET POINTER TO USER ARGUMENTS + DCA FILUSA /SAVE + TAD I FILEWC /GET WORD COUNT TO GO FROM CONTROL BLOCK +FILER5, 0 /SELECT USER FIELD + DCA I FILUSA /SAVE IN USER AREA + ISZ FILUSA /POINTS TO WORD 4 OF USER ARGUMENTS + TAD FILER1 /GET LATEST CORE XFER ADDRESS + DCA I FILUSA /SAVE FOR USER + ISZ FILUSA + ISZ FILUSA /POINTS TO WORD 6 (ERROR WORD) + TAD FILERC /GET ERROR CODE + DCA I FILUSA /PASS ON TO USER +FILCDF, CDF + JMP FILER3 /AND BACK + BRKTBL, -"Z-1 /LETTERS + "Z-"A+1 + 2000 + + "A-"9-1 /NUMBERS + "9-"0+1 + 1000 + + "0-211-1 /HORIZONTAL TAB + 211-211+1 + 0400 + + 211-215-1 /LF, VT, FF, CR + 215-212+1 + 0200 + + 212-";-1 /! @ # DOLLAR % & ' ( ) * + , - . / : ; + ";-"!+1 + 0100 + + "!-240-1 /SPACE + 240-240+1 + 0040 + + 240-"@-1 /< = > ? @ + "@-"<+1 + 0020 + + "<-"_-1 /[ \ ] _ + "_-"[+1 + 0010 + + "[-377-1 /RUBOUT + 377-377+1 + 0004 + + 377-376-1 /ALTMODE + 376-375+1 + 0002 + + 375-377-1 /EVERYTHING ELSE + 377-0+1 + 0001 + *4400 + +/RFILE AND WFILE IOTS + +UFILE, TAD UFILWA /NO, GET USER PARAMETERS + JMS I UFPARM /AND MOVE TO PARAMETER BLOCK + TAD I UFLNKA /ADDRESS OF PARAMETER BLOCK + TAD UFIPIF + DCA UFPARA /POINTS TO WORD 3 OF BLBOCK + DATFLD + TAD I UFPARA /CLEAR ALL BUT FILE # IN BLOCK + AND C0003 + DCA I UFPARA /SAVE IT + TAD L2SA /ADDRESS OF USER PARAMETERS + TAD UFIPWC /+2 + DCA UFILE1 /POINTS TO WORD COUNT IN USER AREA + TAD I UFPARA /FILE # +SIFIL1, CDF + TAD UFJF0 /RELATIVE ADDRESS OF FILE 0 POINTER + DCA UFJOBF /RELATIVE ADDR OF FILE POINTER FOR THIS FILE + GETJTW +UFJOBF, 0 /POINTER TO FILE CONTROL INFO + SNA + JMP UFILER+1 /FILE NOT OPEN + DCA UFJOBF /SAVE POINTER TO FILE CONTROL + DATFLD + TAD I UFPARA /FILE # + JMS I UFIGJF /GENERATE CORRESPONDING FILE BIT IN STR1 + DCA UFIJSF /FILE STATUS FLAG + TAD L2SF /USER'S FIELD # + AND C0007 + CLL RTL /*4 + DCA JOBSWA /SAVE + TAD I UFPARA /GET FILE # + ORIGINATING STATUS INFO + AND C7743 /CLEAR FIELD # + TAD JOBSWA /SET FIELD # + DCA I UFPARA /SAVE IN PARAMETERS + TAD UFJOBF /SAVE GLOBAL PARAMETERS + IAC /POINTS TO WORD 2 OF CONTROL BLOCK + DCA AXS1 /CONTROL INDEX + CLL CLA CMA RTL /AC:=-3 + TAD UFPARA + DCA AXS2 /PARAMETER INDEX POINTS TO START OF PARAMETERS-1 + TAD I AXS2 /WRITE AND PROTECTED? + AND I AXS1 + AND C0004 /CHECK ONLY FOR WRITE PROTECT + SZA CLA + JMP UFILER /YES - ERROR + TAD AXS2 /NO, SET FILPAR = START OF PARAMETER BLOCK + DCA I AXS1 + TAD I AXS2 /DISC EXTENSION FROM PARAMETERS + DCA I AXS1 /TO CONTROL BLOCK + ISZ AXS2 /SKIP FIELD + TAD I AXS2 /SAVE WC + DCA JOBSWA + ISZ AXS2 /SKIP CORE ADDRESS FOR NOW + TAD I AXS2 /DISC ADDRESS + DCA I AXS1 /TO CONTROL BLOCK + TAD UFIRET /RETURN ADDRESS + DCA I AXS2 /TO PARAMETER BLOCK + TAD UFJOBF /POINTER TO FILE CONTROL + DCA I AXS2 /TO PARAMETER BLOCK + TAD JOBSWA /WORD COUNT + DCA I AXS1 /TO CONTROL BLOCK + TAD UFILE1 /POINTS TO WC IN USER AREA + SNA /IS THIS AN SI REQUEST? + JMP .+3 /YES + DCA I AXS1 /NO, SAVE POINTER TO WC IN CONTROL BLOCK + DCA L2SA /CLEAR USER AC + TAD UFJOBF /POINTER TO CONTROL BLOCK + TAD UFPAR2 /+3 + DCA UFILPA /POINTS TO POINTER IN CONTROL BLOCK POINTING TO PARAM. BLOCK + TAD UFJOBF /POINTS TO FILE CONTROL + JMS I UFILIX /GET SEGMENT INDEX + JMP I UFIL4A /NOT IN CORE - DO A WINDOW TURN + JMP UFILE2 /NON-EXISTENT DISC ADDRESS + JMS I UFICTB /OK, SET UP TRANSFER BLOCK - POINTER TO SEGMENT # IN AC +UFILPA, 0 /POINTER TO FILPAR + TAD I UFILPA /ADDRESS OF PARAMETERS + JMS I UFIQUE /QUEUE THE REQUEST IN DSUTBL + ISZ DSBUSY /DISC BUSY? + SKP /YES + JMS I FIUSER /NO, START TRANSFER + TAD UFIJSF /CLEAR FILE STATUS BIT + UUOEXT /EXIT + +SIFILE, DATFLD /HANDLE SI FILE TRANSFERS + TAD UFIPIF + DCA UFPARA /POINTS TO FILE # IN PARAMETERS + DCA UFILE1 + TAD I UFPARA /GET FILE # + AND C0003 /ONLY FILE # + JMP SIFIL1 /REST IS SAME AS USER PROGRAMS + UFILE2, GETJTW /NON-EXISTENT DISK ADDRESS + JOBLNK /GET ADDRESS OF PARAMETERS + DCA UFILE1 /SAVE IT + JMP .+3 +UFILER, IAC /PROTECTED + IAC /NOT OPEN + TAD C0002 /EOF + CDF + JMS I UFERR /FILE ERROR ROUTINE +UFILE1, 0 /POINTS TO PARAMETER BLOCK + TAD UFILE1 + RETBLK /RETURN PARA BLK + CLA + TAD CURJOB /DID WE BUMP SOMEONE ELSE OFF? + SZA CLA + WAIT /YES - GO BACK TO HIM/HER + UUOEXT /NO - BACK TO THIS USER + +UFPARA= WS0 /ADDR OF USER PARAMETERS +UFIJSF= WS1 /FILE STATUS FLAG +C7743, 7743 +UFILWA, UFILCT +UFJF0, JOBF0 +UFPAR2= C0003 /FILPAR +UFIPIF= C0002 /FILPIF +UFIPWC= C0002 /FILPWC + +UFPARM, GETUSP +UFLNKA, UUOLNK +UFERR, FILERR +UFILIX, FILIX +UFIRET, DSURET +UFICTB, FILCTB +UFIGJF, GETJFX +UFIQUE, DSQUE +UFIL4A, UFILE4 + +RKL20, CIF DATFLD-1 + JMP I .+1 + RKL21 + /RETURN CONTENT OF JOB STATUS FOR CURRENT JOB +/CALL +/ GETJTW +/ RELATIVE ADDRESS OF WORD +/ RETURN (CONTENTS IN AC, ABSOLUTE ADD IN JOBSWA) + +GETJW0, 0 + TAD I GETJW0 /GET RELATIVE ADDRESS + DCA .+3 /SAVE IT + TAD CJOBDA /POINTER TO CURRENT JOB STATUS + GETJTI /GETCONTENTS + 0 + ISZ GETJW0 /INDEX RETURN + JMP I GETJW0 + + + +*4600 + +/RETURN NUMBER OF NEXT RUNNABLE JOB IN AC +/CALL JMS NXTJOB +/ RETURN WITH JOB # IN AC + +FILCDA, +NXTJCT, 0 +NXTJBN, 0 /NEXT JOB # +NXTJMM, -JOBMAX + +FILCT2, +NXTJOB, 0 + DCA FIT /CLEAR FIT + TAD BONUS /IS THERE ANY JOB BROKEN OUT OF KEYBOARD WAIT? + RUNABL /IS IT RUNNABLE? + JMP NXTJ1 /NO, GET THE NEXT JOB + TAD BONUS /THIS JOB + JMP I NXTJOB +NXTJ1, ISZ NXTJCT /HAVE WE TRIED ALL JOBS? + SKP /NO, KEEP GOING + SCHED /TRY FOR A RESIDENT JOB + TAD NXTJBN /IS IT TIME TO WRAP AROUND TO JOB 1? + TAD NXTJMM + SNA CLA + DCA NXTJBN /YES + ISZ NXTJBN /INCREMENT NUMBER OF JOB UNDER CONSIDERATION +NXTJ2, TAD NXTJBN /IS THE JOB RUNNABLE? + RUNABL + JMP NXTJ1 /NO, CONTINUE JOB TABLE ROUND ROBIN + TAD NXTJBN /YES, RETURN WITH JOB NO. IN AC + JMP I NXTJOB + /CONSTRUCT TRANSFER BLOCK +/CALL TAD SEGMENT WINDOW POINTER +/ JMS FILCTB +/ POINTER TO FILPAR + +FILCPD= C0004 /FILPDA-FILPDX +FILCWC= C7776 /FILPWC-FILPDA +FILCSW= JOBSWA /POINTER TO SEGMENT WINDOW +FILCPA= WS2 /POINTER TO FILPAR & FILDA +FILCWA, 0 +FILCPX, 0 /POINTER TO FILPDX, FILPDA & FILPWC + +FILCTB, 0 + DCA FILCSW /SAVE POINTER TO SEGMENT IN WINDOW + TAD I FILCTB + DCA FILCPA /ADDRESS OF POINTER TO PARAMETER BLOCK + ISZ FILCTB /SKIP ARGUMENT IN CALL + DATFLD + TAD I FILCPA /GET ADDRESS OF PARAMETERS + IAC /POINTS TO WORD 2 OF PARAMETERS + DCA FILCPX + ISZ FILCPA /POINTS TO DISK EXTENSION IN CONTROL BLOCK + CLA CMA + TAD I FILCSW /GET SEGMENT # + CLL RAR + RTR + RTR /MULTIPLY BY 400 SEG SIZE + DCA FILCT2 /SAVE "PRODUCT" + TAD FILCT2 + RAL + AND SEGSM1 /THROW OUT CONTRIBUTION FROM HI ORDER BITS OF EXTENSION + TAD FIBAS1 /START OF LOGICAL FILE AREA + CLL RTL + DCA I FILCPX /SAVE IN DISK EXTENSION IN PARAMETER BLOCK + TAD FILCT2 /NOW GET LOW ORDER ADDRESS + AND SEGLMK + DCA FILCT2 /AND SAVE IT + TAD FILCPX /SET DISC ADDRESS + TAD FILCPD + DCA FILCPX /POINTS TO LOW ORDER ADDRESS IN PAR. BLOCK + TAD FILCPA + IAC + DCA FILCDA /POINTS TO LOW ORDER ADDRESS IN CONTROL BLOCK + TAD I FILCDA /GET WORD ADDRESS SUPPLIED BY USER + AND SEGSM1 /(WORD IN SEGMENT) + TAD FILCT2 /+ WORD ADDRESS FROM SEGMENT ARITHMETIC + DCA I FILCPX /SAVE IT IN PARAMETER BLOCK + TAD FILCPX /SET WORD COUNT + TAD FILCWC + DCA FILCPX /POINTS TO WORD COUNT IN PARAMETER BLOCK + DCA I FILCPX /NOTHING TRANSFERRED YET + TAD FILCDA + IAC + DCA FILCWA /POINTS TO WORD COUNT IN CONTROL BLOCK + FILCT1, TAD SEGSM1 /SEGS12-1 + AND I FILCDA /LOW ORDER ADDRESS IN CONTROL BLOCK + DCA FILCT2 /DISC ADDRESS MOD SEGS!Z + TAD I FILCWA /GET -WC FROM CONTROL BLOCK + CLL CIA /+WC + TAD FILCT2 /IF WE DO ENTIRE WC WILL WE GO INTO NEXT + AND SEGLMK / SEGMENT? + SNA CLA + SZL + JMP FILCT3 + TAD I FILCWA /NO + JMP .+3 +FILCT3, TAD SEGLMK /SUBTRACT SEGS12 FROM WC, SO WE STAY IN SAME SEGMENT + TAD FILCT2 + DCA FILCT2 /WORD COUNT FOR TRANSFER + TAD FILCT2 /UPDATE WORD COUNT IN PARAMETER BLOCK + TAD I FILCPX /OLD VALUE + DCA I FILCPX /NEW VALUE + TAD FILCT2 /UPDATE WORD COUNT IN FILE CONTROL BLOCK + CIA /+WC + TAD I FILCWA /OLD -WC + DCA I FILCWA /NEW -WC + TAD I FILCWA /ARE WE DONE? + SNA CLA + JMP I FILCTB /YES + TAD FILCT2 /INCREMENT DISC ADDRESS + CLL CIA /+WC + TAD I FILCDA /OLD DISC ADDRESS + DCA I FILCDA /NEW DISC ADDRESS + SZL /OVERFLOW? + ISZ I FILCPA /YES - INDEX DISC EXTENSION + TAD I FILCSW /GET CURRENT SEGMENT # + CLL CMA /-(SEGMENT # +1) + DCA FILCT2 /SAVE IT + ISZ FILCSW /POINTS TO NEXT SEGMENT IN WINDOW + TAD FILCSW /ARE WE STILL IN THE WINDOW? + AND C0007 + SZA CLA /NEXT POINTER IN CORE? + JMP FILCT4 /YES, SEE IF NEXT SEGMENT IS CONTIGUOUS + TAD BASWIN /NO, IS IT BASIC? + TAD FILCSW /COMPARE THE WINDOW ADDRESS WITH BASIC WINDOW ADDRESS + SNL CLA + JMP I FILCTB /NO, RETURN +FILCT4, TAD I FILCSW /GET THE NEXT SEGMENT + TAD FILCT2 /CONTIGUOUS SEGMENTS? + SNA CLA + JMP FILCT1 /YES - CONTINUE THE TRANSFER + JMP I FILCTB /RETURN +FIBAS1, SWDEX+JOBMAX + /TAKE CARE OF DUPLEX AND UNDUPLEX IOT'S + +UDUP, TAD C0200 /DUPLEX BIT IN DDB WORD 1 +UUND, DCA WS0 /WS0 CONTAINS BIT TO ADD FOR BOTH IOT'S + TAD JOB + TTYUSE /FIND INPUT DDB + DCA WS1 /ADDRESS OF DDB + DATFLD + TAD I WS1 /WORD ONE OF DDB + AND C7577 /CLEAR DUPLEX BIT + TAD WS0 /SET IT AS CALLED FOR + DCA I WS1 + UUOEXT + +C7577, 7577 + *5000 + +/TELEPRINTER IOT'S + +UTELC= WS0 + + +UTEL, JMS UKT0 /FIND THE CONSOLE # ATTACHED TO JOB + ISZ CONDBA /POINT TO OUTPUT SIDE +UULPT, TAD UJSTEL /TTY FLAG +UUPTP, DCA UOUTFL /SAVE THE DEVICE'S FLAG + JMS UKT1 /WHAT IS REQUESTED BY USER? + JMP UTELS /SEND A STRING (6XX0) +UOUTFL, JSTEL /DEVICE FLAG POSITION IN STR1 + JMP I UTELS1 /UNCONDITIONAL SKIP ON USER "TSF, PSF, OR LSF" + SNA CLA /6XX4 OR 6XX2 + UUOEXT /6XX2 - IF WE CLEAR FLAGS WE MAY DIE + TAD L2SA /6XX4 + DCA TTCHAR + PRINT /OUTPUT THE CHARACTER + SKP /NO ROOM - REDO LATER + UUOEXT /OK - ALL DONE + STA /BACK UP HIS/HER PC + TAD L2SV0 + DCA L2SV0 + JMP UTELS6 +UTELS5, DCA L2SA /CLEAR USER'S AC + TAD UKT0 /KEEP HIM/HER RUNNING IF WE WERE ABLE TO ACCEPT ANY CHARACTERS + SNA CLA +UTELS6, TAD UOUTFL /MAKE HIM/HER WAIT FOR DEVICE FLAG + UUOEXT /AND AWAY +UJSTEL, JSTEL + +UKT0, 0 + TAD JOB + TTYUSE /GET ADDR OF INPUT DDB + DCA CONDDB /SAVE IT + DATFLD /GET CONTENTS OF FIRST WORD OF DDB + TAD I CONDDB /UNIT # + FLAGS IN AC + CDF + AND C1000 + SNA CLA /CONSOLE IN SI MODE? + JMP I UKT0 /NO - OK TO CONTINUE + GETJTW + JOBWMK + CLA + DATFLD + DCA I JOBSWA /CLEAR HIS/HER WAIT MASK TO HANG HIM/HER UP + REDO /SI WILL WAKE HIM/HER UP TO TRY AGAIN LATER + UJSPTP= C0004 +/ "SEND-A-STRING" + + +UTELS, UDF /SELECT USER'S FIELD + TAD I L2SA + SNA CLA + JMP UTELS4 /USER'S W.C. IS ZERO - SO SEND NOTHING + DCA UKT0 + TAD L2SA + IAC + DCA UTELC /POINTS TO ADDRESS OF STRING IN USER AREA + TAD I UTELC /GET ADDRESS-1 OF STRING + DCA AXS2 /SAVE POINTER TO STRING +UTELS3, TAD I AXS2 /GET CHARACTER FROM USER + CDF + DCA TTCHAR + PRINT /OUTPUT THE CHARACTER + JMP UTELS5 /BUFFER FULL + UDF + ISZ I UTELC /BUMP ADDRESS IN USER AREA + ISZ UKT0 /DOESN'T MATTER THAT WE MAY SKIP THIS + ISZ I L2SA /BUMP USER'S WORD COUNT + JMP UTELS3 /KEEP GOING +UTELS4, DCA L2SA /ALL DONE --- CLEAR USER AC + JMP I UTELS1 /EXIT AND SKIP +UTELS1, UUOEX2 + +/LINE PRINTER UUO'S + +ULPT, JMS I UPTLPA + DEVTBE+3 /LINE PRINTER POSITION IN DEVTBL + TAD .-1 + DCA CONDBA /IT'S OK TO USE THE PRINTER + TAD UJSTEL /LPT FLAG (20+20=40) + JMP UULPT + +/PAPER TAPE PUNCH UUO'S + +UPTP, JMS I UPTLPA /OK TO USE PUNCH? + DEVTBE+1 /PUNCH'S POSITION IN THE DEVTBL + TAD .-1 + DCA CONDBA /PASS ON THE PUNCH'S POSITION + TAD UJSPTP /PUNCH FLAG + JMP UUPTP +UPTLPA, DEVCHK + /ROUTINE TO ANALYZE IOT'S +/CALLING SEQUENCE: +/ IOT IN UUOCAL +/ JMS UKT1 +/ RETURN FOR STRING IOT +/ FLAG TO CHECK IN STR1 +/ RETURN FOR NON-SKIPPING FLAG TESTS +/ RETURN FOR EVENT TIMES 2 AND 4 (AC=BIT 9 OF IOT; LINK=BIT 10) +/ ILLEGAL MICRO-CODING RESULTS IN "NOP" +/ SKIPPING FLAG RESULTS IN INCREMENT OF USER PC +UKT1, 0 + TAD UUOCAL + AND C0007 + SNA /STRING? + JMP I UKT1 /YES + ISZ UKT1 + CLL RAR /NO + SNL /SKIP TEST? + JMP UKT12 /NO + SZA CLA /YES - ANYTHING ELSE? + UUOEXT /YES - BAD MICRO-CODING + GETJTW /GET HIS/HER STR1 + JOBSTS+1 + AND I UKT1 /FLAG TO CHECK + CLL RTR /IGNORE THE ERROR FLAG + ISZ UKT1 /INDEX PAST ARGUMENT + SNA CLA /FLAG SET? + JMP I UKT1 /NO - DON'T SKIP + JMP I UTELS1 /YES - SKIP ON EXIT +UKT12, ISZ UKT1 + ISZ UKT1 + CLL RAR + JMP I UKT1 /INDEX RETURN + UUOERR, CDF /SET "ILLEGAL IOT" ERROR CODE + TAD JOB + ERROR + UUOERF /CODE=1 +USYN, WAIT /AND BACK TO THE SCHEDULER + +USTMT1= WS0 +SLEEP, TAD JOB + SNA CLA /PROBABLE TROUBLE DUE TO EAE + EXIT + TAD C0002 +DOUSTM, CIA /NEGATE + DCA DDSTM1 /SAVE - # UNITS OF TIME + TAD JOB /SET CLKTBBL ENTRY FOR THIS JOB + TAD CLKTBA + DCA USTMT1 /POINTS TO THIS JOB'S ENTRY + TAD DOSTM1 + DATFLD + DCA I USTMT1 /SET TABLE ENTRY + STL RAR /SET AC=JSTIME + UUOEXT /EXIT AND WAIT +DOSTM1, 0 +CLKTBA, CLKTBL /JOB TIMER TABLE ADDRESS + +*5171 +OVERLA, SKP /ERROR + JMP I OVER1A /OK, FINISH UP + TAD I FANCOR /GET NUMBER OF JOB IN TROUBLE + ERROR /PASS ERROR TO USER + DSKERR + JMP I OVER1A /NOW FINISH UP +OVER1A, OVERL1 + /NULL JOB IS THE ONLY INSTRUCTION IN FIELD 0 WHICH +/IS EXECUTED IN USER MODE. +/IT IS RUN WHENEVER THERE IS NOTHING ELSE +/TO DO, OR NOTHING ELSE THAT CAN BE DONE. +/ +/WHEN DEBUGGING THE MONITOR, IT IS POSSIBLE +/TO STOP (VIA THE PDP-8 OPERATOR CONSOLE) THE MONITOR +/TO ENTER XDDT. THIS MAY ONLY BE DONE +/WHEN THE SYSTEM IS IN NULJOB. IF THE +/SYSTEM IS STOPPED WHEN NOT IN NULJOB, IT MAY +/BE RESTARTED BY HITTING "CONTINUE," AND THEN +/STOPPED AGAIN. KEEP TRYING - EVENTUALLY YOU'LL CATCH IT. +/DO NOT STOP THE SYSTEM (AND EXPECT TO GET AWAY WITH IT) +/IF ANY I/O IS IN PROGRESS. + +/IF THE SYSTEM IS STOPPED IN NULJOB, IT MAY BE +/RESTARTED AT LOCATION 4201 IN FIELD 0. + + + +NULJOB, JMP . /IT'S A BIGGY, ISN'T IT? + \ No newline at end of file diff --git a/tss8/system/ts8d.pal b/tss8/system/ts8d.pal new file mode 100644 index 0000000..abd1d12 --- /dev/null +++ b/tss8/system/ts8d.pal @@ -0,0 +1,1279 @@ +/RETURN FILE WINDOW INDEX +/CALL TAD POINTER TO FILE CONTROL +/ JMS FILIX +/ SEGMENT ADDRESS NOT IN WINDOW +/ NON-EXISTENT FILE ADDRESS +/ OK RETURN WITH ADDRESS OF SEGMENT POINTER + +FILIDA= C0004 /FILDA + +FILIX, 0 + DCA FILICN /SAVE POINTER TO FILE CONTROL + TAD FILICN + TAD FILIDA /4 + DATFLD + DCA FILSP2 /POINTS TO FILE EXTENSION IN CONTROL BLOCK + TAD I FILSP2 /FILE EXTENSION + AND C0177 /LIMIT FILE SIZE TO 1777777 (?!?) + DCA FILSP1 /HIGH ORDER COMPONENT OF SEG # + ISZ FILSP2 /POINTS TO LOW ARDER ADD + TAD I FILSP2 /LOW ORDER ADDRESS + AND SEGLMK /GET RID OF ADDRESS IN SEGMENT + CLL RAL + TAD FILSP1 /HIGH ORDER PART + RTL /"DIVIDE" BY 400 SEG SIZE + RTL + CIA /-(SEGMENT# -1) + DCA FILISN + TAD FILICN + IAC + DCA FILICA /POINTS TO SEGMENT # INDEX IN WINDOW + TAD I FILICN /POINT TO WINDOW + DCA FILICN + TAD I FILICN /GET WORD 1 OF WINDOW + AND C0007 /VALID WINDOW? + SZA + JMP FILIX5 /NO, IT IS A BASIC WINDOW + TAD I FILICA /YES + TAD FILISN + SMA SZA /FILSCT-SN>0? + JMP FILIX2 /YES, SEGMENT POINTER NOT IN CORE + TAD C0006 /FILSCT+6-SN<0? + SMA + JMP FILIX1 + CLA /YES, SEGMENT POINTER NOT IN CORE + TAD I FILICN /ANY MORE SEGMENTS? + SNA CLA + ISZ FILIX /NO, NON-EXISTENT FILE ADDRESS +FILIX2, CLA +FILIX3, CDF + JMP I FILIX /RETURN + FILIX5, AND C0006 /IS IT BASIC OR INVALID WINDOW? + SNA CLA + JMP FILIX3 /INVALID WINDOW + TAD FILISN /GET -(SEG # -1) + TAD BASWIN + CIA /AC=SEG # -1 + SPA + JMP FILIX4 + JMP FILIX2-1 /BASIC BUT NON-EXISTENT +FILIX1, CIA + TAD C0007 /WINDOW INDEX + TAD FILICN /START OF WINDOW +FILIX4, DCA FILICA /POINTS TO SEGMENT # + ISZ FILIX /SEGMENT ADDRESS IN CORE - EXIT + TAD I FILICA /GET SEGMENT # FOR THIS FILE ADDRESS + SNA CLA + JMP FILIX3 /ZERO SEGMENT NUMBER IS NOT A SEGMENT! + TAD FILICA /EXIT WITH POINTER TO THIS SEGMENT IN AC + ISZ FILIX + JMP FILIX3 + +FILISN, 0 +FILICN, 0 + /RETURN USER RUN TIME +/USER CALLS WITH ADDRESS OF THREE WORD BLOCK +/WORD 1 CONTAINS THE JOB # +/THE HI AND LO ORDER RUN TIMES ARE RETURNED IN WORDS 2 AND 3 + +UURT, UDF /USER FIELD + TAD I L2SA /JOB # + JMS I JOBCHB /SEE IF IT'S A VALID JOB + JMP UURT0 /IT WASN'T + TAD JOBTBA + GETJTI /LOW ORDER RUNTIME + JOBRTM + ISZ JOBSWA +UURT0, DCA UCOP2 + DATFLD + TAD I JOBSWA + DCA UCOP1 + JMP UCOPY2-2 /COPY IN USER AREA +JOBCHB, JOBCHK + + +/RETURN THE TIME OF DAY IN SYSTEM TICKS SINCE MIDNIGHT. +/USER CALLS WITH ADDRESS OF TWO WORD BLOCK IN AC. +/HI AND LOW ORDER PARTS RETURNED IN WORDS 1 AND 2. + +UTOD, TAD CLK1 /-TIME TILL MIDNIGHT + CLL + TAD INKLK1 /TIME AT MIDNIGHT + DCA UCOP2 /LOW ORDER TIME NOW + RAL + TAD CLK2 /-TIME TILL MIDNIGHT + TAD INKLK2 /TIME AT MIDNIGHT + DCA UCOP1 /TIME NOW (HIGH ORDER) + JMP UCOPY2 /COPY IN USER AREA + +INKLK1, INCLK1 +INKLK2, INCLK2 + + /RETURN THE USER'S STATUS REGISTERS +/CALLED WITH ADDRESS OF THREE WORD BLOCK IN AC + +UCKS, GETJTW + JOBSTS + DCA UCOP0 /STATUS 0 + DATFLD + ISZ JOBSWA + TAD I JOBSWA /STATUS 1 + DCA UCOP1 + ISZ JOBSWA + TAD I JOBSWA + DCA UCOP2 /STATUS 2 + UDF /SELECT USER FIELD + TAD UCOP0 + DCA I L2SA + ISZ L2SA /BUMP POINTER + NOP +UCOPY2, UDF /FOR LATER ENTRIES + TAD UCOP1 /SECOND WORD + DCA I L2SA + ISZ L2SA + NOP + TAD UCOP2 /THIRD WORD + DCA I L2SA + DCA L2SA /CLEAR USER AC + UUOEXT + +DEVJO0, +UCOP0, +FILSP1, 0 + +UCOP1, +FILSP2, 0 + +UCOP2, 0 + /ROUTINE TO EXTRACT JOB NUMBER FROM DDB +/CALL +/ TAD (DDB ADDRESS) +/ JMS DEVJOB +/ RETURN WITH JOB # IN AC + +FILICA, +DEVJOB, 0 + IAC + DCA DEVJO0 /POINTS TO WORD 1 OF DDB + DATFLD + TAD I DEVJO0 /GET WORD 1 + AND C0037 /IGNORE JUNK + JMP I DEVJOB /RETURN +C7037, SWAP LOCK NOTRUN CJOB +FIPLOA, FIPLOK +L2FIP, TAD C7037 /OK - ALLOW FIP TO BE OVER-WRITTEN BY USER JOBS AGAIN + DCA I FIPLOA + EXIT + +/WE ENTER THIS ROUTINE AT LEVEL 2 +/AFTER COMPLETING A DISK TRANSFER +/IF A FILE TRANSFER IS INVOLVED, WE CONTINUE +/WITH IT +/IF OVERLAY, WE GO TO OVERLAY CONTROL +/IF OVERLAY IS COMPLETED WE FORCE THE SCHEDULER TO RUN THE PHANTOM + +DSURT1= WS0 +DSURT2= WS1 + +DSURDA= C0004 /FILDA + +DSUET1= WS0 + + +DSURET, IAC /ERROR IN DISK TRANSFER + DCA DSKCOD /SAVE ERROR CODE + TAD DSKPTR /POINTS TO REQUEST CURRENTLY RUNNING + TAD DSUMTB /FIND RELATIVE INDEX IN TABLE + CLL RTR /DIVIDE BY FOUR + AND C0007 /SAVE FIELD + TAD CORTBA /INDEX INTO CORTBL + DCA DSUCOR + TAD I DSUCOR /GET CORTBL ENTRY + AND C0037 /EXTRACT JOB # + TAD JOBTBA /POINTS TO JOBTBL + DCA DSUJTE /SAVE JOBTBL ADDRESS + TAD DSUJTE + GETJTA /GET ADDRESS OF STR0 + JOBSTS + DCA DSUJST /SAVE IT + TAD DSKCOD /IS THERE AN ERROR? + SZA + JMP DSURER /YES - JMP OUT OF THE ROUTINE AS QUICKLY AS POSSIBLE + JMS DSUPAR /PARAMETER BLOCK ADDRESS + TAD DSURDA + DCA DSURT1 /POINTS TO WORD 5 OF PARAMETERS + TAD I DSURPA /ADDRESS OF PARAMETERS + IAC + DCA DSURT2 /POINTS TO DISK EXTENSION IN PARAMETERS + DATFLD + TAD I DSURT1 /DISC EXTENSION FROM CONTROL... + DCA I DSURT2 / ... TO PARAMETERS + TAD DSURT2 + TAD C0004 + DCA DSURT2 /POINTS TO DISC ADDRESS IN PARAMETERS + ISZ DSURT1 /POINTS TO DISC ADDRESS IN FILE CONTROL + TAD I DSURT1 /DISC ADDRESS FROM CONTROL... + DCA I DSURT2 / ...TO PARAMETERS + ISZ DSURT1 /POINTS TO WORD COUNT IN FILE CONTROL + CLL CMA RAL + TAD DSURT2 + DCA DSURT2 /POINTS TO WORD COUNT IN PARAMETERS + TAD I DSURT2 /SAVE TEMPORARILY -WC FROM PARAMETERS + CIA + DCA DSKCOD + TAD I DSURT1 /MOVE WC FROM FILE CONTROL... + DCA I DSURT2 / ...TO PARAMETERS + ISZ DSURT2 /POINTS TO CORE ADD IN PARAM. + TAD DSKCOD /UPDATE CORE ADD BY COUNT TRANSFERRED + TAD I DSURT2 + DCA I DSURT2 /SAVE NEW AADD + TAD I DSURT1 /GET WORD COUNT FROM CONTROL + CDF +C7640, SZA CLA /ARE WE DONE? + JMP DSURE2 /NO +DSURER, DCA DSKCOD /SAVE ERROR STATUS IF IT IS AN ERROR + TAD I DSURPA /GET ADDRESS OF PARAMETER BLOCK + DCA .+3 /FOR CALL TO FILERR + TAD DSKCOD /ERROR CODE + JMS I DSUFEA /HANDLE ERROR + 0 + CLL + TAD I DSUCOR + TAD C7640 /SET "NOTRUN" IF NOT INHIBITED + AND DSHOLD /SAVE "NOTRUN," "NOHOLD," & AND JOB + SNL /ANY MORE BONUSES DUE? + DCA I DSUCOR /YES - SET "NOTRUN" SO [S]HE WON'T BE SWAPPED OUT BEFORE BEING RUN AGAIN +DSURE1, DCA DSFLAG + ISZ DSUJST /SET INACTIVE FLAG IN STR1 + TAD DSKPTR /FIGURE OUT WHICH INTERNAL FILE # + TAD DSUMTB + JMS I DGETJX + DATFLD + TAD I DSUJST /NOW SET FILE READY & DUMMY WAIT BIT + DCA I DSUJST /SAVE STR1 + JMS DSURE4 + ISZ DSFLAG /THIS TRANSFER COMPLETE? + RSCHED /YES - BUMP OOFF THE NULL JOB IF POSSIBLE + TAD I DSUCOR + JMP I .+1 /GO SET UP FOR THE NEXT PART OF THIS TRANSFER + FILCON +DSURPA, DSPARM +DSUFEA, FILERR + /MOVE SEGMENT WINDOW + +DSURE2, TAD DSUJTE /SET JOBLNK + GETJTA + JOBLNK + DCA DSKCOD /SAVE POINTER TO JOBLNK + TAD I DSURPA /GET ADDRESS OF PARAMETER BLOCK + DATFLD + DCA I DSKCOD /AND SAVE IN JOBLNK + CDF + DCA I DSURPA /CLEAR DSPARM + STA /-1 TO SET TRANSFER INCOMPLETE FLAG + JMP DSURE1 + +DSUCOR, 0 +DSHOLD, NOTRUN NOHOLD CJOB +DSUMTB, -DSUTBL +DGETJX, GETJFX +DSKCT, DSKCON +DSKCOD, 0 + + +DSURE4, 0 + TAD DSKPTR /CURRENT REQUEST POINTER + DCA DSUET1 + DATFLD + DCA I DSUET1 /CLEAR THIS REQUEST + CDF + TAD I DSURPA /RETURN PARAMETER BLOCK IF FINISHED + SZA + RETBLK /OK - RETURN IT + JMS I DSKCT /DECREMENT BUSY - START ANY TRANSFER THAT'S WAITING + JMP I DSURE4 + DSUJST, 0 /POINTER TO JOB STATUS +DSUJTE, 0 /JOB TABLE ENTRY + +DSFLAG, +DSUPAR, 0 /GET PARAMETER BLOCK ADDRESS + TAD I DSURPA /GET ADDRESS + TAD C0007 /GET POINTER TO LAST WORD IN BLOCK + DCA DSUET1 + DATFLD + TAD I DSUET1 /GET ADDRESS OF FILE CONTROL + CDF + JMP I DSUPAR /EXIT + +OVERL1, JMS DSUPAR /GET ADDRESS OF FILE CONTROL, & CLEAR DSFLAG + SZA + JMP OVE2 + TAD I FANCOR + TAD C1000 /NOT RUN YET + DCA I FANCOR + TAD SCHPHA +OVE2, DCA DSFLAG /DISPATCH ADDRESS + JMS DSURE4 + JMP I DSFLAG + +SCHPHA, SCHFAN + +/GET JSFX +/CALL TAD FILE # +/ JMS GETJFX +/ RETURN WITH JSFX IN AC +GETJFX, 0 + AND C0003 /FILE # ONLY + CMA + DCA TRAC /-SHIFT COUNT + STL RAR + RAR + ISZ TRAC /DONE? + JMP .-2 + JMP I GETJFX /YES, EXIT WITH BIT SET IN AC + +USIZE, TAD SEGSIZ /RETURN SEGMENT SIZE IN AC + JMP UUAC +UUSE, TAD JOB /RETURN JOB # IN AC + JMP UUAC + TICSPS /# TICKS PER SECOND +URCR, TAD .-1 /RETURN CLOCK RATE +UUAC, DCA L2SA + UUOEXT + /ROUTINE TO RECOGNIZE AND REPLY TO ^C + +GIR9, TAD CONDDB + JMS I PTJOB /GET HIS/HER JOB NUMBER FROM THE DDB + CDF + TAD JOBTBA + DCA WS1 + TAD WS1 /POINTS TO JOB DATA AREA + GETJTI + JOBSTS+1 /GET STR1 + AND GIRFCL /CLEAR TIMER, AND DELIMITER FLAGS & JSWAIT + DATFLD + DCA I JOBSWA + STL RTL + TAD JOBSWA + DCA WS0 /POINTS AT WAIT MASK 1 + TAD I WS0 /ARE WE WAITING FOR A FILE TRANSFER? + AND GIRFIL + ISZ WS0 /POINTS AT WAIT 2 + TAD I WS0 /OR - WAITING FOR DECTAPE, RK05, OR CARDREADER? + SNA CLA + ISZ I JOBSWA /NO - SET DUMMY WAIT BIT + ISZ WS0 /POINT TO RESTART ADDRESS + CDF + TAD WS1 /GET POIONTER TO JOBREG + GETJTI + JOBREG + CLA + TAD CONDDB /GET JOB NUMBER + JMS I PTJOB /AC=JOB; DATA FIELD=1 + JMP I .+1 + GIR90 /OFF TO PART TWO + +GIRCBF, CLRBUF +GIRFIL, JSF0+JSF1+JSF2+JSF3 +GIRFCL, -JSTIME-JSDEL-JSWAIT-1 + SWBASE= C0004 /SWAP TRACK OF JOB 1 (SWDEX-1) + + + + +/ROUTINE TO SET UP SWAP +/CORTBL POINTER TO FIELD TO SWAPPED OUT IN WS0 +/FINISH= +FIELD # FOR SWAP IN; FINISH= -FIELD # FOR SWAP OUT +/FIT=JOB TO BE SWAPPED IN OR PHANTOM TO BE BROUGHT IN +/FORCE=FIELD TO BE SWAPPED OUT +/ENTER AT SWAPIN FOR SWAP IN +/ENTER AT SWPOUT FOR SWAP OUT + + +SWPOUT, TAD WS0 /OR SWAP BIT INTO CORTBL + IOR + SWAP + TAD I WS0 /JOBS ARE THE ONLY ONES TO BE SWAPPED OUT + JMS TRAC /GET THE TRACK # FOR THIS JOB + DCA OUTTRC /SAVE IT +SWAPIN, TAD FINISH /FINISH HAS FIELD # FOR SWAP ACTIVITY + OR - + SPA + CIA /GET THE ABSOLUTE VALUE + CLL RTL + RAL /IN POSITION 00X0 + DCA SQREQ /SAVE IT FOR SETTING UP DISC I/O + TAD FIT /IS A PHANTOM NEEDED? + AND C0600 + SNA + JMP SWAP1 /NO JOB IS TO BROUGHT IN + AND C0400 /IS FIP NEEDED? + SZA CLA + IFZERO RF08-40 /YES, DF32 NEEDS TRACK IN POSITION 0X00 + IFZERO RF08 /YES, RF08 NEEDS TRACK IN POSITION 000X +SWAP3, DCA INTRC + ISZ DSBUSY /IS ANY DISC ACTIVITY GOING ON? + SCHED /YES, SO FIND A RESIDENT JOB + JMS I SWPIOA /NO, START THE SWAP I/O + SCHED /FIND A RESIDENT JOB IN THE MEANTIME +SWAP1, TAD FIT /GET THE JOB # TO BE SWAPPED IN + JMS TRAC /GET ITS TRACK # + JMP SWAP3 + +/ROUTINE TO SET FLAG IN USER STATUS REG AND EXIT +/CALLING SEQUENCE: +/ CONDBA POINTS TO POSITION IN DEVTBL +/ TAD (FLAGS TO SET) +/ JMS PTSTAR +/ RETURN + +PTSTAR, 0 + DCA PTFLAG /SAVE FLAGS TO SET + TAD I CONDBA + JMS I PTJOB /GET JOB # FROM DDB + SNA + JMP I PTSTAR + TAD JOBTBA /START OF JOB TABLE + DCA TRAC + STL RTL + TAD I TRAC /ADDRESS OF STR1 + IOR /OR IN FLAGS +PTFLAG, 0 + JMP I PTSTAR +PTJOB, DEVJOB + + + /DECTAPE HANDLER CODE +/FOR DISK TRANSFERS TO OR FROM USER SWAP AREA +/ALSO FOR ALL LEVEL 2 COMPLETION + +DTDSF0, 0 /MAY RETURN UP TO 4 TIMES - EACH +1 FROM THE LAST + DCA I DTDQUE /PUT THE DECTAPE'S DISK REQUEST IN THE QUEUE + CDF + ISZ DSBUSY /DISK ALREADY BUSY? + SKP + JMS I FIUSER /NO, START IT +DTDXF0, CIF DATFLD + JMP I DTDSF0 /BACK TO DECTAPE HANDLER +DTL20, CIF DATFLD /LEVEL 2 DISPATCHER + JMP I DTLEV2 +DTDEF0, ERROR /DECTAPE DISK ERROR + SWPRER +DTDCF0, ISZ DTDSF0 /INCR. RETURN + JMP DTDXF0 +DTDSK, ISZ DTDSF0 /DISK ERROR - SKIP ON RETURN + DATFLD + DCA I DTDQUE /REMOVE REQUEST FROM QUEUE + CDF + JMS DSKCON /START ANYTHING ELSE THAT'S WAITING + JMP DTDCF0 +DTLEV2, DTL21 /POINTER TO DECTAPE LEVEL 2 COMPLETION ENTRY +DTDQUE, DSUTBL+7 /POSITION FOR FIELD 1 REQUESTS + +DSKCON, 0 + STA CLL /REDUCE COUNT FOR DSBUSY + TAD DSBUSY + DCA DSBUSY + SZL /IS THERE ANYTHING ELSE TO RUN? + JMS I FIUSER /YES -- START NEXT TRANSFER + JMP I DSKCON + +TRAC, 0 + AND C0037 /JUST GET THE JOB # + TAD SWBASE /TRACK # WHERE SWAP AREA BEGINS -1 TO TAKE CARE OF JOB 1 + IFZERO RF08-40< CLL RTL;RTL;RTL >/TRACK # IN POSITION 0X00 FOR DF32 + JMP I TRAC /RETURN + *6000 + +KBDMOD, 0 + TAD I CONDDB + AND C1000 + SNA CLA /USER MODE? + ISZ KBDMOD /YES; CAUSE SKIP ON EXIT + JMP I KBDMOD + +XOFF= 3000 +KBDFUL, -130 +KBDOFF, -70 +OFFBRK, KBDDLM + +KBD06, 0 /SIZE CHECK FOR KEYBOARD INPUT + DCA KBDMOD /SAVE POINTER TO CHARACTER COUNT + TAD I KBDMOD + TAD KBDFUL + SMA CLA /BUFFER FULL? + JMP KBD07 /YES + ISZ KBD06 /SKIP ON RETURN - OK TO GIVE ANOTHER BLOCK + TAD I KBDMOD + TAD KBDOFF /TIME FOR XOFF? + SPA CLA + JMP I KBD06 /NO + TAD I CONDDB /GET DDB FLAGS + RTL + SZL SPA /SHOULD "XOFF" BE SENT? + JMP I KBD06 /NO - EITHER IT HAS ALREADY BEEN SENT OR [S]HE'S IN SI MODE + STL RTR /YES - REMEMBER TO SEND "XON" LATER + DCA I CONDDB + TAD I CONDBA /POINT TO WORD 2 OF OUTPUT SIDE + IOR + XOFF /SCHEDULE XOFF TO BE SENT + JMS I TYPEC + JMS I OFFBRK /SET KEYBOARD FLAG + JMP I KBD06 +KBD07, TAD C0400 + TAD I CONDDB /SET BUFFER FULL BIT + DCA I CONDDB + JMP I KBD06 /EXIT - NO SKIP +TYPEC, TYPE + +ALLOK, 0 + ISZ ALLOK /WE DON'T CARE HOW BIG THE BUFFER IS + DCA KBDMOD + TAD I KBDMOD /THE COUNT + TAD KBDFUL /THE LIMIT + SMA SZA CLA + JMP I ALLOK /TOO MANY - DON'T CLEAR "FULL STATUS" + TAD I CONDDB + AND CC7377 + DCA I CONDDB + JMP I ALLOK +CC7377, 7377 + +/SEARCH FOR TTY +/CALL TAD JOB # +/ TTYUSE +/ RETURN WITH DDB ADDR IN AC, 0 IF NOT FOUND +TTYSRC, 0 + AND C0037 /GET JOB # + TAD TTYTBA /START OF TTY TABLE + DCA CONDBA + DATFLD + TAD I CONDBA /GET UNIT # FROM TABLE + CLL RAL /POSITION IN DEVTBL + TAD DEVTBA /POINTER TO DEVTBL + DCA CONDBA + TAD I CONDBA /DDB ADDRESS + CDF + JMP I TTYSRC +TTYTBA, TTYTBL + +JOBCHA, JOBCHK +UCON, TAD L2SA /PICK UP JOB NO. + JMS I JOBCHA /SEE IF IT'S A VALID JOB + JMP UCON0 /IT WASN'T + TTYUSE /GET DDB ADDRESS + DCA WS0 + DATFLD + TAD I WS0 /GET WORD 1 OF DDB + AND C0037 /ISOLATE CONSOLE NO. + SKP +UCON0, STA /RETURN A -1 + DCA L2SA /STASH IT IN HIS/HER AC + UUOEXT +/DATE +UDATE, TAD DATE + JMP UCON0+1 /RETURN DATE IN AC + /RESTORE JOB REGISTERS +/CALL TAD JOB # +/ RESJOB +/ RETURN + +RESCOR, FIP SI CJOB + +RESJO0, 0 + AND RESCOR /CLEAR CORE STATUS BITS + DCA JOB /AND SAVE IN JOB + TAD JOB + AND C0037 + TAD JOBTBA + DCA RESJO1 /JOBTBL POINTER FOR THIS JOB + DATFLD + TAD I RESJO1 /GET ADDRESS OF JOB DATA AREA + DCA I CJOBDA /AND SAVE IN FIELD 1 + CDF + TAD CLOCK /SUBTRACT THE CLOCKS STILL PENDING ON LEVEL 2 + CMA + DCA JOBTIM /THE NET RESULT IS ZERO TICKS WHEN WE ACTUALLY START HIM/HER + DCA L2SV0 /SET PC=0 IN ANTICIPATION OF PHANTOMS + TAD JOB /IS IT A PHANTOM? + AND C0600 + SZA CLA + JMP I RESJO0 /YES; WE'RE RESTORED! + +/ +/ NOW RESTORE THE EAE REGISTERS IF THEY EXIST +/ + +IFZERO EAE-20 < + IFZERO CPU-2 < /PDP-8E + GETJTW /PICK UP SC (AC5:9), THE MODE + GT FLAG IN AC10 + 11 + JOBEAE+1 /IF AC10-11=00 THEN MODE=B GT=1 + CMA /IF AC10-11=01 THEN MODE=B GT=0 + /IF AC10-11=10 THEN MODE=A GT IS ALWAYS 0 IN MODE A + SWAB /SWITCH TO MODE B AND LOAD THE MQ + MQA LSR /SHIFT INTO THE GT FLAG (SETS TEMPORARILY IF WE WANT MODE A) + 1 /MQ IS ALSO COPIED BACK INTO THE AC + CMA RAR /POSITION THE SC FOR LOADING AND PUT THE MODE INTO THE LINK + ACS /AC LOADS SC, AC IS CLEARED + SZL /WHICH MODE? + SWBA /"A," SO SWITCH MODES AND CLEAR THE GT FLAG + > +IFNZRO CPU-1 < /SORRY - THE PDP-8 CAN'T RESTORE ITS STEP COUNTER + IFNZRO CPU-2 < / PDP-8/I AND PDP-12 + GETJTW /PICK UP SC + JOBEAE+1 + CMA /COMPLEMENT AND STORE FOR + DCA .+2 / OLD-STYLE EAE + SCL /LOAD SC + 0 >>> + IFZERO MQREG-1 < + GETJTW /RESTORE MQ + JOBEAE + MQL > + + TAD RESJO1 + GETJTA /GEET ADDRESS OF PC IN JOB DATA AREA + JOBREG /MOVE PC, LINK, AC TO LEVEL 2 REGISTERS + DCA RESJO1 + BLT + DATFLD +RESJO1, 0 +UDFCDF, CDF + L2SV0 + -3 + TAD L2SF + AND C0070 + TAD UDFCDF + DCA UUDF /SET UP IN CASE OF USER INTERRUPT + ISZ L2SVLK /DID [S]HE JUST TYPE CONTROL C? + JMP I RESJO0 /ALL RESTORED + DCA L2SA /YES - MAKE SURE HIS/HER AC AND LINK ARE CLEARED + JMP I RESJO0 + +IFNZRO DC08A < +ANSWER, CIF DATFLD-1 /DISPATCH TO FIELD 1 TO ANSWER PHONE + JMP I .+1 + DFRING >/END D689 + + *6200 + +/SERVICE ALL AC TRANSFER OUTPUT DEVICES (TELEPRINTERS, PAPER TAPE PUNCH, AND LINE PRINTER) + +/IF FILLER CHARACTERS ARE NEEDED, THE NEXT 3 WORDS MUST BE PATCHED ACCORDING TO YOUR NEEDS + /THE VALUE OF DEVTBL IS ASSEMBLED HERE FOR YOUR CALCULATING CONVENIENCE +FILHI, DEVTBL /-(DEVTBL+2*(KXX+1)) WHERE KXX IS THE HIGHEST LINE REQUIRING FILLER CHARACTERS +FILLO, 0 /2 TIMES NUMBER OF LINES REQUIRING FILLER CHARACTERS +FILLC, 0 /-(ASCII CHAR.) TO LOOK FOR - 7 BITS ONLY (CR=7763; LF=7766) + +TTIMEA, TTIME +JMSTIM= JMS I TTIMEA +CONCNT, -NULINE-3 +IFNZRO DC08A + T8OUT> /PASS OUTPUT CHARACTER TO DC08A + *6206 +DEVOUT, OUTDIF +CONREG= C0200 +CONDEV, SKPTP+1 +TTOFLA, TTOFLG +CONLPF, JSLPT +C0014, 14 +IFNZRO OUTREG-200 + +CONOUT, DCA I SETFLG /CLEAR SCHEDULER FLAG + ION + ISZ I TTOFLA /SHOW THAT OUTPUT IS BEING SERVICED + DATFLD + TAD CONREG + DCA WS0 /OUTPUT REGISTER TABLE POINTER FOR OUTPUT SCAN + TAD CONCNT + DCA WS1 /NUMBER OF LINES TO CHECK + PUNCH & LINE PRINTER +CONOU0, TAD I WS0 +TTIMER, SPA CLA /DOES THIS DEVICE HAVE A REQUEST? + JMP CONOU2 /YES +CONOU1, ISZ WS0 /BUMP POINTER + ISZ WS1 /AND THE COUNT + JMP CONOU0 + TAD CONSKP /RESTOORE THE NORMAL INSTRUCTION + DCA TTIMER + STA + LSRP /LP08 OR LE8 ERROR? + LIE /OK - TURN ON INTERRUPT ENABLE + JMP I .+1 + CONEXT + +CONOU2, JMS CONGET /FIND HIS/HER DDB + DCA CONDDB + TAD I CONDDB /GET OUTPUT STATUS + SPA + JMP CONOU9 /[S]HE HAS TYPED ^S + RTL +CONSKP, SPA CLA + JMP CONJAM /SPECIAL CHARACTERS +CONOU3, TAD CONDDB + FETCH /GET A CHARACTER + JMP CONOU9 /BUFFER EMPTY +CONOU4, DCA TTCHAR + TAD TTCHAR /CHECK FOR CARRIAGE RETURN (FOR SERIAL LA30'S @ 300 BAUD) + AND C0177 /LET'S KEEP DAWNWOOD JUNIOR HIGH HAPPY + TAD FILLC + SZA CLA + JMP CONOU5 /NORMAL CHARACTER + TAD CONDBA + TAD FILHI /HI LINE LIMIT FOR FILLERS + CLL + TAD FILL0 /LO LINE LIMIT FOR FILLERS + SNL CLA + JMP CONOU5 /NO FILLERS FOR THIS LINE + TAD CONDDB + TAD C0005 + DCA WS2 /POINTER TO DDB CHARACTER COUNT + STL RAR + TAD I WS2 /INDICATE THE NEED FOR FILLERS + DCA I WS2 +CONOU5, IOF + TAD I WS0 /WHAT'S THE HARDWARE DOING? + RTL + SNL CLA /HARDWARE BUSY FLAG IN THE LINK + JMP CONOU6 /NOTHING - SEND TO IT + TAD TTCHAR + RAL /SET THE CHARACTER READY FLAG +CONOU8, ION + DCA I WS0 /NEW LINE STATUS + JMP CONOU1 /CHECK NEXT LINE +CONOU6, TAD WS1 + IAC + SZA /LINE PRINTER? + JMP CONOU7 /NO - EITHER TTY OR PTP + LIE /DISABLE LS08/LS8E INTERRUPTS + LCP /DISABLE LP08/LE8 INTERRUPTS + ION + TAD CONLPF + JMS I SETFLG /SET THE LINE PRINTER FLAG FOR THE USER + TAD TTCHAR + JMP CONLP2 +CONLP1, TAD CONDDB + FETCH /NO - GET ANOTHER CHARARCTER FOR THE LINE PRINTER + JMP CONOU9 /LINE PRINTER BUFFER IS EMPTY + LSF /IS IT READY FOR THE NEXT CHARACTER ALREADY? + JMP CONOU4 /NO - JUST TUCK THIS ONE AWAY FOR AN INTERRUPT TO TAKE +CONLP2, LPC + STL CLA RTR + DCA I WS0 /REMEMBER THE HHARDWARE IS BUSY + JMP CONLP1 + CONJAM, TAD I CONDDB + AND C0037 /REMOVE THE JAM REQUEST + DCA I CONDDB + TAD C0007 /BELL? + SZL + TAD C0014 /NO - "XOFF" + JMP CONOU4 + +CONOU7, TAD CONDEV + DCA CONTLS + TAD I CONTLS + TAD C0005 /CONSTRUCT TLS, PLS, OR "JMP T8OUT" + DCA CONTLS + TAD TTCHAR +CONTLS, .-. /TLS, PLS, OR "JMP T8OUT" + STL CLA RTR /AC=2000 + ION + DCA I WS0 + JMP CONOU3 /GET ANOTHER CHARACTER + +CONGET, 0 + TAD WS0 + STL RAL /TIMES 2 PLUS 1 + TAD DEVOUT + DCA CONDBA /DEVTBL POINTER + TAD I CONDBA /IS THERE A DDB FOR THIS DEVICE? + SZA + JMP I CONGET +CONOU9, CLL STA RAR + CIF /NO INTERRUPTS + AND I WS0 + DCA I WS0 /CLEAR THE REQUEST FLAG + TAD I CONDBA /DOES [S]HE EXIST? + SNA + JMP CONOU1 /NO - SO WE'RE FINISHED + DCA AXS1 + TAD I AXS1 /JOB + SZA CLA + JMP CONOU1 /STILL DEFINED + DCA I CONDBA /CLEAR HIM/HER FROM DEVTBL + TAD CONDDB /TIME TO RELEASE THE DDB + CDF + RETBLK + DATFLD + STA +TTIME2, TAD AXS1 /ADDRESS OF DDB + JMS I CONCLR /FLUSH OUT BUFFER + DCA I WS0 + JMP I .+1 + CONOU2 + TOFA1, +TTIME, 0 + AND C1000 +C7740, SZA SMA CLA /SMA HERE TO MAKE CONSTANT + JMP TTIME1 /OOPS! + CIF /NO INTERRUPTS + TAD I WS0 + SZA SMA /REQUEST OR INACTIVE? + TAD C1000 /NO - SET TIMER BIT + SMA /HOW SHALL WE EXIT? + ISZ TTIME /SKIP - [S]HE'S CURRENTLY ACTIVE + DCA I WS0 /SAVE UPDATED STATUS + JMP I TTIME /AND AWAY +TTIME1, JMS I CONGEA /HUNG - FIND HIS/HER DDB + DCA AXS1 + JMS I CONSEA /WAKE HIM/HER UP + STL RTL + TAD WS1 + SPA CLA /WHICH DEVICE IS IT? + JMP TTIME2 /TELEPRINTER + TAD I AXS1 /JOB OWNING DEVICE + SNA + JMP TTIME2-1 /NO JOB, HUNG -- LET'S GET RID OF HIS/HER BUFFER!! + CDF + ERROR /PASS THE ERROR TO HIM/HER + HUNGDV + DATFLD + JMP I CONO1A /TRY AGAIN NOW + +CONGEA, CONGET +CONSEA, CONSET +CONO1A, CONOU1 +CONCLR, CLRBUF + +TOFT1, +TOFSET, 0 /ONLY CALLED BY "TOF + TAD TOF + SPA CLA /CALLED FROM INPUT OR OUTPUT HANDLER? + JMS I CONSEA /SET OUTPUT FLAGS + JMP I TOFSET + /RETRIEVE A CHARACTER FROM LINKED BUFFER +/CALL: DDB ADDRESS IN AC +/ JMS TOF +/ RETURN BUFFER EMPTY +/ RETURN CHARACTER IN AC + +TOF, 0 + TAD C0005 /INDEX TO COUNT + DCA TOFA1 + TAD I TOFA1 + SNA + JMP I TOF /ALREADY EMPTY + ISZ TOF /SHOW SUCCESS + SPA + JMP TOF3 /GENERATE A FILLER + TAD C7740 + SNA + JMS TOFSET /TIME TO SET STR1 BIT + TAD C0037 /AC NOW = COUNT -1 + SNA + JMP TOF4 /THIS WILL BE THE LAST CHARACTER +TOF0, DCA I TOFA1 + ISZ TOFA1 /POINT TO EMPTY COUNT + ISZ I TOFA1 /ANY LEFT IN THIS BLOCK? + JMP TOF1 /MUST BE + TAD TC7766 + DCA I TOFA1 /RESET THE EMPTY COUNT + ISZ TOFA1 /EMPTY BLOCK + TAD I TOFA1 + CDF + RETBLK /RETURN THE EMPTY BLOCK + DATFLD + DCA I TOFA1 /LINK TO NEXT BLOCK + TAD TC7766 + JMP TOF1+2 +TOF1, TAD I TOFA1 /GET THE COUNT TO DETERMINE POSITION WITHIN THE BLOCK + ISZ TOFA1 /POINT TO EMPTY BLOCK + TAD C0003 + SMA /UNPACK? + STL RAL /YES (MULT BY 2 THEN ADD 1) FUDGE POSITION + SPA /UNPACK? + STL CIA /NO - MAKE OFFSET POSITIVE - SET LINK TO INDICATE NO UNPACKING NEEDED + TAD I TOFA1 /ADD OFFSET TO EMPTY BLOCK POINTER + DCA TOFA1 + TAD I TOFA1 /GET CHARACTER; OR AT LEAST PART OF IT + SZL /UNPACK? + JMP TOF2 /NO + AND C7400 /SAVE PERTINENT BITS + DCA TOFT1 + ISZ TOFA1 + TAD I TOFA1 /GET THE OTHER HALF OF THE CHARACTER + AND C7400 /THROW AWAY THE JUNK + CLL RTR /START MOVING IT INTO PLACE + RTR + TAD TOFT1 /GET THE M.S. BITS + RTR + RTR /THAT SHOULD DO IT +TOF2, AND C0377 /CLEAR ANY JUNK LEFT OVER + JMP I TOF /AND AWAY +TOF3, TAD C0400 /INCR. FILLER COUNT + DCA I TOFA1 + JMP I TOF /EXIT WITH FILLER (NULL) CHARACTER +TOF4, JMS TOFSET /SET THE STR1 BIT FOR THIS DEVICE + STA + TAD TOFA1 + DCA TOFT1 /POINTS TO FILL BLOCK POINTER + TAD I TOFT1 + CDF + RETBLK /RETURN THE LAST BLOCK OF THE BUFFER + DATFLD + AND TOF + SMA CLA /CALLED FROM INPUT OR OUTPUT HANDLER? + TAD WS0 /INPUT - CHECK FOR NON-ZERO BREAK-MASK + SNA CLA + JMP TOF5 /NO "JSDEL" TO CLEAR + TAD C0100 + JMS I TOFCLR /CLEAR JSDEL - THIS IS THE LAST CHARACTER +TOF5, DCA I TOFT1 /CLEAR FILL POINTER SO WE KNOW WE'RE EMPTY + JMP TOF0 + +TC7766, 7766 +TOFCLR, CLSTR1 + /ROUTINE TO ALLOW SI & FIP TO CLEAR BUFFERS BY WAY OF FIELD 0 ROUTINE +SICLR, 0 + JMS I CONCLR + CIF CDF 20 /BACK TO FIELD 2 + JMP I SICLR + +/CLEAR STATUS +UCLS, GETJTW /ADDRESS OF STR0 TO JOBSWA + JOBSTS + CLA CLL CMA RTL /-3 IN AC + DCA WS0 + TAD C2407 /DON'T LET HIM/HER MESS UP STR0 + SKP +Y1, STA /LET HIM/HER ANYTHING IN STR1 AND D.S.R. + UDF /UP TO USER FIELD + AND I L2SA /GET BITS TO CLEAR + CMA + DATFLD + AND I JOBSWA /CLEAR THEM + DCA I JOBSWA /SAVE NEW VALUE + ISZ L2SA /BUMP POINTER +C0020, 20 /NOP + ISZ JOBSWA /BUMP POINTER + ISZ WS0 /COUNT, 3 STATUS WORDS TO CLEAR + JMP Y1 + DCA L2SA /CLEAR HIS/HER AC + UUOEXT +C2407, JSEREN JSPEEK UUOERF SWPRER SWPWER DSKERR HUNGDV + + +/RETURN CONTENT OF STATUS WORD IN AC +/CALL TAD POINTER TO JOB STATUS ADDRESS +/ GETJTI +/ RELATIVE ADDR OF WORD +/ RETURN (ADDRESS OF WORD IN JOBSWA) + +CLR0, +GETJI0, 0 + CDF + DCA JOBSWA /SAVE POINTER TO JOB STATUS + TAD I GETJI0 /GET POSITION IN LIST + DCA .+3 /SAVE IT + TAD JOBSWA /NOW GET ADDRESS OF THIS ENTRY + GETJTA + 0 + DCA JOBSWA /SAVE IT + DATFLD + SZL /IF LINK=0 THERE'S NOTHING TO GET + TAD I JOBSWA /GET CONTENTS OF THAT ADDRESS + CDF + ISZ GETJI0 /INDEX RETURN + JMP I GETJI0 + /RETURN ALL BLOCKS OF LINKED BUFFER TO FREE CORE (EXCEPT DDB) +/CLEAR ENTRIES IN DDB SO WE KNOW IT'S EMPTY +CLRBUF, 0 + SNA + JMP I CLRBUF /OOPS! + TAD C0004 /POINT TO WORD 4 (FILL POINTER + DCA CLR0 + TAD I CLR0 + SNA CLA + JMP I CLRBUF /BUFFER ALREADY EMPTY + DCA I CLR0 /CLEAR FILL POINTER + ISZ CLR0 + DCA I CLR0 /CLEAR CHARACTER COUNT + ISZ CLR0 + ISZ CLR0 + TAD I CLR0 /EMPTY BLOCK POINTER + CDF + RETBLK /RETURN A BLOCK TO FREE CORE + SZA + JMP .-2 /DELETE ANOTHER BLOCK + DATFLD + DCA I CLR0 /CLEAR THE EMPTY BLOCK POINTER + JMP I CLRBUF + + + + + +SCHNUL, TAD C0100 /RUN NULL JOB IN USER MODE + DCA L2SF /FIELD 0; USER MODE + TAD SCHNJA + DCA L2SV0 + ISZ NULAC /BUMP NULL JOB'S AC + TAD NULAC + DCA L2SA /RESTORE IT + EXIT /OFF TO NULL JOB + +NULAC, 0 +SCHNJA, NULJOB + /ROUTINE TO SET EITHER JSTEL, JSLPT, OR JSPTP IN STR1 + +CONSET, 0 + CLA STL RTL + TAD WS1 /FROM POSITION IN OUTREG DETERMINE DEVICE FLAG POSITION + SNA + JMP .+4 /IT'S THE PUNCH + SMA CLA /SKIP IF TELEPRINTER + TAD C0020 /IT'S THE LINE PRINTER + TAD CC0014 + TAD C0004 + JMS I SETFLG /SET THE APPROPRIATE BIT IN STR1 + JMP I CONSET + +/QUEUE DISC REQUEST +/CALL TAD ADDRESS OF TRANSFER BLOCK +/ JMS DSQUE +/ RETURN + +DSQFLD= C0002 /FILPIF + +DSQUE, 0 + DCA DSQUE1 /SAVE ADDRESS OF PARAMETER BLOCK + TAD DSQUE1 /NOW GET POINTER TO WORD WITH FIELD & FILE DATA + TAD DSQFLD + DCA DSQUE2 /SAVE POINTER + DATFLD + TAD I DSQUE2 /GET FIELD # (BITS 7-9) AND FILE # (BITS 10-11) + AND C0037 /USE THIS VALUE AS DSUTBL INDEX + TAD DSUTBA + DCA DSQUE2 /SAVE POINTER TO DSUTBL + TAD DSQUE1 /GET PARAMETER ADDRESS + DCA I DSQUE2 /SAVE IN DSUTBL +UPEEK3, CDF /AND EXIT + JMP I DSQUE + +/SUBROUTINE TO CHECK FOR PRIVILEGE CONDITION FOR USER DOING UUO +/PRIVILEGE BITS ARE SET EITHER BY THE ACCOUNT NUMBER BEING LESS THAN +/FOUR (FIP) OR BY A REQUEST TO RUN A LIBRARY PROGRAM USING R, KJOB, +/SYSTAT, OR LOGOUT. THE LATTER BIT IS SET BY SI, AND CLEARED EVERY +/TIME THAT SI IS ENTERED. + +DSQUE1, +PRIV, 0 + GETJTW + JOBSTS /GET STR0 + AND C0600 /IS EITHER PRIVILEGE BIT SET? + SZA CLA + JMP I PRIV /YES, OK + JMP I .+1 /NO, ERROR; INVALID IOT + UUOERR + /LOGOUT IS A PRIVILEGED IOT, UNLESS THE AC=0 + +ULOGO, TAD L2SA /IS AC=0? + SZA CLA + JMS PRIV /NO - CHECK FOR PRIVILEGE + ISZ AXS1 /FUDGE SO AXS1 WILL LEAD TO A 0 + JMP I .+1 /NOW JUMP DIRECTLY TO THE NON-RESIDENT + UUO6 /UUO CODE + +/PEEK IS A PRIVILEGED IOT +UPEEK, JMS PRIV /MAKE SURE A PRIVILEGE BIT IS SET + STA /BACK UP HIS/HER AC + TAD L2SA + DCA AXS1 /BECAUSE OF AUTO-INDEX + UDF + TAD I AXS1 /GET CORE-FIELD + AND C0010 /LET HIM/HER SEE FIELDS 0,1 + /COULD PROBABLY LET HIM/HER SEE MORE, BUT HAVE + /TO WORRY ABOUT NON-EXISTENT CORE. + TAD UPEEK3 /MAKE A CDF + DCA UPEEK1 + STA + TAD I AXS1 /BEGINNING MONITOR ADDRESS-1 + DCA AXS2 + TAD I AXS1 /BEGINNING USER ADDRESS + DCA WS0 + TAD I AXS1 /MINUS HOW MANY WORDS + DCA L2SA +DSQUE2, +UPEEK1, .-. /CDF TO MONITOR FIELD + TAD I AXS2 /GET WORD + UDF /USER DATA FIELD + DCA I WS0 /GET RID OF WORD + ISZ WS0 +CC0014, 14 /NOP + ISZ L2SA /THROUGH? + JMP UPEEK1 /NO + UUOEXT /YES -- AND HIS/HER AC=0!! + + *CORTBL + LOCK /DATFLD + LOCK /FIELD 2 + LOCK /FIELD 3 + LOCK /FIELD 4 + LOCK /FIELD 5 + LOCK /FIELD 6 + LOCK /FIELD 7 + +/THE ABOVE ARE UNLOCKED BY INIT AS A FUNCTION OF # USER FIELDS + + + *L2QTB +ZBLOCK 20 /LEVEL 2 QUEUE + /COMBINED RESIDENT IOTS +UUOTBL, 6040 /TELEPRINTER + 6660 /LPT + 6030 /KEYBOARD + 6010 /READER + 6020 /PUNCH + 6500 /RESERVED FOR FUTURE USE + 0 + +/UNCOMBINED RESIDENT IOTS + + 6603 /RFILE + 6605 /WFILE + 6200 /CKS - CHECK STATUS + 6405 /CLS - CLEAR STATUS + 6400 /KSB - SET KEYBOARD BREAK + 6401 /SBC - SELECTIVE BUFFER CLEAR + 6402 /DUP - DUPLEX TELETYPE CONSOLE + 6403 /UND - UNDUPLEX TTY + 6411 /URT - USER RUN TIME + 6412 /TOD - TIME OF DAY + 6413 /RCR - RETURN CLOCK RATE + 6414 /DATE + 6415 /SYN - QUANTUM SYNCHRONIZATION + 6416 /STM - SET TIMER + 6417 /SRA - SET RESTART ADDRESS + 6617 /ACT - RETURN ACCOUNT NUMBER + 6420 /TSS - SKIP ON TSS/8 + 6421 /USE - USER + 6422 /CON - USER CONSOLE + 6423 /PEEK - LOOK IN MONITOR CORE + 6430 /SSW - SET SWITCH REGISTER + 6431 /SEA - SET ERROR ADDRESS + 6614 /SIZE + 6004 /GTF - GET FLAGS ( LINK AND GT ONLY ) + 6005 /RTF - RESTORE FLAGS (LINK AND GT ONLY) + 6006 /SGT - SKIP ON EAE GT FLAG + 6764 /DTXA - DECTAPE READ OR WRITE + 6771 /DTSF - DECTAPE SKIP + 6772 /RDS - READ DEVICE STATUS REGISTER (DT, RK, & CDR) + 6773 /DTSF RDS - MICROCODED + 6743 /DLAG - RK05 READ OR WRITE + 6632 /RCRA - READ CARD ALPHA + 6634 /RCRB - READ CARD BINARY + 6636 /RCRC - READ CARD COMPRESSED + 6615 /LOGOUT - MUST BE LAST IN GROUP, SEE ULOGO FOR DETAILS + 0 + /NON-RESIDENT IOTS + + + 6440 /ASD - ASSIGN DEVICE + 6442 /REL - RELEASE DEVICE + + 6601 /OPEN - OPEN FILE + 6602 /CLOS - CLOSE FILE + 6600 /REN - RENAME FILE + 6604 /PROT - PROTECT FILE + + 6610 /CRF - CREATE FILE + 6611 /EXT - EXTEND FILE + 6612 /RED - REDUCE FILE + 6406 /SEGS - RETURN NUMBER OF FREE DISK SEGMENTS + 0 + +/LONG NON-RESIDENT IOTS + + 6613 /FINF + 6616 /WHO + 0 + + + /MICRO-CODED RESIDENT IOT DISPATCH + +UUODTB, UTEL /TELEPRINTER +IFNZRO LPT /LINE PRINTER +IFZERO LPT + UKEY /KEYBOARD + UPTR /READER +IFNZRO PUNCH /PUNCH +IFZERO PUNCH + UUOERR /RESERVED FOR FUTURE USE + 0 + + +/NON-MICRO-CODED RESIDENT IOT DISPATCH + + UFILE + UFILE + UCKS + UCLS + UKSB + USBC + UDUP + UUND + UURT + UTOD + URCR + UDATE + USYN + USTM + USRA + UACC + UTSS + UUSE + UCON + UPEEK + USSW + USEA + USIZE + IFNZRO CPU&7776 +IFZERO CPU&7776 +IFZERO CPU-2 +IFNZRO CPU-2 +IFNZRO TC01 +IFZERO TC01 + UUOEX2 + UDTRB + UDTRBS +IFNZRO RK05 +IFZERO RK05 +IFNZRO CDR < + UUCDR0+2 + UUCDR0+1 +IFNZRO CPU&7776 +IFZERO CPU&7776 > +IFZERO CDR + ULOGO /LOGOUT - MUST BE FOLLOWED BY A 0 + /SEE ULOGO FOR DETAILS + 0 + +/-# ARGUMENTS FOR NON-RESIDENT IOTS + + 0 /ASD + 0 /REL +UFILCT, -6 /OPEN + 0 /CLOS + -6 /REN + 0 /PROT + -4 /CRF + -4 /EXT + -4 /RED + 0 /SEGS + 0 + -2 /FINF + -2 /WHO + 0 + \ No newline at end of file diff --git a/tss8/system/ts8e.pal b/tss8/system/ts8e.pal new file mode 100644 index 0000000..7a8c0e2 --- /dev/null +++ b/tss8/system/ts8e.pal @@ -0,0 +1,1329 @@ + VERNUM +UTSS, TAD .-1 /SKIP ON TSS/8 + DCA L2SA /AND RETURN VERSION # IN AC +UUOEX2, ISZ L2SV0 /POSITIVE FLAG TEST EXIT + NOP + +/ENTRY FOR UUOEXT +/SETS UP WAIT MASK 1 IF THERE ARE ANY WAIT CONDITIONS FOR STR1 +/IF THERE IS NOTHING TO WAIT FOR, WE EXIT BACK TO THE USER + + +UUOEX1, SNA + JMP UUOEX3 /NO WAIT CONDITIONS + CDF + DCA WS0 /SAVE BITS TO CLEAR + GETJTW /SET UP WAIT MASK + JOBWMK + CLA IAC + TAD WS0 /WAIT ON THIS FLAG+JSWAIT + DATFLD + DCA I JOBSWA /SET WAIT MASK 1 + TAD I JOBSWA + JMS I CLEAR1 /CLEAR SAME BITS IN STR1 + WAIT +CLEAR1, CLSTR1 + +UUOEX3, DATFLD + TAD I JOBDAT + IAC + DCA JOBSWA /POINTS TO STR0 + TAD I JOBSWA + SMA CLA /STILL RUNNABLE? + WAIT /NO + ISZ JOBSWA + CLL STA RAL /AC=7776 + AND I JOBSWA + IAC /MAKE SURE JSWAIT IS SET + DCA I JOBSWA + ISZ JOBSWA + ISZ JOBSWA /POINT TO WAIT MASK + IAC + DCA I JOBSWA /FORCE DUMMY WAIT BIT ONLY + EXIT + /SET SWITCH REGISTER, RESTART ADD, ERROR ADD, OR KEYBOARD BREAK + +UKSBRK= C0002 /DDBBRK + +UKSB, TAD JOB + TTYUSE /FIND USER INPUT TTY DDB + TAD UKSBRK + DCA JOBSWA /POINTS TO BREAK MASK IN DDB + TAD L2SA /USER AC + DATFLD + SZA + JMP UKSB1 /[S]HE HAS NEW MASK -- GO PICK IT UP + TAD I JOBSWA /[S]HE WANTS TO READ OLD MASK + JMP UKSB1+1 /GIVE IT TO HIM/HER +USSW, TAD C0002 /SET AC=2 +USEA1, IAC /AC=AC+1 +USRA, TAD C0005 /AC=AC+5 + DCA .+2 /SAVE RELATIVE ADDRESS + GETJTW /GET POINTER + 0 /POSITION IN LIST + CLA /WE ONLY WANTED POINTER + TAD L2SA /GET CONTENTS OF USER AC + DATFLD +UKSB1, DCA I JOBSWA /SAVE IN JOB DATA AREA + DCA L2SA + UUOEXT /AND AWAY + + +RINTA, RINT +CDTIMA, TIMCDR +INTCDR, RCSD + JMP I RINTA /CONTINUE IN INTERRUPT SKIP CHAIN + RCRD /CLEAR CARD DONE FLAG + TAD I CDTIMA + SNA CLA /WERE WE EXPECTING AN INTERRUPT? + DISMIS /NO + DCA I CDTIMA /NO MORE INTERRUPTS ALLOWED - WE FINISHED THIS CARD + TAD .+2 + DISMIS /SCHEDULE LEVEL 2 + CDL20 +/ACCOUNT NUMBER +UACC, TAD L2SA + JMS JOBCHK /SEE IF IT'S A VALID JOB + JMP UACC0 /IT WASN'T - RETURN A ZERO + TAD JOBTBA + GETJTI /GET THE ACCOUNT NUMBER OF THE JOB + JOBACC +UACC0, DCA L2SA /RETURN IT TO HIM/HER + UUOEXT + IOR1, +JOBCHK, 0 + SNA /SPECIFIC JOB? + TAD JOB /NO - HIS/HER OWN JOB + DCA WS1 + TAD WS1 + CLL + TAD JOBS /IS IT REALLY A JOB? + SNL CLA + TAD WS1 + TAD JOBTBA + DCA JOBSWA + DATFLD + TAD I JOBSWA /IS THERE REALLY A JOB? + SNA CLA + JMP I JOBCHK /NO - RETURN WITHOUT SKIP + ISZ JOBCHK + TAD WS1 /JOB NUMBER REQUESTED + JMP I JOBCHK +JOBS, -JOBMAX-1 + +DTRKHG, 0 + ERROR /DECTAPE OR RK05 IS HUNG + HUNGDV /REPORT IT TO THE USER + CIF DATFLD /BACK TO FIELD 1 + JMP I DTRKHG +/INCLUSIVE OR +/CALL TAD ADDRESS OF WORD TO SET +/ IOR +/ BITS TO SET +/ RETURN + +IOR0, 0 + DCA IOR1 /SAVE ADDRESS TO SET + RDF /FIELD TO SET IT IN + TAD .+2 /COMPUTE FIELD SELECT - FOR THAT FIELD + DCA IOR2 /SAVE IT + CDF + TAD I IOR0 /GET BITS TO SET +IOR2, 0 /SET FIELD AGAIN + DCA IOR2 /SAVE THEM + TAD IOR2 + CMA + AND I IOR1 /CLEAR THE BITS IF ALREADY SET + TAD IOR2 /NOW SET THEM + DCA I IOR1 /SAVE NEW VALUE + ISZ IOR0 /SKIP ARGUMENT IN CALL + JMP I IOR0 /RETURN + + *7400 +IFNZRO DC08A < +JMPDC8= JMP I . /SKIP OVER DC08A VECTORS + .+3 +DC8REG= JMP . /SKIP OVER DC08A ACTIVE REGISTERS + IAC + ISZ ACFLG /SWITCH TO OUTPUT SIDE + TAD DCCNT + TAD ACX10 + DCA ACX10 /SKIP OVER THE DC08A ENTRIES IN THE TABLE + JMP ACINT1 /BACK TO WORK +DCCNT, DC08A-1 > +*7410 + +RINT, DCA SRVFLG /CLEAR LEVEL 2 REQUEST FLAG + DATFLD + RSF + JMP ACINT + RRB /GET CHARACTER FROM THE READER + DCA I ACX11 /PUT IT IN THE RING BUFFER + CDF + ISZ RCNT /ENOUGH?? + JMP RINT1 /NO - SEE IF THERE'S STILL ROOM IN THE RING BUFFER +RINT0, DCA I RTIM + DATFLD + CMA + JMP ACINT8 /READER IS LINE # 7777 +RINT1, TAD KEYC /IS THERE ENOUGH ROOM LEFT IN THE RING-BUFFER? + TAD RLIM + SMA CLA + JMP RINT2 + RFC /KEEP THE READER GOING + CLL CMA RAL /SET TIMER FOR 2 MORE SECONDS + JMP RINT0 +RINT2, TAD RL2A + DCA I L2Q /SCHEDULE THE READER TO BE RESTARTED AFTER THE BUFFER HAS BEEN EMPTIED + ISZ SRVFLG /REMEMBER WE WANT LEVEL 2 + JMP RINT0 + +RLIM, -NULINE-1 +RL2A, L2PTR1 +RTIM, TIMPTR +RCNT, 0 + +OUTIOT= ISZ ACFLG +ENDIOT= JMP ACINT6 + ACINT, CLL STA RAL /AC=-2 + DCA ACFLG /START BY CHECKING FOR INPUT + TAD ACTBLA /ADDRESS OF THE SKIP IOT'S + DCA ACX10 + STL RTL +ACINT0, TAD HIPRO + DCA HICNT /SHORT LOOP COUNT TO PROTECT HI-PRIORITY DEVICES + DATFLD +ACINT1, ISZ HICNT + JMP ACINT2-2 + JMS I HIPRIA /GO CHECK RK, DT, & CDR + SNA /ANYTHING REQUESTED? + JMP ACINT0 /NO + DCA I L2Q /QUEUE THEIR REQUEST FOR THEM + ISZ SRVFLG /REMEMBER IT + JMP ACINT0 /RE-INITIALIZE THE COUNT + TAD I ACX10 + DCA ACINT2 +ACINT2, .-. /DEVICE SKIP + JMP ACINT1 /NOT THIS ONE + TAD ACINT2 + TAD C0005 /GENERATE READ OR SEND IOT + ISZ ACFLG + JMP ACINT7 /MUST BE A KEYBOARD + DCA ACINT3 /SAVE THE TLS, PLS, OR LPC + TAD ACX10 + TAD ACOUT /DETERMINE THE LINE NUMBER + DCA ACFLG /THIS LINE'S OUTPUT REGISTER + TAD I ACFLG + RAR + SNL + JMP ACINT5 /NOTHING WAITING TO GO +ACINT3, .-. + CLA STL IAC + RTR + DCA I ACFLG /HARDWARE BUSY AND REQUEST FLAGS SET + DCA TTOFLG /SCHEDULE LEVEL 2 +ACINT4, TAD L2Q /POSITION OF FILL POINTER + TAD L2QBOT /MINUS L2QTB-1 + CIA + TAD SRVFLG /DON'T COUNT THE ONES WE JUST PUT IN + SNA CLA /SHOULD WE SCHEDULE LEVEL 2? + TAD EXITA /YES + DISMIS + ACINT5, CLA IAC + TAD ACINT2 + DCA .+1 +HICNT, .-. /TCF, PCF, OR LCF + STL CLA RAR /AC=4000 + AND I ACFLG + DCA I ACFLG /NO MORE INTERRUPTS EXPECTED FROM THIS LINE +ACEXIT, TAD SRVFLG /ANY REQUESTS? + SZA CLA + JMP ACINT4 /YES - MAKE SURE THEY'RE SCHEDULED + DISMIS /NOTHING SPECIAL + +ACINT6, LSRP /LP08/LE8 ERROR? + JMP ACEXIT /NO, MUST BE AN UNDEFINED INTERRUPT + LCP /CLEAR INTERRUPT ENABLE + JMP ACEXIT + +ACINT7, DCA ACFLG /SAVE THE KRB IOT +ACFLG, .-. + SNA + JMP ACEXIT /THROW AWAY NULL CHARACTERS + AND C0177 + TAD C0200 /FORCE ON THE "PARITY" BIT + DCA I ACX11 /STASH IT IN THE RING BUFFER + TAD ACTBLA + CMA + TAD ACX10 /LINE NUMBER CAUSING INTERRUPT +ACINT8, JMS ACINT9 /STASH LINE NUMBER & UPDATE POINTERS ETC. + JMP ACINT4 /SCHEDULE LEVEL 2 IF WE WERE IN USER MODE +ACINT9, 0 + DCA I ACX11 /STASH AWAY THE LINE NUMBER + ISZ KEYC /COUNT THE ENTRY + ISZ ACCNT /END OF RING BUFFER + JMP I ACINT9 /NO + TAD ACRING + DCA ACX11 /YES - RESET POINTER + TAD ACSIZE + DCA ACCNT /AND THE COUNT + JMP I ACINT9 + +SRVFLG, 0 +TTOFLG, 1 /NON-ZERO WHEN SERVICE IS NOT REQUIRED +ACRING, RINGIN-1 +ACCNT, -INPUTS +ACSIZE, -INPUTS +KEYC, 0 +HIPRO, +IFNZRO CPU-2 < -4 > +IFZERO CPU-2 < -6 > +HIPRIA, DTCHK +ACTBLA, SKPTBL-1 +ACOUT, OUTREG-SKPTBL-NULINE-2 +L2QBOT, -L2QTB+1 + *7600 +/SYSTEM DISK HANDLERS FOR TSS/8 +/ SWPIO - HANDLES ALL SWAPS (ONLY SWAPS) +/ DSGO0 - HANDLES ALL OTHER TRANSFERS INCLUDING OVERLAYS + +SWPIO, 0 / + CLA CLL CMA RTL /=3 IN AC + DCA DSERRI /# OF TRIES + JMS SWPIT /START THE SWAP + JMP I SWPIO /RETURN + +SWPIT, 0 + TAD SWPA /RETURN ADDRESS FOR INTERRUPT CHAIN + DCA I DSWATA /SAVE IT +IFZERO RF08 < + TAD SQREQ /FIELD TO BE SWAPPED OUT + TAD C0500 /INTERRUPT ON ERROR AND ON COMPLETION + DIML > + DCA DSWC /WORD COUNT + CMA + DCA DSMA /CORE ADDRESS + TAD FINISH /IN OR OUT? + SMA CLA + JMP SWPIN /IN + TAD OUTTRC /GET THE TRACK # TO BE SWAPPED OUT +IFZERO RF08-40 < + TAD SQREQ /FIELD TO BE SWAPPED OUT + DEAL + CLA > +IFZERO RF08 < + DXAL > + DMAW + JMP I SWPIT +SWPIN, TAD INTRC /GET THE TRACK TO READ IN +IFZERO RF08-40 < + TAD SQREQ /FIELD TO BE SWAPPED OUT + DEAL + CLA > +IFZERO RF08 < + DXAL > + DMAR + JMP I SWPIT + + +SWPA, SWPTR /RETURN ADDRESS AFTER SWAP + + SWPTR, JMP SWPERR /OOPS + TAD FINISH /DID WE JUST SWAP IN OR OUT? + SMA + JMP SWPOK /IN; SO WE'RE FINISHED + CIA + DCA FINISH /SAVE IT + JMS SWPIO /START SWAP IN + DISMIS /GO BACK TO WHAT WE WERE DOING + +SWPERR, JMS DSERR /GO TO COMMON ERROR ROUTINE + JMP SWPBAD /SORRY - IT'S OFFICIALLY BAD + JMS SWPIT /TRY AGAIN + JMP DSERRX /GO TO COMMON RETRY EXIT + +SWPOK, CLA IAC /SWAP OK; SKIP ON RETURN +SWPBAD, TAD SWPREA /DISPATCH TO LEVEL 2 SWAP COMPLETION + JMP OK /CLEAR DISK FLAG AND EXIT + +DSERR, 0 +IFZERO RF08 < + STA /SET WC TO CAUSE IMMEDIATE OVERFLOW + DCA DSWC /ONLY SAFE WAY TO STOP THIS DISK + DSAC /SEE IF THE DISK IS STILL BUSY + SKP /THINGS ARE QUIET OUT THERE + DISMIS /WAIT A FEW MICRO-SECONDS + DORS /GET THE STATUS BITS + DCMA /CLEAR EVERYTHING + DCXA /INCLUDING THE TRACK ADDRESS + AND C0004 /DO WE HAVE DRL? + SNA > +IFZERO RF08-40 /STOP DF32 + ISZ DSERRI /NO; SO COUNT IT AS AN ERROR + ISZ DSERR /OK TO RETRY ON RETURN +IFZERO RF08 < + SZA CLA + TAD SLEEPA > /BETTER KNOCK OFF THE EAE USER + DCA DSGO0 /SAVE ADDRESS; IF ANY + JMP I DSERR /BACK TO CALLER + /START DISC TRANSFER +/CALL TAD ADDRESS OF PARAMETERS +/ DSGO +/ RETURN + +DSGO0, 0 + DCA DSPARM + CLA CLL CMA RTL + DCA DSERRI + JMS DSTRYA + JMP I DSGO0 + +DSTRYA, 0 + TAD DSRETA + DCA I DSWATA + CLA CMA /ADDRESS OF PARA-1 FOR INDEX REGISTER + TAD DSPARM + DCA DSPAR + DATFLD + TAD I DSPAR /FUNCTION + DCA DSRORW + TAD I DSPAR /DISC EXTENSION +IFZERO RF08-40 < + CLL RTL + CLL RAL + TAD I DSPAR /MEMORY EXTENSION + CLL RAL + DEAL + CLA> +IFZERO RF08 < + CLL RTR + DXAL + TAD I DSPAR + CLL RAL + AND C0070 + TAD C0500 + DIML /LOAD INTERRUPT ENNABLE AND MEMORY EXTENSION +> + TAD I DSPAR + DCA DSWC + TAD I DSPAR + DCA DSMA + TAD I DSPAR + CDF +DSRORW, 0 + JMP I DSTRYA + DSERR1, JMS DSERR /DO COMMON ERROR ROUTINE + JMP DSGBAD /GIVE UP + JMS DSTRYA /TRY AGAIN +DSERRX, TAD DSGO0 /POSSIBLY AN EAE JOB TO GO TO SLEEP + DISMIS + +DSRET, JMP DSERR1 /ERROR + IAC +DSGBAD, DATFLD + TAD I DSPAR +OK, DCMA + DISMIS /BACK TO MONITOR + +DSPARM, 0 +DSRETA, DSRET +DSWATA, DSWAIT +C0500, 500 + + *7750 +DSWC, DSMA /FOR LOADING INTO FIELD 0 ON INITIALIZATION +DSMA, DSMA /(SINCE THE 4K TRANSFER OVERWRITES THE DATA BREAK LOCATIONS) +SLEEPA, SLEEP +DSERRI, 0 + 0 /FOR DECTAPE SERVICE + 0 /FOR DECTAPE SERVICE +FIELD 4 /FORCE TS8II INTO TRACK 4 AT BUILD TIME + /TS8II VERSION 8.24 (01-JANUARY-75) +/ +/ +/ +/ +/COPYRIGHT (C) 1975 +/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. +/ +/ +/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS +/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- +/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON +/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO +/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE +/SOFTWARE SHALL REMAIN IN DEC. +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE +/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- +/MITMENT BY DIGITAL EQUIPMENT CORPORATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR +/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT +/SUPPLIED BY DEC. + *0 +ZBLOCK 10 /IF ANY OF THESE BECOMES NON-ZERO, FIND OUT WHY! + +*10 +K0030, 30 +K0614, 614 +K0500, 500 +IX3, 0 + +IX4, JOBTBL /WAIT 2 UNQUEUER POINTER +A15, 0 /DECTAPE - FOR EXTRACTING USER INFO. FROM DDB +A16, 0 /BLTF1 - USER FIELD POINTER +A17, 0 /BLTF1 - DATFLD POINTER + +DTJOB, 0 +DTBUF, 0 +DTST, 0 +DTBLKP, 0 +DTBLK, 0 +DTCOM, 0 +DTUCA, 0 +DTTIME, 0 +DTREMB, 0 +DTGOA, DTGO +DTERRA, DTERR +DTBUFA, ENDBUF-1 +DTCAP, 7755 +M2702, -2702 +M201, -201 +K0214, 214 +K0070, 70 +K0400, 400 +K7400, 7400 +K0002, 2 +K0037, 37 +K0005, 5 +K0020, 20 +K7770, 7770 +K0377, 377 +K0006, 6 +K1000, 1000 +K0600, 600 +RKJOB, 0 +RKCORE, 0 +RKCOM, 0 +RKSECT, 0 +RKCNT, 0 +RKBLKS, 0 +RKTIME, 0 +SLEEPB, SLEEP +RKERRA, RKERR +DTRKHA, DTRKHG +WAIT2, WAITS2 +AWAKEN, WAKEUP +DTCHKA, DEVCHK + QUEUE1, QUEUE0 +BLTF1A, BLTF1 +JOBTAB, JOBTBL + +INTS1, 0 /INTERRUPT TEMPORARY STORAGE +INTS2, 0 +TEMP0, 0 /WORKING STORAGE +TEMP1, 0 +TEMP2, 0 +TEMP3, 0 +TEMP4, 0 +K0007, 7 +K0010, 10 +K0200, 200 +K0204, 204 +K0040, 40 +K0004, 4 +K6201, 6201 +K7000, 7000 +K7700, 7700 +K7774, 7774 +K0003, 3 +L2SAP, L2SV0+2 /POINTS TO L2SA IN FIELD 0 +UDF1, 0 /SELECT USER FIELD + 0 + JMP I .-2 + +JOBCNT, -JOBMAX +UDFP, UUDF +DTRKJA, DTRKJB + +F1SCH, 0 +EXITF1= JMP . +K6203, CIF CDF + TAD F1SCH + SNA CLA /ANYTHING JUST OUT OF WAIT? + JMP I .+4 /NO - NORMAL LEVEL 2 EXIT + DCA F1SCH /YES - CLEAR FLAG + JMP I .+1 /IF NULL JOB IS RUNNING RE-SCHEDULE + SCHED0 + L2EXIT + +INTRTN= JMP . + CIF CDF + JMP I .+1 + F1RTN /DISMISS INTERRUPT FROM HI-PRIORITY DEVICE + /JOB TABLE ADDRESS TO TEMP0 +/CALL TAD JOB # +/ JMS GETTBA +/ TABLE ENTRY +/ RETURN WITH ADDRESS IN TEMP0 + +GETTBA, 0 + DATFLD + DCA TEMP0 /SAVE JOB # + TAD I GETTBA /PICK UP ARGUMENT + DCA .+5 + TAD TEMP0 /JOB # + TAD JOBTAB /START OF JOBTBL + CIF + JMS I GETTB1 /GETJTA + 0 + DCA TEMP0 /ADDRESS TO TEMP0 + ISZ GETTBA + JMP I GETTBA +GETTB1, GETJTB + + + *160 +JOB, . /POINTER TO CURRENT JOB NUMBER +CJOBDA, 0 /POINTER TO JOB STATUS BLOCK, CURRENT JOB +CORTBA, CORTBL-1 +DEVTBA, DEVTBL +F1OFFJ, 0 /MASK FOR LOGIN; MODIFIED BY THE "ON & OFF" COMMANDS (ON=0; OFF=7774) +WAITF1= JMP . + CIF CDF + JMP I WAIT1 +WAIT1, WSCHED + + *170 + NULINE /SYSTEM PARAMETERS CONVENIENT FOR SYSTAT + JOBMAX + DEVTBL +UPTIM2, 0 /HIGH ORDER UPTIME IN SECONDS +UPTIM1, 0 /LOW ORDER UPTIME IN SECONDS + +/DDB POINTERS FOR USE BY SI +F1TCNT, 0 /DDB CHARACTER COUNT +F1ECNT, 0 /DDB EMPTY COUNT +F1BUF, 0 /DDB EMPTY BLOCK + *OUTREG + ZBLOCK SKPTBL-OUTREG + +KSKIP= KSF-30 +TSKIP= TSF-40 +*SKPTBL + + KSF /K00 /SKIP IOT FOR CONSOLE KEYBOARD +IFZERO DC08A < + KSKIP+400 /K01 /KEYBOARD SKIP IOTS FOR PT08 AND KL8E + KSKIP+420 /K02 + KSKIP+440 /K03 + KSKIP+460 > /K04 + KSKIP+340 /K05; K01 IF DC08A WITH PT08'S + KSKIP+110 /K06; K02 IF DC08A WITH PT08'S +IFNZRO CPU-1 < + KSKIP+300 > /K07; K03 IF DC08A WITH PT08'S + KSKIP+320 /K10; K04 IF DC08A WITH PT08'S + KSKIP+500 /K11; K05 IF DC08A WITH PT08'S + KSKIP+520 /K12; K06 IF DC08A WITH PT08'S + KSKIP+540 /K13; K07 IF DC08A WITH PT08'S + KSKIP+560 /K14; K10 IF DC08A WITH PT08'S + KSKIP+700 /K15 + KSKIP+360 /K16 + KSKIP+720 /K17 + KSKIP+060 /K20 + KSKIP+140 /K21 + KSKIP+160 /K22 + KSKIP+050 /K23 + + +IFNZRO DC08A < +*SKPTBL+PT08+KL8+1 + DC8REG + ZBLOCK DC08A > /DC08A ACTIVE OUTPUT REGISTERS + + +IFZERO DC08A <*SKPTBL+NULINE+1 + OUTIOT > /SWITCH TO OUTPUT SIDE + TSF /K00 /SKIP IOT FOR CONSOLE TELEPRINTER +IFZERO DC08A < + TSKIP+410 /K01 /TELEPRINTER SKIP IOTS FOR PT08 AND KL8E + TSKIP+430 /K02 + TSKIP+450 /K03 + TSKIP+470 > /K04 + TSKIP+350 /K05; K01 IF DC08A WITH PT08'S + TSKIP+120 /K06; K02 IF DC08A WITH PT08'S +IFNZRO CPU-1 < + TSKIP+310 > /K07; K03 IF DC08A WITH PT08'S + TSKIP+330 /K10; K04 IF DC08A WITH PT08'S + TSKIP+510 /K11; K05 IF DC08A WITH PT08'S + TSKIP+530 /K12; K06 IF DC08A WITH PT08'S + TSKIP+550 /K13; K07 IF DC08A WITH PT08'S + TSKIP+570 /K14; K10 IF DC08A WITH PT08'S + TSKIP+710 /K15 + TSKIP+370 /K16 + TSKIP+730 /K17 + TSKIP+070 /K20 + TSKIP+150 /K21 + TSKIP+170 /K22 + TSKIP+650 /K23 +IFNZRO DC08A < +*SKPTBL+NULINE+PT08+KL8+3 + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 /DC08A OUTPUT VECTOR + JMPDC8 > /DC08A OUTPUT VECTOR +*SKPTP +IFNZRO PUNCH /PUNCH +IFZERO PUNCH +IFNZRO LPT /LINE PRINTER +IFZERO LPT + ENDIOT /TERMINATES LIST + *RINGIN +/ADDITIONAL FREE CORE GENERATION TABLE +/REFERENCED BY INIT AT START TIME +/ THE FOLLOWING AREAS WILL BECOME PART OF FREE CORE: + +IFZERO TC01 RK05 CDR < + ENNDBUF;FCE4 > + +IFNZRO TC01 RK05 CDR < +IFZERO TC01 < + ENDBUF;FCE1 > +IFZERO RK05 < + FCB2;FCE2 + FCB4;FCE4 > +IFZERO CDR < + FCB3;FCE3 > > +IFNZRO DC08A < +IFNZRO D689 < + FCB5;FCE5 > +IFZERO D689 < + FCB5;DATA1 > > + 0 /TO TERMINATE THE LIST +NOPUNCH + ZBLOCK ENDBUF-. /KEYBOARD INPUT RING BUFFER +ENPUNCH +*ENDBUF +NOPUNCH + ZBLOCK 201 /DECTAPE BUFFER +ENPUNCH +*. + + /DECTAPE LEVEL 1 ENTRY + +DTL11, TAD DTREMB /PREVIOUS ERRORS FROM THIS TRANSFER + DTRB /"OR'ED" WITH ANY NEW ERRORS + DCA DTREMB + DTRB /WERE THERE ANY ERRORS? + SMA + JMP I DTXOR /A-OK! + AND K0500 /WHAT WAS IT? + SNA /SELECT ERROR OR TIMING ERROR + JMP DTSR0 /NO - MUST BE MARK, END, OR PARITY + AND K0400 + SZA CLA /TIMING ERROR? + JMP DTSR1 /NO - SELECT ERROR - DON'T RETRY + CLL CMA RAL /AC=-2 + TAD I DTERRA /TIMING ERROR WAS OUR FAULT - INTERRUPT OFF TOO LONG + DCA I DTERRA /DON'T CHARGE HIM/HER FOR THE TURN-AROUNDS +DTSR0, ISZ I DTERRA /COUNT A TURN-AROUND + JMP DTSR2 /OK - CONTINUE SEARCHING +DTSR1, TAD DTREMB /ACCUMULATED ERROR STATUS + RAL + STL RAR /MAKE SURE THE ERROR BIT IS SET + JMP DTSTOP /SHUT HIM/HER DOWN +DTSR2, CDF + TAD DTBLKP + DCA I DTCAP /RESTORE CA TO POINT INTO WORD 2 OF HIS/HER DDB + DTRA /CURRENT STATUS + AND K0377 + DTXA /CLEAR GO, FUNCTION, AND INTERRUPT ENABLE + TAD K0614 /SWITCH DIRECTIONS, GO, SEARCH AND ENABLE +DTSRCH, JMS DTXOR /CONTINUE SEARCHING +DTSR3, TAD DTCOM + RTL + RTL + STA CML RAL /AC=-1 IF FORWARDS R/W; AC=-2 IF REVERSE R/W + DCA DTDIR + TAD I DTBLKP + TAD M2702 + SNL CLA /ARE WE AT A REASONABLE BLOCK NUMBER? + JMP DTSR0 /NO -- TURN AROUND + TAD DTBLK + TAD M2702 + SNL CLA /DOES [S]HE WANT A REASONABLE BLOCK? + JMP DTSR1 /NO -- QUIT LOOKING FOR IT + DTRA /WHICH WAY ARE WE GOING? + RTL + RTL + CLA /PRESENT DIRECTION IS IN THE LINK + TAD DTBLK /BLOCK WANTED + CIA + TAD I DTBLKP /BLOCK FOUND + SNA /ARE WE THERE? + JMP DTSR5 /YES - SEE IF WE ARE GOING IN THE RIGHT DIRECTION + ISZ DTDIR /NO + CIA /REVERSE R/W - NEGATE AC + SMA + JMP DTSR4 /SKIP SOME CODE - WE'RE ON THE WRONG SIDE OF THE BLOCK + SZL /L=1 MEANS WE'RE GOING THE WRONG WAY + TAD K0003 /MAKE ROOM FOR TURN-AROUND + CMA + AND K7770 + SNA /ARE WE CLOSE? + JMS DTSR7 /YES - GO CHECK BUFFER STATUS +DTSR4, AND K7700 /ARE WE TOO FAR AWAY? + SZA SNL SMA + JMP DTSR6 /PUT HIM/HER ON THE TIMER + SNL CLA /ARE WE GOING IN THE RIGHT DIRECTION? + JMP DTSRCH /CONTINUE IN THE SAME DIRECTION + JMP DTSR0 /GO TURN AROUND + +DTSR5, JMS DTSR7 /CHECK ON BUFFER STATUS + ISZ DTDIR + CML /CORRECT LINK FOR REVERSE R/W + SNL /ARE WE GOING IN THE RIGHT DIRECTION? + JMP DTSRCH /NO - CAUSE OVER-SHOOT FOR TURN-AROUND + TAD M201 + CDF + DCA I DTWCP /SET UP DECTAPE WORD COUNT + TAD DTBUFA + DCA I DTCAP /SET UP DECTAPE CURRENT ADDRESS + TAD DTCOM + AND K0040 /READ OR WRITE? + CLL RAR + TAD K0030 + JMS DTXOR /CHANGE FROM SEARCH TO READ OR WRITE +DTSTOP, ISZ DTBUF /ASSIGN THE BUFFER - IF [S]HE DOESN'T ALREADY HAVE IT + AND K7701 + DCA I DTERRA /SAVE STATUS B FOR HIM/HER + DTRA + AND K0400 + SZA CLA /WHICH WAY ARE WE GOING? + TAD K7774 + TAD K0002 + TAD I DTBLKP /REMEMBER WHERE WE WILL FINALLY STOP + DCA I DTBLKP + DTRA + AND K0204 /CLEAR GO & INTERRUPT ENABLE + JMP DTSRCH /TO STOP THE TAPE + DTWCP, 7754 +K7701, 7701 +K0014, 14 + +DTSR6, RTR /DIVIDE BY 100 + RTR + RTR + CIA + DCA DTBUF /-SECONDS TO WIND ON TIMER + TAD K0003 + TAD I DTST + DCA DTDIR /POINTS TO USER WORD 1 + DTRA + AND K0400 + SZA CLA /WHICH WAY SHOULD WE SET THE BRAKES LATER? + ISZ I DTDIR /SET BIT 11 TO SHOW REVERSE + TAD K0014 + JMP DTSRCH /KEEP HIM/HER MOVING WITH INT. DISABLED + +DTSR7, 0 + TAD DTCOM + AND K0020 /IS THIS A READ? + TAD DTBUF /OR - IS THE BUFFER LOADED FOR A WRITE? + SZA CLA + JMP I DTSR7 /PROCEED + JMP DTSTOP+2 /STOP AND WAIT FOR THE BUFFER TO BE LOADED + +DTDIR, +DTXOR, DTSTOP /WHERE TO RETURN ON SUCCESSFUL INTERRUPT + DTXA /ZAP IN THE NEW FUNCTION + DTRA + RTR + RAR + SZL CLA /DID WE STOP? + CML CMA RTL + DCA DTTIME /LOAD THE CONTROLLER TIMER + SNL + TAD DTL2 /WE'RE DONE - SCHEDULE LEVEL 2 + INTRTN +DTL2, DTL20 + /DECTAPE LEVEL 2 COMPLETION +DTL21, TAD DTBUF /WHAT KIND OF COMPLETION? + SNA + JMP DTEND4 /END OF A SEARCH - TAPE NOW IN POSITION FOR THE WRITE + SPA CLA + JMP DTEND6 /THIS DRIVE HAS BEEN PUT ON TIMER + TAD DTCOM + AND K0020 + SNA /WAS IT A READ OR WRITE? + JMP DTEND3 /WRITE - [S]HE'S ALL DONE + JMS DTDATA /READ - TRANSFER HIS/HER DATA BACK TO HIM/HER + EXITF1 /WAIT FOR DISK TO FINISH +DTEND3, TAD DTJOB + JMS I AWAKEN /TAKE HIM/HER OUT OF WAIT STATUS +DTERR, 0 +DTEND4, DCA DTJOB /CONTROLLER IS FREE +DTEND5, JMS I DTGOA /TRY TO START A DECTAPE TRANSFER + EXITF1 + +DTEND6, TAD DTBUF + DCA I A15 /SAVE -SECONDS TO WIND TAPE + ISZ I DTST /CHANGE TO DECTAPE TIMER WAIT + JMP DTEND4 /FIND SOMETHING ELSE TO DO + +/MOVE 201 WORDS TO/FROM USER, FROM/TO DATFLD +/USER MAY BE IN CORE OR ON HIS/HER SWAP TRACK +DTDATA, 0 + DCA TEMP1 /SAVE READ/WRITE INDICATOR: 0=WRITE, 20=READ + CIF + TAD DTJOB + JMS I COREA /NOW FIND OUT WHERE [S]HE IS + SWAP LOCK FIP SI CJOB + JMP DTDA1 /[S]HE'S IN HIS/HER SWAP TRACK + AND K0070 /SAVE HIS/HER FIELD + TAD K6201 + DCA UDF1+1 /UDF1 IS FIXED FOR BLTF1 + TAD DTBUFA + DCA A17 /POINTS TO DECTAPE BUFFER IN DATFLD + TAD DTUCA + DCA A16 /USER BUFFER POINTER + TAD TEMP1 + CLL CMA RTR + RTR + RAR + JMS I BLTF1A /L=0 FOR READ, L=1 FOR WRITE; AC=-201 + ISZ DTDATA /SKIP - DATA HAS ALREADY BEEN MOVED + JMP I DTDATA + DTDA1, IAC + TAD DTUCA + CLL IAC + TAD K0200 + SNL /DO WE HAVE A WRAP-AROUNND SITUATION? + CLA /NO - WE CAN DO THE WHOLE THING AT ONCE + TAD M201 + DCA DTDWC /WC FOR DISK TRANSFER + TAD DTBUFA + DCA DTDCA /CA FOR DISK TRANSFER + TAD DTJOB + TAD K0004 + CLL RTL + DCA DTDHI /TRACK ADDRESS FOR DISK TRANSFER + TAD TEMP1 + SZA CLA + STL RTL + TAD DTDMAR + DCA DTDIOT /DMAR OR DMAW FOR DISK TRANSFER + IAC + TAD DTUCA + JMS DTDGO /START THE DISK + JMP I DTDATA /EXIT - NO SKIP - MUST WAIT FOR DISK + +/DISK PARAMETER BLOCK FOR DECTAPE HANDLER +DTDIOT, 0 +DTDHI, 0 + 7 +DTDWC, 0 +DTDCA, 0 +DTDLO, 0 + DTDSK +DTDPAR, DTDIOT + +COREA, CORSRC +DTDMAR, DMAR +DTDISK, DTDSF0 + +DTDGO, 0 + DCA DTDLO /DISK ADDRESS TO START AT + TAD DTDPAR + CIF + JMS I DTDISK /NOW GO TO TS8 TO START OUR REQUEST + JMP I DTDGO /RETURN HERE AFTER STARTING THE DISK + JMP DTDCMP /RETURN HERE AFTER A GOOD DISK TRANSFER + SKP /RETURN HERE AFTER A BAD DISK TRANSFER + JMP DTEND3 /RETURN HERE AFTER REPORTING THE DISK ERROR + TAD DTJOB /JOB IN TROUBLE + CIF CDF + JMP I .+1 /GO REPORT THE ERROR - MAKE IT SWPRER + DTDEF0 + + DTDCMP, TAD DTDWC + CIA + TAD M201 + SNA /DO WE NEED A SECOND PASS? + JMP DTDCM0 /NO - IT'S DONE + DCA DTDWC + TAD DTDLO /YES - HAVE WE ALREADY DONE IT? + SNA + JMP DTDCM0 /ALL FINISHED! + CIA + TAD DTDCA /UPDATE THE DISK'S C.A. + DCA DTDCA + JMS DTDGO /START THE DISK AGAIN + EXITF1 + +DTDCM0, TAD DTBUF /WAS IT A READ OR A WRITE? + SZA CLA + JMP DTEND3 /READ - WE'RE FINISHED + ISZ DTBUF /ASSIGN THE BUFFER TO HIM/HER NOW + TAD A15 /GO RESTART HIS/HER WRITE + JMP DTEND5 + +DTLOAD, 0 + DCA DTDGO /SAVE THE DESIRED STATUS A + DTRA + DCA DTDATA /AND THE PRESENT STATUS A + TAD DTDGO + AND DTDATA /WHERE WILL CARRIES BE GENERATED + CIA + CLL RAL /WE WANT TO CANCEL THE CARRIES + TAD DTDGO /NOW ADD THEM TOGETHER + TAD DTDATA /NOW WE HAVE THE "XOR" OF THE "PRESENT" AND THE "DESIRED" STATUS A + DTXA /"XOR" IT INTO THE CONTROLLER + JMP I DTLOAD /THE RESULT WILL BE THE DESIRED STATUS A + +STSI, DCA IX4 /SI - WANTS TO STOP A TAPE ON TIMER + CLL CMA RAL + DCA TEMP1 /ONLY STOP ONE TAPE + DCA TEMP2 /PREVENT HIM/HER FROM GOING BACK INTO DECTAPE CONTROLLER WAIT +K7001, IAC + JMS DTIMER /STOP HIM/HER + CIF 20 + JMP I .+1 /BACK TO SI + DTSIDT + /START OR RESTART A DECTAPE READ OR WRITE FOR THE USER + +DTGO, 0 + SZA /ARE WE RESTARTING AFTER A TIMER KILLED US? + JMP DTGO1 /YES - SO WE DON'T NEED TO LOOK AT THE QUEUE + TAD DTJOB + SZA CLA /IS THE CONTROLLER BUSY? + JMP I DTGO /CONTROLLER IS ALREADY BUSY + DCA DTBUF /BUFFER IS EMPTY + JMS I DTRKJA /FIND SOMEONE WAITING FOR THE CONTROLLER + -1 + JMP I DTGO /NOTHING WAITING +DTGO1, AND K7770 + DCA A15 + TAD I A15 /PULL JOB NUMBER FROM DDB + DCA DTJOB + TAD DTJOB + JMS GETTBA /FIND WAIT 2 + JOBWMK+1 + TAD TEMP0 + DCA DTST /SAVE ITS POINTER FOR LATER + ISZ A15 + TAD A15 /ADDRESS TO DUMP BLOCK NUMBERS INTO + DCA DTBLKP + ISZ A15 + TAD I A15 /USER WORD 1 -- UNIT, DIR, FUNC. + DCA DTCOM + TAD I A15 /USER WORD 2 -- BLOCK NUMBER WANTED + DCA DTBLK + TAD I A15 /USER WORD 3 -- USER'S C.A. + DCA DTUCA + TAD DTCOM /DIRECTION FOR THIS OPERATION + AND K0400 +K7740, SZA SMA CLA + TAD DTREV + TAD K0006 /AC=-5 FOR REVERSE R/W; AC=+6 FOR FORWARD R/W + TAD I DTBLKP /GET BLOCK FROM LAST TIME + TAD K0020 /BIAS BY 20 TO AVOID NEG. NUMBERS AND ZERO + STL CIA + TAD K0020 + TAD DTBLK /BLOCK WE WANT + SZL + CIA /AC=ABSOLUTE VALUE OF DIFFERENCE + AND K7740 + DCA TEMP4 /SAVE THAT RESULT FOR LATER + TAD DTCOM + AND K7000 /SAVE ONLY THE UNIT + SZL /LINK=INITIAL SEARCH DIRECTION + TAD K0400 /SEARCH REVERSE INITIALLY + JMS I DTLOAA /LOAD THE CONTROLLER + TAD DTCOM /LOAD THE DECTAPE BUFFER IF: + AND K0020 / ******* [S]HE'S DOING A WRITE + TAD TEMP4 / ******* THE DESIRED BLOCK IS FAIRLY CLOSE + TAD DTBUF / ******* THE BUFFER IS EMPTY + SZA CLA + JMP DTGO2 /AT LEAST ONE OF THE ABOVE IS FALSE + JMS I DTGETW /MOVE 201 WORDS FROM USER (CORE OR SWAP TRACK) TO DATFLD + JMP DTGO3 /WAIT FOR THE DISK TO FINISH + ISZ DTBUF /ASSIGN THE BUFFER TO HIM/HER +DTGO2, TAD DTSR3A + DCA I DTXORA /SET UP FOR SEARCH MODE + DCA DTREMB /CLEAR ERROR ACCUMULATOR + CDF + TAD DTBLKP + DCA I DTCAP /SET UP CA FOR THE BLOCK NUMBERS + CIF DATFLD /INHIBIT INTERRUPTS + TAD K0010 /ALL DATA BREAKS ARE TO DATFLD + DTLB + TAD K7770 + DCA I DTERRA /ALLOW 10 CHANGES OF DIRECTION + TAD K0214 + DTXA /GO, SEARCH, INT. ENABLE + CLL CMA RTL /SET CONTROLLER TIMER FOR 3 SECONDS +DTGO3, DCA DTTIME + JMP I DTGO + +DTREV, -13 +DTSR3A, DTSR3 +DTGETW, DTDATA +DTXORA, DTXOR +DTLOAA, DTLOAD + DTIMER, 0 + JMS I DTRKJA /FIND A JOB IN DECTAPE TIMER WAIT + -2 + JMP DTIME3 /ALL DONE + TAD K0005 + DCA TEMP3 /POINTER TO TIMER COUNT +DTIME1, CLL CMA RTL /AC=-3 + ISZ I TEMP3 /IS HIS/HER TIMER UP? + JMP DTIMER+1 + TAD TEMP3 /YES - JAM ON THE BRAKES + DCA TEMP4 /POINT TO USER WORD 1 + CIF DATFLD /INHIBIT INTERRUPTS + DTRA /GET STATUS OF CURRENT UNIT + AND K0004 /SAVE ENABLE + SZA /IS IT REALLY DOING SOMETHING? + TAD K0200 /YES - CLEAR GO AND ENABLE + DTXA + TAD I TEMP4 + AND K7001 /SAVE UNIT AND CURRENT DIRECTION + TAD K0377 /MOVE THE DIRECTION BIT INTO POSITION + AND K7400 + JMS I DTLOAA /STOP HIM/HER!!! + TAD K7770 + AND I TEMP4 + DCA I TEMP4 /CLEAR "BRAKE" BIT + TAD TEMP2 + TAD I TEMP0 + DCA I TEMP0 /PUT HIM/HER BACK IN DECTAPE WAIT + JMP DTIME1 /CHECK FOR OTHER DRIVES TO STOP +DTIME3, TAD TEMP4 + SNA CLA + JMP DTIME4 /NOTYING STOPPED THIS TIME + TAD DTTIME /WAS ANYTHING IMPORTANT GOING ON? + SZA CLA + TAD A15 /YES - LET'S GET BACK TO IT + JMS I DTGOA /START SOMETHING +DTIMEX, JMP I DTIMER +DTIME4, CIF DATFLD /INHIBIT INTERRUPTS + TAD DTTIME /IS THE CONTROLLER BUSY? + SZA CLA /NO + ISZ DTTIME /YES - BUMP CONTROLLER TIMER + JMP I DTIMER + DTRA /IT'S HUNG + AND K0204 + DTXA /STOP THE TAPE (IF IT'S EVEN MOVING) + STA + DCA I DTERRA /LET HIM/HER KNOW THE TRANSFER PROBABLY DIDN'T HAPPEN + IAC + DCA DTBUF + DCA DTCOM + TAD DTJOB + JMS DTRKER /REPORT THE ERROR & SCHEDULE LEVEL 2 + DTL20 + JMP I .+1 /BACK THROUGH THE TIMER CODE + DTIMEX + FCE1= .+1&7770 +DTRKER, 0 + CIF CDF + JMS I DTRKHA /REPORT THE HUNG DEVICE + TAD I DTRKER /GET THE L2 DISPATCH ADDRESS + ISZ DTRKER /BUMP PAST THE ARG. + CIF CDF + JMS I QUEUE1 /PUT IT ON LEVEL 2 QUEUE + JMP I DTRKER + +UUDTRK, DCA TEMP2 + TAD I L2SAP /GET USER AC + DCA TEMP1 + SNL /DON'T CLEAR THE AC IF IT'S AN RK05 REQUEST + DCA I L2SAP /CLEAR HIS/HER AC + TAD I UDFP /GET THE "CDF" FOR HIS/HER FIELD + DCA UDF1+1 + JMS UDF1 /CHANGE TO USER FIELD + TAD I TEMP1 /GET WORD 1 OF HIS/HER PARAMETERS + SZL /RK05? + JMP URK05 /YES + RTL + RTL + AND K0007 /AC=UNIT NUMBER +UDTXAD, TAD DTDEVA /INDEX INTO THE DEVICE TABLE + DCA UDTDDB + DATFLD + CIF /FIELD 0 ROUTINE + JMS I DTCHKA /SEE IF [S]HE OWNS THIS UNIT +UDTDDB, 0 + STA + TAD TEMP1 + DCA A16 + TAD I UDTDDB + TAD K0003 /SET UP TO MOVE PARAMETERS + DCA A17 + CLL CMA RTL /L=1; AC=-3 + JMS I BLTF1A /MOVE 3 WORDS FROM UDF TO DATFLD + TAD I UDTDDB + TAD TEMP2 + JMS I WAIT2 /SET WAIT 2 CONDITION FOR DECTAPE OR RK05 + TAD TEMP2 + CLL RTR + SZL CLA /RK05? + JMP RK05GO /YES + JMS I DTGOA /NO - TRY TO START THE DECTAPE + WAITF1 + +URK05, CLL RAR + AND K0003 /RK05 UNIT # + TAD K0010 /DISPLACE TO RK05 DDB'S + JMP UDTXAD +DTDEVA, DEVTBE+5 + /SEARCH FOR A JOB WAITING FOR A "WAIT 2" CONDITION +/CALLING SEQUENCE: +/ AC=0 COMPLETE PASS; AC NON-ZERO FINISH CURRENT PASS +/ JMS DTRKJB +/ MINUS WAIT CONDITION NUMBER +/ RETURN - NO JOBS FOUND +/ RETURN - CONTENTS OF WAIT 2 IN AC + +DTRKJB, 0 + SZA CLA /DO WE WANT A FULL PASS? + JMP DTRK2 /NO - JUST COMPLETE FROM WHERE WE LEFT OFF + TAD JOBCNT + DCA TEMP1 /SET COUNT FOR JOBMAX +DTRK1, TAD IX4 /CHECK POSITION OF RING POINTER + TAD DTRKEN + SZA CLA + JMP .+3 + TAD JOBTAB /RESET RING POINTER + DCA IX4 + TAD I IX4 + SNA /IS THIS JOB DEFINED? + JMP DTRK2 /NO + TAD K0005 /POINT AT WAIT 2 + DCA TEMP0 + TAD I TEMP0 + AND K0007 + TAD I DTRKJB + SZA CLA /IS [S]HE WAITING FOR OUR CONDITION? + JMP DTRK2 /NOPE + TAD I TEMP0 /PUT THE CONTENTS OF WAIT 2 IN THE AC + ISZ DTRKJB /CAUSE SKIP ON EXIT + JMP DTRK3 +DTRK2, ISZ TEMP1 /MORE? + JMP DTRK1 +DTRK3, ISZ DTRKJB /INDEX PAST ARGUMENT ON RETURN + JMP I DTRKJB + +DTRKEN, -CLKTBL+1 + /MOVE DATA TO/FROM DATFLD FROM/TO USER CORE +/ USER'S POINTER IN "A16" +/ DATFLD POINTER IN "A17" +/CALLING SEQUENCE: +/ AC=-NUMBER OF WORDS; LINK=0 FROM DATFLD TO USER, LINK=1 FROM USER TO DATFLD +/ JMS BLTF1 +/ RETURN +BLTF1, 0 + DCA TEMP1 /SAVE NUMBER OF WORDS TO MOVE +BL0, SNL /WHICH DIRECTION? + JMP BL1 + JMS UDF1 /FROM USER + TAD I A16 + DATFLD /TO DATFLD + DCA I A17 + JMP BL2 +BL1, TAD I A17 /FROM DATFLD + JMS UDF1 + DCA I A16 /TO USER + DATFLD +BL2, ISZ TEMP1 /MORE? + JMP BL0 /YES + JMP I BLTF1 + +WAKEUP, 0 + ISZ F1SCH /SET FLAG TO SCHEDULE THIS USER IMMEDIATELY IF POSSIBLE + JMS GETTBA /FIND STR1 + JOBSTS+1 + CLL STA RAL /AC=7776 + AND I TEMP0 /CLEAR JSWAIT + IAC + DCA I TEMP0 /NOW WE CAN BE SURE THAT IT IS SET + ISZ TEMP0 /NOW UPDATE THE DEVICE STATUS REGISTER + TAD I WAKEUP + DCA I TEMP0 /THE NEW D.S.R. + ISZ TEMP0 + ISZ I TEMP0 /TURN ON DUMMY WAIT BIT IN WAIT MASK 1 + ISZ TEMP0 + DCA I TEMP0 /TAKE HIM/HER OUT OF WAIT + ISZ WAKEUP + JMP I WAKEUP + FCB2= .+7&7770 +RKREDO, REDO0 +RK05GO, CIF CDF + TAD RKJOB /WHO OWNS THE CONTROLLER? + SZA CLA + JMP I RKREDO /[S]HE'LL HAVE TO WAIT + TAD I JOB + DCA RKJOB /[S]HE NOW OWNS THE CONTROLLER + DCA I L2SAP /ZERO AC IN CASE TRANSFER DOESN'T START + CIF DATFLD + TAD RKJOB + JMS GETTBA /GET WAIT 2 + JOBWMK+1 + CLL CMA RTL /AC=-3 + DCA RKERR /3 TRIES ON ERROR + DCA RKBLKS /CLEAR SUCCESSFULL TRANSFER COUNTER + JMS USRLOK /LOCK HIM/HER IN HIS/HER FIELD + DCA RKCORE /SAVE THE CORTBL POINTER + TAD I TEMP0 /POINTS TO DDB WORD 4 (-1) + JMS I RKGOA /START UP THE RK05 DISK + SZA CLA + JMP RKL21 /DIDN'T EVEN GET OFF THE GROUND + CLL STA RAL + DCA RKTIME /SET TIMER FOR 2 SECONDS + WAITF1 +RKL21, ION + CDF + CLL STA RTR + AND I RKCORE + DCA I RKCORE /UNLOCK HIS/HER FIELD + DCA RKCORE + TAD RKJOB + JMS GETTBA /FIND HIS/HER AC + JOBREG+2 + TAD RKBLKS + DCA I TEMP0 /PASS NUMBER OF BLOCKS TRANSFERRED BACK TO THE USER + TAD RKJOB +RKEND2, JMS I AWAKEN /TAKE HIM/HER OUT OF WAIT STATUS +RKERR, 0 + DCA RKJOB /FREE THE CONTROLLER + JMS I DTRKJA /LOOK FOR OTHERS WAITING FOR THE CONTROLLER + -3 + EXITF1 /NOBODY ELSE WANTS IT + AND K7770 + DCA IX3 + TAD I IX3 /EXTRACT THE JOB # FROM THE DDB + JMP RKEND2 +RKGOA, RKGO +FCE2= .+1&7770 + \ No newline at end of file diff --git a/tss8/system/ts8f.pal b/tss8/system/ts8f.pal new file mode 100644 index 0000000..e66bddb --- /dev/null +++ b/tss8/system/ts8f.pal @@ -0,0 +1,620 @@ +/ROUTINE TO SET A WAIT 2 CONDITION FOR THE CURRENT USER +/ (FOR DECTAPE, RK05, OR CARDREADER) +/ ENTER WITH DESIRED WAIT 2 STATUS IN THE AC + +WAITS2, 0 + DCA TEMP2 + CDF + TAD I JOB /GET USER JOB NUMBER + JMS GETTBA + JOBWMK + DCA I TEMP0 /CLEAR WAIT MASK 1 + ISZ TEMP0 + TAD TEMP0 /GET WAIT NUMBER + DCA I TEMP0 /NOW [S]HE'S WAITING + JMP I WAITS2 + +/ROUTINE TO LOCK CURRENT USER IN HIS/HER CORE FIELD +/ RETURNS WITH CORTBL POINTER IN AC +USRLOK, 0 + CDF + TAD I L2SFP /POINTER TO LEVEL 2 SAVE FIELD + AND K0007 /JUST THE FIELD + TAD CORTBA /DISPLACEMENT INTO THE CORE TABLE + DCA TEMP2 + STL RTR /AC=2000 + TAD I TEMP2 + DCA I TEMP2 /LOCK IN CORE + DATFLD + TAD TEMP2 /NOW RETURN WITH POINTER INTO CORE TABLE + JMP I USRLOK +L2SFP, L2SF + +FCB3= .+7&7770 +CDCNT, 0 +CDCORE, 0 +CDTIMR, TIMCDR +CDL21, CLL CMA RTR /AC=5777 + AND I CDCORE + DCA I CDCORE /UNLOCK THE CORE FIELD + TAD CDJOB + JMS GETTBA /FIND HIS/HER AC + JOBREG+2 + TAD CDCNT + DCA I TEMP0 /PUT THE COLUMN COUNT IN HIS/HER AC + TAD CDJOB + JMS I AWAKEN /TAKE HIM/HER OUT OF WAIT STATUS +CDBUF, 0 + EXITF1 + CDL11, TAD I CDTIMR + SNA CLA /WERE WE EXPECTING AN INTERRUPT? + JMP CDIOT /NO + ISZ CDCNT /COUNT A COLUMN + ISZ CDBUF /BUMP THE USER'S POINTER +CDJOB, 0 /JOB OWNING THE CARD READER - (COVERS THE "ISZ SKIP") +CDREAD, .-. /THE PROPER READ IOT IS PLACED HERE +CDFLD, .-. /CDF TO THE USER'S FIELD + DCA I CDBUF /STASH A COLUMN IN THE USER'S BUFFER + INTRTN +CDIOT, RCRA /CLEAR UNWANTED INTERRUPT + CLA + INTRTN +UUCDR, CLL RAL /TIMES 2 + TAD CDIOT /CONSTRUCT READ IOT + DCA CDREAD /EITHER ALPHA, BINARY, OR COMPRESSED (8E ONLY) + TAD I L2SAP + DCA CDBUF /SAVE THE USER'S BUFFER POINTER + DCA I L2SAP /CLEAR USER AC - IN CASE THE READER ISN'T READY + TAD I UDFP + DCA CDFLD /SAVE CDF TO USER'S FIELD + TAD I JOB + DCA CDJOB + DCA CDCNT /ZERO COLUMN COUNT + IOF +IFZERO CPU&7776 < JMP .+4 > +IFNZRO CPU&7776 < RCTF > /CLEAR 8E TRANSITION FLAG + IAC + RCNO /ENABLE CARD READER INTERRUPTS + CLA + RCSE /START CARD READER + JMP UUCDRB /NOT READY - PUT HIM/HER TO SLEEP BEFORE CONTINUING + JMS USRLOK /LOCK HIM/HER IN HIS/HER FIELD + DCA CDCORE /SAVE POINTER TO CORTBL + TAD K0004 + JMS I WAIT2 /MAKE HIM/HER WAIT FOR THE CARD READER + CIF CDF + CLL CMA RAL /AC=-2 + DCA I CDTIMR /SET CARD READER TIMER + JMP I WAIT1 +UUCDRB, CIF CDF + JMP I SLEEPB /PUT HIM/HER TO SLEEP FOR A COUPLE OF SECONDS +*2000 +FCE3= .&7770 + FCB4= .+7&7770 +RKL11, DRST /GET CONTROLLER STATUS + CLL RAL /IGNORE THE DONE BIT + SZA + JMP RKSR1 /ERROR!!!!! + ISZ RKBLKS /COUNT A SUCCESSFUL TRANSFER + TAD RKCMD + SNA /ARE WE FINISHED? + JMP RKSR2 /YES + DLDC /LOAD THE NEW COMMAND + TAD RKSECT + DLAG /LOAD THE NEW SECTOR - WE'RE OFF AND RUNNING AGAIN + JMS RKNXT /SET UP FOR THE NEXT BLOCK (IF ANY) + CLL STA RAL + DCA RKTIME /SET CONTROLLER TIMER FOR 2 MORE SECONDS + CLL STA RTL + DCA I RKERRA /THREE ERRORS + INTRTN + +RKSR1, ISZ I RKERRA + JMP RKSR4 /STILL OK TO RETRY + DRST +RKSR2, DCA I RKERRA /FINAL STATUS FOR THE USER + DLDC /CLEAR CONTROLLER STATUS AND COMMAND REGISTERS + DCA RKTIME + TAD RKL2 /SCHEDULE LEVEL 2 + INTRTN +RKSR4, AND K1012 /SAVE SPECIAL CASE ERROR BITS + SNA +RKSRE, JMP RKSR5+1 /DON'T RECAL. OR PUT CURRENT JOB TO SLEEP + AND K0010 + SZA CLA + JMP RKSR5 /PUT CURRENT JOB TO SLEEP AND RE-TRY + IAC + DCLR /IN CASE WE HAVE SOMETHING REALLY IN TROUBLE + TAD RKCOM + AND K0006 /SAVE ONLY THE UNIT # + TAD K0600 /ENABLE INTERRUPT ON SEEK COMPLETION + DLDC + STL RTL + DCLR /RE-CALIBRATE + TAD RKSRE + DCA RKL11 /CHANGE LEVEL 1 + CLL STA RTL /ALLOW 3 SECONDS FOR THE RE-CALIBRATE + DCA RKTIME + DCLR + INTRTN + RKSR5, TAD SLEEPB + DCA INTS2 + CLL CMA RTL /AC=-3 + TAD IX3 /POINTER TO DDB WORD 4 (-1) + JMS RKGO /RE-TRY + SNA /ANYTHING BAD? + TAD INTS2 /NO - HOW ABOUT PUTTING SOMEONE TO SLEEP? + INTRTN +K1012, 1012 +RKL2, RKL20 +RKFLD, -CORTBL+51 +RKGO, 0 + DCA IX3 /SAVE THE DDB POINTER + IAC + DCLR /CLEAR THE CONTROLLER + TAD I IX3 /USER WORD 1 + CLL RTR + RAR + DCA RKCOM /SAVE COMMAND DIVIDED BY 10 + TAD RKCOM + AND K0037 /PAGE COUNT + SNA + TAD K0040 /FOR 0 OR 40 GIVE HIM/HER 40 + CMA + TAD RKBLKS + TAD RKBLKS /ADD NUMBER OF PAGES ALREADY TRANSFERRED + DCA RKCNT + TAD RKCOM + AND K7400 /SAVE FUNCTION, DRIVE, AND HI ORDER SECTOR BIT + TAD RKCORE /POINTER TO CORTBL ENTRY + TAD RKFLD /EXTRACT FIELD NUMBER AND INSERT INTERRUPT ENABLE AND HALF BLOCK BITS + CML RTL /"RKFLD" COMPLEMENTED THE LINK + RAL + DCA RKCOM /SAVE THE CONSTRUCTED COMMAND REGISTER + TAD RKBLKS /NUMBER OF SECTORS ALREADY TRANSFERRED + TAD I IX3 + DCA RKSECT /STARTING SECTOR NUMBER FROM THE USER + SZL + ISZ RKCOM /BUMP HI ORDER BIT + TAD RKBLKS /NUMBER OF BLOCKS ALREADY TRANSFERRED + CLL RTR /TIMES 400 + RTR + RAR + TAD I IX3 + IAC /WE ADD ONE SINCE THE CONTROLLER WANTS THE REAL ADDRESS + DLCA /LOAD USER'S CA INTO THE CONTROLLER + JMS RKCMD /GENERATE FIRST COMMAND + IOF + DLDC /LOAD CONTROLLER COMMAND REGISTER + TAD RKSECT + DLAG /LOAD IN THE DESIRED SECTOR - WE ARE OFF AND RUNNING + JMS RKNXT /SET UP FOR THE NEXT SECTOR (IF ANY) + TAD RKDRST + DCA RKL11 /FIX FIRST WORD OF INTERRUPT SERVICE + DSKP /ARE WE TRYING TO DO SOMETHING BAD? + JMP I RKGO /NO - EVERYTHING IS PEACHY +RKDRST, DRST + DCA I RKERRA /SAVE ERROR STATUS - NO RE-TRIES WILL BE MADE + DLDC /CLEAR CONTROLLER STATUS AND COMMAND REGISTERS + TAD RKL2 /RETURN WITH L2 DISPATCH + JMP I RKGO + +RKCMD, 0 + ISZ RKCNT + TAD RKCNT + SMA CLA /ANY MORE BLOCKS TO GO? + JMP RKDONE /NO - CLOSE IT OUT + ISZ RKCNT /HALF BLOCK? + TAD K7700 /NO - REMOVE THE HALF BLOCK BIT FROM THE COMMAND + TAD RKCOM /GET THE COMMAND + JMP I RKCMD + +RKNXT, 0 + ISZ RKSECT /BUMP SECTOR + TAD RKSECT + SNA + ISZ RKCOM /BUMP HI-ORDER SECTOR BIT + AND K0037 + SZA CLA /WILL WE SEEK ON THIS ONE? + TAD K1000 /NO - DO A READ ALL OR WRITE ALL + DCA INTS1 + JMS RKCMD /CHECK FOR HALF BLOCK AND COMPLETION + TAD INTS1 +RKDONE, DCA RKCMD /SAVE THE NEW COMMAND REGISTER + JMP I RKNXT +PAGE +FCE4= .&7770 + IFNZRO DC08A < +T8ASSM, 0 + AND T83770 /THE CHARACTER ONLY + SNA + JMP T8ASS1 /IGNORE NULL CHARACTERS + CLL RTR /BRING THE CHARACTER INTO POSITION + RAR + AND T80177 + TAD K0200 /FORCE ON THE PARITY BIT + CIF 00 /STASH IT AWAY + JMS I T8IN1A /THAT'S DONE IN FIELD 0 + ION +T8ASS1, CLL STA RTL /AC=-3 + TAD T8ASSM + DCA T8T /POINTS TO THE LSW + TAD I T8T + AND T83770 /SAVE ONLY THE LINE NUMBER + DCA I T8T + ISZ T8T /POINTS TO THE CAW + STL RTR /AC=2000 + DCA I T8T /RESET THE FLAG BIT + TTIR /BUMP THE "R" REGISTER + JMP I T8ASSM +T80177, 177 +T83770, 3770 +T8IN1A, T8IN1 +T8T, 0 + T8TTI, TTI + DC08LO^10+0 /LSW LINE # PT08+DC08LO+1 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+10 /LSW LINE # PT08+DC08LO+2 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+20 /LSW LINE # PT08+DC08LO+3 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+30 /LSW LINE # PT08+DC08LO+4 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+40 /LSW LINE # PT08+DC08LO+5 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+50 /LSW LINE # PT08+DC08LO+6 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+60 /LSW LINE # PT08+DC08LO+7 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+70 /LSW LINE # PT08+DC08LO+10 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+100 /LSW LINE # PT08+DC08LO+11 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+110 /LSW LINE # PT08+DC08LO+12 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+120 /LSW LINE # PT08+DC08LO+13 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+130 /LSW LINE # PT08+DC08LO+14 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+140 /LSW LINE # PT08+DC08LO+15 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+150 /LSW LINE # PT08+DC08LO+16 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+160 /LSW LINE # PT08+DC08LO+17 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+170 /LSW LINE # PT08+DC08LO+20 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+200 /LSW LINE # PT08+DC08LO+21 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+210 /LSW LINE # PT08+DC08LO+22 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+220 /LSW LINE # PT08+DC08LO+23 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED + TTI + DC08LO^10+230 /LSW LINE # PT08+DC08LO+24 + 2000 /CAW + JMS T8ASSM /CHARACTER FULLY ASSEMBLED +*T8TTI+DC08A+DC08A+DC08A+DC08A + CIF 00 + JMP I .+1 /BACK TO THE REST OF THE DC08A SERVICE + T8OUT1 + + FCB5= .+7&7770 +*2360 + +FCE5= .&7770 + +DFCLS0, ZBLOCK 4 +DFCNO0, ZBLOCK 4 +DFL2S0, ZBLOCK 4 + -1 /TO END TABLE +DFL2DL= . + 1-DC08LO+PT08+KL8;11-DC08LO+PT08+KL8 + 21-DC08LO+PT08+KL8;31-DC08LO+PT08+KL8 + + +DFRING, CTG /CLEAR THE GROUP COUNTER + TAD K7774 + DCA TEMP0 /COUNTER FOR GROUP SEARCH +DFRNG1, RRS /READ RING STATUS + SZA + STR /ACKNOWLEDGE RING(S) + CLA + ITG /INCREMENT THE GROUP COUNTER + ISZ TEMP0 /LOOKED AT ALL LINES? + JMP DFRNG1 /NO, KEEP LOOKING + STA + IOF + DCA I .+2 /DATA FLD=0 HERE, I HOPE. RESET COUNTER + EXITF1 + D6FLAG + +DFCLSI, 0 +DFCNWI, 0 +DFCLST, DFCLS0 +DFCNOW, DFCNO0 +DFCNTR, 0 +DFCSET, 0 + TAD DFCLST + DCA DFCLSI /POINTER TO STATUS AT LAST INTERRUPT + TAD DFCNOW + DCA DFCNWI /POINTER TO STATUS AT THIS INTERRUPT + TAD K7774 + DCA DFCNTR /COUNTER FOR COMPARISONNS + CTG /CLEAR GROUP COUNTER + JMP I DFCSET + DFCARR, JMS DFCSET /INITIALIZE STATUS +DFCAR1, RCS /READ CARRIER STATUS + DCA I DFCNWI /PLACE ON TABLE + ISZ DFCNWI + ITG /INCREMENT THE GROUP COUNTER + ISZ DFCNTR /READ ALL FOUR GROUPS? + JMP DFCAR1 /NO, READ NEXT + JMS DFCSET + TAD DFL2ST + DCA DFL2SI +DFCAR2, TAD I DFCNWI + CMA + AND I DFCLSI + SZA /ANY LINES CLEARED? + JMP DFCAR3 /YES, ACKNOWLEDGE +DFCAR5, TAD I DFCLSI + CMA + AND I DFCNWI + SZA + JMS DFCAR6 + ISZ DFCLSI + ISZ DFCNWI + ISZ DFL2SI + ITG /INCREMENT THE GROUP COUNTER + ISZ DFCNTR /ALL LINES CHECKED? + JMP DFCAR2 /NO + JMS DFCSET +DFCAR4, TAD I DFCNWI /TRANSFER THIS STATUS TABLE TO LAST + DCA I DFCLSI + ISZ DFCNWI + ISZ DFCLSI + ISZ DFCNTR + JMP DFCAR4 + JMP DFL200 + +DFCAR3, CTR /CLEAR TERMINAL READY + JMS DFCAR6 + JMP DFCAR5 /LOOK AT OTHER GROUPS + +DFCAR6, 0 + DCA TEMP4 /BIT TO SET + TAD TEMP4 + CMA + AND I DFL2SI + TAD TEMP4 + DCA I DFL2SI + JMP IDFCAR6 + DFL200, TAD DFL2ST /INITIALIZE PSEUDO GROUP CTR + DCA DFL2SG + +DFL22, TAD K7770 /EIGHT PHONES + DCA TEMP0 + IAC + DCA TEMP1 /SELECT EACH LINE IN GROUP + +DFL21, TAD I DFL2SG + SNA + JMP DFL23 + SPA + EXITF1 + AND TEMP1 + SZA CLA + JMP DFL25 + +DFL26, TAD TEMP1 + CLL RAL + DCA TEMP1 + ISZ TEMP0 + JMP DFL21 +DFL23, DCA I DFL2SG + ISZ DFL2SG + JMP DFL22 + +DFGBLK, GETB +DFL25, TAD DFL2SG + TAD DFL2C + DCA TEMP2 + TAD I TEMP2 + TAD TEMP0 + TAD K0010 + CLL RAL + TAD DFVTBA + DCA TEMP3 + TAD I TEMP3 + SZA CLA + JMP .+5 /YES + TAD TEMP3 + CIF + JMS I DFGBLK + JMP DFL26 + TAD TEMP3 + CIF CDF + JMS I DFUMES + JMP DFL26 + +DFL2SG, 0 +DFL2C, DFL2DL-DFL2S0 +DFVTBA= DEVTBA +DFL2SI, 0 +DFL2ST, DFL2S0 +DFUMES, UHLTMS + > + *DATA1 +/ROUTINE TO DECREMENT TIMERS +/THEY ARE BUMPED ONCE EACH SECOND +/THUS A USER CAN MEASURE UP TO 1 HOUR, 8 MINUTES, 15 SECONDS + +TIMER0, 0 + ISZ TIMBIG /HAVE WE GONE THROUGH A SECOND YET? + JMP F0TIMT /NO - DID WE FINISH ALL THE TIMERS LAST TIME? + TAD TICSEC /REFRESH SECOND TIMER + DCA TIMBIG + + TAD JOBCNT + DCA TIMET1 + TAD TIMTB1 /START OF CLKTBL + DCA TIMET2 +TIMER1, DATFLD + TAD I TIMET2 + SZA CLA + ISZ I TIMET2 + JMP TIMER2 + TAD TIMEJM /SET TIMER FLAG + TAD TIMET1 + JMS GETTBA /GET PTR TO STATUS 1 + JOBSTS+1 + TAD TEMP0 /DOES THE JOB STILL EXIST? + SNA CLA + JMP TIMER2 /NO + TAD I TEMP0 /YES, SET JSTIME IN STR1 + RAL + STL RAR + DCA I TEMP0 +TIMER2, ISZ TIMET2 + ISZ TIMET1 + JMP TIMER1 + ISZ UPTIM1 /INDEX LOW ORDER UPTIME + SKP + ISZ UPTIM2 /INDEX HI ORDER UPTIME +TIMEJM, JOBMAX+1 /NOP +IFZERO TC01 < JMP .+3 > +IFNZRO TC01 < STA > + DCA TEMP2 /ENABLE TRANSFER BACK TO DECTAPE CONTROLLER WAIT + JMS I TIMEDT /RUN DECTAPE TIMERS +IFZERO RK05 < JMP F0TIMR > +IFNZRO RK05 < CIF DATFLD > /NO INTERRUPTS + TAD RKTIME + SZA CLA /ACTIVE? + ISZ RKTIME /YES, BUMP TIMER + JMP F0TIMR /ALL IS WELL + IAC + DCLR /STOP WHATEVER IS GOING ON WITH THE RK05 + STA + DCA I RKERRA /SHOW THAT TRANSFER WAS TERMINATED + TAD RKJOB + JMS I RKHUNG /REPORT THE ERROR + RKL20 + /ROUTINE TO DUMP VALUE OF ONE CORE CELL INTO MQ +/RUNS AT EACH SYSTEM TICK +/TO USE, SET THE DESIRED CORE ADDRESS IN THE SWITCH REGISTER +/TO SELECT FIELDS, CLEAR SR TO 0, AND SET THE DESIRED +/FIELD IN THE LOW ORDER BITS OF THE SR. + +/THIS MEANS THAT YOU CANNOT ADDRESS LOCATIONS 0,1,2, OR 3 + +/IF THIS ROUTINE IS RUNNING, THE EAE IS NOT MUCH USE +/TO USER PROGRAMS. SORRY ABOUT THAT. + +TIMOUT, JMP TIMEX /LAS /INSERT THE "LAS" (7604) TO ENABLE DISPLAY + AND K7774 /TRYING A FIELD SELECT? + SNA + JMP DISPL1 /YES, GO CHANGE THE FIELD + LAS /NO; WHAT WAS THAT ADDRESS AGAIN? + DCA TEMP0 +DISFLD, CDF /ASSUME FIELD 0 TO START + TAD I TEMP0 /PICK UP CONTENTS OF SPECIFIED ADDRESS + MQL /DUMP IT IN THE MQ +TIMEX, CIF CDF /BACK TO FIELD 0 + JMP I TIME3A /RETURN + +TIMIT, TIMER3 +TIME3A, TIMER3 +TIMBIG, -TICSPS /ACTIVE COUNTER +TICSEC, -TICSPS /STARTING VALUE OF TIMBIG +TIMET1= TEMP4 +TIMET2= TEMP2 +TIMTB1, CLKTBL+1 +TIMEDT, DTIMER +RKHUNG, DTRKER + +DISPL1, LAS /WHAT WAS THAT FIELD AGAIN? + CLL RAL + RTL + TAD K6201 /BUILD FIELD SELECT + DCA DISFLD + JMP DISFLD-1 /NOW GO LOOK + + DEVDMB= JOBTBL-2 +*DEVTBL-1 + DEVDMB /DUMMY USED BY FIP RELEASE + ZBLOCK DEVTBE-DEVTBL + 0 /WE ALLOW THE READER EVEN IF NOT CONFIGURED FOR ONE + /THIS ALLOWS FIELD SERVICE TO USE THEIR PMK01 + IFZERO PUNCH + IFNZRO PUNCH <0> + DEVDMB + IFZERO LPT + IFNZRO LPT <0> + IFZERO CDR + IFNZRO CDR <0> + IFZERO TC01 + IFNZRO TC01 + IFNZRO RK05 + IFNZRO .-JOBTBL+1 + IFNZRO .-JOBTBL+1 + IFNZRO .-JOBTBL+1 + IFNZRO .-JOBTBL+1 + -1 /TERMINATES ASSIGNABLE DEVICE TABLE + +/JOBTBL, CLKTBL, TTYTBL, PRGTBL, & DSUTBL ARE SET UP BY INIT + + +*FIPBLK + ZBLOCK 10 /FIP'S FIXED PARAMETER BLOCK + +*WINBAS + ZBLOCK 50 /BASIC'S WINDOW + + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + \ No newline at end of file diff --git a/tss8/tss8.zip b/tss8/tss8.zip new file mode 100644 index 0000000000000000000000000000000000000000..1054a46bbfbf435cbc9ba5353804d8604fc9c493 GIT binary patch literal 218927 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