@CAT,P 1077-002-002.,///10000 @ASG,T TEMP.,///10000 @ELT,OI TEMP.1077-002-002,,,141203053441,000 )@@G@@**PF**@@@@&'@@@@@@@@@@@[@ *@@@]FE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@N@@@AC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@AD )@@G@@@@@@@@@@@@@@@@@@@J@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AE )@@G@@@@@@@@@@Q@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF )@@G@@@@@@@@@@@@@@@@@@@I@@]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@AG )@@G@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI )@@G@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@M@@@AJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@@@AL )@@G@@@@@@@@@@P@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AM )@@G@@@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E@@QAN )@@G@@FILEINFO @@@@@@@@B@@@ @@@@@@@@@@@K@@@@W@JM2#LTFSEARCH-FORMAO )@@G@@@@@@@@@@B@@@ @@@@@@@@@@@?@@@@WKG*_^STDIR @@@@@@@@B@@@AP )@@G@@ @@@@@@@@@@@>@@@@W/LM,#WUSPSS @@@@@@@@B@@@ AQ )@@G@@@@@@@@@@@@@U@@@@X-C"I^]ULINK @@@@@@@@B@@@ @@@@@@@@@@@VAR )@@G@@@@@@X;C_*^]UPLUS @@@@@C@@B@@@ @@@@@@@@@@@W@@@@YQD]K^]UAS )@@G@@PINLINE @@@@@@@@B@@@ @@@@@@@@@@@W@@@@Y2D#U^]UCOBOL AT )@@G@@@@@@@E@@B@@@ @@@@@@@@@@@X@@@@ZID^>^]UFORTRAN @@@@@@@@B@@@AU )@@G@@ @@@@@@@@@@@X@@@@Z:D \^]UCOMPILE @@@@@@@@B@@@ AV )@@G@@@@@@@@@@@@@Z@@@@)CJH;^]USPSSX @@@@@@@@B@@@ @@@@@@@@@@@UAW )@@G@@@@@@)$K \^#UMSM @@@@@@@@B@@@ @@@@@@@@@@@V@@@@-[K:9^#UAX )@@G@@START @@@@@O@@B@@@ @@@@@@@@@@@Z@@@@-WI7>^HUNOSC AY )@@G@@@@@@@@@@B@@@ @@@@@@@@@@@V@@@@-;KK@^HULOGO @@@@@@@@B@@@AZ )@@G@@ @@@@@@@@@@@U@@@@+QC2? ]UPROFILE1OF7 @@@@@@@@B@@@ BA )@@G@@@@@@@@@@@@@&@@@@+0C/O IUPROFILE2OF7 @@@@@@@@B@@@ @@@@@@@@@@@=BB )@@G@@@@@@GD[E IUPROFILE6OF7 @@@@@@@@B@@@BE )@@G@@ @@@@@@@@@@@<@@@@>0D]^ IUPROFILE7OF7 @@@@@@@@B@@@ BF )@@G@@@@@@@@@@@@@$@@@@&NH_! IUPROFILE7OF7 @@S@@@)@B@@@ @@@@@@@@@@@$BG )@@G@@@@@@&'H_$ IUPROFILE7OF7 @@@@@@@@B@@@ @@@@@@@@@@@$@@@@$-H_! IUBH )@@G@@LOGO @@U@@@)@B@@@ @@@@@@@@@@@U@@@@$+I%3^YULOGO BI )@@G@@@@V@@@)@B@@@ @@@@@@@@@@@U@@@@$/I3*^YULOGO @@W@@@)@B@@@BJ )@@G@@ @@@@@@@@@@@U@@@@*QI9V^YULOGO @@X@@@)@B@@@ BK )@@G@@@@@@@@@@@@@U@@@@*0I.Q^YULOGO @@Y@@@)@B@@@ @@@@@@@@@@@UBL )@@G@@@@@@(ED:W [ULOGO @@Z@@@)@B@@@ @@@@@@@@@@@U@@@@(=D"J [UBM )@@G@@LOGO @@@@@@@@B@@@ @@@@@@@@@@@U@@@@("C2? ]UPROFILE1 BN )@@G@@@@-@@@)@B@@@ @@@@@@@@@@@*@@@@%SF\A ]UPROFILE1 @@+@@@)@B@@@BO )@@G@@ @@@@@@@@@@@$@@@@:@JY8 ]UPROFILE1 @@,@@@)@B@@@ BP )@@G@@@@@@@@@@@@@$@@@@:$J-F ]UPROFILE2 @@=@@@)@B@@@ @@@@@@@@@@@@@@)@B@@@ @@@@@@@@@@@<@@@@?1J1F ]UBR )@@G@@PROFILE2 @@$@@@)@B@@@ @@@@@@@@@@@=@@@@!OH)9 #UPROFILE3 BS )@@G@@@@*@@@)@B@@@ @@@@@@@@@@@=@@@@!8H>\ #UPROFILE2 @@!@@@)@B@@@BT )@@G@@ @@@@@@@@@@@=@@@@,WH(, #UPROFILE3 @@4@@@)@B@@@ BU )@@G@@@@@@@@@@@@@&@@@@\@H81 #UPROFILE4 @@%@@@)@B@@@ @@@@@@@@@@@?BV )@@G@@@@@@\&H.B #UPROFILE4 @@@@@@)@B@@@ @@@@@@@@@@@?@@@@0MI[B #UBW )@@G@@PROFILE3 @@@@@@)@B@@@ @@@@@@@@@@@=@@@@0"I<- #UPROFILE5 BX )@@G@@@@5@@@)@B@@@ @@@@@@@@@@@=@@@@1+I=T #UPROFILE2 @@\@@@)@B@@@BY )@@G@@ @@@@@@@@@@@=@@@@2AI>? #UPROFILE1 @@0@@@)@B@@@ BZ )@@G@@@@@@@@@@@@@$@@@@2%CH; ^UPROFILE2 @@@@@@)@B@@@ @@@@@@@@@@@=CA )@@G@@@@@@3LCI? ^UPROFILE1 @@@@@@)@B@@@ @@@@@@@@@@@&@@@@35CKI ^UCB )@@G@@PROFILE2OF7 @[@@@@)@B@@@ @@@@@@@@@@@=@@@@4VCK7 ^UPROFILE5 CC )@@G@@@@@@@@)@B@@@3 @@@@@@@@@@@=@@@@4_CNO ^UPROFILE4OF7 @[^@@@)@B@@@CD )@@G@@ @@@@@@@@@@@?@@@@5> ^UPROFILE1OF7 @@"@@@)@B@@@ @@@@@@@@@@@&@@@@'7G$W ^UCL )@@G@@PROFILE5OF7 @[ @@@)@B@@@ @@@@@@@@@@@=@@@@;XJDH ^UPROFILE1OF7 CM )@@G@@@@_@@@)@B@@@ @@@@@@@@@@@&@@@@/[D') BUPROFILE1OF7 @[]@@@)@B@@@CN )@@G@@ @@@@@@@@@@@&@@@@/$G H BUPROFILE2OF7 @[#@@@)@B@@@ CO )@@G@@@@@@@@@@@@@=@@@@.HG " BUPROFILE3OF7 @[E@@@)@B@@@ @@@@@@@@@@@&CP )@@G@@@@@@.1JF4 FUPROFILE1OF7 @[C@@@)@B@@@ @@@@@@@@@@@&@@@@"RJIP FUCQ )@@G@@PROFILE2OF7 @[D@@@)@B@@@ @@@@@@@@@@@=@@@@".JKL FUPROFILE4OF7 CR )@@G@@@[F@@@)@B@@@ @@@@@@@@@@@?@@@@_-JM[ FUPROFILE5OF7 @[G@@@)@B@@@CS )@@G@@ @@@@@@@@@@@=@@@[@HJO: FUPROFILE6OF7 @[H@@@)@B@@@ CT )@@G@@@@@@@@@@@@@<@@@[@1JS1 FUPROFILE7OF7 @[I@@@)@B@@@ @@@@@@@@@@@$CU )@@G@@@@@[[OJV= FUPROFILE1OF7 @@@@@@@@B@@@ @@@@@@@@@@@&@@@[[;C/O IUCV )@@G@@PROFILE2OF7 @@@@@@@@B@@@ @@@@@@@@@@@=@@@[]-C.; IUPROFILE3OF7 CW )@@G@@@@@@@@@@B@@@ @@@@@@@@@@@&@@@[# C_Y IUPROFILE4OF7 @@@@@@@@B@@@CX )@@G@@ @@@@@@@@@@@?@@@[#:D@S IUPROFILE5OF7 @@@@@@@@B@@@ CY )@@G@@@@@@@@@@@@@=@@@[^RD[E IUPROFILE6OF7 @@@@@@@@B@@@ @@@@@@@@@@@ LARGEST SEQ WR BL@G@@@@ J SQRG14 HI )@@G@@ . $J SQRG14 BLOCK IS NOT OVERFLOW @G@@@@ LMJ X11,HJ )@@G@@TOREAD . $W TOREAD OVERFLOW BLOCK @C@@@@ J HK )@@G@@ SQRG15 . $J SQRG15 @C@@@@SQRG14 . BLOCK WHERE RECORD IS NOT OHL )@@G@@VERFLOW @C@@@@ LMJ X11,TBREAD . $W TBREAD @G@@@@HM )@@G@@ . UPON RETURN SECTAD HAS SECTOR ADDR HN )@@G@@@A@@@@SQRG15 LA A0,SECTAD @G@@@@ AA,S1 A0,RHO )@@G@@INDEX . $P ADDRESS OF RECORD TO A0 @E@@@@ LA,H2 HP )@@G@@ A5,0,A0 . $P RECORD LENGTH TO A5 @C@@@@ ANA,U A5,EHQ )@@G@@XTRAW . @B@[@@ ANA,U A5,EXTRAW . HR )@@G@@@B@@@[ ANA,U A5,1 . @G@@@@ SA,H2 HS )@@G@@ A5,2,X10 . $P RECORD LENGTH TO CALLING PACKET @^@@@@ AAHT )@@G@@,U A0,1@G@@@@ SA A0,1,X10 . $P ADDRESS OF RECHU )@@G@@ORD TO PACKET @A@@@@ LA A1,RECNMR @^@@@@ HV )@@G@@ AA,U A1,1@E@@@@ SA A1,0,X10 . $P RECORD #HW )@@G@@ TO PACKET @G@@@@ SA A1,RECNMR . $P UPDATE # OF REHX )@@G@@CORDS READ @G@@@@ SZ,T1 2,X10 . $P ZERO STAHY )@@G@@TUS (SUCCESSFUL) @C@@@@ J *RETURN . $E EXHZ )@@G@@IT @C@@@@SQREOF . END OF FILE NO MORE RECORDS TO READ @^@@@@ IA )@@G@@ LA,U A0,1@A@@@@ SA,T1 A0,2,X10 @A@@@@ IB )@@G@@ J *RETURN @]@@@@SQRFLI . @G@@@@ LMJ IC )@@G@@ X11,IBWRT1 . $W IBWRT1 FLUSH INDEX BUF @G@@@@ TPID )@@G@@ IIOPKT+3 . $P MAKE SURE I/O IS DONE @C@@@@ IE )@@G@@ ER WAIT$ . @G@@@@ TZ,S1 IIOPIF )@@G@@KT+3 . $P MAKE SURE I/O IS OK @C@@@@ J IG )@@G@@ IIOERR . @C@@@@ LA,U A0,1 IH )@@G@@ . @E@@@@ SA A0,CRETSW . $P SET CRETSW II )@@G@@ @G@@@@ SA A0,WRITSW . $P SET WRITSW TO INDIJ )@@G@@ICATE EOW @C@@@@ LA A1,TBNUMW . @I@@@@IK )@@G@@ SA A1,TBSQWN . $P SAVE # OF BLOCKS READ FOR EDIIL )@@G@@T @C@@@@ LA A1,IBNUMW . @E@@@@IM )@@G@@ SA A1,IBNUMWO . $P UPDATE IBNUMWO @C@@@@ IN )@@G@@ LA A2,RECNMW . @G@@@@ SA A2,RIO )@@G@@ECNMC . $P SAVE == OF RECORDS IN RECNMC @C@@@@ J IP )@@G@@ SQRFOK .$J SQRFOK@]@@@@/ @]@@@@ . @]@@@@IQ )@@G@@ . @]@@@@ . @]@@@@ . @]@@@@ . @]@@@@IR )@@G@@ . @E@@@@ . SUBROUTINE TO DOUBLE BUFFER TEMPORARY FILE BLOCKS. IS )@@G@@ @G@@@@ . UPON ENTRY, A1 HAS BLOCK NUM, A2 HAS REL SECTOR WITHIN BLIT )@@G@@OCK @G@@@@ . UPON RETURN, LOCATION SECTAD WILL POINT TO BEG OF SIU )@@G@@ECTOR IN BUFFER @]@@@@ . @]@@@@TBREAD . @C@@@@ SXIV )@@G@@,H2 X11,RET1 . $H TBREAD @G@@@@ TNZ TBNUMR IW )@@G@@ . $T ANY TEMP FILE BLOCKS READ @E@@@@ J TBRNIX )@@G@@TB . $A NO,TBRNTB YES @A@@@@TBRGT1 . A BLOCK HAS BEEN READIY )@@G@@ @A@@@@ LA A4,TBNUMR @G@@@@ ANA,U IZ )@@G@@ A4,1 . $P LAST BLOCK NUMBER READ TO A4 @G@@@@ TLJA )@@G@@E A4,A1 . $T BLK # WANTED <= BLK # READ @E@@@@ JB )@@G@@ J TBRNIN . $A NO,TBRNIN YES @G@@@@ TEJC )@@G@@ A4,A1 . $T BLK # WANTED = BLK # READ @C@@@@ JD )@@G@@ ER ERR$ . $E EXIT @C@@@@ J TBGEJE )@@G@@TS . $J TBGETS @C@@@@TBRNIN . BLOCK WANTED IS NOT AVAILABLE JF )@@G@@ @G@@@@ TP TIOPKT+3 . MAKE SURE I/O PACKET ISJG )@@G@@ FREE @A@@@@ ER WAIT$ @G@@@@ TZJH )@@G@@,S1 TIOPKT+3 . MAKE SURE LAST I/O WAS OK @A@@@@ JI )@@G@@ J TIOERR .@G@@@@ .JJ )@@G@@ $ ANOTHER BLOCK MUST BE READY NOW @A@@@@ LA A5,TBNUMR JK )@@G@@ .@A@@@@ TZ TDBLSW .@A@@@@ J JL )@@G@@ TBRGT2 .@A@@@@ LA,U A0,1 .@G@@@@ JM )@@G@@ SA A0,TDBLSW . $P UPDATE TEMP FILE DBLE BUF SW @A@@@@JN )@@G@@ J TBRGT3 .@A@@@@TBRGT2 SZ TDBLSW JO )@@G@@ .@]@@@@TBRGT3 . @G@@@@ TE A5,TBRSTA . $T ISJP )@@G@@ NEXT BLOCK SAME AS STARTED @E@@@@ ER ERR$ .JQ )@@G@@ $E ERROR, SHOULD BE @C@@@@ AA,U A5,1 . JR )@@G@@ @G@@@@ SA A5,TBNUMR . $P UPDATE BLOCK READ TO BLJS )@@G@@OCK READ + 1@G@@@@ LA A0,TDBLSW . $P UPDATE TRADDR JT )@@G@@(ADDR OF TEMP BLK)@A@@@@ LA A4,TBUF,A0 .@A@@@@ JU )@@G@@ SA A4,TRADDR .@G@@@@ LMJ X11,TBRDE1 .JV )@@G@@ $W TBRDE1 ST RDE OF NEXT BLK IF ANY@G@@@@ JW )@@G@@ . $P WILL NOT WAIT FOR NEW I/O @A@@@@ LA A5,TJX )@@G@@BNUMR .@A@@@@ ANA,U A5,1 .@G@@@@ TNJY )@@G@@E A1,A5 . $T BLOCK READ SAME AS BLOCK WANTED @E@@@@ JZ )@@G@@ J TBGETS . $A YES,TBGETS NO @G@@@@ TNKA )@@G@@Z TEOFSW . $T IS TEMP FILE END OF FILE SW SET @E@@@@ KB )@@G@@ J TBRNIN . $A NO,TBRNIN YES @C@@@@ ERKC )@@G@@ ERR$ . $E EXIT @G@@@@TBRNTB . NO TEMP BLOCKS HAVE BKD )@@G@@EEN READ YET, READ BLOCK # IN A1 @C@@@@ . REGISTERS A1 ANKE )@@G@@D A2 NOT TO BE CHANGED @A@@@@ SZ TDBLSW @G@@@@KF )@@G@@ TP TIOPKT+3 . MAKE SURE I/O PACKET IS FREE KG )@@G@@@A@@@@ ER WAIT$ @A@@@@ TZ,S1 TIOPKH )@@G@@KT+3 @A@@@@ J TIOERR @A@@@@ LAKI )@@G@@ A3,A1 .@E@@@@ MSI,U A3,TBSECT . $P SEKJ )@@G@@CTOR NUMBER TO A3 @E@@@@ LA A4,TBUF . $P BUFFER AKK )@@G@@DDRESS TO A4@E@@@@ LA,U A5,020 . $P I/O READ CODE KL )@@G@@TO A5 @E@@@@ SA A5,TIOFUNC . $P I/O CODE TO TIOPKTT KM )@@G@@@G@@@@ SA A4,TIOBUF . $P BUFFER ADDRESS TO TIOPKT KN )@@G@@ @G@@@@ SA A3,TIOSECT . $P SECTOR NUMBER TO TIOKO )@@G@@PKT @E@@@@ LA,U A0,TIOPKT . $P ISSUE THE I/O KP )@@G@@ @^@@@@ ER IO$ @G@@@@ TP TIOPKT+3 KQ )@@G@@ . $P WAIT FOR I/O TO COMPLETE @A@@@@ ER WAITKR )@@G@@$ @A@@@@ TZ,S1 TIOPKT+3 @A@@@@ J KS )@@G@@ TIOERR @G@@@@ SA A4,TRADDR . $P UPKT )@@G@@DATE TEMP FILE ADDRESS @A@@@@ L A5,A1 KU )@@G@@@^@@@@ AA,U A5,1@G@@@@ SA A5,TBNUMR .KV )@@G@@ $P UPDATE # OF TEMP FILES READ @G@@@@ LMJ X11,TBRDE1KW )@@G@@ . $W TBRDE1 ST READ OF NEXT BL IF ANY@C@@@@ J TBRGKX )@@G@@T1 . $J TBRGT1 @]@@@@ . @A@@@@TBGETS . BLOCK WANTED ISKY )@@G@@ IN CORE @C@@@@ LA A0,TDBLSW . @G@@@@KZ )@@G@@ LA A0,TBUF,A0 . $P ADDR OF TEMP BUF TO A0 LA )@@G@@@G@@@@ MSI,U A2,28 . $P REL WRD DISPLACEMENT TO A2 LB )@@G@@ @G@@@@ AA A0,A2 . $P ADDRESS OF SECTOR WANTELC )@@G@@D TO A0 @G@@@@ S A0,SECTAD . $P ADDR OF SECTOR WALD )@@G@@NTED TO SECTAD @C@@@@ J *RET1 . $P EXIT LE )@@G@@@]@@@@ . @E@@@@TBRDE1 . SUBROUTINE TO START READ OF NEXT TEMP BLF )@@G@@LOCK IF ANY @C@@@@ SX,H2 X11,RET2 . @G@@@@LG )@@G@@ LA A5,TBNUMR . $P A5 CONTAINS NEXT REL BLK NUMBER LH )@@G@@@G@@@@ TG A5,TBSQWN . $T ANY MORE BLOCKS TO BE READLI )@@G@@ @E@@@@ J TBRGT4 . $A NO,TBRGT4 YES LJ )@@G@@@G@@@@ . START NEXT READ OPERATION (NOLK )@@G@@ WAIT)@A@@@@ LA A0,TDBLSW .@A@@@@ TZ LL )@@G@@ A0 .@A@@@@ J TBRGT5 .@A@@@@ LM )@@G@@ LA,U A0,1 .@A@@@@ J TBRGT6 .LN )@@G@@@G@@@@TBRGT5 SZ A0 . $P A0 HAS THE CORRECT DBL BUFLO )@@G@@ SW @E@@@@TBRGT6 LA A4,TBUF,A0 . $P BUFFER ADDRESS TO A4LP )@@G@@@A@@@@ SA A5,TBRSTA @E@@@@ MSI,U A5,TLQ )@@G@@BSECT . $P SECTOR NUMBER TO A5 @G@@@@ TP TIOPKT+3 LR )@@G@@ . $P WAIT TILL TIOPKT IS CLEAR @A@@@@ ER WAITLS )@@G@@$ .@A@@@@ TZ,S1 TIOPKT+3 .@G@@@@ J LT )@@G@@ TIOERR . MAK SURE LAST I/O WAS OK @G@@@@ LU )@@G@@ SA A4,TIOBUF . $P I/O BUFFER ADDR TO TIOPKT @G@@@@LV )@@G@@ SA A5,TIOSECT . $P I/O SECTOR NUMBER TO TIOPKT LW )@@G@@@G@@@@ LA,U A0,020 . $P READ FUNCTION CODE TO A0 LX )@@G@@ @G@@@@ SA A0,TIOFUNC . $P READ FUNCTION CODE TLY )@@G@@O TIOPKT @G@@@@ LA,U A0,TIOPKT . $P ISSUE THE I/O LZ )@@G@@WITHOUT WAIT @A@@@@ ER IO$ .@C@@@@ MA )@@G@@ J *RET2 . $E EXIT @]@@@@TBRGT4 . @^@@@@ MB )@@G@@ LA,U A0,1@G@@@@ SA A0,TEOFSW . $P SET TEMPMC )@@G@@ END OF FILE SWITCH @C@@@@ J *RET2 . $E EXMD )@@G@@IT @]@@@@ . @G@@@@ . SUBROUTINE TO INITIATE A READ OPERATIONME )@@G@@ FOR INDEX BLOCK WHOSE REL @G@@@@ . NUMBER IS IN REGISTER A2. THE PROMF )@@G@@PER DOUBLE BUFFERED SWITCH IS IN @A@@@@ . REGISTER A1 (VALUE 0 OR 1) MG )@@G@@ @]@@@@ . @]@@@@IBREAD . @C@@@@ SX,H2 X11,RMH )@@G@@ET1 . $H IBREAD @G@@@@ TP IIOPKT+3 . $ MAMI )@@G@@KE SURE IIOPKT IS FREE @A@@@@ ER WAIT$ MJ )@@G@@@A@@@@ TZ,S1 IIOPKT+3 @A@@@@ J IIOEMK )@@G@@RR @G@@@@ LA,U A3,020 . $P I/O READ FN COML )@@G@@DE TO A3 @E@@@@ SA A3,IIOFUNC . $P I/O CODEMM )@@G@@ TO PACKET @E@@@@ LA A4,IBUF,A1 . $P BUFFER ADDRESSMN )@@G@@ TO A4@G@@@@ SA A4,IIOBUF . $P BUFFER ADDRESS TO PAMO )@@G@@CKET @E@@@@ LA A5,A2 . $P REL BLK # TO AMP )@@G@@5 @E@@@@ MSI,U A5,IBSECT . $P SECTOR # TO A5 MQ )@@G@@@G@@@@ SA A5,IIOSECT . $P SECTOR NUMBER TO IIOPKT MR )@@G@@ @A@@@@ LA,U A0,IIOPKT .@C@@@@ ER MS )@@G@@ IO$ . $W IO$ @G@@@@ SA A2,IBRSTA .MT )@@G@@ $P SAVE BLK NUM FOR WHICH READ ST @A@@@@ J *RET1 MU )@@G@@ @]@@@@ . @E@@@@ . SUBROUTINE TO READ OVERFLOW TEMP FILE BMV )@@G@@LOCKS INTO TOBF1A @G@@@@ . THE RELATIVE BLOCK NUMBER IS IN A1, THE SECTOMW )@@G@@R NUMBER WITHIN BLOCK @^@@@@ . IS IN REGISTER A2. @G@@@@ . UPON RETUMX )@@G@@RN, LOCATION SECTAD WILL HAVE THE ADDRESS OF SECTOR IN CORE @]@@@@ . MY )@@G@@ @]@@@@TOREAD . @C@@@@ SX,H2 X11,RET1 . $H TOMZ )@@G@@READ @A@@@@ LA A0,TBONRR .@G@@@@ TNE NA )@@G@@ A1,A0 . $T OVF BLK READ = BLK WANTED @E@@@@ J NB )@@G@@ TORGT1 . $A YES,TORGT1 NO @A@@@@ LA NC )@@G@@ A3,A1 .@E@@@@ MSI,U A3,TBSECT . $P SECTOR NND )@@G@@UMBER TO A3 @E@@@@ LA A4,TOBF1A . $P BUFFER ADDRESSNE )@@G@@ TO A4@G@@@@ LA,U A5,020 . $P I/O READ FN CODE TO NF )@@G@@A5 @G@@@@ TP TIOPKT+3 . $P MAKE SURE THATNG )@@G@@ PACKET IS FREE @A@@@@ ER WAIT$ .@G@@@@ NH )@@G@@ TZ,S1 TIOPKT+3 . $P MAKE SURE THAT LAST I/O WAS OK @A@@@@NI )@@G@@ J TIOERR .@G@@@@ SA A3,TIOSECTNJ )@@G@@ . $P SECTOR NUMBER TO TEMP I/O PACKET@G@@@@ SA A4,TNK )@@G@@IOBUF . $P BUFFER ADDRESS TO TIOPKT @E@@@@ SA NL )@@G@@ A5,TIOFUNC . $P I/O CODE TO TIOPKT @C@@@@ LA,U A0,TNM )@@G@@IOPKT . @G@@@@ ER IO$ . $WNN )@@G@@ ISSUE THE IO TO TEMP FILE @G@@@@ TP TIOPKT+3 .NO )@@G@@ $P WAIT FOR I/O TO COMPLETE @A@@@@ ER WAIT$ NP )@@G@@ .@G@@@@ TZ,S1 TIOPKT+3 . $P MAKE SURE I/O WAS GONQ )@@G@@OD @A@@@@ J TIOERR .@G@@@@ SANR )@@G@@ A4,TRADDR . $P SAVE BUF ADDR IN TRADDR @G@@@@ NS )@@G@@ SA A1,TBONRR . $P SAVE # OF OVF BLK READ (REL) @]@@@@NT )@@G@@TORGT1 . @C@@@@ LA A5,A2 . $ @G@@@@NU )@@G@@ MSI,U A5,28 . $P RELATIVE # OF WRDS TO A5 NV )@@G@@@G@@@@ AA A5,TOBF1A . $P ADDRESS OF SECTOR TO A5 NW )@@G@@ @G@@@@ SA A5,SECTAD . $ ADDR OF SECTOR TO LONX )@@G@@C SECTAD @A@@@@ J *RET1 @]@@@@ . NY )@@G@@@]@@@@ . @]@@@@SQRFSL . @G@@@@ LMJ X11,TBWRT1NZ )@@G@@ . $P WRITE LAST TEMP BLOCK OUT @A@@@@ TP TIOPOA )@@G@@KT+3 @C@@@@ ER WAIT$ . @C@@@@OB )@@G@@ TZ,S1 TIOPKT+3 . @C@@@@ J OC )@@G@@ TIOERR . @I@@@@ LX X9,IBRTAD OD )@@G@@ . $P ADDR OF INX CORE REF TAB TO X9 @G@@@@ LR OE )@@G@@ R1,IBFENT . $P # OF ENTRIES TO R1 @]@@@@FLSLP3 . OF )@@G@@@E@@@@ JGD R1,$+2 . $T ARE WE DONE @E@@@@OG )@@G@@ J FLSGT1 . $A YES,FLSGT1 NO @E@@@@ OH )@@G@@ LA,H1 A1,0,X9 . $P INX BLK NUM TO A1@G@@@@ LAOI )@@G@@,H2 A2,0,X9 . $P INX BLK ADDR TO A2 @G@@@@ OJ )@@G@@ LA,U A3,010 . $P WRITE FUNCTION TO A3 @G@@@@OK )@@G@@ LMJ X11,IBIOW . $W IBIOW WRITE I BLOCK OUT OL )@@G@@@E@@@@ AX,U X9,1 . $P INCREMENT PTR @E@@@@OM )@@G@@ J FLSLP3 . $J FLSLP3 @]@@@@FLSGT1ON )@@G@@ . @I@@@@ LX X9,TBRTAD . $P ADDR OF DATA COREOO )@@G@@ REF BLK TO X9 @G@@@@ LR R1,TBFENT . $POP )@@G@@ # OF TEMP BLKS TO R1 @]@@@@FLSLP4 . @E@@@@ JGD OQ )@@G@@ R1,$+2 . $T ARE WE DONE @E@@@@ J FLSGOR )@@G@@T2 . $A YES,FLSGT2 NO @G@@@@ LA,H1 A1,0,X9 OS )@@G@@ . $P TEMP BLK NUM TO A1 @G@@@@ LA,H2 A2,0OT )@@G@@,X9 . $P TEMP BLK ADDR TO A2 @G@@@@ LA,U OU )@@G@@ A3,010 . $W WRITE FUNCTION CODE TO A3 @C@@@@ LMOV )@@G@@J X11,TBIOW . $W TBIOW@E@@@@ AX,U X9,1 OW )@@G@@ . $P INCREMENT PTR @E@@@@ J FLSLP4 OX )@@G@@ . $J FLSLP4 @]@@@@FLSGT2 . @]@@@@ . @]@@@@ . OY )@@G@@ @A@@@@ . FLUSH OVERFLOW INDEX BLOCKS @]@@@@ . @]@@@@OZ )@@G@@ . @C@@@@ LX X9,IOVFRAD . @G@@@@PA )@@G@@ LR R1,IOBFENT . # OF OVF BLOCKS TO R1 PB )@@G@@@]@@@@FLSLP5 . @E@@@@ JGD R1,$+2 . $T ARE WPC )@@G@@E DONE @E@@@@ J FLSGT3 . $J FLSGT3 PD )@@G@@ @G@@@@ LA,H1 A1,0,X9 . OVF INX BLOCK NUM TOPE )@@G@@ A1 @G@@@@ LA,H2 A2,0,X9 . OVF INDEX BLOCPF )@@G@@K ADDR TO A2 @C@@@@ LA,U A3,010 . PG )@@G@@@I@@@@ . L$SNAP 'OVFLSH',2,1,IOBFENT PH )@@G@@ . @E@@@@ LMJ X11,IBIOW . $W IBIOWPI )@@G@@ ISSUE WRITE@E@@@@ AX,U X9,1 . $P ADVANCE POIPJ )@@G@@NTER @E@@@@ J FLSLP5 . $J FLSLP4 PK )@@G@@@]@@@@FLSGT3 . @]@@@@ . @]@@@@ . @C@@@@ LAPL )@@G@@,U A0,1 . @G@@@@ SA A0,FLSHSW PM )@@G@@ . $P SET EDIT BUF FLUSH SW @A@@@@ . FLUSH EDIT BUFFERS IFPN )@@G@@ ANY @C@@@@ J SQRGT1 . @]@@@@PO )@@G@@/ @]@@@@ . @G@@@@ . SUBROUTINE TO ASSIGN THE INDEX ANPP )@@G@@D TEMPORARY FILES FOR THE TEMP FILE @G@@@@ . ACCESS METHOD. THE SUBROUTIPQ )@@G@@NE WILL ISSUE MCORE$ CALLS TO GET THE @^@@@@ . NECESSARY BUFFERS PR )@@G@@@E@@@@ . WILL ALSO MCORE SPACE FOR THE NECESSARY TABLES @]@@@@PS )@@G@@FILASG . @C@@@@ SX,H2 X11,RET1 . @G@@@@PT )@@G@@ LA,U A0,ASGIA . $P TRY TO ASSIGN,A FIRST (INDEX FI)PU )@@G@@@C@@@@ ER CSF$ . $W CSF$ @E@@@@ JPPV )@@G@@ A0,IFUSE . $T FACILITY REJECTED @E@@@@ PW )@@G@@ . $A NO,IFUSE YES @G@@@@ TZ WRITPX )@@G@@SW . $T HAS THERE BEEN A SEQUENTIAL WRIT@E@@@@ J PY )@@G@@ IASER1 . $A YES,IASER1 NO @G@@@@ L,U A0,APZ )@@G@@SGIT . $P TRY TO ASG,T (INDEX FILE) @C@@@@ ER QA )@@G@@ CSF$ . $W CSF$ @E@@@@ JN A0,IASER2 .QB )@@G@@ $T FACILITY REJECTED @E@@@@ . . $A YEQC )@@G@@S,IASER2 NO @E@@@@IFUSE . FACILITY NOT REJECTED ON AN ASG,A FOR INQD )@@G@@DEX FILE @]@@@@ . @G@@@@ LA,U A0,ASGTA .QE )@@G@@ $P TRY TO ASG,A TEMP FILE @C@@@@ ER CSF$ QF )@@G@@ . $W CSF$ @E@@@@ JP A0,TFUSE . $T FACILITYQG )@@G@@ REJECTED @E@@@@ . $A NO,TFUSE YES QH )@@G@@ @G@@@@ TZ WRITSW . $T ANY SEQUENTIAL WRITEQI )@@G@@ OCCURED @E@@@@ J TASER1 . $A YES,TASER1 NO QJ )@@G@@ @G@@@@ L,U A0,ASGTT . $P TRY TO ASG,T (TEMP QK )@@G@@FILE) @C@@@@ ER CSF$ . $W CSF$ @E@@@@QL )@@G@@ JN A0,TASER2 . $T FACILITY REJECTED @E@@@@ QM )@@G@@ . $A YES,TASER2 NO @]@@@@TFUSE . QN )@@G@@@G@@@@ L,U A0,1 . $P SET IDFASW SWITCH (FILES AQO )@@G@@SSIGN)@A@@@@ S A0,IDFASW .@G@@@@ LA QP )@@G@@ A0,LAST$D . $P PREPARE TO ISSUE MCORE$ @A@@@@ LAQQ )@@G@@ A1,A0 @^@@@@ AA,U A1,1@I@@@@ SAQR )@@G@@ A1,IWADDR . $P INITIALIZE FIRST WRITE ADDRESS QS )@@G@@@G@@@@ SA A1,IBUF1A . $P ADDRESS OF FIRST BUF TO IBQT )@@G@@UF1A @A@@@@ LA A2,A1 @A@@@@ AA,U QU )@@G@@ A2,IBSIZE @G@@@@ SA A2,IBUF2A . $P ADDRESS QV )@@G@@OF 2ND INX BUF TO IBUF2A@C@@@@ LA,U A2,IBNUM . QW )@@G@@ @I@@@@ MSI,U A2,IBSIZE . $P SIZE OF INDEX BUFQX )@@G@@FERS FOR EDITING @G@@@@ AA A1,A2 . $P AQY )@@G@@CCOUNT FOR EDIT INDEX BUFFERS @G@@@@ SA A1,IOBF1A .QZ )@@G@@ $P ADDR OF FIRST OVF INX BUF IOBF1A@C@@@@ AA,U A1,IOVBUFFRA )@@G@@ . @G@@@@ SA A1,TBUF1A . $P ADDR OF RB )@@G@@TEMP FILE 1ST BUF TBUF1A@A@@@@ LA A2,A1 .@A@@@@RC )@@G@@ AA,U A2,TBSIZE .@G@@@@ SA A2,TBUF2A RD )@@G@@ . $P ADDR OF TEMP FILE 2ND BUF TBUF2A@C@@@@ LA,U A0,TRE )@@G@@BNUM . @I@@@@ MSI,U A0,TBSIZE . $PRF )@@G@@ SIZE OF DATA BUFFERS FOR EDITING @C@@@@ AA A1,ARG )@@G@@0 . $ @I@@@@ SA A1,TWADDR . $PRH )@@G@@ INITIALIZE FIRST TEMP BLK ADDR @G@@@@ SA A1,TRI )@@G@@OBF1A . $P ADDR OF 1ST OVF TBUF TO TOBF1A @C@@@@ AA,U RJ )@@G@@ A1,TBSIZE . $ @G@@@@ SA A1,TOBF2A .RK )@@G@@ $P ADDR OF 2ND OVF TBUF TO TOBF2A @A@@@@ AA,U A1,TBSIZE RL )@@G@@ .@A@@@@ LA A0,A1 .@E@@@@ SA RM )@@G@@ A0,LAST$D . $P UPDATE LAST$D @G@@@@ ER MCORRN )@@G@@E$ . $P ISSUE MCORE$ TO GET BUFFERS @]@@@@ . @]@@@@RO )@@G@@ . @A@@@@ . MCORE FOR CORE RAND INDEX TABLE @]@@@@ . RP )@@G@@@]@@@@ . @C@@@@ LA A0,LAST$D . RQ )@@G@@@C@@@@ LA A1,A0 . @C@@@@ AARR )@@G@@,U A1,1 . @E@@@@ SA,H2 A1,RNDADD RS )@@G@@ . $P UPDATE RNDADD @C@@@@ AA,U A0,IDBNUM RT )@@G@@ . @E@@@@ SA A0,LAST$D . UPDATE LAST$D RU )@@G@@ @E@@@@ ER MCORE$ . ISSUE THE MCORE RV )@@G@@@]@@@@ . @]@@@@ . @C@@@@ . MCORE FOR INDEX CORE REFERERW )@@G@@NCE TABLE @]@@@@ . @]@@@@ . @C@@@@ LARX )@@G@@ A0,LAST$D . @C@@@@ LA A1,A0 RY )@@G@@ . @C@@@@ AA,U A1,1 . RZ )@@G@@@E@@@@ SA,H2 A1,IBRTAD . $P UPDATE IBRTAD @C@@@@SA )@@G@@ AA,U A0,IBNUM . @E@@@@ SA SB )@@G@@ A0,LAST$D . UPDATE LAST$D @E@@@@ ER MCORSC )@@G@@E$ . ISSUE THE MCORE @]@@@@ . @]@@@@ . SD )@@G@@@C@@@@ . MCORE FOR DATA BUFFER CORE REFERENCE TABLE @]@@@@ . SE )@@G@@@]@@@@ . @C@@@@ LA A0,LAST$D . SF )@@G@@@C@@@@ LA A1,A0 . @C@@@@ AASG )@@G@@,U A1,1 . @E@@@@ SA,H2 A1,TBRTAD SH )@@G@@ . $P UPDATE RNDADD @C@@@@ AA,U A0,TBNUM SI )@@G@@ . @E@@@@ SA A0,LAST$D . UPDATE LAST$D SJ )@@G@@ @E@@@@ ER MCORE$ . ISSUE THE MCORE SK )@@G@@@]@@@@ . @]@@@@ . @A@@@@ . MCORE FOR INDEX UPDATE TABLSL )@@G@@E @]@@@@ . @]@@@@ . @C@@@@ LA A0,LSM )@@G@@AST$D . @C@@@@ LA A1,A0 . SN )@@G@@ @C@@@@ AA,U A1,1 . @E@@@@ SO )@@G@@ SA,H2 A1,IUPDAD . $P UPDATE IUPDAD @C@@@@ AASP )@@G@@,U A0,IBNUM . @E@@@@ SA A0,LAST$D SQ )@@G@@ . UPDATE LAST$D @E@@@@ ER MCORE$ SR )@@G@@ . ISSUE THE MCORE @]@@@@ . @]@@@@ . @C@@@@ . MCOSS )@@G@@RE FOR OVERFLOW INDEX CORE REFERENCE TABLE@]@@@@ . @]@@@@ . ST )@@G@@ @C@@@@ LA A0,LAST$D . @C@@@@ SU )@@G@@ LA A1,A0 . @C@@@@ AA,U A1,1SV )@@G@@ . @E@@@@ SA,H2 A1,IOVFRAD . $PSW )@@G@@ UPDATE IOVFRAD @C@@@@ AA,U A0,IOVFNUM . SX )@@G@@@E@@@@ SA A0,LAST$D . UPDATE LAST$D @E@@@@SY )@@G@@ ER MCORE$ . ISSUE THE MCORE @]@@@@ . SZ )@@G@@ @]@@@@ . @C@@@@ J *RET1 . $E EXITTA )@@G@@ @]@@@@ . @A@@@@IASER1 LX,U X10,ASGIA .@C@@@@TB )@@G@@ LMJ X11,ASGERR . $E EXIT @]@@@@IASER2 . @A@@@@TC )@@G@@ LX,U X10,ASGIT .@C@@@@ LMJ X11,ASGERRTD )@@G@@ . $E EXIT @]@@@@TASER1 . @A@@@@ LX,U X10,ASGTA TE )@@G@@ .@C@@@@ LMJ X11,ASGERR . $E EXIT @]@@@@TASER2TF )@@G@@ . @A@@@@ LX,U X10,ASGTT .@C@@@@ LMJ TG )@@G@@ X11,ASGERR . $E EXIT @]@@@@ . @]@@@@ . @G@@@@TH )@@G@@ . SUBROUTINE TO BE CALLED BY THE EDIT PROCESSORS TO CHECK SWITCHES TI )@@G@@@C@@@@ . AND FLUSH SEQUENTIAL WRITE INDEX BUFFER @]@@@@ . TJ )@@G@@@]@@@@FRSTED* . @^@@@@ + 0 @G@@@@ TNZ TK )@@G@@ IDFASW . $T TEMP FILE HAS BEEN ASSIGNED @^@@@@ ERTL )@@G@@ ERR$@G@@@@ TZ CRETSW . $T FILE HAS BEEN TM )@@G@@CREATED @C@@@@ J *FRSTED . $E EXIT TN )@@G@@@C@@@@RMRFLI . THIS IS THE FIRST RANDOM READ @G@@@@ LMTO )@@G@@J X11,IBWRT1 . $W IBWRT1 FLUSH INDEX BUFFER OUT @G@@@@ TP )@@G@@ TP IIOPKT+3 . $P MAKE SURE I/O IS DONE @A@@@@TQ )@@G@@ ER WAIT$ @E@@@@ TZ,S1 IIOPKT+3 TR )@@G@@ . $P MAKE SURE I/O WAS OK@A@@@@ J IIOERR TS )@@G@@@^@@@@ LA,U A0,1@G@@@@ SA A0,CRETSW .TT )@@G@@ $P SET CRETSW (TEMP FILE CREATED) @G@@@@ SA A0,WRITSW TU )@@G@@ . $P SET NON SEQUENTIAL WRITE MODE @E@@@@ . UPDATE SOME CONSTANTSTV )@@G@@ IN PREPARATION FOR EDITING @]@@@@ . @A@@@@ LATW )@@G@@ A1,TBNUMW @G@@@@ SA A1,TBSQWN . $P SATX )@@G@@VE # OF TEMP BLKS WRITTEN; @G@@@@ .TY )@@G@@ FOR EDITING PURPOSE, ANY BLOCKS @G@@@@ TZ )@@G@@ . TO BE WRITTEN HEREAFTER ARE OVF @C@@@@ LA A1,IUA )@@G@@BNUMW . @I@@@@ SA A1,IBNUMWO . $PUB )@@G@@ IBNUMWO WILL CONTAIN CURRENT # OF @G@@@@ UC )@@G@@ . $ INDEX BLOCK INCLUDING OVERFLOW@A@@@@ J UD )@@G@@ *FRSTED @]@@@@ . @]@@@@/ @]@@@@ . UE )@@G@@@C@@@@ . RANDOM READ TEMP FILE ACCESS METHOD @]@@@@ . UF )@@G@@@]@@@@TF$RMR* . @C@@@@ SX,H2 X11,RETN1 . $H TF$RMR UG )@@G@@@I@@@@ SLJ FRSTED . $P FLUSH SQW INDEX BUF ON UH )@@G@@FRST ED @]@@@@RMRGT1 . @G@@@@ LA A3,0,X10 UI )@@G@@ . $P RECORD NUMBER WANTED TO A3 @C@@@@ LMJ X11,UJ )@@G@@LOCINX . $W LOCINX @G@@@@ . WIUK )@@G@@LL RETURN INDEX IN LCINX @G@@@@ .UL )@@G@@ AND ADDR OF INDEX IN LCINXA @G@@@@ UM )@@G@@ . INX BLK ADDRESS IN INXPKT+1 @E@@@@ TZ A0 UN )@@G@@ . $T SUCCESSFUL @E@@@@ J LOCEOF UO )@@G@@ . $A NO,LOCEOF YES @A@@@@ LA A0,LCINX .UP )@@G@@@E@@@@ SA A0,TEMPKT+1 . $P INDEX TO TEMPKT+1 @G@@@@UQ )@@G@@ LMJ X11,LOCREC . $W LOCREC LOCATE RECORD IN BUFFER UR )@@G@@@G@@@@ . RECORD ADDRESS RETURNED (RUS )@@G@@MRRAD)@A@@@@ . DELIVER RECORD TO CALLING PACKET @G@@@@ LX,H2 UT )@@G@@ X8,TEMPKT . $P ADDR OF RECORD + HEADER TO X8 @E@@@@ LAUU )@@G@@,H2 A5,0,X8 . $P RECORD LENGTH TO A5 @^@@@@ ANA,U UV )@@G@@ A5,1@G@@@@ SA,H2 A5,2,X10 . $P RECORD LENGTH TO CALUW )@@G@@LING PACKET @^@@@@ AX,U X8,1@G@@@@ TZ RMR1UX )@@G@@SW . $T DO WE DELIVER RECORD @E@@@@ J UY )@@G@@ RMRGT2 . $A NO,RMRGT2 YES @G@@@@ LX,H2 X9,1UZ )@@G@@,X10 . $P ADDR OF CALLING BUF TO X9 @A@@@@ LR VA )@@G@@ R1,A5 @I@@@@ SLJ RTRANS . $P TRANSFERVB )@@G@@ RECORD TO CALLING BUFFER @G@@@@RMRGT3 SZ,T1 2,X10 VC )@@G@@ . $P SET 0 RETURN CODE IN CALLING PKT@E@@@@ SZ RMR1VD )@@G@@SW . $P RESET RMR1SW @C@@@@ J *RETN1 VE )@@G@@ . $E EXIT @]@@@@ . @]@@@@LOCEOF . @A@@@@ LAVF )@@G@@,U A0,1 .@E@@@@ SA,T1 A0,2,X10 . $P SEVG )@@G@@T ERROR RETURN @E@@@@ SZ RMR1SW . $P RESETVH )@@G@@ RMR1SW @C@@@@ J *RETN1 . $E @]@@@@VI )@@G@@ . @A@@@@RMRGT2 . DO NOT DELIVER RECORD @G@@@@ SXVJ )@@G@@,H2 X8,1,X10 . $P RETURN RECORD ADDRESS @C@@@@ VK )@@G@@ J RMRGT3 .$J RMRGT3@]@@@@ . @]@@@@ . VL )@@G@@ @C@@@@TF$RMR1* . RANDOM READ WITHOUT DELIVERING RECORD@C@@@@ VM )@@G@@ LA,U A0,1 . @E@@@@ SA A0,RVN )@@G@@MR1SW . $P SET RMR1SW @E@@@@ J TF$RMR VO )@@G@@ . $J TF$RMR @]@@@@/ @G@@@@ . SUBROUTINE TO LVP )@@G@@OCATE THE INDEX FOR A RECORD WHOSE NUMBER IS CONTAINED@E@@@@ . IN A3 REVQ )@@G@@TURN CODE WILL BE IN REGISTER A0 (0=SUCCESSFUL).@G@@@@ . IF SUCCESSFUL, VR )@@G@@THE INDEX WILL BE PLACED IN LOCATION LCINX AND ITS @A@@@@ . ADDRESS IVS )@@G@@N LOCATION LCINXA. @E@@@@ . ADDRESS OF INDEX BLOCK TO H2 OF INXPKT+VT )@@G@@1, INX BLK NUM TO @C@@@@ . H2 OF INXPKT. REL INDEX IN BLOCK TO INXREL. VU )@@G@@@]@@@@ . @G@@@@ . IUPDPT1 WILL CONTAIN THE RELATIVE LOCATION OFVV )@@G@@ BLOCK WITHIN @A@@@@ . TABLE INDEX BLOCK UPDATE TABLE @]@@@@VW )@@G@@LOCINX* . @C@@@@ SX,H2 X11,RET1 . $H LOCINX @G@@@@VX )@@G@@ SZ,S6 SW2 . $P RESET ZERO REC SWITCH VY )@@G@@@G@@@@LOCGT3 SA A3,LOCRCN . $P SAVE RECORD NUMBER WANTED VZ )@@G@@ @G@@@@ LA A4,RECNMC . $P CURRENT # OF RECORDSWA )@@G@@ TO A4 @G@@@@ TLE A4,A3 . $T REC # WANTED TBNUMW-1 @^@@@@ AA,U A3,1 . GC )@@G@@@G@@@@ TE A3,A1 . $T IS IT 1 OVER TBNUMW-1 GD )@@G@@ @E@@@@ ER ERR$ . $A YES,EXIT NO GE )@@G@@@C@@@@ LA A0,TDBLSW . @G@@@@ LAGF )@@G@@ A2,TOBF1A,A0 . $P ADDR OF TEMP BLOCK TO A2 @E@@@@ GG )@@G@@ J TBFGT4 . $J TBFGT4 @]@@@@ . GH )@@G@@@E@@@@ . SUBROUTINE TO ISSUE AN I/O FOR TEMP BLOCKS THEN WAIT @A@@@@GI )@@G@@ . UPON ENTRY, A1 HAS BLOCK NUMBER @C@@@@ . A2 HAS TEMP BLOGJ )@@G@@CK ADDRESS (BUFFER@C@@@@ . A3 HAS I/O FUNCTION CODE GK )@@G@@@]@@@@ . @G@@@@TBIOW* . $H TBIOW TGL )@@G@@EMP FILE I/O WITH WAIT @C@@@@ SX,H2 X11,RET3 . GM )@@G@@ @G@@@@ TP TIOPKT+3 . $P MAKE SURE TEMP I/O PGN )@@G@@KT IS FREE @A@@@@ ER WAIT$ .@G@@@@ TZGO )@@G@@,S1 TIOPKT+3 . $P MAKE SURE LAST I/O WAS OK @A@@@@ GP )@@G@@ J TIOERR @A@@@@ LA A4,A1 GQ )@@G@@@G@@@@ MSI,U A4,TBSECT . $P SECTOR NUMBER TO I/O PKT GR )@@G@@ @A@@@@ SA A4,TIOSECT .@G@@@@ SA GS )@@G@@ A2,TIOBUF . $P BUFFER ADDRESS TO TEMP I/O PKT @G@@@@ SAGT )@@G@@ A3,TIOFUNC . $P FUNCTION CODE TO TEMP I/O PKT @A@@@@ GU )@@G@@ LA,U A0,TIOPKT .@E@@@@ ER IO$ .GV )@@G@@ $W IO$ ISSUE THE I/O @G@@@@ TP TIOPKT+3 . $P MAGW )@@G@@KE SURE I/O PKT IS FREE @A@@@@ ER WAIT$ GX )@@G@@@G@@@@ TZ,S1 TIOPKT+3 . $P MAKE SURE LAST I/O IS OK GY )@@G@@ @A@@@@ J TIOERR @C@@@@ J GZ )@@G@@ *RET3 . $E EXIT @]@@@@ . @]@@@@$(2) @]@@@@HA )@@G@@ . @C@@@@IIOPKT I$OD 'I$FILE ',W$ IBSIZE,0 0@C@@@@HB )@@G@@TIOPKT I$OD 'T$FILE ',W$ TBSIZE,0 0@A@@@@IIOFUNC EQUF HC )@@G@@ IIOPKT+3,,S2 @A@@@@TIOFUNC EQUF TIOPKT+3,,S2 @A@@@@IIOWRDHD )@@G@@S EQUF IIOPKT+4,,H1 @A@@@@TIOWRDS EQUF TIOPKT+4,,H1 HE )@@G@@@A@@@@IIOBUF EQUF IIOPKT+4,,H2 @A@@@@TIOBUF EQUF TIOPHF )@@G@@KT+4,,H2 @A@@@@IIOSECT EQUF IIOPKT+5 @A@@@@TIOSECT EQHG )@@G@@UF TIOPKT+5 @]@@@@ . @A@@@@ASGIA '@ASG,A I$FIHH )@@G@@LE .' @C@@@@ASGIT '@ASG,T I$FILE,//POS/100 .' @A@@@@HI )@@G@@ASGTA '@ASG,A T$FILE .' @C@@@@ASGTT '@ASG,T T$FILE,//HJ )@@G@@POS/400 .' @]@@@@ . @G@@@@SW1* + 0 HK )@@G@@ . SWITCH, SEE EQUF DESCRIPTION @G@@@@SW2* + 0 HL )@@G@@ . SWITCH, SEE EQUF DESCRIPTION @E@@@@WRITSW EQUF HM )@@G@@ SW1,,S1 . SEQ WRITE MODE =0 @G@@@@IDFASW EQUF SW1,HN )@@G@@,S2 . INDEX & DATA FILES ASSIGNED @G@@@@CRETSW EQUF HO )@@G@@ SW1,,S3 . TEMP FILE CREATED, NO MORE SEQ @G@@@@FIBLSW EQHP )@@G@@UF SW1,,S4 . FIRST INDEX BLOCK TO WRITE @G@@@@FTBLSWHQ )@@G@@ EQUF SW1,,S5 . FIRST TEMP FILE BLOCK TO WRITE @G@@@@HR )@@G@@FLSHSW EQUF SW1,,S6 . SWITCH TO INDICATE EDIT BUF FLUSH HS )@@G@@@E@@@@REOFSW EQUF SW2,,S1 . READ END OF FILE SWITCH@G@@@@HT )@@G@@ROVFSW EQUF SW2,,S2 . SEQUENTIAL READ OVERFLOW SWITCH HU )@@G@@@G@@@@TROFSW EQUF SW2,,S3 . TEMP FILE READ END OF FILE SWHV )@@G@@ @G@@@@TEOFSW EQUF SW2,,S5 . TO INDICATE TEMP FILHW )@@G@@E EOF @G@@@@LCZESW EQUF SW2,,S6 . FOR RCD#0 WANTHX )@@G@@ED, BY LOCINX @G@@@@IDBLSW* + 0 . INDEX WRITHY )@@G@@E DBLE BUF SW @G@@@@IBNUMW* + 0 . INDEXHZ )@@G@@ WRITE BLOCK NUMBER, SEQ WRITE@G@@@@IBNUMWO* + 0 IA )@@G@@ . CURRENT # OF IBLKS INCL OVF @G@@@@IBRELW* + 2 IB )@@G@@ . REL LOCATION IN INDEX WRITE BLOCK @G@@@@IWADDR* + 0 IC )@@G@@ . ADDRESS OF CUR INDEX WRITE BLOCK @G@@@@IBWRSW* + ID )@@G@@ 0 . ANY WRITE IN CUR IDX BLOCK SW @G@@@@ISECT* + IE )@@G@@ 0 . SECTOR NUMBER OF WRITTEN INDEX BLK @G@@@@TDBLSWIF )@@G@@* + 0 . TEMP FILE WRITE DBLE BUF SWITCH @G@@@@IG )@@G@@TBNUMW* + 0 . TEMP FILE BLOCK NUMBER, SEQ WRITE IH )@@G@@@G@@@@TBRELW* + 0 . REL LOCATION IN TEMP WRITE BLII )@@G@@OCK @G@@@@TWADDR* + 0 . ADDRESS OF CURRENT TEMPIJ )@@G@@ WRITE BLOCK@G@@@@TBWRSW* + 0 . ANY WRITE IN CUR IK )@@G@@TEMP BLOCK SW @G@@@@TSECT* + 0 . SECTOR NUMBIL )@@G@@ER OF WRITTEN TEMP BLOCK@G@@@@RECNMC* + 0 . CURREIM )@@G@@NT NUMBER OF RECORDS IN FILE @G@@@@RECNMW* + 0 .IN )@@G@@ # OF RECORDS FOR SEQ WRITE @E@@@@RECLEN* + 0 IO )@@G@@ . RECORD LENGTH @E@@@@RECLN1* + 0 IP )@@G@@ . REC LENGTH + EXTRAW @E@@@@RECADD* + 0 . RECORIQ )@@G@@D ADDRESS @G@@@@INDEX* + 0 . RECORD INDEIR )@@G@@X FORMED BY TEMP A/M @G@@@@RNDIDX* + 0 . POIS )@@G@@INTER TO RAND CORE INDEX TABLE@^@@@@ZEROS* + 0 @G@@@@RNDADDIT )@@G@@* + 0 . ADDR OF RAND CORE INDEX TABLE @]@@@@IU )@@G@@$(6) @E@@@@IBUF* . ADDR OF INDEX BUFFER IV )@@G@@ @E@@@@IBUF1A* + 0 . ADDR OF WRITE INDEX BUFFER 1IW )@@G@@@E@@@@IBUF2A* + 0 . ADDR OF INDEX BUFFER 2 @G@@@@IX )@@G@@IOBF1A* + 0 . ADDR OF OVERFLOW INDEX BUFFER 1 IY )@@G@@@G@@@@IOBF2A* + 0 . ADDR OF OVERFLOW INDEX BUFFER 2 IZ )@@G@@ @G@@@@TBUF* . ADDR OF TEMP FILE EDIT BUFFEJA )@@G@@RS @G@@@@TBUF1A* + 0 . ADDR OF TEMP FILE BUFFJB )@@G@@ER 1 (SEQ READ) @G@@@@TBUF2A* + 0 . ADDR OF TEMP FILJC )@@G@@E BUFFER 2 (SEQ READ) @G@@@@TOBF1A* + 0 . ADDR OF WRJD )@@G@@ITE OVF TEMP BUFFER 1 (SEQ) @G@@@@TOBF2A* + 0 . ADDRJE )@@G@@ OF WRITE OVF TEMP BUFFER 2 (SEQ) @^@@@@RETURN* + 0 @^@@@@JF )@@G@@RET1* + 0 @^@@@@RET2* + 0 @^@@@@RET3* + JG )@@G@@ 0 @]@@@@$(4) @E@@@@IBNUMR* + 0 . # OFJH )@@G@@ INDEX BLOCKS READ @G@@@@IBRELR* + 2 . REL LOCATIJI )@@G@@ON IN INDEX READ BLOCK @G@@@@IRADDR* + 0 . ADDRJJ )@@G@@ESS OF CUR INDEX BLOCK READ @G@@@@SQRORB* + 0 JK )@@G@@. # OF ORIGINAL BLOCK BEFORE OVERFLOW @G@@@@SQRRIN* + 0 JL )@@G@@ . # OF REMAINING INDICES IN CURRENT BLOCK @E@@@@RINDEX* + JM )@@G@@ 0 . INDEX OF RECORD TO BE READ @G@@@@IBRSTA* + 0 JN )@@G@@ . NEXT BLOCK NUMBER FOR WHICH A READ START@G@@@@IBONMR* + JO )@@G@@ 0 . # OF INDEX OVF BLOCKS GENERATED @G@@@@IBONRR* + JP )@@G@@ 0 . # OF INDEX OVF BLOCKS READ (SEQ READ) @E@@@@TBNUMRJQ )@@G@@* + 0 . # OF TEMP FILE BLOCKS READ @G@@@@TBONRR* + JR )@@G@@ 0 . BLK # OF TEMP OVERFLOW BLOCK READ @G@@@@TBRELRJS )@@G@@* + 0 . REL LOCATION WITHIN TEMP FILE BLOCK @E@@@@JT )@@G@@TRADDR* + 0 . ADDRESS OF TEMP FILE BLOCK @G@@@@TORELRJU )@@G@@* + 0 . RELATIVE LOCATION WITHIN TEMP BLOCK @G@@@@JV )@@G@@TBRSTA* + 0 . REL BLOCK NUMBER FOR WHICH READ STARTED JW )@@G@@@E@@@@RECNMR* + 0 . # OF RECORDS READ @G@@@@JX )@@G@@CURREC* + 0 . CURRENT RECORD NUMBER JY )@@G@@@E@@@@SECTAD* + 0 . ADDRESS OF SECTOR @]@@@@JZ )@@G@@$(10) @G@@@@TBSQWN* + 0 . # OF TEMP BLKS WRKA )@@G@@ITTEN BY SEQ WRITE@G@@@@INXLOW* + 0 . # OF 1ST INKB )@@G@@DEX IN CONCERNED BLOCK @G@@@@INXINT* + 0 . # OF KC )@@G@@INDICES IN INDEX BLK+ OVF @G@@@@LOCRCN* + 0 .KD )@@G@@ RECORD NUMBER AS SUPPLIED LOCINX @G@@@@LCINX* + 0 KE )@@G@@ . INDEX LOCATED BY LOCINX ROUTINE @G@@@@LCINXA* + 0 KF )@@G@@ . ADDRESS OF INDEX LOCATED BY LCINX @I@@@@IFNDOOVF* + KG )@@G@@ 0 . SW = 1 IF INDEX IS FOUND IN OVERFLOW @I@@@@KH )@@G@@ . AREA. IT IS RESET UPON ENTRY TO KI )@@G@@INXBUF @G@@@@RNDSAV* + 0 . TOSAVE ADDR OF RNKJ )@@G@@D TABLE ENTRY @G@@@@INXPKT* RES 2 . PACKET TO CKK )@@G@@ALL INDEX BUFFER ROUTINE@E@@@@INXREL* + 0 . REL IKL )@@G@@NDEX WITHIN BLOCK @A@@@@ .@G@@@@TEMPKTKM )@@G@@* RES 2 . PACKET TO CALL TEMP FILE BUF ROUTNE@^@@@@KN )@@G@@RETN1* + 0 @G@@@@IBFENT* + 0 . # OF KO )@@G@@ENTRIES IN INDEX EDIT BUFFERS @G@@@@IBRTAD* + 0 KP )@@G@@ . INDEX BUFFER CORE REF TABLE @G@@@@IOVFRAD* + 0 KQ )@@G@@ . ADDR OF OVF INDEX REF TABLE @G@@@@IUPDPT1* + 0 KR )@@G@@ . POINTER TO UPDATE INDEX TABLE @G@@@@IUPDAD* + KS )@@G@@ 0 . ADDR OF INDEX BLOCK INDIC UPDATE@G@@@@IBFPT1* + KT )@@G@@ 0 . POINTER TO INDEX EDIT BUF TABLE @G@@@@TBFENTKU )@@G@@* + 0 . # OF ENTRIES IN TEMP EDIT BUFFERS @G@@@@KV )@@G@@TBRTAD* + 0 . TEMP BUFFER CORE REF TABLE KW )@@G@@@G@@@@TBFPT1* + 0 . POINTER TO TEMP EDIT BUF TABLKX )@@G@@E @G@@@@LOCSWB* + 0 . SECTOR WITHIN TEMP BLK KY )@@G@@FOR LOCREC @G@@@@LOCBLK* + 0 . TEMP BLOCK NUMBERKZ )@@G@@ FOR LOCREC @I@@@@RMR1SW* + 0 . TO INDICLA )@@G@@ATE RMR WITHOUT REC DELIVERY @^@@@@ END ___ . LB )@@G@@SECTOR NUMBER OF WRITTEN INDEX BLK @G@@@@TDBLSW* + 0 LC )@@G@@ . TEMP FILE WRITE DBLE BUF SWITCH @G@@@@TBNUMW* + 0 LD )@@G@@*[@@@@*SDFF*@[@@@@$(1) @#@@@@ AXR$ @[@@@@ . @D@@@@TF$C* LE )@@G@@. TEMPORARY FILE ACCESS METHOD CHANGE COMMAND @^@@@@EXTRAW EQU LF )@@G@@ 0 @C@@@@ SX,H2 X11,RETURN . $H TF$C @G@@@@ LG )@@G@@ SLJ FRSTED . $P FLUSH SQW INDEX BUF ON 1ST EDIT @[@@@@LH )@@G@@ . @F@@@@ . PREPARE TO BUILD PACKET TO CALL RANDOM READ FOR THIS RECOLI )@@G@@RD @C@@@@ SX,H2 X10,SAVX10 . $P SAVE X10@G@[@@ LJ )@@G@@ LA,H1 A0,0,X10 . $P REC # TO BE CHANGED TO A0 @G@@@[LK )@@G@@ LA A0,0,X10 . $P REC # TO BE CHANGED TO A0 LL )@@G@@@F@@@@ LX,U X10,RNDPKT . $P ADDR OF RNDPKT TO X10 LM )@@G@@@E@[@@ SA,H1 A0,0,X10 . $P REC # TO RNDPKT @E@@@[LN )@@G@@ SA A0,0,X10 . $P REC # TO RNDPKT @G@@@@ LO )@@G@@ LMJ X11,TF$RMR1 . $W TF$RMR1 ISSUE RANDOM READ @D@@@@LP )@@G@@ TZ,T1 RNDPKT+2 . $T SUCCESSFUL @E@@@@ J LQ )@@G@@ DLTER1 . $A NO,DLTER1 YES @G@[@@ LA,H2 LR )@@G@@ A3,0,X10 . $P ORIGINAL RECORD LENGTH TO A3 @G@@@[ LALS )@@G@@,H2 A3,2,X10 . $P ORIGINAL RECORD LENGTH TO A3 @G@@@@ LT )@@G@@ AA,U A3,EXTRAW . $P RCD LENGTH + EXTRAW TO A3 @A@@@@LU )@@G@@ LA A0,SAVX10 .@E@[@@ LA,H2 A4,0,A0 LV )@@G@@ . $P NEW LENGTH TO A4 @E@@@[ LA,H2 A4,2,A0 .LW )@@G@@ $P NEW LENGTH TO A4 @G@@@@ TG A3,A4 . $T OLLX )@@G@@D RCD SIZE < NEW LENGTH @E@@@@ J CHNGT1 .LY )@@G@@ $A NO,CHNGT1 YES @F@@@@ LA A1,A4 . $P NELZ )@@G@@W RECORD LENGTH TO A1 @E@@@@ AA,U A1,1 . $P ADMA )@@G@@D 1 FOR REC HDR @F@@@@ SA A1,RECLEN . $P TOTAL LEMB )@@G@@NGTH TO RECLEN @F@@@@ LA,H2 A2,1,A0 . $P ADDR OF MC )@@G@@NEW RECORD TO A2 @F@@@@ SA A2,RECADD . $P RECORD AMD )@@G@@DDRESS TO RECADD @C@@@@CHNLP1 . CHECK IF THERE IS SPACE IN TEMP FILE ME )@@G@@@G@@@@ TNZ TBWRSW . $ ANYTHING WRITTEN IN TEMP BMF )@@G@@LOCK @G@@@@ LMJ X11,TINIT . $ INITIALIZE TEMP BLOCMG )@@G@@K IF NOTHING@G@@@@ LMJ X11,TSPACE . $T ANY SPACE LEFTMH )@@G@@ IN TEMP FILE @E@@@@ JZ A2,CHNGT2 . $A YES,CHNGMI )@@G@@T2 NO @E@@@@ LMJ X11,TBWRT1 . $P WRITE RECORD OMJ )@@G@@UT @C@@@@ J CHNLP1 . $J CHNLP1 @A@@@@CHNGT2MK )@@G@@ . FOUND SPACE IN TEMP BLOCK @G@@@@ LX X9,TWADDR .ML )@@G@@ $P ADDRESS OF TEMP BLOCK TO X9 @G@@@@ AX X9,TBRELW MM )@@G@@ . $P X9 POINTS TO NEW LOC IN TEMP BLK@E@@@@ LA A3,RMN )@@G@@ECLEN . $P RECORD LENGTH TO A3 @G@@@@ SA,H2 A3,0,X9 MO )@@G@@ . $P RCD LGTH TO H2 OF TEMP ENTRY @F@@@@ AA,U A3,EMP )@@G@@XTRAW . $P RCD LGTH + EXTRAW TO A3 @G@@@@ SA A3,RMQ )@@G@@ECLN1 . $P RCD LGTH + EXTRAW TO RECLN1 @G@@@@ SA,H1 MR )@@G@@ A3,0,X9 . $P RCD LGTH + EXTRAW TO H1 OF TBUF @E@@@@ LAMS )@@G@@ A3,RECLEN . $P RECORD LENGTH TO A3 @G@@@@ AX,U MT )@@G@@ X9,1 . $P RECORD DESTINATION ADDR TO X9 @A@@@@ ANMU )@@G@@A,U A3,1 .@E@@@@ LR R1,A3 . $P REMV )@@G@@CORD LENGTH TO R1 @G@@@@ LX X8,RECADD . $P RECORD OMW )@@G@@RIGINATING ADDR TO X8 @G@@@@ SLJ RTRANS . $W RTMX )@@G@@RANS TRANSFER RCD TO TEMP BLK @G@@@@ LMJ X11,FRMINX .MY )@@G@@ $W FRMINX FORM INDEX FOR RECORD @A@@@@ LA A5,TBRELW MZ )@@G@@ .@A@@@@ AA A5,RECLN1 .@E@@@@ SA NA )@@G@@ A5,TBRELW . $P UPDATE TBRELW @A@@@@ LA,U A0,1NB )@@G@@ .@D@@@@ SA A0,TBWRSW . $P SET TBWRSW NC )@@G@@@D@@@@ . PREPARE TO CHANGE INDEX FOUND BY THE NEW INDEX @D@@@@ ND )@@G@@ SLJ INDXUPD . $W INDXUPD @E@@@@ LA NE )@@G@@ A0,LCINXA . $P INDEX ADDRESS TO A0 @F@@@@ LA A1,INF )@@G@@NDEX . $P NEWLY FORMED INDEX TO A1 @G@@@@ SA A1,0NG )@@G@@,A0 . $P NEWLY FORMED INDEX TO INDEX BLK @A@@@@ LX NH )@@G@@ X10,SAVX10 .@F@@@@ LX,H2 X9,1,X10 . $P ADDR OF NI )@@G@@NEW RECORD TO X9 @D@@@@ LA A2,0,X9 . $P DBP TO ANJ )@@G@@2 @E@@@@ SA A2,1,A0 . $P DBP TO INDEX BLK NK )@@G@@@C@@@@ J DLTEX0 . $J DLTEX0 @[@@@@ . @F@@@@NL )@@G@@CHNGT1 . OLD RECORD HAS SUFFICINT SPACE, REPLACE RECORD AND DBP @F@@@@NM )@@G@@ LA A1,A4 . $P NEW REC LENGTH TO A1 @E@@@@NN )@@G@@ AA,U A1,1 . $P ADD 1 FOR REC HEADER@A@@@@ NO )@@G@@ SA A1,RECLEN @F@@@@ LX,H2 X9,TEMPKT .NP )@@G@@ $P RECORD HDR ADDR TO X9 @G@@@@ SA,H2 A1,0,X9 .NQ )@@G@@ $P NEW RECORD LENGTH TO REMP BLK @G@@@@ AX,U X9,1 NR )@@G@@ . $P RECORD DESTINATION ADDRESS TO X9@A@@@@ ANA,U A1,1NS )@@G@@ .@E@@@@ LR R1,A1 . $P RECORD LENGTH TO R1NT )@@G@@ @A@@@@ LX X10,SAVX10 .@F@@@@ LX,H2 NU )@@G@@ X8,1,X10 . $P NEW RECORD ADDRESS TO X8 @D@@@@ LA NV )@@G@@ A5,0,X8 . $P DBP TO A5 @F@@@@ SLJ RTRANS NW )@@G@@ . $W RTRANS TRANSFER RECORD @D@@@@ SLJ INDXUPD NX )@@G@@ . $W INDXUPD @E@@@@ LA A0,LCINXA . $P INNY )@@G@@DEX ADDRESS TO A0 @F@@@@ SA A5,1,A0 . $P CHANGE DNZ )@@G@@ATA BASE POINTER @]@@@@DLTEX0 . @G@@@@ SZ,T1 2,X10 OA )@@G@@ . $P SET ZERO RETURN CODE (SUCCESSFUL@C@@@@ J *RETOB )@@G@@URN . $E EXIT @]@@@@DLTER1 . @A@@@@ LA,U A0,1OC )@@G@@ .@E@@@@ SA,T1 A0,2,X10 . $P SET NONZERO STOD )@@G@@ATUS @C@@@@ J *RETURN . $E EXIT @[@@@@ . OE )@@G@@@[@@@@ . @B@@@@INDXUPD* + 0 . @[@@@@ . OF )@@G@@@E@@@@ . SUBROUTINE TO MARK THAT AN INDEX BLOCK HAS BEEN MODIFIED @C@]@@OG )@@G@@ . POINTER TO ENTRY IN IUPDTAB IS IN IUPDPT1 @E@@@] . POINTER TO ENTROH )@@G@@Y IN INDEX UPDATE TABLE IS IN IUPDPT1 @[@@@@ . @B@@@@ DSOI )@@G@@ A0,UPDSAVE . @H@@@@ TZ IFNDOOVF OJ )@@G@@ . $T WAS LAST BLOCK FOUND ON OVERFLOW @E@@@@ J UPDROK )@@G@@ET . $A YES,UPDRET NO @E@@@@ LA A0,IUPDPT1OL )@@G@@ . REL ENTRY LOC TO A0 @B@@@@ TG,U A0,IBNUM OM )@@G@@ . @B@@@@ ER ERR$ . @G@]@@ AAON )@@G@@,U A0,IUPDTAB . ABSOLUTE ENTRY ADDR TO A0 @G@@@] OO )@@G@@ AA A0,IUPDAD . ABSOLUTE ENTRY ADDR TO A0 @B@@@@OP )@@G@@ LA,U A1,7 . @F@@@@ SA A1,0OQ )@@G@@,A0 . MARK ENTRY AS UPDATED @[@@@@ . @[@@@@ . @]@@@@OR )@@G@@UPDRET . @[@@@@ . @[@@@@ . @B@@@@ DL A0,UPDSAVEOS )@@G@@ . @B@@@@ J *INDXUPD . @[@@@@ . OT )@@G@@@[@@@@/ @[@@@@ . @[@@@@ . @[@@@@$(2) @G@@@@UPDSAVE RES OU )@@G@@ 2 . TO SAVE REGISTERS BY INDXUPD @[@@@@ . @G@@@@OV )@@G@@RETURN + 0 . RETURN ADDRESS FOR CHANGE COMMAND OW )@@G@@@^@@@@SAVX10 + 0 @F@#@@CHBUFF* RES 326 . BUFFOX )@@G@@ER TO HOLD RECORD DELIVERED @G@[@@RNDPKT* + 0 .OY )@@G@@ RCD# IN H1, LENGTH IN H2 @C@@@[RNDPKT* + 0 OZ )@@G@@ . RCD# @G@#@@ + CHBUFF . BUFFER ADDRPA )@@G@@ESS FOR RECORD DELIVERY @G@@@# + 0 . BUFFEPB )@@G@@R ADDRESS FOR RECORD DELIVERY @E@[@@ + 0 .PC )@@G@@ STATUS IN T1 @F@@@[ + 0 . STATUPD )@@G@@S IN T1, LENGTH IN H2 @#@@@@ END ___ TEMP FILE @E@@@@PE )@@G@@*[@@@@*SDFF*@[@@@# . @#@@@# AXR$ @[@@@#$(1) @D@@@#TF$MVEPF )@@G@@* . TEMP FILE ACCESS METHOD MOVE COMMAND @[@@@# . @C@@@# PG )@@G@@ SX,H2 X11,RETURN . $H TF$MVE @C@@@# SX X10,PH )@@G@@X10SAV . $P SAVE X10@G@@@# SLJ FRSTED . $P FLPI )@@G@@USH SQW INDEX BUF ON 1ST EDIT @G@@@# LMJ X11,CHRNGE .PJ )@@G@@ $W CHRNGE CHECK IF RECORDS IN RANGE@G@@@# TZ A2 PK )@@G@@ . $T RCD# TO MOVE AFTER OUT OF RNGE @E@@@# J MVEEPL )@@G@@R1 . $A NO,MVEER1 YES @B@@@# LA A0,3,X10 PM )@@G@@ . $ @E@@@# SA A0,MVSAV2 . $P RCD#3 TO (MVPN )@@G@@SAV2) @A@@@# LA A1,4,X10 .@A@@@# ANA PO )@@G@@ A1,A0 .@G@@@# AA,U A1,1 . $P NUMBER OPP )@@G@@F RECS TO BE MOVED TO A1@G@^@# SA,H2 A1,MVSAV2 . $P # PQ )@@G@@OF RECS TO MOVE TO H2(MVSAV2) @G@@@^ SA A1,NUMMVE .PR )@@G@@ $P # OF RECS TO MOVE TO (NUMMVE) @A@@@# LA A2,0,X10 PS )@@G@@ .@E@@@# SA A2,MVSAV1 . $P RCD#1 TO MVSAV1 PT )@@G@@@[@@@# . @C@@@# . SET UP LOOP FOR MOVING RECORDS ONE BY ONE @]@@@#PU )@@G@@MVELP1 @G@^@# TNZ,H2 MVSAV2 . $T DONE WITH ALL PV )@@G@@RECORDS TO MOVE @G@@@^ TNZ NUMMVE . $T DONE WITPW )@@G@@H ALL RECORDS TO MOVE @E@@@# J MVEDN1 . $A YEPX )@@G@@S,MVEDN1 NO @G@ @# LX,U X10,RNDPKT . $P ADDR OF PY )@@G@@RANDOM READ PKT TO X10 @G@@@ LX,U X10,RMVPKT . $P ADPZ )@@G@@DR OF RANDOM READ PKT TO X10 @F@@@# LA A0,MVSAV2 .QA )@@G@@ $P RECORD # TO MOVE TO A0 @G@ @# SA A0,0,X10 .QB )@@G@@ $P RECORD # TO MOVE TO RNDPKT @G@@@ SA A0,0,X10 QC )@@G@@ . $P RECORD # TO MOVE TO RMVPKT @F@@@# LMJ X11,QD )@@G@@TF$RMR . $W TF$RMR ISSUE RANDOM READ @G@ @# QE )@@G@@ . RECORD DELIVERED TO CHBUFF @F@@@ QF )@@G@@ . RECORD DELIVERED TO RDA @E@ @# TZ,T1 QG )@@G@@ RNDPKT+2 . $T SUCCESSFUL @D@@@ TZ,T1 RMVPQH )@@G@@KT+2 . $T SUCCESSFUL @E@@@# J MVEER1 .QI )@@G@@ $A NO,MVEER1 YES @C@ @^ L$SNAP 'RNDPKT',0,4,RNDPKT QJ )@@G@@ @B@B@ L$SNAP 'RMVPKT',0,4,RMVPKT @B@@@B . L$QK )@@G@@SNAP 'RMVPKT',0,4,RMVPKT @[@@@# . @E@@@# . PREPARE TO DELETE RECQL )@@G@@ORD JUST READ TO FREE INDEX SPACE @[@@@# . @F@@@# LX,U QM )@@G@@ X10,DLTPKT . $P ADDR OF DLTPKT TO X10 @A@ @# LA QN )@@G@@ A1,RNDPKT .@A@@@ LA A1,RMVPKT .@G@@@# QO )@@G@@ SA A1,3,X10 . $P RECORD NUMBER TO DELETE TO PKT @A@@@#QP )@@G@@ SA A1,4,X10 .@E@@@# LMJ X11,TF$DLTQQ )@@G@@ . $W TF$DLT DELETE RECORD@B@@@# TZ,T1 DLTPKT+2 QR )@@G@@ . @B@@@# J MVEER1 . @[@@@# . @C@@@#QS )@@G@@ . FIGURE OUT EFFECT OF DELETE ON RECORD NUMBERS@[@@@# . @E@ @# QT )@@G@@ LA A2,RNDPKT . $P RECORD DELETED TO A2@E@@@ LAQU )@@G@@ A2,RMVPKT . $P RECORD DELETED TO A2@E@@@# TG QV )@@G@@ A2,MVSAV1 . $T RCD# DELETED < RCD#1@E@@@# J MVEGQW )@@G@@T2 . $A NO,MVEGT2 YES,MVEGT1@ @@@# J MVEGT1 QX )@@G@@@A@@@#MVEGT1 LA A3,MVSAV1 .@A@@@# ANA,U A3,1QY )@@G@@ .@G@@@# SA A3,MVSAV1 . $P DECREMENT RCD#QZ )@@G@@1, WHERE TO INSERT@F@@@#MVEGT2 . PREPARE TO INSERT RECORD IN FILE AFTER RA )@@G@@RCD# IN MVSAV1 @[@@@# . @ @@@# . SET UP THE INSERT PACKET @F@@@#RB )@@G@@ LX,U X10,IAFPKT . $P ADDR OF IAFPKT TO X10 @A@@@#RC )@@G@@ LA A4,MVSAV1 .@G@@@# SA A4,0,X10 RD )@@G@@ . $P RCD# TO INSERT AFTER H1(IAFPKT) @G@ @# LA,H2 A5,RRE )@@G@@NDPKT+2 . $P LENGTH OF RECORD TO A5 @F@@@ LA,H2 RF )@@G@@ A5,RMVPKT+2 . $P LENGTH OF RECORD TO A5 @G@@@# SA,H2 RG )@@G@@ A5,2,X10 . $P LENGTH OF RECORD TO H2(IAFPKT) @E@@@# LMRH )@@G@@J X11,TF$IA . $W TF$IA INSERT RECORD @A@@@# TZ,T1 RI )@@G@@ 2,X10 .@A@@@# J MVEER1 .@B@B@^ RJ )@@G@@ L$SNAP 'DLTMVE',0,12,DLTPKT @B@@@B . L$SNAP 'DLTMVE',0RK )@@G@@,12,DLTPKT @G@@@# LA A5,MVSAV1 . $P RCD# TO INSERTRL )@@G@@ AFTER TO A5 @G@@@# TLE A5,MVSAV2 . $T RCD# TO RM )@@G@@INSERT <= INSERT RCD# @E@@@# J MVEGT4 . $A NORN )@@G@@,MVEGT2 YES,MVEGT3@ @@@# J MVEGT3 @C@@@#MVEGT4 . INCRO )@@G@@REMENT RECORD TO INSERT AFTER @G@@@# AA,U A5,1 RP )@@G@@ . $P INCREMEN RCD# TO INSERT AFTER @G@@@# SA A5,MRQ )@@G@@VSAV1 . $P NEW RCD# TO INSERT AFTER MVSAV1@A@@@# LA RR )@@G@@ A1,MVSAV2 .@A@@@# AA,U A1,1 .@G@@@# RS )@@G@@ SA A1,MVSAV2 . $P INCREMENT NEXT RECORD # TO MOVE @ @@@#RT )@@G@@ J MVEGT5 @]@@@#MVEGT3 . @A@@@# LA RU )@@G@@ A1,MVSAV1 .@A@@@# AA,U A1,1 .@G@@@# RV )@@G@@ SA A1,MVSAV1 . $P INCREMENT RCD= TO INSERT AFTER @]@@@#RW )@@G@@MVEGT5 . @A@^@# LA,H2 A0,MVSAV2 .@A@@@^ LARX )@@G@@ A0,NUMMVE .@A@@@# ANA,U A0,1 .@G@^@#RY )@@G@@ SA,H2 A0,MVSAV2 . $P DECREMENT # OF RECORDS TO MOVE RZ )@@G@@@G@@@^ SA A0,NUMMVE . $P DECREMENT # OF RECORDS TO SA )@@G@@MOVE @ @@@# J MVELP1 @A@@@#MVEDN1 . NO MORE RECORDSSB )@@G@@ TO MOVE @D@@@# LX X10,X10SAV . $P RESTORE X10 SC )@@G@@@F@@@# SZ,T1 2,X10 . $P STORE SUCCESSFUL RETURN SD )@@G@@@A@@@# LA A0,0,X10 .@G@@@# SA A0,1SE )@@G@@,X10 . $P RETURN FINAL RCD# TO CALLER SAME@B@@@A SZ SF )@@G@@ RDA . @C@A@ _ SZ RDA . SG )@@G@@ @B@@@ SZ RDALN . @C@@@# J SH )@@G@@ *RETURN . $E EXIT @]@@@#MVEER1 . @D@@@# LXSI )@@G@@ X10,X10SAV . $P RESTORE X10 @^@@@# LA,U A0,1SJ )@@G@@@F@@@# SA,T1 A0,2,X10 . $P SET ERROR RETURN CODE SK )@@G@@@B@@@ SZ RDA . @B@@@ SZ SL )@@G@@ RDALN . @C@@@# J *RETURN . $E EXSM )@@G@@IT @[@@@# . @G@@@# . SUBROUTINE TO CHECK IF RCD# TO MOVE AFTER ISN )@@G@@S OUT OF RANGE OF @^@@@# . RECORDS TO BE MOVED. @F@@@# . UPON RETUSO )@@G@@RN, A2 CONTAINS ERROR CODE (0 = RCD# OUT OF RANGE) @[@@@# . @C@@@#SP )@@G@@CHRNGE SX,H2 X11,RET1 . $H CHRNGE @D@@@# LA SQ )@@G@@ A0,0,X10 . $P RCD#1 TO A0 @D@@@# LA A1,3,X10 SR )@@G@@ . $P RCD#3 TO A1 @D@@@# LA A2,4,X10 . $P RCSS )@@G@@D#4 TO A2 @E@@@# TLE A2,A1 . $T RCD#3 <= RCD#4ST )@@G@@ @E@@@# J CHREX1 . $A NO,CHREX1 YES SU )@@G@@@E@@@# TG A0,A1 . $T RCD#3 > RCD#1 @E@@@#SV )@@G@@ J CHRGT1 . $A NO,CHRGT1 YES,CHREX0@ @@@# SW )@@G@@ J CHREX0 @]@@@#CHRGT1 . @E@@@# TLE A2,ASX )@@G@@0 . $T RCD#1 <= RCD=4 @E@@@# J CHREX0 SY )@@G@@ . $A NO,CHREX0 YES @G@@@#CHREX1 LA,U A2,1 .SZ )@@G@@ $P RETURN NONZERO ERROR CODE @C@@@# J *RET1 TA )@@G@@ . $E EXIT @F@@@#CHREX0 SZ A2 . $P RETURN ZTB )@@G@@ERO ERROR STATUS @C@@@# J *RET1 . $E EXIT TC )@@G@@@[@@@#$(2) @C@@@ RMVPKT* + 0 . RCD# @G@@@ TD )@@G@@ + RDA . BUFFER ADDRESS FOR DELIVERY TE )@@G@@@G@@@ + 0 . STATUS IN T1, LENGTH IN H2TF )@@G@@ @E@@@#DLTPKT* + 0 . # OF RECORDS DELETED TG )@@G@@@B@@@# + 0 . RCD#2 @E@@@# + TH )@@G@@ 0 . T1 HAS STATUS (0=SUCCESSFUL)@C@@@# + 0 TI )@@G@@ . RCD#3 @C@@@# + 0 . RCTJ )@@G@@D#4 @D@@@#IAFPKT* + 0 . RCD# TO INSERT AFTER @C@ @#TK )@@G@@ + CHBUFF RECORD ADDRESS @C@@@ + TL )@@G@@ RDA RECORD ADDRESS @G@@@# + 0 . T1 HTM )@@G@@AS STATUS (0=SUCCESSFUL), H2 LENGTH @E@@@#MVSAV1 + 0 TN )@@G@@. HAS RECORD # TO MOVE AFTER @G@@@#MVSAV2 + 0 . HASTO )@@G@@ RCD3 FROM PACKET FOR LOOP CONTROL @E@@@^NUMMVE + 0 TP )@@G@@ . # OF RECORDS TO MOVE@C@@@#X10SAV + 0 . TO STQ )@@G@@AVE X10 @^@@@#RET1 + 0 @^@@@#RETURN + 0 TR )@@G@@@[@@@# . @#@@@# END ___ TG A2,MVSAV1 . $T RCTS )@@G@@D# DELETED < RCD#1@E@@@# J MVEGT2 . $A NO,MVEGTTT )@@G@@*[@@@@*SDFF*@C@@@@ . TEMPORARY FILE ACCESS METHOD COPY COMMAND @[@@@@TU )@@G@@ . @#@@@@ AXR$ @[@@@@$(1) @C@@@@TF$CPY* TV )@@G@@ . $H TF$CPY @A@@@@ SX,H2 X11,RETURN .@C@@@@TW )@@G@@ SX X10,X10SAV . $P SAVE X10@G@@@@ SLJ TX )@@G@@ FRSTED . $P FLUSH SQW INDEX BUF ON 1ST EDIT @E@[@@ LATY )@@G@@,H1 A0,1,X10 . $P RCD#3 TO A0 @D@@@[ LA TZ )@@G@@ A0,3,X10 . $P RCD#3 TO A0 @E@[@@ LA,H2 A1,1,X10 UA )@@G@@ . $P RCD#4 TO A1 @D@@@[ LA A1,4,X10 .UB )@@G@@ $P RCD#4 TO A1 @C@[@@ LA,H1 A2,0,X10 . $P RCD#1 TO A2 UC )@@G@@@C@@@[ LA A2,0,X10 . $P RCD#1 TO A2 @G@@@@ SAUD )@@G@@,H2 A2,CPSAV1 . $P RCD#1 TO CPSAV1, RCD# TO INSERT AFTER@E@@@@ UE )@@G@@ TLE A1,A0 . $T RCD#3 <= RCD#4 @E@@@@ J UF )@@G@@ CPYER1 . $A NO,CPYER1 YES @D@@@@ TLE UG )@@G@@ A0,A2 . $T RCD#1 <= RCD#3 @E@@@@ J CPYGT1 UH )@@G@@. $A NO,CPYGT1 YES,CPYGT2 @A@@@@ J CPYGT2 . UI )@@G@@@]@@@@CPYGT1 . @D@@@@ TLE A2,A1 . $T RCD#4 <= RCD#UJ )@@G@@1 @C@@@@ J CPYER1 . $A NO,CPYER1 YES@C@@@@ UK )@@G@@ SZ CPYSW1 . $P RESET CPYSW1 @C@@@@ J CPYGUL )@@G@@T3 . $J CPYGT3 @C@@@@CPYGT2 LA,U A5,1 . $P SET CPYUM )@@G@@SW1 @A@@@@ SA A5,CPYSW1 .@]@@@@CPYGT3 . @[@@@@UN )@@G@@ . @G@]@@ SA,H1 A0,CPSAV2 . $P RCD# TO COPY TO H1UO )@@G@@(CPSAV2) @G@@@] SA A0,CPSAV2 . $P RCD# TO COPY UP )@@G@@ TO (CPSAV2) @A@@@@ ANA A1,A0 .@A@@@@ UQ )@@G@@ AA,U A1,1 .@G@]@@ SA,H2 A1,CPSAV2 .UR )@@G@@ $P # OF RECORDS TO COPY H2(CPSAV2) @G@@@] SA A1,NUMCPY US )@@G@@ . $P # OF RECORDS TO COPY (NUMCPY) @[@@@@ . @C@@@@ . SET UP LOUT )@@G@@OP FOR COPYING RECORDS ONE BY ONE @[@@@@ . @]@@@@CPYLP1 . @G@]@@UU )@@G@@ TNZ,H2 CPSAV2 . $T DONE WITH ALL RECORDS TO COPY UV )@@G@@@G@@@] TNZ NUMCPY . $T DONE WITH ALL RECORDS TO CUW )@@G@@OPY @E@@@@ J CPYDNE . $A YES,CPYDNE NO UX )@@G@@@G@#@@ LX,U X10,RNDPKT . $P ADDR OF RANDOM READ PKT TOUY )@@G@@ X10 @G@@@# LX,U X10,RMVPKT . $P ADDR OF RANDOM READ UZ )@@G@@PKT TO X10 @E@]@@ LA,H1 A0,CPSAV2 . $P RCD# TO COPY TVA )@@G@@O A0 @E@@@] LA A0,CPSAV2 . $P RCD# TO COPY TO A0 VB )@@G@@@G@[@@ SA,H1 A0,0,X10 . $P RCD# TO COPY TO RNDPKT VC )@@G@@ @G@#@[ SA A0,0,X10 . $P RCD# TO COPY TO RNDPVD )@@G@@KT @F@@@# SA A0,0,X10 . $P RCD# TO COPY TVE )@@G@@O RMVPKT @F@@@@ LMJ X11,TF$RMR . $W TF$RMR ISSUE RVF )@@G@@ANDOM READ @G@#@@ . RECORD DELIVERVG )@@G@@ED TO CHBUFF @F@@@# . RECORD DVH )@@G@@ELIVERED TO RDA @E@#@@ TZ,T1 RNDPKT+2 . $T SUCCESSFVI )@@G@@UL @D@@@# TZ,T1 RMVPKT+2 . $T SUCCESSFUL VJ )@@G@@@E@@@@ J CPYER1 . $A NO,CPYER1 YES @[@@@@VK )@@G@@ . @E@@@@ . PREPARE TO INSERT RECORD IN FILE AFTER RECORD IN CPSAV1 VL )@@G@@@[@@@@ . @C@#@] L$SNAP 'RNDPKT',0,4,RNDPKT @B@^@#VM )@@G@@ L$SNAP 'RMVPKT',0,4,RMVPKT @B@@@^ . L$SNAP 'RMVVN )@@G@@PKT',0,4,RMVPKT @G@@@@ LX,U X10,IAFPKT . $P ADDR OF VO )@@G@@INSERT AFTER PKT TO X10 @A@@@@ LA,H2 A4,CPSAV1 .@G@[@@VP )@@G@@ SA,H1 A4,0,X10 . $P RCD# TO INSERT AFTER TO IAFPKT VQ )@@G@@@G@@@[ SA A4,0,X10 . $P RCD# TO INSERT AFTER TO IAVR )@@G@@FPKT @A@[@@ LA,H2 A5,RNDPKT .@A@#@[ LA,H2 VS )@@G@@ A5,RNDPKT+2 .@A@@@# LA,H2 A5,RMVPKT+2 .@G@[@@ VT )@@G@@ SA,H2 A5,0,X10 . $P RCD LENGTH TO H2(IAFPKT) @G@]@[VU )@@G@@ SA,H2 A5,3,X10 . $P RCD LENGTH TO H2(IAFPKT)+2 VV )@@G@@@G@@@] SA,H2 A5,2,X10 . $P RCD LENGTH TO H2(IAFPKT)+2VW )@@G@@ @E@@@@ LMJ X11,TF$IA . $W TF$IA INSERT RECORD VX )@@G@@@D@@@@ TZ,T1 2,X10 . $T SUCCESSFUL @E@@@@ VY )@@G@@ J CPYER1 . $A NO,CPYER1 YES @B@^@] L$VZ )@@G@@SNAP 'IAFPKT',0,4,IAFPKT @B@@@^ . L$SNAP 'IAFPKT',0,4,IAFWA )@@G@@PKT @E@]@@ LA,H1 A0,CPSAV2 . $P RCD# TO COPY TO A0 WB )@@G@@@E@@@] LA A0,CPSAV2 . $P RCD# TO COPY TO A0 @G@@@@WC )@@G@@ TZ CPYSW1 . $T RCD# TO COPY <= RCD# TO INSERT WD )@@G@@@E@@@@ J CPYGT5 . $A NO,CPYGT5 YES @A@@@@WE )@@G@@ .@A@@@@ WF )@@G@@ .@G@@@@ AA,U A0,1 . $P INCREMENT RCD# TO COWG )@@G@@PY BY 1 @C@@@@ J CPYGT6 . $J CPYGT6 @]@@@@WH )@@G@@CPYGT5 . @G@@@@ AA,U A0,2 . $P INCREMENT RCD#WI )@@G@@ TO COPY BY 2 @G@]@@CPYGT6 SA,H1 A0,CPSAV2 . $P NEW RCD#WJ )@@G@@ TO COPY TO H1(CPSAV2) @G@@@]CPYGT6 SA A0,CPSAV2 . $P NEWK )@@G@@W RCD# TO COPY TO (CPSAV2) @A@]@@ LA,H2 A1,CPSAV1 .WL )@@G@@@A@@@] LA A1,CPSAV1 .@A@@@@ AA,U A1,1WM )@@G@@ .@G@]@@ SA,H2 A1,CPSAV1 . $P UPDATE RCD# TOWN )@@G@@ INSERT BY 1 @G@@@] SA A1,CPSAV1 . $P UPDATE RWO )@@G@@CD# TO INSERT BY 1 @A@]@@ LA,H2 A2,CPSAV2 .@A@@@]WP )@@G@@ LA A2,NUMCPY .@A@@@@ ANA,U A2,1 WQ )@@G@@ .@G@]@@ SA,H2 A2,CPSAV2 . $P UPDATE # OF RECORDS WR )@@G@@TO COPY @G@@@] SA A2,NUMCPY . $P UPDATE # OF REWS )@@G@@CORDS TO COPY @C@@@@ J CPYLP1 . $J CPYLP1 WT )@@G@@@]@@@@CPYDNE . @D@@@@ LX X10,X10SAV . $P RESTORE WU )@@G@@X10 @A@]@@ LA,H2 A0,CPSAV1 .@A@@@] LA WV )@@G@@ A0,CPSAV1 .@E@[@@ SA,H2 A0,0,X10 . $P RETURN PWW )@@G@@ROPER RCD#2 @E@@@[ SA A0,1,X10 . $P RETURN PROPER WX )@@G@@RCD#2 @G@@@@ SZ,T1 2,X10 . $P RETURN ZERO ERROR SWY )@@G@@TATUS @B@@@# SZ RDA . @B@@@# WZ )@@G@@ SZ RDALN . @C@@@@ J *RETURN XA )@@G@@ . $E EXIT @]@@@@CPYER1 . @G@@@@ LA,U A0,1 XB )@@G@@ . $P RETURN NON ZERO ERROR STATUS @A@@@@ SA,T1 A0,2XC )@@G@@,X10 .@B@@@# SZ RDA . @B@@@# XD )@@G@@ SZ RDALN . @C@@@@ J *RETURN XE )@@G@@ . $E EXIT @[@@@@$(2) @E@]@@CPSAV1 + 0 . H2 HXF )@@G@@AS RCD# TO INSERT AFTER @E@@@]CPSAV1 + 0 . HAS RCD# XG )@@G@@TO INSERT AFTER @E@]@@CPSAV2 + 0 . H1 HAS RCD# TO CXH )@@G@@OPY @D@@@]CPSAV2 + 0 . HAS RCD# TO COPY XI )@@G@@@E@@@]NUMCPY + 0 . # OF RECORDS TO COPY@E@]@@XJ )@@G@@ . H2 HAS # OF RECORDS TO COPY @F@@@@CPYSW1XK )@@G@@ + 0 . 0 WHEN RCD#3 <= RCD#4 <= RCD#1 @^@@@@RETURNXL )@@G@@ + 0 @B@@@@X10SAV + 0 . @#@@@@XM )@@G@@ END ___1,A0 .@A@@@@ AA,U A1,1 XN )@@G@@*[@@@@*SDFF*@[@@@D . @C@@@D . TEMPORARY FILE ACCESS METHOD, LOCATE BYXO )@@G@@ DBP @[@@@D . @#@@@D AXR$ @[@@@D$(1) @B@@@DTF$DBP1* LAXP )@@G@@,U A0,1 . @E@@@D SA A0,DBPASW XQ )@@G@@ . $P SET DBPASW @B@H@D L$SNAP 'DBP1 ',0,4,DBPPKT XR )@@G@@@B@@@H . L$SNAP 'DBP1 ',0,4,DBPPKT @]@@@DTF$DBP* @A@@@DXS )@@G@@ SX,H2 X11,RETURN @B@@@D SX X10,X10SAVXT )@@G@@ . @F@@@D SLJ FRSTED . $W FRSTED FLUSH IXU )@@G@@NDEX BUFF @A@@@D SZ DBPSW .@G@@@D TNXV )@@G@@Z RNDSAV . $T HAS ANY BLOCK BEEN LOCATED @E@@@D XW )@@G@@ J DBPKFIL . $A NO,DBPKFIL YES @[@@@D . @A@@@DXX )@@G@@ . SEARCH LAST LOCATED BLOCK FIRST @[@@@D . @B@@@D LA XY )@@G@@ A2,RNDADD . @B@@@D LA A1,RNDSAV . XZ )@@G@@@H@@@D ANA A1,A2 . $P REL BLOCK # OF LAST LOCYA )@@G@@ATED BLOCK @B@@@D TG A1,RNDIDX . @B@@@D YB )@@G@@ ER ERR$ . @B@@@D SA,H2 A1,DBPBLK YC )@@G@@ . @G@@@D LMJ X11,DBPSCH . $W DBPSCH SEARYD )@@G@@CH FOR INDEX @E@@@D JZ A2,DBPFND . $T WAS IYE )@@G@@NDEX FOUND @E@@@D . $A YES,DBPFND YF )@@G@@NO @^@@@DDBPKFIL . @[@@@D . @[@@@D . @E@@@D . CALYG )@@G@@L THE KEY FILE ACCESS METHOD TO FIND REL INDEX BLOCK #@[@@@D . @[@@@DYH )@@G@@ . @F@@@G TNZ,H1 1,X10 . $T IS POINTER ARTIFIYI )@@G@@CIAL @E@@@G J ARTDBP . $YES,ARTDBP NO YJ )@@G@@@F@@@D LA A0,1,X10 . $P DBP TO LOCATE TO A0 YK )@@G@@@E@@@D SA A0,KFAPKT+3 . $P DBP TO KFAPKT+3 @B@@@DYL )@@G@@ LX,U X10,KFAPKT . @D@@@D LMJ X11,YM )@@G@@KF$AMR . $W KF$AMR @B@@@D LX X10,X10SAV YN )@@G@@ . @G@@@D TZ KFAPKT+5 . $T SUCCESSFUL KEY FIYO )@@G@@LE READ @E@@@D J ARTDBP . $A NO,ARTDBP YYP )@@G@@ES @[@@@D . @^@@@D . FOUND DBP IN KEY FILE@[@@@D . @E@@@D YQ )@@G@@ TZ,H1 KFAPKT+4 . $T RECORD RELOADED @E@@@D J YR )@@G@@ ARTDBP . $A YES,ARTDBP NO @F@@@D LA,H2 YS )@@G@@ A1,KFAPKT+4 . $P BLOCK NUMBER TO A1 @G@@@D SA YT )@@G@@ A1,RELKBLK . SAVE RELATIVE BLOCK NUMBER @F@@@D TGYU )@@G@@ A1,RNDIDX . $T BLOCK NUMBER LEGAL @E@@@D J YV )@@G@@ ARTDBP . $T NO,ARTDBP YES @I@E@D L$SNAP YW )@@G@@ 'DBPKFM',0,4,KFAPKT+3 . @H@@@EYX )@@G@@ . L$SNAP 'DBPKFM',0,4,KFAPKT+3 YY )@@G@@. @D@@@D J DBPGT3 . $J DBPGT3 @]@@@DYZ )@@G@@ARTDBP . @[@@@D . @C@@@D . TEMPORARY FILE ACCESS METHOD, LOCATE BYZA )@@G@@ DBP @[@@@D . @A@@@D LA A2,RNDADD .@G@@@D ZB )@@G@@ TNZ RNDSAV . $T ANY RECORD HAS BEEN LOCATED @E@@@DZC )@@G@@ J DBPGT1 . $A NO,DBPGT YES @B@@@D ZD )@@G@@ LA A1,RNDSAV . @G@@@D ANA A1,A2 ZE )@@G@@ . $P RELATIVE CURRENT BLOCK# TO A1 @A@@@D TG A1,RZF )@@G@@NDIDX .@A@@@D ER ERR$ .@C@@@D J ZG )@@G@@ DBPGT3 . $J DBPGT3 @]@@@DDBPGT1 . @F@@@D SZZH )@@G@@ A1 . $P ASSUME 0 REL BLK NUMBER @]@@@DDBPGT3 . ZI )@@G@@@F@@@D SA A1,BLKUP . $P BLKUP = CUR REL INX BLK# ZJ )@@G@@@^@@@D ANA,U A1,1@E@@@D SA A1,BLKDN .ZK )@@G@@ $P BLKDN = BLKUP - 1 @G@@@D LR R2,RNDIDX . $P # ZL )@@G@@OF BLK ENTRIES TO DBPIXN @B@@@D SR R2,DBPIXN .ZM )@@G@@ $ @]@@@DDBPLP1 . @G@@@D JGD R2,$+2 . $T ARZN )@@G@@E WE DONE WITH ALL ENTS @E@@@D J DBPER1 .ZO )@@G@@ $A YES,DBPER1 NO @]@@@DDBPLP2 @D@@@D TZ DBPSZP )@@G@@W . $T DBPSW = 0 @E@@@D J DBPGT4 .ZQ )@@G@@ $A NO,DBPGT4 YES @[@@@D . @#@@@D . DBPSW IZ ZERO @[@@@D . ZR )@@G@@@B@@@D LA,U A0,1 . $ @D@@@D SA ZS )@@G@@ A0,DBPSW . $P SET DBPSW @D@@@D LA A1,BLKUP ZT )@@G@@ . $P BLKUP TO A1 @A@@@D LA A2,RNDIDX .@G@@@DZU )@@G@@ ANA,U A2,1 . $P MAX REL INX BLK NUM TO A2 ZV )@@G@@@G@@@D TLE A2,A1 . $T BLKUP <= MAX REL INX BLK NZW )@@G@@UM @E@@@D J DBPLP2 . $P NO,DBPLP2 YES ZX )@@G@@@A@@@D LA A3,A1 . @A@@@D AA,U A3,1ZY )@@G@@ . @D@@@D SA A3,BLKUP . $P INCREMENT BLKUP ZZ )@@G@@@[@@@D . @F@@@D . SHOULD SEARCH BLOCK WHOSE REL # IS IN A1 FOR DBP, AAA )@@G@@1 CONTAINS @^@@@D . REL BLK NUMBER @E@@@DDBPGT6 SA,H2 A1,DAB )@@G@@BPBLK . $P REL BLK # TO H2(DBPBLK)@G@@@D LMJ X11,DBPSCHAC )@@G@@ . $W DBPSCH SEARCH INDEX BLOCK @E@@@D AD )@@G@@ . A2=0 IF SUCCESSFUL @D@@@D TZ A2 AE )@@G@@ . $T SUCCESSFUL @E@@@D J DBPLP1 . $A NOAF )@@G@@,DBPLP1 YES,DBPFND@A@@@D J DBPFND .@^@@@DDBPGT4AG )@@G@@ . DBPSW IS ONE @D@@@D SZ DBPSW . $P RESET DBAH )@@G@@PSW @D@@@D LA A0,BLKDN . $P BLKDN TO A0 @D@@@DAI )@@G@@ TG,U A0,0 . $T BLKDN ) 0 @E@@@D J AJ )@@G@@ DBPGT5 . $A NO,DBPGT5 YES,DBPLP2@ @@@D J AK )@@G@@ DBPLP2 @]@@@DDBPGT5 . @D@@@D LA A1,BLKDN .AL )@@G@@ $P BLKDN TO A1 @A@@@D LA A3,A1 .@A@@@D AM )@@G@@ ANA,U A3,1 .@E@@@D SA A3,BLKDN .AN )@@G@@ $P DECREMENT BLKDN @C@@@D J DBPGT6 . $J DBAO )@@G@@PGT6 @[@@@D . @E@@@DDBPFND . FOUND INDEX FOR DBP, WILL BE IN LOCATIOAP )@@G@@N DBPINX @[@@@D . @A@@@D LA A3,DBPINX @E@@@DAQ )@@G@@ SA A3,TEMPKT+1 . $P INDEX TO TEMPKT+1 @E@@@D AR )@@G@@ LMJ X11,LOCREC . $W LOCREC LOCATE RECORD@G@@@D LXAS )@@G@@,H2 X8,TEMPKT . $P ADDR OF RECORD < HEADER TO X8 @E@@@D AT )@@G@@ LA,H2 A5,0,X8 . $P RECORD LENGTH TO A5 @^@@@D ANAU )@@G@@A,U A5,1@G@@@D SA A5,3,X10 . $P RECORD LENGTH AV )@@G@@TO CALLING PKT @A@@@D AX,U X8,1 .@G@@@D AW )@@G@@ TNZ DBPASW . $T RECORD TO BE DELIVERED @E@@@DAX )@@G@@ J DBPGT7 . $A NO,DBPGT7 YES @G@@@D AY )@@G@@ SX,H2 X8,2,X10 . $P RETURN ADDRESS OF RECORD @D@@@DAZ )@@G@@ J DBPEX0 . $J DBPEX0 @]@@@DDBPGT7 BA )@@G@@@A@@@D LX,H2 X9,2,X10 .@ @@@D LR R1,ABB )@@G@@5 @F@@@D SLJ RTRANS . $W RTRANS TRANSFER RECOBC )@@G@@RD @E@@@DDBPEX0 SZ,T1 2,X10 . $P SET ZERO RETURN CODEBD )@@G@@@]@@@DDBPEXT . @B@@@D SZ DBPASW . @ @@@DBE )@@G@@ J *RETURN @ @@@DDBPER1 . COULD NOT FIND DP @A@@@DBF )@@G@@ LA,U A0,1 .@G@@@D SA,T1 A0,2,X10 BG )@@G@@ . $P RETURN NON ZERO ERROR CODE @C@@@D J DBPEBH )@@G@@XT . $E EXIT @[@@@D . @G@@@D . SUBROUTINE TO SEARCH AN INDBI )@@G@@EX BLOCK FOR DBP REQUIRED BY CALLING @D@@@D . PACKET (1,X10) . THE BJ )@@G@@INDEX BLOCK NUMBER IS IN A1. @E@@@D . IF DBP IS NOT FOUND IN BLOCK, SEABK )@@G@@RCH THE OVERFLOW BLOCKS @E@@@D . UPON RETURN, A2 CONTAINS ERROR STATUS BL )@@G@@0=SUCCESSFUL @C@@@D . DBPINX CONTAINS INDEX IF FOUND BM )@@G@@@F@@@D . H1(DBPBLK) CONTAINS REL INX BLK NUMBER WHERE FND BN )@@G@@@D@@@D . RECORD # TO CALLING PACKET 0,X10 @[@@@D . BO )@@G@@@]@@@DDBPSCH @C@@@D SX,H2 X11,RET1 . $H DBPSCH BP )@@G@@@G@@@D SZ SCHINX . $P # OF INDICES SEARCHED IS ZBQ )@@G@@ERO @A@@@DSCHLP2 SA,H1 A1,DBPBLK .@F@@@D SA,H2 BR )@@G@@ A1,INXPKT . $P INX BLK# TO H2(INXPKT) @E@@@D LMJ BS )@@G@@ X11,INXBUF . $W INXBUF GET BLOCK @D@@@D TZ,H1 INXPBT )@@G@@KT . $T SUCCESSFUL @C@@@D ER ERR$ .BU )@@G@@ $E EXIT @E@@@D LX X9,INXPKT+1 . $P ADDR OF BLK TOBV )@@G@@ X9 @F@@@D TNZ,H2 1,X9 . $T ANY INDICES IN THIS BW )@@G@@BLK @E@@@D J SCHGT1 . $A NO,SCHGT1 YES BX )@@G@@@G@@@D LA A0,SCHINX . $P UPDATE # OF INDICES SEARCHBY )@@G@@ED @A@@@D AA,H2 A0,1,X9 .@A@@@D SA BZ )@@G@@ A0,SCHINX @A@@@D . PREPARE TO SEARCH BLOCK FOR DBP @A@@@D CA )@@G@@ LX X8,X9 .@G@@@D AX,U X8,3 .CB )@@G@@ $P X8 POINTS TO BEG OF SEARCH @G@@@D LXI,U X8,2 CC )@@G@@ . $P X8 WILL INDEX BLK TO SEARCH @E@@@D LA A2,1CD )@@G@@,X10 . $P DBP TO FIND TO A2 @G@@@D LR,H2 R1,1,X9 CE )@@G@@ . $P # OF INDICES IN BLK TO R1 @D@@@D SE A2,0CF )@@G@@,*X8 . $T DBP IN BLOCK @E@@@D J SCHGT1 .CG )@@G@@ $T NO,SCHGT1 YES @D@@@D . FOUND A MATCH FOR DBP, CALCULATE RECORDCH )@@G@@ NUMBER @A@@@D LA A0,SCHINX .@G@@@D ANCI )@@G@@A A0,R1 . $P SUBTRACT # OF INDICES IN BLK @G@@@D CJ )@@G@@ SA A0,SCHINX . $P INX # IN THIS BLK TO SCHINX @B@@@DCK )@@G@@ LA A0,RNDADD . @B@@@D LXI,U A0,1CL )@@G@@ . @A@@@D SZ A4 .@A@@@D CM )@@G@@ LR,H2 R1,DBPBLK .@F@@@D TNZ R1 . $T WCN )@@G@@AS INX FOUND IN 1ST BLOCK @C@@@D J SCHGT2 . $A YCO )@@G@@ES,SCHGT2 NO@A@@@DSCHLP1 . @E@@@D JGCP )@@G@@D R1,$+2 . $T ARE WE DONE WITH ALL BLKS@C@@@D J CQ )@@G@@ SCHGT2 . $A YES,SCHGT2 NO@E@@@D AA A4,0,*A0 . $P ACR )@@G@@CCUMULATE # OF INDICES @C@@@D J SCHLP1 . $J SCHLP1 CS )@@G@@ @]@@@DSCHGT2 . @H@@@D SA,H2 A0,RNDSAV . $PCT )@@G@@ SAVE ADD OF RAND CORE INX TAB ENT @E@@@D AA A4,SCHINX CU )@@G@@ . $P INDEX # FOUND TO A4 @G@@@D SA A4,0,X10 .CV )@@G@@ $P RECORD # TO CALLING PACKET @F@@@D ANX,U X8,3 CW )@@G@@ . $P X8 POINTS TO INDEX FOUND @D@@@D LA A5,0,X8 CX )@@G@@ . $P INDEX TO A5 @E@@@D SA A5,DBPINX . $P INCY )@@G@@DEX TO DBPINX @E@@@D SZ A2 . $P SET 0 RECZ )@@G@@TURN CODE @ @@@D J *RET1 @A@@@DSCHGT1 . NO MATCH DA )@@G@@IN INDEX BLOCK @G@@@D TNZ,H2 0,X9 . $T OVERFLODB )@@G@@W BLOCK AVAILABLE @E@@@D J SCHER1 . $A NODC )@@G@@,SCHER1 YES @F@@@D LA,H2 A1,0,X9 . $P OVERFLOWDD )@@G@@ BLOCK # TO A1 @C@@@D J SCHLP2 . $J SCHLP2 DE )@@G@@@]@@@DSCHER1 . @F@@@D LA,U A2,1 . $P RETURN NDF )@@G@@ONZERO STATUS @ @@@D J *RET1 @[@@@D$(2) @E@@@DDG )@@G@@DBPSW + 0 . 0 FOR SEARCH UPWARD @G@@@DRELKBLDH )@@G@@K + 0 . REL INX BLK # RETURNED BY KF$AM @F@@@DDI )@@G@@BLKUP + 0 . BLK # FOR SEARCH GOING UP @F@@@DDJ )@@G@@BLKDN + 0 . BLK # FOR SEARCH GOING DOWN @G@@@DDK )@@G@@DBPIXN + 0 . # OF INDEX BLKS LEFT TO SEARCH DL )@@G@@@F@@@DDBPBLK + 0,0 . H2 HAS INX BLK # SEARCHED DM )@@G@@@G@@@D . H1 HAS INX BLK # WHERE FOUND DN )@@G@@ @G@@@DSCHINX + 0 . # OF INDICES SEARCHED IDO )@@G@@N BLOCK @B@@@DDBPINX + 0 . @F@@@DDBPASWDP )@@G@@ + 0 . TO INDICATE TF$DBP1 CALL @H@@@D DQ )@@G@@ . TF$DBP1 CALL WILL NOT DELIVER RECORD DR )@@G@@@G@@@DKFAPKT RES 46 . KEY FILE ACCESS METHOD PACDS )@@G@@KET @G@@@D . USED FOR GETTING BLODT )@@G@@CK NUMBERS @A@@@DRETURN + 0 .@A@@@DRET1 + DU )@@G@@ 0 .@G@@@DX10SAV + 0 . SADV )@@G@@VE X10 BEFORE CALLING KF$AM @#@@@D END ___ J DBPEDW )@@G@@X0 . $J DBPEX0 @]@@@DDBPGT7 *[@@@@*SDFF*@]@@@@ . DX )@@G@@ @A@[@@ . ** DBPARSE ** @A@@@[ . ** DY )@@G@@PARSE ** @]@@@@ . @C@@@@ . THIS ROUTINE IS USED DZ )@@G@@TO PARSE THE SYTAX@E@[@@ . READ BY THE DATA BASE EDITOR SYSTEA )@@G@@EM @E@@@[ . READ BY THE D B REORGANIZATION MAIN CONTROLEB )@@G@@ @]@@@@ . @A@@@@ . THE INTERFACE IS: @]@@@@EC )@@G@@ . @A@[@@ . LMJ X11,DBPARSE@A@@@[ . ED )@@G@@ LMJ X11,PARSE @]@@@@ . @A@[@@ . ** DSPARSEE )@@G@@E ** @]@@@@ . @^@@@@ AXR$ @^@@@@ED EF )@@G@@ FORM 6,6,6,18 @^@@@@PF FORM 12,6,18 @]@@@@ . @^@@@@EG )@@G@@$(4) LIT. @]@@@@$(1). @C@[@@DBPARSE*. EH )@@G@@ . $H DBPARSE @C@@@[PARSE*. . $H PARSE EI )@@G@@ @A@@@] L,U A1,BLKS . @A@@@] L,U A2,EJ )@@G@@PBUFR . @A@@@] LXI,U A2,1 . @A@@@] EK )@@G@@ L,U R1,50 . @C@@@] BT A2,,*A1 . *W CEL )@@G@@LEAR BUFFER @E@]@@ SLJ CLR . $W CLEAR PARSE BUFFER EM )@@G@@ @E@]@@ DS A0,SA01 . $P SAVE WORKING REGISTERS EN )@@G@@@A@]@@ DS A2,SA23 . @A@]@@ DS A4,SA45 EO )@@G@@ . @A@]@@ S X1,SX1 . @A@]@@ S EP )@@G@@ X2,SX2 . @A@]@@ S X3,SX3 . @A@@@@EQ )@@G@@ L A5,A0 . @E@@@@PL1 L,U X3,PBUFR ER )@@G@@. $P GET PTR TO PARSE BUF @A@@@@ LXI,U X3,1 . ES )@@G@@@E@@@@ L X2,A5 . $P SET PTR TO INPUT STRING @A@@@@ET )@@G@@ LXI,U X2,1 . @E@@@@ SSL A5,18 EU )@@G@@. $P GET INPUT WORD CNT @E@@@@ MSI,U A5,6 . $P CEV )@@G@@ONVERT TO CHAR CNT @A@@@@ ANA,U A5,1 . -1 @C@@@@EW )@@G@@ SZ A1 . $P INIT CNTR @E@@@@ L A2,EX )@@G@@(1,0) . $P INIT INPUT CHR INDEX @E@@@@PL2 L A3,(1,0) EY )@@G@@ . $P INIT OUTPUT CHR INDEX @E@@@@ L X1,X3 EZ )@@G@@. $P SET ALT OUTPUT PTR @C@@@@GET1 EX GET,A2 . $W GEFA )@@G@@T A CHAR @C@@@@ TLEM,U A2,5 . $P END OF WORD ?@^@@@@FB )@@G@@ J $+2 @E@@@@ L A2,(1,0) . $P YES, REFC )@@G@@SET INDEX @E@@@@ TNE,U A0,5 . $T CHAR A BLANK FD )@@G@@? @E@@@@ J CHKBLK . $A YES,CHKBLK NO,PL3 FE )@@G@@ @C@@@@PL3 A,U A1,1 . $P INCR CHR CNTR@C@@@@ FF )@@G@@ EX PUT,A3 . $W SAVE CHAR @E@@@@ TLEM,U A3,5 FG )@@G@@ . $P END OF OUTPUT WORD ? @^@@@@ J $+2 @E@@@@FH )@@G@@ L A3,(1,0) . $P YES, RESET INDEX @E@@@@ FI )@@G@@ JGD A5,GET1 . $P LOOP TILL INTERRUPT @C@@@@ J FJ )@@G@@ EXIT . $J EXIT @C@@@@CHKBLK JZ A1,CHK2 FK )@@G@@. $H CHK BLK @E@]@@ A,U X3,2 . $P POINT TO NXT FL )@@G@@OUTPUT BLOCK@E@@@] A,U X3,5 . $P POINT TO NXT OUTPUTFM )@@G@@ BLOCK@C@@@@ SZ A1 . $P CLEAR CHR CNT@E@@@@CHK2 FN )@@G@@ JGD A5,PL2 . $P IF NOT DONE LOOP @]@@@]EXIT. FO )@@G@@@C@]@@EXIT DL A0,SA01 . $W RESTORE REGS @A@]@@ DL FP )@@G@@ A2,SA23 . @A@]@@ DL A4,SA45 . @A@]@@FQ )@@G@@ L X1,SX1 . @A@]@@ L X2,SX2 FR )@@G@@. @A@]@@ L X3,SX3 . @C@@@@ J 0,XFS )@@G@@11 . $E EXIT @]@@@@ . @C@@@@GET L,S1 A0,FT )@@G@@,X2 . GET VECTOR @A@@@@ L,S2 A0,,X2 . FU )@@G@@@A@@@@ L,S3 A0,,X2 . @A@@@@ L,S4 A0,,X2 FV )@@G@@ . @A@@@@ L,S5 A0,,X2 . @A@@@@ L,SFW )@@G@@6 A0,,*X2 . @]@@@@ . @C@@@@PUT S,S1 A0,,X1 FX )@@G@@ . PUT VECTOR @A@@@@ S,S2 A0,,X1 . @A@@@@FY )@@G@@ S,S3 A0,,X1 . @A@@@@ S,S4 A0,,X1 FZ )@@G@@. @A@@@@ S,S5 A0,,X1 . @A@@@@ S,S6 A0,GA )@@G@@,*X1 . @C@]@@CLR + 0 . $H CLR GB )@@G@@@A@]@@ L,U A1,BLKS . @A@]@@ L,U A2,PBUFR GC )@@G@@ . @A@]@@ LXI,U A2,1 . @A@]@@ L,UGD )@@G@@ R1,20 . @C@]@@ BT A2,,*A1 . *W CLEAR BGE )@@G@@UFFER @C@]@@ J *CLR . $E EXIT @]@@@@$(4). GF )@@G@@ @#@#@@SA01 RES 2 @#@#@@SA23 RES 2 @#@#@@SA45 RESGG )@@G@@ 2 @#@#@@SX1 + 0 @#@#@@SX2 + 0 @#@#@@SX3 + GH )@@G@@ 0 @^@@@@BLKS ' ' @]@@@@ END___^@)^@)^@)^@) 0)GI )@@G@@^@)^@)@D@]@@^@)^@)^@)^@)^[G^@)^@)^[SAC?ETSAC)^@)^@)^@)^@) 0)^@)^@)@D@]@@GJ )@@G@@^@)^@)^@)^@)^[G^@)^@)^[SAK?ETSAK)^@)^@)^@)^@) 0)^@)^@)@D@]@@^@)^@)^@)^@)GK )@@G@@*[@@@@*SDFF*@#@@@@ AXR$ @]@@@@$(1). @]@@@@DUMMY*. GL )@@G@@@ @@@@ J 0,X11 @#@@@@ END ___^@)^@)^@)GM )@@G@@^@)C(IC))^@)___D1PD(]C(M*[@@@@*SDFF*@^@@@@ AXR$ @^@@@@GN )@@G@@$(4) LIT @]@@@@$(1). @A@@@@PGSIZE EQUF 2,X9GO )@@G@@,H1 @A@@@@UNUSED EQUF 2,X9,H2 @A@@@@SLOTS EQGP )@@G@@UF 3,X9,H1 @A@@@@LASTVAC EQUF 3,X9,H2 @A@@@@GQ )@@G@@PGTYPE EQUF 1,X9,S3 @A@@@@CALCNUM EQUF 6,X9,H1 GR )@@G@@ @A@@@@PGNUM EQUF 1,X9,H2 @A@@@@ACODE EQUF GS )@@G@@ 1,X9,T1 @A@@@@RCDTYP EQUF 0,X7,T1 @A@@@@RCDDESGT )@@G@@C EQUF 0,X7,S3 @A@@@@RCDLENG EQUF 0,X7,H2 GU )@@G@@@A@@@@SLTDESC EQUF 0,X6,S1 @A@@@@DISP EQUF 0,X6GV )@@G@@,H2 @C@@@@PACKPG* . $H @]@@@@GW )@@G@@. @E@@@@. PACKPG IS A SUBROUTINE TO COMPACT A DATA BASGX )@@G@@E PAGE@C@@@@. ENTERED: LMJ X11,PACKPG @A@@@@. GY )@@G@@ X9 = PAGE ADDR @C@@@@. OTHER REGISTERS GZ )@@G@@USED: @E@@@@. A0,A1,X1,X2,X3,R13,R14,R1HA )@@G@@5,R1 @]@@@@. @C@@@@ LXI,U X9,1 . HB )@@G@@ @E@@@@ TNZ UNUSED . $T ANY UNUSED WORDS HC )@@G@@@E@@@@ J 0,X11 . $A YES NO,RETURN @G@@@@HD )@@G@@ LA A0,LASTVAC . $P GET LAST VACANT WRD ADDR HE )@@G@@@C@@@@ AA A0,X9 . @E@@@@ LAHF )@@G@@ A0,0,A0 . GET THE ENTRY @G@@@@ TNE HG )@@G@@ A0,UNUSED . $T MATCH UNUSED COUNT @E@@@@ J HH )@@G@@ PACKPG55 . $A YES,PACKPG55 NO @]@@@@PACKPG1. @E@@@@HI )@@G@@ LA A0,PGSIZE . $P GET PAGE SIZE @E@@@@ HJ )@@G@@ ANA A0,SLOTS . $P - SLOTS NUMBER @E@@@@ ANHK )@@G@@A A0,CALCNUM . $P - CALC SLOTS @E@@@@ AA HL )@@G@@ A0,X9 . $P COMPUTE ABS ADDR @C@@@@ LXI,U A0,1HM )@@G@@ . @E@@@@ LR R15,A0 . SAHN )@@G@@VE IT IN R15 @C@@@@PACKPG2 . $H HO )@@G@@@I@@@@ LX X1,X9 . $P SET UP X1 & X2 FOR RECOHP )@@G@@RD TRANSFER @C@@@@ LXI,U X1,1 . HQ )@@G@@@C@@@@ AX,U X1,10 . @C@@@@ LXHR )@@G@@ X2,X1 . @C@@@@PACKPG3 HS )@@G@@ . $H @E@@@@ LA A0,R15 . $T LAST HT )@@G@@RECORD MOVED@C@@@@ TNE A0,X2 . @E@@@@HU )@@G@@ J PACKPG5 . $A YES,PACKPG5 NO @C@@@@ HV )@@G@@ LA A0,(010000000) . @E@@@@ AND A0,0HW )@@G@@,X2 . $T RECORD DELETED @E@@@@ JZ A1,PACKPG4HX )@@G@@ . $A YES,PACKPG4 NO @E@@@@ LR,H2 R1,0,X2 HY )@@G@@ . $P GET RECORD LENGTH@E@@@@ LR R13,X1 . $PHZ )@@G@@ SAVE X1 @E@@@@ LR R14,X2 . $P SAVE IA )@@G@@X2 @E@@@@ BT X1,0,*X2 . SAVE THE RECORIB )@@G@@D @G@@@@ LX X3,X9 . $ MODIFY THE SLOT ENIC )@@G@@TRY @G@@@@ AX X3,PGSIZE . $P COMPUTE THEID )@@G@@ SLOT ADDR @C@@@@ ANX X3,CALCNUM . IE )@@G@@@C@@@@ ANX,U X3,1 . @C@@@@ LXIF )@@G@@I,U X3,-1 . @E@@@@ LA A0,R14 IG )@@G@@ . $P GET OLD DISP @C@@@@ ANA A0,X9 IH )@@G@@ . @C@@@@ LXI,U A0,0 . @E@@@@II )@@G@@ LR R1,SLOTS . $P GET LOOP COUNT @E@@@@ IJ )@@G@@ SE,H2 A0,0,*X3 . $T SEARCH FOR SLOT @E@@@@ ERIK )@@G@@ ERR$ . $A YES NO,ERR @E@@@@ LA IL )@@G@@ A0,R13 . $P GET THE NEW DISP @C@@@@ ANA A0,XIM )@@G@@9 . @E@@@@ SA,H2 A0,1,X3 . $PIN )@@G@@ SAVE IT @C@@@@ J PACKPG3 . $J NXT IO )@@G@@@C@@@@PACKPG4 . $H @G@@@@ AXIP )@@G@@,H2 X2,0,X2 . $P BUMP UP TO NXT RECORD @C@@@@ IQ )@@G@@ J PACKPG3 . @C@@@@PACKPG5 IR )@@G@@ . $H @G@@@@ LA A0,X1 . $PIS )@@G@@ COMPUTE LAST VAC ADDR @C@@@@ ANA A0,X9 IT )@@G@@ . @E@@@@ SA A0,LASTVAC . $P SAVE IT IU )@@G@@ @I@@@@ LA A0,X2 . $P COMPUTE NUMBER OFIV )@@G@@ WRDS TO BE ZEROED @C@@@@ ANA A0,X1 . IW )@@G@@ @E@@@@ SA A0,UNUSED . $P SAVE UNUSED COUNTIX )@@G@@@C@@@@ LR R1,A0 . @C@@@@ SZIY )@@G@@ A0 . @G@@@@ LX,U X3,A0 IZ )@@G@@ . $P SET UP TO STORE ZEROS @C@@@@ BT X1,0JA )@@G@@,*X3 . @I@@@@PACKPG55 . $H CHJB )@@G@@ECK IF ANY SLOTS MAY BE ELIMINATED @E@@@@ TNZ SLOTJC )@@G@@S . $T ANY SLOTS @E@@@@ J 0,X11 JD )@@G@@ . $A YES NO,RETURN @E@@@@ LR R15,SLOTS JE )@@G@@ . $P SCAN SLOTS @C@@@@ JGD R15,$+1 . JF )@@G@@ @G@@@@ LX X1,X9 . $P COMPUTE SLOTS ADDJG )@@G@@R @C@@@@ AX X1,PGSIZE . @C@@@@JH )@@G@@ ANX X1,CALCNUM . @C@@@@ ANX JI )@@G@@ X1,SLOTS . @^@@@@ LXI,U X1,1@C@@@@PACKPGJJ )@@G@@6 . $H @E@@@@ LA A0,(JK )@@G@@0400000000000). $P SET A0 @E@@@@ AND A0,0,X1 JL )@@G@@ . $T SLOT IN USE @E@@@@ JZ A1,PACKPG7 JM )@@G@@ . $A YES,PACKPG7 NO @E@@@@ SZ 0,*X1 . $PJN )@@G@@ ZERO OUT THE SLOT@E@@@@ LA,U A0,1 . $P UP UNJO )@@G@@USED COUNT @C@@@@ AA A0,UNUSED . @C@@@@JP )@@G@@ SA A0,UNUSED . @E@@@@ LA JQ )@@G@@ A0,SLOTS . $P DOWN SLOTS COUNT @^@@@@ ANA,U A0,1JR )@@G@@@C@@@@ SA A0,SLOTS . @E@@@@ JGJS )@@G@@D R15,PACKPG6 . $J TRY NXT @C@@@@PACKPG7 JT )@@G@@ . $H @E@@@@ LX X1,X9 JU )@@G@@ . $P SET LASTVAC @C@@@@ AX X1,LASTVAC . JV )@@G@@ @C@@@@ LA A0,UNUSED . @C@@@@ JW )@@G@@ SA A0,0,X1 . @E@@@@ J 0,X1JX )@@G@@1 . $J RETURN @^@@@@ END ___ TNJY )@@G@@ RETURN @^@@@@ END ___ TNZ UNUSED JZ )@@G@@ . $T ANY UNUSED *[@@@@*SDFF*@[@@@@ . @C@@@@ . KA )@@G@@ ** SCHEMA ACCESS METHODS ** @[@@@@ . @G@@@@ . THIS ELEMENT CKB )@@G@@ONTAINS THE FOLLOWING SCHEMA ACCESS METHODS: @C@@@@ . KC )@@G@@ FABNME, FABCDE, FSABCD @C@@@@ . FRBNME, FRBCDE,KD )@@G@@ FSRBCD @C@@@@ . FSBNME, FSBCDE, FSSBCD @A@@@@KE )@@G@@ . FASRTL, FDSDT @[@@@@ . @[@@@@ . @#@@@@ KF )@@G@@ AXR$. @#@@@@$(4) LIT. @]@@@@$(3). @A@@@@PF FOKG )@@G@@RM 12,6,18 . @[@@@@ . @[@@@@ . @A@@@@ . KH )@@G@@ ** FABNME ** @[@@@@ . @G@@@@ . THIS ROUTINE FETCHES AN ARKI )@@G@@EA TABLE FROM THE ABSOLUTE SCHEMA @[@@@@ . @E@@@@ . THERE ARKJ )@@G@@E THREE ENTRY POINTS WHOSE CALLS ARE: @D@@@@ . LMJ KK )@@G@@ X11,[FABNME,FABCDE,FSABCD] @ @@@@ . + KEY @A@@@@KL )@@G@@ . + BUFFER @C@@@@ . + SCHEMKM )@@G@@A-INDICATOR @B@@@@ . + $,('RTN-NAME') @[@@@@KN )@@G@@ . @B@@@@ . WHERE KEY CONTAINS: @E@@@@ . KO )@@G@@ AREA-NAME,AREA-CODE,SEQUENCE-NUMBER@G@@@@ . KP )@@G@@ BUFFER IS BUFFER INTO WHICH TABLE IS TO BE PLACED @E@@@@ . KQ )@@G@@ SCHEMA-INDICATOR INDICATES WHICH SCHEMA:@B@@@@ . KR )@@G@@ 0 - OLDSCHEMA @B@@@@ . 1 - NEWSCHEMA KS )@@G@@@[@@@@ . @E@@@@ . THE ROUTINE TESTS SDTICF TO SEE SDT IS IN COKT )@@G@@RE @E@@@@ . IF NOT, A ROUTINE IS CALLED TO READ IT KU )@@G@@@[@@@@ . @E@@@@ . IF TABLE CANNOT BE FOUND, ROUTINE RETURNS WIKV )@@G@@TH @A@@@@ . ZERO IN LOCATION KEY @[@@@@ . @[@@@@ . KW )@@G@@@A@@@@ . ** FABNME ** @C@@@@ . KX )@@G@@ D L SCHEIDT - 11/74 @[@@@@ . @C@@@@FABNME*. KY )@@G@@. $H FABNME @D@@@@ L A3,*2,X11 . $P SET SCHEMA INKZ )@@G@@DEX @D@@@@ TNZ SDTICF,A3 . $T IS SDT IN CORE ? @E@@@@LA )@@G@@ SLJ FASRTL . $W CALL FASRTL TO GET SDT @C@@@@ LB )@@G@@ DL A0,*0,X11 . $P GET A-EA NAME@D@@@@ L,H1 R1,ALC )@@G@@RTPTR,A3 . $P GET # OF ART @G@@@@ L,H2 X8,ARTPTR,A3 . $LD )@@G@@P GET ADDR OF START OF ART BLOCK @A@@@@ LXI,U X8,10 LE )@@G@@. @G@@@@NME1 SE A0,4,*X8 . $P SEARCH ART FOR MATCH ON 1LF )@@G@@ST WD OF NME@D@@@@ J ERROR . $T WAS MATCH FOUND ? LG )@@G@@@C@@@@ . $A YES NO,ERROR @A@@@@ L LH )@@G@@ X9,X8 . @A@@@@ AN,U X9,10 . @F@@@@LI )@@G@@ TE A1,5,X9 . $T DOES 2ND WD OF NAME MATCH ? @C@@@@LJ )@@G@@ J NME1 . $A YES NO,NME1 @C@@@@ J LK )@@G@@ GETADT . $J GETADT @[@@@@ . @[@@@@ . @C@@@@FABCDE*. LL )@@G@@ . $H FABCDE @D@@@@ L A3,*2,X11 LM )@@G@@. $P SET SCHEMA INDEX @D@@@@ TNZ SDTICF,A3 . $T IS SDT LN )@@G@@IN CORE ? @E@@@@ SLJ FASRTL . $W CALL FASRTL TO GET LO )@@G@@SDT @C@@@@ L A0,*0,X11 . $P GET AREA CODE@D@@@@ LP )@@G@@ L,H1 R1,ARTPTR,A3 . $P GET # OF ART @G@@@@ L,H2 LQ )@@G@@ X8,ARTPTR,A3 . $P GET ADDR OF START OF ART BLOCK @A@@@@ LXLR )@@G@@I,U X8,10 . @A@@@@ L,U R2,07777 . @G@@@@LS )@@G@@ MSE A0,0,*X8 . $P SEARCH ART FOR MATCH ON AREA CODE LT )@@G@@@D@@@@ J ERROR . $T WAS MATCH FOUND ? @C@@@@ LU )@@G@@ . $A YES NO,ERROR @A@@@@ L X9,XLV )@@G@@8 . @A@@@@ AN,U X9,10 . @C@@@@ J LW )@@G@@ GETADT . $J GETADT @[@@@@ . @[@@@@ . @C@@@@FSABCDLX )@@G@@*. . $H FSABCD @D@@@@ L A3,*LY )@@G@@2,X11 . $P SET SCHEMA INDEX @D@@@@ TNZ SDTICF,A3 . $T ILZ )@@G@@S SDT IN CORE ? @E@@@@ SLJ FASRTL . $W CALL FASRTL TMA )@@G@@O GET SDT @E@@@@ L A0,*0,X11 . $P GET SEQUENCE NUMBERMB )@@G@@ @A@@@@ AN,U A0,1 . @F@@@@ TP MC )@@G@@ A0 . $T IS SEQUENCE NUMBER VALID ? @A@@@@ J MD )@@G@@ ERROR . @A@@@@ TG,H1 A0,ARTPTR,A3 . @C@@@@ ME )@@G@@ J ERROR . $A YES NO,ERROR @E@@@@ MSI,U A0,1MF )@@G@@0 . $P CALCULATE DISP INTO ART @A@@@@ L,H2 X9,ARTPTR,MG )@@G@@A3 . @E@@@@ A X9,A0 . $P SET INDEX INTO ART MH )@@G@@@[@@@@ . @[@@@@ . @D@@@@GETADT L X8,1,X11 . $P GET BUFMI )@@G@@FER ADDR @A@@@@ LXI,U X8,1 . @A@@@@ LXMJ )@@G@@I,U X9,1 . @A@@@@ L,U R1,10 . @E@@@@MK )@@G@@ BT X8,0,*X9 . $P BLOCK TRANSFER ADT @C@@@@ ML )@@G@@ J 4,X11 . $E RETURN @[@@@@ . @[@@@@ . @A@@@@MM )@@G@@ . ** FRBNME ** @[@@@@ . @G@@@@ . THIS ROUMN )@@G@@TINE FETCHES A RECORD TABLE FROM THE ABSOLUTE SCHEMA @[@@@@ . @E@@@@MO )@@G@@ . THERE ARE THREE ENTRY POINTS WHOSE CALLS ARE: @D@@@@ . MP )@@G@@ LMJ X11,[FRBNME,FRBCDE,FSRBCD] @ @@@@ . MQ )@@G@@ + KEY @A@@@@ . + BUFFER @C@@@@ . MR )@@G@@ + SCHEMA-INDICATOR @B@@@@ . + $,('RMS )@@G@@TN-NAME') @[@@@@ . @B@@@@ . WHERE KEY CONTAINS: MT )@@G@@@F@@@@ . RECORD-NAME,RECORD-CODE,SEQUENCE-NUMBER MU )@@G@@@G@@@@ . BUFFER IS BUFFER INTO WHICH TABLE IS TO BE PLAMV )@@G@@CED @E@@@@ . SCHEMA-INDICATOR INDICATES WHICH SCHEMA:MW )@@G@@@B@@@@ . 0 - OLDSCHEMA @B@@@@ . MX )@@G@@ 1 - NEWSCHEMA @[@@@@ . @E@@@@ . THE ROUTINE TESTS SDMY )@@G@@TICF TO SEE SDT IS IN CORE @E@@@@ . IF NOT, A ROUTINE IS MZ )@@G@@CALLED TO READ IT @[@@@@ . @E@@@@ . IF TABLE CANNOT BE FNA )@@G@@OUND, ROUTINE RETURNS WITH @A@@@@ . ZERO IN LOCATION KEY NB )@@G@@@[@@@@ . @[@@@@ . @A@@@@ . ** FRBNME ** @C@@@@NC )@@G@@ . D L SCHEIDT - 11/74 @[@@@@ . @C@@@@FRBNMEND )@@G@@*. . $H FRBNME @D@@@@ L A3,*NE )@@G@@2,X11 . $P SET SCHEMA INDEX @D@@@@ TNZ SDTICF,A3 . $T INF )@@G@@S SDT IN CORE ? @E@@@@ SLJ FASRTL . $W CALL FASRTL TNG )@@G@@O GET SDT @D@@@@ L A0,*0,X11 . $P GET RECORD NAME NH )@@G@@@A@@@@ L X8,0,X11 . @A@@@@ DL A1,1NI )@@G@@,X8 . @A@@@@ DL A4,3,X8 . @D@@@@ L,NJ )@@G@@H1 R1,RRTPTR,A3 . $P GET # OF RRT @G@@@@ L,H2 X8,RNK )@@G@@RTPTR,A3 . $P GET ADDR OF START OF RRT BLOCK @A@@@@ LXI,U NL )@@G@@ X8,10 . @G@@@@NME2 SE A0,4,*X8 . $P SEARCH RRT FONM )@@G@@R MATCH ON 1ST WD OF NME@D@@@@ J ERROR . $T WAS MATNN )@@G@@CH FOUND ? @C@@@@ . $A YES NO,ERROR @A@@@@NO )@@G@@ L X9,X8 . @A@@@@ AN,U X9,10 NP )@@G@@. @G@@@@ DTE A1,5,X9 . $T DO 2ND AND 3RD WD OF NAMENQ )@@G@@ MATCH ? @C@@@@ J NME2 . $A YES NO,NME2 @G@@@@NR )@@G@@ DTE A4,7,X9 . $T DO 4TH AND 5TH WD OF NAME MATCH ? NS )@@G@@@C@@@@ J NME2 . $A YES NO,NME2 @C@@@@ J NT )@@G@@ GETTBL . $J GETTBL @[@@@@ . @[@@@@ . @C@@@@FRBCDENU )@@G@@*. . $H FRBCDE @D@@@@ L A3,*NV )@@G@@2,X11 . $P SET SCHEMA INDEX @D@@@@ TNZ SDTICF,A3 . $T INW )@@G@@S SDT IN CORE ? @E@@@@ SLJ FASRTL . $W CALL FASRTL TNX )@@G@@O GET SDT @D@@@@ L A0,*0,X11 . $P GET RECORD CODE NY )@@G@@@D@@@@ L,H1 R1,RRTPTR,A3 . $P GET # OF RRT @G@@@@ NZ )@@G@@ L,H2 X8,RRTPTR,A3 . $P GET ADDR OF START OF RRT BLOCK @A@@@@OA )@@G@@ LXI,U X8,10 . @A@@@@ L,U R2,07777 OB )@@G@@. @G@@@@ MSE A0,0,*X8 . $P SEARCH RRT FOR MATCH ON ROC )@@G@@ECD CODE @D@@@@ J ERROR . $T WAS MATCH FOUND ? OD )@@G@@@C@@@@ . $A YES NO,ERROR @A@@@@ L OE )@@G@@ X9,X8 . @A@@@@ AN,U X9,10 . @C@@@@OF )@@G@@ J GETTBL . $J GETTBL @[@@@@ . @[@@@@ . OG )@@G@@@C@@@@FSRBCD*. . $H FSRBCD @D@@@@ L OH )@@G@@ A3,*2,X11 . $P SET SCHEMA INDEX @D@@@@ TNZ SDTIOI )@@G@@CF,A3 . $T IS SDT IN CORE ? @E@@@@ SLJ FASRTL . $W COJ )@@G@@ALL FASRTL TO GET SDT @E@@@@ L A0,*0,X11 . $P GET SEQOK )@@G@@UENCE NUMBER @A@@@@ AN,U A0,1 . @F@@@@ OL )@@G@@ TP A0 . $T IS SEQUENCE NUMBER VALID ? @A@@@@ OM )@@G@@ J ERROR . @A@@@@ TG,H1 A0,RRTPTR,A3 . ON )@@G@@@C@@@@ J ERROR . $A YES NO,ERROR @E@@@@ MSOO )@@G@@I,U A0,10 . $P CALCULATE DISP INTO RRT @A@@@@ L,H2 OP )@@G@@ X9,RRTPTR,A3 . @E@@@@ A X9,A0 . $P SET INDEX INTOQ )@@G@@O RRT @E@@@@ L A1,1,X9 . $P GET RELATIVE SECTOROR )@@G@@ ADDR @A@@@@ LSSL A1,12 . @A@@@@ SSL OS )@@G@@ A1,12 . @A@@@@ SZ A0 . @E@@@@ OT )@@G@@ DI,U A0,64 . $P GET SECTOR ADDR OF TRACK @A@@@@ MSOU )@@G@@I,U A0,64 . @F@@@@ TE A0,TRKIC,A3 . $T IS PROV )@@G@@OPER TRACK IN CORE - @F@@@@ SLJ GETTRK . $W READ PROW )@@G@@OPER TRACK FROM SCHEMA @G@@@@ MSI,U A1,28 . $P GET WOROX )@@G@@D DISP OF RDT WITHIN TRK @E@@@@ AU,T1 A1,1,X9 . $P GOY )@@G@@ET LAST ADDR OF RDT @F@@@@ TG,U A2,1792 . $T IS RDT OZ )@@G@@COMPLETELY IN TRACK - @C@@@@ J GETTBL . $A YES NO,PA )@@G@@GETTBL@A@@@@ L A2,TRKAD,A3 . @E@@@@ A PB )@@G@@ A2,A1 . $P GET CORE ADDR OF RDT @E@@@@ L,T1 R1,1PC )@@G@@,X9 . $P GET # WORDS IN RDT @E@@@@ L A0,1,X11 PD )@@G@@. $P GET USER'S BUFFER ADDR @A@@@@ LXI,U A0,1 . PE )@@G@@@A@@@@ LXI,U A2,1 . @C@@@@ BT A0,0PF )@@G@@,*A2 . $P TRANSFER RDT @C@@@@ J 4,X11 . $E RETURN PG )@@G@@ @A@@@@GETTRK + 0 . @E@@@@ S PH )@@G@@ A0,TRKIC,A3 . $P UPDATE TRK-IN-CORE PTR @D@@@@ L,U X8,SPI )@@G@@IOPKT . $P GET I/O PKT ADDR @E@@@@ DL A4,*FILENM,A3 . PJ )@@G@@$P PUT FILE NAME IN PKT @A@@@@ DS A4,0,X8 . @E@@@@PK )@@G@@ L,U A0,1792 . $P PUT WORD CNT IN PKT @A@@@@ PL )@@G@@ S,H1 A0,4,X8 . @G@@@@ L A0,TRKAD,A3 . $TPM )@@G@@ HAS TRACK BUFFER BEEN GOTTEN - @C@@@@ JNZ A0,GTTRK2 PN )@@G@@. $A NO YES,GTTRK2@A@@@@ L A4,A1 . @A@@@@ PO )@@G@@ L A0,LAST$D . @F@@@@ AU,U A0,1 . $P GPP )@@G@@ET START ADDR OF TRK BUFFER @A@@@@ S A1,TRKAD,A3 . PQ )@@G@@@A@@@@ A,U A0,1792 . @E@@@@ S A0,LPR )@@G@@AST$D . $P GET CORE FOR BUFFER @A@@@@ ER MCORE$ PS )@@G@@. @A@@@@ L A0,A1 . @A@@@@ L PT )@@G@@ A1,A4 . @E@@@@GTTRK2 S,H2 A0,4,X8 . $P PUT BUFFER ADPU )@@G@@DR IN PKT @G@@@@ L A0,TRKIC,A3 . $P GET REL SECTOR ADPV )@@G@@DR OF TRACK @E@@@@ A A0,SECTAD,A3 . $P ADD ABS STPW )@@G@@ART SECTOR @E@@@@ S A0,5,X8 . $P PUT SECTOR ADDR IN PX )@@G@@PKT @E@@@@ I$OW SIOPKT . $P READ TRACK INTO CORE PY )@@G@@@D@@@@ L,S1 A0,3,X8 . $P GET I/O STATUS @C@@@@ PZ )@@G@@ TNE,U A0,5 . $T IS IT NOT 05 @D@@@@ SZ,S1 3,X8 QA )@@G@@ . $P ZERO 05 STATUS @E@@@@ TZ,S1 3,X8 . $T WQB )@@G@@AS READ SUCCESSFUL - @C@@@@ J SFIOER . $A YES NO,QC )@@G@@SFIOER@C@@@@ J *GETTRK . $E RETURN @]@@@@ . QD )@@G@@ @]@@@@ . @A@@@@ . ** FSBNME ** @]@@@@QE )@@G@@ . @G@@@@ . THIS ROUTINE FETCHES A SET TABLE FROM THEQF )@@G@@ ABSOLUTE SCHEMA @]@@@@ . @E@@@@ . THERE ARE THREE ENTRQG )@@G@@Y POINTS WHOSE CALLS ARE: @E@@@@ . LMJ X11,[FSBNMEQH )@@G@@,FSBCDE,FSSBCD] @A@@@@ . + KEY @A@@@@QI )@@G@@ . + BUFFER @C@@@@ . + SCHEMQJ )@@G@@A-INDICATOR @C@@@@ . + $,('RTN-NAME') QK )@@G@@@]@@@@ . @C@@@@ . WHERE KEY CONTAINS: QL )@@G@@@E@@@@ . SET-NAME,SET-CODE,SEQUENCE-NUMBER @G@@@@QM )@@G@@ . BUFFER IS BUFFER INTO WHICH TABLE IS TO BE PLACED QN )@@G@@@E@@@@ . SCHEMA-INDICATOR INDICATES WHICH SCHEMA:@C@@@@QO )@@G@@ . 0 - OLDSCHEMA @C@@@@ . QP )@@G@@ 1 - NEWSCHEMA @]@@@@ . @E@@@@ . THE ROUTQQ )@@G@@INE TESTS SDTICF TO SEE SDT IS IN CORE @E@@@@ . IF NOT, AQR )@@G@@ ROUTINE IS CALLED TO READ IT @]@@@@ . @E@@@@ . IFQS )@@G@@ TABLE CANNOT BE FOUND, ROUTINE RETURNS WITH @A@@@@ . ZERQT )@@G@@O IN LOCATION KEY @]@@@@ . @]@@@@ . @A@@@@ . QU )@@G@@ ** FSBNME ** @C@@@@ . D L SCHEIDT - 11/QV )@@G@@74 @]@@@@ . @C@@@@FSBNME*. . $H FSBNME QW )@@G@@ @E@@@@ L A3,*2,X11 . $P SET SCHEMA INDEX QX )@@G@@@E@@@@ TNZ SDTICF,A3 . $T IS SDT IN CORE ? @E@@@@QY )@@G@@ SLJ FASRTL . $W CALL FASRTL TO GET SDT @E@@@@ QZ )@@G@@ L A0,*0,X11 . $P GET SET NAMEAME @A@@@@ L RA )@@G@@ X8,0,X11 . @A@@@@ DL A1,1,X8 . @A@@@@RB )@@G@@ DL A4,3,X8 . @E@@@@ L,H1 R1,SRTPTR,RC )@@G@@A3 . $P GET # OF SRT @G@@@@ L,H2 X8,SRTPTR,A3 . $RD )@@G@@P GET ADDR OF START OF SRT BLOCK @A@@@@ LXI,U X8,9 RE )@@G@@. @G@@@@NME3 SE A0,4,*X8 . $P SEARCH SRT FOR MATCH ON 1RF )@@G@@ST WD OF NME@E@@@@ J ERROR . $T WAS MATCH FOUND ? RG )@@G@@ @C@@@@ . $A YES NO,ERROR @A@@@@ RH )@@G@@ L X9,X8 . @A@@@@ AN,U X9,9 . RI )@@G@@@G@@@@ DTE A1,5,X9 . $T DO 2ND AND 3RD WD OF NAME MATCHRJ )@@G@@ ? @C@@@@ J NME3 . $A YES NO,NME3 @G@@@@ RK )@@G@@ DTE A4,7,X9 . $T DO 4TH AND 5TH WD OF NAME MATCH ? @C@@@@RL )@@G@@ J NME3 . $A YES NO,NME3 @C@@@@ J RM )@@G@@ GETTBL . $J GETTBL @]@@@@ . @]@@@@ . @C@@@@RN )@@G@@FSBCDE*. . $H FSBCDE @E@@@@ L RO )@@G@@ A3,*2,X11 . $P SET SCHEMA INDEX @E@@@@ TNZ SDTIRP )@@G@@CF,A3 . $T IS SDT IN CORE ? @E@@@@ SLJ FASRTL RQ )@@G@@. $W CALL FASRTL TO GET SDT @C@@@@ L A0,*0,X11 . $P GRR )@@G@@ET SET CODE @E@@@@ L,H1 R1,SRTPTR,A3 . $P GET # OF SRT RS )@@G@@ @G@@@@ L,H2 X8,SRTPTR,A3 . $P GET ADDR OF START OF SRT )@@G@@RT BLOCK @A@@@@ LXI,U X8,9 . @A@@@@ L,RU )@@G@@U R2,07777 . @G@@@@ MSE A0,0,*X8 . $P SEARCH RV )@@G@@SRT FOR MATCH ON SET CODE @E@@@@ J ERROR . $T WRW )@@G@@AS MATCH FOUND ? @C@@@@ . $A YES NO,RX )@@G@@ERROR @A@@@@ L X9,X8 . @A@@@@ AN,U RY )@@G@@ X9,9 . @C@@@@ J GETTBL . $J GETTBL RZ )@@G@@@]@@@@ . @]@@@@ . @C@@@@FSSBCD*. SA )@@G@@. $H FSSBCD @E@@@@ L A3,*2,X11 . $P SET SCHEMA INSB )@@G@@DEX @E@@@@ TNZ SDTICF,A3 . $T IS SDT IN CORE ? SC )@@G@@ @E@@@@ SLJ FASRTL . $W CALL FASRTL TO GET SDT SD )@@G@@@E@@@@ L A0,*0,X11 . $P GET SEQUENCE NUMBER @A@@@@SE )@@G@@ AN,U A0,1 . @G@@@@ TP A0 SF )@@G@@. $T IS SEQUENCE NUMBER VALID ? @A@@@@ J ERROSG )@@G@@R . @A@@@@ TG,H1 A0,SRTPTR,A3 . @C@@@@ J SH )@@G@@ ERROR . $A YES NO,ERROR @E@@@@ MSI,U A0,9 SI )@@G@@. $P CALCULATE DISP INTO SRT @A@@@@ L,H2 X9,SRTPTR,A3 . SJ )@@G@@@E@@@@ A X9,A0 . $P SET INDEX INTO SRT @C@@@@SK )@@G@@ J GETTBL . $J GETTBL @]@@@@ . @A@@@@SL )@@G@@ . ** FITBRC ** @]@@@@ . @E@@@@ . THSM )@@G@@IS ROUTINE FETCHES THE ITEM NAME TABLE @C@@@@ . FORSN )@@G@@ A SPECIFIED RECORD @]@@@@ . @^@@@@ . THE CALLSO )@@G@@ IS @A@@@@ . LMJ X11,FITBRC @A@@@@ . SP )@@G@@ + RECORD-CODE@A@@@@ . + BUFFER @C@@@@ . SQ )@@G@@ + SCHEMA-INDICATOR @C@@@@ . + SR )@@G@@ $,('RTN-NAME') @^@@@@ . WHERE @G@@@@ . SS )@@G@@ RECORD-CODE CONTAINS CODE OF OBJECT RECORD @E@@@@ . ST )@@G@@ BUFFER IS WHERE TABLE IS RETURNED @G@@@@ . SU )@@G@@ SCHEMA-INDICATOR INDICATES OLD(0) OR NEW(1) SCHEMA @]@@@@ . SV )@@G@@ @E@@@@ . THE ROUTINE TESTS SDTICF TO SEE IF SDT IS IN CORE SW )@@G@@@E@@@@ . IF NOT, A ROUTINE IS CALLED TO READ IT @]@@@@SX )@@G@@ . @E@@@@ . IF RDT CANNOT BE FOUND, ROUTINE WILL RETURN SY )@@G@@ @C@@@@ . WITH ZERO IN RECORD-CODE @]@@@@ . SZ )@@G@@ @C@@@@FITBRC*. . $H FITBRC @E@@@@ TA )@@G@@ L A3,*2,X11 . $P SET SCHEMA INDEX @E@@@@ TNTB )@@G@@Z SDTICF,A3 . $T IS SDT IN CORE @E@@@@ SLJ TC )@@G@@ FASRTL . $W CALL FASRTL TO GET SDT @E@@@@ L A0,*TD )@@G@@0,X11 . $P GET RECORD CODE @E@@@@ L,H1 R1,RRTPTR,TE )@@G@@A3 . $P GET # OF RRT @G@@@@ L,H2 X8,RRTPTR,A3 . $TF )@@G@@P GET ADDR OF START OF RRT BLOCK @A@@@@ LXI,U X8,10 TG )@@G@@. @A@@@@ L,U R2,07777 . @G@@@@ MSE TH )@@G@@ A0,0,*X8 . $P SEARCH RRT FOR MATCH ON RECD CODE @E@@@@ J TI )@@G@@ ERROR . $T WAS MATCH FOUND @C@@@@ TJ )@@G@@ . $A YES NO,ERROR @A@@@@ L X9,X8 . TK )@@G@@@A@@@@ AN,U X9,2 . @C@@@@ J GETTTL )@@G@@BL . $J GETTBL @]@@@@ . @E@@@@ . ********************TM )@@G@@******************************** @E@@@@GETTBL L,U X8,SIOPKT TN )@@G@@. $P GET I/O PKT ADDR @E@@@@ DL A0,*FILENM,A3 . TO )@@G@@$P PUT FILE NAME IN PKT @A@@@@ DS A0,0,X8 . @E@@@@TP )@@G@@ L,T1 A0,1,X9 . $P PUT WORD LENGTH IN PKT @A@@@@ TQ )@@G@@ S,H1 A0,4,X8 . @E@@@@ L A0,1,X11 . $P PTR )@@G@@UT BUFFER ADDR IN PKT @A@@@@ S,H2 A0,4,X8 . @E@@@@TS )@@G@@ L A0,1,X9 . $P GET RELATIVE SECTOR ADDR @A@@@@ TT )@@G@@ LSSL A0,12 . @A@@@@ SSL A0,12 . TU )@@G@@@E@@@@ A A0,SECTAD,A3 . $P ADD ABS START SECTOR @E@@@@TV )@@G@@ S A0,5,X8 . $P PUT SECTOR ADDR IN PKT @E@@@@ TW )@@G@@ I$OW SIOPKT . $P READ TBL INTO BUFFER @E@@@@ TZTX )@@G@@,S1 3,X8 . $T WAS READ SUCCESSFUL ? @C@@@@ J TY )@@G@@ SFIOER . $A YES NO,SFIOER@C@@@@ J 4,X11 . $E RTZ )@@G@@ETURN @]@@@@ . @]@@@@ . @C@@@@ . THIS ROUUA )@@G@@TINE CALLS FASRTL - @E@@@@ . TO INITIALIZE THE IN-UB )@@G@@CORE SCHEMA REF TBL, AND@G@@@@ . PARTICULARLY TO INITIALIZE UC )@@G@@THE MAX TBL SIZE VALUES @C@@@@FDSDT*. . $H FUD )@@G@@DSDT @C@@@@ L A3,*0,X11 . $W CALL FASRTL @A@@@@UE )@@G@@ SLJ FASRTL . @A@@@@ J 2,X11 UF )@@G@@. $E @]@@@@ . @]@@@@ . @E@@@@ERROR SZ *0,XUG )@@G@@11 . $P STORE ZERO IN LOC KEY @C@@@@ J 4,X11 UH )@@G@@. $E RETURN @]@@@@ . @]@@@@ . @A@@@@ . UI )@@G@@ ** FASRTL ** @]@@@@ . @G@@@@ . THIS ROUTINE RUJ )@@G@@EADS THE SCHEMA REFERENCE TABLES FROM @C@@@@ . A UUK )@@G@@SER-SPECIFIED ABSOLUTE SCHEMA @E@@@@ . IT WILL HANDLE TWO DIFFEREUL )@@G@@NT SCHEMAS CONCURRENTLY @E@@@@ . AFTER THE READ, THE TABLES ARE PUM )@@G@@ACKED SO AS TO BE @A@@@@ . CONTINUOUS @]@@@@ . UN )@@G@@ @E@@@@ . SPACE FOR THE TABLES IS GOTTEN BY MCORE$ UO )@@G@@@]@@@@ . @E@@@@ . LOCATIONS ARTPTR, RRTPTR, SRTPTR ARE SUP )@@G@@ET UP WITH @E@@@@ . H1 CONTAINING # OF WORDS IN TABLE UQ )@@G@@ @E@@@@ . H2 CONTAINING START ADDR OF TABLE UR )@@G@@@]@@@@ . @A@@@@ . THE ROUTINE IS CALLED BY -@A@@@@ . US )@@G@@ SLJ FASRTL @E@@@@ . AND A3 MUST CONTAIN THE SCUT )@@G@@HEMA INDICATOR - @A@@@@ . 0 - OLDSCHEMA @A@@@@UU )@@G@@ . 1 - NEWSCHEMA @]@@@@ . @G@@@@ . A UV )@@G@@USE COMMAND MUST HAVE BEEN ISSUED PRIOR TO CALL - @E@@@@ . UW )@@G@@ @USE OLDSCHEMA.,[OLD-SCHEMA-FILE-NAME]. @E@@@@ . UX )@@G@@ @USE NEWSCHEMA.,[NEW-SCHEMA-FILE-NAME]. @]@@@@ . @A@@@@UY )@@G@@ . ** FASRTL ** @]@@@@ . @C@@@@FASRTL + UZ )@@G@@ 0 . $H FASRTL @A@@@@ L,U A0,4 VA )@@G@@. @A@@@@ L A1,ASGADR,A3 . @A@@@@ LSSL A1,VB )@@G@@18 . @A@@@@ LDSL A0,18 . @E@@@@ VC )@@G@@ ER CSF$ . $P ISSUE ASG COMMAND @E@@@@ JNVD )@@G@@ A0,ERR1 . $P GO TO ERR1 IF REJECTED @A@@@@ DL A0,VE )@@G@@*FILENM,A3 . @G@@@@ DS A0,ELTPKT . $P GET PROPER FIVF )@@G@@LE NAME INTO PKTS @A@@@@ DS A0,SIOPKT . @A@@@@VG )@@G@@ L,U A0,ELTPKT . @G@@@@ ER PFS$ VH )@@G@@. $P GET SECTOR ADDR OF ELEMENT IN FILE @G@@@@ JNZ A2,ERR2 VI )@@G@@ . $P GO TO ERR2 IF ELEMENT NOT FOUND @G@@@@ L A0,VJ )@@G@@ELTSEC . $P SAVE SECTOR DISP OF SCHEMA IN FILE @A@@@@ S VK )@@G@@ A0,SECTAD,A3 . @G@@@@ L A0,LAST$D . $P GET NEXVL )@@G@@T AVAIL D-BANK ADDR @A@@@@ AU,U A0,1 . VM )@@G@@@G@@@@ S A1,BUFADR . $P SAVE START ADDR OF NEW BUFFER VN )@@G@@ @A@@@@ S A1,SAVLOC . @A@@@@ S A1,VO )@@G@@R3 . @A@@@@ A,U A0,28 . @G@@@@ VP )@@G@@ ER MCORE$ . $P GET CORE FOR 1ST SECTOR OF SCHEMA @E@@@@VQ )@@G@@ L,U A0,28 . $P SET UP PACKET TO READ FDT@A@@@@ VR )@@G@@ S A0,WDCNT . @A@@@@ L A0,ELTSEC . VS )@@G@@@A@@@@ S A0,DRUMAD . @C@@@@ I$OW SIOPKT VT )@@G@@ . $P READ IN FDT @E@@@@ TZ IOSTAT . $T READ SUVU )@@G@@CCESSFUL ? @C@@@@ J SFIOER . $A YES NO,SFIOERVV )@@G@@@G@@@@ L A0,8,A1 . $P GET LENGTH OF 1ST SCD SEGMENT VW )@@G@@ @A@@@@ SSL A0,24 . @A@@@@ S A0,VX )@@G@@SWDCNT . @G@@@@ L A0,DRUMAD . $P INCREMENT PACVY )@@G@@KET TO NEXT SECTOR @A@@@@ A,U A0,1 . @A@@@@VZ )@@G@@ S A0,DRUMAD . @G@@@@SDTLP L A0,LAST$D WA )@@G@@. $P GET CORE BUFFER FOR NEXT SDT SEGMENT @A@@@@ AU,U A0,1 WB )@@G@@ . @A@@@@ S A1,BUFADR . @A@@@@ A WC )@@G@@ A0,SWDCNT . @A@@@@ S A0,LAST$D . @A@@@@WD )@@G@@ ER MCORE$ . @E@@@@ L A0,SWDCNT WE )@@G@@. $P SET UP PACKET FOR READ @A@@@@ S A0,WDCNT . WF )@@G@@@E@@@@ I$OW SIOPKT . $P READ IN NEXT SDT SEGMENT @E@@@@WG )@@G@@ TZ IOSTAT . $T READ SUCCESSFUL ? @C@@@@ WH )@@G@@ J SFIOER . $A YES NO,SFIOER@E@@@@ TNZ,T3 1,A1 WI )@@G@@ . $T MORE SDT SEGMENTS ? @C@@@@ J PCKSDT WJ )@@G@@. $A YES NO,PCKSDT@G@@@@ L A0,DRUMAD . $P INCREMENT SECWK )@@G@@TOR CNT TO NEXT SEGMENT @A@@@@ A,U A0,63 . @A@@@@WL )@@G@@ S A0,DRUMAD . @G@@@@ L,T3 A0,1,A1 WM )@@G@@. $P GET LENGTH OF NEXT SCD SEGMENT @A@@@@ LSSL A0,24 WN )@@G@@ . @A@@@@ SSL A0,24 . @A@@@@ S WO )@@G@@ A0,SWDCNT . @C@@@@ J SDTLP . $J SDTLP WP )@@G@@ @E@@@@PCKSDT L X9,SAVLOC . $P GET START ADDR OF SDT WQ )@@G@@@A@@@@ L A2,LAST$D . @E@@@@ A,U A2,1 WR )@@G@@ . $P GET START ADDR OF ART @A@@@@ L X8,A2 WS )@@G@@. @A@@@@ S,H2 A2,ARTPTR,A3 . @E@@@@ L A1,WT )@@G@@6,X9 . $P GET RT CNT WORD @A@@@@ SSL A0,36 WU )@@G@@ . @E@@@@ LDSL A0,12 . $P GET # ART ENTRIES WV )@@G@@ @A@@@@ S,H1 A0,ARTPTR,A3 . @G@@@@ MSI,U A0WW )@@G@@,10 . $P CALCULATE START OF PACKED RRT @A@@@@ A WX )@@G@@ A2,A0 . @A@@@@ S,H2 A2,RRTPTR,A3 . @A@@@@WY )@@G@@ SSL A0,36 . @E@@@@ LDSL A0,12 WZ )@@G@@. $P GET # RRT ENTRIES @A@@@@ S,H1 A0,RRTPTR,A3 . XA )@@G@@@G@@@@ MSI,U A0,10 . $P CALCULATE START OF PACKED SRT XB )@@G@@ @A@@@@ A A2,A0 . @A@@@@ S,H2 A2,XC )@@G@@SRTPTR,A3 . @A@@@@ SSL A0,36 . @E@@@@ XD )@@G@@ LDSL A0,12 . $P GET # SRT ENTRIES @A@@@@ S,XE )@@G@@H1 A0,SRTPTR,A3 . @G@@@@ MSI,U A0,9 . $P CALCULAXF )@@G@@TE END OF PACKED SDT @A@@@@ A A2,A0 . XG )@@G@@@A@@@@ S A2,SAVLOC . @G@@@@ L A0,A2 XH )@@G@@ . $P GET CORE FOR PACKED TABLES @A@@@@ ER MCOXI )@@G@@RE$ . @C@@@@ J GETART . $J GETART XJ )@@G@@@A@@@@ARTLP L A0,X8 . @G@@@@ TNE,H2 A0,RRTPXK )@@G@@TR,A3 . $T ARE THERE MORE ART IN NEXT SEGMENT ? @C@@@@ J GETXL )@@G@@RRT . $A YES NO,GETRRT@G@@@@ A,U X9,1764 . $P SXM )@@G@@ET PTR TO START OF NEXT SEGMENT @A@@@@GETART L,T2 X10,8,X9 XN )@@G@@. @E@@@@ A X10,X9 . $P SET INDEX TO START OF ARTXO )@@G@@@A@@@@ LXI,U X10,1 . @A@@@@ LXI,U X8,1 XP )@@G@@ . @E@@@@ L,T3 A0,8,X9 . $P GET # ART IN THIS SXQ )@@G@@EGMENT@A@@@@ MSI,U A0,10 . @G@@@@ L R1,XR )@@G@@A0 . $P BLOCK MOVE ART TO BE CONTINUOUS @A@@@@ BTXS )@@G@@ X8,0,*X10 . @A@@@@ LXI,U X8,0 . @C@@@@XT )@@G@@ J ARTLP . $J ARTLP @A@@@@RRTLP L A0,XU )@@G@@X8 . @G@@@@ TNE,H2 A0,SRTPTR,A3 . $T ARE THERE MORXV )@@G@@E RRT IN NEXT SEGMENT ? @C@@@@ J GETSRT . $A YES NO,XW )@@G@@GETSRT@G@@@@ A,U X9,1764 . $P SET PTR TO START OF NEXT XX )@@G@@SEGMENT @A@@@@GETRRT L,T2 X10,9,X9 . @E@@@@ A XY )@@G@@ X10,X9 . $P SET INDEX TO START OF RRT@A@@@@ LXI,U X1XZ )@@G@@0,1 . @A@@@@ LXI,U X8,1 . @E@@@@ YA )@@G@@ L,T3 A0,9,X9 . $P GET # RRT IN THIS SEGMENT@A@@@@ MSYB )@@G@@I,U A0,10 . @G@@@@ L R1,A0 . $P BLOCK MYC )@@G@@OVE RRT TO BE CONTINUOUS @A@@@@ BT X8,0,*X10 . YD )@@G@@@A@@@@ LXI,U X8,0 . @C@@@@ J RRTLP YE )@@G@@ . $J RRTLP @A@@@@SRTLP L A0,X8 . @G@@@@YF )@@G@@ TNE,H2 A0,SAVLOC . $T ARE THERE MORE SRT IN NEXT SEGMENT ? YG )@@G@@@C@@@@ J EXIT . $A YES NO,EXIT @G@@@@ A,YH )@@G@@U X9,1764 . $P SET PTR TO START OF NEXT SEGMENT @A@@@@GETSRTYI )@@G@@ L,T2 X10,10,X9 . @E@@@@ A X10,X9 . $P SYJ )@@G@@ET INDEX TO START OF SRT@A@@@@ LXI,U X10,1 . @A@@@@YK )@@G@@ LXI,U X8,1 . @E@@@@ L,T3 A0,10,X9 YL )@@G@@. $P GET # SRT IN THIS SEGMENT@A@@@@ MSI,U A0,9 . YM )@@G@@@G@@@@ L R1,A0 . $P BLOCK MOVE SRT TO BE CONTINUOUSYN )@@G@@ @A@@@@ BT X8,0,*X10 . @A@@@@ LXI,U X8YO )@@G@@,0 . @C@@@@ J SRTLP . $J SRTLP YP )@@G@@@G@@@@EXIT L,H2 A0,ARTPTR,A3 . $P BLOCK SHIFT RT TO LOWER CORE YQ )@@G@@ @A@@@@ L X8,A0 . @E@@@@ AN A0,YR )@@G@@R3 . $P GET SHIFT DIFFERENCE @E@@@@ ANU,H2 A0,ARTPYS )@@G@@TR,A3 . $P UPDATE RT PTRS @A@@@@ SN,H2 A1,ARTPTR,A3 YT )@@G@@. @A@@@@ ANU,H2 A0,RRTPTR,A3 . @A@@@@ SN,H2 A1YU )@@G@@,RRTPTR,A3 . @A@@@@ ANU,H2 A0,SRTPTR,A3 . @A@@@@ YV )@@G@@ SN,H2 A1,SRTPTR,A3 . @E@@@@ L,H2 A0,SAVLOC . $P GYW )@@G@@ET # WORDS IN RT @A@@@@ AN A0,X8 . @A@@@@YX )@@G@@ L R1,A0 . @A@@@@ L X9,R3 YY )@@G@@. @E@@@@ LXI,U X8,1 . $P SET TRANSFER INDICES YZ )@@G@@@A@@@@ LXI,U X9,1 . @E@@@@ BT X9,0,*X8 ZA )@@G@@ . $P BLOCK TRANSFER RT @E@@@@ L A0,X9 ZB )@@G@@. $P RELEASE UNUSED CORE @A@@@@ LSSL A0,18 . ZC )@@G@@@A@@@@ SSL A0,18 . @A@@@@ S A0,LAST$DZD )@@G@@ . @A@@@@ ER LCORE$ . @E@@@@ L,ZE )@@G@@U A0,10 . $P SET MAX ADT SIZE @A@@@@ S A0,ZF )@@G@@MAXADT,A3 . @G@@@@ L,H1 R1,RRTPTR,A3 . $P SEARCH ALL RRZG )@@G@@T TO FIND MAX RDT SIZE @A@@@@ L,H2 X8,RRTPTR,A3 . @A@@@@ZH )@@G@@ LXI,U X8,10 . @A@@@@MRLP SG,T1 A0,1,*X8 ZI )@@G@@. @A@@@@ J MREND . @A@@@@ L A1,ZJ )@@G@@X8 . @A@@@@ AN,U A1,10 . @A@@@@ ZK )@@G@@ L,T1 A0,1,A1 . @A@@@@ J MRLP . ZL )@@G@@@A@@@@MREND S A0,MAXRDT,A3 . @G@@@@ L,H1 R1,SRTPTRZM )@@G@@,A3 . $P SEARCH ALL SRT TO FIND MAX SDT SIZE @A@@@@ L,H2 X8,ZN )@@G@@SRTPTR,A3 . @A@@@@ LXI,U X8,9 . @A@@@@MSLP ZO )@@G@@ SG,T1 A0,1,*X8 . @A@@@@ J MSEND . ZP )@@G@@@A@@@@ L A1,X8 . @A@@@@ AN,U A1,9 ZQ )@@G@@ . @A@@@@ L,T1 A0,1,A1 . @A@@@@ J ZR )@@G@@ MSLP . @A@@@@MSEND S A0,MAXSDT,A3 . @A@@@@ZS )@@G@@ L,U A0,1 . @E@@@@ S A0,SDTICF,A3 ZT )@@G@@. $P SET SDT-IN-CORE-FLAG @C@@@@ J *FASRTL . $E RZU )@@G@@ETURN @]@@@@ . @^@@@@ . ERROR ROUTINES@]@@@@ . ZV )@@G@@ @C@@@@ERR1 S A0,SAVLOC . $H ERR1 @A@@@@ ZW )@@G@@ E$DIT EDTPKT . @A@@@@ E$COPY 40,MSG1 . ZX )@@G@@@E@@@@ E$OCTF 12,SAVLOC . $P OUTPUT ASG STATUS @A@@@@ZY )@@G@@ E$DITX . @A@@@@ P$RINT (PF 1,12,EDTZZ )@@G@@BUF) .@A@@@@ ER EXIT$ . $E @C@@@@ERR2 S A2,AA )@@G@@SAVLOC . $H ERR2 @A@@@@ E$DIT EDTPKT . AB )@@G@@@A@@@@ E$COPY 34,MSG2 . @E@@@@ E$OCTF 2,SAVLAC )@@G@@OC . $P OUTPUT PFS$ STATUS @A@@@@ E$DITX AD )@@G@@. @A@@@@ P$RINT (PF 1,12,EDTBUF) .@A@@@@ ER EXIAE )@@G@@T$ . $E @C@@@@SFIOER*. . $H SFIOER AF )@@G@@@A@@@@ E$DIT EDTPKT . @A@@@@ E$COPY 38,MSG3AG )@@G@@ . @A@@@@ L,U A1,3 . @A@@@@ L AH )@@G@@ A0,IOSTAT . @E@@@@ LMJ X11,EOCTF$ . $P OUTPUT AI )@@G@@I/O STATUS @A@@@@ E$DITX . @A@@@@ AJ )@@G@@ P$RINT (PF 1,12,EDTBUF) . @E@@@@ L$SNAP 'IO PKT',7,6,SIOPKTAK )@@G@@ . $P SNAP I/O PKT @A@@@@ ER EXIT$ . $E @]@@@@AL )@@G@@ . @]@@@@$(4). @C@@@@EDTPKT E$PKT 12,EDTBUF 'MSG','.'AM )@@G@@ . @A@@@@EDTBUF RES 12 . @A@@@@ASGADR + AN )@@G@@ ASGOLN . @A@@@@ + ASGNLN . @A@@@@AO )@@G@@ASGOLN '@ASG,A OLDSCHEMA. . ' . @A@@@@ASGNLN '@ASG,A NEWSCHEMA. .AP )@@G@@ ' . @A@@@@ELTPKT 'XXXXXXXX' . @A@@@@ 'SCHEMA AQ )@@G@@ ' . @A@@@@ + 0 . @A@@@@ AR )@@G@@ + 0,0,6,0,0,0 . @A@@@@ DO 4 , ' ' . AS )@@G@@@A@@@@ELTSEC + 0 . @A@@@@ + 0 AT )@@G@@ . @A@@@@SIOPKT 'XXXXXXXX' . @A@@@@ + AU )@@G@@ 0 . @A@@@@ + 0,020,0,0,0,0 . @A@@@@AV )@@G@@ + 0 . @A@@@@ + 0 AW )@@G@@. @A@@@@FILENM + OLDNME . @A@@@@ + NEWAX )@@G@@NME . @A@@@@OLDNME 'OLDSCHEMA' . @A@@@@NEWNMEAY )@@G@@ 'NEWSCHEMA' . @A@@@@TRKIC + -1 . AZ )@@G@@@A@@@@ + -1 . @A@@@@TRKAD + 0 BA )@@G@@ . @A@@@@ + 0 . @A@@@@SAVLOC + BB )@@G@@ 0 . @A@@@@SWDCNT + 0 . @A@@@@BC )@@G@@ARTPTR + 0 . @A@@@@ + 0 BD )@@G@@. @A@@@@RRTPTR + 0 . @A@@@@ + 0 BE )@@G@@ . @A@@@@SRTPTR + 0 . @A@@@@ BF )@@G@@ + 0 . @A@@@@SDTICF* + 0 . BG )@@G@@@A@@@@ + 0 . @A@@@@SECTAD* + 0 BH )@@G@@ . @A@@@@ + 0 . @A@@@@MAXADT* + BI )@@G@@ 0 . @A@@@@ + 0 . @A@@@@BJ )@@G@@MAXRDT* + 0 . @A@@@@ + 0 BK )@@G@@. @A@@@@MAXSDT* + 0 . @A@@@@ + 0 BL )@@G@@ . @]@@@@ . @A@@@@DRUMAD EQUF SIOPKT+5 BM )@@G@@. @A@@@@WDCNT EQUF SIOPKT+4,,H1 . @A@@@@BUFADR EQUF SIOBN )@@G@@PKT+4,,H2 . @A@@@@IOSTAT EQUF SIOPKT+3,,S1 . @]@@@@ . BO )@@G@@ @E@@@@MSG1 'ERROR IN ASSIGNING SCHEMA FILE - STATUS:' . BP )@@G@@@C@@@@MSG2 'SCHEMA ELEMENT NOT FOUND - STATUS:' .@E@@@@MSG3 'IBQ )@@G@@/O ERROR READING ABS SCHEMA - STATUS:' . @A@@@@ END BR )@@G@@ . ___ * + 0 . @A@@@@ + BS )@@G@@ 0 . @A@@@@MAXADT* + 0 . @A@@@@BT )@@G@@ + 0 *[@@@@*SDFF*@#@@@@ AXR$ @#@@@@$(4) BU )@@G@@ LIT. . @]@@@@$(1). @[@@@@. @^@@@@. * DB$AM * BV )@@G@@@[@@@@. @F@@@@. THIS IS ROUTINE, KNOWN AS DATA BASE ACCESS MBW )@@G@@ETHOD, IS @[@@@@. @E@@@@. TO READ & WRITE THE DATA BABX )@@G@@SE PAGE(S). @[@@@@. @^@@@@. ENTERED: @A@@@@. BY )@@G@@ LX,U X10,PARAM@A@@@@. LMJ X11,DB$AMBZ )@@G@@@[@@@@. @[@@@@. @F@@@@ANAME EQUF 0,X10 . WCA )@@G@@ORD 0 & 1 IS AREA NAME @G@@@@ . ICB )@@G@@F WORD 0 = 0 , WORD 1 IS DBP, @G@@@@ CC )@@G@@ . AND THE PAGE POINTED BY DBP @E@@@@ CD )@@G@@ . WILL BE READ @E@@@@STA EQUF 3,X10,S1 CE )@@G@@ . STATUS RETURNED: @G@@@@ . CF )@@G@@ 022 ACCESS BEYOND AN AREA @H@@@@ CG )@@G@@ . 052 GOT LESS PAGES THAN REQ'D @G@@@@ CH )@@G@@ . 053 FUNCTION CODE NOT R/W @G@@@@ CI )@@G@@ . 054 (PGCNT,BUFLEN,STPG) = 0 @I@@@@ CJ )@@G@@ . 055 AREA NOT SPECIFIED IN AREA CMD CK )@@G@@@E@@@@FNC EQUF 3,X10,S2 . FUNCTION CODE @E@@@@CL )@@G@@ . 020 READ @E@@@@ CM )@@G@@ . 010 WRITE @G@@@@FWRDCNT EQCN )@@G@@UF 3,X10,H2 . TOTAL NUMBER OF WORD READ @G@@@@ CO )@@G@@ . NOTE: THIS NUMBER DIVIDED BY @H@@@@CP )@@G@@ . PAGESZ SHOULD PROVID NUMCQ )@@G@@BER @F@@@@ . OF PAGES REACR )@@G@@D. @G@@@@PGCNT EQUF 4,X10,H1 . NUMBER OF PAGES REQUCS )@@G@@ESTED @D@@@@BUFADDR EQUF 4,X10,H2 . BUFFER ADDR CT )@@G@@@E@@@@BUFLEN EQUF 5,X10,H1 . LENGTH OF BUFFER @E@@@@CU )@@G@@STPG EQUF 5,X10,H2 . STARTING PAGE NUMBER@F@@@@ CV )@@G@@ . 1 = FIRST PAGE @E@@@@PAGESZCW )@@G@@ EQUF 6,X10,H2 . AREA PAGE SIZE @E@@@@DBP EQCX )@@G@@UF 1,X10 . DATA BASE POINTER @ @@@@DRUMADDR EQUF CY )@@G@@ 5,X10 @^@@@@NAME EQUF 1,X9@ @@@@PGBIT EQUF 0,X9CZ )@@G@@,S3 @ @@@@RCDBIT EQUF 0,X9,S4 @ @@@@CODE EQUF 0,X9DA )@@G@@,T1 @ @@@@PGLENG EQUF 3,X9,T1 @ @@@@PGALOCT EQUF 4,X9DB )@@G@@,H1 @C@@@@DB$AM* . $H @C@@@@ DC )@@G@@ SZ R3 . RESET R3@E@@@@ SZ STA DD )@@G@@ . $P RESET STATUS BYTE@G@@@@ SZ FWRDCNT DE )@@G@@ . $P RESET WORD(INPUT) COUNT @G@@@@ DL A0,7DF )@@G@@,X10 . $P MOVE LAST TWO TO 4TH&5TH @B@@@@ DS DG )@@G@@ A0,4,X10 . @[@@@@. @F@@@@. CHECK IF D OPTION SEDH )@@G@@T, GO TO TRACE ROUTINE IF IT IS @[@@@@. @E@@@@ TZ DI )@@G@@ DOPT . $T D OPTION SET @E@@@@ J TRACDJ )@@G@@E . $A YES,TRACE NO @E@@@@TRACER DK )@@G@@ . $H RETURN FRON TRACE@F@@@@ TNZ ANAME DL )@@G@@ . $T AREA NAME PROVIDED @E@@@@ J DB201 DM )@@G@@ . $A YES NO,DB201 @E@@@@ LX X9,C3 . $PDN )@@G@@ GET AREA TBL @B@@@@ LXI,U X9,9 . @E@@@@DO )@@G@@ LA,H1 A0,C3 . $P AREA TBL LENGTH @B@@@@ DP )@@G@@ DSL A0,36 . @G@@@@ DI,U A0,9 DQ )@@G@@ . $P COMPUTE THE ENTRY COUNT @B@@@@ ANA,U A0,1DR )@@G@@ . @E@@@@ DL A1,ANAME . $P A0,A1DS )@@G@@ = AREA NAME@C@@@@DB101 . $H @E@@@@DT )@@G@@ DTE A1,1,*X9 . $P SEARCH TBL @D@@@@ DU )@@G@@ JGD A0,DB101 . $T FOUND IT @E@@@@ JN DV )@@G@@ A0,DB955 . $A YES NO,DB100 @B@@@@ ANX X9,(DW )@@G@@9,9) . @ @@@@ J DB301 @^@@@@/. DBDX )@@G@@P ENTERED @C@@@@DB201 . $H @E@@@@DY )@@G@@ LA,H1 A0,C3 . $P GET C3 TBL LENGTH@B@@@@ DZ )@@G@@ DSL A0,36 . @G@@@@ DI,U A0,9 EA )@@G@@ . $P COMPUTE THE ENTRY COUNT @B@@@@ LR R1,AEB )@@G@@0 . @G@@@@ LX X9,C3 . $P GET FEC )@@G@@IRT AREA TBL ENTRY @B@@@@ LXI,U X9,9 . ED )@@G@@@B@@@@ LA A0,PGBIT . @B@@@@ AA EE )@@G@@ A0,RCDBIT . @E@@@@ LA A4,DBP . $PEF )@@G@@ COMPUTE AREA CODE@ @@@@ DSL A4,0,A0 @G@@@@ SEEG )@@G@@,T1 A4,0,*X9 . $T AREA CODE IN TBL ENTRY @E@@@@ EH )@@G@@ J DB955 . $A YES NO,DB954 @B@@@@ ANEI )@@G@@X X9,(9,9) . @F@@@@ DL A0,NAME EJ )@@G@@ . MOVE AREA NAME TO PKT @B@@@@ DS A0,ANAME EK )@@G@@ . @B@@@@ SZ A4 . @F@@@@ LAEL )@@G@@ A0,PGBIT . $P COMPUT PAGE NUMBER @G@@@@ LDEM )@@G@@SL A4,0,A0 . THIS PAGE NUMBER WILL BE @G@@@@ EN )@@G@@ SA A4,STPG . THE STARTING PAGE NUMBER @[@@@@EO )@@G@@/ @C@@@@DB301 . $H @B@@@@ EP )@@G@@ TNZ PGCNT . @G@@@@ J DB954 EQ )@@G@@ . $P CHECK PGCNT,BUFLEN,STPG @ @@@@ TNZ BUFLER )@@G@@EN @ @@@@ J DB954 @^@@@@ TNZ STPGES )@@G@@@ @@@@ J DB954 @F@@@@ SZ FWRDCNT ET )@@G@@ . $P INITIALIZE FWRDCNT @B@@@@ LA A0,PGLENG EU )@@G@@ . @E@@@@ SA A0,PAGESZ . $P SET PAGE SIEV )@@G@@ZE @]@@@@DB305 @G@@@@ LA A0,PGCNT . $TEW )@@G@@ CHECK IF PAGE ACCESSED BEYOND@B@@@@ AA A0,STPG EX )@@G@@ . @B@@@@ ANA,U A0,1 . @D@@@@ LAEY )@@G@@ A4,PGALOCT . $A YES,DB310 @B@@@@ TLE A4,AEZ )@@G@@0 . @B@@@@ J DB310 . @G@@@@FA )@@G@@ . $P CHECK IF BUFFER BIG ENOUGH FB )@@G@@@B@@@@ LA A0,PGCNT . @E@@@@ MSI FC )@@G@@ A0,PGLENG . $A YES NO,DB320 @B@@@@ LA A4,BFD )@@G@@UFLEN . @B@@@@ TLE A4,A0 . @B@@@@FE )@@G@@ J DB320 . @E@@@@ SA A0,PFF )@@G@@GCNT . $P COMPUTE DRUM ADDR@B@@@@ LA A0,STPG FG )@@G@@ . @B@@@@ ANA,U A0,1 . @B@@@@ FH )@@G@@ MSI A0,PAGESZ . @B@@@@ DSL A0,36 FI )@@G@@ . @B@@@@ DI,U A0,28 . @B@@@@ FJ )@@G@@ SA A0,DRUMADDR . @F@@@@ LA A0,FNC FK )@@G@@ . $T FUNCTION CODE = R/W @G@@@@ LR,U R1,4 FL )@@G@@ . $P SET UP TO CHECK FUNCTION CODE@B@@@@ LX X8,(FM )@@G@@1,CODETYPE) . @E@@@@ SE,T3 A0,,*X8 . $P PERFOFN )@@G@@RM SEARCH @F@@@@ J DB953 . $J ERROR, FNC FO )@@G@@NOT FOUND @B@@@@ ANX X8,(1,1) . @D@@@@ FP )@@G@@ LA,T2 A0,,X8 . GET F CODE @E@@@@ SA FQ )@@G@@ A0,FNC . $P RESET IN PKT @E@@@@ TZ,T1 0,X8FR )@@G@@ . $T IO$ OR IOW$ @D@@@@ J DOIO$ FS )@@G@@ . $J DO IO$ @]@@@@$(4). @]@@@@CODETYPE. @^@@@@ FT )@@G@@ +0,010,010 @^@@@@ +0,020,020 @^@@@@ +1,010,0FU )@@G@@11 @^@@@@ +1,020,021 @]@@@@$(1). @C@@@@DB401 FV )@@G@@ . $H @F@@@@ LA A0,X10 FW )@@G@@ . $P GET I/O PACKET ADDR @D@@@@ ER IOW$ FX )@@G@@ . $P DO I/O @E@@@@ TZ STA . $TFY )@@G@@ GOOD STATUS @E@@@@ LMJ X11,IOERR . $A YES NFZ )@@G@@O,IOERR @B@@@@ TNZ R3 . @E@@@@ GA )@@G@@ J 0,X11 . $J EXIT,RETURN @ @@@@DB402 LAGB )@@G@@,U A0,052 @ @@@@ SA A0,STA @ @@@@ J GC )@@G@@ 0,X11 @C@@@@DB310 . $H GD )@@G@@@ @@@@ LA,U A0,052 @G@@@@ SA A0,R3 GE )@@G@@ . $P ADJUST PGCNT TO END OF AREA @ @@@@ ANA A4,SGF )@@G@@TPG @C@@@@ JN A4,DB922 . $E @^@@@@ GG )@@G@@ AA,U A4,1@ @@@@ SA A4,PGCNT @ @@@@ J GH )@@G@@ DB305 @C@@@@DB320 . $H GI )@@G@@@^@@@@ SZ A3 @H@@@@ DI A3,PGLENG GJ )@@G@@ . $P ADJUST PGCNT TO FIT THE BUFFER @ @@@@ SA A3,PGK )@@G@@GCNT @C@@@@ JZ A3,DB402 . $E @ @@@@ GL )@@G@@ J DB305 @C@@@@DB922 . $HGM )@@G@@ @ @@@@ LA,U A0,022 @B@@@@ SA A0,SGN )@@G@@TA . @D@@@@ J 0,X11 . $J RETURGO )@@G@@N @C@@@@DB955 . $H @ @@@@ GP )@@G@@ LA,U A0,055 @ @@@@ J DB990 @C@@@@DB954 GQ )@@G@@ . $H @ @@@@ LA,U A0,0GR )@@G@@54 @ @@@@ J DB990 @C@@@@DB953 GS )@@G@@ . $H @ @@@@ LA,U A0,053 @ @@@@DB990 GT )@@G@@ SA A0,STA @B@@@@ J IOERR . GU )@@G@@@C@@@@DOIO$ . $H @B@@@@ LAGV )@@G@@ A0,X10 . @B@@@@ ER IO$ GW )@@G@@ . @D@@@@ J 0,X11 . $J RETURN @[@@@@GX )@@G@@. @^@@@@. TRACE ROUTINE @[@@@@. @C@@@@TRACE GY )@@G@@ . $H @F@@@@ TS TSWORD GZ )@@G@@ . $T SEE IF FREE TO TRACE @E@@@@ SX X1,SAVEX1 HA )@@G@@ . $P SAVE X1,X2,X3,X11@B@@@@ SX X2,SAVEX2 . HB )@@G@@@B@@@@ SX X3,SAVEX3 . @B@@@@ SX HC )@@G@@ X11,SAVEX11 . @ @@@@ E$DIT EDPKT @ @@@@ HD )@@G@@ E$COPY 12,ANAME @A@@@@ E$FD1 ('FUNC=') @ @@@@HE )@@G@@ E$OCTF 3,FNC @A@@@@ E$FD1 (',STPG=') HF )@@G@@@A@@@@ E$DECF 5,STPG @A@@@@ E$FD2 (',PHG )@@G@@GCNT=') @A@@@@ E$DECF 3,PGCNT @A@@@@ E$HH )@@G@@FD2 (',BUFADD=') @A@@@@ E$OCTF 6,BUFADDR @^@@@@HI )@@G@@ E$DITX @A@@@@ P$RNTA PRTAPKT @G@@@@HJ )@@G@@ LX X1,SAVEX1 . $P RESTORE X1,X2,X3,X11 HK )@@G@@@C@@@@ LX X2,SAVEX2 . @C@@@@ LXHL )@@G@@ X3,SAVEX3 . @C@@@@ LX X11,SAVEX1HM )@@G@@1 . @A@@@@ C$TS TSWORD @E@@@@ HN )@@G@@ J TRACER . $J RETURN @]@@@@$(4). HO )@@G@@@A@@@@PF FORM 12,6,18 @]@@@@PRTAPKT. @A@@@@ HP )@@G@@ PF 1,14,LINE @^@@@@ 'DB$AMPF' @A@@@@EDPKT HQ )@@G@@ E$PKT 14,LINE @^@@@@LINE RES 14 @]@@@@SAVEX1HR )@@G@@ +0@]@@@@SAVEX2 +0@]@@@@SAVEX3 +0@]@@@@SAVEX11 +0@]@@@@TSWORDHS )@@G@@ +0@^@@@@ END ___ @]@@@@SAVEX1 +0@]@@@@SAVEX2HT )@@G@@ +0@]@@@@SAVEX3 +0@]@@@@SAVEX11 +0@]@@@@*[@@@@*SDFF*@^@@@@ HU )@@G@@ AXR$ @^@@@@$(4) LIT @]@@@@$(1). @]@@@@HV )@@G@@F$ASG*. @A@@@@ SX X11,SAVEX11 @E@@@@ LAHW )@@G@@,H1 A4,C3 . GET AREA TBL COUNT @C@@@@ DSL HX )@@G@@ A4,36 . @E@@@@ DI,U A4,9 HY )@@G@@ . COMPUTE ENTRY COUNT @E@@@@ LX,H2 X8,C3 . GEHZ )@@G@@T TBL ENTRY ADDR @^@@@@ LXI,U X8,9@E@@@@ JZ IA )@@G@@ A4,0,X11 . RETURN IF 0 ENTRY @^@@@@ ANA,U A4,1IB )@@G@@@]@@@@ASGLOOP. @ @@@@ E$DIT EDPKT @^@@@@ E$IC )@@G@@CHAR '@' @A@@@@ E$FD1 ('ASG,A') @^@@@@ E$ID )@@G@@CHAR ' ' @ @@@@ E$FD2 1,*X8 @^@@@@ E$CHAR IE )@@G@@ ' ' @^@@@@ E$CHAR '.' @#@@@@ E$DITX @ @@@@ IF )@@G@@ LA,U A0,LINE @^@@@@ ER CSF$@A@@@@ JNIG )@@G@@ A0,ASGXER @A@@@@ JGD A4,ASGLOOP @A@@@@IH )@@G@@ LX X11,SAVEX11 @ @@@@ J 0,X11 II )@@G@@@[@@@@/ @]@@@@ASGXER. @ @@@@ LX,U X10,LINE @A@@@@IJ )@@G@@ LMJ X11,ASGERR @^@@@@LINE RES 10 @A@@@@IK )@@G@@EDPKT E$PKT 10,LINE @^@@@@SAVEX11 RES 1 @^@@@@IL )@@G@@ END ___A@^@A@A@ E$DIT EDPKT IM )@@G@@@A@A@ E$COPY )@@[Y*@@@@@@;:)@@MW#K@@S @@@@TG#0@@H;CK@@MW#)@@GIN )@@G@@ @@@@U;G@@@MC#0@@HBF2-85*CALC*AA@@@@)@F[Y*@@@@@@C@0@@G;?@@@GC@K@@R @@@@VIO )@@G@@ @@@@U @@@@T @@@@S @@@@G/KF@@@C@F)@@;$)@@MAB@@@@)@Q[Y*@]@@@@:8@@@AG8@@@[IP )@@G@@;!@@@A;(K@@Y')G@@.H8@@@[ @@@@A @@@@M;CK@@M;?@@@A @@@@GAC@@@@)@-[Q*@C@)C@IQ )@@G@@@@@@@@/KB@@@/!K@@:/^0@@WH80@@[/!K@@::9)@@AG9)@@[G8K@@[(@@@@G @@@@GAD@@@@IR )@@G@@)@:[Y*@]@@@@C#K@@KC#@@@K/K @@@O9)@@[')A@@4;(#@@@ @@@@MR@0@@MT9)@@AG9)@@AIS )@@G@@D[)@@MAE@@@@)@6[Y*@@@@@@C(X@@@C!X@@@C1X@@@C5X@@@/S@@@@/S@@@@/S@@@@N@0@@KIT )@@G@@N@)@@KC#0@@KC#)@@KAF@@@@)[[[Y*@@)]@@H9@@@0/K@@[K:9@@@ /[@@[K;!@@@A @@@@KIU )@@G@@ @@@@HC9)@@ C[K@@GC-X@@@C>X@@@AG@@@@)[G[Q*@)@C@@@@@@@@O]@@@L/[K@[=CTS@@[IV )@@G@@R]@@@I/KB@@@8^)@[AG@K@@KT8K@@E+80@@JE@0@@KAH@@@@)[Q[Q%@C@)]@@@@@@@G9K@@[IW )@@G@@H[S@@[C[S@@]/K@@[RO]@@@L/[K@[=C5S@@@/K@@[X:OC@@@/@@@[XAI@@@@)[)[Q*@)@-@@IX )@@G@@@@@@@@W80@@D @@@@JCD@@@@@@[@@@/KB@@@C@@@[&/KB@@@;@@@@M&#C@@[C@@@@LAJ@@@@IY )@@G@@)[%[Q%@CK[@^[@K@@@CW[@@@P@K@['/G0@[78#0@[\9.[)@[8#0@[\&8K@@DR^K@@@9!E@@@IZ )@@G@@/@0@[7AK@@@@)[4[Y*@@]@@@C@@@@S/!0@@IC];@@@&'0@@[@@D@@D/KB@@@ @E@@]C8@@__JA )@@G@@/KB@@@A^U@@][WE@@]AL@@@@)[_[Q%@)C]@)@)@@@@&'0@@[@@@@@ /K@@[.C];@@[&'0@@]JB )@@G@@/K@@@]C#@@]B/!0@[M/!0@[$/!0@[#AM@@@@)]D[Y*)@@]@@T8@@@HC[J@]SE@0@@KH9@@@AJC )@@G@@;!@@@A @@@@K @@@@GC8K@@#C[K@@S/!0@@IC];@@@AN@@@@)]O[Y*)]@@@@@@@@@#@@@@@]JD )@@G@@@@@@@]@@@@@[@@@@@[@@@@@@@@@@@@/K@@]7C@K@@G8#K@]IG@@@@KAO@@@@)]Z[Y*@@@@@@JE )@@G@@@@@@@D@@@@@B@@@@@A@@@@@C@@@@@B@@@@@ @@@@@A@@@@@ @@@@@^@@@@@^@@@@@#AP@@@@JF )@@G@@)]%[Y*@@@)@@/!0@@IC];@@@&'0@@[@@@@@G@@@@@F@@@@@E@@@@@D@@@@@G@@@@@C@@@@@FJG )@@G@@@@@@@EAQ@@@@)]5[Q*)C]@)C@C@@@@C@@@@S/!0@@IC];@@@&'0@@]/K@@@]C#@@#D/!0@[MJH )@@G@@/!0@[$/!0@[#C@@@@SAR@@@@)]_[Q%@]@C@]@@@@@@/K@@]7T@K@@NG8K@@[G90@@[/!0@[#JI )@@G@@C@@@@S/!0@@IC];@@[C[0@@H/!0@[#AS@@@@)#D[Q*]@C]@)C]@@@@/K@@@]C#@@#N/!0@[MJJ )@@G@@/!0@[$/!0@[#C@@@@S/!0@@IC];@@@&'0@@[@@@@@ AT@@@@)#N[Q*]@C]@)C]@@@@/K@@@]JK )@@G@@C#@@#"/!0@[M/!0@[$/!0@[#C@@@@S/!0@@IC];@@@&'0@@[@@@@@[AU@@@@)#X[Q%@)@C@)JL )@@G@@@@@@@@C];@@[C[0@@H/!0@[#C@@@@S/!0@@IC];@@@&'0@@]R@K@@G/!0@[M/!0@[$AV@@@@JM )@@G@@)#$[Y%@C@@@@;H@@@MC[@@@[;G@@@=C[0@@HG@@@@NT90@[=W8@@@O @@@@G/!0@[#C@@@@SJN )@@G@@/!0@@IAW@@@@)#2[Y*@]@@@@C@F)@@;$)@@M;:)@@MC#)@@HW@@@#" @@@@GC@K@@NC#0@@HJO )@@G@@G@K@@LW@@@@K;DK@@MAX@@@@)#.[Q*@)]@)C]@@@@@C#@@ >/!0@[M/!0@[$/!0@[#C@@@@SJP )@@G@@/!0@@IC];@@@&'0@@[@@@@@#/KF@@@AY@@@@)^B[Q%@]@C@C]@@@@@/@K@^O/!0@[#C@@@@TJQ )@@G@@C[0@@H/!0@[#C@@@@S/!0@@IC];@@[&'0@@^/K@@@]AZ@@@@)^L[Q*@)@)]@@@@@@@/!0@[#JR )@@G@@C@@@@S/!0@@IC];@@@&'0@@]/K@@^^G@K@@NT8K@@ET8K@@E!8K@@EBA@@@@)^V[Q*C@)]@]JS )@@G@@@@@@@@/!0@@IC];@@@&'0@@[/K@@^^G@K@@N/!0@[#C@@@@S/!0@@IC];@@[C[0@@HBB@@@@JT )@@G@@)^>[Q*)C@C@C@@@@@@C[0@@H/!0@[#C@@@@T;J@@@G/!0@@IC];@@@&'0@@]/K@@^^/!0@[#JU )@@G@@C@@@@SBC@@@@)^\[Q*)]@C@C@@@@@@C@K@@S/!0@@IC];@@@&'0@@[/K@@^^G@K@@NW@@@ >JV )@@G@@ @@@@G/!0@[#C@@@@SBD@@@@)^9[Y*)@)@@@H9@@@A;!@@@A @@@@K @@@@GC8K@@#C[K@@SJW )@@G@@/!0@@IC];@@@&'0@@[/K@@^^;CK@@YBE@@@@) ^[Q*)@)]@@@@@@@@@@@@@[@@@@@@@@@@@@JX )@@G@@/K@@^^C@K@@G8#K@ [G@@@@KT8@@@HC[J@ FE@0@@KBF@@@@) I[Y*@@@@@@@@@@@B@@@@@ JY )@@G@@@@@@@A@@@@@ @@@@@^@@@@@^@@@@@#@@@@@#@@@@@]@@@@@]@@@@@[BG@@@@) T[Y*@@@@@@JZ )@@G@@@@@@@F@@@@@E@@@@@D@@@@@G@@@@@C@@@@@F@@@@@E@@@@@D@@@@@B@@@@@A@@@@@CBH@@@@KA )@@G@@) =[Q*@)]@)C]@@@@@C#@@ \/!0@[M/!0@[$/!0@[#C@@@@S/!0@@IC];@@@&'0@@[@@@@@#KB )@@G@@@@@@@GBI@@@@) ,[Q%@@)]@]@@@@@@/!0@@IC];@@@&'0@@[/K@@ :C@K@@S/!0@@IC];@@@KC )@@G@@&'0@@[@@@@@ /K@@@]BJ@@@@) 8[Q*)@)C@@@@@@@@T90@@E!8K@[=T90@@E!8K@J*/@K@A^KD )@@G@@/!0@[#C@@@@TC[0@@H/!0@[#C@@@@SBK@@@@)A][Q*]@]@C@@@@@@@C[0@@H/!0@[#C@@@@SKE )@@G@@/!0@@IC];@@@&'0@@]/K@@ :G@K@@NT90@@E!8K@@EBL@@@@)AG[Q*)]@)]@]@@@@@/!0@@IKF )@@G@@C];@@@&'0@@[/K@@ &&'0@@[/K@@ ./!0@[#C@@@@S/!0@@IC];@@[BM@@@@)AQ[Y*@@)@)@KG )@@G@@/!0@@IC];@@@&'0@@[/K@@ :C@K@@GP;@@@[%8K@@]T8@@@]W8@@@E;G@@@/C@@@@SBN@@@@KH )@@G@@)A-[Q*]@]@]@@@@@@@/K@@ :;CK@@YC@K@@S/!0@@IC];@@@&'0@@[/K@@ :+8@@@J;C@@@YKI )@@G@@C@@@@SBO@@@@)A:[Q*C@)@)]@@@@@@/!0@[#C@@@@S/!0@@IC];@@[C[0@@H/!0@[#C@@@@SKJ )@@G@@/!0@@IC];@@@&'0@@^BP@@@@)A5[Q*]@C@]@@@@@@@/!0@@IC];@@#G[0@@HT90@@E/!0@[#KK )@@G@@C@@@@S/!0@@IC];@@]G[0@@HT90@[=BQ@@@@)A_[Q*)@)@)@@@@@@@C@@@[]C@K@[#/!0@@IKL )@@G@@C];@@@&'0@@[/K@@ :O#K@@NT90@@B/!0@[#C@@@@SBR@@@@)BD[Y*@@@@@@)@@@@H;*@@@^KM )@@G@@C@@@@T)@@@@H;*@@@#C@@@@U)@@@@H;*@@@]C@@@@V)@@@@H;*@@@[BS@@@@)BO[Y*@@)@)@KN )@@G@@/!0@@IC];@@]&'0@@#/K@@ :O#K@@G;CK@@M;?@@@M @@@@G)@@@@H;*@@@ C@@@@SBT@@@@KO )@@G@@)BZ[Q*)@)@)@@@@@@@C];@@[G[0@@H/!0@[#C@@@@UG[0@@H/!0@[#C@@@@TC[0@@H/!0@[#KP )@@G@@C@@@@SBU@@@@)B([Q%@C@C@)]@@@@@/K@@ :O#K@@N/!0@[#C@@@@S/!0@@IC];@@@G[0@@HKQ )@@G@@/!0@[#C@@@@S/!0@@IBV@@@@)B3[Q*C@)C]@)C@@@@@@@@@#/K@@@]C#@@B//!0@[M/!0@[$KR )@@G@@/!0@[#C@@@@S/!0@@IC];@@@&'0@@[BW@@@@)B.[Q*C@]@@@@@@@@@C];@@@;!0@@GC]@@@SKS )@@G@@/!0@@IC];@@#C[0@@S;F@@@S/!0@@IC];@@#&'0@@^BX@@@@)CB[Q%@@)@@@@@@@@@C@K@@PKT )@@G@@-]@@@T-[0@@S;FK@@M;J@@@A/!0@@IC];@@];!0@@AC]@@@S/!0@@IBY@@@@)CL@,%@)C]@@KU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#/K@@@]C#@@CP/!0@[M/!0@[$BZ@@@@KV )@@G@@@@^@@F@@J@@[@@L@@:@].@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KW )@@G@@@@@@@@@@@@@@@@@@CQC3 CL0008 @@E@@@@@@@]^CL0014 @@E@@@KX )@@G@@@@@@[;CL0015 @@E@@@@@@@#ECL0077 @@E@@@@@@@AACL0103 @@E@@@KY )@@G@@@@@@ &CL0231 @@E@@@@@@@ 5CL0281 @@E@@@@@@@ALCL0295 @@E@@@KZ )@@G@@@@@@ 5CL0298 @@E@@@@@@@B^CL0311 @@E@@@@@@@ 0CL0333 @@E@@@LA )@@G@@@@@@ALCL0721 @@E@@@@@@@]2CL0724 @@E@@@@@@@]2CL1042 @@E@@@LB )@@G@@@@@@B.CL1136 @@E@@@@@@@A:CL1141 @@E@@@@@@@A>CL1229 @@E@@@LC )@@G@@@@@@AACL1500 @@E@@@@@@@]2CL1505 @@E@@@@@@@]CCL1522 @@E@@@LD )@@G@@@@@@^CCL1530 @@E@@@@@@@#OCL1604 @@E@@@@@@@ALCL1623 @@E@@@LE )@@G@@@@@@#XCL1630 @@E@@@@@@@#OCL1640 @@E@@@@@@@#_CL1657 @@E@@@LF )@@G@@@@@@#OCL1713 @@E@@@@@@@AYCL1715 @@E@@@@@@@AYCL1717 @@E@@@LG )@@G@@@@@@AYCL1737 @@E@@@@@@@ANCL1815 @@E@@@@@@@ &CL1819 @@E@@@LH )@@G@@@@@@ &CL1824 @@E@@@@@@@^;CL1907 @@E@@@@@@@[;CL2022 @@E@@@LI )@@G@@@@@@^QCL210 @@E@@@@@@@^+CL413 @@E@@@@@@@^*CL415 @@E@@@LJ )@@G@@@@@@^5CL417 @@E@@@@@@@B3CL761 @@E@@@@@@@];CL893 @@E@@@LK )@@G@@@@@@AYCL895 @@E@@@@@@@AYCL897 @@E@@@@@@@AY@@@@@@@@@@@@@@@@@@LL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@*[@@@@*SDFF*@[@@@[ . @A@@@[ . LM )@@G@@ ** CONF-1 ** @[@@@[ . @E@@@[ . THIS ELEMENT CONTAINS THE LN )@@G@@FOLLOWING ROUTINES: @C@@@[ . BLDC1, BLDC3, CTINIT, BLDC8LO )@@G@@ @[@@@[ . @[@@@[ . @A@@@[ . ** BLDC1 ** LP )@@G@@@[@@@[ . @D@@@[ . THIS ROUTINE PRODUCES ALL OF TABLES FOR LQ )@@G@@@B@@@[ . EACH INPUT OBJECT RECORD @[@@@[ . @D@@@[ . LR )@@G@@ IT BUILDS C1/C9 ITSELF, AND CALLS ROUTINES @C@@@[ . TO LS )@@G@@BUILD C5/C11, C6/C12, C7/C13, @B@@@[ . C8, C14, ANDLT )@@G@@ C15 @[@@@[ . @E@@@[ . ON THE INITIAL CALL, BUFFER SPACE FOR LU )@@G@@THE TABLES @C@@@[ . AND SCHEMA TABLES IS MCORED @[@@@[LV )@@G@@ . @A@@@[ . THE ROUTINE CALL IS @A@@@[ . LW )@@G@@ LX,U X10,NAMEBUF@A@@@[ . LMJ X11,BLDC1 @G@@@[ . LX )@@G@@ WHERE NAMEBUF CONTAINS THE OBJ RECORD NAME @[@@@[LY )@@G@@ . @E@@@[ . IF AN INVALID NAME IS GIVEN, THIS ROUTINE WILL LZ )@@G@@@B@@@[ . PRODUCE WARNING MESSAGES @[@@@[ . @#@@@[ MA )@@G@@ AXR$. @#@@@[$(2) LIT. @A@@@[PF FORM 12,6,18 MB )@@G@@. @G@@@[ . NUMOAP* EQU 30 . MAX NUM OWN/AUTO PTR PER MC )@@G@@C1/C9 ENTRY @F@@@[ . NUMREC EQU 100 . MAX NUM REC ENTRIESMD )@@G@@ IN C1/C9 @B@@@[ . C1SIZE EQU NUMREC*(NUMOAP+39) . @A@@@[ . C5SME )@@G@@IZE EQU (NUMREC/3)*233 . @A@@@[ . C7SIZE EQU (NUMREC/3)*200 . MF )@@G@@@A@@@[ . C8SIZE EQU NUMREC*6+28 . @[@@@[ . @]@@@[$(1). MG )@@G@@@[@@@[ . @B@@@[BLDC1*. . $H BLDC1 @D@@@[ MH )@@G@@ S,H2 X11,RETURN . $P SAVE RETURN ADDR @E@@@[ S,H2 X10MI )@@G@@,RNMPTR . $P STORE NAME PTR IN CALL @E@@@[ L A1,0,X10 MJ )@@G@@ . $P SAVE FIRST WORD OF NAME @A@@@[ S A1,SA1 MK )@@G@@. @E@@@[ TNZ BUFFLG . $T IS THIS INITIAL CALL ? ML )@@G@@@C@@@[ SLJ CTINIT . $A NO YES,CTINIT@E@@@[ SZ MM )@@G@@ X7 . $P SET FOR FIRST SCHEMA @A@@@[ SZ SFIMN )@@G@@ND . @A@@@[ SZ NFFLG . @A@@@[ MO )@@G@@ SZ C8FLG . @A@@@[ SZ CURREC . MP )@@G@@@F@@@[C1STRT LMJ X11,FRBNME . $W FRBNME - GET RDT FROM SCHEMA MQ )@@G@@@A@@@[RNMPTR* + 0 . @A@@@[RTABAD* + 0 MR )@@G@@ . @A@@@[ + SFIND . @A@@@[ + MS )@@G@@ $,('BLDC1') . @E@@@[ TNZ *RNMPTR . $T WAS RECMT )@@G@@ORD NAME VALID ? @C@@@[ J C1ERR . $A YES NO,C1ERR MU )@@G@@@F@@@[ TNZ C8FLG . $T IS THIS SECOND PASS FOR NAME MV )@@G@@@F@@@[ SLJ BLDC8 . $W BLDC8 - ENTER OBJ REC IN C8 MW )@@G@@@E@@@[ LMJ X11,BLDC5 . $W BLDC5 - BUILD C5/C11 @D@@@[MX )@@G@@ L X8,RTABAD . $P SET PTR TO RDT @E@@@[ L,TMY )@@G@@3 A0,1,X8 . $P SAVE OBJECT RECORD CODE @A@@@[ LSSL A0,MZ )@@G@@24 . @A@@@[ SSL A0,24 . @A@@@[ NA )@@G@@ S A0,C1ORCD . @G@@@[ L A0,RTABAD . $P SNB )@@G@@AVE OWNER, AUTO, MANUAL LIST PTRS @A@@@[ AU,T1 A0,4,X8 NC )@@G@@. @A@@@[ S A1,C1LPTR . @A@@@[ L,S1 A1,ND )@@G@@3,X8 . @A@@@[ S,S1 A1,C1LPTR . @A@@@[ NE )@@G@@ AU,T2 A0,4,X8 . @A@@@[ S A1,C1LPTR+1 . NF )@@G@@@A@@@[ L,S2 A1,3,X8 . @A@@@[ S,S1 A1,C1LPTRNG )@@G@@+1 . @A@@@[ AU,T3 A0,4,X8 . @A@@@[ S NH )@@G@@ A1,C1LPTR+2 . @A@@@[ L,S3 A1,3,X8 . @A@@@[NI )@@G@@ S,S1 A1,C1LPTR+2 . @E@@@[ SZ,S2 C1ORCD NJ )@@G@@. $P SET CHAIN-EMPTY FLAG @A@@@[ L,U A0,0 . NK )@@G@@@F@@@[ SLJ C1LIST . $W C1LIST- PROCESS OWNER LIST NL )@@G@@@A@@@[ L,U A0,1 . @E@@@[ SLJ C1LIST NM )@@G@@ . $W C1LIST- PROCESS AUTO LIST@A@@@[ L,U A0,2 NN )@@G@@. @F@@@[ SLJ C1LIST . $W C1LIST- PROCESS MANUAL LINO )@@G@@ST @E@@@[ TZ,S2 C1ORCD . $T WERE ALL LISTS EMPTY ? NP )@@G@@@C@@@[ J C1EXIT . $A YES NO,C1EXIT@A@@@[ L NQ )@@G@@ A3,C1ORCD . @A@@@[ LSSL A3,24 . @A@@@[NR )@@G@@ S A3,C1SWRD . @A@@@[ L,U A1,4 NS )@@G@@. @G@@@[ SLJ C1STOR . $W C1STOR - STORE OBJ REC W/NT )@@G@@ NO PTR INFO@A@@@[C1EXIT L A0,X7 . @D@@@[ TNENU )@@G@@ A0,NS$FLG . $T ANOTHER SCHEMA ? @C@@@[ J C1EXT2 NV )@@G@@ . $A YES NO,C1EXT2@E@@@[ L,U X7,1 . $P SET FORNW )@@G@@ SECOND SCHEMA @A@@@[ S X7,SFIND . @C@@@[ NX )@@G@@ J C1STRT . $J C1STRT @E@@@[C1EXT2 TZ NS$FLG NY )@@G@@ . $T IS THERE ONLY ONE SCHEMA @G@@@[ LMJ X11,ARTDEF NZ )@@G@@. $W ARTDEF - BUILD ART RULES FOR RECD @E@@@[ J *RETURN OA )@@G@@ . $E RETURN TO MAIN CONTROL @[@@@[ . @#@@@[ . C1LIST - OB )@@G@@@E@@@[ . SCANS THE SET-RELATION LISTS OF THE OBJ REC @B@@@[OC )@@G@@ . A0 INDICATES WHICH LIST - @C@@@[ . 0-OWOD )@@G@@NER, 1-AUTO, 2-MANUAL @[@@@[ . @C@@@[C1LIST + 0 OE )@@G@@. $H C1LIST @D@@@[ TNZ,S1 C1LPTR,A0 . $T IS LIST EMPTYOF )@@G@@ ? @C@@@[ J *C1LIST . $A NO YES,C1LEND@A@@@[ OG )@@G@@ L,U A3,1 . @A@@@[ S,S2 A3,C1ORCD . OH )@@G@@@D@@@[ L,S1 A6,C1LPTR,A0 . $P SET LIST LOOP CNT @A@@@[ OI )@@G@@ AN,U A6,1 . @D@@@[ L,H2 X6,C1LPTR,A0 . $P SOJ )@@G@@ET INDEX TO LIST @F@@@[C1LLP L,T3 A4,0,X6 . $P GET NEXT SET OK )@@G@@CODE FROM LIST @A@@@[ LSSL A4,24 . @A@@@[ OL )@@G@@ SSL A4,24 . @G@@@[ SLJ C1SET . $W COM )@@G@@1SET - SCAN SET FOR INVOLVED RECS @F@@@[ A,S1 X6,0,X6 ON )@@G@@. $P SET INDEX TO NEXT LIST ENTRY @E@@@[ JGD A6,C1LLP OO )@@G@@. $T MORE LIST ENTRIES ? @C@@@[ . $A NOP )@@G@@O YES,C1LLP @D@@@[C1LEND J *C1LIST . $E RETURN TO BLDC1 OQ )@@G@@@[@@@[ . @]@@@[ . C1SET -@F@@@[ . GETS AND SCANS THE SET TABOR )@@G@@LE TO GET REC AND PTR INFO @B@@@[ . A4 CONTAINS THE SET COS )@@G@@ODE @[@@@[ . @B@@@[C1SET + 0 . $H C1SET @C@@@[OT )@@G@@ S A4,C1SCDE . $P SAVE SET CODE@A@@@[ SZ,S1 C1OOU )@@G@@RCD . @F@@@[ LMJ X11,FSBCDE . $W FSBCDE - GET OV )@@G@@SDT FROM SCHEMA @A@@@[ + C1SCDE . @A@@@[STABADOW )@@G@@* + 0 . @A@@@[ + SFIND . OX )@@G@@@A@@@[ + $,('BLDC1') . @E@@@[ LMJ X11,BLDC7OY )@@G@@ . $W BLDC7 - BUILD C7/C13 @A@@@[ L X9,STABAD OZ )@@G@@. @E@@@[ L A0,2,X9 . $P GET OWNER RECORD WORD PA )@@G@@@A@@@[ S A0,C1SWRD . @A@@@[ L,U A1,0 PB )@@G@@ . @E@@@[ SLJ C1STOR . $W C1STOR - STORE RECOPC )@@G@@RD PTR@E@@@[ L,S3 X8,2,X9 . $P GET MEMBER RECORD COUNT PD )@@G@@@A@@@[ AN,U X8,1 . @E@@@[ A,U X9,8 PE )@@G@@ . $P INITIALIZE MEMBER PTR @E@@@[C1SLP L A0,0,X9 PF )@@G@@. $P GET MEMBER RECORD WORD @A@@@[ S A0,C1SWRD . PG )@@G@@@A@@@[ L,U A1,1 . @E@@@[ SLJ C1STOR PH )@@G@@ . $W C1STOR - STORE RECORD PTR@E@@@[ A,T3 X9,1,X9 PI )@@G@@. $P RESET PTR TO NEXT MEMBER @E@@@[ JGD X8,C1SLP . $T APJ )@@G@@RE THERE MORE MEMBERS ? @C@@@[ . $A NO YES,PK )@@G@@C1SLP @G@@@[ TNZ,S1 C1ORCD . $T WAS OBJECT RECORD ENCOUNTPL )@@G@@ERED ? @C@@@[ J C1ERRI . $J C1ERRI @D@@@[PM )@@G@@ J *C1SET . $E RETURN TO C1LIST @[@@@[ . @#@@@[PN )@@G@@ . C1STOR - @D@@@[ . BUILDS AND STORES POINTER ENTRY IN C1/PO )@@G@@C9 @C@@@[ . A RECORD ENTRY IS CREATED IF NEEDED @D@@@[ . PP )@@G@@ A CHECK IS MADE FOR DUPLICATE PTR ENTRIES @E@@@[ . A1 INDICPQ )@@G@@ATES OWNER (0) OR MEMBER (1) OF SET @A@@@[ . X8 AND X9 MUSTPR )@@G@@ BE SAVED @[@@@[ . @C@@@[C1STOR + 0 . $H C1STOR PS )@@G@@ @A@@@[ L R5,X8 . @A@@@[ L R6,PT )@@G@@X9 . @A@@@[ L R7,A1 . @D@@@[ PU )@@G@@ L A0,C1SWRD . $P GET RECORD CODE @A@@@[ SSL A0,PV )@@G@@24 . @A@@@[ S A0,C1R2WD . @F@@@[ PW )@@G@@ LMJ X11,FRBCDE . $W FRBCDE - GET RDT FROM SCHEMA @A@@@[ PX )@@G@@ + C1R2WD . @A@@@[R2TBAD* + 0 . PY )@@G@@@A@@@[ + SFIND . @A@@@[ + $,('BLDC1PZ )@@G@@') . @A@@@^ L A0,R2TBAD . @F@@@^ L,SQA )@@G@@1 A0,1,A0 . $P GET LOCATION MODE OF RECORD @D@@@^ SZ QB )@@G@@ R11 . $P RESET DIRECT FLAG @F@@@^ TNE,U A0,1 QC )@@G@@ . $T IS RECORD NOT DIRECT RECORD @D@@@^ L,U R11,1 QD )@@G@@ . $P SET DIRECT FLAG @A@@@[ L X8,R5 . QE )@@G@@@A@@@[ L X9,R6 . @A@@@[ L A1,R7 QF )@@G@@ . @D@@@[ L A2,C1SWRD . $P GET RECORD CODE QG )@@G@@@E@@@[ L,H1 R1,*CN,X7 . $P GET NUM OF C TAB ENTRIES @A@@@[QH )@@G@@ L R2,(0777700000000) . @F@@@[ L,U A0,NUMOAP QI )@@G@@. $P SET INDEX FOR SEARCHING C TBL @A@@@[ A,U A0,39 QJ )@@G@@. @A@@@[ LSSL A0,18 . @A@@@[ LXM,H2 A0QK )@@G@@,*CN,X7 . @G@@@[ MSE A2,0,*A0 . $P SEARCH C TAB QL )@@G@@FOR EXISTING REC ENTRY @E@@@[ . $T WAS AN QM )@@G@@ENTRY FOUND ? @E@@@[ J C1NEW . $A NO,C1NEW YES,QN )@@G@@C1TYPE @A@@@[ AN,U A0,NUMOAP . @A@@@[ AN,QO )@@G@@U A0,39 . @A@@@[ J C1TYPE . @F@@@[QP )@@G@@C1NEW L,H1 A12,*CN,X7 . $P GET NUMBER OF ENTRIES IN TBL @E@@@[QQ )@@G@@ TG,U A12,NUMREC . $T IS IT LESS THAN MAX NUM @A@]@[ QR )@@G@@ ER ERR$ . $E @C@@@] J C1OFL . $A YQS )@@G@@ES NO,C1OFL @E@@@[ SSL A2,24 . $P INITIALIZE NEW ENTRQT )@@G@@Y @A@^@[ LSSL A2,24 . @A@@@^ LSSL A2,QU )@@G@@3 . @C@@@^ A A2,R11 . DIRECT FLAG QV )@@G@@@A@@@^ LSSL A2,21 . @C@@@[ S A2,0,A0 QW )@@G@@ . RECORD CODE @A@@@[ L A3,(0400000000000) . @A@@@[QX )@@G@@ A,U A0,1 . @E@@@[ S A3,NUMOAP,A0 QY )@@G@@. MANUAL BLOCK HDR WORD @A@@@[ A,U A0,1 . QZ )@@G@@@A@@@[ SZ NUMOAP,A0 . MASK@A@@@[ AN,U A0,2 RA )@@G@@ . @A@@@[ L,U A3,1 . @F@@@[ A,HRB )@@G@@1 A3,*CN,X7 . INCREMENT NUM OF C TAB ENTRIES @A@@@[ S,HRC )@@G@@1 A3,*CN,X7 . @G@@@[C1TYPE L,T1 A2,C1SWRD . $P DETERMIRD )@@G@@NE IF RECORD IS OBJ, OWN, @F@@@[ TNE,T3 A2,C1ORCD . $ MRE )@@G@@EM, OR CO-MEM W-R-T OBJ REC @F@@@[ J C1OBJ . JUMPRF )@@G@@ IF THIS IS OBJECT RECORD @D@@@[ JZ A1,C1OWN . JUMPRG )@@G@@ IF OWNER OF SET @E@^@[ L,S1 A2,C1ORCD . RECORD IS MEMBERRH )@@G@@ OF SET @A@^@[ TE,U A2,1 . @G@^@[ J RI )@@G@@ $+3 . JUMP IF OBJ REC IS NOT OWNER OF SET @D@@@[ RJ )@@G@@ L,U A4,4 . TYPE IS MEMBER (4) @A@@@[ J C1ERK )@@G@@NT . @E@^@[ L,U A4,010 . TYPE IS CO-MEMBERL )@@G@@R (8) @A@^@[ J C1ENT . @D@@@[C1OWN L,URM )@@G@@ A4,2 . TYPE IS OWNER (2) @A@@@[ J C1ENT RN )@@G@@ . @D@@@[C1OBJ L,U A4,1 . TYPE IS OBJECT (1) RO )@@G@@@G@@@[ L,U A2,1 . OBJECT FOUND IN THIS SET, MARK FOURP )@@G@@ND FLG@F@@@[ TZ A1 . =1 IF OBJ IS OWNER OF SETRQ )@@G@@, @F@@@[ LSSL A2,1 . =2 IF OBJ IS MEMBER OF SERR )@@G@@T @A@@@[ S,S1 A2,C1ORCD . @F@@@[C1ENT OR,S3 A4,RS )@@G@@0,A0 . $P STORE RTYPE IN C TAB ENTRY @A@@@[ S,S3 A5,RT )@@G@@0,A0 . @G@@@[ TNE,U A1,4 . $T WAS C1STOR ENRU )@@G@@TERED FROM C1SET ? @D@@@[ J *C1STOR . $E RETURN RV )@@G@@TO BLDC1 @E@@@[ TNE,U A1,0 . $T IS RECORD OWNER OF RW )@@G@@SET ? @C@@@[ J C1STO . $A NO YES,C1STO @A@@@[ RX )@@G@@ L,U A2,2 . @G@@@[ TG,S3 A2,C1SWRD . $T IRY )@@G@@S RECORD AUTO MEMBER OF SET ? @C@@@[ J C1STA RZ )@@G@@. $A NO YES,C1STA @A@@@[ A,U A0,1 . @G@@@[ SA )@@G@@ TZ,S2 NUMOAP,A0 . $T HAS MANUAL TABLE BEEN CREATED ? @C@@@[SB )@@G@@ J C1MAN . $A NO YES,C1MAN @A@@@[ A,U A0,SC )@@G@@NUMOAP . @A@@@[ S,H2 A0,SA0 . @A@@@[ SD )@@G@@ L X5,R2TBAD . @E@@@[ L,T1 A2,6,X5 . $P SSE )@@G@@AVE DISPLACEMENT OF MFCW@A@@@[ S,S6 A2,0,A0 . @F@@@[SF )@@G@@ L,S3 A2,6,X5 . $P SAVE NUMBER OF PTRS RESERVED @A@@@[SG )@@G@@ S,S5 A2,0,A0 . @E@@@[ L,S3 A1,3,X5 SH )@@G@@. $P SAVE MANUAL MEMBER COUNT @A@@@[ S,S2 A1,0,A0 . SI )@@G@@@A@@@[ AN,U A1,1 . @A@@@[ LXM X4,SA0 SJ )@@G@@ . @A@@@[ LXI,U X4,1 . @A@@@[ A,TSK )@@G@@3 X5,4,X5 . @G@@@[C1MLP1 L A4,0,X5 . $P BUILD CSL )@@G@@ TAB ENTRY MAN MEM LIST @A@@@[ SZ A3 . SM )@@G@@@D@@@[ LSSL A4,6 . FORMAT MANUAL WORD @A@@@[ SN )@@G@@ LDSL A3,6 . @A@@@[ LSSL A4,6 . SO )@@G@@@A@@@[ LDSL A3,6 . @A@@@[ LSSC A4,18 SP )@@G@@ . @A@@@[ DSL A3,1 . @A@@@[ SSLSQ )@@G@@ A4,2 . @A@@@[ DSL A3,3 . @A@@@[SR )@@G@@ SSL A3,2 . @A@@@[ SSC A4,12 SS )@@G@@. @A@@@[ DSL A3,12 . @A@@@[ S A4,ST )@@G@@2,*X4 . @A@@@[ A,S1 X5,0,X5 . @A@@@[ SU )@@G@@ JGD A1,C1MLP1 . @A@@@[ AN,U A0,NUMOAP . SV )@@G@@@G@@@[C1MAN L A4,(0400000000000) . $P SET UP PTRS FOR MAN LIST SESW )@@G@@ARCH @A@@@[ A,U A0,NUMOAP . @A@@@[ S,H2 A0,SX )@@G@@SA0 . @A@@@[ LXI,U A0,1 . @D@@@[ SY )@@G@@ L,S2 A1,0,A0 . $P GET MAN LIST CNT @A@@@[ AN,U A1,SZ )@@G@@1 . @G@@@[C1MLP2 L,T2 A2,2,*A0 . $P SEARCH MAN LITA )@@G@@ST FOR OBJECT RECORD @A@@@[ LSSL A2,24 . @A@@@[TB )@@G@@ SSL A2,24 . @A@@@[ TNE A2,C1SCDE TC )@@G@@. @A@@@[ J C1MAN1 . @G@@@[ SSL A4,TD )@@G@@1 . $P SHIFT MASK BIT TO CORRESPOND TO SET @A@@@[ JGDTE )@@G@@ A1,C1MLP2 . @E@@@[ J C1ERRI . IF SET NOTTF )@@G@@ FOUND, ERROR OFF @A@@@[C1MAN1 L,H2 A0,SA0 . @G@@@[ TG )@@G@@ OR A4,1,A0 . $P OR MASK BIT INTO C TAB ENTRY MASK WRD@A@@@[TH )@@G@@ S A5,1,A0 . @D@@@[ J *C1STOR TI )@@G@@. $E RETURN TO C1SET @A@@@[C1STO L X5,R2TBAD . @E@@@[TJ )@@G@@ L,S1 A3,3,X5 . $P GET OWNER COUNT IN RDT @A@@@[ TK )@@G@@ AN,U A3,1 . @A@@@[ A,T1 X5,4,X5 . TL )@@G@@@C@@@[ J C1OALP . $J C1OALP @A@@@[C1STA L TM )@@G@@ X5,R2TBAD . @F@@@[ L,S2 A3,3,X5 . $P GET AUTTN )@@G@@O MEMBER COUNT IN RDT @A@@@[ A,T2 X5,4,X5 . @A@@@[TO )@@G@@ AN,U A3,1 . @E@@@[C1OALP L,T3 A2,0,X5 TP )@@G@@. $P SEARCH RDT FOR SET ENTRY @A@@@[ LSSL A2,24 . TQ )@@G@@@A@@@[ SSL A2,24 . @A@@@[ TNE A2,C1SCDETR )@@G@@ . @A@@@[ J C1STOA . @A@@@[ A,STS )@@G@@1 X5,0,X5 . @A@@@[ JGD A3,C1OALP . @E@@@[TT )@@G@@ J C1ERRI . IF SET NOT FOUND, ERROR OFF @G@@@[C1STOATU )@@G@@ L A3,0,X5 . $P SET UP POINTER DESCRIPTION ENTRY @A@@@[TV )@@G@@ SZ A2 . @A@@@[ LSSL A3,6 TW )@@G@@. @A@@@[ LDSL A2,18 . @A@@@[ LSSC A3,TX )@@G@@18 . @A@@@[ DSL A2,1 . @A@@@[ TY )@@G@@ SSL A3,2 . @A@@@[ DSL A2,3 . TZ )@@G@@@A@@@[ SSL A2,2 . @A@@@[ LSSC A3,1 UA )@@G@@ . @A@@@[ TNZ A1 . @A@@@[ A,UUB )@@G@@ A3,1 . @A@@@[ LSSC A3,11 . @A@@@[UC )@@G@@ DSL A2,6 . @A@@@[ SSC A3,18 UD )@@G@@. @A@@@[ DSL A2,12 . @F@@@[ L,S4 R1,UE )@@G@@0,A0 . $P SEARCH PRESENT POINTER LIST @A@@@[ LXM X10UF )@@G@@,A0 . @A@@@[ LXI,U X10,1 . @G@@@[ UG )@@G@@ SE A3,1,*X10 . $T DOES NEW DESC MATCH AN OLD DESC ? @C@@@[UH )@@G@@ J C1SOA1 . $A YES NO,C1SOA1@D@@@[ J *C1UI )@@G@@STOR . $E RETURN TO C1SET @A@@@[C1SOA1 L,S4 A1,0,A0 UJ )@@G@@. @E@@@[ S A3,1,X10 . $P STORE NEW PTR DESC UK )@@G@@@A@@@[ A,U A1,1 . @D@@@^ TG,U A1,NUMOAPUL )@@G@@ . $T NUMOAP EXCEEDED @C@@@^ J OAPOFL . $A NUM )@@G@@O YES,OAPOFL@D@@@[ S,S4 A1,0,A0 . $P INCREMENT O/A CNT UN )@@G@@@D@@@[ J *C1STOR . $E RETURN TO C1SET @[@@@[ . UO )@@G@@@#@@@[ . C1ERRI - @A@@@[ . INTERNAL ERROR EXIT @[@@@[UP )@@G@@ . @C@@@[C1ERRI. . $H C1ERRI @G@@@[ UQ )@@G@@ P$RINT (PF 1,6,C1ERIM) . $P PRINT ERROR MESSAGE AND TERMINATE @A@@@[UR )@@G@@ ER ERR$ . $E @[@@@[ . @]@@@[ . C1ERR -@B@@@[US )@@G@@ . HANDLES INVALID NAME ERRORS @[@@@[ . @B@@@[C1ERR. UT )@@G@@ . $H C1ERR @E@@@[ L A1,SA1 . $P RUU )@@G@@ESTORE RECORD NAME @A@@@[ S A1,*RNMPTR . @A@@@[UV )@@G@@ L,U A0,' ' . @A@@@[ S,S2 A0,EDPKT UW )@@G@@. @E@@@[ TZ NS$FLG . $T ARE THERE TWO SCHEMAS ? UX )@@G@@@C@@@[ J C1ER1 . $A NO YES,C1ER1 @D@@@[ E$DUY )@@G@@IT EDPKT . $P FORMAT MESSAGE @A@@@[ E$COPY 14,C1EM0UZ )@@G@@1 . @A@@@[ L A0,RNMPTR . @A@@@[ LMJVA )@@G@@ X11,EMSG$ . @A@@@[ E$COPY 22,C3EM02 . @A@@@[VB )@@G@@ E$DITX . @C@@@[ J C3EREX VC )@@G@@. $J C3EREX @G@@@[C1ER1 TZ NFFLG . $T WAS NAME NOT VD )@@G@@FOUND IN BOTH SCHEMAS ? @C@@@[ J C1ER2 . $A NO YES,VE )@@G@@C1ER2 @D@@@[ E$DIT EDPKT . $P FORMAT MESSAGE @A@@@[VF )@@G@@ E$COPY 16,C1EM11 . @A@@@[ L A0,RNMPTR VG )@@G@@. @A@@@[ LMJ X11,EMSG$ . @A@@@[ E$COPY 16VH )@@G@@,C3EM12 . @A@@@[ L A0,C3EM13,X7 . @A@@@[ VI )@@G@@ LMJ X11,EFD1$ . @A@@@[ E$COPY 7,C3EM14 . VJ )@@G@@@A@@@[ E$DITX . @E@@@[ P$RINT (PF 1,14VK )@@G@@,PRINT) . $P PRINT WARNING MESSAGE @A@@@[ L,U A0,1 VL )@@G@@. @A@@@[ S A0,NFFLG . @C@@@[ J C1EVM )@@G@@XIT . $J C1EXIT @D@@@[C1ER2 E$DIT EDPKT . $P FVN )@@G@@ORMAT MESSAGE @A@@@[ E$COPY 14,C1EM01 . @A@@@[ VO )@@G@@ L A0,RNMPTR . @A@@@[ LMJ X11,EMSG$ . VP )@@G@@@A@@@[ E$COPY 29,C3EM22 . @A@@@[ E$DITX VQ )@@G@@ . @C@@@[ J C3EREX . $J C3EREX @[@@@]VR )@@G@@ . @B@@@]C1OFL. . $H C1OFL @E@@@] P$RVS )@@G@@INT (PF 1,4,C1OM) . $P PRINT OVERFLOW MESSAGE @A@@@] ER ERRVT )@@G@@$ . $E @[@@@^ . @C@@@^OAPOFL. . $H OVU )@@G@@APOFL @D@@@^ L A5,0,A0 . $P SAVE RECORD CODE VV )@@G@@@A@ @^ LSSL A5,24 . @A@@@ SSL A5,24 VW )@@G@@ . @G@@@^ E$DIT EDPKT . $P FORMAT & PRINT NUMOVX )@@G@@AP OFL MSG @A@@@^ E$COPY 14,OAPM1 . @A@@@^ VY )@@G@@ E$DECV A5 . @A@@@^ E$COPY 18,OAPM2 . VZ )@@G@@@A@@@^ L,U A0,NUMOAP . @A@@@^ LMJ X11,EDECVWA )@@G@@$ . @A@@@^ E$CHAR '!' . @A@@@^ E$DWB )@@G@@ITX . @A@@@^ P$RINT (PF 1,14,PRINT) . @A@@@^WC )@@G@@ ER ERR$ . $E @]@@@[ . @]@@@[$(2). WD )@@G@@@A@@@[SA0 + 0 . @A@@@[SA1 + 0 WE )@@G@@ . @A@@@[C1ORCD + 0 . @A@@@[C1SWRD + WF )@@G@@ 0 . @A@@@[C1SCDE + 0 . @A@@@[WG )@@G@@C1R2WD + 0 . @A@@@[C1LPTR RES 3 WH )@@G@@. @A@@@[CN + C1 . @A@@@[ + C9 WI )@@G@@ . @A@@@[C1EM01 'ERROR: RECORD ' . @A@@@[C1EM11WJ )@@G@@ 'WARNING: RECORD ' . @E@@@[C1ERIM 'CONFIG INTERNAL SCHEMA TABWK )@@G@@LE ERROR ' . @A@@@]C1OM 'C1/C9 TABLE OVERFLOW!' . @A@@@^WL )@@G@@OAPM1 'ERROR: RECORD ' . @A@@@^OAPM2 ' EXCEEDS NUMOAP = ' WM )@@G@@. @]@@@[ . @A@@@[ . ** BLDC3 ** @]@@@[WN )@@G@@ . @C@@@[ . THIS ROUTINE BUILDS THE AREA TABLES @E@@@[WO )@@G@@ . C3 AND C10 FROM THE INPUT AREA NAMES @]@@@[ . WP )@@G@@ @A@@@[ . THE ROUTINE CALL IS @E@@@[ . LX WQ )@@G@@ X10,(NAME-LIST-INC,AREA-NAME-LIST) @A@@@[ . LMJ X11,WR )@@G@@BLDC3 @G@@@[ . WHERE AREA-NAME-LIST IS ADDR OF NAWS )@@G@@ME-LIST @G@@@[ . AND NAME-LIST-INC IS # WT )@@G@@OF WORDS/NAME @C@@@[ . IN LIST WU )@@G@@ @]@@@[ . @E@@@[ . A NAME WITH THE FIRST WORD ALL BWV )@@G@@LANKS WILL @C@@@[ . SIGNAL THE END OF THE LIST WW )@@G@@@]@@@[ . @E@@@[ . IF AN INVALID NAME IS GIVEN, THE ROUTIWX )@@G@@NE WILL @C@@@[ . PRODUCE WARNING MESSAGES @]@@@[WY )@@G@@ . @E@@@[ . EACH ENTRY WILL BE PLACED IN THE TABLE SO THWZ )@@G@@AT @E@@@[ . THE TABLE IS SORTED BY ASCENDING AREA CODE XA )@@G@@@]@@@[ . @^@@@[$(2) LIT. @]@@@[$(1). @]@@@[XB )@@G@@ . @C@@@[BLDC3*. . $H BLDC3 @E@@@[XC )@@G@@ S,H2 X11,RETURN . $P SAVE RETURN ADDR @E@@@[ XD )@@G@@ S X10,SX10 . $P SAVE NAME LIST PTR @E@@@[ SZ XE )@@G@@ X7 . $P SET FOR FIRST SCHEMA @E@@@[C3INIT TZ,H1 *CXXF )@@G@@,X7 . $T IS THIS FIRST AREA ? @C@@@[ J C3RSET XG )@@G@@ . $A YES NO,C3RSET@A@@@[ S X7,SFIND . @G@@@[XH )@@G@@ LMJ X11,FDSDT . $W INITIALIZE SCHEMA ACCESS METHOD XI )@@G@@@A@@@[ + SFIND . @A@@@[ + $,('BLDC3XJ )@@G@@') . @G@@@[ L A0,*LADDR,X7 . $P SAVE STARTING ADDR XK )@@G@@OF C3/C10 @A@@@[ A,U A0,1 . @A@@@[ XL )@@G@@ S,H2 A0,*CX,X7 . @A@@@[C3INT2 L A0,X7 . XM )@@G@@@E@@@[ TNE A0,NS$FLG . $T ANOTHER SCHEMA ? @C@@@[XN )@@G@@ J C3OLD . $A YES NO,C3OLD @E@@@[ L,U X7,XO )@@G@@1 . $P SET FOR SECOND SCHEMA @C@@@[ J C3INIT XP )@@G@@ . $J C3INIT @G@@@[C3RSET L,H2 A0,*CX,X7 . $P GET FIRXQ )@@G@@ST WORD ADDR OF LAST TBL ENTRY@A@@@[ A,H1 A0,*CX,X7 . XR )@@G@@@A@@@[ AN,U A0,9 . @A@@@[ L,U A1,9 XS )@@G@@ . @G@@@[ S,T3 A1,0,A0 . $P RESET LAST LINK FROXT )@@G@@M 0 TO 9 @C@@@[ J C3INT2 . $J C3INT2 XU )@@G@@@E@@@[C3OLD SZ X7 . $P SET FOR FIRST SCHEMA @A@@@[XV )@@G@@ SZ SFIND . @E@@@[ SZ NFFLG XW )@@G@@. $P SET NOT-FOUND FLAG TO 0 @A@@@[C3TEST L X10,SX10 . XX )@@G@@@E@@@[ L A0,0,X10 . $P GET FIRST WORD OF NAME @E@@@[XY )@@G@@ TNE A0,BLNKS . $T IS IT BLANKS ? @C@@@[ XZ )@@G@@ J C3EXIT . $A NO YES,C3EXIT@E@@@[ S,H2 X10,ANMPTYA )@@G@@R . $P STORE NAME PTR IN CALL @G@@@[ DL A0,0,X10 YB )@@G@@. $P SAVE NAME IN CASE OF ERROR @A@@@[ DS A0,ANAME YC )@@G@@ . @G@@@[C3TST2 LMJ X11,FABNME . $W GET AREA DESC TABLEYD )@@G@@ FROM SCHEMA @A@@@[ANMPTR + 0 . @A@@@[ YE )@@G@@ + ADTBUF . @A@@@[ + SFIND . YF )@@G@@@A@@@[ + $,('BLDC3') . @E@@@[ TNZ *ANMPTR YG )@@G@@ . $T WAS AREA NAME VALID ? @C@@@[ J C3ERR YH )@@G@@. $A YES NO,C3ERR @G@@@[ L A0,ADTBUF . $P GET AND FORMAYI )@@G@@T AREA-CODE LINE @A@@@[ LSSC A0,12 . @A@@@[YJ )@@G@@ LSSL A0,12 . @A@@@[ A,U A0,9 YK )@@G@@. @A@@@[ S A0,C3BUF . @C@@@[ DL A0,YL )@@G@@ADTBUF+4 . $P GET AREA NAME@A@@@[ DS A0,C3BUF+1 . YM )@@G@@@A@@@[ SZ A0 . @G@@@[ L A1,ADTBUFYN )@@G@@+6 . $P GET AND FORMAT PG-LENGTH LINE @A@@@[ LDSL A0,YO )@@G@@18 . @A@@@[ LSSL A0,6 . @G@@@[ YP )@@G@@ A,S6 A0,ADTBUF+3 . $P INSERT FILE TYPE INTO P-L LINE @A@@@[YQ )@@G@@ DSL A0,18 . @A@@@[ S A1,C3BUF+3 YR )@@G@@. @E@@@[ DL A0,ADTBUF+7 . $P GET PAGE ALLOCATION LINESYS )@@G@@@A@@@[ DS A0,C3BUF+4 . @A@@@[ SZ A0 YT )@@G@@ . @G@@@[ L A1,ADTBUF+9 . $P GET AND FORMAT LOADYU )@@G@@-FACTOR LINE @A@@@[ LDSL A0,12 . @A@@@[ YV )@@G@@ LSSL A1,6 . @A@@@[ DSL A0,18 . YW )@@G@@@A@@@[ S A1,C3BUF+6 . @E@@@[ L A0,AREAP YX )@@G@@ . $P GET UNLOAD FLAG @E@@@[ S,S1 A0,C3BUF+8 YY )@@G@@. $P PUT IT IN TABLE ENTRY @G@@@[ L A0,*LADDR,X7 . $P GYZ )@@G@@ET ADDR OF NEXT AVAIL CORE WORD @A@@@[ AU,U A0,1 ZA )@@G@@. @A@@@[ LXI,U A1,1 . @A@@@[ A,U A0,ZB )@@G@@9 . @A@@@[ S A0,*LADDR,X7 . @E@@@[ ZC )@@G@@ ER MCORE$ . $W MCORE BUFFER SPACE @C@@@[ L,TZD )@@G@@1 A2,C3BUF . $P GET AREA CODE@G@@@[ L,H2 X9,*CX,X7 ZE )@@G@@. $P SET UP PTRS FOR C TABLE SEARCH @A@@@[ LXI,U X9,9 ZF )@@G@@ . @A@@@[ SZ A4 . @A@@@[ L,HZG )@@G@@1 A5,*CX,X7 . @G@@@[ DI,U A4,9 . $P CONVERTZH )@@G@@ WORD CNT TO ENTRY CNT @A@@@[ L R1,A4 . ZI )@@G@@@G@@@[ SG,T1 A2,0,*X9 . $P SEARCH C TABLE FOR PLACEMENT OFZJ )@@G@@ ENTRY@G@@@[ J C3AEND . $P IF PLACE IS AT END, GO TOZK )@@G@@ C3AEND @G@@@[ L A3,R1 . $P GET NUMBER OF WORDSZL )@@G@@ FOR TRANSFER @A@@@[ A,U A3,1 . @A@@@[ ZM )@@G@@ MSI,U A3,9 . @A@@@[ L R1,A3 . ZN )@@G@@@E@@@[ LXI,U A0,-1 . $P SET INDICES FOR TRANSFER @A@@@[ZO )@@G@@ ANU,U A0,9 . @G@@@[ BT A0,0,*A1 ZP )@@G@@. $P SHIFT C TABLE FOR SPACE FOR NEW ENTRY@G@@@[ A,U A1,1 ZQ )@@G@@ . $P SET INDEX TO INSERT NEW ENTRY @A@@@[ LXI,U A1,ZR )@@G@@1 . @A@@@[C3AEND L A0,(1,C3BUF) . @A@@@[ ZS )@@G@@ L,U R1,9 . @G@@@[ BT A1,0,*A0 . $P IZT )@@G@@NSERT NEW ENTRY INTO C TABLE @E@@@[ L,U A0,9 ZU )@@G@@. $P INCREMENT TABLE SIZE @A@@@[ A,H1 A0,*CX,X7 . ZV )@@G@@@A@@@[ S,H1 A0,*CX,X7 . @A@@@[C3STST L A0,X7 ZW )@@G@@ . @E@@@[ TE A0,NS$FLG . $T ANOTHER SCHEMA ? ZX )@@G@@ @C@@@[ J C3NEW . $A NO YES,C3NEW @G@@@[ ZY )@@G@@ L,H2 A0,SX10 . $P SET NAME LIST PTR TO NEXT NAME @A@@@[ZZ )@@G@@ A,H1 A0,SX10 . @A@@@[ S,H2 A0,SX10 AA )@@G@@. @C@@@[ J C3OLD . $J C3OLD @E@@@[C3NEW AB )@@G@@ L,U X7,1 . $P SET FOR SECOND SCHEMA @A@@@[ S AC )@@G@@ X7,SFIND . @C@@@[ J C3TST2 . $J C3TST2 AD )@@G@@ @E@@@[C3EXIT SZ X7 . $P SET FOR PROPER SCHEMA AE )@@G@@@G@@@[ TNZ,H1 *CX,X7 . $T ARE THERE ANY ENTRIES IN C TABLAF )@@G@@E ? @C@@@[ J C3EXT2 . $A YES NO,C3EXT2@E@@@[ AG )@@G@@ L A0,*LADDR,X7 . $P SET LAST LINK TO ZERO @A@@@[ AN,AH )@@G@@U A0,8 . @A@@@[ SZ,T3 0,A0 . @A@@@[AI )@@G@@C3EXT2 L A0,X7 . @E@@@[ TNE A0,NS$FLG AJ )@@G@@. $T ANOTHER SCHEMA ? @A@@@[ J *RETURN . $E AK )@@G@@@A@@@[ L,U X7,1 . @C@@@[ J C3EXIT+1 AL )@@G@@ . $J C3EXIT @]@@@[ . @E@@@[C3ERR TZ NS$FLG AM )@@G@@ . $T ARE THERE TWO SCHEMAS ? @C@@@[ J C3ER1 AN )@@G@@. $A NO YES,C3ER1 @E@@@[ E$DIT EDPKT . $P FORMAT MESSAGAO )@@G@@E @A@@@[ E$COPY 12,C3EM01 . @A@@@[ DL AP )@@G@@ A0,ANAME . @A@@@[ LMJ X11,EFD2$ . @A@@@[AQ )@@G@@ E$COPY 22,C3EM02 . @A@@@[ E$DITX AR )@@G@@. @C@@@[ J C3EREX . $J C3EREX @G@@@[C3ER1 AS )@@G@@ TZ NFFLG . $T WAS NAME NOT FOUND IN BOTH SCHEMAS ? @C@@@[AT )@@G@@ J C3ER2 . $A NO YES,C3ER2 @E@@@[ E$DIT EDPAU )@@G@@KT . $P FORMAT MESSAGE @A@@@[ E$COPY 14,C3EM1AV )@@G@@1 . @A@@@[ DL A0,ANAME . @A@@@[ LMJAW )@@G@@ X11,EFD2$ . @A@@@[ E$COPY 16,C3EM12 . @A@@@[AX )@@G@@ L A0,C3EM13,X7 . @A@@@[ LMJ X11,EFD1$ AY )@@G@@. @A@@@[ E$COPY 7,C3EM14 . @A@@@[ E$DITX AZ )@@G@@ . @E@@@[ P$RINT (PF 1,14,PRINT) . $P PRINT WARNIBA )@@G@@NG MESSAGE @A@@@[ L X10,SX10 . @E@@@[ DL BB )@@G@@ A0,ANAME . $P RESTORE AREA NAME @A@@@[ DS A0,BC )@@G@@0,X10 . @A@@@[ L,U A0,1 . @A@@@[ BD )@@G@@ S A0,NFFLG . @C@@@[ J C3STST . $J CBE )@@G@@3STST @E@@@[C3ER2 E$DIT EDPKT . $P FORMAT MESSAGE BF )@@G@@ @A@@@[ E$COPY 12,C3EM01 . @A@@@[ DL A0,BG )@@G@@ANAME . @A@@@[ LMJ X11,EFD2$ . @A@@@[ BH )@@G@@ E$COPY 29,C3EM22 . @A@@@[ E$DITX . BI )@@G@@@E@@@[C3EREX P$RINT (PF 1,14,PRINT) . $P PRINT ERROR MESSAGE @G@@@[BJ )@@G@@ P$RINT (PF 1,8,TERMSG) . $P PRINT TERMINATION MESSAGE BK )@@G@@@A@@@[ ER EXIT$ . $E @]@@@[ . @]@@@[$(2). BL )@@G@@ @A@@@[RETURN + 0 . @A@@@[SX10 + 0 BM )@@G@@ . @A@@@[SFIND + 0 . @A@@@[NFFLG BN )@@G@@ + 0 . @A@@@[LADDR + LAST$I . BO )@@G@@@A@@@[ + LAST$D . @A@@@[CX + C3 BP )@@G@@ . @A@@@[ + C10 . @A@@@[ANAME RESBQ )@@G@@ 2 . @A@@@[BLNKS ' ' . @A@@@[BR )@@G@@ADTBUF RES 10 . @A@@@[C3BUF RES 7 BS )@@G@@. @A@@@[ + 0 . @A@@@[ + 0 BT )@@G@@ . @A@@@[C3EM01 'ERROR: AREA ' . @A@@@[C3EM02BU )@@G@@ ' NOT DEFINED IN SCHEMA' . @A@@@[C3EM11 'WARNING: AREA ' . BV )@@G@@@A@@@[C3EM12 ' NOT DEFINED IN ' . @A@@@[C3EM13 'FIRST' BW )@@G@@ . @A@@@[ 'SECOND' . @A@@@[C3EM14 ' SBX )@@G@@CHEMA' . @C@@@[C3EM22 ' NOT DEFINED IN EITHER SCHEMA' .BY )@@G@@ @G@@@[TERMSG 'REORGANIZATION TERMINATED DUE TO NAME ERROR. ' BZ )@@G@@. @]@@@[ . @A@@@[ . ** CTINIT ** CA )@@G@@@]@@@[ . @E@@@[ . THIS ROUTINE REQUESTS BUFFER SPACE FORCB )@@G@@ ALL @E@@@[ . OF THE OBJECT RECORD TABLE BUILDING FUNCC )@@G@@CTIONS@]@@@[ . @G@@@[ . IT FIRST REQUESTS SPACE FOR C1, CD )@@G@@C5, AND C7 IN THE I-BANK, @C@@@[ . FOR C9, C11, C12 IN TCE )@@G@@HE D-BANK @G@@@[ . THEN READS IN THE SCHEMA REF TABLES INTO THECF )@@G@@ D-BANK @G@@@[ . THEN ALLOCATES BUFFER SPACE FOR RECORDCG )@@G@@ TBLS AND SET TBL @]@@@[ . @^@@@[$(2) LIT. CH )@@G@@@]@@@[$(1). @C@@@[CTINIT + 0 . $H CTINIT CI )@@G@@@E@@@[ SZ X7 . $P SET FOR FIRST SCHEMA @E@@@[CJ )@@G@@CTLP1 L A0,*LADDR,X7 . $P GET NEXT AVAIL CORE ADDR @A@@@[ CK )@@G@@ A,U A0,1 . @E@@@[ S A0,*CN,X7 . $P GCL )@@G@@ET C1/C9 BLOCK @A@@@[ A,U A0,C1SIZE . @E@@@[CM )@@G@@ S A0,*CN5,X7 . $P GET C5/C11 BLOCK @A@@@[ CN )@@G@@ A,U A0,C5SIZE . @E@@@] S A0,*CN6,X7 . $P GCO )@@G@@ET C6/C12 BLOCK @A@@@] A,U A0,C6SIZE . @E@@@[CP )@@G@@ S A0,*CN7,X7 . $P GET C7/C13 BLOCK @A@@@[ CQ )@@G@@ A,U A0,C7SIZE . @C@]@[ S A0,C8 . $P GCR )@@G@@ET C8 BLOCK @C@@@] S A0,*CN8,X7 . $P GET C8 BLOCK @G@@@]CS )@@G@@ TZ X7 . $T IS THIS 1ST SCHEMA, I-BANK MCORE CT )@@G@@@C@@@] J CTINT1 . $A YES NO,CTINT1@A@@@[ A,UCU )@@G@@ A0,C8SIZE . @E@@@] L,U A1,FRSTD$ . $P GET FIRCV )@@G@@ST D-BANK ADDR @G@@@] TLE A1,A0 . $T IS THERE ENOUCW )@@G@@GH I-BANK FOR MCORE @C@@@] J BNKERR . $A YES NO,CX )@@G@@BNKERR@A@]@[ AN,U A0,1 . @A@@@]CTINT1 AN,U A0,CY )@@G@@1 . @E@@@[ S A0,*LADDR,X7 . $P NOTE LAST ADDCZ )@@G@@R @E@@@[ ER MCORE$ . $P MCORE BUFFER SPACE DA )@@G@@ @A@@@[ L A0,X7 . @E@@@[ TNE A0,DB )@@G@@NS$FLG . $T ANOTHER SCHEMA ? @C@@@[ J CTINT2 DC )@@G@@ . $A YES NO,CTINT2@E@@@[ L,U X7,1 . $P SET FORDD )@@G@@ SECOND SCHEMA @C@@@[ J CTLP1 . $J CTLP1 DE )@@G@@@A@@@[CTINT2 SZ SFIND . @G@@@[ LMJ X11,FDSDTDF )@@G@@ . $W FDSDT - GET FIRST SCHEMA REF TBL @A@@@[ + SFIDG )@@G@@ND . @A@@@[ + $,('CTINIT') . @E@@@[ DH )@@G@@ TNZ NS$FLG . $T IS THERE SECOND SCHEMA ? @C@@@[ J DI )@@G@@ CTINT3 . $A YES NO,CTINT3@A@@@[ L,U A0,1 DJ )@@G@@. @A@@@[ S A0,SFIND . @G@@@[ LMJ X11DK )@@G@@,FDSDT . $W FDSDT - GET SECOND SCHEMA REF TBL @A@@@[ + DL )@@G@@ SFIND . @A@@@[ + $,('CTINIT') . @G@@@[DM )@@G@@CTINT3 SZ A1 . $P SET TO SCAN FIRST SCHEMA MAXTBL SIZESDN )@@G@@@A@@@[ SZ A2 . @A@@@[ SZ X7 DO )@@G@@ . @C@@@[CTLP2 L A0,MAXRDT,X7 . $P GET MAXRDT @A@@@[DP )@@G@@ TLE A1,A0 . @A@@@[ L A1,A0 DQ )@@G@@. @C@@@[ L A0,MAXSDT,X7 . $P GET MAXSDT @A@@@[ DR )@@G@@ TLE A2,A0 . @A@@@[ L A2,A0 . DS )@@G@@@A@@@[ L A0,X7 . @E@@@[ TNE A0,NS$FLGDT )@@G@@ . $T IS THERE SECOND SCHEMA ? @C@@@[ J CTINT4 DU )@@G@@. $A YES NO,CTINT4@E@@@[ L,U X7,1 . $P SET TO SECONDDV )@@G@@ SCHEMA @C@@@[ J CTLP2 . $J CTLP2 @E@@@[DW )@@G@@CTINT4 L A0,LAST$D . $P GET NEXT AVAIL CORE ADDR @A@@@[ DX )@@G@@ A,U A0,1 . @E@@@[ S A0,RTABAD . $P GDY )@@G@@ET OBJ REC TABLE BLOCK @A@@@[ A A0,A1 . @E@@@[DZ )@@G@@ S A0,R2TBAD . $P GET AUX REC TABLE BLOCK @A@@@[ EA )@@G@@ A A0,A1 . @E@@@[ S A0,STABAD . $P GEB )@@G@@ET SET TABLE BLOCK @A@@@[ A A0,A2 . @E@@@[EC )@@G@@ S A0,LAST$D . $P NOTE LAST ADDR @E@@@[ ED )@@G@@ ER MCORE$ . $P MCORE BUFFER SPACE @G@@@[ LMJEE )@@G@@ X11,BLDC6 . $W BLDC6 - BUILD CALC REC TABLE @E@@@[ EF )@@G@@ L,U A0,28 . $P INITIALIZE LOC C8 @A@@@[ S,HEG )@@G@@1 A0,C8 . @G@@@[ L,U A0,1 . $P SET FLAEH )@@G@@G SINCE BUFFERS GOTTEN @A@@@[ S A0,BUFFLG . EI )@@G@@@E@@@[ J *CTINIT . $E RETURN TO BLDC1 @]@@@]EJ )@@G@@ . @C@@@]BNKERR. . $H BNKERR @G@@@]EK )@@G@@ AN A0,A1 . $P PRINT NOT ENOUGH I-BANK ERROR MSG EL )@@G@@@A@@@] L A5,A0 . @A@@@] E$DIT EDPKT EM )@@G@@ . @A@@@] E$COPY 7,BEM1 . @A@@@] E$OEN )@@G@@CTV A5 . @A@@@] E$COPY 26,BEM2 . @A@@@]EO )@@G@@ E$DITX . @A@@@] P$RINT (PF 1,14,PRINTEP )@@G@@) . @A@@@] ER ERR$ . $E @]@@@[ . @]@@@[EQ )@@G@@$(2). @A@@@[BUFFLG + 0 . @A@@@]BEM1 'ERER )@@G@@ROR: ' . @C@@@]BEM2 ' WORDS MORE I-BANK NEEDED.' . ES )@@G@@ @]@@@[ . @A@@@[ . ** BLDC8 ** @]@@@[ET )@@G@@ . @E@@@[ . THIS ROUTINE STORES THE OBJECT RECORD NAME AEU )@@G@@ND @G@@@[ . CODE IN C8, AND ASSIGNS THE RECORD AN INTERNAEV )@@G@@L @A@@@[ . SEQUENCE NUMBER @]@@@[ . EW )@@G@@@^@@@[$(2) LIT. @]@@@[$(1). @C@@@[BLDC8 + 0 EX )@@G@@ . $H BLDC8 @A@@@[ L,U A0,1 . EY )@@G@@@A@@@[ S A0,C8FLG . @G@@@[ L,H1 A0,C8 EZ )@@G@@ . $P SET INDEX FOR NEXT C8 ENTRY @A@@@[ A,H2 A0,FA )@@G@@C8 . @E@@@[ L X8,RTABAD . $P SET PTR TO RDFB )@@G@@T @E@@@[ L,T3 A1,1,X8 . $P GET RECORD CODE FC )@@G@@ @A@@@[ S,T1 A1,0,A0 . @E@@@[ DL A1,FD )@@G@@7,X8 . $P GET RECORD NAME @A@@@[ DS A1,1,A0 FE )@@G@@ . @A@@@[ DL A1,9,X8 . @A@@@[ DS FF )@@G@@ A1,3,A0 . @A@@@[ L A1,11,X8 . @A@@@[FG )@@G@@ S A1,5,A0 . @E@@@[ L,H1 A2,C8 FH )@@G@@. $P INCREMENT C8 SIZE @A@@@[ A,U A2,6 . FI )@@G@@@A@@@[ S,H1 A2,C8 . @A@@@[ AN,U A2,28 FJ )@@G@@ . @A@@@[ SZ A1 . @C@@@[ DI,FK )@@G@@U A1,6 . $P GET SEQ-NUM @A@@@[ S,T2 A1,0,A0 FL )@@G@@. @E@@@[ S A1,C8SEQN . $P SAVE IT FOR BLDSYM FM )@@G@@@E@@@[ SZ,T3 0,A0 . $P SET LINK THIS ENTRY @E@@@[FN )@@G@@ TLE,U A1,2 . $T IS THIS FIRST OBJ REC ? @E@@@[ FO )@@G@@ J *BLDC8 . $E RETURN TO BLDC1 @E@@@[ AN,FP )@@G@@U A0,6 . $P SET LINK IN PRIOR ENTRY @A@@@[ L,U A1,FQ )@@G@@6 . @A@@@[ S,T3 A1,0,A0 . @E@@@[ FR )@@G@@ J *BLDC8 . $E RETURN TO BLDC1 @]@@@[ . FS )@@G@@@]@@@[$(2). @A@@@[C8FLG + 0 . @A@@@[C8SEQNFT )@@G@@* + 0 . @A@#@]CN8 + C8 . FU )@@G@@@A@@@#CN8* + C8 . @A@@@] + C8D FV )@@G@@ . @A@@@]C8D* + 0 . @^@@@[ ENDFW )@@G@@ . ___ . $P MCORE BUFFER SPACE @A@@@[ L FX )@@G@@ A0,X7 . *[@@@@*SDFF*@]@@@@. @C@@@@. FY )@@G@@ **** UNLOAD **** @]@@@@. @]@@@@. INPUTS:FZ )@@G@@@E@@@@. X9 - LOCATION OF CURRENT SLOT WORD @C@@@@GA )@@G@@. X10 - LOCATION OF CURRENT RECORD @A@@@@. X11GB )@@G@@ - RETURN ADDRESS @C@@@@. A0 - ADDRESS OF CURRENT PAGE GC )@@G@@@A@@@@. A1 - AREA CODE @A@@@@. A2 - PAGGD )@@G@@E NUMBER @E@@@@. A3 - NUMBER OF SLOTS SCANNED THIS PAGEGE )@@G@@ @]@@@@. @]@@@@ AXR$ @]@@@@$(1). @]@@@@UNL*. GF )@@G@@ @E@@@@ S X8,UNSAVX8 . $ SAVE MINOR SET GG )@@G@@@C@@@@ S X9,UNSAVX9 . @C@@@@ S GH )@@G@@ X10,UNSAVX10 . @C@@@@ S X11,UNSAVXGI )@@G@@11 . @C@@@@ DS A0,UNSAVA0 . GJ )@@G@@@C@@@@ DS A2,UNSAVA2 . @C@@@@ DSGK )@@G@@ A4,UNSAVA4 . @G@@@@ L,H1 A4,6,A0 GL )@@G@@ . $ NUMBER OF CALC CHAINS AT END @G@@@@ A A3,AGM )@@G@@4 . $ NUMBER OF SLOT THIS RECORD @E@@@@ SLJ GN )@@G@@ APS$DBP . $ CONSTRUCT A DBP @G@@@@UNL0 S A0,UGO )@@G@@NKPKT+3 . $ STORE DBP IN KEY FILE PKT @G@@@@ S GP )@@G@@ A0,UNDPKT . $ STORE DBP IN DFILE PKT @I@@@@ S GQ )@@G@@ X10,UNDPKT+1 . $ STORE LOC OF RECORD IN DFILE PKT GR )@@G@@@]@@@@UNL03. @G@@@@ TNE A1,UNDFPKT+3 . $ SKIP GS )@@G@@IF NOT THE SAME AREA @G@@@@ J UNL05 . $ GT )@@G@@SAME AREA AS BEFORE @G@@@@ S A1,UNDFPKT+3 GU )@@G@@ . $ STORE AREA CODE IN PKT @E@@@@ L X10,C3 GV )@@G@@ . ADDRESS OF C3 TABLE @E@@@@UNL04 L A4,,X10 GW )@@G@@ . WORD WITH AREA CODE @G@@@@ SSL A4,24 . RIGX )@@G@@GHT JUSTIFY AREA CODE @G@@@@ TNE A4,A1 GY )@@G@@ . SKIP IF NOT THE SAME AREA CODE @G@@@@ J UNL045 GZ )@@G@@ . FOUND THE ENTRY IN C3 @E@@@@ TNZ,T3 0,X1HA )@@G@@0 . SKIP IF MORE ENTRIES@E@@@@ ER ERR$ HB )@@G@@ . NOT FOUND @G@@@@ A,T3 X10,,X10 HC )@@G@@ . ADDRESS OF NEXT ENTRY @C@@@@ J UNL04 HD )@@G@@ . CONTINUE@]@@@@UNL045. @E@@@@ L,S1 A4,8,X10 HE )@@G@@ . PATCH ONLY FLAG @C@@@@ S A4,UNOFF HF )@@G@@ . STORE IT@E@@@@ L,U X10,UNDFPKT . $ PACKET ADDREHG )@@G@@SS @E@@@@ LMJ X11,DF$AMW . $ WRITE AREA ENTRY HH )@@G@@@]@@@@UNL05. @E@@@@ L X9,UNSAVX9 . RESTORE HI )@@G@@X9 @E@@@@ L A0,UNSAVA0 . RESTORE A0 HJ )@@G@@ @E@@@@ TZ UNOFF . SKIP IF UNLOADING HK )@@G@@@G@@@@ J UNL07 . NOT UNLOADING FROM THIS ARHL )@@G@@EA @G@@@@ TZ SCDIRECT . SKIP IF NOT A DIRECTHM )@@G@@ RECD @E@@@@ J UNDIRECT . RECORD IS DIREHN )@@G@@CT @]@@@@UNL06. @G@@@@ L,U X10,UNDPKT . $ HO )@@G@@ ADDRESS OF DFILE PKT @G@@@@ LMJ X11,DF$AMW HP )@@G@@ . $ STORE ENTRY IN DFILE @E@@@@ L A1,R15 HQ )@@G@@ . LINE NUMBER @A@@@@ AN,U A1,1 . LESS 1 HR )@@G@@@C@@@@ SZ A0 . ZERO @E@@@@ DIHS )@@G@@,U A0,INDBLK . BLK NUMBER @G@@@@ S HT )@@G@@ A0,UNKPKT+4 . STORE IN KFILE PACKET @G@@@@ L,HU )@@G@@U X10,UNKPKT . $ ADDRESS OF PACKET FOR KFILE @G@@@@ HV )@@G@@ LMJ X11,KF$AMC . $ STORE IT IN KEY FILE @E@@@@HW )@@G@@ L X11,UNCOUNT . $ RECORDS UNLOADED @E@@@@ HX )@@G@@ A,U X11,1 . $ INCREMENT IT @E@@@@ S HY )@@G@@ X11,UNCOUNT . $ STORE IT BACK @]@@@@UNL07. @E@@@@HZ )@@G@@ L X8,UNSAVX8 . $ RESTORE REGISTERS@C@@@@ IA )@@G@@ L X9,UNSAVX9 . @C@@@@ L X10,IB )@@G@@UNSAVX10 . @C@@@@ L X11,UNSAVX11 . IC )@@G@@ @C@@@@ DL A0,UNSAVA0 . @C@@@@ ID )@@G@@ DL A2,UNSAVA2 . @C@@@@ DL A4,UIE )@@G@@NSAVA4 . @E@@@@ J 0,X11 . $ IF )@@G@@ RETURN @]@@@@. @C@@@@. FLUSH BUFFERS OF KEY FILE ANIG )@@G@@D DATA FILE @]@@@@. @]@@@@UNLF*. @E@@@@ S IH )@@G@@ X11,UNSAVX11 . $ SAVE X11 @I@@@@ L,U II )@@G@@ X10,UNKPKT . $ ADDRESS OF PACKET FOR KFILE AM @G@@@@IJ )@@G@@ LMJ X11,KF$AMF . $ FLUSH KFILE BUFFERS IK )@@G@@@G@@@@ LMJ X11,DF$AMF . $ FLUSH DATA FILE BUFFER IL )@@G@@ @C@@@@ E$DIT UNEPKT . @C@@@@ IM )@@G@@ E$DECV UNCOUNT . @C@@@@ E$COPY 17,UIN )@@G@@NMSG1 . @^@@@@ E$DITX . @C@@@@ L IO )@@G@@ A0,UNMSG . ACW @E@@@@ ER PRINT$ IP )@@G@@ . PRINT UNLOAD COUNTS @E@@@@ L X11,UNSAVX11 IQ )@@G@@ . $ RESTORE @C@@@@ J 0,X11 . $ IR )@@G@@RETURN@]@@@@. @G@@@@. ENTRY POINT FOR FOREIGN PAGE. A DBP IS IS )@@G@@IN A0 AND THE RECORD @C@@@@. LOCATION IS IN A1. AREA CODE IS IIT )@@G@@N A2. @]@@@@. @]@@@@UNL1*. @E@@@@ S IU )@@G@@ X8,UNSAVX8 . $ SAVE MINOR SET @C@@@@ S X9,UIV )@@G@@NSAVX9 . @C@@@@ S X10,UNSAVX10 . IW )@@G@@ @C@@@@ S X11,UNSAVX11 . @C@@@@ IX )@@G@@ DS A0,UNSAVA0 . @C@@@@ DS A2,UIY )@@G@@NSAVA2 . @C@@@@ DS A4,UNSAVA4 . IZ )@@G@@ @G@@@@ S A0,UNKPKT+3 . $ STORE KEY IN KFILJA )@@G@@E PKT @G@@@@ S A1,UNDPKT+1 . $ STORE RECORJB )@@G@@D LOC IN DFILE PKT@G@@@@ S A0,UNDPKT . $ STOREJC )@@G@@ KEY IN DFILE PKT @E@@@@ L A1,A2 . $ JD )@@G@@ AREA CODE @E@@@@ J UNL03 . $ CONTIJE )@@G@@NUE @]@@@@. @^@@@@. ENTRY FOR SCAN VIA SET@]@@@@. JF )@@G@@ @]@@@@UNLS*. @E@@@@ S X8,UNSAVX8 . $ JG )@@G@@ SAVE MINOR SET @C@@@@ S X9,UNSAVX9 . JH )@@G@@@C@@@@ S X10,UNSAVX10 . @C@@@@ S JI )@@G@@ X11,UNSAVX11 . @C@@@@ DS A0,UNSAVA0JJ )@@G@@ . @C@@@@ DS A2,UNSAVA2 . JK )@@G@@@C@@@@ DS A4,UNSAVA4 . @E@@@@ L JL )@@G@@ A0,STDBP,X8 . $ GET DBP @E@@@@ J JM )@@G@@ UNL0 . $ CONTINUE @]@@@@UNDIRECT. @C@@@@ JN )@@G@@ L,S1 A4,,X9 . DESC @C@@@@ AND,U A4,0JO )@@G@@20 . @E@@@@ TZ A5 . SKJP )@@G@@IP IF NOT FOREIGN @G@@@@ J UNDIRFOR . FOREIGN JQ )@@G@@DIRECT RECORD @E@@@@ L,H2 A4,1,A0 . PAJR )@@G@@GE NUMBER @G@@@@ S,H1 A4,UNDIRPKT+3 . STORE INJS )@@G@@ DFILE PACKET @]@@@@UNDIR1. @E@@@@ L A4,,JT )@@G@@X9 . SLOT WORD @E@@@@ LSSL A4,6 JU )@@G@@ . SHIFT OFF DESC @E@@@@ SSL A4,24 JV )@@G@@ . RECORD NUMBER @E@@@@ S,H2 A4,UNDIRPKT+3 . STJW )@@G@@ORE IN PACKET @E@@@@ L,U X10,UNDIRPKT . PKT ADDRJX )@@G@@ESS @G@@@@ LMJ X11,DF$AMW . WRITE DIRECT CJY )@@G@@ONTROL IN D$FILE'S@C@@@@ J UNL06 . CONTINUEJZ )@@G@@@]@@@@UNDIRFOR. @E@@@@ SLJ DBP$APS . DECOMPOSKA )@@G@@E DBP @G@@@@ S,H1 A2,UNDIRPKT+3 . STORE IN DFILEKB )@@G@@ PACKET @C@@@@ J UNDIR1 . CONTINUEKC )@@G@@@]@@@@$(0). @#@[@@IBSIZE EQU 28 @]@[@@IFILL EQU 90@C@[@@FREE EKD )@@G@@QU ((((IBSIZE*(100-IFILL)+99)/100)+1)/2)*2@ @[@@INDBLK EQU (IBSIZE-2-FREKE )@@G@@E)/2 @^@@@@UNDIRPKT + 0 @^@@@@ + $+1 @A@@@@KF )@@G@@ + 4,0,2 @^@@@@ + 0 @G@@@@KG )@@G@@UNDFPKT + 0 . PACKET FOR DFILE AREA ENTRY KH )@@G@@@^@@@@ + $+1 @A@@@@ + 1,0,2 KI )@@G@@@^@@@@ + 0 @G@@@@KF$WKS EQU 40 KJ )@@G@@ . SIZE OF WORKSPACE FOR KF$AM @E@@@@UNKPKT + 0 KK )@@G@@ . PACKET FOR KFILE @^@@@@ + 0 @^@@@@ KL )@@G@@ + 0 @C@@@@ + 0 . OLD DBP KM )@@G@@@^@@@@ + 0 @^@@@@ + 0 @A@@@@ KN )@@G@@ RES KF$WKS @E@@@@UNDPKT + 0 KO )@@G@@ . OLD DBP FOR DFILE @E@@@@ + 0 . ADKP )@@G@@DRESS OF RECORD @I@@@@UNOFF + 0 . PATCH ONKQ )@@G@@LY IF 1 ELSE UNLOAD IF 0 @E@@@@UNCOUNT + 0 KR )@@G@@ . RECORDS UNLOADED @A@@@@UNEPKT E$PKT 5,UNMSG+1 KS )@@G@@@A@@@@UNMSG + 0105,$+1 @^@@@@ RES 5 KT )@@G@@@A@@@@UNMSG1 ' RECORDS UNLOADED' @^@@@@UNSAVX8 + 0 KU )@@G@@@^@@@@UNSAVX9 + 0 @^@@@@UNSAVX10 + 0 @^@@@@UNSAVXKV )@@G@@11 + 0 @^@@@@UNSAVA0 RES 2 @^@@@@UNSAVA2 RES KW )@@G@@ 2 @^@@@@UNSAVA4 RES 2 @^@@@@ END ___VX9KX )@@G@@ . @C@@@@ L X10,UNSAVX10 . KY )@@G@@*[@@@@*SDFF*@[@@@@ . @A@@@@ . ** CF$AM ** @[@@@@KZ )@@G@@ . @C@@@@ . THIS ROUTINE PROVIDES THE I/O NEEDED @A@@@@ . LA )@@G@@ FOR THE C-FILE @[@@@@ . @A@@@@ . THE ROUTINE CALB )@@G@@LL IS @A@@@@ . LX,U X10,PARAM @A@@@@ . LC )@@G@@ LMJ X11,CF$AM @E@@@@ . WHERE PARAM IS A LOCATLD )@@G@@ION CONTAINING THE@A@@@@ . FOLLOWING -@C@@@@ . LE )@@G@@ S1 - C-FILE SEGMENT NO @B@@@@ . S2 -LF )@@G@@ FUNCTION CODE @A@@@@ . 010 - WRITE@F@@@@ . LG )@@G@@ 011 - FOR C1/C9 - WRITE AFTER PACKING @A@@@@ . LH )@@G@@ 020 - READ @[@@@@ . @E@@@@ . THE CORE LOCATLI )@@G@@IONS CN ARE THE FILE LOCATION @C@@@@ . POINTERS FOR THLJ )@@G@@E REORG SYSTEM @D@@@@ . H1 CONTAINS WORD LENGTH OF SEGMELK )@@G@@NT @C@@@@ . H2 CONTAINS CORE ADDR OF SEGMENT@[@@@@ . LL )@@G@@@C@@@@ . THE WRITE TAKES INFO FROM LOC PTRS CN @C@@@@ . LM )@@G@@ THE HEADER C0 IS ALWAYS WRITTEN @[@@@@ . @E@@@@ . THE READLN )@@G@@ CHECKS IF SEGMENT IS ALREADY IN CORE - @D@@@@ . IF NOT ITLO )@@G@@ MCORE'S SPACE AND READS - @C@@@@ . THE LOC PTRS CN ARE ULP )@@G@@PDATED @[@@@@ . @A@@@@ . ** CF$AM ** @[@@@@LQ )@@G@@ . @A@@@@PF FORM 12,6,18 . @E@@@@ . LR )@@G@@ (NOT INCLUDING C0) @#@@@@ AXR$. @#@@@@LS )@@G@@$(8) LIT. @]@@@@$(7). @[@@@@ . @B@@@@CF$AM*. LT )@@G@@ . $H CF$AM @A@@@@ S,H2 X11,RETURN . @D@@@@LU )@@G@@ L,S1 A2,0,X10 . $P GET WHICH SEGMENT @C@@@@ L,SLV )@@G@@2 A3,0,X10 . $P GET FUNCTION @E@@@@ TLE,U A2,1 LW )@@G@@. $T IS SEGMENT # WITHIN RANGE@A@@@@ J SEGERR . LX )@@G@@@A@[@@ TG,U A2,19 . @A@@@[ TG,U A2,21 LY )@@G@@ . @C@@@@ J SEGERR . $A YES NO,SEGERR@F@@@@LZ )@@G@@ L,U X8,PGMSW . $P CHOOSE WHICH BANK FOR READ @A@@@@MA )@@G@@ TNE,U A2,14 . @A@@@@ L,U X8,1 MB )@@G@@. @E@@@@ TZ STATUS . $T IS HEADER IN CORE ? MC )@@G@@@C@@@@ J GO . $A NO YES,GO @A@@@@ L MD )@@G@@ A0,(4,ASGA) . @C@@@@ ER CSF$ . $W @ASG,AXME )@@G@@ @D@@@@ JP A0,RESET . $T ASG REJECTED ? @C@@@@MF )@@G@@ . . $A YES NO,RESET @E@@@@ TNE,U A3,MG )@@G@@020 . $T IS A WRITE REQUESTED ? @C@@@@ J *RETURN MH )@@G@@ . $E RETURN @A@@@@ L A0,(5,ASGU) . @C@@@@MI )@@G@@ ER CSF$ . $W @ASG,UP @A@@@@ JN A0,MJ )@@G@@UERR . @]@@@@RESET. @A@@@@ L,U A0,1 MK )@@G@@. @E@@@@ S A0,STATUS . $P SET HEADER-IN-CORE FLAG ML )@@G@@@E@@@@GO TE,U A3,020 . $T IS FUNCTION WRITE ? @C@@@@MM )@@G@@ J WRT . $A NO,RD YES,WRT@E@@@@RD L A1,MN )@@G@@ELTNME,A2 . $P GET PROPER ELEMENT NAME @A@@@@ S A1,PFPPKTMO )@@G@@+2 . @D@@@@ L A4,A2 . $P SAVE SEGMENT # MP )@@G@@@E@@@@ L,U A0,6 . $P SET FOR ABSOLUTE ELEMENT @A@@@@MQ )@@G@@ S,H1 A0,PFPPKT+5 . @A@@@@ L,U A0,PFPPKT MR )@@G@@. @F@@@@ ER PFS$ . $P GET ELEMENT TABLE FROM PFMS )@@G@@P @D@@@@ TNE,U A2,1 . $T WAS ELEMENT FOUND @C@@@@MT )@@G@@ J RDB . $A YES NO,RDB @E@@@@ TZ A2 MU )@@G@@ . $T WAS THERE PFP ERROR @C@@@@ J PFPERR MV )@@G@@ . $A NO YES,PFPERR@D@@@@ L A2,A4 . $P RESTOREMW )@@G@@ SEGMENT # @E@@@@ TZ,T1 PFPPKT+5 . $T HAS ELEMENT BEEN DEMX )@@G@@LETED @C@@@@ J RDB . $A NO YES,RDB @F@@@@ MY )@@G@@ L A1,PFPPKT+10 . $P GET SECTOR DISP OF ELEMENT @A@@@@ MZ )@@G@@ S A1,DISP . @C@@@@ L A1,PFPPKT+8 . $P GNA )@@G@@ET PTR WORD @A@@@@ S A1,PTRS . @A@@@@ L NB )@@G@@ A0,*LADDR,X8 . @A@@@@ AU,U A0,1 . @G@@@@NC )@@G@@ S,H2 A1,PTRS . $P DETERMINE FIRST AND LAST ADDR OF BUFFND )@@G@@@A@@@@ A,H1 A0,PTRS . @A@@@@ S A0,*LADDRNE )@@G@@,X8 . @D@@@@ ER MCORE$ . $W GET CORE FOR BUFF NF )@@G@@@D@@@@RDA L A0,PTRS . $P SET UP I/O PACKET @A@@@@ NG )@@G@@ L A1,DISP . @A@@@@ DS A0,PKET+4 . NH )@@G@@@A@@@@ L,U A0,020 . @A@@@@ S,S2 A0,PKET+3NI )@@G@@ . @E@@@@ L,H1 A0,PTRS . $T IS WORD COUNT ZERO NJ )@@G@@ @C@@@@ JZ A0,RDB . $A NO YES,RDB @D@@@@ NK )@@G@@ I$OW PKET . $W DO READ - IOW$ @E@@@@ SLJ CHENL )@@G@@CK . $W CHECK FOR I/O ERROR @A@@@@ J $+2 NM )@@G@@ . @A@@@@RDB SZ PTRS . @A@@@@ L NN )@@G@@ A1,PTRS . @E@@@@ EX STORE,A2 . $P NOTE CONO )@@G@@RE LOCATION IN CN @C@@@@ J *RETURN . $E RETURN NP )@@G@@@[@@@@ . @C@@@@WRT TNE,U A2,1 . $T IS SEGMENT C1@C@@@@NQ )@@G@@ J PACK . $A NO YES,PACK @C@@@@ TNE,U A2,NR )@@G@@9 . $T IS SEGMENT C9@C@@@@ J PACK1 . $A NNS )@@G@@O YES,PACK1 @D@@@@WRTEX TE,U A3,010 . $T IS THIS WRITE FNC NT )@@G@@@C@@@@ J FNCERR . $A YES NO,FNCERR@A@@@@ EX NU )@@G@@ LOAD,A2 . @E@@@@ S A1,PTRS . $P GET LOCNV )@@G@@ INFO FROM CN @D@@@@ L A4,A2 . $P SAVE SEGMENT NW )@@G@@# @A@@@@ L,U A0,PFPPKT . @F@@@@ ER PFWNX )@@G@@L$ . $P GET NEXT WRITE LOC OF FILE @E@@@@ JNZ A2,NY )@@G@@PFPERR . $T WAS THERE PFP ERROR @C@@@@ NZ )@@G@@ . $A NO YES,PFPERR@D@@@@ L A2,A4 . $P RESTOREOA )@@G@@ SEGMENT # @D@@@@WRTA L A0,PTRS . $P SET UP I/O PACKET OB )@@G@@@D@@@@ S A1,DISP . $P SAVE FILE DISP @A@@@@ OC )@@G@@ DS A0,PKET+4 . @A@@@@ L,U A0,010 . OD )@@G@@@A@@@@ S,S2 A0,PKET+3 . @E@@@@ L,H1 A0,PTRS OE )@@G@@ . $T IS WORD COUNT ZERO @C@@@@ JZ A0,WRTB OF )@@G@@. $A NO YES,WRTB @D@@@@ I$OW PKET . $W DO WRITE - IOOG )@@G@@W$ @E@@@@ SLJ CHECK . $W CHECK FOR I/O ERROR OH )@@G@@@D@@@@WRTB L A0,PTRS . $P SAVE PRT IN FILE @A@@@@ OI )@@G@@ S A0,PFPPKT+8 . @F@@@@ DSL A0,54 . $P GOJ )@@G@@ET SECTOR LENGTH OF ELEMENT @A@@@@ DI,U A0,28 . OK )@@G@@@A@@@@ TZ A1 . @A@@@@ A,U A0,1 OL )@@G@@ . @E@@@@ S A0,PFPPKT+9 . $P SAVE IT IN PFP PKT OM )@@G@@ @F@@@@ L,U A1,6 . $P SET TYPE OF ELT TO ABSOLUON )@@G@@TE @A@@@@ S,H1 A1,PFPPKT+5 . @D@@@@ L A1,OO )@@G@@ELTNME,A2 . $P SET ELEMENT NAME @A@@@@ S A1,PFPPKT+2 OP )@@G@@. @G@@@@ SZ PFPPKT+11 . $P ZERO WRD SO TIME/DATE WILOQ )@@G@@L BE SET @E@@@@ L A1,DISP . $P GET DISP WITHIN FILOR )@@G@@E @A@@@@ S A1,PFPPKT+10 . @F@@@@ A A1,OS )@@G@@A0 . $P UPDATE LAST WRITE LOC OF FILE @A@@@@ LN,U A0,OT )@@G@@PFPPKT . @F@@@@ ER PFI$ . $P ADD ELEMENT TOU )@@G@@O FILE DIRECTORY @E@@@@ JNZ A2,PFPERR . $T WAS THERE PFPOV )@@G@@ ERROR @C@@@@ . $A NO YES,PFPERR@A@@@@OW )@@G@@ J *RETURN . $E @[@@@@ . @C@@@@ . PACK - CALL POX )@@G@@ACKC1 TO PACK SEGMENT C1/C9 @[@@@@ . @D@@@@PACK TE,U A3,011 OY )@@G@@ . $T IS PACK REQUESTED @C@@@@ J WRTEX . $A YOZ )@@G@@ES NO,WRTEX @D@@@@ S A2,SAVE . $P SAVE SEGMENT # PA )@@G@@@E@@@@ L,U A1,6 . $P SET TO DELETE ABS ELEMENT@A@@@@PB )@@G@@ S,H1 A1,PFPPKT+5 . @E@@@@ SZ A1 PC )@@G@@. $P INITIALIZE LOOP COUNTER @E@@@@PACK0 A,U A1,1 . $P APD )@@G@@DD 1 TO ELEMENT PTR @E@@@@ L A0,ELTNME,A1 . $P GET NEXPE )@@G@@T ELEMENT NAME @A@@@@ S A0,PFPPKT+2 . @A@@@@ PF )@@G@@ L,U A0,PFPPKT . @D@@@@ ER PFD$ . $P DPG )@@G@@ELETE ELEMENT @E@@@@ TG,U A2,2 . $T WAS THERE A PPH )@@G@@FP ERROR @C@@@@ J PFPERR . $A NO YES,PFPERR@E@[@@PI )@@G@@ TLE,U A1,18 . $T MORE C-TABLES TO DELETE @E@@@[ PJ )@@G@@ TLE,U A1,20 . $T MORE C-TABLES TO DELETE @C@@@@ J PK )@@G@@ PACK0 . $A NO YES,PACK0 @D@@@@ L A2,SAVE PL )@@G@@. $P RESTORE SEGMENT # @B@@@@ J PACK2 . $J PACK2 PM )@@G@@@D@@@@PACK1 TE,U A3,011 . $T IS PACK REQUESTED @C@@@@ PN )@@G@@ J WRTEX . $A YES NO,WRTEX @C@@@@PACK2 SZ X8 PO )@@G@@ . $P SET FOR C1 @C@@@@ TNE,U A2,9 . $T IS SEGMPP )@@G@@ENT C1@C@@@@ L,U X8,1 . $P RESET FOR C9 @D@@@@ PQ )@@G@@ DS A2,SAVE . $P SAVE REGISTERS @C@@@@ SLJ PACPR )@@G@@KC1 . $W PACK C1 @D@@@@ DL A2,SAVE . $P RPS )@@G@@ESTORE REGISTERS @E@@@@ L,U A3,010 . $P RESET FNC TO PT )@@G@@WRITE @B@@@@ J WRTEX . $J WRTEX @[@@@@ . PU )@@G@@@ @@@@ . CHECK FOR I/O ERROR @[@@@@ . @B@@@@CHECK + 0 PV )@@G@@ . $H CHECK @A@@@@ L,U X10,PKET . @D@@@@PW )@@G@@ TZ,S1 PKET+3 . $T IS STATUS ZERO ? @C@@@@ LMJPX )@@G@@ X11,IOERR . $A YES NO,IOERR @A@@@@ L,H2 A0,PKET+3 PY )@@G@@. @G@@@@ TE,H1 A0,PTRS . $T WERE CORRECT # WORDS TRANPZ )@@G@@SFERRED ? @C@@@@ LMJ X11,IOERR . $A YES NO,IOERR @A@@@@QA )@@G@@ J *CHECK . $E @[@@@@ . @A@@@@ . INSTR TO GETQB )@@G@@ LOC INFO FROM CN @[@@@@ . @A@@@@LOAD SZ A1 . QC )@@G@@@A@@@@ L A1,C1 . @A@@@@ L A1,C2 QD )@@G@@ . @A@@@@ L A1,C3 . @A@@@@ L QE )@@G@@ A1,C4 . @A@@@@ L A1,C5 . @A@@@@QF )@@G@@ L A1,C6 . @A@@@@ L A1,C7 QG )@@G@@. @A@@@@ L A1,C8 . @A@@@@ L A1,QH )@@G@@C9 . @A@@@@ L A1,C10 . @A@@@@ QI )@@G@@ L A1,C11 . @A@@@@ L A1,C12 . QJ )@@G@@@A@@@@ L A1,C13 . @A@@@@ L A1,C14 QK )@@G@@ . @A@@@@ L A1,C15 . @A@@@@ L QL )@@G@@ A1,C16 . @A@@@@ L A1,C17 . @A@@@@QM )@@G@@ L A1,C18 . @A@@@[ L A1,Z1 QN )@@G@@. @A@@@[ L A1,Z2 . @[@@@@ . @A@@@@ . QO )@@G@@INSTR TO PUT LOC INFO INTO CN @[@@@@ . @A@@@@STORE NOP QP )@@G@@ . @A@@@@ S A1,C1 . @A@@@@ S QQ )@@G@@ A1,C2 . @A@@@@ S A1,C3 . @A@@@@QR )@@G@@ S A1,C4 . @A@@@@ S A1,C5 QS )@@G@@. @A@@@@ S A1,C6 . @A@@@@ S A1,QT )@@G@@C7 . @A@@@@ S A1,C8 . @A@@@@ QU )@@G@@ S A1,C9 . @A@@@@ S A1,C10 . QV )@@G@@@A@@@@ S A1,C11 . @A@@@@ S A1,C12 QW )@@G@@ . @A@@@@ S A1,C13 . @A@@@@ S QX )@@G@@ A1,C14 . @A@@@@ S A1,C15 . @A@@@@QY )@@G@@ S A1,C16 . @A@@@@ S A1,C17 QZ )@@G@@. @A@@@@ S A1,C18 . @A@@@[ S A1,RA )@@G@@Z1 . @A@@@[ S A1,Z2 . @[@@@@ . RB )@@G@@@^@@@@ . ASSIGN ERRORS @[@@@@ . @A@@@@UERR L,U X10,ASGU RC )@@G@@ . @A@@@@ LMJ X11,ASGERR . @A@@@@SEGERR P$RRD )@@G@@INT (PF 1,9,SEM) . @A@@@@ ER ERR$ . $E @A@@@@RE )@@G@@PFPERR P$RINT (PF 1,8,PEM) . @B@@@@ L$SNAP 'PFPPKT',2,12RF )@@G@@,PFPPKT . @A@@@@ ER ERR$ . $E @A@@@@FNCERR P$RRG )@@G@@INT (PF 1,9,FEM) . @A@@@@ ER ERR$ . $E @[@@@@RH )@@G@@ . @]@@@@$(8). @A@@@@SAVE RES 2 . @A@@@@RI )@@G@@STATUS + 0 . @A@@@@PTRS + 0 RJ )@@G@@. @A@@@@DISP + 0 . @A@@@@ELTNME 'XXXXXX' RK )@@G@@ . @#@@@@ 'C1' . @#@@@@ 'C2' . @#@@@@RL )@@G@@ 'C3' . @#@@@@ 'C4' . @#@@@@ 'C5' . @#@@@@RM )@@G@@ 'C6' . @#@@@@ 'C7' . @#@@@@ 'C8' . @#@@@@RN )@@G@@ 'C9' . @#@@@@ 'C10' . @#@@@@ 'C11' . @#@@@@RO )@@G@@ 'C12' . @#@@@@ 'C13' . @#@@@@ 'C14' . @#@@@@RP )@@G@@ 'C15' . @#@@@@ 'C16' . @#@@@@ 'C17' . @#@@@@RQ )@@G@@ 'C18' . @#@@@[ 'Z1' . @#@@@[ 'Z2' . @A@@@@RR )@@G@@PFPPKT 'C$FILE ' . @A@@@@ ' ' RS )@@G@@. @A@@@@ + 0 . @A@@@@ + 0 RT )@@G@@ . @A@@@@ ' ' . @A@@@@ RU )@@G@@ DO 4 , + 0 . @A@@@@PKET 'C$FILE ' . RV )@@G@@@A@@@@ DO 4 , + 0 . @A@@@@ASGA '@ASG,AX C$FILRW )@@G@@E. . ' . @B@@@@ASGU '@ASG,UP C$FILE.,///300 . ' . @G@@@@SEM RX )@@G@@ '*** ERROR - INVALID SEGMENT NUMBER PASSED TO CF$AM ***' . @E@@@@RY )@@G@@PEM '*** ERROR - C$FILE IS NOT A PROGRAM FILE ***' . @G@@@@FEM RZ )@@G@@ '*** ERROR - INVALID FUNCTION CODE PASSED TO CF$AM ***' . @A@@@@SA )@@G@@RETURN + 0 . @A@@@@LADDR + LAST$I SB )@@G@@. @A@@@@ + LAST$D . @#@@@@ END . SC )@@G@@___ @D@@@@ ER PFD$ . $P D*[@@@@*SDFF*@^@@@@ SD )@@G@@ AXR$. @^@@@@$(6) LIT. @]@@@@$(5). @C@@@@SE )@@G@@CHKPT* + 0 . @C@@@@ DS SF )@@G@@ A0,SAV1 . @A@@@@ L,S2 A1,3,X10 . SG )@@G@@@A@@@@ TE,U A1,011 . @A@@@@ J RDBLK SH )@@G@@ . @A@@@@ L A0,PCNT . @A@@@@ A SI )@@G@@ A0,A8 . @A@@@@ S A0,PCNT . @A@@@@SJ )@@G@@ L A0,WCNT . @A@@@@ A,H1 A0,7,X10 SK )@@G@@. @A@@@@ S A0,WCNT . @A@@@@ J OUTSL )@@G@@ . @A@@@@RDBLK L A0,PHRCNT . @A@@@@ SM )@@G@@ A,H1 A0,7,X10 . @A@@@@ S A0,PHRCNT . SN )@@G@@@]@@@@OUT. @C@@@@ DL A0,SAV1 . SO )@@G@@@C@@@@ J *CHKPT . @A@@@@CHKPT2* + SP )@@G@@ 0 . @A@@@@ E$DIT EDPKT . @A@@@@SQ )@@G@@ E$DECV PHRCNT .@C@@@@ E$COPY SR )@@G@@11,RMSG . @A@@@@ E$DECV WCNT .@C@@@@ SS )@@G@@ E$COPY 14,WMSG . @A@@@@ E$DECV ST )@@G@@ PCNT .@C@@@@ E$COPY 14,TMSG . @A@@@@SU )@@G@@ E$DITX . @C@@@@ P$RINT SV )@@G@@(PF 1,12,PRINT) .@A@@@@ J *CHKPT2 . @]@@@@ . SW )@@G@@ @C@@@@ . ZERO DBP WARNING MESSAGE ROUTINE @]@@@@ . SX )@@G@@ @C@@@@ZPWARN* + 0 . $H ZPWARN @E@@@@ SY )@@G@@ DS A0,SAV1 . $P SAVE REGISTERS @A@@@@ DS SZ )@@G@@ A2,SAV2 . @G@@@] L,U A2,ZWRNCNT . $P GET MAXTA )@@G@@ # WARNINGS BEFORE SUPPRESS @A@@@] A,U A2,1 . TB )@@G@@@A@@@@ L A1,R13 . @G@@@@ L,S1 A0,0,A1 TC )@@G@@ . $P GET ZERO PTR CNT FROM C1 ENTRY @C@]@@ TG,U A0,TD )@@G@@11 . $T IS CNT > 10 @D@@@] TG A0,A2 . $T ITE )@@G@@S CNT > ZWRNCNT @C@@@@ J ZPOUT . $A NO YES,ZPOUT TF )@@G@@@C@@@@ A,U A0,1 . $P INCREMENT CNT@A@@@@ S,STG )@@G@@1 A0,0,A1 . @E@]@@ TG,U A0,11 . $T IS THISTH )@@G@@ 11TH ZERO PTR @G@@@] TG A0,A2 . $T IS THIS (ZWRNTI )@@G@@CNT+1)ST ZERO PTR @C@@@@ J ZPMAX . $A NO YES,TJ )@@G@@ZPMAX @E@@@@ E$DIT EDPKT . $P PRINT WARNING LINE TK )@@G@@@A@]@@ E$COPY 25,ZPM1 . @A@@@] E$COPY 32,ZPM1 TL )@@G@@ . @C@@@@ L,T1 A0,1,X8 . AREA CODE @A@@@@TM )@@G@@ LSSL A0,24 . @A@@@@ SSL A0,24 TN )@@G@@. @A@@@@ LMJ X11,EDECV$ . @A@@@@ E$COPY 4,TO )@@G@@ZPM2 . @C@@@@ L,H2 A0,1,X8 . PAGE NUM TP )@@G@@@A@@@@ LMJ X11,EDECV$ . @A@@@@ E$COPY 5,ZPM3 TQ )@@G@@ . @C@@@@ L A1,R3 . ABS SLOT ADDR @A@@@@TR )@@G@@ LSSL A1,18 . @A@@@@ SSL A1,18 TS )@@G@@. @A@@@@ A,U A1,1 . @C@@@@ AN A1,TT )@@G@@X8 . REL SLOT ADDR @C@@@@ L,H1 A0,2,X8 . PAGETU )@@G@@ SIZE @C@@@@ AN A0,A1 . SLOT NUM @A@@@@TV )@@G@@ LMJ X11,EDECV$ . @A@@@@ E$COPY 8,ZPM4 TW )@@G@@. @C@@@@ L A0,R15 . REC CODE @A@@@@ TX )@@G@@ LMJ X11,EDECV$ . @A@@@@ E$COPY 8,ZPM5 . TY )@@G@@@C@@@@ L A0,R14 . SET CODE @A@@@@ LSSTZ )@@G@@L A0,24 . @A@@@@ SSL A0,24 . @A@@@@UA )@@G@@ LMJ X11,EDECV$ . @A@@@@ E$CHAR '.' UB )@@G@@. @A@@@@ E$DITX . @A@@@@ P$RINT (PUC )@@G@@F 1,12,PRINT) . @C@@@@ J ZPOUT . $J ZPOUT UD )@@G@@@E@@@@ZPMAX E$DIT EDPKT . $P PRINT SUPPRESS MESSAGE @A@]@@UE )@@G@@ E$COPY 40,ZPM6 . @A@@@] E$COPY 44,ZPM6 UF )@@G@@. @A@@@@ L A0,R15 . @A@@@@ LMJ X11UG )@@G@@,EDECV$ . @A@@@@ E$COPY 9,ZPM7 . @A@@@@ UH )@@G@@ L A0,R14 . @A@@@@ LSSL A0,24 . UI )@@G@@@A@@@@ SSL A0,24 . @A@@@@ LMJ X11,EDECVUJ )@@G@@$ . @A@@@@ E$CHAR '.' . @A@@@@ E$DUK )@@G@@ITX . @A@@@@ P$RINT (PF 1,12,PRINT) . @E@@@@UL )@@G@@ZPOUT DL A0,SAV1 . $P RESTORE REGISTERS @A@@@@ UM )@@G@@ DL A2,SAV2 . @A@@@@ J *ZPWARN . $E UN )@@G@@@]@@@[ . @C@@@[ . UNKNOWN AREA WARNING MESSAGE ROUTINE UO )@@G@@@]@@@[ . @C@@@[BDWARN* + 0 . $H BDWARN UP )@@G@@@E@@@[ DS A0,SAV3 . $P SAVE REGISTERS TO BE USED@A@@@[UQ )@@G@@ DS A2,SAV4 . @E@@@[ E$DIT EDPKT UR )@@G@@. $P FORMAT WARNING MESSAGE @A@]@[ E$COPY 22,BDM1 . US )@@G@@@A@@@] E$COPY 29,BDM1 . @A@@@[ L A0,SAV3 UT )@@G@@ . @A@@@[ LMJ X11,EDECV$ . @A@@@[ E$CUU )@@G@@OPY 8,BDM2 . @C@@@[ L,T1 A0,1,X8 . AREA CODE UV )@@G@@ @A@@@[ LSSL A0,24 . @A@@@[ SSL A0,UW )@@G@@24 . @A@@@[ LMJ X11,EDECV$ . @A@@@[ UX )@@G@@ E$COPY 4,ZPM2 . @C@@@[ L,H2 A0,1,X8 . PAGEUY )@@G@@ NUM @A@@@[ LMJ X11,EDECV$ . @A@@@[ E$CUZ )@@G@@OPY 5,ZPM3 . @C@@@[ L A1,R3 . ABS SLOT AVA )@@G@@DDR @A@@@[ LSSL A1,18 . @A@@@[ SSL A1,VB )@@G@@18 . @A@@@[ A,U A1,1 . @C@@@[ VC )@@G@@ AN A1,X8 . REL SLOT ADDR @C@@@[ L,H1 A0,2,X8 VD )@@G@@ . PAGE SIZE @C@@@[ AN A0,A1 . SLOT NUM VE )@@G@@ @A@@@[ LMJ X11,EDECV$ . @A@@@[ E$COPY 8,VF )@@G@@ZPM4 . @C@@@[ L A0,R15 . REC CODE VG )@@G@@@A@@@[ LMJ X11,EDECV$ . @A@@@[ E$COPY 8,ZPM5 VH )@@G@@ . @C@@@[ L A0,R14 . SET CODE @A@@@[VI )@@G@@ LSSL A0,24 . @A@@@[ SSL A0,24 VJ )@@G@@. @A@@@[ LMJ X11,EDECV$ . @A@@@[ E$CHAR '.VK )@@G@@' . @A@@@[ E$DITX . @E@@@[ VL )@@G@@ P$RINT (PF 1,12,PRINT) . $P PRINT MESSAGE @E@@@[ DL VM )@@G@@ A0,SAV3 . $P RESTORE REGISTERS @A@@@[ DL A2,VN )@@G@@SAV4 . @A@@@[ J *BDWARN . $E @]@@@@$(6). VO )@@G@@ @C@@@@PF FORM 12,6,18 . @A@@@@PCNT* VP )@@G@@ + 0 . @A@@@@PHRCNT* + 0 . VQ )@@G@@@A@@@@WCNT + 0 . @A@@@@TMSG ' PTRS PATCHED.VR )@@G@@' . @A@@@@RMSG ' PGS READ, ' . @A@@@@WMSG ' PVS )@@G@@GS WRITTEN, ' . @C@@@@SAV1 RES 2 . VT )@@G@@ @A@@@@SAV2 RES 2 . @B@]@@ZPM1 'WARNING:VU )@@G@@ ZERO DBP - AREA ' . @C@@@]ZPM1 'WARNING: ZERO PTR STORED - AREA VV )@@G@@' . @A@@@@ZPM2 ',PG ' . @A@@@@ZPM3 ',SLT ' VW )@@G@@ . @A@@@@ZPM4 ',RECCDE ' . @A@@@@ZPM5 VX )@@G@@ ',SETCDE ' . @E@]@@ZPM6 'ZERO DBP WARNINGS SUPPRESSVY )@@G@@ED FOR RECCDE ' . @E@@@]ZPM6 'ZERO POINTER WARNINGS SUPPRESSEDVZ )@@G@@ FOR RECCDE ' . @A@@@@ZPM7 ', SETCDE ' . @A@@@[SAV3 WA )@@G@@ RES 2 . @A@@@[SAV4 RES 2 . WB )@@G@@@A@]@[BDM1 'WARNING: UNKNOWN AREA ' . @C@@@]BDM1 'WARNING: PTR TWC )@@G@@O UNKNOWN AREA ' . @A@@@[BDM2 ' - AREA ' . @^@@@@WD )@@G@@ END . ___ . $T IS THIS*[@@@@*SDFF*@]@@@# . WE )@@G@@ @A@@@# . ** BLDC5 ** @]@@@# . @E@@@#WF )@@G@@ . THIS ROUTINE BUILDS THE C5/C11 TABLE FOR @A@@@# . WG )@@G@@ A GIVEN OBJECT RECORD@]@@@# . @A@@@# . IT IS CAWH )@@G@@LLED BY BLDC1 - @C@@@# . BLDC1 PROVIDES THE BUFFER SPACE WI )@@G@@@C@@@# . RTABAD CONTAINS THE ADDR OF THE @C@@@# . WJ )@@G@@ OBJECT RECORD TABLE @C@@@# . X7 INDICATES WHWK )@@G@@ICH SCHEMA @]@@@# . @^@@@# . THE CALL IS - @A@@@#WL )@@G@@ . LMJ X11,BLDC5 @]@@@# . @^@@@# AXRWM )@@G@@$. @A@@@#PF FORM 12,6,18 . @^@@@#$(4) LITWN )@@G@@. @]@@@#$(3). @C@@@#BLDC5*. . $H BWO )@@G@@LDC5 @E@@@# S,H2 X11,RETURN . $P SAVE RETURN ADDR WP )@@G@@ @G@@@# LXM X8,RTABAD . $P SET INDEX INTO RECORD TABWQ )@@G@@LE @E@@@# L,H2 X9,*CN5,X7 . $P SET INDEX TO C TBL WR )@@G@@ENTRY @A@@@# A,H1 X9,*CN5,X7 . @E@@@# S X9,WS )@@G@@SX9 . $P SAVE START OF ENTRY @E@@@# L,T3 A1,0,X9 WT )@@G@@ . $P GET START OF LAST ENTRY @A@@@# L A0,X9 WU )@@G@@. @A@@@# AN A0,A1 . @E@@@# S,T3 A1,WV )@@G@@0,A0 . $P SET LINK IN LAST ENTRY @A@@@# LXI,U X9,1 WW )@@G@@ . @E@@@# L,T3 A0,1,X8 . $P GET RECORD CODE WX )@@G@@ @A@@@# LSSL A0,24 . @A@ @# S A0,WY )@@G@@0,*X9 . @A@@@ S A0,0,X9 . @E@@@# WZ )@@G@@ L,S1 A0,1,X8 . $P GET LOCATION MODE @E@@@# S XA )@@G@@ A0,LOCMDE,X7 . $P SAVE MODE FOR ART @A@ @# LSSL A0,XB )@@G@@30 . @A@ @^ S A0,0,X9 . @A@@@ XC )@@G@@ S,S4 A0,0,*X9 . @E@^@# A,T3 A0,3,X8 . $P GXD )@@G@@ET FIRST DATA WORD DISP @E@ @^ L,T3 A0,3,X8 . $P GET FIRXE )@@G@@ST DATA WORD DISP @E@@@ L A0,3,X8 . $P GET FIRST DATXF )@@G@@A WORD DISP @A@@@ LSSL A0,24 . @A@@@ SSLXG )@@G@@ A0,24 . @A@^@# S A0,0,*X9 . @A@ @^XH )@@G@@ S,T3 A0,0,*X9 . @A@@@ S A0,0,X9 XI )@@G@@. @A@@@# S A0,C5FDW . @G@@@ A,H2 A0,XJ )@@G@@6,X8 . $P ADD RECD DATA LNGTH TO GET RECD LNGTH@A@@@ S,TXK )@@G@@1 A0,0,*X9 . @E@@@# DL A0,7,X8 . $P TRANSFEXL )@@G@@R RECORD NAME @A@@@# DS A0,0,X9 . @A@@@# XM )@@G@@ DL A0,9,X8 . @A@@@# DS A0,2,X9 . XN )@@G@@@A@@@# L A0,11,X8 . @A@@@# S A0,4,X9 XO )@@G@@ . @A@@@# A,U X9,5 . @E@@@# L,SXP )@@G@@1 A1,1,X8 . $P GET LOCATION MODE @E@@@# AND,U A1,XQ )@@G@@2 . $T IS RECORD CALC ? @C@@@# JZ A2,C5NCLCXR )@@G@@ . $A YES NO,C5NCLC@G@@@# DL A0,13,X8 . $P TRANSFEXS )@@G@@R CALC PROCEDURE NAME @A@@@# DS A0,0,X9 . XT )@@G@@@A@@@# A,U X9,2 . @A@@@# L X10,X8 XU )@@G@@ . @G@@@# A,T1 X10,5,X8 . $P SET PTR TO ITEM LISXV )@@G@@T OF RDT @E@@@# L,T2 A8,5,X8 . $P GET # ITEMS IXW )@@G@@N RECORD @G@@@# L X4,X8 . $P SET PTR TO CALC ITEXX )@@G@@M CODES @A@@@# A,U X4,15 . @E@@@# XY )@@G@@ L,S2 A2,0,X4 . $P GET CALC ITEM COUNT @A@@@# AN,XZ )@@G@@U A2,1 . @E@@@# SZ A10 . $P SET CALYA )@@G@@C ITEM # TO ZERO @E@@@#C5CLP A,U A10,1 . $P INCREMENT CALYB )@@G@@C ITEM # @A@@@# SZ A0 . @E@@@# L YC )@@G@@ A1,A10 . $P GET CALC ITEM CODE @A@@@# DI,U A0,YD )@@G@@3 . @A@@@# A A0,X4 . @A@@@# YE )@@G@@ EX C5CLIT,A1 . @E@@@# SZ C5FLAG . $P IYF )@@G@@NITIALIZE WORK AREAS @A@@@# SZ X5 . @G@@@#YG )@@G@@ LMJ X11,C5GTIT . $W C5GTIT - BREAK ITEM INTO ELEM'RY ITEMYH )@@G@@@E@@@# JGD A2,C5CLP . $T MORE CALC ITEMS ? @C@@@#YI )@@G@@ . $A NO YES,C5CLP @G@@@# L A0,YJ )@@G@@X9 . $P CALCULATE # ELEM ITEMS PUT IN TABLE @A@@@# LSSYK )@@G@@L A0,18 . @A@@@# SSL A0,18 . @A@@@#YL )@@G@@ AN A0,SX9 . @A@@@# AN,U A0,9 YM )@@G@@. @B@@@A L A1,SX9 . @E@A@# S,SYN )@@G@@3 A0,*SX9 . $P STORE IT AS CALC ITEM CNT@E@@@A S,S3 A0,YO )@@G@@0,A1 . $P STORE IT AS CALC ITEM CNT@C@@@# J C5AREA YP )@@G@@ . $J C5AREA @G@@@#C5NCLC DL A0,C5BLNK . $P PUT BLAYQ )@@G@@NKS IN CALC PROC NAME @A@@@# DS A0,0,X9 . YR )@@G@@@A@@@# A,U X9,2 . @C@@@A L A0,SYS )@@G@@X9 . @E@A@# SZ,S3 *SX9 . $P PUT ZERYT )@@G@@O IN CALC ITEM CNT@E@@@A SZ,S3 0,A0 . $P PUT ZERO IN CYU )@@G@@ALC ITEM CNT@A@@@#C5AREA L,T2 A0,1,X8 . @A@@@# SZ YV )@@G@@ A5 . @E@@@# L X10,X9 . $P SAVE ARYW )@@G@@EA CNT WORD ADDR @E@@@# A,U X9,1 . $T ARE THERE ANYYX )@@G@@ WITHINS @C@@@# JZ A0,C5AEND . $A YES NO,C5AEND@G@@@#YY )@@G@@ A X8,A0 . $P SET PTR TO 1ST WITHIN OF RDT YZ )@@G@@@G@@@# L A1,X9 . $P GET DISPLACEMENT TO FIRST WITHIZA )@@G@@N @A@@@# LXI,U A1,0 . @A@@@# L A0,ZB )@@G@@SX9 . @A@@@# AN A1,A0 . @A@@@# ZC )@@G@@ S,T2 A1,1,A0 . @A@@@# LXI,U X8,1 . ZD )@@G@@@E@@@#C5ALP A,U A5,1 . $P INCREMENT AREA COUNT @E@@@#ZE )@@G@@ L,U A0,3 . $P SET LINK TO NEXT WITHIN @E@@@# ZF )@@G@@ TNZ,S1 0,X8 . $T IS THERE ANOTHER WITHIN ?@E@@@# SZ ZG )@@G@@ A0 . $P RESET LINK TO ZERO @A@@@# LSSL A0,ZH )@@G@@6 . @A@@@# S,T1 A0,0,X9 . @C@@@# ZI )@@G@@ L,T3 A0,0,X8 . $P GET AREA CODE@A@@@# S,T3 A0,0,X9 ZJ )@@G@@ . @A@@@# L,S1 A4,0,X8 . @G@@@# L,SZK )@@G@@3 A2,0,X8 . $P GET LOWER/UPPER BOUND CODES @A@@@# ZL )@@G@@ L,S4 A3,0,*X8 . @G@@@# TNE,U A2,2 . $T IZM )@@G@@S LOWER BOUND A DATANAME ? @C@@@# J C5AL2 ZN )@@G@@. $A NO YES,C5AL2 @G@@@# TNE,U A3,2 . $T IS UPPER BOUNZO )@@G@@D A DATANAME ? @C@@@# J C5AL2 . $A NO YES,ZP )@@G@@C5AL2 @E@@@# TE,U A2,1 . $T IS PAGE RANGE GIVEN ? ZQ )@@G@@@C@@@# J C5AL3 . $A YES NO,C5AL3 @E@@@# L,UZR )@@G@@ A0,0101 . $P SET L/U BOUND CODES @A@@@# S,T2 A0,ZS )@@G@@0,*X9 . @E@@@# L A0,0,*X8 . $P GET LOWER BOUZT )@@G@@ND @A@@@# S A0,0,*X9 . @E@@@# L ZU )@@G@@ A0,0,*X8 . $P GET UPPER BOUND @A@@@# S A0,ZV )@@G@@0,*X9 . @C@@@# J C5AL4 . $J C5AL4 ZW )@@G@@@G@@@#C5AL2 A,U X8,2 . $P INCREMENT RDT INDEX PAST DATANAZX )@@G@@MES @E@@@#C5AL3 SZ,T2 0,*X9 . $P ZERO L/U BOUND CODES ZY )@@G@@@E@@@# SZ 0,*X9 . $P ZERO L AND U BOUNDS @A@@@#ZZ )@@G@@ SZ 0,*X9 . @E@@@#C5AL4 JNZ A4,C5ALP AA )@@G@@. $T MORE WITHINS ? @C@@@# . $A NAB )@@G@@O YES,C5ALP @E@@@#C5AEND S A5,0,X10 . $P STORE AREA COUNT AC )@@G@@ @E@@@# L A0,X9 . $P GET NEW TABLE LENGTH AD )@@G@@@A@@@# LSSL A0,18 . @A@@@# SSL A0,18 AE )@@G@@ . @A@@@# ANU A0,SX9 . @G@@@# S,TAF )@@G@@3 A1,0,X9 . $P SET PRIOR LINK AT END OF TABLE @G@@@# AG )@@G@@ TG,H2 A0,*CN6,X7 . $T HAS C5/C11 BUFFER OVERFLOWED @C@@@#AH )@@G@@ J C5OFL . $A NO YES,C5OFL @A@@@# AN,H2 A0,AI )@@G@@*CN5,X7 . @E@@@# S,H1 A0,*CN5,X7 . $P SAVE LENGTH IAJ )@@G@@N C5/C11 @G@@@# LMJ X11,BLDSMR . $W BLDSMR - BUILD SYMBAK )@@G@@OL TABLE FOR RECD @E@@@# J *RETURN . $E RETURN TO BLDAL )@@G@@C1 @]@@@# . @C@@@#C5OFL. . $H CAM )@@G@@5OFL @E@@@# P$RINT (PF 1,4,C5OM) . $P PRINT OVERFLOW MESSAN )@@G@@AGE @A@@@# ER ERR$ . $E @]@@@# . @^@@@#AO )@@G@@ . C5GTIT - @E@@@# . ROUTINE TO BREAK AN ITEM INTO ITAP )@@G@@S ELEMENTARY ITEMS@E@@@# . IT CALLS ITSELF AND USES A STACK TO SAAQ )@@G@@VE DATA @A@@@# . ON SUCCESSIVE CALLS @]@@@# . AR )@@G@@@C@@@#C5GTIT. . $H C5GTIT @E@@@# S AS )@@G@@ X11,C5STK+1,X5 . $P SAVE RETURN ADDR ON STACK@E@@@# L A3,AT )@@G@@A6 . $P GET ITEM NUMBER @A@@@# AN,U A3,1 AU )@@G@@ . @A@@@# MSI,U A3,2 . @E@@@# A AV )@@G@@ A3,X10 . $P SET PTR TO ITEM IN RDT @E@@@# TLE A8,AW )@@G@@A6 . $T IS ITEM NUMBER VALID ? @E@@@# L,U A3,C5ZEROAX )@@G@@ . $P RESET PTR TO ZERO ENTRY @E@@@#C5TST L A0,C5STK,X5 AY )@@G@@. $P GET LAST LEVEL FROM STACK@E@@@# JZ A0,C5TOP . $T IAZ )@@G@@S LEVEL ZERO ? @C@@@# . $A NO YES,BA )@@G@@C5TOP @G@@@#C5TSTA TG,S2 A0,0,A3 . $T IS ITEM OF LOWER LEVEL THBB )@@G@@AN LAST ONE?@C@@@# J C5SAVE . $A YES NO,C5SAVE@G@@@#BC )@@G@@ L,S2 A0,0,A3 . $P SAVE LEVEL AS LAST ON STACK BD )@@G@@@A@@@# S A0,C5STK+2,X5 . @E@@@# L,H2 A0,0,A3 BE )@@G@@ . $P FORMAT ITEM ENTRY @A@@@# L A1,1,A3 BF )@@G@@. @A@@@# LSSL A1,15 . @A@@@# SSL A1,BG )@@G@@3 . @A@@@# DSL A0,12 . @A@@@# BH )@@G@@ A A1,C5FDW . @G@@@# S A1,0,X9 . $P PBI )@@G@@LACE ENTRY IN C TBL - MAY BE @E@@@# BJ )@@G@@. $ OVERWRITTEN LATER @E@@@# L,U A7,1 . $P SBK )@@G@@ET ITEM-TO-BE-SAVED FLAG@E@@@# A,U A6,1 . $P SET TO BL )@@G@@NEXT ITEM @C@@@# A,U X5,2 . $P PUSH STACK BM )@@G@@@G@@@# LMJ X11,C5GTIT . $W C5GTIT - PROCESS NEXT ITEM BN )@@G@@ @C@@@# J C5TST . $J C5TST @G@@@#C5SAVEBO )@@G@@ JZ A7,$+3 . $T ARE THERE NOT ITEMS TO BE SAVED ? @A@@@#BP )@@G@@ L,U A7,0 . @G@@@# A,U X9,1 BQ )@@G@@. $P INCREMENT C TBL PTR TO SAVE ITEM @G@@@# L X11,C5STKBR )@@G@@+1,X5 . $P GET RETURN ADDR FROM STACK @C@@@# AN,U X5,BS )@@G@@2 . $P POP STACK @C@@@# J 0,X11 . $E RBT )@@G@@ETURN @G@@@#C5TOP TZ C5FLAG . $T IS THIS FIRST OR LABU )@@G@@ST PASS ? @E@@@# J C5SAVE . $A FIRST LAST,C5BV )@@G@@SAVE @C@@@# L,U A1,1 . $P SET FLAG @A@@@#BW )@@G@@ S A1,C5FLAG . @C@@@# J C5TSTA BX )@@G@@. $J C5TSTA @]@@@# . @A@@@#C5CLIT L,T1 A6,0,A0 BY )@@G@@. @A@@@# L,T2 A6,0,A0 . @A@@@# L,T3 A6,BZ )@@G@@0,A0 . @]@@@# . @]@@@#$(4). @A@@@#RETURN + CA )@@G@@ 0 . @A@@@#CN5* + C5 . @A@@@#CB )@@G@@ + C11 . @A@@@#C5OM 'C5/C11 TABLE OVERFLOCC )@@G@@W!' . @A@@@#SX9 + 0 . @A@@@#C5FDW + 0 CD )@@G@@ . @A@@@#C5FLAG + 0 . @A@@@#C5BLNKCE )@@G@@ ' ' . @A@@@#C5ZERO + 0 . CF )@@G@@@A@@@# + 0 . @A@@@#C5STK + 0 CG )@@G@@ . @A@@@# RES 49 . @]@@@# . CH )@@G@@@]@@@# . @A@@@# . ** BLDC6 ** @]@@@# . CI )@@G@@ @E@@@# . THIS ROUTINE BUILDS THE CALC RECORD TABLES CJ )@@G@@@E@@@# . (C6 AND C12) FOR BOTH SCHEMAS BY SCANNING @E@@@#CK )@@G@@ . ALL RECORDS OF EACH SCHEMA AND NOTING @A@@@# . CL )@@G@@ THOSE THAT ARE CALC @]@@@# . @E@@@# . IT IS CACM )@@G@@LLED BY CTINIT, AND USES BUFFER SPACE @A@@@# . GOTTEN BYCN )@@G@@ CTINIT @]@@@# . @^@@@# . THE CALL IS @A@@@# . CO )@@G@@ LMJ X11,BLDC6 @]@@@# . @^@@@#$(4) LIT. CP )@@G@@ @]@@@#$(3). @C@@@#BLDC6*. . $H BLDC6 CQ )@@G@@ @E@@@# S,H2 X11,RETURN . $P SAVE RETURN ADDR CR )@@G@@@E@@@# L,H2 X6,C6 . $P SET C6 TABLE POINTER @A@@@#CS )@@G@@ LXI,U X6,1 . @E@@@# SZ A6 CT )@@G@@. $P SET SEQUENCE COUNTER @A@@@# SZ A7 . CU )@@G@@@E@@@# SZ SFIND . $P SET FOR FIRST SCHEMA @E@@@#CV )@@G@@ L A0,RTABAD . $P GET REC TBL BUFFER ADDR @A@@@# CW )@@G@@ S A0,C6TBAD . @E@@@#C6LOOP A,U A6,1 . $P ICX )@@G@@NCREMENT SEQUENCE NUMBER@A@@@# S A6,C6SNUM . @G@@@#CY )@@G@@ LMJ X11,FSRBCD . $W FSRBCD - GET NEXT RDT FROM SCHEMA CZ )@@G@@@A@@@# + C6SNUM . @A@@@#C6TBAD + 0 DA )@@G@@ . @A@@@# + SFIND . @A@@@# + DB )@@G@@ $,('BLDC6') . @E@@@# TNZ C6SNUM . $T END OF DC )@@G@@RECORDS ? @C@@@# J C6END . $A NO YES,C6END DD )@@G@@@A@@@# L X9,C6TBAD . @E@@@# L,S1 A0,1,X9 DE )@@G@@ . $P GET LOCATION MODE @G@@@# TNE,U A0,2 DF )@@G@@. $T IS RECORD CALC WITH DUPLICATES ? @C@@@# J C6NOTE DG )@@G@@ . $A NO YES,NOTE @G@@@# TE,U A0,3 . $T IS RECODH )@@G@@RD CALC WITHOUT DUPLICATES ? @C@@@# J C6LOOP . $A YDI )@@G@@ES NO,C6LOOP@E@@@#C6NOTE L,T3 A0,1,X9 . $P GET RECORD CODE DJ )@@G@@ @A@@@# S,T1 A0,0,X6 . @E@@@# L,T3 A0,DK )@@G@@3,X9 . $P GET FIRST DATA DISP @A@@@# S,T3 A0,0,*X6 DL )@@G@@ . @E@@@# TG,U A7,C6SIZE . $T HAS TABLE OVERFLOWEDM )@@G@@D @C@@@# J C6OFL . $A NO YES,C6OFL @E@@@# DN )@@G@@ A,U A7,1 . $P INCREMENT TABLE SIZE @C@@@# J DO )@@G@@ C6LOOP . $J C6LOOP @E@@@#C6END L A0,SFIND DP )@@G@@. $P SAVE TABLE SIZE IN C6/C12@A@@@# S,H1 A7,*CN6,A0 . DQ )@@G@@@E@@@# TNE A0,NS$FLG . $T ANOTHER SCHEMA ? @A@@@#DR )@@G@@ J *RETURN . $E @E@@@# L,H2 X6,C12 DS )@@G@@. $P SET C12 TABLE POINTER @A@@@# LXI,U X6,1 . DT )@@G@@@E@@@# SZ A6 . $P RESET SEQUENCE COUNTER @A@@@#DU )@@G@@ SZ A7 . @E@@@# L,U A0,1 DV )@@G@@. $P SET FOR SECOND SCHEMA @A@@@# S A0,SFIND . DW )@@G@@@C@@@# J C6LOOP . $J C6LOOP @]@@@# . DX )@@G@@@C@@@#C6OFL. . $H C6OFL @E@@@# P$RDY )@@G@@INT (PF 1,4,C6OM) . $P PRINT OVERFLOW MESSAGE @A@@@# ER ERRDZ )@@G@@$ . $E @]@@@# . @]@@@#$(4). @A@@@#C6SNUM + EA )@@G@@ 0 . @A@@@#SFIND + 0 . @A@@@#EB )@@G@@CN6* + C6 . @A@@@# + C12 EC )@@G@@. @A@@@#C6OM 'C6/C12 TABLE OVERFLOW!' . @]@@@# . @A@@@#ED )@@G@@ . ** BLDC7 ** @]@@@# . @E@@@# . THEE )@@G@@IS ROUTINE BUILDS THE C7/C13 TABLE FOR @A@@@# . A GEF )@@G@@IVEN SET @]@@@# . @A@@@# . IT IS CALLED BY BLDCEG )@@G@@1 - @C@@@# . BLDC1 PROVIDES THE BUFFER SPACE @C@@@# . EH )@@G@@ STABAD CONTAINS THE ADDR OF THE @A@@@# . SET EI )@@G@@TABLE @C@@@# . X7 INDICATES WHICH SCHEMA @]@@@#EJ )@@G@@ . @^@@@# . THE CALL IS - @A@@@# . LMJ EK )@@G@@ X11,BLDC7 @]@@@# . @^@@@#$(4) LIT. @]@@@#$(3). EL )@@G@@ @C@@@#BLDC7*. . $H BLDC7 @E@@@# EM )@@G@@ S,H2 X11,RETURN . $P SAVE RETURN ADDR @E@@@# L EN )@@G@@ X8,STABAD . $P SET PTR TO SDT @G@@@# TNZ,H1 *CEO )@@G@@N7,X7 . $T IS THIS FIRST TABLE ENTRY ? @C@@@# J EP )@@G@@ C7NSET . $A NO YES,C7NSET@C@@@# L,T3 A0,1,X8 EQ )@@G@@. $P GET SET CODE @E@@@# L,H2 X9,*CN7,X7 . $P SET PTR TO C ER )@@G@@TBL @G@@@#C7SLP TNE,T1 A0,0,X9 . $T IS C TBL ENTRY FOR ES )@@G@@THIS SET ? @C@@@# J C7EXT2 . $A NO YES,C7EXT2ET )@@G@@@E@@@# TNZ,T3 0,X9 . $T MORE C TBL ENTRIES ? @C@@@#EU )@@G@@ J C7NSET . $A YES NO,C7NSET@G@@@# A,T3 X9,EV )@@G@@0,X9 . $P SET PTR TO NEXT C TBL ENTRY @C@@@# J EW )@@G@@ C7SLP . $J C7SLP @E@@@#C7NSET L,H2 X9,*CN7,X7 EX )@@G@@. $P SET INDEX TO NEW ENTRY @A@@@# A,H1 X9,*CN7,X7 . EY )@@G@@@E@@@# S X9,SX9 . $P SAVE START OF ENTRY @E@@@#EZ )@@G@@ L,T3 A1,0,X9 . $P GET START OF LAST ENTRY @A@@@# FA )@@G@@ L A0,X9 . @A@@@# AN A0,A1 . FB )@@G@@@E@@@# S,T3 A1,0,A0 . $P SET LINK IN LAST ENTRY @A@@@#FC )@@G@@ LXI,U X9,1 . @E@@@# L A0,1,X8 FD )@@G@@. $P GET SET CODE WORD @A@@@# LSSC A0,12 . FE )@@G@@@A@@@# LSSL A0,12 . @A@@@# S A0,0,*X9 FF )@@G@@ . @C@@@# DL A0,3,X8 . $P GET SET NAME @A@@@#FG )@@G@@ DS A0,0,X9 . @A@@@# DL A0,5,X8 FH )@@G@@. @A@@@# DS A0,2,X9 . @A@@@# L A0,FI )@@G@@7,X8 . @A@@@# S A0,4,X9 . @A@@@# FJ )@@G@@ A,U X9,5 . @E@@@# L,H1 A0,2,X8 . $P GFK )@@G@@ET OWNER REC WORD @A@@@# SZ A1 . @A@@@#FL )@@G@@ DSL A0,6 . @A@@@# SSC A0,18 FM )@@G@@. @A@@@# LDSL A0,6 . @A@@@# LSSC A0,FN )@@G@@12 . @A@@@# S A0,0,*X9 . @E@@@# FO )@@G@@ L,S3 A3,2,X8 . $P GET MEMBER COUNT @A@@@# AN,FP )@@G@@U A3,1 . @G@@@# A,U X8,8 . $P RESET SFQ )@@G@@DT INDEX TO 1ST MEMBER @E@@@#C7MLP L,S3 A0,0,X8 . $P GFR )@@G@@ET MEMBER TYPE @A@@@# S,T1 A0,0,X9 . @E@@@#FS )@@G@@ L,T1 A0,0,X8 . $P GET MEMBER REC CODE @A@@@# FT )@@G@@ S,T3 A0,0,*X9 . @G@@@# A,T3 X8,1,X8 . $P SFU )@@G@@ET SDT PTR TO NEXT MEMBER @E@@@# JGD A3,C7MLP FV )@@G@@. $T MORE MEMBERS ? @C@@@# . $A NFW )@@G@@O YES,C7MLP @E@@@# L A0,X9 . $P GET NEW ENTRY LENGTFX )@@G@@H @A@@@# LSSL A0,18 . @A@@@# SSL A0,FY )@@G@@18 . @A@@@# ANU A0,SX9 . @G@@@# FZ )@@G@@ S,T3 A1,0,X9 . $P SET PRIOR LINK AT END OF ENTRY @E@@@#GA )@@G@@ TG,H2 A0,*CN8,X7 . $T HAS TABLE OVERFLOWED @C@@@# GB )@@G@@ J C7OFL . $A NO YES,C7OFL @A@@@# AN,H2 A0,*CN7,XGC )@@G@@7 . @E@@@# S,H1 A0,*CN7,X7 . $P SAVE LENGTH IN C7/CGD )@@G@@13 @G@@@# LMJ X11,BLDSMS . $W BLDSMS - BUILD SYMBOL TABGE )@@G@@LE FOR SET @E@@@#C7EXT2 J *RETURN . $E RETURN TO BLDC1 GF )@@G@@ @]@@@# . @C@@@#C7OFL. . $H C7OFL GG )@@G@@ @E@@@# P$RINT (PF 1,4,C7OM) . $P PRINT OVERFLOW MESSAGE GH )@@G@@@A@@@# ER ERR$ . $E @]@@@# . @]@@@#$(4). GI )@@G@@ @A@@@#CN7* + C7 . @A@@@# + C13GJ )@@G@@ . @A@@@#C7OM 'C7/C13 TABLE OVERFLOW!' . @]@@@# . GK )@@G@@ @A@@@# . ** PACKC1 ** @]@@@# . @E@@@#GL )@@G@@ . THIS ROUTINE PACKS THE INTERNAL EXPANDED @E@@@# . GM )@@G@@ C1/C9 TABLE BEFORE THE INITIAL C1/C9 WRITE @]@@@# . GN )@@G@@@C@@@# . THE ROUTINE IS CALLED BY CF$AM @]@@@# . GO )@@G@@@E@@@# . X8 INDICATES WHICH TABLE - C1(0) OR C9(1) @]@@@#GP )@@G@@ . @^@@@#$(4) LIT. @]@@@#$(3). @C@@@#PACKC1GQ )@@G@@*. . $H PACKC1 @A@@@# + 0 GR )@@G@@ . @E@@@# L,H1 A4,*CN1,X8 . $P GET NUMBER OF ENTRIGS )@@G@@ES @C@@@# JGD A4,$+2 . $T IS IT NONZERO@C@@@# GT )@@G@@ J *PACKC1 . $E RETURN @E@@@# L,H2 A2,*CN1,GU )@@G@@X8 . $P SET UP INDICES FOR PACK @A@@@# S A2,SA2 GV )@@G@@. @A@@@# LXI,U A2,1 . @A@@@# L X9,GW )@@G@@A2 . @A@@@#PCKLP L X10,SA2 . @A@@@# GX )@@G@@ ANU A2,X10 . @G@@@# S,T3 A3,0,X10 . $P LGY )@@G@@INK LAST ENTRY TO THIS ENTRY @A@@@# S,H2 A2,SA2 GZ )@@G@@. @A@@@# L,S4 A0,0,X9 . @A@@@# ANU,U A0,HA )@@G@@NUMOAP . @A@@@# SN A1,SA1 . @A@@@# HB )@@G@@ A,U A0,1 . @A@@@# L R1,A0 . HC )@@G@@@G@@@# BT A2,0,*X9 . $P BLOCK TRANSFER OWN/AUTO PTR WORHD )@@G@@DS @A@@@# A,H2 X9,SA1 . @A@@@# L,S2 A0,HE )@@G@@0,X9 . @A@@@# ANU,U A0,36 . @A@@@# HF )@@G@@ SN A1,SA1 . @A@@@# A,U A0,2 . HG )@@G@@@A@@@# L R1,A0 . @G@@@# BT A2,0,*X9 HH )@@G@@ . $P BLOCK TRANSFER MAN PTR WORDS @A@@@# A,H2 X9,HI )@@G@@SA1 . @G@@@# JGD A4,PCKLP . $T MORE ENTRIES HJ )@@G@@TO BE PACKED ? @C@@@# L X10,SA2 . $A NO YES,HK )@@G@@PCKLP @E@@@# SZ,T3 0,X10 . $P SET LAST LINK TO ZERO HL )@@G@@@A@@@# AN,H2 A2,*CN1,X8 . @A@@@# S,H1 A2,*CN1,XHM )@@G@@8 . @A@@@# J *PACKC1 . $E @]@@@#$(4). HN )@@G@@@^@@@#SA1 + 0 . @^@@@#SA2 + 0 . @C@@@#CN1 HO )@@G@@ + C1 . @C@@@# + C9 HP )@@G@@ . @A@@@# END . ___ 0,HQ )@@G@@X9 . $T MORE C *[@@@@*SDFF*@[@@@@. @B@@@@. ******HR )@@G@@** SORT ******** @[@@@@. @D@@@@. PURPOSE: SORT THE KEY FILE HS )@@G@@FOR REORGANIZATION. @[@@@@. @]@@@@ AXR$. @]@@@@$(1). HT )@@G@@@]@@@@SORTKEY* @E@@@@ S X11,SORTRET . STORE REHU )@@G@@TURN ADDRESS@F@@@@ L,U A0,USE . ADDRESS OF USEHV )@@G@@ STATEMENT @C@@@@ ER CSF$ . USE @F@@@@HW )@@G@@ L,U A0,ASG . ADDRESS OF ASG STATEMENT @C@@@@HX )@@G@@ ER CSF$ . ASG @E@@@@ TP HY )@@G@@ A0 . SKIP IF NO REJECT @D@@@@ LMJ X11,HZ )@@G@@ASGERR . ASSIGN ERROR @F@@@@ L,U A0,ASG1 IA )@@G@@ . ADDRESS OF ASG STATEMENT @C@@@@ ER CSF$ IB )@@G@@ . ASG @E@@@@ TP A0 . SKIP IF NO REJIC )@@G@@ECT @D@@@@ LMJ X11,ASGERR . ASSIGN ERROR @F@@@@ID )@@G@@ L,U A0,ASG2 . ADDRESS OF ASG STATEMENT @C@@@@IE )@@G@@ ER CSF$ . ASG @E@@@@ TP IF )@@G@@ A0 . SKIP IF NO REJECT @D@@@@ LMJ X11,IG )@@G@@ASGERR . ASSIGN ERROR @F@@@@ L,U A0,ASG3 IH )@@G@@ . ADDRESS OF ASG STATEMENT @C@@@@ ER CSF$ II )@@G@@ . ASG @E@@@@ TP A0 . SKIP IF NO REJIJ )@@G@@ECT @D@@@@ LMJ X11,ASGERR . ASSIGN ERROR @G@@@@IK )@@G@@ L,U A0,FACPKT . PACKET FOR FACILITIES REQUEST IL )@@G@@@C@@@@ ER FACIL$ . GET INFO@G@@@@ L,IM )@@G@@H2 A0,FACPKT+8 . HIGHEST GRANULE ON ASG ST @H@@@@ IN )@@G@@ MSI,U A0,1024 . NUMBER OF WORDS RESERVED FOR SORT IO )@@G@@@E@@@@ A A0,LAST$D . LAST DBANK ADDRESS @E@@@@IP )@@G@@ A,U A0,1 . NEXT DBANK ADDRESS @E@@@@ IQ )@@G@@ S A0,BUF1 . STORE AS BUFFER 1 @F@@@@ S,IR )@@G@@H2 A0,KF$PKT1+4 . STORE BUFFER ADDR IN PKT @E@@@@ A,IS )@@G@@U A0,SECT*28 . ADDRESS OF BUF 2 @F@@@@ S IT )@@G@@ A0,BUF2 . STORE AS BUFFER 2 ADDR @E@@@@ A,U IU )@@G@@ A0,SECT*28 . LAST DBANK ADDRESS @E@@@@ A,U A0,1IV )@@G@@ . ADD 1 FOR SAFETY @E@@@@ S A0,LAST$D IW )@@G@@ . HIGHEST DBANK ADDR @C@@@@ ER MCORE$ IX )@@G@@ . GET CORE@E@@@@ L,U A3,PARM . PARM LIST FOR IY )@@G@@SORT @E@@@@ J ROPN$ . START THE SORT IZ )@@G@@@[@@@@I. @E@@@@ L,U A0,KF$PKT . ADDRESS OF PACJA )@@G@@KET @D@@@@ ER IOW$ . READ HEADER @F@@@@JB )@@G@@ L A2,KFIWDS . NUMBER OF WORDS IN INDEX @F@@@@JC )@@G@@ SSL A2,1 . NUMBER OF BLOCKS OF DATA @F@@@@JD )@@G@@ AN,U A2,1 . LESS 1 FOR DUMMY BLOCK @E@@@@JE )@@G@@ MSI A2,KCSORT . NUMBER OF WDS DATA @E@@@@ JF )@@G@@ TNZ A2 . SKIP IF WORDS @C@@@@ J JG )@@G@@ OEND1 . RETURN @F@@@@ TNG,U A2,SECT*28JH )@@G@@ . SKIP IF BUFFER SIZE OK @G@@@@ S,H1 A2,KF$PKT1JI )@@G@@+4 . STORE NUMBER OF WDS IN PKT @F@@@@ AN,H1 A2,KJJ )@@G@@F$PKT1+4 . WORDS REMAINING TO READ @E@@@@ L,U A0,KJK )@@G@@F$PKT1 . ADDRESS OF PACKET @E@@@@ ER IO$ JL )@@G@@ . READ FIRST BLOCK @[@@@@. @C@@@@. SWITCH TO NEXT BUFFER JM )@@G@@IF WORDS ARE PRESENT. @[@@@@. @]@@@@SORT1. @F@@@@ TPJN )@@G@@ KF$PKT1+3 . $ SKIP IF I/O COMPLETE @D@@@@ ERJO )@@G@@ WAIT$ . ELSE WAIT @G@@@@ TZ,S1 KF$PJP )@@G@@KT1+3 . SKIP IF ZERO ERROR STATUS @D@@@@ LMJ JQ )@@G@@ X11,IOERR . I/O ERROR @F@@@@ TNZ,H2 KF$PKT1+3 JR )@@G@@ . SKIP IF WDS TRANSFERRED @G@@@@ J RSORT$ JS )@@G@@ . DONE PASSING DATA TO SORT @G@@@@ L,H2 A1,KJT )@@G@@F$PKT1+3 . NUMBER OF WORDS TRANSFERRED @C@@@@ AN,U JU )@@G@@ A1,2 . LESS 2 @D@@@@ LXI A1,(-2) JV )@@G@@ . INCREMENT @E@@@@ L,H2 X8,KF$PKT1+4 . BUFFER AJW )@@G@@DDRESS @F@@@@ TNZ A2 . SKIP IF WDS LEJX )@@G@@FT TO READ @E@@@@ J SORT3 . NO I/O REQUIREJY )@@G@@D @F@@@@ TNG,U A2,SECT*28 . SKIP IF BUFFER SIZE JZ )@@G@@OK @G@@@@ S,H1 A2,KF$PKT1+4 . STORE NUMBER OF WDS KA )@@G@@IN PKT @F@@@@ AN,H1 A2,KF$PKT1+4 . WORDS REMAININKB )@@G@@G TO READ @D@@@@ L A0,KF$PKT1+5 . DRUM ADDRESS KC )@@G@@@E@@@@ A,U A0,SECT . NEXT DRUM ADDRESS @D@@@@KD )@@G@@ S A0,KF$PKT1+5 . DRUM ADDRESS @E@@@@ L KE )@@G@@ A0,BUF1 . ADDRESS OF BUFFER 1 @G@@@@ TNE,H2 KF )@@G@@ A0,KF$PKT1+4 . SKIP IF NOT THE CURRENT BUFFER @E@@@@ L KG )@@G@@ A0,BUF2 . ADDRESS OF BUFFER 2 @F@@@@ S,H2 KH )@@G@@ A0,KF$PKT1+4 . STORE NEW BUFFER ADDRESS @E@@@@ L,U KI )@@G@@ A0,KF$PKT1 . PACKET ADDRESS @E@@@@ ER IO$ KJ )@@G@@ . READ NEXT BLOCK @F@@@@ L A0,X8 KK )@@G@@ . LOCATION OF FIRST RECORD @]@@@@SORT2. @G@@@@ LMKL )@@G@@J X11,RREL$ . PASS RECORD TO SORT ROUTINE @E@@@@ KM )@@G@@ A,U A0,2 . NEXT RECORD LOCATION@C@@@@ JMKN )@@G@@GI A1,SORT2 . CONTINUE@E@@@@ J SORT1 KO )@@G@@ . SWITCH BUFFERS @]@@@@SORT3. @G@@@@ SZ,H2 KP )@@G@@ KF$PKT1+3 . ZERO NUMBER OF WDS TRANSFERRED @E@@@@ L KQ )@@G@@ A0,X8 . BUFFER ADDRESS @C@@@@ J KR )@@G@@ SORT2 . CONTINUE@[@@@@O. @D@@@@ LMJ X11,KS )@@G@@RRET$ . GET A RECORD @G@@@@ + OEND KT )@@G@@ . ADDRESS OF END OF RECORDS @C@@@@ DL A0,,A0 KU )@@G@@ . GET KEY @G@@@@ TNE A0,KEYLAST . SKIP IF KV )@@G@@NOT SAME KEY AS BEFORE @D@@@@ J KEYDUP . DUKW )@@G@@PLICATE @F@@@@ S A0,KEYLAST . STORE THIS KEYKX )@@G@@ AS LAST @F@@@@ DS A0,KFAMPK+3 . STORE IN KF$AMKY )@@G@@ PACKET @E@@@@ L,U X10,KFAMPK . PACKET ADDRESSKZ )@@G@@ @E@@@@ LMJ X11,KF$AMC . CREATE KEYFILE ENTRYLA )@@G@@@C@@@@ J O. . CONTINUE@]@@@@OEND. LB )@@G@@@E@@@@ L,U X10,KFAMPK . PACKET ADDRESS @E@@@@LC )@@G@@ LMJ X11,KF$AMF . FLUSH KEY FILE @]@@@@OEND1.LD )@@G@@ @E@@@@ L X11,SORTRET . RETURN ADDRESS LE )@@G@@@C@@@@ J 0,X11 . RETURN @]@@@@KEYDUP. LF )@@G@@@G@@@@ TNE A0,KEYMAX . SKIP IF NOT MAX VAL FOR A LG )@@G@@KEY @C@@@@ J OEND . DONE @F@@@@ LH )@@G@@ E$DIT EPKT . INIT FOR EDIT PACKAGE @A@@@@ LI )@@G@@ E$OCTF 13,KEYLAST @#@@@@ E$DITX @F@@@@ L LJ )@@G@@ A0,EMSG . ACW FOR ERROR MESSAGE @C@@@@ ERLK )@@G@@ PRINT$ . PRINT IT@E@@@@ L A0,EMSG1 LL )@@G@@ . ACW FOR SECOND LINE @C@@@@ ER PRINT$ LM )@@G@@ . PRINT IT@D@@@@ ER ERR$ . ERROR OFF LN )@@G@@@]@@@@$(0). @G@@@@PARM R$FILE 'RSZW',2 'KEYW',1,35,36,'U',LO )@@G@@'A' 'FPOC',I 'LPOC',O ; @A@@@@ 'COPY',RSTD$ @^@@@@LP )@@G@@FACPKT 'R$CORE '@^@@@@ RES 7 @A@@@@USE '@LQ )@@G@@USE K$FILE,*K$FILE . ' @ @@@@ASG '@ASG,A K$FILE . ' @A@@@@ASG1 LR )@@G@@ '@ASG,T R$CORE,///15 . ' @A@@@@ASG2 '@ASG,T XA,F4/400 . ' LS )@@G@@@A@@@@ASG3 '@ASG,T XB,F4/200 . ' @B@@@@KF$PKT I$OD 'K$FILE LT )@@G@@ ',R$ 6,KHDR @]@@@@KHDR. @^@@@@KFNAME 'K$FILE' @^@@@@LU )@@G@@KFDATE ' ' @^@@@@KFTIME ' ' @#@@@@KFIWDS + LV )@@G@@ 0 @#@@@@KFLKEY + 0 @#@@@@KFHKEY + 0 @A@@@@EMSG + LW )@@G@@ 0107,EMSG+1 @E@@@@ 'RECORD UNLOADED TWICE. LX )@@G@@ ' @A@@@@EMSG1 + 0105,EMSG1+1 @B@@@@ LY )@@G@@ 'REORG INVALID. TERMINATING.' @ @@@@EPKT E$PKT 3,EMSG+5 LZ )@@G@@@A@@@@KEYMAX + 0777777777777 @^@@@@KEYLAST + 0 MA )@@G@@@]@@@@KHDREND. @G@@@@SECT EQU 128 . NUMBER MB )@@G@@OF SECTORS IN BUF @E@@@@BUF1 + 0 . BUMC )@@G@@FFER1 ADDRESS @E@@@@BUF2 + 0 . BUFFER 2MD )@@G@@ ADDRESS @E@@@@KF$PKT1 I$OD 'K$FILE ',R$ SECT*28,BUF1 640ME )@@G@@ @F@@@@KFAMPK RES 50 . PACKET FOR KF$AM CREMF )@@G@@ATE @E@@@@SORTRET + 0 . RETURN ADDRESS MG )@@G@@@[@@@@ END ___ @E@@@@ L,U A0,KF$PKT1 . ADDRESS MH )@@G@@OF PACKET @E@@@@ ER IO$ *[@@@@*SDFF*@]@@@# . MI )@@G@@ @A@@@# . ** PATCH ** @]@@@# . @E@@@#MJ )@@G@@ . THIS ROUTINE WILL PATCH DB PTRS THAT SHOULD @E@@@# . MK )@@G@@ POINT TO RECORDS MOVED DURING REORGANIZATION @C@@@# . ML )@@G@@ SO THAT THE POINTERS ARE CORRECT @]@@@# . @^@@@# . THMM )@@G@@E CALL IS @A@@@# . LMJ X11,PATCH @]@@@# . MN )@@G@@@G@@@# . C2 IS USED TO GET THE DB RANGES WHICH NEED TO BE EXAMINEMO )@@G@@D @]@@@# . @G@@@# . AFRCDT IS A TABLE BUILT INTERNALMP )@@G@@LY TO PATCH WHICH CONTAINS @G@@@# . THE RECORD CODES AND MQ )@@G@@C1 TABLE ENTRY ADDR FOR ALL @A@@@# . AFFECTED RECORDMR )@@G@@S @]@@@# . @E@@@# . THE CODE WAS WRITTEN WITH REENTRMS )@@G@@ANCY IN MIND, @C@@@# . THUS MANY REGISTERS ARE USED MT )@@G@@@E@@@# . FOR THE MOST PART, REGISTER ASSIGNMENTS @A@@@#MU )@@G@@ . ARE AS FOLLOWS: @C@@@# . X5 - ADDRMV )@@G@@ OF KFAM PACKET @C@@@# . X6 - ADDR OF DBAM PACKET MW )@@G@@@E@@@# . X7 - PTR TO NEXT PG RANGE ENTRY @E@@@#MX )@@G@@ . X8 - ADDR OF FIRST WORD OF CURRENT PG @A@@@# . MY )@@G@@ X9 - @C@@@# . X10 - PARAM ADDRMZ )@@G@@ FOR CALLS @C@@@# . X11 - CALLING REG @C@@@#NA )@@G@@ . A0 - WORKING REG / SLOT PTR@C@@@# . NB )@@G@@ A1 - WORKING REG @C@@@# . A2 - START ADDRNC )@@G@@ OF RECORD @C@@@# . A3 - ADDR OF DB PTR @C@@@#ND )@@G@@ . A4 - SLOT LOOP COUNTER @C@@@# . NE )@@G@@ A5 - PAGE LOOP COUNTER @G@@@# . A6 - NUMBER OF NF )@@G@@PAGES IN CURRENT DB BLOCK @C@@@# . A7 - CURRNG )@@G@@ENT RANGE BLOCK @E@@@# . A8 - PAGE-BLOCK-CHANGED FLANH )@@G@@G @E@@@# . A9 - PG RANGE REMAINING COUNT NI )@@G@@ @G@@@# . R4 - ADDR OF START OF CURRENT C2 TABLE NJ )@@G@@ENTRY @C@@@# . R5 - LINK TO NEXT C2 ENTRY @C@@@#NK )@@G@@ . R3,R6,R7 - SAVE REGISTERS @]@@@# . @A@@@#NL )@@G@@ . ** PATCH ** @]@@@# . @A@@@#PF FORNM )@@G@@M 12,6,18 . @A@@@#AW FORM 6,6,6,18 . @G@ @#NN )@@G@@ . ACTNUM EQU 3 . NO PROCESS ACTIVITIES CREATED NO )@@G@@@C@@@ . ACTNUM EQU - NO PROCESS ACTIVITIES CREATED@G@ @# . PGPBLK NP )@@G@@EQU 10 . NO OF PAGES IN BLOCK I/O FROM DB @E@@@ . PGPNQ )@@G@@BLK EQU - NO OF PAGES IN BLOCK I/O FROM DB @G@ @# . KF$WKS NR )@@G@@EQU 50 . WORK SPACE ALLOWED IN KFAM PACKET @E@@@ . KF$NS )@@G@@WKS EQU - WORK SPACE ALLOWED IN KFAM PACKET @]@@@# . NT )@@G@@@^@@@# AXR$. @^@@@#$(6) LIT. @]@@@#$(5). NU )@@G@@ @]@@@# . @C@@@#PATCH*. . $H PATCH NV )@@G@@ @C@@@# S,H2 X11,RETURN . $P SAVE RETURN @G@@@# NW )@@G@@ SLJ MERGE . $W MERGE - MERGE C2 AND C4 INTO NEW C2 @C@@@#NX )@@G@@ L A15,C4 . $P SAVE C4 @E@@@# L A0,NY )@@G@@C16 . $P MOVE C16 TO C4 @A@@@# S A0,C4 NZ )@@G@@ . @G@@@# SLJ MERGE . $W MERGE - NEW C2 AND OA )@@G@@C16 INTO NEW C2 @C@@@# S A15,C4 . $P RESTORE C4 OB )@@G@@@G@@@# SLJ BLDART . $W BLDART - BUILD AFFTD RECD & AREOC )@@G@@A TBLS@G@@@ SZ WRNFLG . $P RESET WARNINGS-PRINTED FLOD )@@G@@AG @E@@@# L,U A0,ACTNUM . $P GET NUMBER OF ACTIVOE )@@G@@ITIES @E@@@# TG,U A0,21 . $T IS IT LESS THAN 21 OF )@@G@@@C@@@# J MAXACT . $A YES NO,MAXACT@A@@@# L OG )@@G@@ A0,LAST$D . @A@@@# AU,U A0,1 . @E@@@#OH )@@G@@ L,U A2,KF$WKS . $P GET KF$AM PACKET SPACE @A@@@# OI )@@G@@ A,U A2,6 . @A@@@# MSI,U A2,ACTNUM . OJ )@@G@@@E@@@# L,U A3,ACTNUM . $P GET DB$AM PACKET SPACE @A@@@#OK )@@G@@ MSI,U A3,3 . @A@@@# AN,U A3,1 OL )@@G@@. @A@@@# MSI,U A3,9 . @A@@@# A A2,OM )@@G@@A3 . @A@@@# A A0,A2 . @A@@@# ON )@@G@@ S A0,LAST$D . @E@@@# ER MCORE$ . $P MOO )@@G@@CORE ALL PACKET SPACE @A@@@# L R1,A2 . @A@@@#OP )@@G@@ L A3,A1 . @A@@@# LXI,U A3,1 OQ )@@G@@. @A@@@# L A0,ZEROPT . @E@@@# BT A3,OR )@@G@@0,*A0 . $P ZERO OUT ALL PACKET SPACE@G@@@# L,U A3,ACTNUMOS )@@G@@ . $P GET # OF DB$AM PKETS NEEDED @A@@@# MSI,U A3,OT )@@G@@3 . @A@@@# AN,U A3,1 . @E@@@#DBPLP1OU )@@G@@ JGD A3,$+2 . $P LOOP TO SET DBPKET ADDRS @A@@@# J OV )@@G@@ DBPLP2 . @A@@@# S A1,DBPADR+1,A3 . @A@@@#OW )@@G@@ A,U A1,9 . @A@@@# J DBPLP1 OX )@@G@@. @E@@@#DBPLP2 L,U A0,KF$WKS . $P GET KFPKET SIZE OY )@@G@@@A@@@# A,U A0,6 . @E@@@# L,U A3,ACTNUMOZ )@@G@@ . $P GET # KF$AM PKETS NEEDED @E@@@#KFPLP1 JGD A3,$+2 PA )@@G@@. $P LOOP TO SET KFPKET ADDRS @A@@@# J KFPLP2 . PB )@@G@@@A@@@# S A1,KFPADR,A3 . @A@@@# A A1,A0 PC )@@G@@ . @A@@@# J KFPLP1 . @]@@@#KFPLP2. PD )@@G@@@C@@@# . THIS SECTION OF CODE SCANS THE C3 TABLE @C@@@# . TOPE )@@G@@ GET THE LARGEST AFFECTED PAGE SIZE @C@@@# . AND THEN MCORE'S A BPF )@@G@@UFFER FOR THE DBAM@G@@@# L,U A1,0 . $P CALCULATE NO PG )@@G@@ENTRIES IN C3 @A@@@# L,H1 A2,C3 . @A@@@#PH )@@G@@ DI,U A1,9 . @A@@@# JZ A1,ERROR PI )@@G@@. @E@@@# AN,U A1,1 . $P SET C3 SEARCH COUNT PJ )@@G@@@C@@@# L,H2 X9,C3 . $P SET C3 INDEX @A@@@# LXIPK )@@G@@,U X9,9 . @E@@@# L,U A2,0 . $P INITIALPL )@@G@@IZE MAX PG SIZE @E@@@#PGSZLP L,T1 A0,3,*X9 . $P GET NEXT PG SPM )@@G@@IZE @A@@@# LSSL A0,24 . @A@@@# SSLPN )@@G@@ A0,24 . @G@@@# TLE A2,A0 . $T IS MAX PO )@@G@@GREATER THAN THIS PG SIZE ? @E@@@# L A2,A0 . $P RPP )@@G@@ESET MAX TO THIS SIZE @E@@@# JGD A1,PGSZLP . $T MORE C3PQ )@@G@@ ENTRIES ? @C@@@# . $A NO YES,PGSZLPPR )@@G@@@E@@@# L,U A3,ACTNUM . $P GET # OF BLOCKS NEEDED @A@@@#PS )@@G@@ MSI,U A3,3 . @A@@@# AN,U A3,1 PT )@@G@@. @E@@@# MSI,U A2,PGPBLK . $P CALCULATE PAGE BLOCK SIZEPU )@@G@@@C@@@# A,U A2,100 . $P PAD IT @E@@@# L PV )@@G@@ A0,LAST$D . $P GET LAST-D-BANK ADDR @C@@@# A,U A0,PW )@@G@@1 . $P INCREMENT IT @E@@@#BUFLP L X6,DBPADR,A3 . $P GPX )@@G@@ET NEXT DBAM PACKET ADDR@G@@@# S,H2 A0,7,X6 . $P PUT BUFPY )@@G@@ AD IN DBAM PKET AS BLOCK ADDR@G@@@# S,H1 A2,8,X6 . $P PPZ )@@G@@UT BLOCK SIZE INTO DBAM PACKET @G@@@# SZ,S1 3,X6 QA )@@G@@. $P INITIALIZE PKET STATUS TO 0 @E@@@# A A0,A2 QB )@@G@@ . $P ADD BLOCK SIZE @E@@@# JGD A3,BUFLP QC )@@G@@. $P REPEAT FOR OTHER BUFFERS @A@@@# AN,U A0,1 . QD )@@G@@@E@@@# S A0,LAST$D . $P SAVE NEW LAST-D @G@@@#QE )@@G@@ ER MCORE$ . $W MCORE - GET CORE FOR BUFFER QF )@@G@@@A@@@# L,U A0,'PCH' . @G@@@# ER NAME$ QG )@@G@@ . $P NAME MAIN ACTIVITY FOR ACT$ @C@@@# L R10QH )@@G@@,A0 . $P SAVE NAME @C@@@# L A0,(AW 0,1,1,ACTONE) QI )@@G@@. @E@@@# ER FORK$ . $P FORK PRIMARY ACTIVIQJ )@@G@@TY @G@@@# ER DACT$ . $P WAIT FOR COMPLETION OF PRQK )@@G@@I ACT @E@@@# SLJ CHKPT2 . $W CHKPT2 - PRINT STATQL )@@G@@ISTICS@E@@@ TNZ WRNFLG . $T WERE ANY WARNINGS PRINTEDQM )@@G@@@E@@@ J *RETURN . $E RETURN TO MAIN CONTROL @G@@@ QN )@@G@@ P$RINT (PF 1,8,WMSG1) . $P PRINT POSSIBLE ERROR BLOCK QO )@@G@@@A@@@ P$RINT (PF 1,8,WMSG2) . @A@@@ P$RINT (PF 1,8,QP )@@G@@WMSG3) . @A@@@ P$RINT (PF 1,8,WMSG4) . @A@@@ P$RQQ )@@G@@INT (PF 1,8,WMSG2) . @A@@@ P$RINT (PF 1,8,WMSG1) . @E@ @#QR )@@G@@ J *RETURN . $E RETRUN TO MAIN CONTROL @E@@@ QS )@@G@@ J *RETURN . $E RETURN TO MAIN CONTROL @]@@@# . QT )@@G@@@E@@@# . THIS SECTION OF CODE IS PRIMARY ACTIVITY @E@@@#QU )@@G@@ . IT INITIALIZES THE GETRNG FUNCTION AND @E@@@# . QV )@@G@@ ALL I/O BUFFER PTRS, FORKS ACTNUM SECONDARY @E@@@# . QW )@@G@@ ACTIVITIES, AND WAITS FOR THEIR COMPLETION @]@@@# . @E@@@#QX )@@G@@ACTONE ER TSQRG$ . $P REGISTER TS QUEUEING @G@@@# QY )@@G@@ L,H2 A0,C2 . $P INITIALIZE INDICES FOR GETRNG @A@@@#QZ )@@G@@ LXI,U A0,1 . @A@@@# AN,U A0,1 RA )@@G@@. @E@@@# S A0,SV1 . CURRENT C2 ENTRY ADDR RB )@@G@@@A@@@# L,U A0,1 . @E@@@# S A0,SV2 RC )@@G@@ . SET LINK NON-ZERO @E@@@# TS RNGTSC RD )@@G@@. $P LOCK OUT GETRNG @A@@@# L,U A3,ACTNUM . RE )@@G@@@A@@@# AN,U A3,1 . @G@@@#STRTLP L X3,(-1) RF )@@G@@ . $P INITIALIZE BUFFER PTRS FOR SEC ACT @A@@@# L A0,RG )@@G@@A3 . @A@@@# MSI,U A0,3 . @C@@@# RH )@@G@@ L X1,A0 . READ BUFFER @A@@@# A,U A0,2 RI )@@G@@ . @C@@@# L X2,A0 . WRITE BUFFER @C@@@#RJ )@@G@@ L X5,KFPADR,A3 . KF$AM PACKET @A@@@# L A0,RK )@@G@@A3 . @C@@@# A,U A0,2 . ACTIVITY-ID RL )@@G@@@A@@@# LSSL A0,6 . @E@@@# A,U A0,1 RM )@@G@@ . USE MAJOR REGISTER SET @A@@@# LSSL A0,18 RN )@@G@@. @C@@@# A,U A0,ACTTWO . ACTIVITY ADDR @E@@@# RO )@@G@@ ER FORK$ . $P FORK SECONDARY ACTIVITY @E@@@# JGDRP )@@G@@ A3,STRTLP . $T MORE SEC ACT TO BE FORKED@C@@@# RQ )@@G@@ . $A NO YES,STRTLP@C@@@# C$TS RNGTSC . $P URR )@@G@@NLOCK GETRNG@A@@@# L,U A2,ACTNUM . @A@@@# AN,RS )@@G@@U A2,1 . @E@@@# L A1,(0400000000000) . $P SERT )@@G@@T UP ACTIVITY MASK@A@@@# SZ A0 . @A@@@# RU )@@G@@ SSA A1,0,A2 . @A@@@# LDSL A0,3,A2 . RV )@@G@@@G@@@# ER AWAIT$ . $P WAIT FOR COMPLETION OF ALL SEC RW )@@G@@ACT @E@@@# ER TSQCL$ . $P CLEAR TS QUEUEING RX )@@G@@@E@@@# L A0,R10 . $P GET MAIN ACTIVITY NAME @E@@@#RY )@@G@@ ER ACT$ . $P ACTIVATE MAIN ACTIVITY @C@@@# RZ )@@G@@ ER EXIT$ . $E EXIT @]@@@# . @E@@@# . SA )@@G@@ THIS SECTION OF CODE IS SECONDARY ACTIVITY @E@@@# . SB )@@G@@ IT GETS THE NEXT RANGE BLOCK TO BE SCANNED @E@@@# . FROSC )@@G@@M GETRNG, CALLS DBAM TO READ THE BLOCK, @E@@@# . INITIALIZSD )@@G@@ES THE PATCH PROCESS FOR EACH PAGE @E@@@# . OF THE BLOCK, ASE )@@G@@ND ON COMPLETION CALLS DBAM @E@@@# . TO WRITE THE BLOCK IFSF )@@G@@ ANY PATCHES WERE MADE @E@@@# . IT EXITS WHEN THERE ARE NO SG )@@G@@MORE RANGES TO BE @^@@@# . SCANNED @]@@@# . @]@@@#SH )@@G@@ACTTWO. @E@@@# L X6,DBPADR,X1 . $P GET DBAM READ PACKESI )@@G@@T @E@@@# TS RNGTSC . $P LOCK OUT GETRNG SJ )@@G@@@G@@@# SLJ GETRNG . $W GETRNG - SET PKET FOR NEXT PAGESK )@@G@@ BLOCK@C@@@# C$TS RNGTSC . $P UNLOCK GETRNG@E@@@# SL )@@G@@ TN X1 . $T WAS THERE A BLOCK @C@@@# J SM )@@G@@ RNGE4 . $A NO YES,RNGE4 @E@@@# TN X3 SN )@@G@@. $T IS THIS FIRST BLOCK @C@@@# J RNGEB . $A YSO )@@G@@ES NO,RNGEB @A@@@# ER EXIT$ . $E @A@@@#RNGE4 L,USP )@@G@@ A1,021 . @G@@@# S,S2 A1,3,X6 . $P SET FNCSQ )@@G@@ TO READ IN DBAM PACKET @A@@@# L X10,X6 . SR )@@G@@@E@@@# TS CHKTSC . $T LOCK OUT CHKPT @E@@@#SS )@@G@@ SLJ CHKPT . $W CHKPT - GATHER STATISTICS@C@@@# ST )@@G@@ C$TS CHKTSC . $P UNLOCK CHKPT @G@@@# LMJ X11,DB$AMSU )@@G@@ . $W DB$AM - READ BLOCK FROM DATA BASE @E@@@# . NOTE THAT MINSV )@@G@@OR REGISTER SET HAS NOT BEEN SAVED @E@@@# TN X3 SW )@@G@@ . $T IS THIS THE FIRST READ @C@@@# J RNGEB SX )@@G@@. $A YES NO,RNGEB @E@@@# TP 3,X6 . $T HAS READ FINISY )@@G@@SHED @C@@@# ER WAIT$ . $P WAIT FOR IT @E@@@#SZ )@@G@@ TZ,S1 3,X6 . $T WAS READ SUCCESSFUL ? @C@@@# TA )@@G@@ LMJ X11,IOERR . $A YES NO,IOERR @E@@@# L X3,X1 TB )@@G@@ . $P SET BUFFER FOR PROCESSING@E@@@# L X1,X2 TC )@@G@@. $P GET BUFFER FOR NEXT READ @A@@@# AN,U X1,1 . TD )@@G@@@C@@@# J ACTTWO . $J ACTTWO @E@@@#RNGEB L TE )@@G@@ X6,DBPADR,X3 . $P GET PROCESS DBAM PACKET @E@@@# SZ A8 TF )@@G@@ . $P RESET BLOCK-CHANGED FLAG @E@@@# L,H1 A6,7,X6 TG )@@G@@ . $P GET PAGE COUNT @G@@@# L A5,A6 TH )@@G@@. $P SET PAGE LOOP COUNTER TO NO OF PAGES @A@@@# AN,U A5,1 TI )@@G@@ . @E@@@# L,H2 X8,7,X6 . $P GET START OF FIRST TJ )@@G@@PAGE @G@@@# L X10,X5 . $P SET X10 TO ADDR OF KFAM PTK )@@G@@ACKET @C@@@#RNGE1 J PAGE . $J PAGE @E@@@#TL )@@G@@RNGE2 A,H2 X8,6,X6 . $P GET START OF NEXT PAGE @E@@@# TM )@@G@@ JGD A5,RNGE1 . $T MORE PAGES IN BLOCK ? @C@@@# TN )@@G@@ . $A NO YES,RNGE1 @E@@@# L X6,DBPADR,X2 TO )@@G@@. $P GET WRITE DBAM PKET ADDR @E@@@# TP 3,X6 . $T HTP )@@G@@AS LAST WRITE FINISHED @C@@@# ER WAIT$ . $P WAIT FOTQ )@@G@@R IT @A@@@# L X10,X6 . @E@@@# TZ,S1 3,XTR )@@G@@6 . $T WAS LAST WRITE SUCCESSFUL@C@@@# LMJ X11,IOERRTS )@@G@@ . $A YES NO,IOERR @E@@@# L X4,X2 . $P SAVE WRTT )@@G@@ITE BUFFER # @G@@@# L X2,X3 . $P SET WRITE BUFTU )@@G@@FER TO PROCESS BUFFER @G@@@# L X6,DBPADR,X2 . $P GET NEWTV )@@G@@ WRITE DBAM PKET ADDR @G@@@# JZ A8,RNGEC . $T ITW )@@G@@S BLOCK-CHANGED FLAG SET ? @C@@@# TX )@@G@@. $A YES NO,RNGEC @A@@@# L,U A1,011 . @G@@@# TY )@@G@@ S,S2 A1,3,X6 . $P SET FNC TO WRITE IN DBAM PACKET @A@@@#TZ )@@G@@ L X10,X6 . @E@@@# TS CHKTSC UA )@@G@@. $P LOCK OUT CHKPT @E@@@# SLJ CHKPT . $W CUB )@@G@@HKPT - GATHER STATISTICS@C@@@# C$TS CHKTSC . $P UNLOCK UC )@@G@@CHKPT @G@@@# LMJ X11,DB$AM . $W DB$AM - WRITE BLOCK BACK UD )@@G@@TO DATA BASE@E@@@#RNGEC TP X1 . $T IS THIS LAST WRITE UE )@@G@@ @C@@@# J RNGED . $J RNGED @E@@@# UF )@@G@@ L X6,DBPADR,X1 . $P GET READ DBAM PKET ADDR @E@@@# TP UG )@@G@@ 3,X6 . $T HAS LAST READ FINISHED @C@@@# ER WAIUH )@@G@@T$ . $P WAIT FOR IT @A@@@# L X10,X6 . UI )@@G@@@E@@@# TZ,S1 3,X6 . $T WAS READ SUCCESSFUL ? @C@@@#UJ )@@G@@ LMJ X11,IOERR . $A YES NO,IOERR @G@@@# L X3,UK )@@G@@X1 . $P SET PROCESS BUFFER TO READ BUFFER @G@@@# L UL )@@G@@ X1,X4 . $P SET READ BUFFER TO VACANT BUFFER @C@@@# UM )@@G@@ J ACTTWO . $J ACTTWO @E@@@#RNGED L X6,DBPADRUN )@@G@@,X2 . $P GET LAST WRITE PACKET @E@@@# TP 3,X6 UO )@@G@@. $T HAS WRITE FINISHED @C@@@# ER WAIT$ . $P WUP )@@G@@AIT FOR IT @A@@@# L X10,X6 . @E@@@# TZ,UQ )@@G@@S1 3,X6 . $T WAS WRITE SUCCESSFUL @C@@@# LMJ X11UR )@@G@@,IOERR . $A YES NO,IOERR @C@@@# ER EXIT$ . $E EUS )@@G@@XIT ACTIVITY@]@@@# . @G@@@# . THIS SECTION OF CODE IS USUT )@@G@@ED BY ALL SECONDARY ACTIVITIES @G@@@# . TO GET THE NEXTUU )@@G@@ BLOCK-SIZE PAGE RANGE FROM C2 AND SET @C@@@# . UP DBAM PUV )@@G@@ACKET FOR PAGE BLOCK @]@@@# . @A@@@#GETRNG + 0 UW )@@G@@ . @G@@@# L A9,SV3 . $P GET # RANGES LEFT IUX )@@G@@N THIS AREA @G@@@# L A7,SV4 . $P GET REMAINDERUY )@@G@@ OF LAST RANGE @E@@@# L X7,SV5 . $P GET PTRUZ )@@G@@ TO C2 CURRENT LOC@A@@@# L A0,A7 . @G@@@# VA )@@G@@ LSSL A0,18 . $T ARE THERE MORE PAGES IN RANGE @C@@@#VB )@@G@@ JNZ A0,RNGEA . $A NO YES,RNGEA @C@@@#RANGE JZ A9,VC )@@G@@AREA1 . $T IS IT ZERO @C@@@# . $A NVD )@@G@@O YES,AREA1 @G@@@# L A7,0,*X7 . $P GET NEXT RANGE FROMVE )@@G@@ C2 ENTRY @G@@@# AN,U A9,1 . $P DECREMENT NO VF )@@G@@RANGES LEFT IN C2 ENTRY @G@@@#RNGEA L A0,A7 . $P GET NUMVG )@@G@@BER OF PAGES IN RANGE @A@@@# LSSL A0,18 . VH )@@G@@@A@@@# SSL A0,18 . @G@@@# TG,U A0,PGPBLKVI )@@G@@ . $T WILL RANGE FIT INTO BLOCK ? @E@@@# L,U A0,VJ )@@G@@PGPBLK . $P LIMIT SIZE TO BLOCK SIZE @G@@@# S,H1 A0,7,X6 VK )@@G@@ . $P PUT PAGE CNT INTO DBAM PACKET @E@@@# L A2,VL )@@G@@A7 . $P GET START PAGE OF RANGE @A@@@# SSL A2,18 VM )@@G@@ . @E@@@# S,H2 A2,8,X6 . $P PUT IT IN DBAM PACKVN )@@G@@ET @G@@@# AN A7,A0 . $P REDUCE NO PAGES IN RANGE VO )@@G@@BY PAGE CNT @A@@@# LSSL A0,18 . @G@@@# A VP )@@G@@ A7,A0 . $P INCREASE START PG OF RANGE BY PG CNT @G@@@# VQ )@@G@@ DL A0,ANAME . $P PUT AREA NAME INTO DBAM PACKET @A@@@#VR )@@G@@ DS A0,0,X6 . @E@@@# S A9,SV3 VS )@@G@@. $P SAVE RANGE COUNT @E@@@# S A7,SV4 . $P SVT )@@G@@AVE REMAINING RANGE @C@@@# S X7,SV5 . $P SAVE C2VU )@@G@@ PTR @C@@@# J *GETRNG . $E RETURN @C@@@#AREA1 VV )@@G@@ L A0,SV2 . $P GET C2 LINK @E@@@# JNZ A0,AREA VW )@@G@@ . $T MORE AREAS IN C2 @C@@@# VX )@@G@@. $A NO YES,AREA @E@@@# S A9,SV3 . $P SAVE REGISTERVY )@@G@@S @A@@@# S A7,SV4 . @A@@@# S VZ )@@G@@ X7,SV5 . @E@@@# L X1,(-1) . $P SET REAWA )@@G@@DS-DONE FLAG @C@@@# J *GETRNG . $E RETURN WB )@@G@@@E@@@#AREA L X7,SV1 . $P GET LAST C2 ENTRY @C@@@#WC )@@G@@ A X7,SV2 . $P ADD LINK @G@@@# S X7,WD )@@G@@SV1 . $P SAVE AS START ADDR OF C2 ENTRY @G@@@# L,TWE )@@G@@2 A9,0,X7 . $P GET NUMBER OF RANGES THIS AREA @E@@@# WF )@@G@@ L,T3 A0,0,X7 . $P GET LINK TO NEXT ENTRY @C@@@# S WG )@@G@@ A0,SV2 . $P SAVE IT @C@@@# DL A0,1,X7 WH )@@G@@. $P GET AREA NAME@C@@@# DS A0,ANAME . $P SAVE IT WI )@@G@@@G@@@# A,U X7,3 . $P SET C2 PTR TO FIRST RANGE OF ENWJ )@@G@@TRY @C@@@# J RANGE . $J RANGE @]@@@# . WK )@@G@@ @E@@@# . THIS SECTION OF CODE SCANS THE PAGES OF A BLOCK WL )@@G@@@A@@@# . BY SCANNING THE SLOTS, @C@@@# . AND FOR EACH OWM )@@G@@NE IN USE ON THE PAGE, @G@@@# . IT INITIALIZES THE PATCH PROCESSWN )@@G@@ FOR EACH RECORD ON THE PAGE @]@@@# . @C@@@#PAGE. WO )@@G@@ . $H PAGE @E@@@# L A0,X8 . $P GWP )@@G@@ET START OF PAGE @C@@@# A,H1 A0,2,X8 . $P ADD PAGWQ )@@G@@E SIZE@G@@@# AN,U A0,1 . $P DECREMENT FOR ADDR OF LASWR )@@G@@T WORD OF PG@G@@@# AN,H1 A0,6,X8 . $P SUBTRACT NO CALC CHWS )@@G@@AINS AT END TO ; @E@@@# . . $ GET ADDR OF FIWT )@@G@@RST SLOT @A@@@# LXI,U A0,-1 . @E@@@# L,HWU )@@G@@1 A4,3,X8 . $P GET NO OF SLOTS ALLOCATED@G@B@# AN,U A4,WV )@@G@@1 . $P DECREMENT TO SET SLOT LOOP COUNTER @B@@@B J WW )@@G@@ PAGE2 . $J PAGE2 @C@@@#PAGE1 L A2,0,*A0 . $P GWX )@@G@@ET SLOT @E@@@# AND A2,(0500000000000) . $P ISOLATE SLOT DEWY )@@G@@SC @G@@@# TZ A3 . $T IS SLOT IN USE FOR RECD OWZ )@@G@@N THIS PG ? @C@@@# J PAGE2 . $A YES NO,PAGE2 @G@@@#XA )@@G@@ LSSL A2,18 . $P GET RECORD DISP FROM TOP OF PAGE XB )@@G@@@A@@@# SSL A2,18 . @G@@@# A A2,X8 XC )@@G@@ . $P ADD START ADDR OF PAGE TO GET START ;@C@@@# . XD )@@G@@ . $ ADDR OF RECORD@C@@@# J RECORD . $J RXE )@@G@@ECORD @E@@@#PAGE2 JGD A4,PAGE1 . $T MORE SLOTS TO CHECKXF )@@G@@ ? @C@@@# . . $A NO YES,PAGE1 @C@@@# XG )@@G@@ J RNGE2 . $J RNGE2 @]@@@# . @E@@@# . TXH )@@G@@HIS SECTION OF CODE TAKES A RECORD FROM THE PAGE, @C@@@# . CHXI )@@G@@ECKS IF IT IS OF AN AFFECTED TYPE, @E@@@# . AND IF SO SCANS ALL XJ )@@G@@POSSIBLY AFFECTED POINTERS @G@@@# . ANY CHANGED POINTERS XK )@@G@@WILL BE PATCHED TO THE NEW VALUE, @G@@@# . AND THE BLOCK-CXL )@@G@@HANGED FLAG WILL BE SET IF ANY CHANGES @]@@@# . @G@@@#RECORDXM )@@G@@ L,T1 A1,0,A2 . $P GET RECORD CODE FROM RECORD HEADER @G@@@#XN )@@G@@ L X9,(1,AFRCDT) . $P SET INDEX TO AFFECTED RECORD TABLE XO )@@G@@@G@@@# L R1,ARTCNT . $P GET NO OF AFFECTED RECORD TYPESXP )@@G@@ @G@@@# SE,T1 A1,0,*X9 . $P SEARCH AF RCD TBL FOR RECXQ )@@G@@ CODE @E@@@# . . $T WAS IT FOUND ? XR )@@G@@ @C@@@# J PAGE2 . $A YES NO,PAGE2 @E@@@# XS )@@G@@ AN,U X9,1 . $P POINT TO AF RCD TBL ENTRY@G@@@# L,HXT )@@G@@2 X9,0,X9 . $P GET START ADDR OF C1 ENTRY @C@@@# XU )@@G@@ LXI,U X9,1 . $P SET C1 INDEX @G@@@# A,U X9,1 XV )@@G@@ . $P SET C1 INDEX TO FIRST PTR WORD @E@@@# L R15XW )@@G@@,A1 . $P SAVE RECD CODE @E@@@# L R3,A0 XX )@@G@@ . $P SAVE CONTENTS OF A0 @G@@@#REC2 TP 0,X9 XY )@@G@@. $T IS THIS MANUAL PTR WORD OF C1 ? @C@@@# J MANCHK XZ )@@G@@ . $A NO YES,MANCHK@G@@@# AU,S6 A2,0,X9 . $P ADD POIYA )@@G@@NTER DISP TO START OF RECORD @G@@@# LXI,U A3,1 . $P SYB )@@G@@ET INDEX TO 'NEXT' LINK OF POINTER @C@@@# L,T2 R14,0,X9 YC )@@G@@. $P SAVE SET CODE@A@@@# L R13,X9 . @G@@@# YD )@@G@@ L,S2 A1,0,*X9 . $P GET NUMBER OF LINKS IN POINTER @G@@@#YE )@@G@@ LMJ X4,PTRCHK . $W PTRCHK - CHECK ALL LINKS OF POINTER ;YF )@@G@@@E@@@# . . $ AND PATCH IF NECESSARY @C@@@#YG )@@G@@ J REC2 . $J REC2 @G@@@#MANCHK TNZ,S2 0,YH )@@G@@X9 . $T ARE THERE ANY MANUAL PTRS AFFECTED ? @C@@@# J YI )@@G@@ REC3 . $A YES NO,REC3 @G@@@# AU,S6 A2,0,*X9 YJ )@@G@@. $P GET ADDR OF MFCW FOR RECORD @E@@@# LXI,U A3,1 YK )@@G@@ . $P SET MANUAL PTR INDEX @C@@@# L A10,0,*A3 YL )@@G@@. $P GET NFCW @G@@@# AND A10,0,X9 . $P AND MFCW AND YM )@@G@@AFFECTED MASK TO GET ; @E@@@# . . $ OCCURRINYN )@@G@@G AFFECTED MASK @G@@@# TN A11 . $T ARE THERE ANYYO )@@G@@ OCCURRING AFFCTD PTRS ?@C@@@# JZ A11,REC3 . $A YES NO,YP )@@G@@REC3 @E@@@# L,U A2,1 . $P SET C1 MANUAL PTR INDEX YQ )@@G@@@G@@@#MAN2 JP A10,MAN3 . $T DOES THIS PTR OCCUR IN THIS RECYR )@@G@@ORD ? @C@@@# . . $A YES NO,MAN3 @G@@@# YS )@@G@@ L X11,X9 . $P GET START OF C1 MAN PTR LIST @E@@@#YT )@@G@@ A X11,A2 . $P ADD DISP TO CURRENT SET @G@@@# YU )@@G@@ JN A11,MAN4 . $T CAN POINTER HAVE BEEN AFFECTED ? @C@@@#YV )@@G@@ . . $A NO YES,MAN4 @G@@@# A,S2 A3,YW )@@G@@0,X11 . $P INCR MANUAL PTR INDEX PAST PTR IN REC@G@@@#MAN3 LSSYX )@@G@@L A10,1 . $P SHIFT MFCW MASK TO NEXT SET @G@@@# YY )@@G@@ LSSL A11,1 . $P SHIFT OCCURRING AFFCTD MASK 2 NXT SET@G@@@#YZ )@@G@@ A,U A2,1 . $P INCREMENT C1 MANUAL PTR INDEX ZA )@@G@@@G@@@# JNZ A11,MAN2 . $T ARE THERE MORE AFFECTED PTRS ? ZB )@@G@@ @C@@@# . . $A NO YES,MAN2 @E@@@#REC3 ZC )@@G@@ L A0,R3 . $P RESTORE CONTENTS OF A0 @C@@@# J ZD )@@G@@ PAGE2 . $J PAGE2 @C@@@#MAN4 L,T2 R14,0,X11 ZE )@@G@@. $P SAVE SET CODE@A@@@# L R13,X11 . @G@@@# ZF )@@G@@ L,S2 A1,0,X11 . $P GET NUMBER OF LINKS IN POINTER @G@@@#ZG )@@G@@ LMJ X4,PTRCHK . $W PTRCHK - CHECK ALL LINKS OF POINTER ;ZH )@@G@@@E@@@# . . AND PATCH IF NECESSARY @C@@@#ZI )@@G@@ J MAN3 . $J MAN3 @]@@@# . @E@@@#ZJ )@@G@@ . THIS SECTION OF CODE CHECKS ALL LINKS IN A POINTER @C@@@# . ZK )@@G@@ TO SEE IF THEY ARE CHANGED DB PTRS @A@@@# . ANY FOUND WILLZL )@@G@@ BE UPDATED @C@@@# . AND THE BLOCK-CHANGED FLAG WILL BE SET@C@@@#ZM )@@G@@ . . $H PTRCHK @E@@@#PTRCHK AN,U A1,ZN )@@G@@1 . $P SET LINK LOOP COUNTER @E@@@#PCHK1 L A0,0,*A3 ZO )@@G@@ . $P GET DB POINTER @E@@@# S A0,3,X10 ZP )@@G@@. $P PUT IT IN KFAM PACKET @E@@@# L R2,A1 . $P SZQ )@@G@@AVE VALUE OF A1 @E@@@# L A1,ASHFT . $P GET AREZR )@@G@@A SHIFT COUNT @C@@@# SSL A0,0,A1 . $P GET AREA CODEZS )@@G@@@G@@@A JZ A0,PCHK10 . $T IS POINTER TO ARTIFICIAL DBP (CZT )@@G@@ODE=0)@C@@@A . $A NO YES,PCHK10@E@^@# ZU )@@G@@ L A1,(1,ARETBL) . $SET PTRS FOR A-TBL SEARCH @E@@@^ L ZV )@@G@@ A1,(1,ARETBL) . $P SET PTRS FOR A-TBL SEARCH@A@@@# L R1,ZW )@@G@@ARECNT . @G@@@# SE A0,0,*A1 . $T IS THIS CODE ZX )@@G@@FOR AFFECTED AREA @C@@@# J BADARE . $A YES NO,ZY )@@G@@BADARE@E@A@# L A1,R2 . $P RESTORE VALUE OF A1 ZZ )@@G@@@E@@@APCHK10 L A1,R2 . $P RESTORE VALUE OF A1 @G@@@#AA )@@G@@ LMJ X11,KF$AMR . $W KF$AMR - SEE IF DB PTR IS IN K-FILE AB )@@G@@@E@@@# TZ 5,X10 . $T WAS FIND SUCCESSFUL ? @C@@@#AC )@@G@@ J PCHK2 . $A YES NO,PCHK2 @G@@@# L,H1 A0,AD )@@G@@4,X10 . $P GET NEW VALUE,H1 OF DBP FROM KFAM PKT@E@@@# JZ AE )@@G@@ A0,ZPTR . $T IS NEW DBP ZERO @C@@@# AF )@@G@@ . $A NO YES,ZPTR @G@^@# TNE,U A0,1 . $T IAG )@@G@@S RECORD A RECORDU RECORD @C@^@# J PCHK2 AH )@@G@@. $A NO YES,PCHK2 @G@@@# L A0,4,X10 . $P GET NEW VALUEAI )@@G@@ OF DBP FROM KFAM PACKET@E@@@#PCHK11 AN,U A3,1 . $P RESET IAJ )@@G@@NDEX TO THIS SLOT @E@@@# S A0,0,*A3 . $P STORE NEW DBPAK )@@G@@ IN RECORD @E@@@# A,U A8,1 . $P SET BLOCK-CHANGED FAL )@@G@@LAG @G@@@#PCHK2 JGD A1,PCHK1 . $T MORE LINKS IN THIS POINTEAM )@@G@@R ? @C@@@# . . $A NO YES,PCHK1 @C@@@#AN )@@G@@ J 0,X4 . $E RETURN @]@@@# . @C@@@#AO )@@G@@ . ZERO VALUE DBP WARNING ROUTINE @]@@@# . @C@@@#AP )@@G@@ZPTR. . $H ZPTR @E@@@# TS ZPTAQ )@@G@@SC . $P LOCK OUT WARNING ROUTINE @E@@@# SLJ ZPWARN AR )@@G@@ . $W ZPWARN - PRINT WARNING @E@@@ L,U A0,1 AS )@@G@@. $P SET WARNINGS-PRINTED FLAG@A@@@ S A0,WRNFLG . AT )@@G@@@E@@@# C$TS ZPTSC . $P UNLOCK WARNING ROUTINE @E@@@#AU )@@G@@ SZ A0 . $P SET NEW DBP VALUE TO ZERO@C@@@# AV )@@G@@ J PCHK11 . $J PCHK11 @]@@@# . @C@@@# . AW )@@G@@ UNKNOWN AREA WARNING ROUTINE @]@@@# . @C@@@#BADAREAX )@@G@@. . $H BADARE @E@@@# L A1,R2 AY )@@G@@ . $P RESTORE VALUE A1 @E@@@# TS BDTSC AZ )@@G@@. $P LOCK OUT WARNING ROUTINE @E@@@# SLJ BDWARN . $W BBA )@@G@@DWARN - PRINT WARNING @E@@@ L,U A0,1 . $P SET WARBB )@@G@@NINGS-PRINTED FLAG@A@@@ S A0,WRNFLG . @E@@@# BC )@@G@@ C$TS BDTSC . $P UNLOCK WARNING ROUTINE @E@@@# SZ BD )@@G@@ A0 . $P SET NEW DBP VALUE TO ZERO@C@@@# J PCHBE )@@G@@K11 . $J PCHK11 @]@@@# . @C@@@# . THIS SECTION BF )@@G@@OF CODE IS INTERNAL ERROR EXIT@]@@@# . @C@@@#ERROR. BG )@@G@@ . $H ERROR @G@@@# P$RINT (PF 1,5,ERMSG) . $P BH )@@G@@PRINT ERROR MESSAGE AND TERMINATE @A@@@# ER ERR$ BI )@@G@@. $E @]@@@# . @C@@@#MAXACT. . $H MAXACT BJ )@@G@@ @G@@@# P$RINT (PF 1,12,MAXMSG) . $P PRINT ERROR MESSAGE ABK )@@G@@ND TERMINATE@A@@@# ER ERR$ . $E @]@@@# . BL )@@G@@@]@@@# . @]@@@#$(6). @C@@@#KCNT + 0 BM )@@G@@ . @C@@@#K2CNT + 0 . BN )@@G@@@]@@@# . @A@@@#RETURN + 0 . @A@@@ WRNFLGBO )@@G@@ + 0 . @A@@@#DBPADR + PDBPKT . BP )@@G@@@A@@@# RES 59 . @A@@@#KFPADR RES 20 BQ )@@G@@ . @A@@@#ANAME RES 2 . @]@@@#PDBPKT*. BR )@@G@@@A@@@# DO 9 , + 0 . @A@@@#SV1 + 0 BS )@@G@@ . @A@@@#SV2 + 0 . @A@@@#SV3 + BT )@@G@@ 0 . @A@@@#SV4 + 0 . @A@@@#BU )@@G@@SV5 + 0 . @A@@@#ZEROPT + 0,ZERO BV )@@G@@. @A@@@#ZERO + 0 . @A@@@#RNGTSC T$CELL BW )@@G@@ . @A@@@#CHKTSC T$CELL . @A@@@#ZPTSC BX )@@G@@ T$CELL . @A@@@#BDTSC T$CELL . BY )@@G@@@C@@@#ERMSG 'PATCH FOUND NO C3 ENTRIES' . @E@@@#MAXMSG 'ERBZ )@@G@@ROR: PATCH ATTEMPTED USING MORE THAN 20 ' . @C@@@# 'ACTIVITICA )@@G@@ES (ACTNUM>20) - ERR$!' . @G@@@ WMSG1 '**************************CB )@@G@@**********************' . @G@@@ WMSG2 '***** CC )@@G@@ *****' . @G@@@ WMSG3 '***** PCD )@@G@@ATCH MAY BE IN ERROR *****' . @G@@@ WMSG4 '***** CE )@@G@@ SEE WARNINGS PRINTED ABOVE *****' . @^@@@# ENDCF )@@G@@ . ___ @]@@@# . @E@@@# . THIS SECTION OF CODCG )@@G@@E CHECKS ALL LINKS IN A POINTER @C@@@# . TO SEE IF THEY ARE CCH )@@G@@*[@@@@*SDFF*@[@@@@$(1) @#@@@@ AXR$ @]@@@[ . @]@@@[CI )@@G@@ . @]@@@[ . @C@@@[ . *** RELOAD PROCESS ERROR CODES CJ )@@G@@*** @]@@@[ . @]@@@[ . @A@@@[ . ERROR CODE: CK )@@G@@ EXPLANATION: @]@@@[ . @C@@@[ . 1 EMPTY C3 OCL )@@G@@R C5 TABLE. @]@@@[ . @G@@@[ . 2 CANNOT FINCM )@@G@@D CALC PROCEDURE NAME IN CLSEG$. @]@@@[ . @E@@@[ . 3 CN )@@G@@ CANNOT FIND RECORD CODE IN Z2 TABLE. @]@@@[ . CO )@@G@@@I@@@[ . 4 INTERNAL ERROR DESTINATION AREA CODE 0 ENCCP )@@G@@OUNTERED @G@@@[ . IN DESARE AFTER THE DECOMPCQ )@@G@@OSITION OF THE RECORD'S @E@@@[ . DBP RETURNED ZERO ARCR )@@G@@EA CODE. @]@@@[ . @G@@@[ . 5 DESTINATIOCS )@@G@@N AREA CODE = 0 ENCOUNTERED IN DESARE. @]@@@[ . @G@@@[ . 6 CT )@@G@@ C3 TABLE SEARCH FOR DESTINATION AREA CODE FAILED. @]@@@[CU )@@G@@ . @G@@@[ . 7 INTERNAL ERROR ERROR RETURN FRCV )@@G@@OM BUFFER ROUTINE @G@@@[ . ON A CODE 1 CALL (GET PAGECW )@@G@@ SPECIFIED WITH PAGE @E@@@[ . RANGE CHECK). ERROR CX )@@G@@CODE IN BUFPKT,,H1@]@@@[ . @I@@@[ . 8 INTERNAL ECY )@@G@@RROR PAGE # REQUESTED FROM BUFFER ROUTINE @G@@@[ . CZ )@@G@@ ON A CODE 1 CALL WAS NOT MADE CURRENT IN CURPGE. @]@@@[ . DA )@@G@@ @G@@@[ . 9 PAGE REQUESTED FROM BUFFER ROUTINE ON A DB )@@G@@CODE 1 CALL @G@@@[ . IS EXPECTED TO BE A DATA PAGE BUDC )@@G@@T IS NOT. CURADD @G@@@[ . POINTS TO PAGE RETURNED. PDD )@@G@@ROBABLE CAUSE OF ERROR @G@@@[ . IS HAVING WRONG C$FIDE )@@G@@LE, SCHEMA(S) OR AREA. @]@@@[ . @I@@@[ . 10 DF )@@G@@ INTERNAL ERROR ERROR RETURN FROM BUFFER ROUTINE ON @G@@@[DG )@@G@@ . A CODE 6 CALL(GET FIRST DATA PAGE IN RANGE). DH )@@G@@@E@@@[ . ERROR CODE IS IN BUFPKT,,H1 @]@@@[DI )@@G@@ . @G@@@[ . 11 COMPOSED DBP AS RETURNED BY APS$DBDJ )@@G@@P IS ZERO. @]@@@[ . @G@@@[ . 12 ERROR RETUDK )@@G@@RN FROM KEY FILE ACCESS METHOD KF$AM. @]@@@[ . @I@@@[ . 13 DL )@@G@@ INTERNAL ERROR ERROR RETURN FROM THE BUFFER ROUTINE DM )@@G@@ @G@@@[ . ON A CODE 1 CALL (GET DATA PAGE SPECIFDN )@@G@@IED WITH @G@@@[ . PAGE RANGE CHECK). ERROR CODE INDO )@@G@@ BUFPKT,,H1 @]@@@[ . @G@@@[ . 14 ERROR RETUDP )@@G@@RN FROM THE BUFFER ROUTINE ON A CODE 7 @G@@@[ . CADQ )@@G@@LL ( GET NEXT DATA PAGE IN RANGE). ERROR CODE @G@@@[ . DR )@@G@@ IS IN BUFPKT,,H1 . PROBABLY OUT OF SPACE IN THAT @A@@@[ . DS )@@G@@ RANGE. @]@@@[ . @G@@@[ . 15 CALCDT )@@G@@ ITEM COUNT = 0 FOR A CALC RECORD. PROBABLE @C@@@[ . DU )@@G@@ CAUSE IS A BAD C$FILE. @]@@@[ . @G@@@[ . 16 DV )@@G@@ DESTINATION AREA CODE = 0 ENCOUNTERED JUST BEFORE @C@@@[ . DW )@@G@@ CALLING THE CALC ROUTINE. @]@@@[ . @G@@@[ . 17 DX )@@G@@ C3 TABLE SEARCH FOR AREA TO CALC TO FAILED. @]@@@[ . DY )@@G@@ @G@@@[ . 18 C3 TABLE SEARCH FOR AREA NAME RETURNED BDZ )@@G@@Y THE CALC @G@@@[ . ROUTINE(X10 POINTS TO AREA NAME)EA )@@G@@ FAILED. @]@@@[ . @G@@@[ . 19 CANNOT FINEB )@@G@@D AREA ENTRY FOR AREA CODE TO CALC TO IN @G@@@[ . THEC )@@G@@E Z2 ENTRY FOR THE RECORD TYPE THAT IS BEING @A@@@[ . ED )@@G@@ RELOADED. @]@@@[ . @G@@@[ . 20 PAGE NUMBEEE )@@G@@R RETURNED BY CALC ROUTINE < LOWER RANGE@G@@@[ . FOEF )@@G@@R RECORD IN THE AREA SPECIFIED. PROBABLE CAUSE @C@@@[ . EG )@@G@@ IS A BAD CALC ROUTINE. @]@@@[ . @G@@@[ . 21 EH )@@G@@ PAGE NUMBER RETURNED BY CALC ROUTINE > UPPER RANGE @G@@@[ . EI )@@G@@ FOR RECORD IN THE AREA SPECIFIED. PROBABLE CAUSE @C@@@[ . EJ )@@G@@ IS A BAD CALC ROUTINE. @]@@@[ . @I@@@[ . 22 EK )@@G@@ INTERNAL ERROR ERROR RETURN FROM BUFFER ROUTINE ON EL )@@G@@ @G@@@[ . A CODE 1 CALL (GET DATA PAGE SPECIFIEDEM )@@G@@ WITH A PAGE@E@@@[ . RANGE CHECK) ERROR CODE IN BUFPKEN )@@G@@T,,H1.@]@@@[ . @G@@@[ . 23 POINTER COMPOSED FOR CEO )@@G@@ALC CHAIN HEADER = 0 UPON @C@@@[ . RETURN FROM APEP )@@G@@S$DBP. @]@@@[ . @I@@@[ . 24 INTERNAL ERROR EQ )@@G@@ POINTER COMPOSED FOR RELOADED RECORD @E@@@[ . ER )@@G@@ IS ZERO UPON RETURN FROM APS$DBP. @]@@@[ . @I@@@[ . 25 ES )@@G@@ ERROR RETURN FROM KEY FILE ACCESS METHOD INSERET )@@G@@TI @E@@@[ . NEW POINTER IN THE KEY FILE. EU )@@G@@@]@@@[ . @I@@@[ L^E[NA-MAC)^@)^@)^@)^@)C-KES4EK1 *1^@)^@)@@8@@WEV )@@G@@@@O@[O@@L@[*@@S@[9@@C@]L@@C@]T@^[@]-@@F@A+@@C@@]@@S@@]@@^@@ @@S@[K@@@@@@EW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1DD- DDIC1J#LTJM2EX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EY )@@G@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1DD- DDIC1J@@@:_]@@]@@]@@@@@@@@@@@@@@@@@@FC )@@G@@@@@@@@@@[@@@@@@@@@@@[@@*@@@@^@@C@[)@@@)@@]@@[[K(@@C@@C@@? 0@)@@@@@@@@@@@FD )@@G@@@C[@@C[K(@@[@@@@#J@@@@K@^@@@@[@@]]@@@@[@@[@C@@@@@C[@@C[)(@@]@@@@#7@@ @K@FE )@@G@@^@@@@T@@]]@@@@T@@T@8@@@[_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1DD- DDIC1JFF )@@G@@@@@:_]@@C@@]#@@#[K@SB@@@@@)@@C@@@@@@[K(@@[@@@@@@E1^C(HD[ID1I@@@@@@@@@@@@FG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[[K(@@@@@[E1PC(RD1ID1I@@[[)(@@@@@]E1PC(RFH )@@G@@D1ID1I^@@@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@@@@@@@@@@@@@@^[@@@@@@FI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FJ )@@G@@@@@@@@@@@@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FQ )@@G@@^@)^@)^@)^[^H8)JD\I*)I9-H14^[4H8, 0,^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@1 0)D-DETO^[-^[=HD2G(IK)H9&^[BK)^@)^@)^@)^@)^@)^@)^@)LR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LS )@@G@@^@)^@)^@)^@)^@)^@)D(-IT:BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LT )@@G@@^@)^@)^@)E-9I[>^@)^@)^@)^@)^@)ET5GL4JD0G*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[IGD!G*)^@)^@)^@)^@)^@)^@)^@)^@)LW )@@G@@^@)^@)^[OJD0G*)^[NI(+I-9I[>^@)ET(JL>^@)^[GGD3I))I(0G--I->^[=GD4G*\I-(H(>LX )@@G@@^@)^@)^@)^@)^@)^@! *! *! *! *! *! *! *! *! *! *! *! *)^@! *! *)^@! *! *!LY )@@G@@ *!^@) *! *!^@)^@! *! *! *! *! *! *! *! *! *! *!^@)^@)^@)^@)^@)^@)^@)^@)LZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MD )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ME )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ML )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[KGD$G*)C1\ND )@@G@@IL7GD2G)*G01 C)^@)^[KGD$G*)CL-GT:I9-IL= [&AK(^@)^@)C(8HD4 [&AS(^@)^@)^@)NE )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)C1DD- D1[D( ^@)^@)^@)^@)@@@@@@D([ETFNF )@@G@@^@)^@)^@)^@)^@)^@)@@@@@CE-TE[ ^@)^@)^@)^@)^@)^@)@@@@@KETPCLOFDKC*)^@)^@)NG )@@G@@^@)^@)@@@@@SET D- CTODDJD0)^@)^@)^@)@@@@@)C(GC(HC(IE)!D-DD1 ^@)^@)@@@@@*NH )@@G@@DDIC- F@1^@)^@)^@)^@)^@)@@@@@0D(NC81 (JD0)^@)^@)^@)^@)@@@@[@D(NC81^@)^@)NI )@@G@@^@)^@)^@)^@)@@@@[CD(NC82 (JD0)^@)^@)^@)^@)@@@@[SD(NC82^@)^@)^@)^@)^@)^@)NJ )@@G@@@@@@[)C1RC)!D9I^@)^@)^@)^@)^@)@@@@[0CLFE9^ (JD0)^@)^@)^@)^@)@@@@]@C(SDDONK )@@G@@ (JD0)^@)^@)^@)^@)@@@@]KCTPELND9M ([EL CC)^@)^@)@@@@])@@@@@@@@@@@@@@@@@@NL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ L^E[NA-MAD[^@)^@)^@)^@)NN )@@G@@C-KES4EK1 *4^@)^@)@@8@@W@@O@[O@@-@[*@@S@]D@@K@]-@@)@]1@BX@#L@@P@E,@@C@@^NO )@@G@@@@S@@^@@^@@ @@S@[K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NP )@@G@@@@@@@@C1JELH^@)^@)^]UC"I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@B+\NU )@@G@@@@^@@^@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@[@[C@@@@BW@C@]8@@@)@@^@@[@*VNV )@@G@@@@K@@)@@? 0])@@@@@@@@@@@@C[@@C@*V@@[@@]@[$@@@@K@^@@@@E@@+]@@@@E@@E@S@@@@NW )@@G@@@C[@@C[@V@@]@@]@]<@@ @K@^@@@@6@@+]@@@@6@@6[0@@@#@C[@@C[)V@@#@@]@#3@@E@K@NX )@@G@@^@@@@6@@+]@@@@6@@6[0@@@L@C[@@C]8V@@^@@]@BJ@@J@K@^@@@@[@@+]@@@@[@@[@C@@@ZNY )@@G@@_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)@@@B+\@@K@@^#@@#[K@)[@@@NZ )@@G@@@@*@@)@@@@@@@*V@@[@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OA )@@G@@@@@@@@@@[@*V@@@@@[E1PCLTD1ID1I@@[[@V@@@@@]E1PCL#D1ID1I@@[[)V@@@@@#E1PCLBOB )@@G@@D1ID1I@@[]8V@@@@@^E1PEL#D1ID1I^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)OC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)OD )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@OE )@@G@@^@@@@@@@@@@@@@@@BX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[N^[KOG )@@G@@^[N^[N^@!^[S^@)^@)E@)IK)H8)GS)G*)G))I*)IK)G*)^@)^@)^@)^@)^@)^@)^@)^@)^@)OH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) *! *! *! *! *! *! *! *! *! *!OI )@@G@@ *! *! *! *! *! *! *!^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OM )@@G@@^@)^@)^@)^@) [\I@(^[NE[NES!F@)H90I-(H9,IS)^@)^@)BK)^@)^@)^@)^@)^@)^@)^@)ON )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OR )@@G@@^@)^@)^@)^@) [3HC(^[NH95ILGT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*OU )@@G@@GD4^[^[0OV )@@G@@IL\G92GD! 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\IK(^[JI(4OY )@@G@@I[5I))EL>G-(IL>GT4HD\H0)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!PA )@@G@@G*)H9&^[4H[>^[4G(!I[\IL-IL9^[=GD4GC)G1(H->^[4H[(IS)I[2H9<^[7HD?H))I(3G*)PB )@@G@@I-\^@)^@)^@)^@)^@)^@)^[2G(=HD2G(IT3^[AAS)I-\^[H)(^@)^@)^@)^@)D9K^@)^@)^@)PS )@@G@@^@)^@)^@)^@)@@@@@@ETD^@)^@)^@)^@)^@)^@)^@)@@@@@CD9M^@)^@)^@)^@)^@)^@)^@)PT )@@G@@@@@@@KF[HDDO^@)^@)^@)^@)^@)^@)@@@@@S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@ L^E[NA-MAD[^@)^@)^@)^@)C-KES4EK1 *4^@)^@)@@8@@WPW )@@G@@@@O@[O@@(@[*@@S@]L@@O@](@@,@].@BX@#:@@U@FC@@C@@ @@S@@ @@^@@ @@S@[K@@@@@@PX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)^]UC_$PY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PZ )@@G@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@UV/@@ @@ @@@@@@@@@@@@@@@@@@QD )@@G@@@@@@@@@@[@@@@@@@@@@@[@[U@@@@BW@C@]8@@@)@@ @@[@)V@@O@@,@@? 0])@@@@@@@@@@@QE )@@G@@@C[@@C@)V@@[@@]@[N@@@@K@^@@@@E@@+]@@@@E@@E@S@@@@@C[@@C@8V@@]@@]@]J@@ @K@QF )@@G@@^@@@@6@@+]@@@@6@@6[0@@@#@C[@@C[SV@@#@@]@#Z@@E@K@^@@@@6@@+]@@@@6@@6[0@@@LQG )@@G@@@C[@@C[8V@@^@@]@^\@@J@K@^@@@@6@@+]@@@@6@@6[0@@@Z@C[@@C]8V@@ @@]@BJ@@O@K@QH )@@G@@^@@@@[@@+]@@@@[@@[@C@@@!_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)QI )@@G@@@@@UV/@@O@@ #@@#[K@)[@@@@@?@@,@@@@@@@)V@@[@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@QJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@)V@@@@@[E1PCLTD1ID1I@@[@8V@@@@@]E1PCLBQK )@@G@@D1ID1I@@[[SV@@@@@#E1PCLBD1ID1I@@[[8V@@@@@^E1PCLBD1ID1I@@[]8V@@@@@ E1PEL#QL )@@G@@D1ID1I^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)QO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@@@@@@@@@@@QP )@@G@@@@@@BX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)^@)^@)^@)^@)^@)^@)^[H^[[^[K^@) 8)^[#^[\^[?QR )@@G@@^[?^[>^[<^[4^[\^[2^@)^[K^[2^[\^[<^[>^[=^[5^[2^[>^@)^@)^@)^@)^@)^@)^@)^@)QS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@) *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!QT )@@G@@ *! *! *! *! *! *! *! *! *)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@) [\I@(^[HCDK^[\I[4HD\H13^@)^@)^@)^@)BK)^@)^@)^@)QW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@) [3HC(^[NH95ILGT(G1(G(3^[4H[>^[(H10I(4^[3JD!GL\H-(GS)G(?G(!G(,I))I-*GD4RD )@@G@@^[IK(^@)^@)^@)^[3H95IL^@*HC,G*,^[-H19^[@D([E@)G-(IL>GT4HD6G(3^[3H[\I(?G))GL>^[(H0)I-*RF )@@G@@HD3^[>H->H(>H14 C,^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RH )@@G@@ [2H8(^[[GL3H9?I(4G*)D95I-0I(4^@)^@)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3RJ )@@G@@^[4H[>^[-GL3H9?I(4G*)H95I-0I(4^[>H->H(>H14 0)^[OH[(IS)I[2H9<^[*GD3^[$I(>RK )@@G@@IT3G(=^[4H[(IS)H1-H(> 0)^@)^@)^@)^[RH[>H0)I-*G*)EK)H90I-(H9,^[(IS)IT0G(G)?^@*IL\ C)H1-H(>IS)I-*G*)IL>H-\GT-I--GL?G*)H95I-0I(4^[>H->H(>H14RM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\IK(^[JI(4I[5I))EL>G-(RO )@@G@@IL>GT4HD\H0)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>RQ )@@G@@^[4G(!I[\IL-IL9^[=GD4GC)G1(H->^[4H[-I))I9(H-?^[+G*)I(3G(=^[+JC)I-*HD3^@)RR )@@G@@^@)^@)^@)^[0IL\GS)I-\^[2G(=HD2G(IT3^[AAS)I-\^[H)(^@)^@)^@)D9K^@)^@)^@)^@)^@)^@)^@)SD )@@G@@@@@@@@ETD^@)^@)^@)^@)^@)^@)^@)@@@@@CELJ^@)^@)^@)^@)^@)^@)^@)@@@@@KD9M^@)SE )@@G@@^@)^@)^@)^@)^@)^@)@@@@@SF[HDDO^@)^@)^@)^@)^@)^@)@@@@@)@@@@@@@@@@@@@@@@@@SF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@ L^E[NA-MAD[^@)^@)^@)^@)C-KES4EK1 *4^@)^@)@@8@@WSH )@@G@@@@O@[O@@1@[*@@S@]T@@S@]1@@/@#D@BX@^ @@Z@F+@@C@@A@@S@@A@@^@@ @@S@[K@@@@@@SI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)^]UD]KSJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SK )@@G@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@B,=@@A@@A@@@@@@@@@@@@@@@@@@SO )@@G@@@@@@@@@@[@@@@@@@@@@@[@[?@@@@BW@C@]8@@@)@@A@@[@*V@@S@@/@@? 0])@@@@@@@@@@@SP )@@G@@@C[@@C@*V@@[@@]@[$@@@@K@^@@@@E@@+]@@@@E@@E@S@@@@@C[@@C@8V@@]@@]@]J@@ @K@SQ )@@G@@^@@@@6@@+]@@@@6@@6[0@@@#@C[@@C[SV@@#@@]@#Z@@E@K@^@@@@6@@+]@@@@6@@6[0@@@LSR )@@G@@@C[@@C[8V@@^@@]@^\@@J@K@^@@@@6@@+]@@@@6@@6[0@@@Z@C[@@C]SV@@ @@]@ _@@O@K@SS )@@G@@^@@@@6@@+]@@@@6@@6[0@@@!@C[@@C]8V@@A@@]@BJ@@T@K@^@@@@[@@+]@@@@[@@[@C@@@;ST )@@G@@_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)@@@B,=@@S@@A#@@#[K@)[@@@SU )@@G@@@@0@@/@@@@@@@*V@@[@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SV )@@G@@@@@@@@@@[@*V@@@@@[E1PCLTD1ID1I@@[@8V@@@@@]E1PCLBD1ID1I@@[[SV@@@@@#E1PCLBSW )@@G@@D1ID1I@@[[8V@@@@@^E1PCLBD1ID1I@@[]SV@@@@@ E1PCL#D1ID1I@@[]8V@@@@@AE1PEL#SX )@@G@@D1ID1I^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)SY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)SZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)TA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)TB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@TC )@@G@@^@@@@@@@@@@@@@@@BX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)^@)^@)^@)^@)^@)^@)E[2H9$IL-H(!TE )@@G@@HD,G8)D--H1$I(-G9>^[&H92^[PD1DETTES)ET9IT4G(!IS) [KD-PES(^@)^@)^@)^@)^@)TF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[#^[\^[!^[0^[(^[?^[>^[2^@)^[KTG )@@G@@^[2^[\^[<^[>^[=^[5^[2^[>^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TH )@@G@@^@)^@)^@)^@! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!TI )@@G@@ *! *! *! *)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TK )@@G@@^@)^@)^@)^@) [\I@(^[#H9!I[(H->IK)D90I-(H9,IS)^@)BK)^@)^@)^@)^@)^@)^@)^@)TL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [3HC(^[NH95ILGT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!TQ )@@G@@^[&HD?G*)G(?G(!G(,I))I-*GD4^[^[0IL\G92GD!^[4H8)GL>^[G),^@)^@)^@)^@)^@)TS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TU )@@G@@^@)^@)^@)^@) [2H8(^[MG(?H9^[JI(4I[5I))BK)^@)^@)^@)^@)^@)^@)^@)TV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NTW )@@G@@I[>GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*TX )@@G@@GD4^[7HD?H))GL>^[5IT>G))GL9^@)^@)^@)^@)^@)^@)^[4H[>^[KD-PES)GT\H(0HD?G(2TY )@@G@@^[4H8)IT4H92G*)I-*G*)IL>H-\GT-I--GL?G*)H95I-0I(4 0)^@)^@)^@)^@)^@)^@)^@)TZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [3H8(^[NH95UB )@@G@@ILGT(G1(G(3^[4H[>^[,GD!UD )@@G@@G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GD4^[7HD?H))GL>^[5IT>G))UE )@@G@@GL9^@)^@)^@)^@)^@)^@)^[4H[>^[KD-PES)GT\H(0HD?G(2^[4H8)IT4H92G*)I-*G*)IT\UF )@@G@@I(2GT>^[\I(4I[5I)) [(G0)GD,JC( 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\IK(^[JI(4I[5I))EL>G-(IL>GT4HD\H0)UI )@@G@@BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[4G(!I[\IL-UK )@@G@@IL9^[=GD4GC)G1(H->^[4H[-I))I9(H-?^[+G*)I(3G(=^[+JC)I-*HD3^@)^@)^@)^@)^[0UL )@@G@@IL\GS)I-\^[2G(=HD2G(IT3^[AAS)I-\^[#GD,GT>H)(^@)^@)^@)D9K^@)^@)^@)UQ )@@G@@^@)^@)^@)^@)@@@@@@ETD^@)^@)^@)^@)^@)^@)^@)@@@@@CELJ^@)^@)^@)^@)^@)^@)^@)UR )@@G@@@@@@@KETJ^@)^@)^@)^@)^@)^@)^@)@@@@@SD9M^@)^@)^@)^@)^@)^@)^@)@@@@@)F[HDDOUS )@@G@@^@)^@)^@)^@)^@)^@)@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ L^E[NA-MAD[^@)^@)^@)^@)UU )@@G@@C-KES4EK1 *4^@)^@)@@8@@W@@O@[O@@1@[*@@S@]T@@S@]1@@/@#D@BX@^ @@Z@F+@@C@@AUV )@@G@@@@S@@A@@^@@ @@S@[K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UW )@@G@@@@@@@@C1JELH^@)^@)^]UD#U@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@U$TVB )@@G@@@@A@@A@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@[@[?@@@@BW@C@]8@@@)@@A@@[@*VVC )@@G@@@@S@@/@@? 0])@@@@@@@@@@@@C[@@C@*V@@[@@]@[$@@@@K@^@@@@E@@+]@@@@E@@E@S@@@@VD )@@G@@@C[@@C@8V@@]@@]@]J@@ @K@^@@@@6@@+]@@@@6@@6[0@@@#@C[@@C[SV@@#@@]@#Z@@E@K@VE )@@G@@^@@@@6@@+]@@@@6@@6[0@@@L@C[@@C[8V@@^@@]@^\@@J@K@^@@@@6@@+]@@@@6@@6[0@@@ZVF )@@G@@@C[@@C]SV@@ @@]@ _@@O@K@^@@@@6@@+]@@@@6@@6[0@@@!@C[@@C]8V@@A@@]@BJ@@T@K@VG )@@G@@^@@@@[@@+]@@@@[@@[@C@@@;_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)VH )@@G@@@@@U$T@@S@@A#@@#[K@)[@@@@@0@@/@@@@@@@*V@@[@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@VI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@*V@@@@@[E1PCLTD1ID1I@@[@8V@@@@@]E1PCLBVJ )@@G@@D1ID1I@@[[SV@@@@@#E1PCLBD1ID1I@@[[8V@@@@@^E1PCLBD1ID1I@@[]SV@@@@@ E1PCL#VK )@@G@@D1ID1I@@[]8V@@@@@AE1PEL#D1ID1I^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)VL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)VM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@VN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)VO )@@G@@^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)VP )@@G@@^@)^@)^@)^@)^@)^@)^@)@@@^@@@@@@@@@@@@@@@BX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)^@)^@)VR )@@G@@^@)^@)^@)^@)E[2H9$IL-H(!HD,G8)D--H1$I(-G9>^[&H92^[PD1DETTES)ET9IT4G(!IS)VS )@@G@@ [KD-PES(^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DC)D0)D))DC)D0)VT )@@G@@C*)^@)CS)H8)H*)I@)HC)H))G*)IK)^@)E@)IK)H8)GS)G*)G))I*)IK)G*)^@)^@)^@)^@)VU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@! *! *! *! *! *! *! *! *! *! *! *! *! *!VV )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *!^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)VW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)VX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\I@(^[KD-PES)DDID-DD1 ^[JI[4HD\H13VY )@@G@@BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)VZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)WA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [3HC(^[NH95WB )@@G@@ILGT(G1(G(3^[4H[>^[,GD!WD )@@G@@G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GD4^[^[?GD,G95GD$G*)I[2H9$IL-H*)I-\WF )@@G@@^[+G*)GT\H(0HD?G(= 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)WG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)WH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\H8(^[JH(,HD+I(3^[JI(4I[5I))^@)^@)WI )@@G@@BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)WJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!WK )@@G@@^[&HD?G*)G(?G(!G(,I))I-*GD4^[7HD?H))GL>^[5IT>G))GL9^@)^@)^@)^@)^@)^@)^[4WL )@@G@@H[>^[KD-PES)DDID-DD1 ^[IK)I-\^[3I-\IL>^[4H[>^[\H(,HD+I(3^[\I(4WM )@@G@@I[5I),^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)WN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)WO )@@G@@^@)^@)^@)^@) [3H8(^[NH95ILGT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*WR )@@G@@GD4^[7HD?H))GL>^[5IT>G))GL9^@)^@)^@)^@)^@)^@)^[4H[>^[KD-PES)DDID-DD1 ^[IK)I-\^[3I-\IL>^[4H[>^[3H95ILG-(IL>GT4HD\H0)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)WW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!WX )@@G@@G*)H9&^[4H[>^[4G(!I[\IL-IL9^[=GD4GC)G1(H->^[4H[-I))I9(H-?^[+G*)I(3G(=^[+WY )@@G@@JC)I-*HD3^@)^@)^@)^@)^[0IL\GS)I-\^[2G(=HD2G(IT3^[AAS)I-\^[H)(^@)D9K^@)^@)^@)^@)^@)^@)^@)@@@@@@ETD^@)^@)^@)^@)^@)^@)^@)@@@@@CXE )@@G@@D9J^@)^@)^@)^@)^@)^@)^@)@@@@@KETJ^@)^@)^@)^@)^@)^@)^@)@@@@@SD9M^@)^@)^@)XF )@@G@@^@)^@)^@)^@)@@@@@)F[HDDO^@)^@)^@)^@)^@)^@)@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@XG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XH )@@G@@ L^E[NA-MAD[^@)^@)^@)^@)C-KES4EK1 *4^@)^@)@@8@@W@@O@[O@@9@[*@@S@]-@@W@]9XI )@@G@@@@_@#P@BX@^O@@=@F1@@C@@B@@S@@B@@^@@ @@S@[K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)^]UD^>@@@@@@@@@@@@@@@@@@@@@@@@XK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FTXF8@@C@@@@@@@@@@XL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XO )@@G@@@@@@@@C1JELH^@)^@)@@@!,I@@B@@B@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@[@[3XP )@@G@@@@C@BW@C@]8@@@)@@B@@]@*V@@W@@_@@? 0])@@@@@@@@@@@@C[@@C@SV@@[@@]@@_@@@@K@XQ )@@G@@^@@@@E@@+]@@@@E@@E@S@@@@@C[@@C@*V@@]@@]@[$@@ @K@^@@@@6@@+]@@@@6@@6[0@@@#XR )@@G@@@C[@@C[CV@@#@@]@]7@@E@K@^@@@@6@@+]@@@@6@@6[0@@@L@C[@@C[*V@@^@@]@^B@@J@K@XS )@@G@@^@@@@6@@+]@@@@6@@6[0@@@Z@C[@@C]CV@@ @@]@ R@@O@K@^@@@@E@@+]@@@@E@@E@S@@@!XT )@@G@@@C[@@C])V@@A@@]@AN@@T@K@^@@@@6@@+]@@@@6@@6[0@@@0@C[@@C]8V@@B@@]@BJ@@Y@K@XU )@@G@@^@@@@[@@+]@@@@[@@[@C@@@"_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)XV )@@G@@@@@!,I@@W@@B#@@#[K@)[@@@@@4@@_@@@@@@@*V@@]@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@XW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@SV@@@@@[E1PCLTD1ID1I@@[@*V@@@@@]E1PCLBXX )@@G@@D1ID1I@@[[CV@@@@@#E1PCLBD1ID1I@@[[*V@@@@@^E1PCLBD1ID1I@@[]CV@@@@@ E1PCLTXY )@@G@@D1ID1I@@[])V@@@@@AE1PCL#D1ID1I@@[]8V@@@@@BE1PEL#D1ID1I^@)^@)^@)^@)^@)@@@XZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YA )@@G@@^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YB )@@G@@^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)YD )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@@@@@YE )@@G@@@@@@@@@@@@BX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)^@)^@)^@)^@)^@)^[#^[J^[]^[J^[G^@)^[#YG )@@G@@^[\^[!^[0^[(^[?^[>^[2^@)^[K^[2^[\^[<^[>^[=^[5^[2^[>^@)^@)^@)^@)^@)^@)^@)YH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\I@(^[#H9!I[(H->YJ )@@G@@IK)D90I-(H9,IS)^@)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YM )@@G@@^@)^@) [3HC(^[NH95ILGT(YO )@@G@@G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GD4^[^[0IL\G92YQ )@@G@@GD!^[4H8)GL>^[G),^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [2H8(^[MG(?H9^[JI(4I[5I))BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)YU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!G*)H9&YV )@@G@@^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GD4^[7HD?H))GL>^[5IT>G))I-\^@)YW )@@G@@^@)^@)^@)^@)^@)^[3I-\IL>^[4H[>^[2G(?H9^[\I(4I[5I))I[2H9=I(GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?ZC )@@G@@G*)G(?G(!G(,I))I-*GD4^[7HD?H))GT\H14GD(H0)I-*G*)^@)^@)^@)^@)^@)^[5I[=GD4ZD )@@G@@G(=^[3H95IL^[>H->H(>H14^[0IL\G-5GT>G))GL9^[4H[>^[#D9]D9GZE )@@G@@^[IK,^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZG )@@G@@^@)^@) [>H8(^[ J[4IL-^[JI[4HD\H13^@)^@)^@)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(ZI )@@G@@G1(G(3^[-H19^[>J[4IL-^[\I[4HD\H13^[IL3^[\IK)H15H(+G(2IS,^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZL )@@G@@^@)^@) [\IK(^[JI(4I[5I))EL>G-(IL>GT4HD\H0)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(ZN )@@G@@G1(G(3^[4H[>^[&HD?G(,GD!G*)I-\^[5IT>^[4H8)IL>G-(IL>GT4^[4H[>^[#D9]D9G^[IK)H95I-0I(4 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CT\H(0HD?G*)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZR )@@G@@^@)^@)^@)^@*H92^[0IL>IT3^[AAS)I-\^[H)(^@)^@)^@)D9K^@)^@)^@)^@)^@)ZS )@@G@@^@)^@)@@@@@@ETD^@)^@)^@)^@)^@)^@)^@)@@@@@CELJ^@)^@)^@)^@)^@)^@)^@)@@@@@KZT )@@G@@ETJ^@)^@)^@)^@)^@)^@)^@)@@@@@SC(J^@)^@)^@)^@)^@)^@)^@)@@@@@)D9M^@)^@)^@)ZU )@@G@@^@)^@)^@)^@)@@@@@*F[HDDO^@)^@)^@)^@)^@)^@)@@@@@0@@@@@@@@@@@@@@@@@@@@@@@@ZV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ L^E[NA-MAD[^@)^@)^@)^@)ZX )@@G@@C-KES4EK1 *4^@)^@)@@8@@W@@O@[O@@1@[*@@S@]T@@S@]1@@/@#D@B1@^ @@Z@F6@@C@@AZY )@@G@@@@S@@A@@^@@ @@S@[K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZZ )@@G@@@@@@@@C1JELH^@)^@)^]UD ,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@/O+AE )@@G@@@@A@@A@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@[@[?@@C@B0@C@#@@@@)@@A@@]@0VAF )@@G@@@@S@@/@@? 0])@@@@@@@@@@@@C[@@C@)V@@[@@]@[N@@@@K@^@@@@E@@+]@@@@E@@E@S@@@@AG )@@G@@@C[@@C@0V@@]@@]@[;@@ @K@^@@@@6@@+]@@@@6@@6[0@@@#@C[@@C[KV@@#@@]@#F@@E@K@AH )@@G@@^@@@@6@@+]@@@@6@@6[0@@@L@C[@@C[0V@@^@@]@^V@@J@K@^@@@@6@@+]@@@@6@@6[0@@@ZAI )@@G@@@C[@@C]KV@@ @@]@ :@@O@K@^@@@@6@@+]@@@@6@@6[0@@@!@C[@@C]8V@@A@@]@BJ@@T@K@AJ )@@G@@^@@@@[@@+]@@@@[@@[@C@@@;_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)AK )@@G@@@@@/O+@@S@@A#@@#[K@)[@@@@@0@@/@@@@@@@0V@@]@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@AL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@)V@@@@@[E1PCLTD1ID1I@@[@0V@@@@@]E1PCLBAM )@@G@@D1ID1I@@[[KV@@@@@#E1PCLBD1ID1I@@[[0V@@@@@^E1PCLBD1ID1I@@[]KV@@@@@ E1PCL#AN )@@G@@D1ID1I@@[]8V@@@@@AE1PEL#D1ID1I^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)AO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)AP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@AQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AR )@@G@@^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AS )@@G@@^@)^@)^@)^@)^@)^@)^@)@@@^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)^@)^@)AU )@@G@@^@)^@)^[A^[J^[M^[O^[M^[[^[I^@)^@)CS)H8)H*)I@)HC)H))G*)IK)^@)^[K^[2^[\^[^[=^[5^[2^[>^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) *! *! *! *! *! *!AW )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *)^@)^@)AX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\I@(^[#H9!AZ )@@G@@I[(H->IK)D90I-(H9,IS)^@)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BC )@@G@@^@)^@)^@)^@) [3HC(^[NH95ILGT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*BF )@@G@@GD4^[^[0BG )@@G@@IL\G92GD!^[4H8)GL>^[G),^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [2H8(^[MG(?BJ )@@G@@H9^[JI(4I[5I))BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!BL )@@G@@G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GD4^[7HD?H))GL>^[5IT>G))BM )@@G@@GL9^@)^@)^@)^@)^@)^@)^[4H[>^[AD9ME-MCDI^[IK)I-\^[3I-\IL>^[4H[>BN )@@G@@^[2G(?H9^[\I(4I[5I),^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [3H8(^[NH95ILGT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!BS )@@G@@^[&HD?G*)G(?G(!G(,I))I-*GD4^[7HD?H))GL>^[5IT>G))GL9^@)^@)^@)^@)^@)^@)^[4BT )@@G@@H[>^[AD9ME-MCDI^[IK)I-\^[3I-\IL>^[4H[>^[5I[=GD4G(=^[3H95ILG-(IL>GT4HD\H0)BK)^@)^@)^@)^@)^@)^@)^@)BX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NBY )@@G@@I[>GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[4G(!I[\IL-IL9^[=GD4GC)G1(H->^[4H[-BZ )@@G@@I))I9(H-?^[+G*)I(3G(=^[+JC)I-*HD3^@)^@)^@)^@)^[0IL\GS)I-\^[2G(=HD2G(IS)H9,^[BETP^93^[PD1DDN )@@G@@ETTES)AC1A@0 87AK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@! *!DO )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!^@)^@)DP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DS )@@G@@^@)^@)^@)^[KIL\GT>G-5IL>^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DT )@@G@@^@)^[KIL\G92GD!H((H1$^[GGD,G95GD$G*)^@)^@)^@)^@)^@)^@)^@)^@)^[IGD!G*)^@)DU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@! *! *! *! *! *! *! *! *! *! *! *! *!DV )@@G@@ *! *! *! *! *! *! *! *! *! *! *)^@! *! *! *! *!^@)^@)^@)^@)^@)^@)^@)^@)DW )@@G@@^@)^@)^@)^[#^@*E(IDDS C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,DX )@@G@@ 0, 0, 0)^[#CS)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[[ET#DDD^[#D9]DY )@@G@@D9G 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)^[#D9]D9G^@)^@)DZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[[ET#DDD^[AD9ME-MCDI 0, 0, 0, 0, 0, 0,EA )@@G@@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)^[AD9ME-MCDI^@)^@)^@)^@)^@)^@)^@)^@)^@)EB )@@G@@^@)^@)^@)^[KGD3GT-H)) [P 1N 0)D1-I1-H))D9H14G(2 C,EC )@@G@@ 0, 0, 0)^[ID9NCS)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[KGD3GT-H)) [PED )@@G@@H1(I1>IL3HD4JC)H9&^[#H90G(,H[-G9>H0( 0, 0, 0, 0, 0, 0, 0)^[PD9#^@)^@)^@)EE )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[HCDND*) [HG(4GC!CD3IT>H(+H->IK( 0, 0,EF )@@G@@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)^[HETH^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EG )@@G@@^@)^@)^@)^[KD-PES) [KIL\G92GD!H((H1$^[GGD,G95GD$G*)G1\IK)E(IDDNFDN^[NJD3EH )@@G@@I->H(3 C)^[KD-PES)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[KD-PES)DD,H-(EI )@@G@@H1>^[AGDGT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GO )@@G@@GD4^[^[0GP )@@G@@IL\G92GD! 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)GQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)GR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\IK(^[JI(4GS )@@G@@I[5I))EL>G-(IL>GT4HD\H0)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)GT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!GU )@@G@@G*)H9&^[4H[>^[4G(!I[\IL-IL9^[=GD4GC)G1(H->^[4H[(IS)I[2H9<^[7HD?H))I(3G*)GV )@@G@@I-\^@)^@)^@)^@)^@)^@)^[2G(=HD2G(IT3^[AAS)I-\^[H)(^@)^@)^@)^@)D9K^@)^@)^@)HM )@@G@@^@)^@)^@)^@)@@@@@@ETD^@)^@)^@)^@)^@)^@)^@)@@@@@CD9M^@)^@)^@)^@)^@)^@)^@)HN )@@G@@@@@@@KF[HDDO^@)^@)^@)^@)^@)^@)@@@@@S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@ L^E[NA-MAD[^@)^@)^@)^@)C-KES4EK1 *4^@)^@)@@8@@WHQ )@@G@@@@O@[O@@1@[*@@S@]T@@S@]1@@/@#D@BD@^ @@Z@FI@@C@@A@@S@@A@@^@@ @@S@[K@@@@@@HR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)^#UK:9HS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HT )@@G@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@N>Q@@A@@A@@@@@@@@@@@@@@@@@@HX )@@G@@@@@@@@@@[@@@@@@@@@@@[@[?@@@@BC@C@]0@@@)@@A@@[@)V@@S@@/@@? 0])@@@@@@@@@@@HY )@@G@@@C[@@C@)V@@[@@]@[N@@@@K@^@@@@E@@+]@@@@E@@E@S@@@@@C[@@C@0V@@]@@]@[;@@ @K@HZ )@@G@@^@@@@6@@+]@@@@6@@6[0@@@#@C[@@C[KV@@#@@]@#F@@E@K@^@@@@6@@+]@@@@6@@6[0@@@LIA )@@G@@@C[@@C[0V@@^@@]@^V@@J@K@^@@@@6@@+]@@@@6@@6[0@@@Z@C[@@C]KV@@ @@]@ :@@O@K@IB )@@G@@^@@@@6@@+]@@@@6@@6[0@@@!@C[@@C]0V@@A@@]@A;@@T@K@^@@@@[@@+]@@@@[@@[@C@@@;IC )@@G@@_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)@@@N>Q@@S@@A#@@#[K@)[@@@ID )@@G@@@@0@@/@@@@@@@)V@@[@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IE )@@G@@@@@@@@@@[@)V@@@@@[E1PCLTD1ID1I@@[@0V@@@@@]E1PCLBD1ID1I@@[[KV@@@@@#E1PCLBIF )@@G@@D1ID1I@@[[0V@@@@@^E1PCLBD1ID1I@@[]KV@@@@@ E1PCL#D1ID1I@@[]0V@@@@@AE1PEL#IG )@@G@@D1ID1I^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)IH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)II )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)IJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)IK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@IL )@@G@@^@@@@@@@@@@@@@@@BD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)^@)^@)^@)^[H^[>^[4^[-^@!^[[^[3IN )@@G@@^[3^[>^[!^[+^[?^[>^[2^@) [H^[[^[N^[H C)^[K^[2^[\^[<^[>^[=^[5^[2^[>^@)^@)IO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@) *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!IP )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *)^@)^@)^@)^@)^@)^@)^@)^@)^@)IQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)IR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\I@(^[[IT3G(!GL?G(2^[JI[4HD\H13^@)IS )@@G@@BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)IT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)IU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [3HC(^[NH95IV )@@G@@ILGT(G1(G(3^[4H[>^[,GD!IX )@@G@@G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GD4^[H(+H->G),^@)IZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)JA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)JB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [2H8(^[MG(?H9^[JI(4I[5I))JC )@@G@@BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)JD )@@G@@^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!JE )@@G@@^[&HD?G*)G(?G(!G(,I))I-*GD4^[7HD?H))GT\H14GD(H0)I-*G*)^@)^@)^@)^@)^@)^[2JF )@@G@@G(?H9^[\I(4I[5I))I[2H9=I(IT3H92JG )@@G@@ 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)JH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)JI )@@G@@^@)^@)^@)^@) [3H8(^[NH95ILGT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*JL )@@G@@GD4^[7HD?H))GT\H14GD(H0)I-*G*)^@)^@)^@)^@)^@)^[3H95ILG))GL9^[4H[>^[HCDND*)I[2H9G-(IL>GT4HD\H0)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)JQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!JR )@@G@@G*)H9&^[4H[>^[4G(!I[\IL-IL9^[=GD4GC)G1(H->^[4H[(IS)I[2H9<^[7HD?H))I(3G*)JS )@@G@@I-\^@)^@)^@)^@)^@)^@)^[2G(=HD2G(H(+H-9^[\I(4I[5JT )@@G@@I),^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)JU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)JV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[[IT3G(!GL?JW )@@G@@G*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [\IK)I[2G(3IS)C03^[4H8)GT-JX )@@G@@H1@^L@B1@^6@@.@G$@@C@@G@@S@@G@@^@@ @@S@[K@@@@@@KC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)^HUI7>KD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KE )@@G@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@II+@@G@@G@@@@@@@@@@@@@@@@@@KI )@@G@@@@@@@@@@[@@@@@@@@@@@[@[!@@@@B0@C@#@@@@)@@G@@[@)J@@0@@>@@? 0])@@@@@@@@@@@KJ )@@G@@@C[@@C@)J@@[@@]@[K@@@@K@^@@@[]@@+]@@@[]@[]]C@@@@@C[@@C@0J@@]@@]@[8@@ @K@KK )@@G@@^@@@@[@@+]@@@@[@@[@C@@@L@C[@@C@8J@@#@@]@]G@@E@K@^@@@@^@@+]@@@@^@@^@C@@@MKL )@@G@@@C[@@C[@J@@^@@]@])@@J@K@^@@@@^@@+]@@@@^@@^@C@@@N@C[@@C[CJ@@ @@]@]4@@O@K@KM )@@G@@^@@@@A@@+]@@@@A@@A@K@@@O@C[@@C[KJ@@A@@]@#C@@T@K@^@@@@G@@+]@@@@G@@G@S@@@QKN )@@G@@@C[@@C[SJ@@B@@]@#W@@Y@K@^@@@@G@@+]@@@@G@@G@S@@@T@C[@@C[)J@@C@@]@#0@@<@K@KO )@@G@@^@@@@C@@+]@@@@C@@C@K@@@W@C[@@C[0J@@D@@]@^S@@*@K@^@@@@C@@+]@@@@C@@C@K@@@YKP )@@G@@@C[@@C[8J@@E@@]@^?@@!@K@^@@@@ @@+]@@@@ @@ @K@@@)@C[@@C]CJ@@F@@]@ O@@2@K@KQ )@@G@@^@@@@ @@+]@@@@ @@ @K@@@+@C[@@C#@J@@G@@]@B)@@7@K@^@@@@[@@+]@@@@[@@[@C@@@=KR )@@G@@_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)@@@II+@@0@@G#@@#[K@)[@@@KS )@@G@@@[C@@>@@@@@@@)J@@[@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KT )@@G@@@@@@@@@@[@)J@@@@@[E1PCL#D1ID1I@@[@0J@@@@@]E1PCL#D1ID1I@@[@8J@@@@@#E1PCL#KU )@@G@@D1ID1I@@[[@J@@@@@^E1PCL#D1ID1I@@[[CJ@@@@@ E1PCL#D1ID1I@@[[KJ@@@@@AE1PCL#KV )@@G@@D1ID1I@@[[SJ@@@@@BE1PCL#D1ID1I@@[[)J@@@@@CE1PCL#D1ID1I@@[[0J@@@@@DE1PCL#KW )@@G@@D1ID1I@@[[8J@@@@@EE1PCL#D1ID1I@@[]CJ@@@@@FE1PCL#D1ID1I@@[#@J@@@@@GE1PEL#KX )@@G@@D1ID1I^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)KY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@@@@@^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)KZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@@@@^@)^@)LA )@@G@@^@@@@@^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C[NE-[ELO^[KIL\GT>G-5IL>^@1 01LC )@@G@@^@)H->I-3^[9H95^[3I(+H((I))GC)GL-I-^@)^@)^@)BK)^@)^@)^@)LH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)E[2LK )@@G@@HD\IL(I-9^@)BK)^@, 0, 0, 0, 0, 0, 0, 0, 0)CC)I-*IL5^[U^@) [[^[(IS)H[(G9*LL )@@G@@^[-H1=^[U^[(IS)H-\I8( 0)^@)^@)^@)^@)^@)^@)^@)D90I-(H9,IS)^@)BK)^@)^@) 0,LM )@@G@@ 0, 0, 0, 0, 0, 0)GD,JC)H->G9-H))C[NE-[ELO^[\I[4HD\H0,^@)^@)^@)^@)^@)^@)LN )@@G@@^@)^@)^@)^@)^@)^@)^@)ET>I))^@)^@)^@)BK)^@)^@) 0, 0, 0, 0, 0, 0, 0)IT>I-3LO )@@G@@^[OAK)H9&^[4H[>^[IL(GS)LQ )@@G@@GT*GD2GDIL3 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)CDIK,^@)^@)^@)^@)^@)^@)^@)^@)LS )@@G@@^@)^@)^@)^@)^@)^@)^@)E[2H9%G(GT4^[(G),^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EL5LU )@@G@@H1OHD!G*)^@)BK)^@)^@)^@)^@) 0, 0, 0, 0, 0)G(3I-(H(-I->G))IL5H0)I-(H(>^[(LV )@@G@@H0)ETPE@$IS,^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LW )@@G@@^@)^@)^@)^@)^@)^@)I(3G*)GC)H->GD=HD,G8)^L3^K)I-\^[3I[>GT(G19^[3G(IS)^@)^@)BK)^@)^@)^@)^@) 0, 0, 0, 0, 0)G(3I-(LY )@@G@@H(-I->G))H15H(+G(2^[\G0)I[2HD,I->G))I[-G9>IS,^@)^@)^@)^@)^@)^@)^@)^@)C->LZ )@@G@@GD=H-(H1>^@)BK)^@)^@)^@, 0, 0, 0, 0, 0, 0)GC)G->GD=H-(H1>^[4HD!G*)G1\IK)MA )@@G@@I-*G*)GL-I-GD=HD,G8)^L=^K)I-\^[3I[>GT(G19^[4HD!G*)H9&MC )@@G@@^[=GD9 0)^@)^@)^@)^@)ET4GD2I-OHD!G*)BK)^@)^@)^@, 0, 0, 0, 0, 0, 0)GC)IT4MD )@@G@@GD2I))I-(H(>^[&H92^[4H[>^[+GD4GT*^[%H9+ 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ME )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)I(3G*)GC)H->GD=HD,G8)^L=^K)I-\MF )@@G@@^[3I[>GT(G19^[4HD!G*)H9&^[=GD9 0)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MH )@@G@@^@)^@)^@)^@)^@)^@)^[OH[>^[&H92H(-I))H9&^[4H[>^[@ETOCDME))GT\H(!GD,G))HD3MI )@@G@@BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[@ETOMJ )@@G@@CDME)?E[2HD\IL(I-9 9JI[4HD\H13^[AHD?G*?ET>I)?EL5H1(G)?CDGD=H-(H1> -KGD$G(3 ))^[NI--IL4E-(H(>^@)^@)^@)^@)^@)ML )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)MO )@@G@@^@)^@)^@)^@)^@)^@)F[HDDO^[*G(2G*)I-\^[@ETOCDME))JD\I(2^[+GD4GT*^[%H9+ 0)MP )@@G@@^@)^@) [\IK)I[2G(3IS)C03^[4H8)C(8HD4 C)^@)C1DD- ^@)^@)^@)^@)^@)^@)@@@@@@MQ )@@G@@E[MDDJELDE-T^@)^@)^@)^@)@@@@@CD9KE-DD9IES)^@)^@)^@)^@)@@@@@KET E))^@)^@)MR )@@G@@^@)^@)^@)^@)@@@@@SELPD1DC))^@)^@)^@)^@)^@)@@@@@)CD#CTJE(IE))^@)^@)^@)^@)MS )@@G@@@@@@@*E[MD9EC(#E))^@)^@)^@)^@)@@@@@0ELPD1ODDHC*)^@)^@)^@)^@)@@@@@8E[[C9 MT )@@G@@ES)^@)^@)^@)^@)^@)@@@@[@C- CD^D-DD1 ^@)^@)^@)^@)@@@@[CETOCDME-ODDHC*)^@)MU )@@G@@^@)^@)@@@@[KF[HDDO^@)^@)^@)^@)^@)^@)@@@@[S@@@@@@ L^E[NA-MAD[^@)^@)^@)^@)MV )@@G@@C-KES4EK1 *4^@)^@)@@8@@W@@O@[O@@(@[*@@S@]L@@O@](@@,@].@BX@#:@@U@FC@@C@@ MW )@@G@@@@S@@ @@^@@ @@S@[K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MX )@@G@@@@@@@@C1JELH^@)^@)^HUKK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@VM6NC )@@G@@@@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@[@[U@@@@BW@C@]8@@@)@@ @@[@0VND )@@G@@@@O@@,@@? 0])@@@@@@@@@@@@C[@@C@0V@@[@@]@[;@@@@K@^@@@@E@@+]@@@@E@@E@S@@@@NE )@@G@@@C[@@C[CV@@]@@]@]7@@ @K@^@@@@6@@+]@@@@6@@6[0@@@#@C[@@C[*V@@#@@]@^B@@E@K@NF )@@G@@^@@@@6@@+]@@@@6@@6[0@@@L@C[@@C]CV@@^@@]@ R@@J@K@^@@@@6@@+]@@@@6@@6[0@@@ZNG )@@G@@@C[@@C]8V@@ @@]@BJ@@O@K@^@@@@[@@+]@@@@[@@[@C@@@!_____"@@@@@@@@@@@@@@@@@@NH )@@G@@@@@@@@A@0A@0C1JELH^@)^@)@@@VM6@@O@@ #@@#[K@)[@@@@@?@@,@@@@@@@0V@@[@@@@@@NI )@@G@@E1^C(RD1ID1I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@0V@@@@@[E1PCLTNJ )@@G@@D1ID1I@@[[CV@@@@@]E1PCLBD1ID1I@@[[*V@@@@@#E1PCLBD1ID1I@@[]CV@@@@@^E1PCL#NK )@@G@@D1ID1I@@[]8V@@@@@ E1PEL#D1ID1I^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)NL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)NM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@NN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NO )@@G@@^@)^@)^@)@@@^@@@@@@@@@@@@@@@BX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)^@)^@)^@)^@)^@)^@)NQ )@@G@@^@)^@)^@)E*,ES,^[IGD6GD?^[JGT>GD,^[NJD3I->H(3^[#G(,I->IK)^@)^@)^@)^@)^@)NR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[K^[-^[3^[<^[-^[?^@)^@1NS )@@G@@^@1^@0^@0^@)^[K^[2^[\^[<^[>^[=^[5^[2^[>^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@) *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!NU )@@G@@ *! *! *! *! *! *)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NY )@@G@@ [\I@(^[#H9!I[(H->IK)D90I-(H9,IS)^@)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)NZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OD )@@G@@ [3HC(^[NH95ILGT(G1(G(3OF )@@G@@^[4H[>^[,GD!G*)H9&^[4H[>^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GD4^[^[0IL\G92GD!^[4H8)GL>^[G),^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) [2H8(^[MG(?H9OK )@@G@@^[JI(4I[5I))BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>OM )@@G@@^[0IL\G92GD!^[&HD?G*)G(?G(!G(,I))I-*GD4^[7HD?H))GL>^[5IT>G))GL9^@)^@)^@)ON )@@G@@^@)^@)^@)^[4H[>^[KGD3GT-H))AC1A@0^[IK)I-\^[3I-\IL>^[4H[>^[2G(?OO )@@G@@H9^[\I(4I[5I),^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@) [\IK(^[JI(4I[5I))EL>G-(IL>GT4HD\H0)BK)^@)^@)^@)OR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OS )@@G@@^@)^@)^@)^[NI[>GT(G1(G(3^[4H[>^[,GD!G*)H9&^[4H[>^[4G(!I[\IL-IL9^[=GD4GC)OT )@@G@@G1(H->^[4H[-I))I9(H-?^[+G*)I(3G(=^[+JC)I-*HD3^@)^@)^@)^@)^[0IL\GS)I-\^[2OU )@@G@@G(=HD2G(@B1@]"@@K@E\@@C@@#PH )@@G@@@@S@@#@@^@@ @@S@[K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PI )@@G@@@@@@@@C1JELH^@)^@) ]UC2?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@ J!PN )@@G@@@@#@@]@@[@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@[@@.@@C@B0@C@#@@@@)@@#@@]])UPO )@@G@@@@G@@T@@? 0])@@@@@@@@@@@@K[@@C]SU@@[@@[@ _@@@@K@@@@@@,@@+@@@@@,@@,[)@@@@PP )@@G@@@C[@@C])U@@]@@[@AN@@ @K@^@@@@,@@+]@@@@,@@,[)@@@G@C[@@C]8U@@#@@[@BJ@@E@K@PQ )@@G@@^@@@@[@@+]@@@@[@@[@C@@@S_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)PR )@@G@@@@@ J!@@G@@##@@#[K@)[@@@@@=@@T@@@@@@])U@@]@@@@@@E1^C(RD1ID1I@@@@@@@@@@@@PS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]]SU@@@@@[E1^C(#D1ID1I@@[])U@@@@@]E1PCL#PT )@@G@@D1ID1I@@[]8U@@@@@#E1PEL#D1ID1I^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)PU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)PV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@@@@@@@@@@@@@PW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)PX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)PY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)PZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^[PH1(IT9IS)AC1A@0 87AK)D@2^@!^[ F[ CS)D->I1>H))QD )@@G@@AS9EK8^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QE )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QH )@@G@@^@)^@)^@)^@)^@)^@)^[$G9$G8)^@)^@)^[3IT3IS)^@)^@)I*)^@)^[5^@)^@)^[^[PH1(I1>IL3HD4JC)CT\H(0I(4G(2QX )@@G@@^[#G(,I->IK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)QZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RB )@@G@@^@)^@)^[CH9!G*)C-(IL>GT4H92JC'^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[RH92HS)C-(IL>GT4RD )@@G@@H92JC'^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RE )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CT\H14RI )@@G@@HD,I(>^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^[ J[(I)*RJ )@@G@@G03 C)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)RK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DDHCDBRL )@@G@@C*1^@)^@)^@)^@)^@)@@@@@@DDHCDBC*2^@)^@)^@)^@)^@)@@@@@CDDHCDBC*3^@)^@)^@)RM )@@G@@^@)^@)@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@ L^E[NA-MAD[^@)^@)^@)^@)C-KES4EK1 *4^@)^@)@@8@@WRP )@@G@@@@O@[O@]T@[*@@S@^[@[G@^T@[)@ >@B1@B @[)@I6@@C@@N@@S@@N@@^@@ @@S@[K@@@@@@RQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@) IUC/NRR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RS )@@G@@@@@@@@FTXF8@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@)@@@\,)@@N@@G@@B@@@@@@@@@@@@@@@RW )@@G@@@@@@@@@@[@@@@@@@@@@@[@#^@@C@B0@C@#@@@@)@@N@@]@)L@[G@[)@@? 0])@@@@@@@@@@@RX )@@G@@@K[@@C@SL@@[@@@@@.@@@@K@@@@@@!@@+@@@@@!@@![)@@@@@C[@@C@)L@@]@@@@[L@@ @K@RY )@@G@@^@@@@!@@+]@@@@!@@![)@@@G@C[@@C@*L@@#@@@@[>@@E@K@^@@@@!@@+]@@@@!@@![)@@@SRZ )@@G@@@K[@@C@0L@@^@@@@[9@@J@K@@@@@[@@@+@@@@[@@[@]@@@@=@K[@@C@8L@@ @@@@]H@@O@K@SA )@@G@@@@@@@#@@+@@@@@#@@#@C@@@4@C[@@C[CL@@A@@@@]5@@T@K@^@@@@ @@+]@@@@ @@ @K@@@5SB )@@G@@@K[@@C[KL@@B@@@@#D@@Y@K@@@@@@P@@+@@@@@P@@P@0@@@7@K[@@C[SL@@C@@@@#X@@<@K@SC )@@G@@@@@@@ @@+@@@@@ @@ @K@@@.@C[@@C[)M@@D@@[@#1@@*@K@^@@@@A@@+]@@@@A@@A@K@@@_SD )@@G@@@C[@@C[)T@@E@@@@#3@@!@K@^@@@@A@@+]@@@@A@@A@K@@[[@C[@@C[))@@F@@#@#4@@2@K@SE )@@G@@^@@@@A@@+]@@@@A@@A@K@@[#@C[@@C[*L@@G@@@@^ @@7@K@^@@@@ @@+]@@@@ @@ @K@@[ SF )@@G@@@K[@@C[0L@@H@@@@^T@@/@K@@@@@[@@@+@@@@[@@[@]@@@[B@C[@@C[8L@@I@@@@^!@[[@K@SG )@@G@@^@@@@A@@+]@@@@A@@A@K@@[R@K[@@C]@L@@J@@@@ [@[A@K@@@@@@ @@+@@@@@ @@ @K@@[TSH )@@G@@@C[@@C]CL@@K@@@@ P@[F@K@^@@@@[@@+]@@@@[@@[@C@@[V@C[@@C]KL@@L@@@@ (@[K@K@SI )@@G@@^@@@@ @@+]@@@@ @@ @K@@[W@C[@@C]SL@@M@@@@ .@[P@K@^@@@@[@@+]@@@@[@@[@C@@[YSJ )@@G@@@C[@@C]8L@@N@@@@BH@[U@K@^@@@@[@@+]@@@@[@@[@C@@[Z_____"@@@@@@@@@@@@@@@@@@SK )@@G@@@@@@@@A@0A@0C1JELH^@)^@)@@@\,)@[G@@N#@@#[K@)[@@@@[=@[)@@@@@@@)L@@]@@@@@@SL )@@G@@E1^C(RD-ID1IFC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]@SL@@@@@[E1^C(TSM )@@G@@D1ID1I@@[@)L@@@@@]E1PC9TD1ID1I@@[@*L@@@@@#E1PC9TD1ID1I@@]@0L@@@@@^E1^C(TSN )@@G@@D1ID1I@@]@8L@@@@@ E1^C(TD1ID1I@@[[CL@@@@@AE1PC9TD1ID1I@@][KL@@@@@BE1^C(TSO )@@G@@D1ID1I@@][SL@@@@@CE1^C(TD1ID1I@@[[)M@@@@@DE1PC9TD1ID1I@@[[)T@@@@@EE1PC9TSP )@@G@@D1ID1I@@[[))@@@@@FE1PC9TD1ID1I@@[[*L@@@@@GE1PC9TD1ID1I@@][0L@@@@@HE1^C(TSQ )@@G@@D1ID1I@@[[8L@@@@@IE1PC9TD1ID1I@@]]@L@@@@@JE1^C(TD1ID1I@@[]CL@@@@@KE1PC9TSR )@@G@@D1ID1I@@[]KL@@@@@LE1PC9TD1ID1I@@[]SL@@@@@ME1PC9TD1ID1I@@[]8L@@@@@NE1PELTSS )@@G@@D1ID1I^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ST )@@G@@^@@@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)SU )@@G@@^@@@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)SV )@@G@@^@@@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)SW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@^@)^@)^@@@@@^@)^@)^@)^@)^@)^@)^@)^@)SX )@@G@@^@)^@)^@@@@@^@)^@)^@@@@@^@)^@)^@)@@@^@)^@)^@)@@@^@)^@)^@)@@@^@)^@)^@@@@@SY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)SZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@@@@@^@@@@@^@)^@)^@@@@@^@@@@@TA )@@G@@^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E[MD9ADDGC*)AC,AC)^@)E(3G*)^K_^K)G1\TC )@@G@@IK)H[>H-0^[\H0)GC)IT9IT4G(!^[6GD2HD-GL?G*,^@)^@)^@)^@)^@)^@)^@)^[NGT2G(>TD )@@G@@H0)AC)H9&^@7 *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!TE )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!^-CH9!G(^HD2TF )@@G@@G(^[4JD0G*)H9&^@=C1(H->H1-H(>^@*G*,TN )@@G@@G8,^[#D9] C)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-]H-\GT:C(2TP )@@G@@IL\IK)^@)BK)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)E-ME( ^[\IK)C1[D-NC*)TQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-]H94I-\H(DH(-G9>^@)BK)^@)^@)^@)^@)TR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TS )@@G@@^@)^@)^@)^@)^-]IL>GD:I[\HD,I))^@)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-#GD?H-JIL=TU )@@G@@G(2^@)^@)BK) @)^@)^@)^@?^@)^@)^@) ))^@)^@)^@( 0, 0)ET\H(>^[0G(2H(5I--I-(TV )@@G@@H9,^[\G0)ETTETOC(H -CD9HC*?E9JELF^@)^-#GD3G(NG(,IT(I-(I1>BK)^@)^@)^@, 0,TW )@@G@@ 0, 0, 0, 0, 0, 0, 0, 0, 0)E-ME( ^[\IK)C1[D-NC*)^@)^@)^@)^@)^@)^@)^@)^@)TX )@@G@@^@)^@)^@)^@)^-#H[-H1$G(NI-2HD,G8)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)TY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-#H[-IL-GT4TZ )@@G@@G(2ET>I))BK)^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)C(SE[[D1^^[\IK)D1JELHUA )@@G@@CDG^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-#H9!H(-H1=C(2IL\IK)BK)^@)^@)^@)^@)UB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UC )@@G@@^@)^@)^@)^@)^-#H9!H(-H1=D-(H1>IS)BK)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,UD )@@G@@ 0)AC?AK?AS?A))H92^@5^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-#H9!H(-H1=UE )@@G@@EL>G9(H9,BK)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)E-ME( ^[\IK)C1[D-NC*)UF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-#H9!H(>H14CT*GD2^@)BK)^@, 0, 0, 0,UG )@@G@@ 0, 0, 0, 0, 0, 0, 0, 0, 0)H(\IT4^[G9-H))^@)^@)UH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)UM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)F[HDDO^[4H8)IT>I))H1>I8)I1-H-5G(3UN )@@G@@ 0)^@)^@)C01B(KGD$G*)C1\IL7GD2G))C02B(]GD@I @@C@@O@@S@@O@@^@@ @@S@[K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1JELH^@)^@) IUC.'@@@@@@@@@@@@@@@@@@@@@@@@VC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FTXF8@@C@@@@@@@@@@VD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VG )@@G@@@@@@@@C1JELH^@)^@)@@@NP/@@O@@F@@D@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@[@]FVH )@@G@@@@@@B0@C@#@@@K)@@O@@[@SL@[K@@<@@? 0])@@@@@@@@@@@@C[@@C@SL@@[@@@@@.@@@@K@VI )@@G@@^@@@@ @@+]@@@@ @@ @K@@@@@C[@@C@)L@@]@@@@[L@@ @K@^@@@@D@@+]@@@@D@@D@S@@@]VJ )@@G@@@C[@@C@*L@@#@@@@[>@@E@K@^@@@@[@@+]@@@@[@@[@C@@@ @K[@@C@0L@@^@@@@[9@@J@K@VK )@@G@@@@@@@#@@+@@@@@#@@#@C@@@A@K[@@C@8L@@ @@@@]H@@O@K@@@@@@Q@@+@@@@@Q@@Q@0@@@BVL )@@G@@@K[@@C[@L@@A@@@@]-@@T@K@@@@@@]@@+@@@@@]@@]@C@@@H@K[@@C[CL@@B@@@@]5@@Y@K@VM )@@G@@@@@@@#@@+@@@@@#@@#@C@@@I@K[@@C[KL@@C@@@@#D@@<@K@@@@@@]@@+@@@@@]@@]@C@@@JVN )@@G@@@C[@@C[SL@@D@@@@#X@@*@K@^@@@@F@@+]@@@@F@@F@S@@@K@K[@@C[)L@@E@@@@#1@@!@K@VO )@@G@@@@@@@C@@+@@@@@C@@C@K@@@N@C[@@C[*L@@F@@@@^ @@2@K@^@@@@[@@+]@@@@[@@[@C@@@PVP )@@G@@@C[@@C[0L@@G@@@@^T@@7@K@^@@@@A@@+]@@@@A@@A@K@@@Q@C[@@C[8L@@H@@@@^!@@/@K@VQ )@@G@@^@@@@C@@+]@@@@C@@C@K@@@S@K[@@C]@L@@I@@@@ [@[[@K@@@@@@#@@+@@@@@#@@#@C@@@UVR )@@G@@@C[@@C]CL@@J@@@@ P@[A@K@^@@@@D@@+]@@@@D@@D@S@@@V@K[@@C]C9@@K@@@@ Z@[F@K@VS )@@G@@@@@@@[@[+@@@@@[@@[@C@@@Y@K[@@C]D^@@L@@#@ -@[K@K@@@@@@[@[+@@@@@[@@[@C@@@ZVT )@@G@@@C[@@C]KL@@M@@@@ (@[P@K@^@@@@[@@+]@@@@[@@[@C@@@)@C[@@C]SL@@N@@@@ .@[U@K@VU )@@G@@^@@@@[@@+]@@@@[@@[@C@@@-@C[@@C]8L@@O@@@@BH@[Z@K@^@@@@[@@+]@@@@[@@[@C@@@+VV )@@G@@_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)@@@NP/@[K@@O#@@#[K@)[@@@VW )@@G@@@[*@@<@@@@@@@SL@@[@@@@@@E1^C(RD-ID1IFC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VX )@@G@@@@@@@@@@[@SL@@@@@[E1PC9TD1ID1I@@[@)L@@@@@]E1PC9TD1ID1I@@[@*L@@@@@#E1PC9TVY )@@G@@D1ID1I@@]@0L@@@@@^E1^C(TD1ID1I@@]@8L@@@@@ E1^C(TD1ID1I@@][@L@@@@@AE1^C(TVZ )@@G@@D1ID1I@@][CL@@@@@BE1^C(TD1ID1I@@][KL@@@@@CE1^C(TD1ID1I@@[[SL@@@@@DE1PC9TWA )@@G@@D1ID1I@@][)L@@@@@EE1^C(TD1ID1I@@[[*L@@@@@FE1PC9TD1ID1I@@[[0L@@@@@GE1PC9TWB )@@G@@D1ID1I@@[[8L@@@@@HE1PC9TD1ID1I@@]]@L@@@@@IE1^C(TD1ID1I@@[]CL@@@@@JE1PC9TWC )@@G@@D1ID1I@@]]C9@@@@@KE1^C(RD1ID1I@@]]D^@@@@@LE1^C(RD1ID1I@@[]KL@@@@@ME1PC9TWD )@@G@@D1ID1I@@[]SL@@@@@NE1PC9TD1ID1I@@[]8L@@@@@OE1PELTD1ID1I^@)^@)^@@@@@^@)^@)WE )@@G@@^@)^@)^@@@@@^@@@@@^@)^@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)@@@^@)^@@WF )@@G@@^@)@@@^@)^@)^@)^@)^@)^@@^@)^@)^@)^@)^@@@@@^@)^@)^@)@@@^@)^@)^@)^@)^@)^@@WG )@@G@@^@)^@)^@)^@)^@@@@@F8@@@@F8@@@@^@@@@@^@@@@@^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@WH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WI )@@G@@@@@@@@E[MD9ADDGC*)AC,AC)^@)E(3G*)^K_^K)G1\IK)H[>H-0^[\H0)GC)IT9IT4G(!^[6WJ )@@G@@GD2HD-GL?G*,^@)^@)^@)^@)^@)^@)^@)^[NGT2G(>H0)AK)H9&^@7 *! *! *! *! *! *!WK )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!WL )@@G@@ *! *! *! *! *! *! *! *! *! *!^-#H9!I[?G(4HD\H13^@)BK)^@)^@)^@, 0, 0, 0,WM )@@G@@ 0, 0, 0, 0, 0, 0, 0)E-ME( ^[\IK)C1[D-NC*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)WN )@@G@@^@)^@)^-#H9,G1?HDG9-H))^@)^@)^@)^@)^@)^@)^-#I(2IL>H14CT\H-5H(,BK)^@)^@, 0, 0, 0, 0,WR )@@G@@ 0, 0, 0, 0, 0, 0, 0)GD,^[(H14G($G(2^[&IL\H*)AC)I-\^@2A*6^@)^@)^@)^@)^@)WS )@@G@@^@)^@)^-#I(2IL>H14DD!GD$G*)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) 0, 0)I-*WT )@@G@@G*)GT5IL2G(,I))H-(H1>^[,I(!GL>IK)^@)^@)^@)^@)^@)^@)^@)^-#I(2IT\IL#H9?I(!WU )@@G@@H0)BK)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)I-*G*)GT5IL3H92^93^[H-=^[(G->H14HD&HD>IK)^@)^@)WX )@@G@@^@)^@)^-#I(2IT\ILMH97^@)^@)BK)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)I-*WY )@@G@@G*)GT5IL3H92^93^[2H97^[0H93HD4HD\H0)^@)^@)^@)^@)^@)^@)^-^GD4GDHGD,GD$G(2WZ )@@G@@^@)BK)^@)^@)^@)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0)E(IETKC(#DDADD C)?^[ND[[EL XA )@@G@@C))H92^[MC-HES) [DE[A 9NEDG C)^-^GD4G*)^@)^@)^@)^@)BK)^@)^@)^@)^@) 0, 0,XB )@@G@@ 0, 0, 0, 0, 0, 0, 0)I-*G*)GT5IL2G(,I))G--I->^@)^@)^@)^@)^@)^@)^@)^@)^@)XC )@@G@@^@)^@)^-^G(?HD!HD4G(2CT*GD2BK)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)H(\XD )@@G@@IT4^[G9-H))^@)^@)^@)^@)^@)^@)^-^G(6HDI1(XF )@@G@@GT>^[,GD!G*)^@)^@)^@)^@)^@)^@)^-^HD3I[?GD9^@)^@)^@)BK)^@)^@)^@)^@) 0, 0,XG )@@G@@ 0, 0, 0, 0, 0, 0, 0)D1PD(]C(M^[\IK)D1JD1PD(]C(M^@)^@)^@)^@)^@)^@)^@)^@)XH )@@G@@^@)^@)^- H1=CT\H-5H(,^@)^@)BK)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)G(,XI )@@G@@G-(H1$^[IK)G(8GT>I[4^@=E-[CL#D[[EK)^@)^@)XM )@@G@@^@)^@)^- J[4G(,G-GHD,G(3^@)BK)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)AC?XN )@@G@@^@2 ))AS)H92^@4^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)XO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)XP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)XQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)XR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)XS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)XT )@@G@@^@)^@)^@)F[HDDO^[4H8)IT>I))I1-H-5G(3 0)^@)^@)^@)^[AAC.E[-G9>^[AH92I9-IL=XU )@@G@@^@)C02B(]GD@@ @K@^@@@@C@@+]@@@@C@@C@K@@@#YP )@@G@@@K[@@C@8L@@#@@@@]H@@E@K@@@@@@E@@+@@@@@E@@E@S@@@ @C[@@C[@L@@^@@@@]-@@J@K@YQ )@@G@@^@@@@ @@+]@@@@ @@ @K@@@C@K[@@C[CL@@ @@@@]5@@O@K@@@@@@]@@+@@@@@]@@]@C@@@EYR )@@G@@@C[@@C[KL@@A@@@@#D@@T@K@^@@@[@@@+]@@@[@@[@]@@@@F@K[@@C[SL@@B@@@@#X@@Y@K@YS )@@G@@@@@@@]@@+@@@@@]@@]@C@@@V@C[@@C[)L@@C@@@@#1@@<@K@^@@@[@@@+]@@@[@@[@]@@@@WYT )@@G@@@C[@@C[*L@@D@@@@^ @@*@K@^@@@[@@@+]@@@[@@[@]@@@@?@C[@@C[0L@@E@@@@^T@@!@K@YU )@@G@@^@@@[@@@+]@@@[@@[@]@@@@/@C[@@C[8L@@F@@@@^!@@2@K@^@@@[@@@+]@@@[@@[@]@@@[GYV )@@G@@@C[@@C]@L@@G@@@@ [@@7@K@^@@@[@@@+]@@@[@@[@]@@@[W@C[@@C]CL@@H@@@@ P@@/@K@YW )@@G@@^@@@[@@@+]@@@[@@[@]@@@[?@C[@@C]KL@@I@@@@ (@[[@K@^@@@[@@@+]@@@[@@[@]@@@[/YX )@@G@@@C[@@C]SL@@J@@@@ .@[A@K@^@@@[@@@+]@@@[@@[@]@@@]G@C[@@C]8L@@K@@@@BH@[F@K@YY )@@G@@^@@@@[@@+]@@@@[@@[@C@@]W_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)YZ )@@G@@@@@WR[@[@@@K#@@#[K@)[@@@@[S@]X@@@@@@@*L@@]@@@@@@E1^C(RD-ID1IFC@@@@@@@@@@ZA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]@SL@@@@@[E1^C(TD1ID1I@@[@*L@@@@@]E1PC9TZB )@@G@@D1ID1I@@]@8L@@@@@#E1^C(TD1ID1I@@[[@L@@@@@^E1PC9TD1ID1I@@][CL@@@@@ E1^C(TZC )@@G@@D1ID1I@@[[KL@@@@@AE1PC9TD1ID1I@@][SL@@@@@BE1^C(TD1ID1I@@[[)L@@@@@CE1PC9TZD )@@G@@D1ID1I@@[[*L@@@@@DE1PC9TD1ID1I@@[[0L@@@@@EE1PC9TD1ID1I@@[[8L@@@@@FE1PC9TZE )@@G@@D1ID1I@@[]@L@@@@@GE1PC9TD1ID1I@@[]CL@@@@@HE1PC9TD1ID1I@@[]KL@@@@@IE1PC9TZF )@@G@@D1ID1I@@[]SL@@@@@JE1PC9TD1ID1I@@[]8L@@@@@KE1PELTD1ID1I^@)^@)^@)^@)^@)@@@ZG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@@@@@^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)ZH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZI )@@G@@^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ZS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@@@@@@@@@@@@@@B1ZT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZU )@@G@@@@@@@@@@@@@@@@@@@@E[MD9ADDGC*)AC,AC)^@)E(3G*)^K_^K)G1\IK)H[>H-0^[\H0)GC)ZV )@@G@@IT9IT4G(!^[6GD2HD-GL?G*,^@)^@)^@)^@)^@)^@)^@)^[NGT2G(>H0)AS)H9&^@7 *! *!ZW )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!ZX )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *!^-AHD?G(GG(,G94H@)^@)BK)^@)^@)ZY )@@G@@^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0)I-*G*)^S)H9&^[?HD,G(3^[(H0)I-*G*)GT5IL2ZZ )@@G@@G(,I))ETKCD#C*)^@)^-AHD?G(,GD!G*)^@)^@)BK) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,AA )@@G@@ 0, 0, 0)IT>G*)ETG(,^@1^[\G0)A8)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AH92AB )@@G@@H*)^@)^@)^@)^@)BK)^@)^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0)E-ME(ICT[E- ^[\AC )@@G@@IK)C(SE- D1^^@) [DE[A 9NEDG C)^@)^@)^@)^@)^-AH92H(^HD2G(G*)ETG(,^@1^[\G0)A8)^@)^@)^@)^@)AE )@@G@@^@)^@)^@)^@)^@)^@)^-AH92H(NI--I-5IS)^@)BK)^@)^@)^@)^@)^@) 0, 0, 0, 0, 0,AF )@@G@@ 0, 0, 0)E1[D-DC)?^[NE(KE[MC(NET C)?^[RCDMD1DD1B^[\IK)C(MELJEK)^@)^-AI(?AG )@@G@@H-NGT2G(>H0)^@)BK)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)E-ME( ^[\IK)C1[AH )@@G@@D-NC*)^@) [7H[>H0)E[MD9ADDGC*)G(,G-3 C)^@)^-AI(,GT4HD\H1FG(9^@)BK)^@) 0,AI )@@G@@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)I-*G*)H--IT4^[&I(,GT4HD\H1:G(9^[>H14G(2AJ )@@G@@G(=^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AC)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,AL )@@G@@GT4HD\H1FG(9AK)BK)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)C15H1AM )@@G@@JC2^[(IS)GD?I9-JD3^[MC(AEL ETC^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AS)BK)^@)^@)AN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AO )@@G@@^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9A))BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,AQ )@@G@@GT4HD\H1FG(9A*)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9A0)BK)^@)^@)AS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AT )@@G@@^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9A8)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,AV )@@G@@GT4HD\H1FG(9B@)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9BC)BK)^@)^@)AX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AY )@@G@@^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AC0BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)AZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BD )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BE )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)BF )@@G@@^@)^@)^@)^@)^@)^@)^@)F[HDDO^[4H8)IT>I))I1-H-5G(3 0)^@)^@)^@)^[AAC.E[-G9>BG )@@G@@^[AH92I9-IL=^@)C02B(]GD@@E@K@CA )@@G@@^@@@[@@@+]@@@[@@[@]@@@@)@C[@@C@0L@@^@@@@[9@@J@K@^@@@[@@@+]@@@[@@[@]@@@@0CB )@@G@@@C[@@C@8L@@ @@@@]H@@O@K@^@@@[@@@+]@@@[@@[@]@@@[@@C[@@C[@L@@A@@@@]-@@T@K@CC )@@G@@^@@@[@@@+]@@@[@@[@]@@@[K@C[@@C[CL@@B@@@@]5@@Y@K@^@@@[@@@+]@@@[@@[@]@@@[)CD )@@G@@@C[@@C[KL@@C@@@@#D@@<@K@^@@@[@@@+]@@@[@@[@]@@@[0@C[@@C[SL@@D@@@@#X@@*@K@CE )@@G@@^@@@[@@@+]@@@[@@[@]@@@]@@C[@@C[)L@@E@@@@#1@@!@K@^@@@[@@@+]@@@[@@[@]@@@]KCF )@@G@@@C[@@C[*L@@F@@@@^ @@2@K@^@@@[@@@+]@@@[@@[@]@@@])@C[@@C[0L@@G@@@@^T@@7@K@CG )@@G@@^@@@[@@@+]@@@[@@[@]@@@]0@C[@@C[8L@@H@@@@^!@@/@K@^@@@[@@@+]@@@[@@[@]@@@#@CH )@@G@@@C[@@C]@L@@I@@@@ [@[[@K@^@@@[@@@+]@@@[@@[@]@@@#K@C[@@C]CL@@J@@@@ P@[A@K@CI )@@G@@^@@@[@@@+]@@@[@@[@]@@@#)@C[@@C]KL@@K@@@@ (@[F@K@^@@@[@@@+]@@@[@@[@]@@@#0CJ )@@G@@@C[@@C]SL@@L@@@@ .@[K@K@^@@@[@@@+]@@@[@@[@]@@@^@@C[@@C]8L@@M@@@@BH@[P@K@CK )@@G@@^@@@@[@@+]@@@@[@@[@C@@^K_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)CL )@@G@@@@@:E#@[C@@M#@@#[K@)[@@@@[)@^L@@@@@@@*L@@#@@@@@@E1^C(RD-ID1IFC@@@@@@@@@@CM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@SL@@@@@[E1PC9TD1ID1I@@[@)L@@@@@]E1PC9TCN )@@G@@D1ID1I@@[@*L@@@@@#E1PC9TD1ID1I@@[@0L@@@@@^E1PC9TD1ID1I@@[@8L@@@@@ E1PC9TCO )@@G@@D1ID1I@@[[@L@@@@@AE1PC9TD1ID1I@@[[CL@@@@@BE1PC9TD1ID1I@@[[KL@@@@@CE1PC9TCP )@@G@@D1ID1I@@[[SL@@@@@DE1PC9TD1ID1I@@[[)L@@@@@EE1PC9TD1ID1I@@[[*L@@@@@FE1PC9TCQ )@@G@@D1ID1I@@[[0L@@@@@GE1PC9TD1ID1I@@[[8L@@@@@HE1PC9TD1ID1I@@[]@L@@@@@IE1PC9TCR )@@G@@D1ID1I@@[]CL@@@@@JE1PC9TD1ID1I@@[]KL@@@@@KE1PC9TD1ID1I@@[]SL@@@@@LE1PC9TCS )@@G@@D1ID1I@@[]8L@@@@@ME1PELTD1ID1I^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)CZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DC )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DD )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DE )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DM )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DO )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DP )@@G@@^@)^@)^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E[MD9ADDGC*)AC,AC)^@)E(3G*)^K_DR )@@G@@^K)G1\IK)H[>H-0^[\H0)GC)IT9IT4G(!^[6GD2HD-GL?G*,^@)^@)^@)^@)^@)^@)^@)^[NDS )@@G@@GT2G(>H0)A))H9&^@7 *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!DT )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!^-AI(,DU )@@G@@GT4HD\H1FG(9AC1BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AC2BK)^@)^@)DW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DX )@@G@@^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AC3BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)DY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,DZ )@@G@@GT4HD\H1FG(9AC4BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AC5BK)^@)^@)EB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EC )@@G@@^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AC6BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ED )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,EE )@@G@@GT4HD\H1FG(9AC7BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AC8BK)^@)^@)EG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EH )@@G@@^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AC9BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,EJ )@@G@@GT4HD\H1FG(9AK0BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AK1BK)^@)^@)EL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EM )@@G@@^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AK2BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EN )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,EO )@@G@@GT4HD\H1FG(9AK3BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EP )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AK4BK)^@)^@)EQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ER )@@G@@^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AK5BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)ES )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,ET )@@G@@GT4HD\H1FG(9AK6BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AK7BK)^@)^@)EV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EX )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EY )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)EZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FA )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)FB )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)F[HDDO^[4H8)IT>I))I1-H-5G(3FC )@@G@@ 0)^@)^@)^@)^[AAC.E[-G9>^[AH92I9-IL=^@)C02B(]GD@@E@K@^@@@[@@@+]@@@[@@[@]@@@@)FZ )@@G@@@C[@@C@0L@@^@@@@[9@@J@K@^@@@@B@@+]@@@@B@@B@K@@@0@C[@@C[@L@@ @@@@]-@@O@K@GA )@@G@@^@@@@C@@+]@@@@C@@C@K@@@2@C[@@C[CL@@A@@@@]5@@T@K@^@@@@P@@+]@@@@P@@P@0@@@4GB )@@G@@@C[@@C[KL@@B@@@@#D@@Y@K@^@@@@[@@+]@@@@[@@[@C@@@'@K[@@C[SL@@C@@@@#X@@<@K@GC )@@G@@@@@@@A@@+@@@@@A@@A@K@@@;@C[@@C[)L@@D@@@@#1@@*@K@^@@@@G@@+]@@@@G@@G@S@@@.GD )@@G@@@K[@@C[0L@@E@@@@^T@@!@K@@@@@@T@@+@@@@@T@@T@8@@[@@C[@@C[8L@@F@@@@^!@@2@K@GE )@@G@@^@@@@]@@+]@@@@]@@]@C@@[B@C[@@C]@L@@G@@@@ [@@7@K@^@@@@]@@+]@@@@]@@]@C@@[CGF )@@G@@@K[@@C]CL@@H@@@@ P@@/@K@@@@@[@@@+@@@@[@@[@]@@@[D@C[@@C]KL@@I@@@@ (@[[@K@GG )@@G@@^@@@@B@@+]@@@@B@@B@K@@[T@K[@@C]SL@@J@@@@ .@[A@K@@@@@@P@@+@@@@@P@@P@0@@[VGH )@@G@@@C[@@C]8L@@K@@@@BH@[F@K@^@@@@[@@+]@@@@[@@[@C@@[-_____"@@@@@@@@@@@@@@@@@@GI )@@G@@@@@@@@A@0A@0C1JELH^@)^@)@@@O()@[@@@K#@@#[K@)[@@@@[S@[+@@@@@@@*L@@#@@@@@@GJ )@@G@@E1^C(RD-ID1IFC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@SL@@@@@[E1PC9TGK )@@G@@D1ID1I@@[@)L@@@@@]E1PC9TD1ID1I@@[@*L@@@@@#E1PC9TD1ID1I@@[@0L@@@@@^E1PC9TGL )@@G@@D1ID1I@@[[@L@@@@@ E1PC9TD1ID1I@@[[CL@@@@@AE1PC9TD1ID1I@@[[KL@@@@@BE1PC9TGM )@@G@@D1ID1I@@][SL@@@@@CE1^C(TD1ID1I@@[[)L@@@@@DE1PC9TD1ID1I@@][0L@@@@@EE1^C(TGN )@@G@@D1ID1I@@[[8L@@@@@FE1PC9TD1ID1I@@[]@L@@@@@GE1PC9TD1ID1I@@]]CL@@@@@HE1^C(TGO )@@G@@D1ID1I@@[]KL@@@@@IE1PC9TD1ID1I@@]]SL@@@@@JE1^C(TD1ID1I@@[]8L@@@@@KE1PELTGP )@@G@@D1ID1I^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)GQ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)GR )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)GS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)GT )@@G@@^@)^@)^@)^@)^@)^@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@@@@^@@@@@GU )@@G@@^@)^@)^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@@@@GV )@@G@@^@)@@@^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)GW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@^@)^@)^@)^@)^@)^@)^@)^@)GX )@@G@@^@)^@)^@@@@@^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E[MD9ADDGC*)AC,AC)^@)E(3GZ )@@G@@G*)^K_^K)G1\IK)H[>H-0^[\H0)GC)IT9IT4G(!^[6GD2HD-GL?G*,^@)^@)^@)^@)^@)^@)HA )@@G@@^@)^[NGT2G(>H0)A*)H9&^@7 *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!HB )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!HC )@@G@@^-AI(,GT4HD\H1FG(9AK8BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)HD )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AK9BK)HE )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)HF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-AI(,GT4HD\H1FG(9AS0BK)^@)^@)^@)^@)^@)^@)^@)^@)HG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)HH )@@G@@^-BG(,E->J[4CT-IT>^@)BK)^@)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0)E(KE[ EK?HI )@@G@@^[GD9RC(M^[\IK)DDIDDODD[D))^@)^@)^@)^@)^@)^@)^@)^-CH9!G(^HD2G(G*)ETG(,^@1^[\G0)A8)^@)^@)HK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-DH(-G9>C1\IL!GD4^@)BK)^@)^@)^@)^@) 0, 0, 0, 0,HL )@@G@@ 0, 0, 0, 0, 0)E-ME(ICT[E- ))C(SE- D1^^[\IK)E9MCDK^@)^@)^@)^@)^@)^@)^@)HM )@@G@@^-DH1H(>H14^@)^@)BK)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@, 0, 0) @,A@0A@0HN )@@G@@A@0A@0A@1 )9BC9BC9BC9BC9BC,BC9BC9BC9BC9BC9 C)^@)^-DH1=G(,I))^@)^@)^@)BK)HO )@@G@@^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)AC?^@2 ))AS?^@4 ))A*)H92^@6^@)^@)HP )@@G@@ [DE[A 9NEDG C)^@)^@)^@)^-EH9+DD^^@)^@)^@)^@)BK)^@)^@)^@) 0, 0, 0, 0, 0,HQ )@@G@@ 0, 0, 0, 0, 0)JD\I(2^[JES)AC1A@0^[2I(,HD=^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)HR )@@G@@^-EI(!I[3^@)^@)^@)^@)BK)^@)^@)^@)^@)^@)^@) 0, 0, 0, 0, 0, 0, 0)GD,^[(H14HS )@@G@@G($G(2^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-GGD,G95GD$G*)^@)^@)BK)HT )@@G@@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)IT>G*)ETG(,^@1^[\G0)A8)^@)^@)HU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-GGD3I-DH10I(4^@)^@)BK)^@)^@)^@)^@)^@)^@)^@)^@)HV )@@G@@^@)^@)^@)^@)^@)I-*G*)H--IT4^[H14G(2G(=^@)^@)^@)^@)^@)HW )@@G@@^-GHD,G(AIL-GT4HD\H0)BK)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)A@)I-\^@1HX )@@G@@A@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-GHD,G(DH14G($G(2^@)BK)HY )@@G@@^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)AC)I-\^@1A@)^@)^@)^@)^@)^@)^@)^@)HZ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^-GH9^@)^@)BK)ID )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@, 0, 0)I-*G*)H-(H1>^@<^[\G0)I-*G*)H--IT4IE )@@G@@^[#D[[D1BC*\D-JCT[E- ^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)IF )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)IG )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)IH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)II )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)IJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)F[HDDO^[4H8)IT>I))I1-IK )@@G@@H-5G(3 0)^@)^@)^@)^[AAC.E[-G9>^[AH92I9-IL=^@)C02B(]GD@@E@K@^@@@@[@@+]@@@@[@@[@C@@@]JF )@@G@@@C[@@C@0M@@^@@[@[9@@J@K@^@@@@C@@+]@@@@C@@C@K@@@#@C[@@C@8M@@ @@[@]H@@O@K@JG )@@G@@^@@@@A@@+]@@@@A@@A@K@@@ @C[@@C[@M@@A@@[@]-@@T@K@^@@@@#@@+]@@@@#@@#@C@@@BJH )@@G@@@C[@@C[CM@@B@@[@]5@@Y@K@^@@@@#@@+]@@@@#@@#@C@@@C@C[@@C[KM@@C@@[@#D@@<@K@JI )@@G@@^@@@@ @@+]@@@@ @@ @K@@@D@C[@@C[SM@@D@@[@#X@@*@K@^@@@@]@@+]@@@@]@@]@C@@@FJJ )@@G@@@K[@@C[)M@@E@@[@#1@@!@K@@@@@@P@@+@@@@@P@@P@0@@@G@C[@@C[*M@@F@@[@^ @@2@K@JK )@@G@@^@@@@ @@+]@@@@ @@ @K@@@M@C[@@C[0M@@G@@[@^T@@7@K@^@@@@ @@+]@@@@ @@ @K@@@OJL )@@G@@@K[@@C[8M@@H@@[@^!@@/@K@@@@@@ @@+@@@@@ @@ @K@@@Q@C[@@C]@M@@I@@[@ [@[[@K@JM )@@G@@^@@@@ @@+]@@@@ @@ @K@@@S@C[@@C]CM@@J@@[@ P@[A@K@^@@@@B@@+]@@@@B@@B@K@@@UJN )@@G@@@C[@@C]KM@@K@@[@ (@[F@K@^@@@@#@@+]@@@@#@@#@C@@@W@C[@@C]SM@@L@@[@ .@[K@K@JO )@@G@@^@@@@[@@+]@@@@[@@[@C@@@X@C[@@C]8M@@M@@[@BH@[P@K@^@@@@[@@+]@@@@[@@[@C@@@YJP )@@G@@_____"@@@@@@@@@@@@@@@@@@@@@@@@A@0A@0C1JELH^@)^@)@@@P*8@[C@@M#@@#[K@)[@@@JQ )@@G@@@[)@@Z@@@@@@[@M@@A@@@@@@E1^C(RD-ID1IFC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JR )@@G@@@@@@@@@@[@SM@@@@@[E1PC9TD1ID1I@@[@)M@@@@@]E1PC9TD1ID1I@@[@*M@@@@@#E1PC9TJS )@@G@@D1ID1I@@[@0M@@@@@^E1PC9TD1ID1I@@[@8M@@@@@ E1PC9TD1ID1I@@[[@M@@@@@AE1PC9TJT )@@G@@D1ID1I@@[[CM@@@@@BE1PC9TD1ID1I@@[[KM@@@@@CE1PC9TD1ID1I@@[[SM@@@@@DE1PC9TJU )@@G@@D1ID1I@@][)M@@@@@EE1^C(TD1ID1I@@[[*M@@@@@FE1PC9TD1ID1I@@[[0M@@@@@GE1PC9TJV )@@G@@D1ID1I@@][8M@@@@@HE1^C(TD1ID1I@@[]@M@@@@@IE1PC9TD1ID1I@@[]CM@@@@@JE1PC9TJW )@@G@@D1ID1I@@[]KM@@@@@KE1PC9TD1ID1I@@[]SM@@@@@LE1PC9TD1ID1I@@[]8M@@@@@ME1PELTJX )@@G@@D1ID1I^@)@@@^@@@@@^@@@@@^@)^@)^@)^@)^@)^@)^@)@@@^@)^@@^@)^@@^@)^@)^@@@@@JY )@@G@@^@)@@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@@@@^@)^@)^@@@@@^@)^@)^@@@@@^@)^@)JZ )@@G@@^@@@@@^@)^@)^@@@@@^@)^@)^@)^@@^@)^@@^@@@@@^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@KA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KB )@@G@@@@@@@@E[MD9ADDGC*)AC,AC)^@)E(3G*)^K_^K)G1\IK)H[>H-0^[\H0)GC)IT9IT4G(!^[6KC )@@G@@GD2HD-GL?G*,^@)^@)^@)^@)^@)^@)^@)^[NGT2G(>H0)A0)H9&^@7 *! *! *! *! *! *!KD )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!KE )@@G@@ *! *! *! *! *! *! *! *! *! *!^-HGD8D[>GD=G(2D-(H1>IS'^@)^@, 0, 0, 0, 0,KF )@@G@@ 0, 0, 0, 0, 0, 0, 0)GD,^[(H14G($G(2^[&IL\H*)A@)GD,G))AK0^@)^@)^@) [NEDGKG )@@G@@ C)^@)^-HI(?I-(I[?G(#H[-IK)^@'^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)H(\KH )@@G@@IT4^[G9-H))^@)^@)^@)^@)^@)^@)^-JH(,HD#H[-IK)^@)KI )@@G@@^@)^@'^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)H(\IT4^[G9-H))^@)^@)^@)^@)^@)^@)^-JI(4I[5I))^@)^@)^@)^@'^@)^@)^@)^@)^@, 0,KK )@@G@@ 0, 0, 0, 0, 0, 0, 0)CLMDD C0?^[#D9HE[MC(NES)H92^[NCT[D- ^@)^@)^@)^@)^@)KL )@@G@@^@)^@)^-KGD$G(#GD?H))^@)^@)^@'^@)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0)CL KM )@@G@@C1JEL ))CDAE- EK)H92^[]D9OD@)^@)^@)^@)^@)^@)^@)^@)^@)^-KGD$G(GG(,G94H@)KN )@@G@@^@)^@'^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)GD,^[(H14G($G(2^[&IL\H*)AC)KO )@@G@@I-\^@2A*5^@)^@)^@)^@)^@)^@)^@)^-KGD$G(RHD=I-*^@)^@)^@'^@)^@) 0, 0, 0, 0,KP )@@G@@ 0, 0, 0, 0, 0, 0, 0)GD,^[(H14G($G(2^[&IL\H*)AK)I-\^@1AS3^@)^@)^@)^@)^@)KQ )@@G@@^@)^@)^-KGD$HD,G8)^@)^@)^@)^@'^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)E-MKR )@@G@@E( ^[\IK)C1[D-NC*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-KHDD-\GS)KS )@@G@@^@)^@'^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)A@)H92^[-H0)HD,I->G9>IK)G12KT )@@G@@H9!^@2AC)I-\^@5AC) [#D9]C(^E)(^-KIL>I1(H95ITDH(-G9>^@'^@)^@)^@)^@)^@)^@)KU )@@G@@^@)^@)^@)^@)^@) 0, 0)I-*G*)I1-H-5G*)H9&^[4H[>^[?GD3I))^-#I(2IL>H14DD!GD$KV )@@G@@G*)^@)^-KIL\GT^G(+I($^@)^@)^@'^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)E-MKW )@@G@@E( ^[\IK)C1[D-NC*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-KIL\GTGG(6G(?^@)KX )@@G@@^@)^@'^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)I-*G*)H15H(+G(2^[\G0)H1>IT4KY )@@G@@G(=^[0IL\GT>G-5IL>IS)^@)^@)^@)^-KIL\GTDG))^@)^@)^@)^@'^@)^@)^@) 0, 0, 0,KZ )@@G@@ 0, 0, 0, 0, 0, 0, 0)E-ME( ^[\IK)C1[D-NC*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LA )@@G@@^@)^@)^-MG(-G-JH1?JC)^@)^@)^@'^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)E-MLB )@@G@@E( ^[\IK)C1[D-NC*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-MG(-G-NGT2G(>H0)LC )@@G@@^@)^@'^@)^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0)C1PD-G^[\IK)E[[ELODD[D))^@)LD )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-MG(G9>IK)G12H9!^@5^[4H8)A*0A@)^@)^@)LF )@@G@@^@)^@)^-MG(3I[\H13G(GHD,G(3^@'^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)GD,LG )@@G@@^[(H14G($G(2^[+G(4I9>G(,^@1^[-H1=^@2AC)^@) [!H92G*(^@)^@)^@)^@)^@)^@)^@)LH )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LI )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LJ )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LK )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LL )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)LM )@@G@@^@)^@)^@)^[SD(DE))I-\^[3G(4^[6GD?I(>IS,^@)^@)^@)^[AAC.E[-G9>^[AH92I9-IL=LN )@@G@@^@)C02B(]GD@@E@K@@@@@@A@@+@@@@@A@@A@K@@@C@C[@@C@0M@@^@@[@[9@@J@K@MJ )@@G@@^@@@@B@@+]@@@@B@@B@K@@@E@K[@@C@8M@@ @@[@]H@@O@K@@@@@@A@@+@@@@@A@@A@K@@@GMK )@@G@@@K[@@C[@M@@A@@[@]-@@T@K@@@@@@#@@+@@@@@#@@#@C@@@I@K[@@C[CM@@B@@[@]5@@Y@K@ML )@@G@@@@@@@D@@+@@@@@D@@D@S@@@J@C[@@C[KM@@C@@[@#D@@<@K@^@@@@[@@+]@@@@[@@[@C@@@MMM )@@G@@@K[@@C[SN@@D@@]@#X@@*@K@@@@@@]@@+@@@@@]@@]@C@@@N@K[@@C[SQ@@E@@[@#Y@@!@K@MN )@@G@@@@@@@]@@+@@@@@]@@]@C@@@O@K[@@C[ST@@F@@@@#Z@@2@K@@@@@@]@@+@@@@@]@@]@C@@@PMO )@@G@@@K[@@C[SW@@G@@#@#Z@@7@K@@@@@@]@@+@@@@@]@@]@C@@@Q@K[@@C[SZ@@H@@]@#)@@/@K@MP )@@G@@@@@@@]@@+@@@@@]@@]@C@@@R@K[@@C[S+@@I@@[@#-@[[@K@@@@@@]@@+@@@@@]@@]@C@@@SMQ )@@G@@@K[@@C[S>@@J@@@@#+@[A@K@@@@@@]@@+@@@@@]@@]@C@@@T@K[@@C[S*@@K@@#@#+@[F@K@MR )@@G@@@@@@@]@@+@@@@@]@@]@C@@@U@C[@@C[)M@@L@@[@#1@[K@K@^@@@@B@@+]@@@@B@@B@K@@@VMS )@@G@@@K[@@C[*M@@M@@[@^ @[P@K@@@@@@C@@+@@@@@C@@C@K@@@X@K[@@C[0M@@N@@[@^T@[U@K@MT )@@G@@@@@@@P@@+@@@@@P@@P@0@@@Z@C[@@C[8M@@O@@[@^!@[Z@K@^@@@@G@@+]@@@@G@@G@S@@@>MU )@@G@@@K[@@C]@M@@P@@[@ [@[=@K@@@@@@A@@+@@@@@A@@A@K@@@*@C[@@C]CM@@Q@@[@ P@[(@K@MV )@@G@@^@@@@D@@+]@@@@D@@D@S@@@%@C[@@C]KM@@R@@[@ (@[,@K@^@@@@#@@+]@@@@#@@#@C@@@!MW )@@G@@@C[@@C]8L@@S@@@@BH@[3@K@^@@@@[@@+]@@@@[@@[@C@@@,_____"@@@@@@@@@@@@@@@@@@MX )@@G@@@@@@@@A@0A@0C1JELH^@)^@)@@@$ZJ@[)@@S#@@#[K@)[@@@@[8@@\@@@@@@@)M@@]@@@@@@MY )@@G@@E1^C(RD-ID1IFC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]@SM@@@@@[E1^C(TMZ )@@G@@D1ID1I@@[@)M@@@@@]E1PC9TD1ID1I@@]@*M@@@@@#E1^C(TD1ID1I@@[@0M@@@@@^E1PC9TNA )@@G@@D1ID1I@@]@8M@@@@@ E1^C(TD1ID1I@@][@M@@@@@AE1^C(TD1ID1I@@][CM@@@@@BE1^C(TNB )@@G@@D1ID1I@@[[KM@@@@@CE1PC9TD1ID1I@@][SN@@@@@DE1^C9TD1ID1I@@][SQ@@@@@EE1^C9TNC )@@G@@D1ID1I@@][ST@@@@@FE1^C9TD1ID1I@@][SW@@@@@GE1^C9TD1ID1I@@][SZ@@@@@HE1^C9TND )@@G@@D1ID1I@@][S+@@@@@IE1^C9TD1ID1I@@][S>@@@@@JE1^C9TD1ID1I@@][S*@@@@@KE1^C9TNE )@@G@@D1ID1I@@[[)M@@@@@LE1PC9TD1ID1I@@][*M@@@@@ME1^C(TD1ID1I@@][0M@@@@@NE1^C(TNF )@@G@@D1ID1I@@[[8M@@@@@OE1PC9TD1ID1I@@]]@M@@@@@PE1^C(TD1ID1I@@[]CM@@@@@QE1PC9TNG )@@G@@D1ID1I@@[]KM@@@@@RE1PC9TD1ID1I@@[]8L@@@@@SE1PELTD1ID1I^@)^@)^@)^@)^@)^@)NH )@@G@@^@)^@)^@)^@)^@@@@@^@)^@)^@)^@)^@)^@)^@)@@@^@)^@)^@)^@@^@)^@)^@)@@@^@)^@@NI )@@G@@^@)^@)^@)^@)^@@@@@^@@@@@^@)@@@^@)@@@^@)@@@^@)@@@^@)@@@^@)@@@^@)@@@^@)@@@NJ )@@G@@^@)^@)^@)^@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@@@@@^@)^@)^@)^@)NK )@@G@@^@)^@)^@)^@)^@)@@@^@)^@)^@)^@)^@@@@@^@)^@@^@@@@@@@@@@@@@@@B1@@@@@@@@@@@@NL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NM )@@G@@@@@@@@E[MD9ADDGC*)AC,AC)^@)E(3G*)^K_^K)G1\IK)H[>H-0^[\H0)GC)IT9IT4G(!^[6NN )@@G@@GD2HD-GL?G*,^@)^@)^@)^@)^@)^@)^@)^[NGT2G(>H0)A8)H9&^@7 *! *! *! *! *! *!NO )@@G@@ *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *! *!NP )@@G@@ *! *! *! *! *! *! *! *! *! *!^-MG(3I(?I-3^@)^@)^@)^@'^@)^@)^@)^@)^@)^@)NQ )@@G@@^@)^@)^@)^@)^@) 0, 0,^[4H[>^@<^[\G0)H(-I-IS)H9,^[4H[>^[?GD3I))CTCCDINR )@@G@@C9 ^@)^-MG(4GD(H1KH93HD4HD\H0'^@)^@)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0,^[MNS )@@G@@C(NC(O^[\IK)E[MC(NC(ME1 ^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-MI(,D(\G->^@)^@)NT )@@G@@^@)^@'^@)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0,^[^C(HCDIC))H92^[]CDOCTC^@)NU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-NG(,G-NGT2G(>H0)^@)^@'^@)^@)^@)^@) 0, 0,NV )@@G@@ 0, 0, 0, 0, 0, 0, 0,^[AE(GD))H92^[KCDME-DCDG^@)^@)^@)^@)^@)^@)^@)^@)^@)NW )@@G@@^@)^@)^-NHD4G((G))^@)^@)^@)^@'^@)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0,^[4NX )@@G@@H[>^[3HD4G*)HD=G(,I-(G1(G(2^[&H92^[9H95IK)I->IL!HD,GD?^-NI--IL4CT\H-5H(,NY )@@G@@^@)^@'^@)^@) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,^[4H[>^[NZ )@@G@@^[?GD3I))CTCCDIC9 9GD9#CDOC*)^-NI9(I-J[>I[4^@=C(8I->H1=CT*GD2^@)^@)^@)^-OGD+IS)^@)^@)^@)OD )@@G@@^@)^@'^@*^@) ))^@?^@) ))^@?^@) ))^@?^@) ))^@(^[-^[?HD3I))H9&^[(H14G($G(2OE )@@G@@IS)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-OG(2H((H1-H-OJD0G*)^@'^@)^@)^@)^@) 0, 0,OF )@@G@@ 0, 0, 0, 0, 0, 0, 0,^[-H19^[6GD?HD=^[^E[N^[4G(2H((H1-H))I1-H-5G*)^@)^@)OG )@@G@@^@)^@)^-OHD!G*)^@)^@)^@)^@)^@'^@)^@)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0,^[4OH )@@G@@H[>^[H14^[4HD!G*)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-OH90DD!GD$G*)^@)OI )@@G@@^@)^@'^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@) 0, 0,^[4H[>^[?HD,G*)H15H(+G(2^[\OJ )@@G@@G0)I-*G*)I-\I@)H-(H1>^@)^@)^@)^-OIL-H13H--I->^@)^@)^@'^@)^@)^@)^@)^@)^@)OK )@@G@@^@, 0, 0, 0, 0, 0, 0,^[-H19^[6GD?HD=^[&H92G((G9,^[?GD,G9-I($G*)^@)^@)^@)OL )@@G@@^@)^@)^-PIT>IL(G))^@)^@)^@)^@'^@)^@)^@)^@, 0, 0, 0, 0, 0, 0, 0, 0, 0,^[9OM )@@G@@H95IK)I(3G(2HD=^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^-PIT>ILOG(8I-#GD3ON )@@G@@G*)^@'^@)^@)^@)^@)^@) 0, 0, 0, 0, 0, 0, 0, 0,^[PE[KC(M ))D-JE9 EK?^[DD1DOO )@@G@@E-DCDG^[\IK)CDNC(IE- EL C))^@)^-RGD(I-OHD!G*)^@)^@)^@'^@)^@) 0, 0, 0, 0,OP )@@G@@ 0, 0, 0, 0, 0, 0, 0,^[-H0)HD,I->G9>IK)GL>I-7G(>H0)A@)GD,G))A*1AC)^@)^@)OQ )@@G@@^@)^@)^-RH92HT^HD2G(^[NGT2G(>H0)AC)H9&^@7^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OS )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OT )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OU )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OV )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OW )@@G@@^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)^@)OX )@@G@@^@)^@)^@)F[HDDO^[4H8)IT>I))I1-H-5G(3 0)^@)^@)^@)^[AAC.E[-G9>^[AH92I9-IL=OY )@@G@@^@)C02B(]GD@@E@K@@@@@@A@@+@@@@@A@@A@K@@@C@C[@@C@0M@@^@@[@[9@@J@K@PW )@@G@@^@@@@B@@+]@@@@B@@B@K@@@E@K[@@C@8M@@ @@[@]H@@O@K@@@@@@A@@+@@@@@A@@A@K@@@GPX )@@G@@@K[@@C[@M@@A@@[@]-@@T@K@@@@@@#@@+@@@@@#@@#@C@@@I@K[@@C[CM@@B@@[@]5@@Y@K@PY )@@G@@@@@@@D@@+@@@@@D@@D@S@@@J@C[@@C[KM@@C@@[@#D@@<@K@^@@@@[@@+]@@@@[@@[@C@@@MPZ @EOF @COPY,IO TEMP.1077-002-002,1077-002-002. @FREE TEMP.