billr@saab.CNA.TEK.COM (Bill Randle) (07/12/90)
Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu> Posting-number: Volume 10, Issue 75 Archive-name: nethack3p9/Part30 Supersedes: NetHack3: Volume 7, Issue 56-93 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 30 (of 56)." # Contents: include/artifact.h mac/MacAlert.c mac/NH.proj.hqx # Wrapped by billr@saab on Wed Jul 11 17:11:36 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'include/artifact.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'include/artifact.h'\" else echo shar: Extracting \"'include/artifact.h'\" \(1594 characters\) sed "s/^X//" >'include/artifact.h' <<'END_OF_FILE' X/* SCCS Id: @(#)artifact.h 3.0 88/07/27 X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X/* NetHack may be freely redistributed. See license for details. */ X X#ifdef NAMED_ITEMS X#ifndef ARTIFACT_H X#define ARTIFACT_H X X#define SPFX_NONE 0x0000 /* no special effects, just a bonus */ X#define SPFX_NOGEN 0x0001 /* item is special, bequeathed by gods */ X#define SPFX_RESTR 0x0002 /* item is restricted - can't be named */ X#define SPFX_INTEL 0x0004 /* item is self-willed - intelligent */ X#define SPFX_SPEEK 0x0008 /* item can speak */ X#define SPFX_SEEK 0x0010 /* item helps you search for things */ X#define SPFX_WARN 0x0020 /* item warns you of danger */ X#define SPFX_ATTK 0x0040 /* item has a special attack (attk) */ X#define SPFX_DEFN 0x0080 /* item has a special defence (defn) */ X#define SPFX_DRLI 0x0100 /* drains a level from monsters */ X#define SPFX_SEARCH 0x0200 /* helps searching */ X#define SPFX_DMONS 0x1000 /* attack bonus on one monster type */ X#define SPFX_DCLAS 0x2000 /* attack bonus on monsters w/ symbol mtype */ X#define SPFX_DFLAG1 0x4000 /* attack bonus on monsters w/ mflags1 flag */ X#define SPFX_DFLAG2 0x8000 /* attack bonus on monsters w/ mflags2 flag */ X X#define SPFX_DBONUS 0xF000 /* attack bonus mask */ X Xstruct artifact { X unsigned otyp; X const char *name; X unsigned spfx; X unsigned long mtype; /* monster type, symbol, or flag */ X struct attack attk, defn; X uchar align; /* alignment of bequeathing gods */ X char class; /* character class associated with */ X}; X X#endif /* ARTIFACT_H /* */ X#endif /* NAMED_ITEMS /* */ END_OF_FILE if test 1594 -ne `wc -c <'include/artifact.h'`; then echo shar: \"'include/artifact.h'\" unpacked with wrong size! fi # end of 'include/artifact.h' fi if test -f 'mac/MacAlert.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mac/MacAlert.c'\" else echo shar: Extracting \"'mac/MacAlert.c'\" \(24474 characters\) sed "s/^X//" >'mac/MacAlert.c' <<'END_OF_FILE' X/* SCCS Id: @(#)MacAlert.c 3.0 90/01/06 X/* Copyright (c) Jon Watte 1989 */ X/* NetHack may be freely redistributed. See license for details. */ X X#include "hack.h" /* */ X X/* UseMacAlert is like UseMacAlertText, but without the text parameter. X This is so you can simply say "UseMacAlert(CAUTION)" or similar, if X you use predefined alert numbers. X*/ X X Xextern WindowPtr HackWindow; X X Xint XUseMacAlert(MAno) Xint MAno; X{ X return UseMacAlertText(MAno, 0L); X} X X X/* UseMacAlertText fetches a record in a resource of type MAlt, and uses X this as a template calling MacAlert. This is so you can have ready- X made resources, like ALRT templates, for your MacAlerts, which makes X it easier to customize the program, and to translate it. It also X makes for clearer code... X X If the txt argument is NULL, the text from the template is used, X otherwise the sypplied text is used. X*/ Xint XUseMacAlertText(MAno, txt) Xint MAno; Xchar * txt; X{ X MAlrtHandle foo; X MAlrtPtr bar; X int item; X X SetResLoad(1); X foo = (MAlrtHandle) GetResource(MAtype, MAno); X if(foo) { X MoveHHi(foo); X HLock(foo); X bar = *foo; X item = MacAlert(bar->width, bar->height, bar->PICTno, X txt != 0L ? txt : bar->text, bar->but1, bar->but2, bar->but3, X bar->but4, bar->def, bar->esc); X } else { X if(!flags.silent) SysBeep(20); X item = -1; X } X X ReleaseResource(foo); X DisposHandle(foo); X return item; X} X X X/* This is the MacAlert function. It creates a new window, frames it X (like a modal dialog) and tries to position the various buttons, X text and picture in a reasonable way. The arguments are: X X width : width of the window. If less than a constant, it defaults X to that constant. X height: see width. X PICTno: Resource ID of a PICT to display. If 0, no PICT is displayed. X text : the C string containing the relevant text to be displayed. X but1 -: These are the button texts. Empty strings (they point at 0) X - but4: makes that button go away. If all are empty, the default OK X button text is used. X def : This is which button is default, starting button # 1. X esc : This is the button that corresponds to the ESC key. X X The function returns the button hit, or maybe -1 on error. X*/ Xint XMacAlert(width, height, PICTno, text, but1, but2, but3, but4, def, esc) Xint width, height, PICTno; Xchar * text,* but1, * but2, * but3, * but4; Xint def, esc; X{ X PicHandle thePICT; X char border[8]; X EventRecord theEvent; X GrafPtr savedPort; X WindowPtr theWindow, tmpWind; X Rect bounds, textBox, brect[4]; X char hilite[4], * but[4], s1[2], s2[2]; X int nobutts, x, pool, spacing, heig, bwid[4], X item, c, ret; X long finalTicks; X X memset(hilite, sizeof(hilite), 0); X memset(bwid, sizeof(bwid), 0); X SetCursor(&arrow); X def--; X esc--; X GetPort(&savedPort); X X if(PICTno) X thePICT = (PicHandle) GetResource('PICT', PICTno); X else X thePICT = 0; X if(thePICT) DetachResource(thePICT); X bounds = (MAINGRAFPORT)->portRect; X X but[0] = but1; X but[1] = but2; X but[2] = but3; X but[3] = but4; X X if(width > bounds.right) width = bounds.right; X if(width < MIN_WIDTH) width = MIN_WIDTH; X if(height > bounds.bottom) height = bounds.bottom; X if(height < MIN_HEIGHT) height = MIN_HEIGHT; X X InsetRect(&bounds, (int) ((bounds.right - width) >> 1), (int) X ((bounds.bottom - height) >> 1)); X theWindow = NewWindow(0L, &bounds, "", 1, plainDBox, 0L, 0, 0L); X ShowWindow(theWindow); X SelectWindow(theWindow); X SetPort(theWindow); X OffsetRect(&bounds, - bounds.left, - bounds.top); X X nobutts = 0; X if(but1[0]) nobutts=1; X if(but2[0]) nobutts=2; X if(but3[0]) nobutts=3; X if(but4[0]) nobutts=4; X X if(!nobutts) { X but[0] = "OK"; X nobutts++; X } X X spacing = 0; X for(x=0 ; x < nobutts; x++) { X bwid[x] = TextWidth(but[x], 0, strlen(but[x])) + 2 * BUT_MARGIN; X spacing += bwid[x] + BUT_SPACING; X } X X pool = bounds.right - 2 * BUT_MARGIN; X X heig = 1; X while(spacing / heig > pool - (nobutts - 1) * BUT_SPACING) { X heig++; X } X X for(x=0; x<nobutts; x++) { X bwid[x] = (int) ((float) bwid[x] / spacing * pool); X } X X pool = BUT_MARGIN + BUT_SPACING; X heig = bounds.bottom - BUT_MARGIN - BUT_SPACING - BUT_HEIGHT * heig; X for(x=0; x<nobutts; x++) { X SetRect(&(brect[x]), pool, heig, pool + bwid[x], bounds.bottom - X BUT_SPACING - BUT_MARGIN); X pool += bwid[x] + BUT_SPACING; X hilite[x] = 0; X } X X InsetRect(&bounds, 2, 2); X textBox = bounds; X if(thePICT) { X textBox.left += (*thePICT)->picFrame.right; X } X textBox.left += 8; X textBox.right -= 8; X textBox.top += 8; X textBox.bottom = heig - BUT_MARGIN; X if(textBox.bottom < textBox.top + 15) { X textBox.bottom = bounds.bottom - 8; X } X X goto mainLoop; X XdrawWindow: X SetPort(theWindow); X EraseRect(&(theWindow->portRect)); X PenNormal(); X PenSize(BORDER_WIDTH, BORDER_WIDTH); X GetIndPattern((void *) border, 0, BORDER_PAT); X PenPat(border); X FrameRect(&bounds); X X PenNormal(); X X if(thePICT) { X HLock(thePICT); X DrawPicture(thePICT, &((*thePICT)->picFrame)); X HUnlock(thePICT); X } X X PenNormal(); X TextFont(0); X TextSize(12); X TextBox(text, strlen(text), &textBox, teJustLeft); X X for(x=0; x<nobutts; x++) { X EraseRoundRect(&(brect[x]), BUT_CORNER, BUT_CORNER); X FrameRoundRect(&(brect[x]), BUT_CORNER, BUT_CORNER); X InsetRect(&(brect[x]), BUT_MARGIN, 3); X TextBox(but[x], strlen(but[x]), &(brect[x]), teJustCenter); X InsetRect(&(brect[x]), - BUT_MARGIN, - 3); X if(hilite[x]) { X InvertRoundRect(&(brect[x]), BUT_CORNER, BUT_CORNER); X } X if(x == def) { X PenSize(FRAME_WIDTH, FRAME_WIDTH); X InsetRect(&(brect[x]), - FRAME_WIDTH - FRAME_OFFSET, X - FRAME_WIDTH - FRAME_OFFSET); X FrameRoundRect(&(brect[x]), FRAME_CORNER, FRAME_CORNER); X InsetRect(&(brect[x]), FRAME_WIDTH + FRAME_OFFSET, X FRAME_WIDTH + FRAME_OFFSET); X PenNormal(); X } X } X XmainLoop: X while(1) { X if(WaitNextEvent(-1, &theEvent, 10L, 0L)) { X switch(theEvent.what) { X X case updateEvt : X BeginUpdate((WindowPtr) theEvent.message); X EndUpdate((WindowPtr) theEvent.message); X goto drawWindow; X X case mouseDown : X if (FindWindow(theEvent.where, &tmpWind) < inContent || X tmpWind != theWindow) { X if(!flags.silent) SysBeep(20); X item = -1; X } else { X item = TrackThem(brect, hilite, nobutts); X } X if(item >= 0) { X Delay(FLASH_TIME, &finalTicks); X InvertRoundRect(&(brect[item]), BUT_CORNER, BUT_CORNER); X ret = item + 1; X goto getout; X } X break; X X case keyDown : X c = theEvent.message & 0xFF; X if((c == 13) || (c == 3)) { X if(def >= 0) { X InvertRoundRect(&(brect[def]), BUT_CORNER, BUT_CORNER); X Delay(FLASH_TIME, &finalTicks); X InvertRoundRect(&(brect[def]), BUT_CORNER, BUT_CORNER); X ret = def + 1; X goto getout; X } X } X if(c == 27) { X if(esc >= 0) { X InvertRoundRect(&(brect[esc]), BUT_CORNER, BUT_CORNER); X Delay(FLASH_TIME, &finalTicks); X InvertRoundRect(&(brect[esc]), BUT_CORNER, BUT_CORNER); X ret = esc + 1; X goto getout; X } X } X for(x=0; x<nobutts; x++) { X s1[0] = 1; X s1[1] = c; X s2[0] = 1; X s2[1] = but[x][0]; X UprString(s1, 1); X UprString(s2, 1); X if(s1[1] == s2[1]) { X InvertRoundRect(&(brect[x]), BUT_CORNER, BUT_CORNER); X Delay(FLASH_TIME, &finalTicks); X InvertRoundRect(&(brect[x]), BUT_CORNER, BUT_CORNER); X ret = x + 1; X goto getout; X } X } X X PenSize(FRAME_WIDTH, FRAME_WIDTH); X InsetRect(&(brect[def]), - FRAME_WIDTH - FRAME_OFFSET, X - FRAME_WIDTH - FRAME_OFFSET); X PenMode(patXor); X FrameRoundRect(&(brect[def]), FRAME_CORNER, FRAME_CORNER); X InsetRect(&(brect[def]), FRAME_WIDTH + FRAME_OFFSET, X FRAME_WIDTH + FRAME_OFFSET); X PenNormal(); X X def++; X def %= nobutts; X X PenSize(FRAME_WIDTH, FRAME_WIDTH); X InsetRect(&(brect[def]), - FRAME_WIDTH - FRAME_OFFSET, X - FRAME_WIDTH - FRAME_OFFSET); X FrameRoundRect(&(brect[def]), FRAME_CORNER, FRAME_CORNER); X InsetRect(&(brect[def]), FRAME_WIDTH + FRAME_OFFSET, X FRAME_WIDTH + FRAME_OFFSET); X PenNormal(); X X break; X X default: X ; X } X } X } X Xgetout: X DisposeWindow(theWindow); X if(thePICT) DisposHandle(thePICT); X SetPort(savedPort); X X return ret; X} X X X/* TrackThem is a help function to MacAlert, it tracks buttons, X returns the button number (0 - (no_butts-1)) or -1 if no button X was hit. */ Xint XTrackThem(b_rect, hi_lite, no_butts) XRect * b_rect; Xchar * hi_lite; Xint no_butts; X{ XPoint p; Xint x, i; X X while(Button()) { X SystemTask(); X GetMouse(&p); X for(x=0; x<no_butts; x++) { X if(PtInRect(p, &(b_rect[x]))) { X if(!hi_lite[x]) { X hi_lite[x] = 1; X InvertRoundRect(&(b_rect[x]), BUT_CORNER, BUT_CORNER); X } X } else { X if(hi_lite[x]) { X hi_lite[x] = 0; X InvertRoundRect(&(b_rect[x]), BUT_CORNER, BUT_CORNER); X } X } X } X } X X i = -1; X for(x=0; x<no_butts; x++) { X if(hi_lite[x]) i=x; X } X X return i; X} X X X/* #defines for the mini-pager */ X X#define SLACK 400 /* How much extra is taken per chunk ? */ X#define TAB_SIZE 8 /* How large tabs ? */ X X#define X_POS 8 /* Window init pos */ X#define Y_POS 64 X#define X_SIZE 80 /* Window size */ X#define Y_SIZE 24 X#define X_BORDER 20 /* Extra space besides text */ X#define Y_BORDER 4 X#define TOP_MARGIN 2 /* Offset of text from border */ X#define LEFT_MARGIN 2 X#define MAX_LINE_LEN 128 X X#include <ControlMgr.h> X Xtypedef struct select { X long start; X long end; X long startline; X long endline; X} SELECTION; X Xextern WindowPtr HackWindow; X Xstatic WindowPtr PagerWindow; Xstatic width, height; Xstatic Handle theData; Xstatic long length, textPos; Xstatic Rect text_area; Xstatic Rect windowSize; Xstatic int inited; Xstatic ControlHandle theScrollBar; Xstatic int scrollMax = 0, scrollPt = 0; Xstatic long ** lineStarts; Xstatic long noRs; Xstatic MenuHandle editMenuH; Xstatic SELECTION theSelect, oldSelect; X Xint DoMenu(long selection); Xvoid DoScroll(long amount); X X X/* The mini-pager */ X X Xlong XLineLength(long from, long lines) X{ Xlong ndx; X if(lines + from > noRs) ndx = noRs; X else ndx = lines + from; X return (*lineStarts)[ndx] - (*lineStarts)[from]; X} X X Xlong XWhatOffset(Point p, long * line) X{ Xint x, y; Xlong l, ndx; X X x = (p.h - LEFT_MARGIN) / width; X if(x < 0) x = 0; X y = (p.v - TOP_MARGIN) / height; X if(y < 0) { X y = 0; X DoScroll(-1); X } else if(y >= Y_SIZE) { X y = Y_SIZE; X DoScroll(1); X } X l = y + scrollPt > noRs-1 ? noRs-1 : y + scrollPt; X ndx = x + (*lineStarts)[l]; X if(l == noRs) ndx = length; X else if(ndx > (*lineStarts)[l+1]) ndx = (*lineStarts)[l+1]; X X * line = l; X return ndx; X} X X Xvoid XInvertRange(SELECTION * s, Rect * cr) X{ Xlong sc = s->start; Xlong ec = s->end; Xlong sl = s->startline; Xlong el = s->endline; Xint sx, ex; XRect r; X X#define HilitePtr (void *) 0x938 X X if(sc > ec) { X long t = sc; X sc = ec; X ec = t; X t = sl; X sl = el; X el = t; X } X X sx = sc - (*lineStarts)[sl]; X ex = ec - (*lineStarts)[el]; X sl -= scrollPt; X el -= scrollPt; X r = text_area; X ClipRect(cr ? cr : &r); X if(el == sl) { X SetRect(&r, sx * width, sl * height, ex * width, (el + 1) * height); X OffsetRect(&r, LEFT_MARGIN, TOP_MARGIN); X BitClr(HilitePtr, pHiliteBit); X InvertRect(&r); X } else { X SetRect(&r, sx * width, sl * height, X_SIZE * width, (sl + 1) * height); X OffsetRect(&r, LEFT_MARGIN, TOP_MARGIN); X BitClr(HilitePtr, pHiliteBit); X InvertRect(&r); X SetRect(&r, 0, el * height, ex * width, (el + 1) * height); X OffsetRect(&r, LEFT_MARGIN, TOP_MARGIN); X BitClr(HilitePtr, pHiliteBit); X InvertRect(&r); X SetRect(&r, 0, (sl + 1) * height, X_SIZE * width, el * height); X OffsetRect(&r, LEFT_MARGIN, TOP_MARGIN); X BitClr(HilitePtr, pHiliteBit); X InvertRect(&r); X } X SetRect(&r, 0, 0, 20000, 20000); X ClipRect(&r); X} X X Xvoid XDoDraw(EventRecord * theEvent, term_info * t) X{ X BeginUpdate((WindowPtr) theEvent->message); X if(StripAddress(theEvent->message) == StripAddress(HackWindow)) { X SetPort(HackWindow); X docrt(); X } else if(StripAddress(theEvent->message) == StripAddress(PagerWindow)) { X MoveHHi(theData); X HLock(theData); X MoveHHi(lineStarts); X DrawControls(PagerWindow); X TextBox(&((*theData)[(*lineStarts)[textPos]]), LineLength(textPos, X Y_SIZE), &text_area, teJustLeft); X HUnlock(theData); X InvertRange(&theSelect, 0L); X } X EndUpdate((WindowPtr) theEvent->message); X} X X Xvoid XDoScroll(long amount) X{ Xint ab = amount > 0 ? amount : - amount; X X if(textPos == 0 && amount < 0) return; X if(textPos == scrollMax && amount > 0) return; X X textPos += amount; X if(textPos < 0) { X amount -= textPos; X textPos = 0; X } X if(textPos > scrollMax) { X amount -= textPos - scrollMax; X textPos = scrollMax; X } X scrollPt = textPos; X X if(ab > Y_SIZE - 1) { X HLock(theData); X TextBox(&((*theData)[(*lineStarts)[textPos]]), LineLength(textPos, X ab), &text_area, teJustLeft); X HUnlock(theData); X InvertRange(&theSelect, (Rect *) 0L); X } else { X Rect r; X RgnHandle rgn = NewRgn(); X r = text_area; X ScrollRect(&text_area, 0, - amount * height, rgn); X DisposHandle(rgn); X if(amount < 0) { X r.bottom -= (Y_SIZE - ab) * height; X HLock(theData); X TextBox(&((*theData)[(*lineStarts)[textPos]]), LineLength X (textPos, ab), &r, teJustLeft); X HUnlock(theData); X InvertRange(&theSelect, &r); X } else { X r.top += (Y_SIZE - ab) * height; X HLock(theData); X TextBox(&((*theData)[(*lineStarts)[textPos + Y_SIZE - ab]]), X LineLength(textPos + Y_SIZE - ab, ab), &r, X teJustLeft); X HUnlock(theData); X InvertRange(&theSelect, &r); X } X } X SetCtlValue(theScrollBar, scrollPt); X DrawControls(PagerWindow); X} X X Xpascal void XLineUp(ControlHandle stl, int part) X{ X DoScroll(-1); X} X Xpascal void XLineDown(ControlHandle stl, int part) X{ X DoScroll(1); X} X Xpascal void XPageUp(ControlHandle stl, int part) X{ X DoScroll(- Y_SIZE + 1); X} X Xpascal void XPageDown(ControlHandle stl, int part) X{ X DoScroll(Y_SIZE - 1); X} X X Xint XDoKey(EventRecord * theEvent, term_info * t) X{ Xchar c = theEvent->message & 0xFF; Xchar k = (theEvent->message & 0xFF00) >> 8; X X switch(k) { X X case 0x7A: X DoMenu((long)(editMenu << 16) | 1); X return 1; X X case 0x78: X DoMenu((long)(editMenu << 16) | 3); X return 1; X X case 0x63: X DoMenu((long)(editMenu << 16) | 4); X return 1; X X case 0x76: X DoMenu((long)(editMenu << 16) | 5); X return 1; X X case 0x7E: X case 0x7B: X if(theEvent->modifiers & (optionKey | shiftKey | cmdKey)) X DoScroll(- Y_SIZE + 1); X else DoScroll(-1); X return 1; X X case 0x7C: X case 0x7D: X if(theEvent->modifiers & (optionKey | shiftKey | cmdKey)) X DoScroll(Y_SIZE - 1); X else DoScroll(1); X return 1; X X case 0x73: X DoScroll(-scrollMax); X return 1; X X case 0x77: X DoScroll(scrollMax); X return 1; X X case 0x74: X DoScroll(1 - Y_SIZE); X return 1; X X case 0x79: X DoScroll(Y_SIZE - 1); X return 1; X X case 0x7F: X return 0; X X default: X break; X } X X switch(c) { X X case 'c': X case 'C': X if(theEvent->modifiers & cmdKey) { X HiliteMenu(editMenu); X DoMenu((long)(editMenu << 16) | 4); X HiliteMenu(0); X } X return 1; X X case '.': X if(!(theEvent->modifiers & cmdKey)) break; X case 'q': X case 'Q': X case 0x1B: X return 0; X X case ' ': X case 0x9: X if(theEvent->modifiers & (optionKey | shiftKey | cmdKey)) X DoScroll(- Y_SIZE + 1); X else DoScroll(Y_SIZE - 1); X break; X X case 0x3: X case '\r': X case '\n': X if(theEvent->modifiers & (optionKey | shiftKey | cmdKey)) X DoScroll(-1); X else DoScroll(1); X break; X X case '<': X DoScroll(- scrollMax); X break; X X case '>': X DoScroll(scrollMax); X break; X X default: X break; X } X X return 1; X} X X Xvoid XDoClick(EventRecord * theEvent, term_info * t) X{ XControlHandle control; XPoint pt = theEvent->where; Xint part; X X GlobalToLocal(&pt); X part = FindControl(pt, PagerWindow, &control); X if(part) { X switch(part) { X X case inThumb: X if(TrackControl(control, pt, 0L) == inThumb) { X scrollPt = GetCtlValue(control); X DoScroll(scrollPt - textPos); X } X break; X X case inUpButton: X TrackControl(control, pt, LineUp); X break; X X case inDownButton: X TrackControl(control, pt, LineDown); X break; X X case inPageUp: X TrackControl(control, pt, PageUp); X break; X X case inPageDown: X TrackControl(control, pt, PageDown); X break; X X default: X break; X } X } else { X if(theEvent->modifiers & shiftKey) { X theSelect.end = WhatOffset(pt, &(theSelect.endline)); X oldSelect.start = theSelect.end; X oldSelect.startline = theSelect.endline; X InvertRange(&oldSelect, (Rect *) 0L); X oldSelect = theSelect; X } else { X InvertRange(&theSelect, (Rect *) 0L); X theSelect.start = WhatOffset(pt, &(theSelect.startline)); X theSelect.end = theSelect.start; X theSelect.endline = theSelect.startline; X InvertRange(&theSelect, (Rect *) 0L); X oldSelect = theSelect; X } X while(StillDown()) { X GetMouse(&pt); X theSelect.end = WhatOffset(pt, &(theSelect.endline)); X oldSelect.start = theSelect.end; X oldSelect.startline = theSelect.endline; X InvertRange(&oldSelect, (Rect *) 0L); X oldSelect = theSelect; X } X if(theSelect.start > theSelect.end) { X long t = theSelect.start; X theSelect.start = theSelect.end; X theSelect.end = t; X t = theSelect.startline; X theSelect.startline = theSelect.endline; X theSelect.endline = t; X oldSelect = theSelect; X } X } X} X X Xint XDoMenu(long selection) X{ Xint menu = HiWord(selection); Xint item = LoWord(selection); X X switch(menu) { X X case fileMenu: X if(item == 9) return 0; X if(item == 4) { X Rect foom = PagerWindow->portRect; X OffsetRect(&foom, -foom.left, -foom.top); X InvalRect(&foom); X return 1; X } X break; X X case editMenu: X switch(item) { X X case 1: X SysBeep(20); X break; X X case 3: X SysBeep(20); X break; X X case 4: X if(theSelect.start == theSelect.end) { X SysBeep(20); X } else { X ZeroScrap(); X HLock(theData); X PutScrap(theSelect.end - theSelect.start, 'TEXT', &((*theData) X [theSelect.start])); X HUnlock(theData); X } X break; X X case 5: X SysBeep(20); X break; X X default: X break; X X } X break; X X default: X break; X X } X X return 1; X} X X Xint XDoMDown(EventRecord * theEvent, term_info * t) X{ XWindowPtr whatWindow; Xint where; X X where = FindWindow(theEvent->where, &whatWindow); X switch(where) { X X case inMenuBar: X if(theSelect.start != theSelect.end) { X EnableItem(editMenuH, 4); X } else { X DisableItem(editMenuH, 4); X } X where = DoMenu(MenuSelect(theEvent->where)); X HiliteMenu(0); X return where; X X case inGrow: X case inContent: X if(StripAddress(whatWindow) == StripAddress(PagerWindow)) { X DoClick(theEvent, t); X } else { X SysBeep(20); X } X break; X X case inDrag: X if(StripAddress(whatWindow) == StripAddress(PagerWindow)) { X RgnHandle theRgn = GetGrayRgn(); X Point p; X DragWindow(PagerWindow, theEvent->where, &((*theRgn)->rgnBBox)); X windowSize = PagerWindow->portRect; X p.h = windowSize.left; X p.v = windowSize.top; X LocalToGlobal(&p); X OffsetRect(&windowSize, p.h, p.v); X } else { X SysBeep(20); X } X break; X X case inGoAway: X if(TrackGoAway(PagerWindow, theEvent->where)) return 0; X break; X X default: X break; X X } X return 1; X} X X Xint XCheckEvent(EventRecord * theEvent, term_info * t) X{ X switch(theEvent->what) { X X case autoKey: X case keyDown: X return DoKey(theEvent, t); X break; X X case updateEvt: X DoDraw(theEvent, t); X break; X X case mouseDown: X return DoMDown(theEvent, t); X break; X X case activateEvt: X if(theEvent->modifiers & 1) { X ShowControl(theScrollBar); X } else { X HideControl(theScrollBar); X } X break; X X case app4Evt: X if(theEvent->message >> 24 == 1) { X if(theEvent->message & 1) { X HiliteControl(theScrollBar, scrollMax ? 0 : 254); X } else { X HiliteControl(theScrollBar, 255); X } X } X X default: X break; X } X X return 1; X} X X Xvoid XMagicDisplay(term_info * t) X{ XEventRecord theEvent; X X SetCursor(&ARROW_CURSOR); X do { X WaitNextEvent(everyEvent, &theEvent, 42L, 0L); X SetPort(PagerWindow); X } while(CheckEvent(&theEvent, t)); X} X X Xint XCountChars(char * s, long n, int c) X{ Xint r = 0; X X while(n-- > 0) if(*(s++) == c) r++; X X return r; X} X X Xint XTabSize(char * s) X{ Xint r = 0, q; X X for(q = 0; s[q]; q++) X r += (s[q] == '\t') ? 8 - (r & 7) : 1; X X return r; X} X X Xint XExpandTabs(char * s, char * d) X{ Xint r, q, c = 0, t = 0; X X for(q = 0; s[q]; q++) X switch(s[q]) { X X case '\t': X for(r = 0; r < 8 - (t & 7); r++, c++) X *(d++) = 0x20; X t += 8 - (t & 7); X break; X X case '\n': X *(d++) = '\r'; X c++; X t = 0; X break; X X default: X *(d++) = s[q]; X c++; X t++; X break; X } X X return c; X} X X Xint XMoofFile(FILE * fp, int strip) X{ Xlong fpos; Xlong delta_slack; Xlong slack_left; Xchar buf[MAX_LINE_LEN]; X X if(!fp) { X panic("No file for pager"); X } X fpos = ftell(fp); X length = 0; X theData = NewHandle(SLACK); X slack_left = SLACK; X X do { X if(!fgets(buf, MAX_LINE_LEN, fp)) break; X if(!strip || isspace(*buf)) { X delta_slack = TabSize(buf); X slack_left -= delta_slack; X if(slack_left < 0) { X slack_left += SLACK; X SetHandleSize(theData, length + SLACK + delta_slack); X if(MemError()) X panic("Out of memory"); X } X MoveHHi(theData); X HLock(theData); X length += ExpandTabs(buf+strip, &((*theData)[length])); X HUnlock(theData); X } X } while(!feof(fp) && (isspace(*buf) || !strip)); X X fclose(fp); X return 0; X} X X Xvoid XsetLineStarts(long ** starts, char * data, long length) X{ Xlong x = length; Xlong p = 0; X X **starts = 0; X while(length--) X if(*(data++) == '\r') X (*starts)[++p] = x - length; X} X X Xvoid XMoreDisabling(MenuHandle theMenu, int i) X{ Xint x; X X switch(i) { X X default : X DisableItem(theMenu, 0); X break; X X case fileMenu: X for(x = 1; x < 9; x++) X DisableItem(theMenu, x); X SetItem(theMenu, 9, "\PClose"); X EnableItem(theMenu, 9); X EnableItem(theMenu, 0); X EnableItem(theMenu, 4); X break; X X case editMenu: X for(x = 1; x < 7; x++) X DisableItem(theMenu, x); X EnableItem(theMenu, 0); X editMenuH = theMenu; X break; X X } X} X X Xvoid XMoreEnabling(MenuHandle theMenu, int i) X{ Xint x; X X switch(i) { X X default : X EnableItem(theMenu, 0); X break; X X case fileMenu: X for(x = 0; x < 9; x++) if(x != 6 && x != 8) X EnableItem(theMenu, x); X SetItem(theMenu, 9, "\PQuit"); X break; X X case editMenu: X for(x = 1; x < 7; x++) X EnableItem(theMenu, x); X DisableItem(theMenu, 0); X break; X X } X} X X Xvoid XMoreMenus(void) X{ XMenuHandle theMenu; Xint i; X X for(i=appleMenu; i <=extendMenu; i++) { X if(theMenu = GetMHandle(i)) { X MoreDisabling(theMenu, i); X } X } X DrawMenuBar(); X} X X Xvoid XLessMenus(void) X{ XMenuHandle theMenu; Xint i; X X for(i=appleMenu; i <=extendMenu; i++) { X if(theMenu = GetMHandle(i)) { X MoreEnabling(theMenu, i); X } X } X DrawMenuBar(); X} X X Xint Xmac_more(FILE * fp, int strip) X{ XWindowRecord MoreWindow; Xterm_info * t; XGrafPtr savedPort; X X if(MoofFile(fp, strip)) return -1; /* God knows what happened */ X X theSelect.start = theSelect.end = theSelect.startline = X theSelect.endline = 0; X oldSelect = theSelect; X MoveHHi(theData); X HLock(theData); X noRs = CountChars(*theData, length, '\r'); X lineStarts = (long **) NewHandle((noRs + 1) * sizeof(long)); X if(!lineStarts || MemError()) panic("Out of memory"); X setLineStarts(lineStarts, *theData, length); X HUnlock(theData); X scrollMax = noRs - Y_SIZE; X if(scrollMax < 0) scrollMax = 0; X X GetPort(&savedPort); X t = (term_info *) GetWRefCon(HackWindow); X X if(t->inColor ? !GetNewCWindow(301, &MoreWindow, 0L) : X !GetNewWindow(301, &MoreWindow, 0)) { X DisposHandle(theData); X panic("No WIND resource for pager"); X } else if(ResError()) { X DisposHandle(theData); X panic("No WIND resource for pager"); X } /* And now set the sizes & things */ X PagerWindow = (GrafPtr) &MoreWindow; X X width = t->charWidth; X height = t->height; X if(inited != t->height) { X SetRect(&windowSize, X_POS, Y_POS, width * X_SIZE + X_BORDER + X_POS, X height * Y_SIZE + Y_BORDER + Y_POS); X inited = t->height; X } X SizeWindow(PagerWindow, windowSize.right - windowSize.left, X windowSize.bottom - windowSize.top, 0); X MoveWindow(PagerWindow, windowSize.left, windowSize.top, 0); X ShowWindow(PagerWindow); X SelectWindow(PagerWindow); X SetPort(PagerWindow); X X text_area = windowSize; X OffsetRect(&text_area, - text_area.left, - text_area.top); X text_area.left = text_area.right - 14; X InsetRect(&text_area, - 1, - 1); X theScrollBar = NewControl(PagerWindow, &text_area, X "\PMore Text", 1, 0, 0, scrollMax, scrollBarProc, 0); X HiliteControl(theScrollBar, scrollMax ? 0 : 254); X X SetRect(&text_area, LEFT_MARGIN, TOP_MARGIN, width * X_SIZE + LEFT_MARGIN, X height * Y_SIZE + TOP_MARGIN); X TextFont(t->fontNum); X TextSize(t->fontSize); X TextMode(srcCopy); X textPos = 0; X X MoreMenus(); X MagicDisplay(t); X LessMenus(); X X if(theScrollBar) KillControls((WindowPtr) &MoreWindow); X CloseWindow((WindowPtr) &MoreWindow); X DisposHandle(theData); X SetPort(HackWindow); X docrt(); X SetPort(savedPort); X return 0; X} END_OF_FILE if test 24474 -ne `wc -c <'mac/MacAlert.c'`; then echo shar: \"'mac/MacAlert.c'\" unpacked with wrong size! fi # end of 'mac/MacAlert.c' fi if test -f 'mac/NH.proj.hqx' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mac/NH.proj.hqx'\" else echo shar: Extracting \"'mac/NH.proj.hqx'\" \(30018 characters\) sed "s/^X//" >'mac/NH.proj.hqx' <<'END_OF_FILE' X(This file must be converted with BinHex 4.0) X X:$'jPG'KKBfXZF(*[DJ"38Np+5d&)6!#3#'r`fLF!N!3"!*!$D1B!!'IQ!!!(#KJ X!N!3",J(X!!%!N!MTJ!-a,M-!N!-9!*!$$'jPG'KKBfXZF(*[DQX#!*!$8&*25NY X"5%`"!*!%`!!!8&*25NY"5%`"!*!%`!!!DTX!N!kLBa['!*!'Er!!#J!2!#S!,k! X#k'%!N!9&"+`!@J6f"!T*EQPdD@&XDATP!*!&432h!&S%333&4@TPBh3!N!C&"&) X!@J5F"!*25`#3"4d%*J!Y"35)(84[)(P[G5"hB@jd)(4[)'PZDA4TB@aTHQ8JDA3 Xr!*!'(33T!#d%ma!)!!!"@!!!F!8!!%459P*9`!!p4N3!!2m`!,B!N!83!$e'4!! X!rc!!YJ#3"4!!28C%!!$r-!#f!*!&%!!p4N3!!2m`!,B!N!83!$e'4!!!rc!!YJ# X3"4!!28C%!!$r-!#f!*!&%!!p4N3!!2m`!,B!N!83!$e'4!!!rc!!YJ#3"4!!28C X%!!$r-!#f!*!&'!!p4N3!!2m`!,B!N!-"!*!*&!!p4N3*4d986%P145j$!*!&&!! Xp4N3!C!#U!2S"eJ#!4%3!N!0S!$e'4!!$!*!&3`!P!&X!H`3%8f&fC3#3"@J!*3# X!!(X%"d4TFf0KFQ4-!!!,6Q9d5'&MDb!c,M"L0fjMC@`!N!8+!%8!1J%IL"06BAC XP)'0SB@jRCA-JG'mJAM!r!*!%&!!p4N3!#J!239"36'jS-c"B!!,Z!*!$#!!$rb3 X!l[rm!*!$#JXR!*!,#PJ!!!Zi!!!,Z!#3!`2`!*$r!*$r!*$r!*$a(#)!!%!!!$2 XThJ!cUL!!-mB+!!!"(!#3"6)!N"C!J1j1!$1U)%)!!0)!-kRX!$2&TJ!ca5B!-m5 XU!$2%8J!c`rS!-m1L!$2$*J!c`Y)!-m*5!$2"dJ!c`5i!-m$@!$2!8J!c[rS!-lq XL!$1r!J!c[SB!-liZ!$1pMJ!c[0i!-laL!$1m-J!cZpS!-lYH!$1kjJ!cZSi!-lR X+!$1jFJ!cZ4i!-lM'!$1hrJ!cYeS!-lEL!$1fLJ!cYHS!-l@5!$1e1J!c[6B!-l5 XD!$1cmJ!cXbi!-l,@!$1bIJ!cXNS!-l(f!$1a8J!cc&)!-m[@!$2'dJ!cc0)!!)! X!"L`!!"c1#!!"!3!"!!$rN!LKr,3!!"B!!3!!#Q006dj6!!GYEfjcG#jM!!!"SIh XaHk(pmAZKrI&l!"J!!3!!#Q4$6dj'!!KMEfjQD@FZD!#3!`+Kp1hJSI6Yi+(dlH! X!'J!"!!!+C&45383!#R4bB@4cG'4M,QJ!N!-#SI6YQU(dlCUKp1fD!"J!!3!!#Q4 X(6%p#!!KRE'pLB@`ZD!"S!!1KESc$S@k-`k&ZM--!&J!#!!"8a&084%N""h0dC'P X[,QJ!!!1Km8dASI&0&k(a64F!&J!"!!!+C%026e)!"f0[Eh*N,QJ!!!1Kpi"lSIH X!Hk(hJ(X!'!!"!!!+C%e"3d-!#@eKBf0[EQBZD!!!"+(a651Km8dMSI&0)`!@!!% X!!!TN690%6`!(EA0NEh-ZD!!!"+(a65@Km8dPSI&0*3!B!!%!!!TN8eP69!!)FhP XcG'9Y,QJ!N!-%S*cGjD#FhH@JR0hP!"B!!J!!9-4858e&!3CdD@eP,QJ!D!!%S*c XG0k#Fh6HJR0dh!"B!!J!!9-4'3dj8!3G'BfjdE#jS!!!%S*cGV+#FhDbJR0fX!"J X!!J!!9-469%4%!3K6G'4NC@BZD!#3!`5JR0h9S*cGeD#FhG8!'!!#!!"8a&084%` X"#&0dC'aTBLjS!*!$"+$(p0QJar6CS-Idf3!B!!)!!&6%8e4553%)8h4bD@jR,QJ X!N!-%S*c03k#Fc81JR-e$!"J!!J!!9)03390$!3K`BA0MB@`ZD!#3!`5JR-BRS*c X'*k#FaLF!'J!#!!"8Je&958-"#e&eD@0VC(*KGbjS!!!&S*c&r+#FaIbJR-Am!"S X!!J!!9)003808!!T0B@08HA"PFbjS!*!$"+#FaHDJR-AQS*c&jJ!B!!)!!&5$4Np X19!%*4QpZG%eRFLjS!!!%S*c&eD#FaG@JR-A9!"S!!J!!9)0&9N91!3T&GQ9ZG%e XRFLjS!*!$"+#FaRZJR-ClS*c'H`!D!!)!!&5$9dP14!%,9fPZC'ph6@Gb,QJ!!!5 XJR-B%S*c'"+#FaJ3!'!!#!!"8Jde&6P8"#8ePER90Ch)ZD!!!"+#FaPqJR-CIS*c X'A`!F!!)!!&5$8e4%4J%-8h4N4QPXC9"VCbjS!*!$"+#FaMqJR-BrS*c'2`!F!!) X!!&5$8d9(63%-8f9RE@9ZG%aNFLjS!*!$"+#FaQfJR-CYS*c'E3!F!!)!!&5$9%p X26!%09'p[E'*[H&9dD@`ZD!!!"+#FaJkJR-B1S*c'$J!B!!)!!&5$6e099!%)6e0 X9G'PX,QJ!D3!%S*c&`k#FaF1JR-A$!"S!!J!!9)0%58&-!3Y%D@&XEfG0Ch)ZD!! X!"D#FaQDJR-CQS*c'CJ!D!!)!!&5$9%9B9!!+9'9iG%9NDA3ZD!#3!`5JR-ADS*c X&fU#FaGS!'!!#!!"8JdC*6%8"#8CTE'90Ch)ZD!!!"+#FaHbJR-AXS*c&l!!8!!) X!!&5$5%C6,J%&5%C6,QJ!!!5JX6d9S,%p&D#a248!&J!#!!"8Jd026%m""d0[E'p Xb,QJ!!!5JR-BVS*c'+k#FaLX!(!!#!!"8Je*&8dm"$9*PFfpeFQ0P6@Gb,QJ!!!5 XKr,U2SIbkMk(mZSm!'!!"!!!+C%9B9%8!#'9iG'9bELjS!'F!"+(q"k@KrJHPSIi X(T3!D!!%!!!TN68&$33!+6@&M3@aPFR3ZD!!Z!!'Km8dNSI&0*+(a653!'J!"!!! X+C&"&8Nd!#R"PFQe[ER0d,QJ!,J!#SI&0)U(a65+Km8dL!"J!!3!!#Q406dj"!!P XYEfjKG(4V,QJ!!!+Km8dMSI&0)k(a65-!'!!"!!!+C%e26NB!#@e[EQCXB@FZD!! X!!D(a651Km8dMSI&0)`!B!!%!!!TN68p18`!)E@pZFhPY,QJ!N!-"SI&0'+(a64L XKm8dB!"B!!3!!#Q4&8dK,!!CPFfKV,QJ!D!!"SI)ZHk(b,RZKmLjl!"B!!3!!#Q4 X@399-!!GfBA9XG#jS!!!"SI&0'+(a64LKm8dB!"B!!3!!#Q4&8&**!!CPF(*T,QJ X!N!-"SII#QD(h`TQKpm+C!"B!!3!!#Q4$6da2!!GMEfa[FLjS!*!%,'iZB`!!!D( Xq"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!#k#!!#N!*!$m!S!!3%!!3! X!rj!)SIh$U`!B!!%!!!TM9%9563!*G'9bE@0KF#jM!!!"SIi(j+(q"q5KrJIN!"B X!!3!!#Q4)380,!!CSB@0V,QJ!,J!"S*cG'D#Fh4QJR0dC!"B!!J!!9-4$9&P3!3G XMG(P`C5jS!!!"SI&0,+(a65bKm8dX!"J!!3!!#Q4849*0!!PdCA*YBf&`,QJ!EQ5 X!!!"8!*!$l!S!!3%!!3!!rj!)SIi`UJ!8!!%!!!TQ68&$,J!&E@&M,Q-!!!'KrJI XNSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!!!J!!!0!#3!qJ!!!%"!!%!!2q X3#+#Z`J)!'!!#!!"8Y%e"3e3!#%eKBe4bBA"c!!##!!"B!*!$j!S!!3%!!3!!rj! X)SII(-!!@!!%!!!TM9&*"3`!(G(*KBfXZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!T XN5%&$5`!'D'&MDbjS!!$&`i!!!&J!N!2J#J!"!3!"!!$rN!LKmQPK!"J!!3!!#Q0 X05e*2!!KYDh*[EfdZB`#3!`'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfX XZD!"MJJ!!a!#3!p`+!!%"!!%!!2q3#+(hJ6!!&!!"!!!+Bde26Li!"@e[ELjM!!! X"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!B`!"SI&0)U(a65+Km8d XL!"J!!3!!#Q404Nj%!!PYCQjNF'pc,QJ!!!'Km8dZSI&0,U(a65i!&J!"!!!+C&G X648F!"RGcC@FZD!!Z!!'JR0dCS*cG'D#Fh4N!&J!#!!"8a%08@9!""f0dHA"P,QJ X!6@'#!!#S!*!$f!S!!3%!!3!!rj!)SI&05J!B!!%!!!TM68p163!*E@pZE@pfC5j XM!!!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!,J!"SI&0)U(a65+ XKm8dL!"J!!3!!#Q404Nj%!!PYCQjNF'pc,QJ!!!'Km8dASI&0&k(a64F!'J!"!!! X+C%&59%N!#Q&bG'PQB@0d,QJ!,J!"J!!!S!#3!p3+!!%"!!%!!2q3#+(a68%!'!! X"!!!+Bde26N3!#@e[EQ4KG'%ZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`! X'D'&MDbjS!#i!!D(a64LKm8dBSI&0'!!@!!%!!!TN490)5`!'CA0SDbjS!#i!!D( Xa64LKm8dBSI&0'!!@!!%!!!TN49"553!'CA"bD5jS!#k#!!"B!*!$c!S!!3%!!3! X!rj!)SIbSC3!@!!%!!!TM9%p36!!'G'p`E#jM!*!$!D(q"q5KrJINSIi(j!!@!!% X!!!TN5%&$5`!'D'&MDbjS!*!%JJ!!@!#3!mJ+!!%"!!%!!2q3#+(pmVd!&J!"!!! X+BdK"3dX!"QKKBfXZB`#3!`'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfX XZD!#3!`Q#!!#J!*!$a!S!!3%!!3!!rj!)SI1,-`!B!!%!!!TM58j@43!)D@jfC@j Xd,Q-!3`!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!B`!"SI&0'D( Xa64QKm8dC!"3!!3!!#Q4-49BZ!!9XCABZD!!!!D(a65kKm8dZSI&0,J!@!!%!!!T XN9e0&4`!'Gh0PCbjS!'-"!B!!!&J!N!2!#J!"!3!"!!$rN!LKmiTR!"J!!3!!#Q0 X&6NG5!!PPEQGbBACP,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfX XZD!!ZJ!!!H!#3!l`+!!%"!!%!!2q3#+(mbQF!&!!"!!!+Bd424bi!"@4[CbjM!!! X"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!,J!"SI&0'+(a64LKm8d XB!"B!!3!!#Q4&4%p(!!CPC'pR,QJ!,S)!!+3!N!1i#J!"!3!"!!$rN!LKmiS!!"J X!!3!!#Q0%6dG0!!PNEfGYEhCP,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX X!"QKKBfXZD!!Z!!'Km8dLSI&0)U(a65)!'!!"!!!+C%e'6N3!#@eQEQ4`Eh-ZD!! X!!D(a64LKm8dBSI&0'!!@!!%!!!TN48424`!'C@4[CbjS!#i"!B)!!-J!N!1d#J! X"!3!"!!$rN!LKpi&M!"J!!3!!#Q038NP&!!K`FQPPFh3ZB`#3!`'KrJINSIi(j+( Xq"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!"M!!'Km8dLSI&0)U(a65)!'!!"!!!+C%e X'6N3!#@eQEQ4`Eh-ZD!!!!D(a64LKm8dBSI&0'!!@!!%!!!TN490)5`!'CA0SDbj XS!#i!!D(a64LKm8dBSI&0'!!@!!%!!!TN49"553!'CA"bD5jS!#jYEi)!!&J!N!1 X`#J!"!3!"!!$rN!LKm8hJ!"B!!3!!#Q0A49*&!!ChCA*P,Q-!B`!"SIi(j+(q"q5 XKrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!Bk(aJ!!!9!#3!k`+!!%"!!%!!2q3#+( Xa6E8!&!!"!!!+Be*14#i!"A*ZC#jM!!!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380 X,!!CSB@0V,QJ!Bi!!!&J!N!1S#J!"!3!"!!$rN!LKm8hh!"J!!3!!#Q0%3P**!!P XNBR*TC'GP,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!!ZJJ! X!a!#3!k3#!!%"!!%!!2q3#+(m[(d!&!!"!!!+Be"555i!"A"bD5jM!!!"SIi(j+( Xq"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!,J!"S*cG'D#Fh4QJR0dC!"B!!J! X!9-4$9&P3!3GMG(P`C5jS!!!"SI&0'+(a64LKm8dB!"B!!3!!#Q4&8&**!!CPF(* XT,QJ!N!-"SI&0,+(a65bKm8dX!"J!!3!!#Q4849*0!!PdCA*YBf&`,QJ!!&L!!!" XB!*!$S!J!!3%!!3!!rj!)SI)"V!!B!!%!!!TR8N&14!!)FQ&ZC'pY,Q-!N!-"S@k X-`k&ZM-1KESc$!"B!!J!!9-469%4*!3GcG'4TEbjS!)!!!(J!N!1F#J!"!3!"!!$ XrN!LKpp')!"3!!3!!#Q065%XZ!!9cD'XZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!T XN5%&$5`!'D'&MDbjS!'-!!D(a64LKm8dBSI&0'!!@!!%!!!TN490)5`!'CA0SDbj XS!'1#!!"m!*!$Q!S!!3%!!3!!rj!)SII(@3!@!!%!!!TM9&*"8!!'G(*KF#jM!'- X!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!'-!!D(a64LKm8dBSI& X0'!!@!!%!!!TN48424`!'C@4[CbjS!'-!!B!!!&J!N!18#J!"!3!"!!$rN!LKpm9 XX!"J!!3!!#Q009%K5!!PYG'KbEhGe,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K X"3dX!"QKKBfXZD!!ZJ!!!-!#3!j!!!!!"!3!"!!$rN!LJb!fm!"3!!J!!9,j96NP XB!!4eEQPi!(H!!!"m!*!$M!S!!3%!!3!!rj!)SIbc)!!B!!%!!!TM68&,43!*E@& XVC@e[ELjM!!!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!,J!"S*c XG'D#Fh4QJR0dC!"B!!J!!9-4$9&P3!3GMG(P`C5jS!)!!!&J!N!1)#J!"!3!"!!$ XrN!LKm8iq!"J!!3!!#Q005de"!!KYDfeKHQ8ZB`#3!`'KrJINSIi(j+(q"q3!&J! X"!!!+C%K"3dX!"QKKBfXZD!"MJJ!!@!#3!p!+!!%"!!%!!2q3#+(hK4F!&J!"!!! X+Bde,6d)!"feVEf*U,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfX XZD!!!6R@#!!#J!*!$K!S!!3%!!3!!rj!)SI188J!B!!%!!!TM8&**8`!)F(*TFhP XY,Q-!N!-"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!B`!"SI&0,U( Xa65kKm8dZ!"B!!3!!#Q4A8d9(!!ChFf9R,QJ!B`!"SI&0'D(a64QKm8dC!"3!!3! X!#Q4-49BZ!!9XCABZD!!!&S)!!&J!N!1!#J!"!3!"!!$rN!LKmj56!"B!!3!!#Q0 X548&%!!CbC@&N,Q-!B`!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ X!Bh*YJ!!!I!#3!h`+!!%"!!%!!2q3#+(hGfJ!'!!"!!!+Bdp#5Ni!#'pLDQjKE5j XM!*!$!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!'-!!D#Fh4QJR0d XCS*cG'3!@!!)!!&6%3e4C8!%(Bh4jF'8ZD!#!!!#J!*!$H!S!!3%!!3!!rj!)SIb Xd-J!B!!%!!!TM8dp96J!)FfpeEQ4c,Q-!N!-"SIi(j+(q"q5KrJIN!"B!!3!!#Q4 X)380,!!CSB@0V,QJ!B`!"SI&0'+(a64LKm8dB!"B!!3!!#Q4&4%p(!!CPC'pR,QJ X!B`!"SI&0'+(a64LKm8dB!"B!!3!!#Q4&8dK,!!CPFfKV,QJ!Bi!!!&J!N!0d#J! X"!3!"!!$rN!LKm8h*!"J!!3!!#Q0858e&!!PdD@ePEh9d,Q-!!!'KrJINSIi(j+( Xq"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!!ZJ!!!@!#3!h!+!!%"!!%!!2q3#+(pkZ! X!'!!"!!!+BeG*@N%!#(GTHQ&bC#jM!*!$!D(q"q5KrJINSIi(j!!@!!%!!!TN5%& X$5`!'D'&MDbjS!'1#!!#%!*!$E!S!!3%!!3!!rj!)SI1*)!!D!!%!!!TM39*853! X+BA*dD@CKBh3ZB`"[!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!" Xd!!'Km8dASI&0&k(a64F!'J!"!!!+C%&59%N!#Q&bG'PQB@0d,QJ!E`%(J!!!@!# X3!fJ+!!%"!!%!!2q3#+(b6bN!'!!"!!!+Bd&89&)!#'&dG(*TBLjM!'-!!D(q"q5 XKrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!'1#!!#N!*!$C!S!!3%!!3!!rj! X)SIc+QJ!@!!%!!!TM68K*9!!(E@KTG(8ZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!T XN5%&$5`!'D'&MDbjS!*!$!D(a64HKm8dASI&0&`!D!!%!!!TN39*853!+BA*dD@C XKBh3ZD!"[!!'Km8dBSI&0'+(a64J!&J!"!!!+C%9%6dF!"Q9NEfFZD!"d!!'!!!# X!!*!$B!S!!3%!!3!!rj!)SI)Y%3!B!!%!!!TM8d9"8J!)Ff9KFQ0S,Q-!B`!"SIi X(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!B`!"SI&0&k(a64HKm8dA!"S X!!3!!#Q4"8P4*!!TKFR4TCQ&MG#jS!'q#!!#!!*!$A!S!!3%!!3!!rj!)SI)``!! X@!!%!!!TM98K*9!!(G@KTG'dZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`! X'D'&MDbjS!*!$!D(a64HKm8dASI&0&`!D!!%!!!TN39*853!+BA*dD@CKBh3ZD!" X[5%'!!!"8!*!$@!S!!3%!!3!!rj!)SIbl*!!8!!%!!!TM48&8,J!&C@&d,Q-!!!' XKrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!"MJ!!!I!#3!e3+!!%"!!% X!!2q3#+(q*di!'!!"!!!+Bd42Adi!#@4[AfjKE@8ZB`!!!D(q"q5KrJINSIi(j!! X@!!%!!!TN5%&$5`!'D'&MDbjS!#i!!D#Fh4QJR0dCS*cG'3!@!!)!!&6%3e4C8!% X(Bh4jF'8ZD!#!!!"B!*!$8!S!!3%!!3!!rj!)SI6c*!!B!!%!!!TM4%pI9`!*C'p XIGf9KFLjM!!!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!,S!!!&J X!N!0-#J!"!3!"!!$rN!LKm8hJ!"J!!3!!#Q0A48&3!!KhC@&`EfiZB`#3!`'KrJI XNSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!"MJ!!!@!#3!dJ+!!%"!!%!!2q X3#+(bFK)!'!!"!!!+Be"*3dX!#("TBfYeF#jM!*!$!D(q"q5KrJINSIi(j!!@!!% X!!!TN5%&$5`!'D'&MDbjS!'1#!!"m!*!$4!S!!3%!!3!!rj!)SIi&r!!@!!%!!!T XM9N&96!!(GQ&eE(3ZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbj XS!*!$!D(b,RZKmLjlSI)ZH`!@!!%!!!TN9N&96!!(GQ&eE(3ZD!!!"S)!!)!!N!0 X!#J!"!3!"!!$rN!LKmM,h!"B!!3!!#Q005%P8!!GYD'PdE5jM!!!"SIi(j+(q"q5 XKrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!N!-"SI&0&k(a64HKm8dA!"S!!3!!#Q4 X"8P4*!!TKFR4TCQ&MG#jS!'pQBB)!!&`!N!-m#J!"!3!"!!$rN!LKr,#!!"S!!3! X!#Q036daC!!T`EfajFf9XCLjM!'m!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`! X'D'&MDbjS!'CMD%!!!0!!-kRX!*!&-mB#!$2'"J!ck-i!-qKf!$2S(J!cjk)!-qG X+!$2QlJ!cjT)!-qBq!$2PjJ!cj@S!-q81!$2NhJ!cj)B!-q3Z!$2MeJ!cihi!-q, XL!$2L3J!ciF)!-q&U!$2K%J!ci,i!-q"Q!$2IkJ!chh)!-plk!$2HIJ!chLB!-pe Xq!$2G*J!ch-i!-paf!$2EqJ!cfk)!-pXQ!$2DcJ!cfP)!-pR5!$28cJ!ce(B!-p3 XH!$26aJ!ccLi!-kVk!$20+J!ccGB!-mf#JJ!&"!#3!r`)!!%"!!%!!2q3#+(a66F X!&J!"!!!+Bd&-6%m!"f&XE'pM,Q-!!!'KrI&lSIhaHk(pmAX!'!!"!!!+C%026NB X!#'0[EQCTCbjS!*!$!U(dlH#Kp1hJSI6Yi!!D!!%!!!TN9&*"4!!+G(*KC(0dC'- XZD!!Z!!+Kp1fDSI6YQU(dlCS!'!!"!!!+C%G-6d)!#'GXEf*KE#jS!'J!!k&ZM-1 XKESc$S@k-``!@!!)!!&6%8e4%53%(Fh4ND@mZD!!!!k(a64HKm8dASI&0&`!@!!% X!!!TN3dp28J!(Bfp[FQ3ZD!!!!k(hJ(ZKpi"lSIH!H`!B!!%!!!TN68&$3`!*E@& XMBfpZCLjS!!!%SI&0)k(a651Km8dM!"B!!3!!#Q408d42!!GYFf4[FbjS!!!%SI& X0*D(a65@Km8dP!"J!!3!!#Q46@908!!KcHA0dC@dZD!#3!`5JR0hPS*cGjD#FhH8 X!&J!#!!"8a&4*688""R4TE@8ZD!"S!!5JR0dhS*cG0k#Fh6F!&J!#!!"8a%C$6P3 X""dCMER4X,QJ!!!5JR0fXS*cGV+#FhD`!'!!#!!"8a&084%3"#&0dC'4PCLjS!*! X$"+#FhG@JR0h9S*cGe3!B!!)!!&6%8e4%6!%)8h4NE'PL,QJ!N!-%S-IdfD$(p0Q XJar6C!"J!!J!!9-469&**!3K6G(*TEQFZD!#3!`5JR-e$S*c03k#Fc8-!'!!#!!" X8Je""8d-"#("KFf0KE#jS!*!$"+#FaLHJR-BRS*c'*`!D!!)!!&5$899*3`%,8A9 XTBfYNFQ&h,QJ!!!@JR-AmS*c&r+#FaI`!'J!#!!"8Jde"3e3!#NeKBe4jF'9c,QJ X!N!-%S*c&jU#FaHDJR-AQ!"J!!J!!9)0'6dj8!3P'Efjd6@Gb,QJ!!!5JR-A9S*c X&eD#FaG8!'J!#!!"8Jd9@48i"#N9fC@jd6@Gb,QJ!N!-%S*c'Hk#FaRZJR-Cl!"S X!!J!!9)0A58j%!3YAD@jNEhG0Ch)ZD!!!"+#FaJ5JR-B%S*c'"!!B!!)!!&5$689 X193%*6@9ZG8eRFLjS!!!%S*c'Ak#FaPqJR-CI!"`!!J!!9)069%4'!3a6G'4'D@a XP8'YR,QJ!N!-%S*c'2k#FaMqJR-Br!"`!!J!!9)0648G0!3a6C@GYC@jd6'4b,QJ X!N!-%S*c'ED#FaQfJR-CY!"`!!J!!9)086dp-!3e8EfpXBQpi9A4TE#jS!!!%S*c X'$U#FaJkJR-B1!"J!!J!!9)028e98!3K28e9dD@`ZD!"T!!5JR-A$S*c&`k#FaF- X!'J!#!!"8Jd4*38`"#d4TB@a[CdeRFLjS!!!&S*c'CU#FaQDJR-CQ!"S!!J!!9)0 X849K8!!T8CAKd4@4TG#jS!*!$"+#FaGUJR-ADS*c&fJ!B!!)!!&5$4NP-43%*4QP XXC8eRFLjS!!!%S*c&l+#FaHbJR-AX!"3!!J!!9)0)4P-Z!39)4P-ZD!!!"+#a24@ XJX6d9S,%p&3!@!!)!!&5$3dp-6`%(3fpXEh)ZD!!!"+#FaLZJR-BVS*c'+`!F!!) X!!&5$8N966`%08Q9cEh9bBf90Ch)ZD!!!"+(mZSqKr,U2SIbkM`!B!!%!!!TN49K X843!)CAKdCA*Z,QJ!C`!%SIi(TD(q"k@KrJHP!"S!!3!!#Q40380"!!T0B@0"E'9 XbG#jS!#jd,S!!!(`!N!2i#J!"!3!"!!$rN!LKm8hh!"3!!3!!#Q0$683Z!!9ME@3 XZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!*!$!D(a64QKm8d XCSI&0'3!D!!%!!!TN4P913`!+CR9ZBepdB@)ZD!!ZJ!!!J!#3!r3+!!%"!!%!!2q X3#+(q*'m!'!!"!!!+BdG&9%`!#@GPG'aTEQ8ZB`!!!D(q"q5KrJINSIi(j!!@!!% X!!!TN5%&$5`!'D'&MDbjS!#i!!D(a64QKm8dCSI&0'3!D!!%!!!TN4P913`!+CR9 XZBepdB@)ZD!!!J!!!@!!!!3!+!!%"!!%!!2q3#+(ha4m!'!!"!!!+Bd&-6%d!#@& XXE'eKD@iZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!#k#!!" XB!!!FdJS!!3%!!3!!rj!)SI&1!J!@!!%!!!TM4%9$6!!'C'9ME#jM!'B!!D(q"q5 XKrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!'C0Ci!!!&3!!"cD#J!"!3!"!!$ XrN!LKr-V8!"3!!3!!#Q0D39!Z!!9kBA!ZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!T XN5%&$5`!'D'&MDbjS!'1#!!"B!!!FeJS!!3%!!3!!rj!)SI6cJJ!@!!%!!!TM6%p X$5`!'E'pMDbjM!'B!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!'D XJR))!"CJ!!"c+#!!"!3!"!!$rN!LKm8e+!"J!!3!!#Q023NT&!!P[BQTPBh4c,Q- X!!!'KrI&lSIhaHk(pmAX!'!!"!!!+C%026NB!#'0[EQCTCbjS!*!$!U(dlH#Kp1h XJSI6Yi!!D!!%!!!TN9&*"4!!+G(*KC(0dC'-ZD!!Z!!+Kp1fDSI6YQU(dlCS!'!! X"!!!+C%G-6d)!#'GXEf*KE#jS!'J!!k&ZM-1KESc$S@k-``!@!!)!!&6%8e4%53% X(Fh4ND@mZD!!!!k(a64HKm8dASI&0&`!@!!%!!!TN3dp28J!(Bfp[FQ3ZD!!!!k( XhJ(ZKpi"lSIH!H`!B!!%!!!TN68&$3`!*E@&MBfpZCLjS!!!%SI&0)k(a651Km8d XM!"B!!3!!#Q408d42!!GYFf4[FbjS!!!%SI&0*D(a65@Km8dP!"J!!3!!#Q46@90 X8!!KcHA0dC@dZD!#3!`5JR0hPS*cGjD#FhH8!&J!#!!"8a&4*688""R4TE@8ZD!" XS!!5JR0dhS*cG0k#Fh6F!&J!#!!"8a%C$6P3""dCMER4X,QJ!!!5JR0fXS*cGV+# XFhD`!'!!#!!"8a&084%3"#&0dC'4PCLjS!*!$"+#FhG@JR0h9S*cGe3!B!!)!!&6 X%8e4%6!%)8h4NE'PL,QJ!N!-%S-IdfD$(p0QJar6C!"J!!J!!9-469&**!3K6G(* XTEQFZD!#3!`5JR-e$S*c03k#Fc8-!'!!#!!"8Je""8d-"#("KFf0KE#jS!*!$"+# XFaLHJR-BRS*c'*`!D!!)!!&5$899*3`%,8A9TBfYNFQ&h,QJ!!!@JR-AmS*c&r+# XFaI`!'J!#!!"8Jde"3e3!#NeKBe4jF'9c,QJ!N!-%S*c&jU#FaHDJR-AQ!"J!!J! X!9)0'6dj8!3P'Efjd6@Gb,QJ!!!5JR-A9S*c&eD#FaG8!'J!#!!"8Jd9@48i"#N9 XfC@jd6@Gb,QJ!N!-%S*c'Hk#FaRZJR-Cl!"S!!J!!9)0A58j%!3YAD@jNEhG0Ch) XZD!!!"+#FaJ5JR-B%S*c'"!!B!!)!!&5$689193%*6@9ZG8eRFLjS!!!%S*c'Ak# XFaPqJR-CI!"`!!J!!9)069%4'!3a6G'4'D@aP8'YR,QJ!N!-%S*c'2k#FaMqJR-B Xr!"`!!J!!9)0648G0!3a6C@GYC@jd6'4b,QJ!N!-%S*c'ED#FaQfJR-CY!"`!!J! X!9)086dp-!3e8EfpXBQpi9A4TE#jS!!!%S*c'$U#FaJkJR-B1!"J!!J!!9)028e9 X8!3K28e9dD@`ZD!"T!!5JR-A$S*c&`k#FaF-!'J!#!!"8Jd4*38`"#d4TB@a[Cde XRFLjS!!!&S*c'CU#FaQDJR-CQ!"S!!J!!9)0849K8!!T8CAKd4@4TG#jS!*!$"+# XFaGUJR-ADS*c&fJ!B!!)!!&5$4NP-43%*4QPXC8eRFLjS!!!%S*c&l+#FaHbJR-A XX!"3!!J!!9)0)4P-Z!39)4P-ZD!!!"+#a24@JX6d9S,%p&3!@!!)!!&5$3dp-6`% X(3fpXEh)ZD!!!"+#FaLZJR-BVS*c'+`!F!!)!!&5$8N966`%08Q9cEh9bBf90Ch) XZD!!!"+(mZSqKr,U2SIbkM`!B!!%!!!TN49K843!)CAKdCA*Z,QJ!C`!%SIi(TD( Xq"k@KrJHP!"S!!3!!#Q40380"!!T0B@0"E'9bG#jS!#i!!D(hK,1Kpi5cSIH%X`! X8!!%!!!TN6d*+,J!&Ef*U,QJ!!!'Km8dMSI&0)k(a65-!'J!"!!!+C%p#5N-!#Qp XLDQ0XBA0c,QJ!,J!"SI&0*+(a655Km8dN!"B!!3!!#Q438Np3!!C`FQp`,QJ!F`! X"SII#QD(h`TQKpm+C!"B!!3!!#Q4$6da2!!GMEfa[FLjS!%0"J!!!@!!!(-B+!!% X"!!%!!2q3#+(a68X!'!!"!!!+Bdp39%N!#@p`G'P[ER-ZB`!!!D(q"q5KrJINSIi X(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!#k!!!"B!!!F`JS!!3%!!3!!rj!)SI&08J! XB!!%!!!TM6ep*6J!)EepTEQPd,Q-!N!-"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380 X,!!CSB@0V,QJ!Bi!!!&J!!"bq#J!"!3!"!!$rN!LKm8h8!"J!!3!!#Q09AdP1!!K XeAfPZDA3ZB`#3!`'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!"MJ!! X&"!!!(,S)!!%"!!%!!2q3#+(f9N3!'!!"!!!+CNe"3dB!#@eKBfCTE'8ZB`!!!D( XpmAZKrI&lSIhaH`!B!!%!!!TN3dp14J!)BfpZCQPR,QJ!N!-#SI6Yi+(dlH#Kp1h XJ!"S!!3!!#Q488N&%!!TdFQ&NFh4NBbjS!'m!!U(dlCUKp1fDSI6YQJ!B!!%!!!T XN4da23J!)Cfa[BQ&X,QJ!D!!$S@k-`k&ZM-1KESc$!"B!!J!!9-469%4*!3GcG'4 XTEbjS!!!$SI&0&k(a64HKm8dA!"B!!3!!#Q4$6dp5!!GMEfpbC#jS!!!$SIH!Hk( XhJ(ZKpi"l!"J!!3!!#Q40380$!!PYB@0MEfjQ,QJ!!!5Km8dMSI&0)k(a65-!&J! X"!!!+C%e64%m!"fecC'pc,QJ!!!5Km8dPSI&0*D(a658!'!!"!!!+C&0C8e3!#(0 XjFh4PE5jS!*!$"+#FhH@JR0hPS*cGj3!@!!)!!&6%9%P043%'G'PYC5jS!'J!"+# XFh6HJR0dhS*cG0`!@!!)!!&6%4N019!%(4Q0ZG'`ZD!!!"+#FhDbJR0fXS*cGV!! XB!!)!!&6%8e4%4!%)8h4NC'9Q,QJ!N!-%S*cGeD#FhG@JR0h9!"J!!J!!9-469%4 X-!3K6G'4XD@)ZD!#3!`5Jar6CS-IdfD$(p0N!'!!#!!"8a&088NN"#&0dFQPZCbj XS!*!$"+#Fc81JR-e$S*c03`!B!!)!!&5$8%&63`%)F'&cBf&X,QJ!N!-%S*c'*k# XFaLHJR-BR!"S!!J!!9)0498P$!3Y4G@PMDf4bBAFZD!!!"D#FaIbJR-AmS*c&r!! XD!!)!!&5$68&$9!!+6@&M9(P`CA-ZD!#3!`5JR-AQS*c&jU#FaHB!'!!#!!"8JdC X26P3"#8C[ER40Ch)ZD!!!"+#FaG@JR-A9S*c&e3!D!!)!!&5$49C&6J%+4ACPER4 X0Ch)ZD!#3!`5JR-ClS*c'Hk#FaRX!'J!#!!"8JeG*6N3"#eGTEQ4[GdeRFLjS!!! X%S*c'"+#FaJ5JR-B%!"J!!J!!9)0048j9!3P0C@je6@Gb,QJ!!!5JR-CIS*c'Ak# XFaPm!(!!#!!"8Je084%B"$&0dC%CTE'93DfFZD!#3!`5JR-BrS*c'2k#FaMm!(!! X#!!"8Je0&4dd"$&0PCfePER4-C()ZD!#3!`5JR-CYS*c'ED#FaQd!(!!#!!"8Je4 X26d`"$94[EfaLEhK9G'PX,QJ!!!5JR-B1S*c'$U#FaJi!'!!#!!"8Jdp6993"#%p X69A4TE#jS!'N!"+#FaF1JR-A$S*c&``!D!!)!!&5$4%P"6!%,4'PKE'pR6@Gb,QJ X!!!@JR-CQS*c'CU#FaQB!'J!#!!"8Je4&@&3!#P4PH(4&C'Pd,QJ!N!-%S*c&fU# XFaGUJR-AD!"J!!J!!9)0'58a&!3P'D@aP6@Gb,QJ!!!5JR-AXS*c&l+#FaH`!&!! X#!!"8JdK'8bi""8K'8bjS!!!%S,%p&D#a24@JX6d9!"B!!J!!9)0$6da2!3G$Efa X[FLjS!!!%S*c'+k#FaLZJR-BV!"`!!J!!9)054902!3e5CA0[GA*MC8eRFLjS!!! X%SIbkMk(mZSqKr,U2!"J!!3!!#Q4&@&4&!!KPH(4PFQiZD!"R!!5KrJHPSIi(TD( Xq"k8!'J!"!!!+C%e"3d%!#NeKBd&XCA*d,QJ!,S!!!)!!!"bf#J!"!3!"!!$rN!L XKrKj&!"J!!3!!#QC0380*!!PYB@0TEQPd,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!! X+C%K"3dX!"QKKBfXZD!!Z!!'JR-B"S*c'!D#FaJ%!'J!#!!"8Jde&68m"#dePE@p XbH8eRFLjS!)!!!(`!!"bb#J!"!3!"!!$rN!LKrHZ+!"J!!3!!#QG33de"!!K`Bfe XKD@iZB`#3!`'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!"M!!'JR0d XCS*cG'D#Fh4N!&J!#!!"8a%08@9!""f0dHA"P,QJ!JJ!!@!!!(+i+!!%"!!%!!2q X3#+(a6Hd!&J!"!!!+BeG5593!"hGbDA4P,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!! X+C%K"3dX!"QKKBfXZD!!!89@#!!"m!!!FUJS!!3%!!3!!rj!)SI1(T!!@!!%!!!T XM39"36!!(BA"`E(NZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbj XS!*!$!D(a64LKm8dBSI&0'!!@!!%!!!TN48424`!'C@4[CbjS!!"&GS!!!&J!!"b XQ#J!"!3!"!!$rN!LKm8ia!"J!!3!!#Q003d&6!!KYBf&cG(8ZB`#3!`'KrJINSIi X(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!"MJJ!!I!!!(+)+!!%"!!%!!2q3#+( Xq+4X!&J!"!!!+Be""4d8!"h"KCf9b,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K X"3dX!"QKKBfXZD!#3!`'JR0dCS*cG'D#Fh4N!&J!#!!"8a%08@9!""f0dHA"P,QJ X!E#k!!!"B!!!FRJS!!3%!!3!!rj!)SI&0D!!B!!%!!!TM8P906`!)FR9YEh*c,Q- X!N!-"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!Bi)!!&J!!"bD#J! X"!3!"!!$rN!LKm8hJ!"B!!3!!#Q0A589-!!GhD@9XC#jM!!!"SIi(j+(q"q5KrJI XN!"B!!3!!#Q4)380,!!CSB@0V,QJ!N!-#JJ!!@!!!(*B+!!%"!!%!!2q3#+(a6H` X!&J!"!!!+BeG28Ni!"RG[FQiZB`#3!`'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX X!"QKKBfXZD!!!Bf@#!!#S!!!FNJS!!3%!!3!!rj!)SIh$C`!B!!%!!!TM9N958`! X*GQ9bFfP[ELjM!!!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!,J! X"SIh`CU(pm'DKrI"Q!"B!!3!!#Q4%394&!!CNBA4P,QJ!,J!"SI&0)k(a651Km8d XM!"`!!3!!#Q43394$!!a`BA4MD'aPGQ9X,QJ!!'0VJJ!!@!!!()i+!!%"!!%!!2q X3#+(a6IF!&J!"!!!+Bd4&68m!"f4PE@pZ,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!! X+C%K"3dX!"QKKBfXZD!!!F'1#!!"m!!!FLJS!!3%!!3!!rj!)SI&0i!!@!!%!!!T XM9dp563!'GfpbE5jM!*!$!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbj XS!*!$!D(a65kKm8dZSI&0,J!@!!%!!!TN9e0&4`!'Gh0PCbjS!!"hFS!!!(J!!"b X'#J!"!3!"!!$rN!LKrF4V!"3!!3!!#Q0&6N3Z!!9PEQ3ZB`!!!D(q"q5KrJINSIi X(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!*!$!D(a64LKm8dBSI&0'!!@!!%!!!TN490 X)5`!'CA0SDbjS!!#!!!"i!!!FJJS!!3%!!3!!rj!)SI&0Y3!8!!%!!!TM8NP3,J! X&FQP`,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!#3!`'JR0d XCS*cG'D#Fh4N!&J!#!!"8a%08@9!""f0dHA"P,QJ!J!!!I!!!((i+!!%"!!%!!2q X3#+(crfi!'!!"!!!+Be428&3!#(4[F(4PELjM!*!$!D(q"q5KrJINSIi(j!!@!!% X!!!TN5%&$5`!'D'&MDbjS!'-!!D#Fh4QJR0dCS*cG'3!@!!)!!&6%3e4C8!%(Bh4 XjF'8ZD!##!!"B!!!FHJS!!3%!!3!!rj!)SI&0b!!@!!%!!!TM8e4&33!(Fh4PB@` XZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!*!%J!!!9!!!((B X+!!%"!!%!!2q3#+(a6EB!&!!"!!!+Be0*9#i!"A0TG#jM!!!"SIi(j+(q"q5KrJI XN!"B!!3!!#Q4)380,!!CSB@0V,QJ!,S)!!&J!!"ab#J!"!3!"!!$rN!LKph@0!"B X!!3!!#Q038N&C!!C`FQ&j,Q-!N!-"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!C XSB@0V,QJ!N!-"J!!!@!!!('i+!!%"!!%!!2q3#+(haJ%!'!!"!!!+Be"29%N!#(" X[G'P[ELjM!*!$!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!'1#!!# X!!!!FDJS!!3%!!3!!rj!)SIGfE3!B!!%!!!TM8e"I6!!)Fh"IE'9f,Q-!N!-"SIi X(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!B`!"SI&0*+(a655Km8dN!"J X!!3!!#Q468&p-!!KcF&pXCABZD!!!6IH#!!#J!!!FCJS!!3%!!3!!rj!)SIbY-3! XB!!%!!!TM8N969!!*FQ9cG'pbC5jM!!!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380 X,!!CSB@0V,QJ!,J!"SI&0'D(a64QKm8dC!"3!!3!!#Q4-49BZ!!9XCABZD!!!!D( Xa65kKm8dZSI&0,J!@!!%!!!TN9e0&4`!'Gh0PCbjS!#j0,S!!!*`!!"aL#J!"!3! X"!!$rN!LKmQQm!"B!!3!!#Q0639C&!!CcBACP,Q-!,J!"SIi(j+(q"q5KrJIN!"B X!!3!!#Q4)380,!!CSB@0V,QJ!,J!"SI&0'D(a64QKm8dC!"3!!3!!#Q4-49BZ!!9 XXCABZD!!!!D(a65kKm8dZSI&0,J!@!!%!!!TN9e0&4`!'Gh0PCbjS!#k#!!"B!!! XFAJS!!3%!!3!!rj!)SI&153!@!!%!!!TM68Y-43!(E@YXCABZB`!!!D(q"q5KrJI XNSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!*!$&S)!!&J!!"aD#J!"!3!"!!$rN!L XKphB$!"B!!3!!#Q068%9-!!GcF'9XE#jM!!!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4 X)380,!!CSB@0V,QJ!N!-@JJ!!@!!!(&B+!!%"!!%!!2q3#+(a6NN!&J!"!!!+Bde X98dN!"feeFfPM,Q-!!!'KrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!# X3!`'#!!"B!!!F8JS!!3%!!3!!rj!)SIc*q`!@!!%!!!TM3Np143!(BQpZCA-ZB`! X!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!*!$!B!!!$!!!"a1!!! X"!3!"!!$rN!LKhZ,P!"3!!J!!9,j"6P0*!!4"6P0*!!##!!"F!!!F5JS!!3%!!3! X!rj!)SIiEC`!D!!%!!!TQ68&$33!+6@&M3@aPFR3ZB`"[!!'KrJINSIi(j+(q"q3 X!&J!"!!!+C%K"3dX!"QKKBfXZD!"d!!'!!!"m!!!F4JS!!3%!!3!!rj!)SIGC!J! XB!!%!!!TM4%p,53!)C'pVD@0V,Q-!B`!"SIi(j+(q"q5KrJIN!"B!!3!!#Q4)380 X,!!CSB@0V,QJ!B`!"SI&0'+(a64LKm8dB!"B!!3!!#Q4&8dK,!!CPFfKV,QJ!Bi! X!!&J!!"a##J!"!3!"!!$rN!LKm8i0!"J!!3!!#Q0%6e4)!!PNEh4SFQph,Q-!!!' XKrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!!ZJ!!!9!!!($i+!!%"!!% X!!2q3#+(mZXd!&!!"!!!+Bd42,N-!"'4[,Q-!E`!"SIi(j+(q"q5KrJIN!"B!!3! X!#Q4)380,!!CSB@0V,QJ!!))!!&`!!"`k#J!"!3!"!!$rN!LKmQP!!"S!!3!!#Q0 X&@&45!!TPH(4bB@aPGLjM!'m!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'& XMDbjS!(B"!B)!!&`!!"`f#J!"!3!"!!$rN!LKphAS!"S!!3!!#Q0'6e91!!TQEh9 XZG'&TELjM!'m!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!'i!!B) X!!&J!!"`b#J!"!3!"!!$rN!LKm8iB!"B!!3!!#Q0&@&"&!!GPH("PFLjM!!!"SIi X(j+(q"q5KrJIN!"B!!3!!#Q4)380,!!CSB@0V,QJ!!!TMJ!!!I!!!(#i+!!%"!!% X!!2q3#+(mZM8!'!!"!!!+Be0)5di!#(0SDfjKE5jM!'-!!D(q"q5KrJINSIi(j!! X@!!%!!!TN5%&$5`!'D'&MDbjS!'-!!D(a64LKm8dBSI&0'!!@!!%!!!TN490)5`! X'CA0SDbjS!'1#!!"B!!!F+JS!!3%!!3!!rj!)SI*TK`!@!!%!!!TR8%089!!(F'0 XdG(NZB`!!!D(q"q5KrJINSIi(j!!@!!%!!!TN5%&$5`!'D'&MDbjS!!!+C)!!!&J X!!"`Q#J!"!3!"!!$rN!LKmjfF!"J!!3!!#QG33e91!!K`Bh9ZDAJZB`"R!!'KrJI XNSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!"MJ!!!+!!!(#)!N!8p!*!$IJ! X"!$d!N!-D!*!$!3!)"'eKD@iJN!-!N!2`!"3!!J!!9,j"6P0*!!4"6P0*!!##!!" XF!!!F5JS!!3%!!3!!rj!)SIiEC`!D!!%!!!TQ68&$33!+6@&M3@aPFR3ZB`"[!!' XKrJINSIi(j+(q"q3!&J!"!!!+C%K"3dX!"QKKBfXZD!"d!!'!!!"m!!!F4JS!!3% X!!3!!rj!)SIGC!J!B!!%!!!TM4%p,53!)C'pVD@0V,Q-!B`!"SIi(j+(q"q5KrJI XN!"B!!3!!#Q4)380,!!CSB@0V,QJ!B`!"SI&0'+(a64LKm8dB!"B!!3!!#Q4&8dK X,!!CPFfKV,QJ!B`#3!```,J!)1d$k`#mY!!!B3!!!!3#3"'!!N"-%!*!J!3)!N!A Xm!*!$B!#3%`3!N"i"%`%#!!%!N!2i!*!$B!#3%`3!N#!"!J!#!*!$p!#3!f!!N"- X%!*!J!3)!!`#3!r!!N!0J!*!6"!#3(`-"!J!&!*!$l!#3!f!!N"-%!*!J!3)!"J# X3!qJ!N!0J!*!6"!#3(NC%!3)!B!#3!q3!N!0J!*!6"!#3(a!#!`!B!*!$i!#3!f! X!N"-%!*!H!C)#!`!9!*!$h!#3!f!!N"-%!*!H!3%#!`!%!*!$f!#3!f!!N"-%!*! XIVJ)$!!d!N!28!*!$B!#3%`3!N"qZ!J-!$!#3!p!!N!0J!*!6"!#3(ki#!`!)!*! X$c!#3!f!!N"-%!*!H!C!$!J!*!*!$b!#3!f!!N"-%!*!H!3%$"!!,!*!$a!#3!f! X!N"-%!*!H!3%$"!!+!*!$`!#3!f!!N"-%!*!H!3%$"!!(!*!$[!#3!f!!N"-%!*! XH!3%%"3!8!*!$Z!#3!f!!N"-%!*!H!3%%"3!3!*!$Y!#3!f!!N"-%!*!H!3%%"3! X1!*!$X!#3!f!!N"-%!*!Ha0`#!`!2!*!$V!#3!f!!N"-%!*!Id3%#!"X!N!1S!*! X$B!#3%`3!N"i&"`3&!"B!N!1N!*!$B!#3%`3!N"i"$`3&!"%!N!1J!*!$B!#3%`3 X!N"m&!3)!%J#3!j`!N!0J!*!6"!#3(bd&"J!A!*!$Q!#3!f!!N"-%!*!H%IX&"J! X6!*!$P!#3!f!!N"-%!*!HEf)$"!!C!*!'$d!!!!C5!!!'9!!!#Q)!!"U`!*!$"!# X3(QCI"JF!AJ#3!j!!!*!$B!#3%`3!N"jdD3B(!"S!N!1-!*!$B!#3%`3!N"i1!JF X)!&B!N!1)!*!$B!#3%`3!N"i"E!F)!"d!N!1%!*!$B!#3%`3!N"m3"`J!(J#3!i! X!N!0J!*!6"!#3(`%(#!!I!*!$I!#3!f!!N"-%!*!I!4mJ!#!!N!0i!*!$B!#3%`3 X!N"lrr`J*!#%!N!0d!*!$B!#3%`3!N"i*4JJ*!#B!N!0`!*!$B!#3%`3!N"l&)!J X*!#F!N!0X!*!$B!#3%`3!N"i",!J*!#N!N!0S!*!$B!#3%`3!N"i"h!J*!#-!N!0 XN!*!$B!#3%`3!N"i#qJN+!#3!N!0J!*!$B!#3%`3!N"i*SJJ*!#8!N!0F!*!$B!# X3%`3!N"mJ(Km!+!#3!eJ!N!0J!*!6"!#3(aXG(J!X!*!$9!#3!f!!N"-%!*!I!3S X,!#m!N!03!*!$B!#3%`3!N"i*,"ND!#i!N!0-!*!$B!#3%`3!N"i##`S,!%!!N!0 X)!*!$B!#3%`3!N"i#,`S,!$%!N!0%!*!$B!#3%`3!N"i#@3`0!$)!N!0!!*!$B!# X3%`3!N"i$"3X-!$3!N!-m!*!$B!#3%`3!N"i#rJX-!$!!!"cD!*!$B!#3%`3!N"m XB("d!03!!(0B!N!0J!*!6"!#3(p`-$3!l!!!FdJ#3!f!!N"-%!*!H!p80$J!m!!! XFcJ#3!f!!N"-%!*!IrJd1!$B!!"c+!*!$B!#3%`3!N"i5+`d1!$F!!"c'!*!$B!# X3%`3!N"mJ$3i!1!!!(-)!N!0J!*!6"!#3(bi0$J!j!!!F[J#3!f!!N"-%!*!HC8X X0$J!p!!!FZJ#3!f!!N"-%!*!HC%d0$J"I!!!FYJ#3!f!!N"-%!*!H"h30$J!k!!! XFXJ#3!f!!N"-%!*!HG'm0$J"&!!!FVJ#3!f!!N"-%!*!HCAN2%!!r!!!FUJ#3!f! X!N"-%!*!HCR31$`"G!!!FTJ#3!f!!N"-%!*!H#'i,$!"C!!!FSJ#3!f!!N"-%!*! XHC'J3%3"-!!!FRJ#3!f!!N"-%!*!HG'J3%3"$!!!FQJ#3!f!!N"-%!*!HCA)2%!" X%!!!FPJ#3!f!!N"-%!*!HF`F2%!!q!!!FNJ#3!f!!N"-%!*!H$J)0$J""!!!FMJ# X3!f!!N"-%!*!Hr`B4%J"#!!!FLJ#3!f!!N"-%!*!HEh!4%J"'!!!FKJ#3!f!!N"- X%!*!I!4)6!&S!!"b#!*!$B!#3%`3!N#!5%`",!!!FIJ#3!f!!N"-%!*!Iea)6!%F X!!"ak!*!$B!#3%`3!N"i$9K%5!%J!!"af!*!$B!#3%`3!N"i*$!m3!%N!!"ab!*! X$B!#3%`3!N"i"%"39!%S!!"aZ!*!$B!#3%`3!N"i4p"-8!&`!!"aU!*!$B!#3%`3 X!N"i4pK8@!%i!!"aQ!*!$B!#3%`3!N"i4r4BA!%d!!"aL!*!$B!#3%`3!N"i"c"B XA!%m!!"aH!*!$B!#3%`3!N"i5"KBA!&)!!"aD!*!$B!#3%`3!N"i%8KFB!&!!!"a X@!*!$B!#3%`3!N"i#!4FB!&%!!"a5!*!$B!#3%`3!N"i"c"JC!&3!!"a1!*!$B!# X3%`3!N"i"!!B(!&-!!"a+!*!$B!#3%`3!N"i"jKJC!&8!!"a'!*!$B!#3%`3!N"j X@6"XF!&F!!"a#!*!$B!#3%`3!N"jdE!m3!#d!!"`q!*!$B!#3%`3!N"rQ%4)!@`! X!($S!N!0J!*!6"!#3(J&3'KX!@!!!($B!N!0J!*!6"!#3)"-8!$-!!"`b!*!$B!# X3%`3!N"i"i3i2!#X!!"`Z!*!$B!#3%`3!N"i"NJ8'!#S!!"`U!*!$B!#3%`3!N"k XTm!d1!#)!!"`Q!*!$B!#3%`3!N"mR!3)!(!#3!f!!N!0`!*!(8!#3!b!!($mm!!' XTm!3+2c`!!DR`""ir2!!"UI!%-Mmm!!'Tm!412c`!!DR`")3r2!!"UI!%T$mm!!' XTm!6'2c`!!DR`"1Br2!!"UI!((Mmm!!'Tm!#3!`3!N!F%!*!("!#3"`3!N!F%!*! X("!#3"`3!N!F%!*!("!#3"`3!N!F%!*!("!#3"`3!N!F%!*!("!#3"`3!N!F%!*! X("!#3"`3!N!F%!*!("!#3"`3!N!F%!*!("!#3"`3!N!F%!*!("!#3"`3!N!F%!*! X("!#3"`3!N2m!N)X(3J#3!`S!N"SF)N*i#NUGcNkk!&41ZJ"Q,$a*6N4B6VS&ENI XkrmSQM%IkrmJQK%kk!'C1ZJ+S6VS'*Nkk!0a1ZJ#S3QG)H2rr5'm!"%KA2c`!!5) Xkrl*1ZJ1#6V83!#"Y!'a1N!#Tp&(i#Pjq!%kk![TR#%U3!'F%#0!!"Nje)$J+H'B X-,$aD6dj&6VS&"#!-4rVrCLD!6R9CMbmm4%&838*RUD!J9b"3)RJ*##!0N!#*4rV Xr6LD!S#kTSb`m8e458dkk"-j(q[mf*S`X2%4548a1ZJ5q)%`J"'F-6VS"YJ5!!*! X$$'Ed6[S&DNj@rpT"q!N3)Np`)+!ZF!(3%9S4dX""qJ!5F!@J,P@25'm!!UQA6Pj X1G5jbFh*M!%Ik"HiQZ!Tm,cJ+J'B#@)p1G8MRrrJq,`!m8IJ+AQ!+@Bm[#+QP)"q XJ3%kk!L4R4%IkrVJQL#!3CqBL3%U4CLi!%!$!,$a$8N9-6VS%,'FN2Lm!2#"-)!4 XR$%kk!(J%J!#3!`aQp%kk"0"1ZJ'F60mIrdjeF!qTb8kk"Aa1ZJ@%6VS%p%je)(J X+l+!P)&!L5#)BB!T"k!!)G!'%'0$#8FRrp*!!L0#*CJ*1G5)!S#iJH!VX)!'J*#* X36qrr`#"23UJ!%M&T!!3!&U!93UG)D3!-)%qTmM)B6VS"RL4BeF%d'#)BEM*R&P* X"C`C53@FD6R8b+2rd6VS"Z0056R8b+2rd6VS"L0056R8b+2rd6VS"MY1Urrj1G8k Xk!8ib+3!-5QN!#QBF9%*U$("MUFP53QEide*1G8kk!965U3!1de*1G8kk!@c5U3! X18N*Q"0056R9$p4!#[P&Qe!aK2caQcP*#CJB+DJ!Arrib)9K")RVpI0+4NNV68Nj Xe-KK1ZJ%14I83!0AB0"KR-L)BEL4R$P*"CK3b+2rd6VS"&Q!B-LMrp%kk!1KJ$M) XSrr41ZJ$`B!C1ZJ%3dSh6NNje)KK1ZJ%%de*1G5"kr4!J1[d35UJ!!'FS-LJ!+'F XL*#J!'&P#3qd!%02S!!69@6,m2ca#'4,S!$dbr+R`88&Ql%(S!%!%J!#3!d"QaNj Xe)(Vmc#!kr-abrh3!5UJ!!'FB[LJ!2@B50LJ!+'F-e%1bU!!%C33L+!!%3HJ!3!5 X!!*!$3'E@)(VmUL"3"%%!%$$"jNS``Nje@Bm[2%024%8r"kQJ)&p3q!TH)!K1G5K Xkr(BLG"J!Nq`!102-6R8SH[aH`[`!3#)d'"JSH[aQdT41G5Kkr%V#r!"!)M3B#*+ Xkr%j1G5Kkr$M#r!"!)M3B%0+kr$K1G5Kkr#E#r!"!)M3B"!D"!*!$%%je6VVrSM) XT!!a+D3!+CJC1Z[qiB!41Z[r@dUN!$Nje)&mb'$3BX&KAbIrk5N*RrNl`)2`JAc) XB0"L`Q&I*rrT+3QIq6[!JqL"I-KJd',"#EJU3!%&Y"Y"!3I!!!M!3Crj1m!!!)#m X!"#p"!!3L,`!),em!"%MR2!!N!#B"5%,%`bJ!+J&)4FM&e%4)3T!$`-(3JNcI!$` XL(dje)#m!"#p"!!3L,`!),em!"%MR-3"1ZJ#F60m!M#)I6R8J,`!%,d%!"#)[!!J X[A`!%51Fa!%kk!(`J!8cI!)`L(dje)#m!"#p"!!3L,`!),em!"%MR-3"1ZJ!X60m X!M#)I6R8J,`!%,d%!"#)[!!J[A`!%51Fa!%kk!!`J!8cI!)`L(dje5S"U(%U"DJa X%J%5"6VS!)%5"6R9%J%kk!"C%J%5"6R9+J@S+4)&1ZJ!'4)"1G5im!!$rrl+!B`B XL!(!!6R@`Kf)-J-&)3$)!3N")3%jeXSGL'Li!3N")3)$"5%")4ci!5%H1`6!(5%F Xb"dje*!!Q!H+)iSQbKf,iJ-(!Kc)$`X!Z!dK(cX")4p+(C3L5JQ)%4)&1G90!B14 Xq!&(i#PjCMbm'2`HTS#!IC`!!VLC!@Bm[#kQP*KmJ#bJ$8NI[4e*(1JGJ&PQ2,`B Xr"kQJ)"pR!!#)8NF'K!!!Irj9Mbm!UDB`(`J!!!9Qh&$i#Pl24CT(CK`J!k"!,`Z XTSL!6C`!!@Lm,UC)S8b",S#P`!8je)!5K(L!)C`!!3LK),`ZTSL!6C`!!0L",)!0 XJ'&Q2,`Br"kQJ)"pR!!!L8NFJ3#!m!!"rrLm))&!L60R!S#kTSe(0rpUCa#C-F!& X1G5",5N9Q"+!M6R@J(dje-MbTm%2kqXC1ZJ"S-MbTmN2kqbK1ZJ"F-MbTmd2kqaa X1ZJ"3-MbTp%2kq`K1qJ"%,`JJE`!),fJ!!J!))(J#TR!-d*!!X,J#UQBN6VS!C$) XmUI"1ZJ"%-MbTmNkk!$`b2+Rc6VS!0$)mUI41ZJ!X)&p1G6!"S8BN5(!-5RJ#MQS X%T4jJ!U%H-!'J4c$m6VNJb6$m6[NJbNje-!'K4L*S!!LJ(c!")%QJ4dje!*!%6R8 XJ1[riC`3J3%+3!%je)(J#TR!-d*!!X,J#UQF!qRC1G3!!!3#3!fMQ!!"RjJ!!"`S X!,KPX"!`!N!-F"`)!$NK"8dJ!N!0k@Np143#3!iC,58j%!*!$NPG-6d-!N!1H58j X%@!#3!kT$6d4&!#!!YN4"9%%!!!*#8e458`!!!Nj%8N9-!!!#@P0C69-!!!*Q3dj X'4`!!!R*659T&!!!#IN0548`!(J++4%*94`!H!rjB8eP0!"i&FJ!"!*!%!B3!-*K X)!!$rr`!!"AJ!-*JN!!$rr`#3"6#B3!!!rrm!!!&F!$#B4!!!rrm!!%9m!$#B+!! X!rrm!!&h!!$#B)!!#rrm!!&iN!*!&!rrr!!"H,!#3"36rr`!!AM3!N!8&rrm!!&i Xm!*!&"[rr!!"H4!#3"3Irr`!!AN`!N!8)rrm!!&j8!*!&#Irr!!"HA!#3"3Vrr`! X!AQ3!N!8,rrm!!&jX!*!&$2rr!!"HG!#3"3hrr`!!AR`!N!81rrm!!&k%!*!&$rr Xr!!"HM!#3"4$rr`!!AT3!N!84rrm!!&kF!*!&%[rr!!"HT!#3"42rr`!!AU`!N!8 X8rrm!!&kd!*!&&Irr!!"H[!#3"4Err`!!AX3!N!8Arrm!!&l-!*!&'2rr!!"He!# X3"4Rrr`!!AY`!N!8Drrm!!&lN!*!&'rrr!!"Hl!#3"4crr`!!A[3!N!8Grrm!!&l Xm!*!&([rr!!"I"!#3"4rrr`!!A``!N!8Jrrm!!&m8!*!&!Irr&!"JS!!`Q!`!!2r Xr!!"I(!!`Q"`!!2rr!!"I)!!`Q"3!!2rr!!"I*!!`Q"J!!2rr!!"I+!!`Q"!!![r Xr!!!"D!!`Q#crr`!'!!!"GJ!`Q$!!![rr!!"I,!#3"32rr`!!Ac!!N!8%rrm!!&m Xd!*!&"Irr!!"I1!#3"3Err`!!Ac`!N!8(rrm!!&p!!*!rr!!"I4!#3"3Rrr`! X!AdJ!N!8+rrm!!&p-!*!&#rrr!!"I8!#3"3crr`!!Ae3!N!80rrm!!&pB!*!&$[r Xr!!"IA!#3"3rrr`!!Af!!N!83rrm!!&pN!*!&%Irr!!"ID!#3"4,rr`!!Af`!N!8 X6rrm!!&p`!*!&&2rr!!"IG!#3"4Arr`!!AhJ!N!8@rrm!!&pm!*!&&rrr!!"IJ!# X3"4Mrr`!!Ai3!N!8Crrm!!&q)!*!&'[rr!!"IM!#3"4[rr`!!Aj!!!*!&(2rr!!" XIP!#3"4hrr`!!AjJ!N!8Hrrm!!&qF!*!&(rrr!!"IS!#3"5$rr`!!Ak3!N!8#rrm X!!&qS!*!&!rrr!!"IV!#3"36rr`!!Al!!N!8&rrm!!&qd!*!&"[rr!!"IZ!#3"3I Xrr`!!Al`!N!8)rrm!!&r!!*!&#Irr!!"Ia!#3"3Vrr`!!AmJ!N!8,rrm!!&r-!*! X&$2rr!!"Id!#3"3hrr`!!Ap3!N!81rrm!!&rB!*!&$rrr!!"Ih!#3"4$rr`!!Aq! X!N!84rrm!!&rN!*!&%[rr!!"Ik!#3"42rr`!!Aq`!N!88rrm!!&r`!*!&&Irr!!" XIp!#3"4Err`!!ArJ!N!8Arrm!!&rm!*!&'2rr!!"J!*!''Irr!!"J"!#3"4Vrr`! X!B!J!N!8Errm!!'!-!*!&(2rr!!"J%!#3"4hrr`!!B"3!N!8Hrrm!!'!B!*!&(rr Xr!!"J(!#3"5$rr`!!B#!!N!8#rrm!!'!N!*!&!rrr!!"J+!#3"36rr`!!B#`!N!8 X&rrm!!'!`!*!&"[rr!!"J0!#3"3Irr`!!B$J!N!8)rrm!!'!m!*!&#Irr!!"J3!# X3"3Vrr`!!B%3!N!8,rrm!!'")!*!&$2rr!!"J6!#3"3hrr`!!B&!!N!81rrm!!'" X8!*!&$rrr!!"J@!#3"4$rr`!!B&`!N!84rrm!!'"J!*!&%[rr!!"JC!#3"42rr`! X!B'J!N!88rrm!!'"X!*!&&Irr!!"JF!#3"4Err`!!B(3!N!8Arrm!!'"i!*!&'2r Xr!!"JI!#3"4Rrr`!!B)!!N!8Drrm!!'#%!*!&'rrr!!"JL!#3"4crr`!!B)`!N!8 XGrrm!!'#3!!#3"4lrr`!!B*3!N!8Irrm!!'#B!*!&)2rr!!"JR!#3"!9YDf&SE!% Xb9+d: END_OF_FILE if test 30018 -ne `wc -c <'mac/NH.proj.hqx'`; then echo shar: \"'mac/NH.proj.hqx'\" unpacked with wrong size! fi # end of 'mac/NH.proj.hqx' fi echo shar: End of archive 30 \(of 56\). cp /dev/null ark30isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 56 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0