[comp.binaries.mac] Daisy 1.0 Generic Printer Driver

earleh@dartvax.UUCP (Earle R. Horton) (11/10/87)

[Daisy 1.0 Generic Printer Driver]

This is Daisy v 1.0, a generic, text only printer driver for use with
the Macintosh and most serial printers.  This version fixes a bug in
either the beta-test version or in Microsoft Word which did not allow
Word to print with it.  Also, some of the code has been cleaned up so
that there is less chance of incompatibility with older versions of the
System file.  System 4.1 or newer should still be used for best results,
however, and Chooser 3.1 (or maybe 3.0) is required.

If you distribute copies of Daisy, please include the following text
file, or a word processor file with the same informational content.

---
Daisy: Version 1.0. Device Independent Printing, at last.

This is a standard Macintosh Printer Driver, as far as I can tell from
the limited documentation supplied by Apple.  It prints in draft mode,
at ten different baud rates, with options for CTS or XOn/XOff flow
control.  Strings which control printer action are set by a dialog box
which is accessed from the Chooser desk accessory.  It is essential to
have the Chooser in order to set the baud rate and other parameters.
Version 3.1 (perhaps 3.0) or newer of the Chooser should be used.

As sent, this Printer Driver has settings that are compatible with a
Tandy DMP-110 in draft mode, elite pitch, 1200 baud, phone port, CTS
flow control.  These can be changed through the Chooser interface.  Also
available are special strings to initialize the printer, end a file, or
begin a page.  Control characters are denoted thusly in the Chooser
dialog: control-M = '^M', escape = '^[', and so forth. 

Daisy v 1.0 works with:
	Microsoft Word 1.05, 3.01
	VersaTerm PRO 2.00
	WriteNow 1.00
	MacWrite 4.5, 4.6
	MockWrite 4.3
	Finder 5.5
	System 4.1
	MacTerminal 2.2
	A bunch of printers.
	Any properly written Macintosh application (hopefully).
	All Macintosh computers (maybe).
Daisy does not work with:
	Programs that send ImageWriter escape codes directly to the Printer.
	I suggest that if you find one of these programs, and that if you
	paid for that shabby excuse for a Macintosh application, then you
	should write to the manufacturer expressing your dissatisfaction
	with the sleazy trick they have played.
Daisy does not:
	Provide the same left margin for low-level printer calls as for
	the high-level printing code.  The is my oversight, sorry.  Most
	people won't even notice this, but those who do may be moderately
	annoyed.

Because the driver is written to work with a large variety of printers,
there are some limitations when compared to device-specific drivers such
as ImageWriter and LaserWriter.  It assumes that all text is mono-spaced
and of the same height, and communicates this information to QuickDraw
and the Font Manager.  For this reason, best results are obtained from
word processors when the text on the screen is in Monaco 9, 11 pixels
high, 6 lines per inch.  Perhaps other mono-spaced fonts will give
acceptable results.  Attempts to print justified text may not produce
the expected results.

Daisy tells the application that a page is 8 1/2" wide by 11" high, and
that there are 65 lines out of 66 that it will print on the page.  The
missing line is to allow for the edge of the paper.  Daisy does not
impose left or right margins, allowing the word processor to handle
this.  In the "Page Setup..." dialog there are options for 10, 12, or 15
characters per inch horizontally, and Daisy will give the application a
different "resolution" for each choice.  Daisy can print 132 characters
on a line, and 66 lines on a page.

This is the final version of Daisy that I intend to distribute to
USENET, or to give away.  I have submitted an article to MacTutor
magazine, with source code, describing how I wrote Daisy.  If you want
the source code or more features, wait for the MacTutor article.  I have
satisfied myself that Daisy fulfills my goal in writing it:  It allows
me to make use of non-Apple printers with my Macintosh and with properly
written word processors.  A side benefit, to you, is that it may work
with your Macintosh.  I am a graduate student at present, and can afford
neither the time nor the money required to test this with all
configurations of Macintosh computers.  If the documentation in Inside
Macintosh is correct, and if your word processor follows this
documentation, then it will work for you.  Otherwise, maybe not.

I do not want bug reports about Daisy v 1.0.  Your sole remedy in case
of incompatibility with your Macintosh or word processor or future
operating systems is to get a copy of the MacTutor article (possibly
November or December, 1987) and fix it yourself.

I may answer requests for the source code on disk, but be prepared to pay...

-- 
*********************************************************************
*Earle R. Horton, H.B. 8000, Dartmouth College, Hanover, NH 03755   *
*********************************************************************

---
(This file must be converted with BinHex 4.0)

