Path: utzoo!attcan!uunet!dino!ux1.cso.uiuc.edu!midway!sophist!goer From: goer@sophist.uucp (Richard Goerwitz) Newsgroups: alt.sources Subject: Jewish/Civil calendar, part 03 of 03 (again, the real part 03) Summary: Hmmm. Sorry. Message-ID: <1990Jul20.020447.6179@midway.uchicago.edu> Date: 20 Jul 90 02:04:47 GMT Sender: news@midway.uchicago.edu (News Administrator) Reply-To: goer@sophist.UUCP (Richard Goerwitz) Organization: University of Chicago Lines: 737 ---- Cut Here and unpack ---- #!/bin/sh # this is hebcalen.03 (part 3 of a multipart archive) # do not concatenate these parts, unpack them in order with /bin/sh # file cal.text continued # if test ! -r shar3_seq_.tmp; then echo "Please unpack part 1 first!" exit 1 fi (read Scheck if test "$Scheck" != 3; then echo "Please unpack part $Scheck next!" exit 1 else exit 0 fi ) < shar3_seq_.tmp || exit 1 echo "x - Continuing file cal.text" sed 's/^X//' << 'SHAR_EOF' >> cal.text && X write(repl(" ",7),"S",repl(" ",2),"M",repl(" ",2),"T",repl(" ",2),"W", X repl(" ",2),"T",repl(" ",2),"F",repl(" ",2),"\e[7mS\e[0m",repl(" ",27), X "S",repl(" ",2),"M",repl(" ",2),"T",repl(" ",2),"W", X repl(" ",2),"T",repl(" ",2),"F",repl(" ",2),"\e[7mS\e[0m") Xend X Xprocedure write_a_month() X#writes a month on the screen X header() X every 1 to 5 do X write(make_a_line()) X if jyr.day ~= 1 then X write(make_a_line()) X write() Xreturn Xend X Xprocedure status_line(a,b) X#create the status line at the bottom of screen Xlocal sline,c,d X c := cyr.yr X if (cyr.day = 1) & (cyr.mth = 1) then c -:= 1 X d := 365 X if isleap(c) then d := 366 X#if ANSI not available omit "\e[7m" and "|| "\e[0m"" X sline := ("\e[7mYear of Creation: " || a || " Days in year: " || b || X " Civil year: " || c || " Days in year: " || d || "\e[0m") Xreturn sline Xend X Xprocedure make_a_line() X#make a single line of the months Xlocal line,blanks1,blanks2,start_point,end_point,flag,fm X X#consider the first line of the month X if jyr.day = 1 then { X line := mth_table(jyr.mth,1) X#setting flag means insert civil month at end of line X flag := 1 } else X line := repl(" ",3) X#consider the case where first day of civil month is on Sunday X if (cyr.day = 1) & (current_day = 1) then flag := 1 X#space between month name and beginning of calendar X line ||:= repl(" ",2) X#measure indentation for first line X line ||:= blanks1 := repl(" ",3*(current_day-1)) X#establish start point for Hebrew loop X start_point := current_day X#establish end point for Hebrew loop and run civil loop X every end_point := start_point to 7 do { X line ||:= right(jyr.day,3) X if not j_augment() then {jyr_augment(); establish_jyr(); current_day -:= 1; if current_day = 0 then current_day := 7} X d_augment() X if jyr.day = 1 then break } X#measure indentation for last line X blanks2 := repl(" ",3*(7-end_point)) X line ||:= blanks2; line ||:= repl(" ",25); line ||:= blanks1 X every start_point to end_point do { X line ||:= right(cyr.day,3) X if (cyr.day = 1) then flag := 1 X augment()} X line ||:= blanks2 ||:= repl(" ",3) X fm := cyr.mth X if cyr.day = 1 then X if cyr.mth = 1 then fm := 12 else fm := cyr.mth - 1 X if \flag then line ||:= mth_table(fm,2) else X line ||:= repl(" ",3) Xreturn line Xend X Xprocedure mth_table(n,p) X#generates the short names of Jewish and Civil months. Get to civil side X#by adding 13 (=max no of Jewish months) Xstatic corresp Xinitial corresp := ["NIS","IYA","SIV","TAM","AV ","ELU","TIS","HES","KIS", X"TEV","SHE","ADA","AD2","JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP", X"OCT","NOV","DEC"] X if (p ~= 1) & (p ~= 2) then stop("ERROR IN MTH-TABLE") else X if p = 2 then n +:= 13 Xreturn corresp[n] Xend X Xprocedure d_augment() X#increment the day of the week X current_day +:= 1 X if current_day = 8 then current_day := 1 Xreturn Xend X Xprocedure augment() X#increments civil day, modifies month and year if necessary, stores in X#global variable cyr X if cyr.day < 28 then X cyr.day +:= 1 else X if cyr.day = 28 then { X if (cyr.mth ~= 2) | ((cyr.mth = 2) & isleap(cyr.yr)) then X cyr.day := 29 else { X cyr.mth := 3 X cyr.day := 1}} else X if cyr.day = 29 then { X if cyr.mth ~= 2 then X cyr.day := 30 else { X cyr.mth := 3 X cyr.day := 1}} else X if cyr.day = 30 then { X if is_31(cyr.mth) then X cyr.day := 31 else { X cyr.mth +:= 1 X cyr.day := 1}} else { X cyr.day := 1 X if cyr.mth ~= 12 then X cyr.mth +:= 1 else { X cyr.mth := 1 X cyr.yr +:= 1 X if cyr.yr = 0 X then cyr.yr := 1}} Xreturn Xend X Xprocedure is_31(n) X#civil months with 31 days Xreturn n = 1 | n = 3 | n = 5 | n = 7 | n = 8 | n = 10 | n = 12 Xend X Xprocedure isleap(n) X#checks for civil leap year X if n > 0 then Xreturn (n % 400 = 0) | ((n % 4 = 0) & (n % 100 ~= 0)) else Xreturn (n % 400 = -1) | ((n % 4 = -1) & (n % 100 ~= -1)) Xend X Xprocedure j_augment() X#increments jewish day. months are numbered from nisan, adar sheni is 13. X#procedure fails at elul to allow determination of type of new year X if jyr.day < 29 then X jyr.day +:= 1 else X if (jyr.day = 30) | always_29(jyr.mth) | ((jyr.mth = 8) & X (days_in_jyr % 5 ~= 0)) | ((jyr.mth = 9) & ((days_in_jyr = 353) | X (days_in_jyr = 383))) then X jyr.mth +:= jyr.day := 1 else X if jyr.mth = 6 then fail else X if ((jyr.mth = 12) & (days_in_jyr < 383)) | (jyr.mth = 13) then X jyr.mth := jyr.day := 1 else X jyr.day := 30 Xreturn Xend X Xprocedure always_29(n) X#uncomplicated jewish months with 29 days Xreturn n = 2 | n = 4 | n = 10 Xend X Xprocedure jyr_augment() X#determines the current time of lunation, using the ancient babylonian unit X#of 1/1080 of an hour. lunation of tishri determines type of year. allows X#for leap year. halaqim = parts of the hour Xlocal days, halaqim X days := current_molad.day + 4 X if days_in_jyr <= 355 then { X halaqim := current_molad.halaqim + 9516 X days := ((days +:= halaqim / 25920) % 7) X if days = 0 then days := 7 X halaqim := halaqim % 25920} else { X days +:= 1 X halaqim := current_molad.halaqim + 23269 X days := ((days +:= halaqim / 25920) % 7) X if days = 0 then days := 7 X halaqim := halaqim % 25920} X current_molad.day := days X current_molad.halaqim := halaqim X#reset the global variable which holds the current jewish date X jyr.yr +:= 1 #increment year X jyr.day := 1 X jyr.mth := 7 X establish_jyr() Xreturn Xend X Xprocedure establish_jyr() X#establish the jewish year from get_rh Xlocal res X res := get_rh(current_molad.day,current_molad.halaqim,no_lunar_yr(jyr.yr)) X days_in_jyr := res[2] X current_day := res[1] Xreturn Xend X Xprocedure isin1(i) X#the isin procedures are sets of years in the Metonic cycle Xreturn i = (1 | 4 | 7 | 9 | 12 | 15 | 18) Xend X Xprocedure isin2(i) Xreturn i = (2 | 5 | 10 | 13 | 16) Xend X Xprocedure isin3(i) Xreturn i = (3 | 6 | 8 | 11 | 14 | 17 | 0) Xend X Xprocedure isin4(i) Xreturn i = (1 | 2 | 4 | 5 | 7 | 9 | 10 | 12 | 13 | 15 | 16 | 18) Xend X Xprocedure isin5(i) Xreturn i = (1 | 4 | 9 | 12 | 15) Xend X Xprocedure isin6(i) Xreturn i = (2 | 5 | 7 | 10 | 13 | 16 | 18) Xend X Xprocedure no_lunar_yr(i) X#what year in the metonic cycle is it? Xreturn i % 19 Xend X Xprocedure get_rh(d,h,yr) X#this is the heart of the program. check the day of lunation of tishri X#and determine where breakpoint is that sets the new moon day in parts X#of the hour. return result in a list where 1 is day of rosh hashana and X#2 is length of jewish year Xlocal c,result X c := no_lunar_yr(yr) X result := list(2) X if d = 1 then { X result[1] := 2 X if (h < 9924) & isin4(c) then result[2] := 353 else X if (h < 22091) & isin3(c) then result[2] := 383 else X if (h > 9923) & (isin1(c) | isin2(c)) then result[2] := 355 else X if (h > 22090) & isin3(c) then result[2] := 385 X } else X if d = 2 then { X if ((h < 16789) & isin1(c)) | X ((h < 19440) & isin2(c)) then { X result[1] := 2 X result[2] := 355 X } else X if (h < 19440) & isin3(c) then { X result[1] := 2 X result[2] := 385 X } else X if ((h > 16788) & isin1(c)) | X ((h > 19439) & isin2(c)) then { X result[1] := 3 X result[2] := 354 X } else X if (h > 19439) & isin3(c) then { X result[1] := 3 X result[2] := 384 X } X } else X if d = 3 then { X if (h < 9924) & (isin1(c) | isin2(c)) then { X result[1] := 3 X result[2] := 354 X } else X if (h < 19440) & isin3(c) then { X result[1] := 3 X result[2] := 384 X } else X if (h > 9923) & isin4(c) then { X result[1] := 5 X result[2] := 354 X } else X if (h > 19439) & isin3(c) then { X result[1] := 5 X result[2] := 383} X } else X if d = 4 then { X result[1] := 5 X if isin4(c) then result[2] := 354 else X if h < 12575 then result[2] := 383 else X result[2] := 385 X } else X if d = 5 then { X if (h < 9924) & isin4(c) then { X result[1] := 5 X result[2] := 354} else X if (h < 19440) & isin3(c) then { X result[1] := 5 X result[2] := 385 X } else X if (9923 < h < 19440) & isin4(c) then { X result[1] := 5 X result[2] := 355 X } else X if h > 19439 then { X result[1] := 7 X if isin3(c) then result[2] := 383 else X result[2] := 353 X } X } else X if d = 6 then { X result[1] := 7 X if ((h < 408) & isin5(c)) | ((h < 9924) & isin6(c)) then X result[2] := 353 else X if ((h < 22091) & isin3(c)) then result[2] := 383 else X if ((h > 407) & isin5(c)) | ((h > 9923) & isin6(c)) then X result[2] := 355 else X if (h > 22090) & isin3(c) then result[2] := 385 X } else X if d = 7 then if (h < 19440) & (isin5(c) | isin6(c)) then { X result[1] := 7 X result[2] := 355 X } else X if (h < 19440) & isin3(c) then { X result[1] := 7 X result[2] := 385 X } else { X result[1] := 2 X if isin4(c) then X result[2] := 353 else X result[2] := 383} Xreturn result Xend X X X#If the following help file doesnt quite look right try throwing in a X#few blank lines here or there, or take them out. X#End of section one------------CUT HERE---------------------------------- X XThis program accepts a year of the Jewish calendar, for example X"5750", and produces on the screen a calendar of that year with a Xvisually equivalent civil calendar opposite it for easy conversion of Xdates. The months of the civil year are abbreviated to X XJAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC X Xand of the Jewish calendar to X XNIS IYA SIV TAM AV ELU TIS HES KIS TEV SHE ADA AD2. X XMonths are normally displayed three at a time. You call up the next Xthree by hitting return. At the end of the year you can indicate if Xyou wish the program to conclude, by hitting return again. If in Xresponse to the question, Do you wish to continue? you enter "y" and Xhit return, the next year will be displayed. X XEach Jewish month has its name on the left. The corresponding secular Xdates will have the name of the month on the right, and when the month Xchanges it will be indicated on the right also. X X X X XIf you wish, you may enter a civil year in the form -70 for BCE dates Xand +70 for CE dates. The Jewish year beginning prior to Jan 1 of that Xyear will be displayed, and you can continue with the next Jewish year Xif you wish to complete the desired civil year. X XYou may enter CE or AD instead of + or BC or BCE instead of the minus Xsign if you wish. It is best to avoid spaces, so enter 1987AD, for Xexample. X XThe year 0 is not meaningful in either calendar. No date prior to 1 Xin the Jewish calendar should be entered. The program will calculate Xany future year, but will take longer for years much beyond the year X6020 in the Jewish reckoning. For example, the year 7000 will take Xthree minutes or so to appear. Earlier years should appear in a few Xseconds. X XA status line at the bottom of the screen indicates the civil and XJewish year, and the number of days in each. Jewish years may contain X354, 355, 356, 384, 385 or 386 days according to circumstances. X X X X XWhen you are familiar with this program you can enter the years you Xwish to see on the command line. For example, if you call the program X iconx calendar 5704 +1987 1BC Xyou will see in turn the Jewish year 5704, the Jewish year commencing Xin 1986 and the Jewish year commencing in 2 B.C.E. You still have the Xoption of seeing the years subsequent to these years if you wish. Just Xenter "y" when asked if you want to continue. When you enter "n", you Xwill get the next year of your list. X XAll civil dates are according to the Gregorian Calendar which first Xcame into use in 1582 and was accepted in different places at Xdifferent times. Prior to that date the Julian calendar was in use. At Xthe present time the Julian calendar is 13 days behind the Gregorian XCalendar, so that March 15 1917 in our reckoning is March 2 in the XJulian Calendar. The following table shows the number of days that Xmust be subtracted from the Gregorian date given here to find the Julian Xdate. In the early centuries of this table and before the calendar was Xintercalated erratically, so a simple subtraction is not possible. Note that Xthe change in the number to subtract applies from March 1 in the century Xyear, since in the Julian Calendar that will be February 29 except in years Xdivisible by 400 which are leap years in the Gregorian calendar also. X XCentury # to subtract Century # to subtract X 21 13 11 6 X 20 13 10 5 X 19 12 9 4 X 18 11 8 4 X 17 10 7 3 X 16 10 6 2 X 15 9 5 1 X 14 8 4 1 X 13 7 3 0 X 12 7 2 -1 X 1 -2 X#End of section two-----------CUT HERE---------------------------------- X3%8255%8%20%-3762%384 X4%23479%9%8%-3742%354 X4%24950%8%28%-3722%354 X5%501%8%17%-3702%385 X6%15725%9%6%-3682%355 X6%17196%8%26%-3662%355 X6%18667%8%15%-3642%383 X1%7971%9%3%-3622%353 X1%9442%8%23%-3602%383 X2%24666%9%10%-3582%354 X3%217%8%30%-3562%354 X3%1688%8%19%-3542%384 X4%16912%9%7%-3522%354 X4%18383%8%27%-3502%354 X4%19854%8%17%-3482%385 X6%9158%9%5%-3462%355 X6%10629%8%25%-3442%355 X6%12100%8%14%-3422%383 X1%1404%9%2%-3402%353 X1%2875%8%23%-3382%383 X2%18099%9%10%-3362%354 X2%19570%8%30%-3342%354 X2%21041%8%19%-3322%384 X4%10345%9%7%-3302%354 X4%11816%8%28%-3282%354 X4%13287%8%17%-3262%385 X6%2591%9%5%-3242%353 X6%4062%8%25%-3222%383 X7%19286%9%11%-3202%355 X7%20757%9%2%-3182%353 X7%22228%8%22%-3162%383 X2%11532%9%8%-3142%355 X2%13003%8%28%-3122%355 X2%14474%8%17%-3102%385 X4%3778%9%7%-3082%354 X4%5249%8%27%-3062%354 X4%6720%8%16%-3042%383 X5%21944%9%4%-3022%353 X5%23415%8%24%-3002%383 X7%12719%9%11%-2982%355 X7%14190%8%31%-2962%355 X7%15661%8%20%-2942%385 X2%4965%9%8%-2922%355 X2%6436%8%28%-2902%355 X2%7907%8%18%-2882%385 X3%23131%9%7%-2862%354 X3%24602%8%27%-2842%383 X5%13906%9%13%-2822%355 X5%15377%9%2%-2802%355 X5%16848%8%22%-2782%385 X7%6152%9%10%-2762%355 X7%7623%8%30%-2742%355 X7%9094%8%19%-2722%385 X1%24318%9%7%-2702%355 X1%25789%8%28%-2682%355 X2%1340%8%17%-2662%385 X3%16564%9%6%-2642%354 X3%18035%8%24%-2622%384 X5%7339%9%12%-2602%354 X5%8810%9%2%-2582%354 X5%10281%8%22%-2562%385 X6%25505%9%10%-2542%355 X7%1056%8%30%-2522%355 X7%2527%8%19%-2502%385 X1%17751%9%8%-2482%355 X1%19222%8%28%-2462%383 X3%8526%9%15%-2442%354 X3%9997%9%6%-2422%354 X3%11468%8%24%-2402%384 X5%772%9%12%-2382%354 X5%2243%9%1%-2362%354 X5%3714%8%21%-2342%385 X6%18938%9%9%-2322%355 X6%20409%8%29%-2302%355 X6%21880%8%19%-2282%383 X1%11184%9%7%-2262%355 X1%12655%8%27%-2242%383 X3%1959%9%14%-2222%354 X3%3430%9%3%-2202%354 X3%4901%8%24%-2182%384 X4%20125%9%12%-2162%354 X4%21596%9%1%-2142%354 X4%23067%8%21%-2122%385 X6%12371%9%9%-2102%355 X6%13842%8%30%-2082%383 X1%3146%9%18%-2062%353 X1%4617%9%7%-2042%353 X1%6088%8%27%-2022%383 X2%21312%9%14%-2002%354 X2%22783%9%3%-1982%354 X2%24254%8%23%-1962%384 X4%13558%9%11%-1942%354 X4%15029%8%31%-1922%354 X4%16500%8%20%-1902%385 X6%5804%9%9%-1882%353 X6%7275%8%29%-1862%383 X7%22499%9%17%-1842%353 X7%23970%9%6%-1822%353 X7%25441%8%26%-1802%383 X2%14745%9%13%-1782%355 X2%16216%9%2%-1762%355 X2%17687%8%22%-1742%385 X4%6991%9%11%-1722%354 X4%8462%8%31%-1702%383 X5%23686%9%20%-1682%353 X5%25157%9%9%-1662%353 X6%708%8%29%-1642%383 X7%15932%9%15%-1622%355 X7%17403%9%4%-1602%355 X7%18874%8%24%-1582%385 X2%8178%9%12%-1562%355 X2%9649%9%1%-1542%355 X2%11120%8%21%-1522%385 X4%424%9%10%-1502%354 X4%1895%8%31%-1482%383 X5%17119%9%17%-1462%355 X5%18590%9%6%-1442%355 X5%20061%8%28%-1422%383 X7%9365%9%14%-1402%355 X7%10836%9%4%-1382%355 X7%12307%8%24%-1362%385 X2%1611%9%12%-1342%355 X2%3082%9%1%-1322%385 X3%18306%9%21%-1302%354 X3%19777%9%11%-1282%354 X3%21248%8%31%-1262%383 X5%10552%9%17%-1242%355 X5%12023%9%6%-1222%355 X5%13494%8%26%-1202%385 X7%2798%9%14%-1182%355 X7%4269%9%3%-1162%355 X7%5740%8%23%-1142%385 X1%20964%9%11%-1122%355 X1%22435%8%31%-1102%385 X3%11739%9%21%-1082%354 X3%13210%9%10%-1062%354 X3%14681%8%28%-1042%384 X5%3985%9%16%-1022%354 X5%5456%9%5%-1002%354 X5%6927%8%26%-982%385 X6%22151%9%14%-962%355 X6%23622%9%3%-942%385 X1%12926%9%22%-922%355 X1%14397%9%11%-902%355 X1%15868%9%1%-882%383 X3%5172%9%19%-862%354 X3%6643%9%8%-842%354 X3%8114%8%28%-822%384 X4%23338%9%16%-802%354 X4%24809%9%5%-782%354 X5%360%8%25%-762%385 X6%15584%9%13%-742%355 X6%17055%9%2%-722%383 X1%6359%9%21%-702%353 X1%7830%9%11%-682%353 X1%9301%8%31%-662%383 X2%24525%9%18%-642%354 X3%76%9%7%-622%354 X3%1547%8%27%-602%384 X4%16771%9%16%-582%354 X4%18242%9%5%-562%385 X6%7546%9%24%-542%355 X6%9017%9%13%-522%353 X6%10488%9%2%-502%383 X7%25712%9%22%-482%353 X1%1263%9%11%-462%353 X1%2734%8%31%-442%383 X2%17958%9%18%-422%354 X2%19429%9%6%-402%355 X2%20900%8%27%-382%384 X4%10204%9%15%-362%354 X4%11675%9%4%-342%383 X6%979%9%23%-322%355 X6%2450%9%12%-302%353 X6%3921%9%2%-282%383 X7%19145%9%19%-262%355 X7%20616%9%10%-242%353 X7%22087%8%30%-222%383 X2%11391%9%16%-202%355 X2%12862%9%6%-182%385 X4%2166%9%26%-162%354 X4%3637%9%15%-142%354 X4%5108%9%4%-122%383 X5%20332%9%23%-102%353 X5%21803%9%13%-82%353 X5%23274%9%2%-62%383 X7%12578%9%19%-42%355 X7%14049%9%8%-22%355 X7%15520%8%28%-2%385 X2%4824%9%16%19%355 X2%6295%9%5%39%385 X3%21519%9%25%59%354 X3%22990%9%14%79%354 X3%24461%9%3%99%383 X5%13765%9%21%119%355 X5%15236%9%10%139%355 X5%16707%8%30%159%385 X7%6011%9%18%179%355 X7%7482%9%7%199%385 X1%22706%9%27%219%355 X1%24177%9%16%239%355 X1%25648%9%5%259%385 X3%14952%9%25%279%354 X3%16423%9%14%299%354 X3%17894%9%2%319%384 X5%7198%9%21%339%354 X5%8669%9%10%359%354 X5%10140%8%30%379%385 X6%25364%9%18%399%355 X7%915%9%7%419%385 X1%16139%9%26%439%355 X1%17610%9%15%459%355 X1%19081%9%4%479%383 X3%8385%9%22%499%354 X3%9856%9%12%519%354 X3%11327%9%1%539%384 X5%631%9%20%559%354 X5%2102%9%9%579%385 X6%17326%9%28%599%355 X6%18797%9%18%619%355 X6%20268%9%7%639%383 X1%9572%9%26%659%353 X1%11043%9%15%679%355 X1%12514%9%4%699%383 X3%1818%9%23%719%354 X3%3289%9%12%739%354 X3%4760%9%1%759%384 X4%19984%9%20%779%354 X4%21455%9%9%799%385 X6%10759%9%28%819%355 X6%12230%9%17%839%355 X6%13701%9%6%859%383 X1%3005%9%25%879%353 X1%4476%9%14%899%353 X1%5947%9%4%919%383 X2%21171%9%22%939%354 X2%22642%9%11%959%384 X4%11946%9%30%979%354 X4%13417%9%19%999%354 X4%14888%9%9%1019%385 X6%4192%9%28%1039%355 X6%5663%9%17%1059%353 X6%7134%9%6%1079%383 X7%22358%9%25%1099%353 X7%23829%9%15%1119%353 X7%25300%9%4%1139%383 X2%14604%9%21%1159%355 X2%16075%9%10%1179%385 X4%5379%9%30%1199%354 X4%6850%9%19%1219%354 X4%8321%9%8%1239%383 X5%23545%9%27%1259%353 X5%25016%9%16%1279%353 X6%567%9%5%1299%383 X7%15791%9%23%1319%355 X7%17262%9%12%1339%385 X2%6566%10%1%1359%355 X2%8037%9%20%1379%355 X2%9508%9%9%1399%385 X3%24732%9%30%1419%354 X4%283%9%19%1439%354 X4%1754%9%8%1459%383 X5%16978%9%25%1479%355 X5%18449%9%14%1499%355 X5%19920%9%6%1519%383 X7%9224%9%23%1539%355 X7%10695%9%12%1559%385 X1%25919%10%1%1579%355 X2%1470%9%20%1599%355 X2%2941%9%9%1619%385 X3%18165%9%29%1639%354 X3%19636%9%18%1659%354 X3%21107%9%7%1679%383 X5%10411%9%24%1699%355 X5%11882%9%14%1719%385 X7%1186%10%3%1739%355 X7%2657%9%22%1759%355 X7%4128%9%11%1779%385 X1%19352%9%30%1799%355 X1%20823%9%20%1819%355 X1%22294%9%9%1839%385 X3%11598%9%29%1859%354 X3%13069%9%18%1879%354 X3%14540%9%5%1899%384 X5%3844%9%25%1919%354 X5%5315%9%14%1939%385 X6%20539%10%3%1959%355 X6%22010%9%22%1979%355 X6%23481%9%11%1999%385 X1%12785%9%30%2019%355 X1%14256%9%19%2039%355 X1%15727%9%8%2059%383 X3%5031%9%26%2079%354 X3%6502%9%15%2099%384 X4%21726%10%5%2119%354 X4%23197%9%24%2139%354 X4%24668%9%13%2159%385 X6%13972%10%2%2179%355 X6%15443%9%21%2199%355 X6%16914%9%11%2219%383 X1%6218%9%30%2239%353 X X X SHAR_EOF echo "File cal.text is complete" && rm -f shar3_seq_.tmp echo "You have unpacked the last part" exit 0 -Richard L. Goerwitz goer%sophist@uchicago.bitnet goer@sophist.uchicago.edu rutgers!oddjob!gide!sophist!goer