:"84KDA0j!&"549*%BA0C)!#3"cL8!pB!N!3"!*!$0J`!!$8-!!!#L!1&"MS!!!)
!N!-)!!!%!!!''3&6!h0bBfPdE'9N!*!$"84KDA0j!J#3&3%[!*!NRBeHm3#3"MK
l!*!''!#3"!`!N!T)!!!-!!`#2`!-"F%!$!#3B!%!N!9rrrrq3!!!!N!!!!*!!$J
#3!"&JN!"aN*!!N4#3!3S3N!#(i*!!rj#3!3p3N!#A)*!!C4#3!#53N!!Ni*!1()
#3$a-!N!FJ!*!!i!#3!(!!N!#m!*!"(!#3!K`!N!)!!*$rm!#3J"!!N(rJ!*!J3!
#3%)!!Rrrrri!N!KrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrj
rrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrj
rrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrri!N!F(8&*&8J#3"J`
,9Q9bFfP[EL!a,M!!N!-F4'&c@3#3!`&*3diM!*!&J%C548B!N!@!!*!$$`!&!Pj
0"&jEAPF!!Pj-!*!%#!!"!!)!N!F("P0PG(9`b3#3!aB98f9bD@&X)&"bD@jdCA)
J4(*TGQ9b!*!$6!!#!*!&(J!m!#i!M!3%4'pZC3#3"4i!S!!Z!2!%"&0dEh!!N!8
)!!J!'!%N#"K%B@PcH6SJ5@jcCA*d)%jPH(3J8fKPCA3!N!-B!$)!&!#)!Hd!!3#
3"`(J!30+Ef)!N!-Z!#J!8!%S!DJ!!3#3#2!3'90PFQPKE#"3Eh*d)%0[EQCTCh9
bBA4TEfi!N!-B!"m!&!"i!HJ!!3#3"`(J!!06G'`!N!-H!$!!-`"N!5`!!Irr!*!
'hrm*6Q9iG#"3B@GP!!!(4Nlk!""1qJ(k6[S#0%lk!RC1G8j@rq`[#eQ25(P34%9
'3QHTS#"I,8Mrp#"Zrr5J+8Ki+Xa1ZJ@5@)mY32ri5S"Q$(#8-F!*4(!!B!!"RNU
Z!!aQ0%Ki!,*1ZJ9Z@)mY32rm5S"Q&LmZrrK1ZJ9d@)p`P$(!#84`!'!!!A!JE[r
mF!%43!#`B!iYEJ!-rr`JE[rm3LJ!X%kk"AiQ3%(V!(`Y52rX)'i!%#"33qX$f(!
G)YK4b2rm)'lrr#&ZrrJ!V%)V""`[,[rmU'mJE[rm5'J!E+MU3IS$4#*Zrr`M5!"
X3IS$pL*Zrr`M5!#8)'lrr%(S!'`LE[rm)dJ!D#"Zrr``U`2D)'lrr%(S!""$k`2
J)0NJf5"Zrra#D!!1)'lrr%*S!!`JE[rm3QJ!#L"Zrra#D!!),blrr+Kc2bX$jMm
V!q5SGM!V!qT%3$)V!qK%36m!2`'SGcmV!pUSFLmZrrK1ZJ3@@)mJE[rXF!Fa3!!
D)'lrl#&m!!%!N!-F)'lrl+!%F!%h3!435UX%(QB)3IS%Z#G)""jCMdKj8&*&3cm
m!!'TS#"I,8Mrm%UZrr"R*#mZrr#TSL"Zrr!J8%2V!pK`(5$C8FMrr#mZrr#TULm
Zrr#TSc!V!qb3!'X$k%M!JI`!#cG!!pBJ,[rm*Pp1AL"I6qm!$#k!6Y"0@9"56e"
&6Nj@rrJJEJ!),bJ!V%kk!p*BMbmZ!!LSI5"Z!!K++!#`C`S[,J!)6VS$Z&L26Pi
JAdr[!!41d%eC8&*$6%p66PB!!#m,6VS$d#C!5Ui!#'F-)'i!#%2V!q!Jf5$C,bi
!$+Kc)'i!$#mS!+a1ZJ--@)mQAdjH)&p2l`!)6Y"0@9"56e"&6Nj@rra)j`-`6VS
$L#C!3HX!I#e)rr``+`43X'X%&Q`)8QX%8'!!!9S`+`438QX%8,"V""K[3$(m!)!
*4(!!%#X#LNT!C`!"1L"Zrra`"6&!!"T"k`+,)Qlrr#0)!"a`!"!V!SSJE[rm)8!
!)#"ZrrbJ"'!!!3a++`2hCJT1ZJ115N"R!!$f)'i!##4S!+a`!"!V!N*+3'FU)'l
rr(!&-8!!'N(V!N-LE[rm)dJ!((!!%#X#3L"Zrr`K3!!J)'lrr+!%IJ"J!!#Q)'X
%(Nk3!!ai!)!*4'F!!+S`"m(m!+E3LL"!$&$rrfC12$`!T$!(`I`!TY#+8dB`4Y#
))%"`!"!S!!)-3!!JCq454L"Zrra`"6&!!"S`"m(m!+E3LP5!)'lrr#&!!"``4L*
Zrr`M5!!J)'lrr+!%)'lrr(!(-8!!'M!V!pC63,j!E!iJE[rm)A`!!`#3!aaJ$#"
Zrr`KI!!#!*!$(#"ZrrbJ"&*(-#X$eT!!4dT!CJ$r8Q!'-I`!J!P%60m-`%jH)&p
2l`!%6Y"0@9"53da28dj@rqj)E[riU(3JE[ri$&$p!@B)F!Fp32rbB"JJE[ri$&$
p!fB)F!8p32rbB!C`"Me!rr)JE[ri,@J!V2rd5'lrr+LD5'lrr+K`-'lrrL!)JHl
rmMe!rr!`E[rm)!L"r!!,28$rlM!Zrql"r!#Qd+lrp$"Zrr$3L$mZ!"48J#m!,bi
!%%kk!9C2l`!+-#lrlX(m!+E3V[rd)%!`[2rr-#lrmX(Z!"3r!%*RU*41AL"I6qm
!$Nl369P69%4849K19[rm5'lrr+Kd)'lrr!a3r3&Q$#"Z!!K`"c&!!!4J)#"Zrr`
-82d$CJ`JEJ!)F!8a3!!%B!SJEJ!)F!Ba3!!%)'i!#(!*-)!JEJ!)F!)a3!!#)'i
!#%*S!!BJEJ!-F!%`J#"Z!"!`J#"Z!!a`"M&!!!)JEJ!))Qi!%$0S!!3!!L"Z!!J
`+!!%`Hi!'%jH)&p2l`!52S"1d%eC8e4%9%9B6PErqR"#28$rrL"Z!!J`[!!!)'i
!#&5),8MrqL"ZrrS`2!!S)M`JN!A"8FMrr&0Zrrj+E[rqC`S'VJ#3!kB!#'$'6Pj
1G8eC3da&39*36PB!!#!Z!!LK(L!)6Pj1G8&-6%p$394&6PB!!#"Z!!LJ(djH6R9
'8N9&)*!%6PB!!#"Z!!JLEJ!-3S!`,J!3S#j1ANje3N028&NJN!019[ri-$`!!Z@
!)(J"(0$!,9$rr#"Zrr`J8#eS!"6rq#"ZrrJJ%%jH6R9%8PC58e428Nj@rqj9Mcm
m!!K)E[r`UA!3(dS!CbBJ2!#3!rr!V[rb9Bm[!+KV-"m-3!!ZCJi),J!!rrjR"M(
m!)!*4%jH6R9$5%9$5d&#6dj@rqKCMcmmhrp#TdKirrqTI#"I,8Mrr,$m!!"Q"R!
!B!!!EUK3,blrr$mm!!&)E[rd5'lrm%KZrqLTM8KZrrLSG#mZrrbSFcmm!!-r2!!
$U*Y)E[rS2ccrr$mmrrbSU8KZrqJr2!!32c`!%+L`3UG)E[rfUC%[,[rmUB-[,[r
iU(--EJ!#rrCQ"(!!B!*`!8jH6R9A38P86N9B9)!!"di!!!%%XJ"@c[rbCJS%KJ!
"!!"UjR!!N!-2H%lk!#"1qJ#-6[S!X%lk!041qJ'f6[S$&%lk!ra1qJ4`6R919[r
m@Bp)H9"5480#CkQJ)&mY52rm5Ulrr'B-,bi!#%kk#qKBMf!f,blrr+QL9Bm[,[r
m6VS$[K!I5J"R$#mZrrbTULmZrrbTX#"Z!!JLE[rm)P%J8(!G)0P4b2rm6PiJAdr
[!!41d%eC8&**6P4%6PB!!&@2,bi!#%Kk!%41ZJ+)%"p1AL"I6qm!""k!6Y"0@9"
58e4-4%j@!!"9MbmZ!!K)HJ%#6VS#B"!I6PiJAdr[!!3HJ%l369P38NT23N419[r
m6VS*@#e!rraCMcmmi!![,[rm5(MrrkPm)&mJEJ!))&!-D2d"!!*Q'Mmm!!Br2!!
%2c`!"#mZrra1ZJP-6qm!#Q"1)'i!##"3$'Mp!J!#CKSr2!!'2c`!"$mm!!8[,[r
m6VS**%r[!!TJ*L"Z!!JJ8!aSr3-!!QBB2c`!"Mmm!!3r2!!',blrr%kk#2a2l`!
+2c`!#$mm!!Fr2!!(,blrr%kk#142l`!+3IS$UL*Zrr`M5!#U3IS$j#*Zrr`M5!#
Z)'lrr#&Z!!J!XL!Zrra1AL"I6qm!"#k!6Y"0@9"58e4-58j@rmT1ZJKb,8$rr&Q
22ccJ!5mZrra)H2rrUA`JAcmm!!Br2!!&2c`!"5mZrra1ZJKd6qm!#L"Z!!JJ8%S
S!"pQ'Mmm!!ir2!!02c`!$LmZrra1ZJK36qm!#Q!B2c`!$Mmm!!dr2!!0,blrr%k
k#$C2l`!+,blrr$mm!!G)E[rk5'lrpNKZrqkTM5"Z!!JJ8$eS!$lrqM"ZrrT)E[r
+,`K1ZJKU8)m[,[rf5'lrbUQ2,blrr$mm!!P)E[rk5'lrpNKZrqkTM5"Z!!JJ8$e
S!%$rqM"ZrrT)E[r+,`K1ZJJZ8)m[,[rf5'lrbUQ2,blrr$mm!!Y)E[rk5'lrpNK
ZrqkTM5"Z!!JJ8$eS!%,rqM"ZrrT)E[r+,`K1ZJIb8)m[,[rf5'lrbUQ23IS#5#*
Zrr`M5!#U3IS&!L*Zrr`M5!#Z)'lrr#&Z!!J!XL!Zrra1AL"I6qm!"#k!6Y"0@9"
55Np#58j@rq4CMbmZ!!`JEJ!)6T!!,9rrr#"Zrr`YD!#Zrq3JE[rm3LJ!Yb"Zrra
#+!#f5'lrq+Kd,blrr+Kc,blrr+N9,blrr$mm!!&)E[rf5'lrm%KZrqLTM6mm!!-
r2!!$U*Y)E[rS2ccrr$mmrrbSU8KZrqJr2!!32c`!%+L`B"`JE[rm,bJ!UNKZrr5
TN5mZrr`r,[rd)'lrj%k3!#"Zrra++!#hCpS[,[riU(-[,[rmUB)[,[rm6VS)&PL
2)'lrr%SS!,CR$&@2,bi!$%kk!#!3(b"Zrr`3+!#f6PiJAdr[!!JHJ%l369P38N4
-4de19[rm,bi!#%kk"[*BMdS!C`4`!'"1@Bp)H9"5480#CkQJ)&mY52rm,blrr+Q
L5Ulrr'F1,blrr%kk"X*BMdS!CJ`[,J!)6VS(cPL2B"3JEJ!))Qlrr#*4)&"`(5$
C8FMrr(!"6PiJAdr[!!3HJ%l369P38PC"6%P19J!!)'i!##*Z!!`L85"3-@N!!J!
#)'i!##*Z!!`L85"33HJ!2N2T!$j`"#$C8FMrr#"Z!!JLEJ!-)P%J8%(S!#j$k3!
Z)0NJf5$C)0NJEJ!))Qi!$#*4)&""k!!33qN!%#$C)0NJEJ!))Qi!$#*4)&"8L&5
*)0NJf5$C-0NJEJ!))Qi!$#*4)&""k!!J3qN!)#$C)0NJf6$C6PiJAdr[!!K1d%e
C8&*+6d*06PB!!#"Z!!`-8!!$CL)JEJ!-)$`!N!2r`+J!!Jb!!*!$$@B-)'i!#(!
"-)"`!@!#F!"1AL"I6qm!$"k!6Y"0@8C*6&4&8Nj@rh3-EJ!%!!KY*!aZ!!B!#'i
F2c`!"Mmm!!3r,J!),bi!#Nkk"-C2l`!+B!!#3!aZ!!F!#'dN$'i!#!!)EK`r2!!
)2c`!"cmZ!!J[,J!+6VS%QNr[!!TJ!!)8$'i!!3!)CJ!"m%(ZrhSY52pf5'lrGNk
k"MKBMb"Z!!SJD!#b)&!`V[pk)'i!#L"S!,)J8&5)3qlrI#$C)0NJf6$C)'i!#L"
S!,)J8%(S!#j$l[qS)0NJf5$C)0NJEJ!+)'J!XL"33HJ!%%2ZriSJf5$C)'i!#L"
S!,)J8%(S!"K$l[q5)0NJf5"Z!!SJD!#b)&""k!!J3qlrQL$C)0NJf6$C,bi!#Mm
m!!4)E[rq5'lrqNKZrr+TM9@2,blrqUPJ-"m-3!!"CK!JEJ!+)'J!XL"3-Acp!3!
#,bi!#Mmm!!9)E[rq5'lrqNKZrr+TM9@2,blrqUPJ-"m-3!!"CK!JEJ!+)'J!XL"
3-Acp!J!#,bi!#Mmm!!C)E[rq5'lrqNKZrr+TM9@2,blrqUPJ-"m-3!!"CK!JEJ!
+)'J!XL"3-Acp!`!#,bi!#Mmm!!K)E[rq5'lrqNKZrr+TM9@2,blrqUPJ-"m-3!!
"CJ!!H#"Z!!SJD!#b)&")D!!)6VS%Y&L2)'i!#L"S!,)J8%KS!""1ZJ5J@)mJEJ!
+)'J!XL"35'J!*Nkk")aBMb"Z!!SJD!#b)&!pD!!Drh3JEJ!+)'J!XL*Z!!SLD3#
b)P%J8$&T!"`!'L"Z!!SJD!#b)&!aE[pd!"`JEJ!+F!%43!#h)'i!#R!"%8!!YQ!
D$'i!!J!)CK)JEJ!+F!%43!#h)'i!#N)S!,C1AL"I6qm!"Nl35%&14%a&8e419[r
+$'i!!3!)CJ!"CL"Z!!T`!4&!!,FJEJ!+F!%43!#f,bi!#Mmm!!9)E[rq5'lrpNK
ZrqkTM9@2,blrpUPJ-"m-3!!"CL3JEJ!+)'J!XL"3F!%a3!!q)'i!#L"S!,)J8$&
m*`m!3'!!!(i[,J!+2c`!"dKZrrj)E[rf5'lrlUQ0,blrpNKZrmUTN!")E[rk5'l
rbNkk!Pa3Mb"Z!!SJD!#b)&!aE[rm!$i[,J!+2c`!#8KZrrj)E[rf5'lrlUQ0,bl
rpNKZrmUTN!")E[rk5'lrbNkk!Kj3Mb"Z!!SJD!#b)&!aE[rm!%![,J!+2c`!#dK
Zrrj)E[rf5'lrlUQ0,blrpNKZrmUTN!")E[rk5'lrbNkk!H"3Mb"Z!!SJD!#b)&!
aE[rm!%)[,J!+2c`!$NKZrrj)E[rf5'lrlUQ09Bm[,[rfU@!`(`a!!!&Q%L"Z!!S
JD!#b)&"#+!!IB!!!dL"Z!!SJD!#b)&"`!4&!!"pJ!!#q$'i!!J!)CJiJEJ!+F!%
43!#hB!!!U!aZ!!i!#'BU2c`!$Mmm!!dr2!!1,bi!#Nkk!-T2l`!+)'i!#L"S!,)
J8%)S!"pJ!!"f$'i!$3!)CLSr2!!12c`!$6mm!!d[,J!+6VS!Q%r[!!SJEJ!+)'J
!XL"3F!%43!!IB%)-EJ!&!!KQ'Mmm!!Br2!!&2c`!"5mZ!!T1ZJ"Q6qm!#Q!J$'i
!"J!)CKJr2!!'2c`!"6mm!!B[,J!+6VS!4%r[!!T1AL"I6qm!"Nl35%&14%a&5Np
19[rm)$`!N!2JS4iY52rm5Ulrr'B'-$`!'DR*)#lrr%jH6R988&"54%a(38j@rr"
+EJ!1Ce)`,J!18d!p32rmB$3[,J!)2blrr%KZrrj)E[ri5'lrm+Q0-#lrr,"Z!!a
Q$#mZrrJr2!!"U@0J##mZrrK#CkPM-#lrr&*Zrr`b,J!3NN"+3@Dk6Pj1G9"98dK
5384*6PB!!#"Z!!`J,J!)2c`!!+RZ6Pj1G8j969428e456PB!!#"Z!!Jr2!!"UHi
JEJ!-))"1ANje8e4558j(9%p19J!!)'i!##"3$&!!!fB!!-)JEJ!))&!-D2d#!!*
R(L"Z!!JJ8!aSr3%!!QF3)'i!##"3$'Mp!`!#CJ!!PL"Z!!JJ8!aS!%)!"'B!!)B
JEJ!))&!-D!")!!CQ!!"f)'i!##"35QJ!#'B!!'JJEJ!))&"+D!!+CPSJEJ!))Qi
!##*4)&!`+!!@N!"T!")-3!-BEN!JEJ!))Qi!##*4)&!`+!!8N!"T!"!-3!,@ELB
JEJ!))&"++!!IC`iJEJ!))&!-+!!"!"pQ$#"Z!!JJ8%SS!%4R"(!!B!*`!8jH6R9
@38a*4##3!dj@!!!JEJ!)S"p1ANje4P*&45#3"%j@!!!JEJ!))"")3#$!)"")3##
!6Pj1G8C-59"548086PEra%MR!$!JEJ!))&"`!c#!)'i!##"3-Acp!J!#)'i!##"
3F%)a3!!%)'i!##"3F%Ja3!!')'i!##"33QJ!##"Z!!JJ8%*S!!SJEJ!))&!aI!*
N!!iJEJ!))&!aI!,@!!`JEJ!))Qi!##*4)&""k!!38)NJf5$C)'i!##"3-A`#!!!
B)'i!##"3-A`&+!!D)'i!#$em!(MrrNKZrrj)E[r`2c`J$URV5'lrm%KZrrSr2"!
3UHY$qJ*`,9RrjLeCrqSp@IrZ5'lrqNKZrqBr2"!%UHY)E[rQ2c`!&URV5'lrjNK
Zrq3r2#!3UHXJ8$&Zrq3!(#"Z!!JJ8%)S!"iJEJ!))&"`!4&!!"mJEJ!))Qi!##*
4)&""k!!J9)NJf5$C)0N`f5"Z!!JJ8%*S!#iJEJ!))&"#D!!`)'i!##"33QJ!-L"
Z!!JJ8%*S!$3JEJ!))&"#D!!f)'i!##"33LJ!1#"Z!!JJ8%)S!$NJEJ!))&"#+!!
k)'i!##"33LJ!1b"Z!!JJ8(!#%8!!2#"Z!!JJ8%)S!$dJEJ!))&"`!6&!!$iJEJ!
))&!aI#F2!%!JEJ!))&"`!6&!!%)JEJ!))&"#+!"%)'i!##"3F!%43!"&)'i!##"
33UJ!4L"Z!!JJ8%+S!%SJEJ!))&"#D!"1)'i!##"33LJ!8#"Z!!JJ8%)S!&%JEJ!
))Qi!##4Z!!JQEJ!),9$rr#"Z!!JY8Iri)Qi!##e5rr3NEJ!),92rm#CZ!!JY82r
X)'i!##e4rqJLEJ!),9,rj#4Z!!JY8rrJ*Qi!##e3rp`JEJ!),9(rf#*Z!!JY8[r
8*'i!##e6rp!QEJ!),9$rc#"Z!!JY8Ir))Qi!##e5rm3NEJ!)*&*#DJ"f)P&#D3"
d)&"#D!"b)&0#D!"`)'lra%*S!'iJE[r)3QJ!E#"Zrma#D!"U)'lrd%*S!'JJE[r
83QJ!CL"ZrpK#D!"N)'lrh%*S!')JE[rJ3QJ!B#"Zrq4#D!"H)'lrk%*S!&`JE[r
X3QJ!@L"Zrr"#D!"B)'lrp%*S!&BJE[ri3QJ!9#"Zrra#D!"560m-!%jH6R905d4
&4N&96%!#L!#3"i!!$i!!!!%!##`!N!0&CbBJ,!!LX+`!*QBF!*!$0Nlk!!41G8j
@!!"1AL"I6qm!&%l369P38P"*3dD!!!!q!*!$r!EfUf!08h4bDA"`C@3J8%4&4J!
!$"S-!*!)9J"`!))!P!#Q"bjB8(*TER3!N"KJ!!,d6[S"9Nlk!@C1qJ&f6[S"MNl
k!F"1qJ(F6[S"qNlk!KC1ZJ"b6VS!d%kk!34`!%kk!(*V!!%36[S!Z%kk!&K1ZJ$
ZF!&1ZJ"F6[S!E%kk!%C1ZJ$FF!*1ZJ"+6[S!@Nkk!$41ZJ$+F!01ZJ!i6[S!5%k
k!#*1ZJ#iF!41ZJ!Q$%$rk'F!!$)-3!!"CJ!!Z(!!6[S!AL!I51F!1#4)*NNJ3%l
32`![#bm+6VVr8Nr[!!Se3!!36R8-3!!"CaB)+J!"!!CQ%#"+)NY-ha`!,cJ)r%j
eF!![!#",T5JL@`JE!!CQ$+!U#"-!"QF%)%QJ+L!I60mF!%je5UX!&'B`)$`!!)!
!S%!`+`!B4N$V5!"!`!"3q!TH@Bm[2%4"9%%r!+QJ)"mR3!!8C`3[!+Q56R8J+`!
8C`iJ3#K3S#P1F8ja6R&1F8je2`!J+`!8C`K#U`!8)%#J)c!IB*JJAc)B0"L`@&I
*rrT+3QIq6[!Jr#"I-KJd',#B9mRrqNT#Crj1m#$k)&mb'$3BX%*Z#T!!3@d'd%"
"m!!#-""RrNl`!!!J,`!%,d%!"#)[!!J[A`!%51Fm!#3!*J&)3X6$+!!U!8K&b-A
84%K#N!2!`G##60m!2#)I6R8J,`!%,d%!"#)[!!J[A`!%51Fa!%kk!*a-h`#-)Kp
1G5![!!3[33!%)Lm!##pI!!4)jc%!6VS!I#!"60m!M#)I6R8J,`!%,d%!"#)[!!J
[A`!%51Fa!%kk!#a-h`#-)Kp1G5![!!3[33!%)Lm!##pI!!4)jc%!6VS!$#!"60m
!M#)I6R9+J'SF5S&U$%5!4)&1ZJ!J4)&1G85!6VS!&N5!4)&1G8U"DJT%J8kk!!C
%J%je,M`!!2rrXS"M"L)!F!"1GE#(BJb!`8K!-J"#3%K!6R@bKf)D,J"#3%K!J-&
)3%K(2J")4il"-!G)4c)(6R8N!#B"iSMLLE+(B[L!`F#(-J2#`#i$5%I1`%K(dSG
P#*+#BJ4%J8je8d"Jj!#3"%j@rrBJEJ!-5UJ!&'Bf$'i!"!!3Cbi[,J!-6VS&k&L
2$%$rrfBH9BqTVc!I-F!*4#"Z!!`r+!!B6VS(+P52F2pJ!!(d)'i!$#mS!"41ZJF
!@)mJEJ!-,@J!&2rk)'lrqLK3)'i!$%US!"4R!!()-#i!%%kkr+)!N!-%!ES!#J'
f!)B"F!'B,bi!$%kk"AKBMeQ25(P6G'jR2ccJ!+QJ)&mT5!"iX2`!!'F@@Bp)H90
88L-r22!3UD!JAl$m!!"Q&#"Z!!`r+!!B6VS'QP52F2pJ!!&N,b`!H+QL,b`!H%k
k"N*BMdkk!X"1ZJ&B,b`!H%kk"NCBMd+X!(K"l!#N+8J!MQ!!!6!JEJ!)-#J!'Nk
kr!B!"!!)!4i"(!!)!4J!)J!b)'i!##PS!"`!k#"Z!!JTD!!J!1a"l!$)S!0J!!$
f)'i!##mS!"a1ZJ3b@)pJ!!$N)'i!##eS!"crpL"ZrrC`"$#!)'lrpN)S!!3JE[r
f3LJ!"5"ZrrBKE!,+!!JJE[rf)@`#bJ!-)'lrpJaSr3%!"QBL)'lrpR!+-8!!!L"
ZrrC`"c&!!!SJE[rfF!Ba3!!1B!!!J#"ZrrB-D2d$!!CQ)L"ZrrC`"c&!!!)JE[r
fF!8a3!!+)'lrpR!'-8!!$Q!!!&)JE[rfF!Na3!!#B!!!4#"Z!!J`+!!D6VVl'J!
)!!J!-J!#)'i!##"S!"a$l!+ZF!BJf9()rraJ'%UZrrTR%LmZrrT1ZJ83@)mJEJ!
-3UJ!&(!!6Pj1G8e"58iJN!419[rk3H`!b#e)rr`JE!"i)&!`%%kkqVi!N!-"!%!
!"!!J5Q`"''B35'`%A%kk!4*BMh!"18!"'($j18!"('!F5Q`"'QB35'`%BNkk!24
BMh!"18!"'R$h18!"(#"Zrr`aE!%F!"JJE[rm3UJ!$#"Zrra`#$&!!"SpI1`!rrS
JE!"i)&!`+!!#`I`!$%(X!!$4`$!3d@lrqL"Zrr`aE[rk!"`JE[rmS!3JE[rm3LJ
!)#"Zrra#+!!K)'lrr%)S!#-JE[rm3LJ!)L"X!(JJ8%TS!!4R,NTX"%jY+#"Zrra
`!4&!!"`JE[rm3LJ!(5"Zrra`%4&!!"iJE[rmF"-43!!IB")JE[rm3LJ!(#"Zrra
`!4&!!"dJE[rmF!Sa3!!D)'lrr+!%)'lrr%*S!#`JE[rm3UJ!,NjH6R968%p348i
J)%j@!!!TEJ!)!0T#V!$83L`!id(X!-LJ!%jH6R938NP1593J)%j@rrKCMdKj8e4
5)cmmm"#TS#"I,8Mrq%UZrrKR!!$D,blrq+QL)'lrq#"39)JY52rm5'`#(NK36VS
"HP#2)'lrr(!!%""53%K!3N")30'Zrra)E!%H,blrr%kk!9K3Mb"Zrra`!"!38N"
)3%*!5%$4V[rm5'`#3LmZrra1ZJ%f8)mJE[rmF!!3%&*!5%"#3%K!dDlrr%KX!QB
[,[rm6VS"&&#2)'lrr(!!%""53%K!3N")30'Zrra)E!++,blrr%kk!2*3MdKX!Kj
1ZJ!i@)p)E!%H6VS!,PL25'`#3Nkk!#4BMdKX!QC1ZJ!D@)p)E!++6VS!%&L26Pj
1G90&9%026P456PB!!%MR!`"m!Ai!B!!!ER!!%!G)3%*!5%$3VJ!))%"`!"!3$%!
!AQBZF!!3"NK!3N")30#Z!!K5"h)!%JG)38*"5%(5VJ!))%&b!")3!N%!(b"!%)&
J)R!!%!C)3%*!5%$3VJ!)FJ!5"dK"3N&)3G+Z!!JJ35*!%T!!8JB3"e)(!N!!rb"
Z!!Kb!")3NN"+3@B!rhj`!"!'8d!JEJ!)%)"-h`$!6Pj1G84&3dp%45!J6PB!!%+
!)'i!##*Z!!`3%",B8FMrr%jH6R9$6e"C8e45)%j@!!!J,J!)6VVhM!!&!#!!!3#
3!bB!!J#3!b`!!`#3!bB!!rrr!#!!!rrq!#4)E!%H6VS!+&L2B"C)E!*Q6VS!(&L
2B!T)E!)H6VS!%&L26Pj1G84&9NP$48026PB!!#"Z!!K5L#P)!1JJEJ!)F!!3%#P
!!1a"l!$)S!01ANje8&**6P469&*19[rQ)'i!#%US!"4R$L"Z!!J[+!!86VS"(&L
2@Bp)H9088L!r21!!UD!JAbe)rq`[,[rXUD)[,[rX6VS!iPL2,blrl%kk!34BMe@
22c`!!8KZrr"1ZJ%Z-"p+E[rbE4K9Mb"Zrq`[%$mZrrj#CkR%-"mp32rUB""9Mb"
Zrq`[%+QA-"mp32rU,blrl%kk!+CBM`aZrj!$kQF!!(4CMdKj8&*&3cmmi!#TS#"
I)Qi!##0)!"3JEJ!)5UJ!&'G3)'i!##mS!"5TSL"Z!!J[+!!8UC)JEJ!),bJ!&%k
k!%*BMb"Z!!J[+!!86VS!B&L2)'i!##eS!"6rjL"ZrqBS8%(X"%a$l[r`)0NJf5$
C)0N`,[rU6Pj1G8p348j38NP16PB!!#"Z!!LJ5NjH6R9)6Np399*(48j@!!!JEJ!
)S%P1ANje5&"98NG&)#"19J!!)'i!#+!T6Pj1G8K-6d0,)*!$6PErX%(Zrl!aEJ!
)!"K#U!!-S!%`+!!36Pj1G80-6e0&4&**5RJ#MQXL-$`!N!#M4L*)-$`!RkG'XmK
R%#*I)&m`(bm*S*!!2d!!"%je)'m!"$!m!!%L5'!'!a-,!J%!-$`!%1*!8d"#@&(
)rr`b[!!")(J#VM0mrri!!J`S!2m!#@G#5LJ!#'iJ-hcrr`!#5RJ#MQX`-h`!!3!
#5RJ,)QSN-h`!!J!#B"a#D3!#$#J!!J!)EK"R#$0m!!3!!Q!'-h`!!`!#3QN!"!`
i!!)",fi+%$J",e*!%d!!"dTi!SjV$JJi!!3,)QF'%h`!!3!)$(Jrr`+1BJB6I!!
"!!N31!)H3IVr@c)m!!5`)&I*rra5360"!!T+1!+4DaJ51!(l!J%!$``"!!&Q#L"
i!Y`6D!!(!!dcH!)3!!j+H!2fE84#D3!1-M`!2%*R8FRrr#"2-AJ+@!!BF!LLB'B
N-@J!0!!@SJGQ'L&S!&S!-#&m49**5`!FF!'LB'B'-fJ!&J!1h[`!HL"*)PpF6ck
mkS41d3!!"M*J$J!!8%&$5r!!!!%%!1!!3IVrlL()#FjJ!!'m6[S!(Nlk!#j1qJ!
q6[S!9Nlk!)K1qJ#N6[S!`Nlk!0iJAc)B0"L`@&I*rrT+3QIq6[!Jr#"I-KJd',#
B9mRrqNT#Crj1m#$k)&mb'$3BX%*Z#T!!3@d'd%""m!!#-""RrNl`!!!J,`!%,d%
!"#)[!!J[A`!%51Fm!#3!*J&)3X6$+!!U!8K&b-A84%K#N!2!`G##60m!2#)I6R8
J,`!%,d%!"#)[!!J[A`!%51Fa!%kk!*a-h`#-)Kp1G5![!!3[33!%)Lm!##pI!!4
)jc%!6VS!I#!"60m!M#)I6R8J,`!%,d%!"#)[!!J[A`!%51Fa!%kk!#a-h`#-)Kp
1G5![!!3[33!%)Lm!##pI!!4)jc%!6VS!$#!"60m!M#)I6R9+J'SF5S&U$%5!4)&
1ZJ!J4)&1G85!6VS!&N5!4)&1G8U"DJT%J8kk!!C%J%je,M`!!2rrXS"M"L)!F!"
1GE#(BJb!`8K!-J"#3%K!6R@bKf)D,J"#3%K!J-&)3%K(2J")4il"-!G)4c)(6R8
N!#B"iSMLLE+(B[L!`F#(-J2#`#i$5%I1`%K(dSGP#*+#BJ4%J8je8d"Jj!#3"%j
@!!!-EJ!6!"TQ"%kk!)"`!%jH)&p2l`!82S"1d%e"58iJN!419[r`5Qi!$QG5-#i
!$P0!28$rr'!d,bi!#$mZrra)E[rq5'lrq%KZrr#TM6!Zrrb`EJ!-CJ`[,[ri2c`
!!DPMB!J[,[ri3QHTBc!Zrra5E[rm-Li!%**!5N&QZNjH6R93990)8N&%58j@rV*
CMdKj8&*&3cmmi!#TS#"I,8MqZNUZrVTR!!1N@Bp)H90dEQFr21!!UD!JAbe)rVD
`r!!!C`!$L&Q25(P69&)M2cc`%+QJ)&mY52kbX2`!!'F!!f`JE[kf)&"+D!!#E3i
JE[kf)&!-D!!*!!*[#L"ZrVBJ8%*S!!*CMcmmm""#TdKirrqTI#"I,8Mrr,$m!!"
R!!-X,blrr$mm!!K)E[rb5'lrkNKZrpUTM5mZrr`r2!!"5'lrlNKZrqC)E[r5UBd
JE[kf)&!LE[kk-#J!!X(m!!c3N5mZrqT8J#m!U9mJE[kb)&"8L#e)rXC`#Me!rr4
J0#mZrr`r,[rd5'lrm%KZrq*)E[r+UBd[,[rL,blqaUQ2)'lqaR!!%""53%K!3N"
)30'ZrXB`,[rd8Qlrp()2NN"+3@Dm5'lrq+Kd,blrr+Kc,blrr+N92c`!"$mm!!5
SQdKZrp)r22rl2ccrqkLT5'lrdMmm!"!r2!!3U,!r2!!#2c`!!ULE5'lrfMmmrrd
r22rpU+P)E[rD2c`!$$mm!!bSX#"ZrVBJ8$mm!!Br2!!&-""D3$m!,blrr%kkrHC
2l`!+)'lqYL"32c`!&$mm!"-`+!!%"N!!%cm!,blrr%kkrF*2l`!+3QlrpQ!!!0"
#TdKZrrDTN6!ZrrC1Z[['!!B!'J!&!"B!"J!m!!J!G!!6!(!!&!#B!"8!T#"ZrVB
`,[rf@d!J8$#!2c`!"Mmm!!8r,[rf,blrr%kkr@K2l`!+B!!!HL"ZrVBJ8&*S!!)
-D!!+!!*Q#L"ZrVBJ8%*S!!)JE[kf)&!LE[kk-#J!!X(m!!c3N5mZrqT8J#m!U9p
J2#"ZrVB`,[rf"N$rl5"3-8!!"$mm!"3r2!!62blrpLmZrra1Z[cq6qm!#Q!3,bl
rr+Q$,blrq+KcB!!"%JaZ!!(rpQB!rbT`'Le!rX*`#Me!rr4J+LmZrr`r,[rd5'l
rm%KZrq*)E[r+UBd[,[rL5'lqbUQ3!(!!%#lqbY'ZrX)`,[rd8Qlrp()2NN"+3@E
')'lqXU!U)'lqXL!ZrX+J*#"ZrV+J*5e!rViJ,[kqX+lq`QF5,blrr+Q$,blrq+K
cF!"J!!#+)'lqXU"+)'lqXU!T)'lqXL"39)JY52l'F!Sp32rdB$3[,[rm2blrp%K
Zrr")E[rL5'lrbUQ0,blriLmZrXDTN!!JE[l'F!!3%&*!5%"#3%K!dDlqaM!Zrr4
5E[rdFJq53%T"CV`[,[rmUB-[,[riU(-[,[kfUDS[,[kbUDS[,[kfUE![,[kbUE"
1ANje8&*649498#!!N!0i!!2p!J"#!%J!N!3#eJ*N!*!%!YB#C!)!"5J$r!!"r3)
!3J")!*!%!YB#C!#3$J)!!!%R$`!"!!%!N$9i!!2p!J"#!%J!N!3#eJ*N!*!%!YB
#C!)!"5J$r!!"r3)!3J")!*!%!YB#C!#3$J)!!!%R$`!"!!%!N$3%D!&m!c-`-!#
3"ld$0M!`!*!(AJ3a-M!`!*!'2J3a1$!`!*!',J3b0$!`!*!'(J3c0M!`!*!'&J3
d1$!`!*!'$J3h-M!`!*!'#J3j0M!`!*!'"!8a16)`-!#3)2rp!*!1"Lj3FQPZG!#
3r`#3r`#3"N)!5!!#!J%)!J#3!`8"!J8#"!!!rJ!!!J%$!J!"!!%!N2m!N)m&,N&
2GA3&,N*2GA3!N!-,#P"bD@jd)%CTE'8!!!%B!!d!N!8)!8%!(!&p"!*25`#3"3N
"L`!G!FF%"N0KEQ0PE!#3"3N!"J!B!*')#d4KDA0j)(BJ-5i`(J#3"4i!"3!Z!&Q
)#e"KCf8J8Q&ZCf8k(J#3"4i!A3!Y!)S'!d&XE"i!N!8H!)`!,J$)"J9'FQpY1Ki
!N!8H!-d!,J$YN!!!N!BH!2)!,J%1L!08EcSH!*!&(J%3!#i"-*!!!*!'0`!&!%F
!@BJ(3fp`D@9c1MF!N!8h!&m!4`"rN!!"-6F!N!8h!*%!4`$)L!9'C@9N1MF!N!8
h!-d!4J%["JT$EfjdD@jeEh9c!*!&0`%a!%F"U3B+8fKPCA3J4Q9PC!!!!JB!&!#
3"H!!C`$`!+d%"&0KGQ8!N!@9!!F!T3"i#!j#Eh4dEfdJEfBJF'&RC3#3"3B!3`!
A!4#)(d4KDA0j)(BJ-5i`1L"3FQPZG'9b)&"[FR3J8f9dGA!&!*!&(J!'!#i!-iJ
&8'pbG$S+!*!&(J!j!#i!R3B+6@pNC@dJ8'pbG!#3"4i!T3!Z!3N'$&"bD@jdCA)
J8'pbG!#3"6N!"J"*!&')#N*KG@3J8Q&dC6S!N!8j!')!53#2"!GbG@jdD@eP%J#
3"6S!Q3"+!5b)%LK)DA3JE@8JCQpb)'e[FQA*+3#3"9-!"3"M!(U)$daTEQ8J9'9
bE@PZBA4[FJF!N!96!)!!B`&!%!GbG@jdD@eP"`#3"@N!J!"j!8!3"h*eER4TE@8
(!*!&I`#!!)m"3"!(FR9ZG'PYC3F!N!@9!)!!T3&!%!GbG@jdD@eP"`#3"DX!J!#
l!8!3"h*eER4TE@8+!*!&D3!'!(N!HiJ+5@jTG'PKE'PkC3#3"Am!"`#2!(b)#e4
[F#"[CL"`B@GP#`#3"DX!#!#l!(N)#d9ZC#"[CL"QD@aP!`#3"F8!#!$9!(N'!d0
88`J!N!A&!+8!e3%*"JKB6fi[@%pQCJ#3"H!!Y`$`!2d%"N0KEQ0PE!#3!l`!"`#
3"3S"2`!H!AX%!Np,!*!&#J''!"i"`J3'3f&ZBf9X!*!&#J!&!"i"0)JF4'&TFhN
JGL!a,M!k)*!&1#ie)L"LH5!a-5)!N!9'!!8!@J"N"JBa-#"MF'N!N!9'!(J!@J#
d"JBa-L"MF'N!N!9'!-J!@J%%"JBa05"MF'N!N!8S!!8!2!#@"JY6G(*KD@GSG#"
eF$`!N!8S!*X!2!%X"JK6D@4PGf&jF`!!!3#3!cB-!!!e$!!!!SJ!!@d#!4`!N!-
F!E)!$%P$6L-!N!0U4P*&4J#3!hC%BA0C!*!$JN*14%`!N!118e45)`#3!jT6G'j
R!*!$TP088L!!!J#b4%P86!!$!0C%6%p(!!-""P"%48B!!J%f4&*@8J!!!9T3380
,!!!"CP"548-!!J&b!)!!N!Z!rrm!!!%%!*!'rrm!!!%2!!(EP!#!rrm!!!%I!*!
%m"!!"3!!!6m!N!6J!!!G!!!"8J#3"2!%!#i!!!&H!*!%m!8!1`!!!@N!N!6J!Ir
r!!!a&`#3"1!"rrm!!$%Q!!(EL2!3!%B!!$*#!!(E81!!rrm!!$4-!!(EB0rr!&i
!!!'$!!(EC1!"rrm!!!(6!!(E42!3!(%!!!([!!(Je1!!rrm!!!)K!!(Jp0rr!)3
!!!)p!*!(NM!!!Pm!N!8%!+B`!!QT!*!&"3#b!!!C*3#3"1!!!-%J!"PI!*!%m!!
!b5!!*Ad!N!Err`!!+l-!N!8"rrm!!#`[!*!%i!$rr`!!,+X!N!3%5801)aG3FQP
ZG'9b)'0[ER4bEf`JFh4bD@jRFa"3FQPZG'9b)&0PG(4TEQGc$&*TCfKd)%*eG(4
[EJT-DA0d)'aKBQ9X&e"bD@jdCA)J4'PKE'pR)&4PEA"XBA4P%NjPH(3J8'&RC5"
8C@e`E'&dC4*3FQPZG'9b)%0[EQCTCb"#EhJ06Q9iG#"3B@GP)%*[H"0%FQ&QG#"
3FQPZG'PZCb"$Ef4P#d4TB@a[Cb"$Ef4P$P"b8'PM4QPXC5"cG(9L"bjB8(*TER3
-4'&TFhNJ3fpZCQPR'YB:
---