%!PS-Adobe-2.0 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Pages: 10 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Times-Roman Times-Bold Courier Times-Italic %%DocumentPaperSizes: Letter %%EndComments %DVIPSCommandLine: dvips -D 300 -f -e 0 %DVIPSParameters: dpi=300, comments removed %DVIPSSource: TeX output 1999.01.03:2314 %%BeginProcSet: tex.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet %%BeginFont: Times-Roman % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "22 June 1996", % filename = "8r.enc", % email = "kb@@mail.tug.org", % address = "135 Center Hill Rd. // Plymouth, MA 02360", % codetable = "ISO/ASCII", % checksum = "119 662 4424", % docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there down to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndFont %%BeginProcSet: texps.pro TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont /setfont load]cvx def}def /ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale true def end /@MacSetUp{userdict /md known{userdict /md get type /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{itransform lineto} }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict maxlength dict begin /magscale true def normalscale currentpoint TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin 40258431 52099146 1000 300 300 () @start /Fa 136[33 2[14 19 19 1[25 25 25 36 14 2[14 25 25 14 22 1[22 25 25 12[28 4[36 33 31[12 4[17 17 40[{ TeXBase1Encoding ReEncodeFont }23 50.000001 /Times-Italic rf /Fb 134[18 3[21 12 1[16 5[12 2[12 1[21 12 18 17[21 25 8[14 28[10 44[{ TeXBase1Encoding ReEncodeFont }13 41.666669 /Times-Italic rf /Fc 134[19 19 27 19 19 10 15 12 19 19 19 19 29 10 19 1[10 19 19 12 17 19 17 19 17 12[23 21 3[27 12[25 27 6[10 6[19 1[19 19 1[9 43[21 2[{ TeXBase1Encoding ReEncodeFont }35 37.500000 /Times-Roman rf /Fd 134[25 25 36 1[28 17 19 22 1[28 25 28 41 14 28 1[14 28 25 17 22 28 22 28 25 11[36 1[28 9[19 7[36 10[25 25 25 25 25 25 2[12 12[17 33[{ TeXBase1Encoding ReEncodeFont }34 50.000001 /Times-Bold rf /Fe 130[25 1[25 1[25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 1[25 25 25 25 25 25 25 25 25 1[25 1[25 25 25 6[25 25 3[25 12[25 25 3[25 2[25 3[25 1[25 25 3[25 25 1[25 2[25 25 25 39[{ TeXBase1Encoding ReEncodeFont }46 41.666669 /Courier rf /Ff 1 16 df<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF8 0FF003C010107E9115>15 D E /Fg 107[18 18 24[18 21 21 30 21 21 12 16 14 21 21 21 21 32 12 21 12 12 21 21 14 18 21 18 21 18 7[30 30 39 2[25 23 28 2[30 1[37 25 1[16 14 1[30 23 25 30 1[28 30 1[18 4[12 21 21 21 21 21 21 21 21 21 21 12 10 14 10 1[21 14 14 14 5[14 30[23 2[{ TeXBase1Encoding ReEncodeFont }67 41.666669 /Times-Roman rf /Fh 134[30 30 43 30 33 20 23 27 1[33 30 33 50 17 2[17 33 30 20 27 33 27 33 30 13[33 9[23 47 4[43 40 11[30 30 30 30 30 30 49[{ TeXBase1Encoding ReEncodeFont }33 59.999974 /Times-Bold rf /Fi 133[22 3[25 25 14 19 17 3[25 39 14 2[14 1[25 1[22 1[22 25 22 19[44 5[36 2[36 2[36 46 6[25 25 6[25 2[12 1[12 44[{ TeXBase1Encoding ReEncodeFont }25 50.000001 /Times-Roman rf /Fj 134[36 36 1[36 36 20 28 24 1[36 36 36 56 20 2[20 1[36 24 32 36 32 1[32 28[52 18[36 36 1[18 46[{ TeXBase1Encoding ReEncodeFont }23 71.999998 /Times-Roman rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%PaperSize: Letter %%EndSetup %%Page: 1 1 1 0 bop 290 440 a Fj(Documen)o(tation)18 b(an)o(d)g(e)o(xamp)o(les)g (of)g(co)o(nsdiag.p)o(y)777 531 y(v)o(ersio)o(n)g(1.0)525 652 y Fi(M)q(anuel)12 b(Gutier)o(rez)h(Al)o(gaba,)g(irm)o(ina@ctv)m (.es)778 749 y(December)f(1998)220 917 y Fh(1)60 b(Copyr)o(ight)15 b(issues)220 1010 y Fg(consdi)o(a)q(g.p)o(y)c(and)f(it)o(s)h(do)o(c)q (umentati)o(on)f(\()h(t)o(hi)o(s)g(tex)o(t)f(a)q(nd)g(t)o(he)h(source)q (s)f(of)g(tex)g(dra)o(wing)o(s)h(in)o(c)q(l)o(uded)220 1059 y(in)d(it)o(\))h(are)g(c)q(o)o(py)o(rig)o(hted)g(b)o(y)g(Manuel)f (Guti)o(e)q(rr)o(e)q(z)h(Al)o(gaba)g(1999)f(a)q(n)o(d)h(yo)o(u)g(are)g (free)g(to)f(use)q(,)h(m)q(o)o(dif)o(y)220 1109 y(,)i(cop)o(y)f(a)q(nd) g(d)o(istri)o(b)o(ut)o(e)h(it)f(u)o(nder)g(the)h(cond)o(it)o(ion)f(t)o (ha)q(t)f(you)h(in)o(c)q(l)o(ude)h(t)o(hi)o(s)g(not)o(ice)g(ad)f(in)g (it)o(.)220 1247 y Fh(2)60 b(Intr)o(o)o(d)q(uc)o(tion)220 1340 y Fg(When)11 b(I)g(wrot)o(e)h(th)o(is)f(pro)o(gra)q(m)g(th)o(e)q (re)g(wasn')o(t)g(an)o(y)g(a)q(u)o(toma)q(t)o(ed)g(uti)o(li)o(ty)g(fo)o (r)g(drawi)o(ng)g(Ru)o(m)q(b)o(a)q(ug)o(h)220 1390 y(OO)f(box)o(es)q(.) j(Of)d(course,)h(you)f(can)h(u)o(se)g(x\002g)f(or)g(a)q(n)o(y)g(ot)o (her)g(drawi)o(ng)g(prog)o(ra)q(m)g(for)g(th)o(is)g(purp)o(ose)q(.)220 1440 y(Bu)o(t)g(th)o(is)g(ut)o(il)o(ity)f(ha)q(s)h(t)o(wo)g(major)g (adv)o(ant)o(a)q(g)o(e)q(s,)h(I)o(t')m(s)g(ea)q(si)o(e)q(r)f(t)o(o)g (use)g(a)q(n)o(d)g(it)o(')n(s)g(faster)g(to)f(')n(dra)o(w'.)k(On)220 1489 y(th)o(e)e(ot)o(he)q(r)f(hand)o(,)h(the)f(kin)o(ds)h(o)o(f)g(a)o (v)o(ail)o(a)q(bl)o(e)g(dra)o(wing)o(s)g(are)g(li)o(mit)o(e)q(d)f(to)o (:)282 1563 y Ff(\017)21 b Fg(i)o(solated)10 b(c)q(l)o(a)q(sses)282 1642 y Ff(\017)21 b Fg(t)o(re)q(es)11 b(\()o(a)q(nd)f(j)o(ust)g(tr)o(e) q(es,)h(no)f(graphs)g(:\()g(\))g(of)g(clas)q(ses)h(r)o(e)q(l)o(a)q(t)o (e)q(d)f(by)g(t)o(he)q(i)o(r)g(inh)o(e)q(ri)o(tance)q(s)282 1720 y Ff(\017)21 b Fg(si)o(m)q(pl)o(e)11 b(ass)q(o)o(c)q(i)o(a)q(t)o (ion)o(s)g(of)f(class)q(es)282 1794 y(It')m(s)h(n)o(ot)f(muc)q(h)g(,)h (b)n(ut...)282 1844 y(And)f(th)o(is)g(is)h(an)f(ut)o(il)o(ity)g(wri)o (tt)o(e)q(n)g(i)o(n)g(py)o(thon)o(.)220 1917 y Fe(http:/)o(/www.python) o(.org)282 1991 y Fg(I)15 b(imagin)o(e)h(t)o(ha)q(t)e(it)g(c)q(ou)o(ld) h(b)o(e)h(wri)o(tt)o(e)q(n)e(in)h(T)935 2000 y(E)955 1991 y(X)g(b)o(ut)g(It)o(')n(s)g(10)f(ti)o(m)q(es)h(e)q(asier)g(to)f (use)i(p)o(yt)o(hon.)220 2041 y(And)d(what')m(s)h(more)g(impo)o(rtant)f (T)720 2050 y(E)740 2041 y(X)g(prog)o(ra)q(mme)q(r)o(s)h(hav)o(e)g(a)g (model)f(,)i(if)e(th)o(ey)g(want)g(to)g(do)g(the)220 2091 y(tr)o(a)q(nsl)o(a)q(t)o(ion)o(.)220 2141 y(Ano)o(ther)j(po)o(int) o(,)i(t)o(he)e(pyt)o(hon)f(c)q(o)o(de)h(c)q(ou)o(ld)g(b)o(e)h(i)o(mpro) o(v)o(e)q(d)o(,)h(I')n(v)o(e)e(dup)o(li)o(c)q(ated)g(code)g(in)f(sev)o (era)q(l)220 2190 y(parts,)g(bec)q(ause)g(I)f(th)o(ough)o(t)g(th)o(e)h (clas)q(ses)g(were)f(re)q(all)o(y)g(dif)n(fe)q(r)o(e)q(nt)f(e)q(ac)q(h) h(o)o(ther)n(,)i(.)7 b(.)f(.)h(,)15 b(in)f(t)o(he)h(end,)220 2240 y(th)o(ey')n(v)o(e)c(r)o(e)q(sul)o(ted)f(to)g(be)h(v)o(ery)f (simil)o(a)q(r)g(i)o(n)g(the)h(w)o(a)q(y)f(t)o(hey)g(w)o(ork.)282 2290 y(And,)i(i)o(t)f(genera)q(t)o(es)h(t)o(ex)f(c)q(o)o(de)q(.)k(So)c (if)g(you)f(want)h(it)f(in)h(po)o(stsc)q(r)o(ipt)o(,)h(gi)o(f)f(or)g (whate)o(v)o(e)q(r)n(,)h(use)f(the)220 2340 y(pro)o(gram)q(s)f(dvi)o(,) h(gs)f(or)g(grab)g(dir)o(e)q(ctl)o(y)h(f)o(rom)g(a)f(wind)o(o)o(w!)220 2478 y Fh(3)75 b(H)o(o)o(w)16 b(t)o(o)f(us)q(e)f(it)220 2579 y Fd(3.1)50 b(Using)12 b(it)g(in)g(a)h(p)o(yth)o(on)g(cod)o(e)220 2657 y Fg(Just)e(use)h(a)g(\223from)g(consd)o(iag)g(i)o(m)q(p)o(ort)f (*)g(\223)h(a)q(n)o(d)g(t)o(hi)o(s)g(pi)o(e)q(ce)g(of)f(py)o(thon)g (code)h(\()f(for)g(example\).)17 b(I)o(n)220 2707 y(dra)o(wing)o(3.)q (t)o(ex)10 b(is)g(k)o(e)q(pt)g(t)o(he)h(f)o(oll)o(o)o(win)o(g)f(T)817 2716 y(E)837 2707 y(X)21 b(i)o(nstru)o(c)q(t)o(ion)o(s)11 b(t)o(ha)q(t)f(g)o(e)q(n)o(e)q(rates)h(t)o(he)g(d)o(rawin)o(g)21 b(2:)926 2831 y(1)p eop %%Page: 2 2 2 1 bop 747 294 a Fg(F)q(i)o(gur)o(e)11 b(1:)h(Singl)o(e)f(\002gu)o(re) 774 869 y @beginspecial 0 @llx -125 @lly 78 @urx 0 @ury 780 @rwi @setspecial %%BeginDocument: consdiag.ps1 50 dict begin /mv {stroke moveto} def /lv {lineto} def /st {currentpoint stroke moveto} def /sl {st setlinewidth} def /sd {st 0 setdash} def /sg {st setgray} def /bs {gsave} def /es {stroke grestore} def /fl {gsave setgray fill grestore currentpoint newpath moveto} def /fp {gsave setgray fill grestore st} def /cv {curveto} def /cr {gsave currentpoint newpath 3 -1 roll 0 360 arc stroke grestore} def /fc {gsave setgray currentpoint newpath 3 -1 roll 0 360 arc fill grestore} def /ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def /el {gsave /svm matrix currentmatrix def currentpoint translate scale newpath 0 0 1 0 360 arc svm setmatrix stroke grestore} def /fe {gsave setgray currentpoint translate scale newpath 0 0 1 0 360 arc fill grestore} def /av {/hhwid exch 2 div def /hlen exch def /ah exch def /tipy exch def /tipx exch def currentpoint /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /alen dx dx mul dy dy mul add sqrt def /blen alen hlen sub def gsave tailx taily translate dy dx atan rotate (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto (T) ah eq {closepath} if (W) ah eq {gsave 1 setgray fill grestore closepath} if (F) ah eq {fill} {stroke} ifelse grestore tipx tipy moveto} def 0.24 0.24 scale 1 setlinecap 1 setlinejoin 3 setlinewidth [] 0 setdash 0 0 moveto 0 sl 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 -57 mv 323 -57 lv 0 0 mv 162 0 lv 324 0 lv 324 -260 lv 324 -520 lv 162 -520 lv 0 -520 lv 0 -260 lv 0 0 lv stroke end showpage %%EndDocument @endspecial 795 382 a Fc(en)o(t)q(e)o(r)q(p)o(r)q(ise)795 488 y(na)o(me)795 532 y(be)o(ne)o(\002t)q(s)795 564 y(mon)o(e)o(y)795 612 y(he)o(alt)q(h)795 653 y(ho)o(bbies)795 693 y(drea)o(ms)795 733 y(un)o(der)p 882 733 12 2 v 13 w(sco)o(r)q(e)o(.)220 1036 y Fe(c)25 b(=)g(a_)o(simple_clas)o(s\(\))220 1085 y(c.do_n)o(ame_clase\(')o(person'\))220 1135 y(c.do_a)o(ttributes\([)o ('name')g(,)g(')o(sex',)g('mone)o(y',)g('health)o(',)320 1185 y('h)o(obbies',)g('d)o(reams']\))220 1235 y(c.do_f)o(unctions\([') o(dream',)g('l)o(ove',)g('play)f(soccer',)h(')o(diving']\))220 1285 y(c.inde)o(x_of_class\()o(3\))220 1384 y(c.do_l)o(ines\(\))220 1434 y(c.gene)o(rate_latex_)o(code\('draw)o(ing3.tex'\))220 1603 y Fd(3.2)50 b(Sou)o(rces)13 b(of)f(h)o(elp)220 1680 y Fg(W)m(ell)o(,)j(the)f(best)g(y)o(ou)g(can)g(do)f(is)h(t)o(o)g(t)o(a) q(k)o(e)g(a)h(l)o(ook)e(a)q(t)g(t)o(he)h(e)q(nd)f(of)g(c)q(on)o(s)q(d)o (iag.py)g(where)h(you)g(can)220 1730 y(se)q(e)f(h)o(o)o(w)g(i)o(t)f (gene)q(r)o(a)q(t)o(e)q(s)h(t)o(he)g(dr)o(aw)m(.)20 b(Se)q(cond)o(ly)m (,)14 b(y)o(ou)e(s)q(h)o(oul)o(d)h(t)o(a)q(k)o(e)g(a)g(l)o(ook)f(a)q(t) g(t)o(he)h(source)g(of)f(th)o(is)220 1780 y(document,)e(that)g(is:)i (less)f(consdi)o(a)q(g)o(.)q(t)o(ex)f(T)m(wo)g(impo)o(rtant)g(detail)o (s:)282 1863 y Ff(\017)21 b Fg(Don)o(')o(t)11 b(for)o(g)o(e)q(t)f(to)h (i)o(nc)q(l)o(ude)g(th)o(e)h(comm)q(and:)i Fe(\\)o(usepackage{)o (texdraw})d Fg(at)g(t)o(he)h(st)o(a)q(rt)324 1913 y(of)e(y)o(our)g (docume)q(n)o(t)282 1996 y Ff(\017)21 b Fg(The)11 b(\002gu)o(re)q(s)f (a)q(r)o(e)h(in)o(c)q(l)o(uded)f(using)g(a)h(si)o(m)q(p)o(le)g Fe(\\in)o(put)g Fg(comma)q(n)o(d.)282 2079 y(And)f(th)o(a)q(t)o(')n(s)g (a)q(l)o(l.)220 2219 y Fh(4)60 b(Some)14 b(ex)o(amples)h(of)g(i)o(t)220 2320 y Fd(4.1)63 b(A)12 b(sim)q(p)o(le)h(class)220 2398 y Fg(The)h(m)q(o)o(s)q(t)f(basic)h(\002gur)o(e)h(y)o(ou)f(ca)q(n)f (face)i(wh)o(e)q(n)e(de)q(ali)o(ng)g(wit)o(h)h(OO)g(classe)q(s)g(i)o(s) g(a)h(si)o(m)q(p)o(le)f(clas)q(s,)220 2448 y(wit)o(h)c(some)h(a)q(t)o (tri)o(b)o(ut)o(e)q(s.)i(And)d(th)o(a)q(t)o(')n(s)g(what)g(you)g(ca)q (n)g(se)q(e)g(in)g(\002gur)o(e)h(1.)220 2567 y Fd(4.2)63 b(A)12 b(sim)q(p)o(le)h(class)g(wit)o(h)f(long)g(names)220 2644 y Fg(Le)q(t)o(')n(s)f(se)q(e)g(what)g(happens)g(t)o(o)g(\002gure)g (1)g(when)g(yo)o(u)g(want)f(to)h(i)o(nclud)o(e)h(a)f(re)q(all)o(y)g(l)o (ong)g(att)o(rib)o(u)o(te.)k(If)220 2694 y(you)c(were)h(work)o(ing)f (wit)o(h)h(a)g(t)o(radit)o(ion)o(a)q(l)f(dra)o(wing)g(ut)o(ili)o(ty)m (,)h(you)f(wo)o(uld)g(hav)o(e)h(t)o(o)g(redra)o(w)g(a)q(l)o(l)f(the)926 2831 y(2)p eop %%Page: 3 3 3 2 bop 605 294 a Fg(Fig)o(ure)11 b(2:)h(Sin)o(gle)e(\002)q(g)o(ure)h (wi)o(th)f(l)o(ong)g(nam)q(es)588 961 y @beginspecial 0 @llx -147 @lly 167 @urx 0 @ury 1670 @rwi @setspecial %%BeginDocument: consdiag.ps2 50 dict begin /mv {stroke moveto} def /lv {lineto} def /st {currentpoint stroke moveto} def /sl {st setlinewidth} def /sd {st 0 setdash} def /sg {st setgray} def /bs {gsave} def /es {stroke grestore} def /fl {gsave setgray fill grestore currentpoint newpath moveto} def /fp {gsave setgray fill grestore st} def /cv {curveto} def /cr {gsave currentpoint newpath 3 -1 roll 0 360 arc stroke grestore} def /fc {gsave setgray currentpoint newpath 3 -1 roll 0 360 arc fill grestore} def /ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def /el {gsave /svm matrix currentmatrix def currentpoint translate scale newpath 0 0 1 0 360 arc svm setmatrix stroke grestore} def /fe {gsave setgray currentpoint translate scale newpath 0 0 1 0 360 arc fill grestore} def /av {/hhwid exch 2 div def /hlen exch def /ah exch def /tipy exch def /tipx exch def currentpoint /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /alen dx dx mul dy dy mul add sqrt def /blen alen hlen sub def gsave tailx taily translate dy dx atan rotate (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto (T) ah eq {closepath} if (W) ah eq {gsave 1 setgray fill grestore closepath} if (F) ah eq {fill} {stroke} ifelse grestore tipx tipy moveto} def 0.24 0.24 scale 1 setlinecap 1 setlinejoin 3 setlinewidth [] 0 setdash 0 0 moveto 0 sl 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 -57 mv 696 -57 lv 0 0 mv 348 0 lv 696 0 lv 696 -307 lv 696 -614 lv 348 -614 lv 0 -614 lv 0 -307 lv 0 0 lv stroke end showpage %%EndDocument @endspecial 609 376 a Fc(perso)o(n)609 485 y(name)609 525 y(se)o(x)609 562 y(m)q(o)o(ne)o(y)609 610 y(hea)o(l)q(th)609 651 y(hobb)o(i)q(e)o(s)609 691 y(dr)q(e)o(ams)609 727 y(opinion)f(ab)o(out)g(l)q(a)o(t)q(e)o(st)h(p)o(oll)q(s)609 767 y(pos)o(i)q(ti)q(o)o(n)f(whe)o(n)h(p)o(l)q(a)o(ying)f(s)o(occ)o(er) 609 807 y(f)q(a)n(v)o(ouri)q(te)g(s)o(cri)q(p)o(t)q(ing)g(lang)o(uag)o (e)220 1125 y Fg(box)o(.)16 b(But)10 b(with)h(t)o(hi)o(s)h(ut)o(il)o (it)o(y)f(no.)16 b(That')m(s)c(what)f(yo)o(u)g(got)g(\(\002g)o(ure)h(2) o(\).)k(So,)c(t)o(his)f(ut)o(ili)o(ty)g(i)o(s)h(st)o(a)q(rt)o(in)o(g) 220 1175 y(to)e(p)o(a)q(y)m(,)h(i)o(sn')o(t)f(it)o(?)220 1293 y Fd(4.3)63 b(A)12 b(sim)q(p)o(le)h(class)g(wit)o(h)f(attri)o(b)o (ut)o(e)q(s)g(and)g(m)q(ark)g(of)g(cardi)o(nalit)o(y)220 1371 y Fg(W)m(ell)o(,)h(i)o(t')n(s)f(t)o(ime)g(to)f(se)q(e)h(a)g(c)q(l) o(a)q(ss)g(at)g(i)o(ts)g(fu)o(ll)f(ext)o(e)q(n)o(t.)18 b(A)11 b(c)q(l)o(a)q(ss)h(ma)q(y)f(hav)o(e)h(fun)o(c)q(t)o(ion)o(s,)h (and)f(i)o(t)g(may)220 1421 y(be)h(in)o(c)q(l)o(uded)g(i)o(n)g(more)g (t)o(ha)q(n)f(one)h(dra)o(wing)o(.)21 b(In)12 b(th)o(a)q(t)g(c)q(ase)h (a)h(mark)f(of)f(c)q(ardi)o(nali)o(ty)g(\()h(a)g(number)220 1471 y(th)o(a)q(t)d(sa)q(y)o(s)h(ho)o(w)g(many)f(ti)o(m)q(es)h(t)o(ha)q (t)f(clas)q(s)h(h)o(a)q(s)g(b)o(e)q(en)g(dr)o(awn)g(\))g(i)o(s)g(sho)o (wn)o(.)k(An)c(e)o(xa)q(mpl)o(e)g(of)g(such)g(a)220 1520 y(clas)q(s)g(is)h(what)f(you)g(c)q(an)h(see)g(a)q(t)f(\002gur)o(e)i(3)o (.)18 b(I)o(n)12 b(t)o(his)g(cas)q(e)g(t)o(he)g(c)q(ardi)o(nali)o(ty)f (is)h(3.)17 b(This)11 b(is)h(\002gu)o(re)g(is)220 1570 y(don)o(e)f(wit)o(h)f(the)g(py)o(thon)g(code:)220 1651 y Fe(c)25 b(=)g(a_)o(simple_clas)o(s\(\))220 1701 y(c.do_n)o (ame_clase\(')o(person'\))220 1751 y(c.do_a)o(ttributes\([)o('name')g (,)g(')o(sex',)g('mone)o(y',)g('health)o(',)320 1801 y('h)o(obbies',)g('d)o(reams']\))220 1850 y(c.do_f)o(unctions\([')o (dream',)g('l)o(ove',)g('play)f(soccer',)h(')o(diving']\))220 1900 y(c.inde)o(x_of_class\()o(3\))220 2000 y(c.do_l)o(ines\(\))220 2050 y(c.gene)o(rate_latex_)o(code\('draw)o(ing3.tex'\))220 2249 y Fd(4.4)63 b(Inh)o(er)q(i)o(tances)13 b(examples)220 2327 y Fg(W)m(ell)o(,)j(til)o(l)e(no)o(w)m(,)i(it)o(')n(s)e(a)h(very)f (simpl)o(e)i(p)o(rogr)o(a)q(m,)g(let')m(s)f(f)o(a)q(ce)g(a)g(m)q(o)o (re)g(int)o(e)q(r)o(e)q(sti)o(ng)f(example.)26 b(A)220 2377 y(in)o(herit)o(a)q(nce)11 b(of)f(classe)q(s.)j(\002gure)e(4)282 2426 y(T)q(h)o(is)f(is)h(achie)o(v)o(e)q(d)f(t)o(ypese)q(t)o(ti)o(ng)g (:)320 2507 y Fe(c)24 b(=)h(a_simple_)o(class\(\))320 2557 y(c.)o(do_name_cla)o(se\('person)o('\))320 2607 y(c.)o(do_attribut)o(es\(['name')f(,)h('sex',)g(')o(money',)g('he)o (alth',)320 2657 y('h)o(obbies',)g('d)o(reams']\))320 2707 y(c.)o(do_function)o(s\(['dream')o(,)g('love',)g(')o(play)g (soccer)o(',)g('diving)o(']\))926 2831 y Fg(3)p eop %%Page: 4 4 4 3 bop 427 294 a Fg(Figu)o(re)11 b(3:)h(Sing)o(le)f(\002gu)o(re)g(wi)o (th)f(a)q(t)o(tr)o(ib)o(ut)o(ion)o(s,)h(funct)o(ions)f(and)g(m)q(arks) 799 1011 y @beginspecial 0 @llx -159 @lly 66 @urx 0 @ury 660 @rwi @setspecial %%BeginDocument: consdiag.ps3 50 dict begin /mv {stroke moveto} def /lv {lineto} def /st {currentpoint stroke moveto} def /sl {st setlinewidth} def /sd {st 0 setdash} def /sg {st setgray} def /bs {gsave} def /es {stroke grestore} def /fl {gsave setgray fill grestore currentpoint newpath moveto} def /fp {gsave setgray fill grestore st} def /cv {curveto} def /cr {gsave currentpoint newpath 3 -1 roll 0 360 arc stroke grestore} def /fc {gsave setgray currentpoint newpath 3 -1 roll 0 360 arc fill grestore} def /ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def /el {gsave /svm matrix currentmatrix def currentpoint translate scale newpath 0 0 1 0 360 arc svm setmatrix stroke grestore} def /fe {gsave setgray currentpoint translate scale newpath 0 0 1 0 360 arc fill grestore} def /av {/hhwid exch 2 div def /hlen exch def /ah exch def /tipy exch def /tipx exch def currentpoint /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /alen dx dx mul dy dy mul add sqrt def /blen alen hlen sub def gsave tailx taily translate dy dx atan rotate (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto (T) ah eq {closepath} if (W) ah eq {gsave 1 setgray fill grestore closepath} if (F) ah eq {fill} {stroke} ifelse grestore tipx tipy moveto} def 0.24 0.24 scale 1 setlinecap 1 setlinejoin 3 setlinewidth [] 0 setdash 0 0 moveto 0 sl 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 -57 mv 274 -57 lv 0 -368 mv 274 -368 lv 0 0 mv 137 0 lv 274 0 lv 274 -331 lv 274 -662 lv 191 -662 mv 274 -579 lv 191 -662 lv 215 -638 mv 215 -638 lv 274 -662 mv 137 -662 lv 0 -662 lv 0 -331 lv 0 0 lv stroke end showpage %%EndDocument @endspecial 820 378 a Fc(pe)o(r)q(s)o(on)820 487 y(na)o(me)820 527 y(s)o(e)o(x)820 564 y(mon)o(e)o(y)820 612 y(he)o(alt)q(h)820 653 y(ho)o(bbies)820 693 y(drea)o(ms)820 792 y(drea)o(m)820 830 y(lo)o(ve)820 863 y(play)f(s)o(oc)o(cer)820 901 y(di)o(ving)1023 1000 y(3)320 1227 y Fe(c.)o(do_lines\(\))320 1277 y(d)24 b(=)h(a_simple_)o(class\(\))320 1327 y(d.)o(do_name_cla)o(se\('work'\)) 320 1376 y(d.)o(do_attribut)o(es\(['salar)o(y')g(,)g('post')o(,)320 1426 y('l)o(abor)g(union')o(,)g('product)o(ivity',)g('qu)o(alification) o(s',)345 1476 y(')o(capabilitie)o(s']\))320 1526 y(d.)o(do_function)o (s\(['work',)f('strike',)g('be)h(ill',)g(')o(be)g(fired'])o(\))320 1625 y(d.)o(do_lines\(\))320 1675 y(e)f(=)h(union_der)o(ivation\(\))320 1725 y(e.)o(add_union\(c)o(,d\))320 1775 y(e.)o(generate_la)o (tex_code\(')o(drawing4.te)o(x'\))220 1908 y Fg(Ea)q(sy)m(,)11 b(uh)f(?)j(:)o(\))282 1958 y(But)c(m)q(u)o(c)q(h)h(more)g(c)q(ompl)o (ex)g(dr)o(awing)o(s)h(are)g(also)f(eas)q(y)g(t)o(o)g(do)g(as)h(sh)o(o) o(ws)21 b(5)10 b(,)g(th)o(is)g(is)g(a)h(pi)o(c)q(t)o(ure)220 2007 y(of)f(a)h(mot)o(he)q(r)f(class)h(t)o(ha)q(t)e(ha)q(s)h(sev)o(era) q(l)f(da)q(u)o(ght)o(e)q(r)h(c)q(l)o(as)q(ses.)292 2057 y Fb(R)q(e)o(g)o(r)o(etf)o(ull)o(y)n(,)h(it)e(IS)h Fa(NO)n(T)i(poss)q (i)o(ble)h(\()o(right)f(now\))g(to)g(inheritate)g(fr)n(om)g(mor)n(e)h (t)o(han)220 2107 y(one)f(c)q(l)o(as)q(s.)29 b Fg(In)o(s)q(t)o(ea)q(d) 10 b(,)h(yo)o(u)f(c)q(an)g(use)h(in)o(dice)q(s)f(to)g(ma)q(r)o(k)g(s)q (e)o(v)o(e)q(r)o(a)q(l)g(i)o(nherit)o(a)q(n)o(c)q(es.)282 2157 y(And)j(,)i(well)o(,)g(you)e(ca)q(n)g(use)h(sev)o(eral)f(le)o(vel) o(s)h(of)f(inh)o(e)q(ri)o(tance)q(s,)i(j)o(ust)e(be)h(a)g(bi)o(t)f(c)q (areful)g(about)220 2207 y(ho)n(w)e(yo)o(u)f(b)o(uil)o(d)g(the)g(c)q (od)o(e)q(,)h(t)o(a)q(k)o(e)g(t)o(his)f(\(i)o(t)g(m)q(ak)o(e)q(s)g (\002gure)21 b(6\))10 b(as)h(ex)o(a)q(mpl)o(e)q(:)320 2290 y Fe(d)24 b(=)h(a_simple_)o(class\(\))320 2339 y(d.)o(do_name_cla) o(se\('worker)o('\))320 2389 y(d.)o(do_attribut)o(es\(['salar)o(y')g(,) g('post')o(,)320 2439 y('l)o(abor)g(union')o(,)g('product)o(ivity',)g ('qu)o(alification)o(s',)345 2489 y(')o(capabilitie)o(s']\))320 2638 y(d.)o(do_lines\(\))320 2688 y(f)f(=)h(a_simple_)o(class\(\))926 2831 y Fg(4)p eop %%Page: 5 5 5 4 bop 693 696 a Fg(Fi)o(gure)10 b(4:)j(Si)o(m)q(p)o(le)e(i)o(nheri)o (tanc)q(e)763 2263 y @beginspecial -12 @llx -363 @lly 71 @urx 0 @ury 830 @rwi @setspecial %%BeginDocument: consdiag.ps4 50 dict begin /mv {stroke moveto} def /lv {lineto} def /st {currentpoint stroke moveto} def /sl {st setlinewidth} def /sd {st 0 setdash} def /sg {st setgray} def /bs {gsave} def /es {stroke grestore} def /fl {gsave setgray fill grestore currentpoint newpath moveto} def /fp {gsave setgray fill grestore st} def /cv {curveto} def /cr {gsave currentpoint newpath 3 -1 roll 0 360 arc stroke grestore} def /fc {gsave setgray currentpoint newpath 3 -1 roll 0 360 arc fill grestore} def /ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def /el {gsave /svm matrix currentmatrix def currentpoint translate scale newpath 0 0 1 0 360 arc svm setmatrix stroke grestore} def /fe {gsave setgray currentpoint translate scale newpath 0 0 1 0 360 arc fill grestore} def /av {/hhwid exch 2 div def /hlen exch def /ah exch def /tipy exch def /tipx exch def currentpoint /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /alen dx dx mul dy dy mul add sqrt def /blen alen hlen sub def gsave tailx taily translate dy dx atan rotate (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto (T) ah eq {closepath} if (W) ah eq {gsave 1 setgray fill grestore closepath} if (F) ah eq {fill} {stroke} ifelse grestore tipx tipy moveto} def 0.24 0.24 scale 1 setlinecap 1 setlinejoin 3 setlinewidth [] 0 setdash 0 0 moveto 0 sl 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 -57 mv 274 -57 lv 0 -368 mv 274 -368 lv 0 0 mv 137 0 lv 274 0 lv 274 -331 lv 274 -662 lv 137 -662 lv 0 -662 lv 0 -331 lv 0 0 lv 137 -661 mv 137 -779 lv 161 -803 lv 114 -803 lv 138 -779 lv 114 -803 lv 20 -803 lv 20 -850 lv -52 -850 mv -52 -850 lv -52 -850 mv -52 -850 lv -52 -850 mv -52 -850 lv -52 -907 mv 296 -907 lv -52 -1219 mv 296 -1219 lv -52 -850 mv 122 -850 lv 296 -850 lv 296 -1181 lv 296 -1512 lv 122 -1512 lv -52 -1512 lv -52 -1181 lv -52 -850 lv stroke end showpage %%EndDocument @endspecial 836 779 a Fc(perso)o(n)836 889 y(name)836 929 y(se)o(x)836 965 y(m)q(o)o(ne)o(y)836 1014 y(hea)o(l)q(th)836 1055 y(hobb)o(i)q(e)o(s)836 1095 y(dr)q(e)o(ams)836 1194 y(dr)q(e)o(am)836 1232 y(l)q(o)o(v)o(e)836 1265 y(pl)q(a)o(y)e(so)o (cce)o(r)836 1303 y(div)o(i)q(n)o(g)784 1638 y(work)784 1740 y(salary)784 1778 y(pos)o(t)784 1825 y(l)q(a)o(bor)h(u)o(nion)784 1861 y(pr)q(o)o(duc)o(t)q(i)o(vit)q(y)784 1901 y(qua)o(l)q(i\002ca)o(t) q(ion)o(s)784 1941 y(cap)o(abili)q(ti)q(e)o(s)784 2044 y(work)784 2082 y(str)q(ike)784 2120 y(be)f(il)q(l)784 2158 y(be)g(\002red)926 2831 y Fg(5)p eop %%Page: 6 6 6 5 bop 682 886 a Fg(Fig)o(ure)11 b(5:)h(Se)o(veral)e(in)o(he)q(r)o (itance)q(s)359 2073 y @beginspecial -24 @llx -272 @lly 253 @urx 0 @ury 2770 @rwi @setspecial %%BeginDocument: consdiag.ps5 50 dict begin /mv {stroke moveto} def /lv {lineto} def /st {currentpoint stroke moveto} def /sl {st setlinewidth} def /sd {st 0 setdash} def /sg {st setgray} def /bs {gsave} def /es {stroke grestore} def /fl {gsave setgray fill grestore currentpoint newpath moveto} def /fp {gsave setgray fill grestore st} def /cv {curveto} def /cr {gsave currentpoint newpath 3 -1 roll 0 360 arc stroke grestore} def /fc {gsave setgray currentpoint newpath 3 -1 roll 0 360 arc fill grestore} def /ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def /el {gsave /svm matrix currentmatrix def currentpoint translate scale newpath 0 0 1 0 360 arc svm setmatrix stroke grestore} def /fe {gsave setgray currentpoint translate scale newpath 0 0 1 0 360 arc fill grestore} def /av {/hhwid exch 2 div def /hlen exch def /ah exch def /tipy exch def /tipx exch def currentpoint /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /alen dx dx mul dy dy mul add sqrt def /blen alen hlen sub def gsave tailx taily translate dy dx atan rotate (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto (T) ah eq {closepath} if (W) ah eq {gsave 1 setgray fill grestore closepath} if (F) ah eq {fill} {stroke} ifelse grestore tipx tipy moveto} def 0.24 0.24 scale 1 setlinecap 1 setlinejoin 3 setlinewidth [] 0 setdash 0 0 moveto 0 sl 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 -57 mv 174 -57 lv 0 0 mv 87 0 lv 174 0 lv 174 -236 lv 174 -472 lv 87 -472 lv 0 -472 lv 0 -236 lv 0 0 lv 87 -472 mv 87 -590 lv 111 -614 lv 64 -614 lv 88 -590 lv 64 -614 lv -30 -614 lv -30 -661 lv -102 -661 mv -102 -661 lv -102 -661 mv -102 -661 lv -102 -661 mv -102 -661 lv -102 -718 mv 246 -718 lv -102 -661 mv 72 -661 lv 246 -661 lv 246 -897 lv 246 -1133 lv 72 -1133 lv -102 -1133 lv -102 -897 lv -102 -661 lv 111 -614 mv 332 -614 lv 332 -661 lv 261 -661 mv 261 -661 lv 261 -661 mv 261 -661 lv 261 -661 mv 261 -661 lv 261 -718 mv 559 -718 lv 261 -661 mv 410 -661 lv 559 -661 lv 559 -897 lv 559 -1133 lv 410 -1133 lv 261 -1133 lv 261 -897 lv 261 -661 lv 332 -614 mv 678 -614 lv 678 -661 lv 607 -661 mv 607 -661 lv 607 -661 mv 607 -661 lv 607 -661 mv 607 -661 lv 607 -718 mv 1055 -718 lv 607 -661 mv 831 -661 lv 1055 -661 lv 1055 -897 lv 1055 -1133 lv 831 -1133 lv 607 -1133 lv 607 -897 lv 607 -661 lv stroke end showpage %%EndDocument @endspecial 482 969 a Fc(perso)o(n)482 1079 y(name)482 1119 y(se)o(x)482 1155 y(mone)o(y)482 1203 y(hea)o(l)q(th)482 1244 y(hob)o(bies)482 1284 y(dreams)380 1638 y(work)o(er)380 1740 y(sa)o(l)q(a)o(r)q(y)380 1778 y(pos)o(t)380 1825 y(l)q(a)o(bor)f(union)380 1861 y(produ)o(ctivity)380 1901 y(qua)o(l)q(i\002c)o(ati)q(o)o(ns)380 1941 y(cap)o(ab)o(i)q(li)q (ties)743 1638 y(father)743 1740 y(b)o(us)o(y)743 1784 y(t)q(e)o(nde)o(r)q(n)o(ess)743 1825 y(stubo)o(r)q(n)o(nes)o(s)743 1861 y(cares)o(s)743 1905 y(kiss)o(es)743 1941 y(cap)o(ab)o(i)q(li)q (ties)1089 1634 y(che)o(ss)g(p)o(l)q(a)o(yer)1089 1744 y(elo)1089 1780 y(cruelty)1089 1825 y(stubo)o(r)q(n)o(nes)o(s)1089 1865 y(bad)g(tri)q(c)o(ks)1089 1901 y(i)q(n)o(t)q(e)o(l)q(li)q(g)o(en)o (ce)1089 1941 y(ope)o(nings)g(k)o(no)o(wled)o(ge)926 2831 y Fg(6)p eop %%Page: 7 7 7 6 bop 320 266 a Fe(f.)o(do_name_cla)o(se\('comput)o(er)25 b(scientis)o(t'\))320 315 y(f.)o(do_attribut)o(es\(['langu)o(ages')g(,) g('pr)o(eferred)g(OS')o(,)320 365 y('p)o(referred)g(ed)o(itor',)g('ha)o (ckerism',)g(')o(ATBB']\))320 465 y(f.)o(do_lines\(\))320 565 y(h)f(=)h(union_der)o(ivation\(\))320 614 y(h.)o(add_union\(d)o (,f\))320 714 y(c)f(=)h(a_simple_)o(class\(\))320 764 y(c.)o(do_name_cla)o(se\('person)o('\))320 814 y(c.)o(do_attribut)o (es\(['name')f(,)h('sex',)g(')o(money',)g('he)o(alth',)320 863 y('h)o(obbies',)g('d)o(reams']\))320 913 y(c.)o(do_lines\(\))320 1013 y(e)f(=)h(union_der)o(ivation\(\))320 1063 y(e.)o(add_union\(c)o (,h\))320 1112 y(e.)o(generate_la)o(tex_code\(')o(drawing6.te)o(x'\)) 282 1245 y Fg(Finall)o(y)13 b(a)h(rema)q(i)o(nder:)k(Y)-5 b(ou)13 b(ca)q(n)g(combin)o(e)h(th)o(is)f(fea)q(t)o(ures)h(so)f(yo)o(u) g(c)q(an)g(get)g(se)o(veral)g(l)o(ev)o(els)220 1295 y(and)d(wit)o(h)h (se)o(v)o(e)q(r)o(a)q(l)f(son)o(s)q(,)g(b)o(ut...)k(w)o(a)q(t)o(c)q(h)c (t)o(he)h(spac)q(e!)i(The)e(p)o(iec)q(e)g(o)o(f)f(pa)q(p)o(e)q(r)g(has) h(i)o(ts)f(li)o(m)q(i)o(tati)o(ons.)220 1414 y Fd(4.5)63 b(Associati)o(ons)13 b(examples)220 1492 y Fg(W)m(ell)o(,)f(I)f(got)f (a)i(bi)o(t)f(up)o(s)q(et)g(wh)o(e)q(n)g(I)g(reali)o(z)q(e)g(that)g(f)o (a)q(ct)g(of)g(mul)o(ti)o(ple)g(in)o(he)q(r)o(itance)q(s,)g(s)q(o)g (associati)o(ons)220 1542 y(ha)o(v)o(e)q(n')o(t)g(g)o(ot)g(so)g(compli) o(c)q(ated,)h(and)f(i)o(n)g(fac)q(t)f(,)i(you)f(can)g(do)g(onl)o(y)g(a) q(ssociati)o(ons)g(between)g(s)q(i)o(mple)220 1591 y(clas)q(ses)e(and)f (a)q(ssociati)o(ons,)h(s)q(o)f(yo)o(u)h(ca)q(n)o(')o(t)g(mi)o(x)g(ass)q (o)o(c)q(i)o(a)q(t)o(ion)o(s)g(a)q(n)o(d)g(d)o(e)q(ri)n(v)o(ati)o(ons,) g(that)f(wou)o(ld)g(hav)o(e)220 1641 y(bee)q(n)i(\002ne.)j(\002gure)d (7)220 1760 y Fd(4.6)50 b(Aggr)o(egati)o(ons)13 b(t)o(oo!)220 1838 y Fg(Y)-5 b(ou)11 b(can)g(do)f(a)q(g)o(greg)o(a)q(t)o(io)o(ns,)i (j)o(ust)e(replac)q(e)h(\223deri)o(v)n(a)q(t)o(ion)o(\224)h(i)o(n)e (the)h(pr)o(evi)o(ous)g(e)o(xa)q(mpl)o(e)q(s)f(for)g(\223)q(agre-)220 1888 y(gati)o(on\224)g(a)q(nd)g(t)o(hat')n(s)g(all.)j(As)d(exam)q(p)o (le)h(l)o(ook)f(at)g(\002gure)21 b(8.)220 2028 y Fh(5)75 b(Ca)n(v)o(eats)15 b(and)g(b)o(u)q(g)o(s)220 2121 y Fg(If)10 b(you)g(w)o(a)q(n)o(t)g(to)g(do)g(v)o(ery)g(c)q(ompl)o(ex)g(draw)o (ings)g(as)q(:)282 2204 y Ff(\017)21 b Fg(se)o(v)o(e)q(ral)10 b(le)o(v)o(e)q(l)o(s)h(o)o(f)g(i)o(nheri)o(tanc)q(es/agreg)o(atio)o(ns) g(and)f(ea)q(ch)g(oth)o(e)q(r)g(wit)o(h)g(lot)o(s)h(o)o(f)g(so)o(ns,) 282 2287 y Ff(\017)21 b Fg(really)10 b(d)o(e)q(ep)g(tree)q(s)g(of)g(in) o(he)q(r)o(itance)q(s,)g(m)q(or)o(e)h(th)o(a)q(n)f(fou)o(r)h(are)g(p)o (robabl)o(y)g(a)f(re)q(all)o(y)g(bad)h(i)o(dea)q(,)282 2370 y Ff(\017)21 b Fg(se)o(v)o(e)q(ral)10 b(nested)g(a)q(ssociati)o (ons,)220 2453 y(th)o(e)q(n)o(,)j(pro)o(ba)q(b)o(ly)f(y)o(ou')o(ll)f (get)h(a)g(shi)o(t)g(as)g(out)o(c)q(ome.)18 b(This)12 b(u)o(ti)o(lit)o(y)g(i)o(s)g(not)f(c)q(l)o(ev)o(er)n(,)i(j)o(ust)f(t)o (ry)g(t)o(o)g(t)o(o)g(se)q(t)220 2502 y(th)o(e)f(c)q(l)o(a)q(sses)g(i)o (n)f(a)h(log)o(ica)q(l)o(,)g(predetermined)f(way)m(.)282 2552 y(Apart)h(fr)o(om)h(t)o(hi)o(s)g(cav)o(ea)q(t)o(,)g(t)o(here)q(')o (ll)e(be)h(s)q(o)o(m)q(e)g(b)o(ugs,)g(.)c(.)f(.)h(,)12 b(o)o(r)f(perhaps)g(not)o(.)16 b(p)o(yt)o(hon)11 b(i)o(s)g(ra)q(t)o (her)220 2602 y(rob)o(u)o(st!)926 2831 y(7)p eop %%Page: 8 8 8 7 bop 607 577 a Fg(Fi)o(gure)11 b(6)o(:)i(Se)o(v)o(e)q(ral)d(l)o(ev)o (els)g(of)g(inh)o(e)q(ri)o(tance)q(s)713 2382 y @beginspecial -28 @llx -420 @lly 79 @urx 0 @ury 1070 @rwi @setspecial %%BeginDocument: consdiag.ps6 50 dict begin /mv {stroke moveto} def /lv {lineto} def /st {currentpoint stroke moveto} def /sl {st setlinewidth} def /sd {st 0 setdash} def /sg {st setgray} def /bs {gsave} def /es {stroke grestore} def /fl {gsave setgray fill grestore currentpoint newpath moveto} def /fp {gsave setgray fill grestore st} def /cv {curveto} def /cr {gsave currentpoint newpath 3 -1 roll 0 360 arc stroke grestore} def /fc {gsave setgray currentpoint newpath 3 -1 roll 0 360 arc fill grestore} def /ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def /el {gsave /svm matrix currentmatrix def currentpoint translate scale newpath 0 0 1 0 360 arc svm setmatrix stroke grestore} def /fe {gsave setgray currentpoint translate scale newpath 0 0 1 0 360 arc fill grestore} def /av {/hhwid exch 2 div def /hlen exch def /ah exch def /tipy exch def /tipx exch def currentpoint /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /alen dx dx mul dy dy mul add sqrt def /blen alen hlen sub def gsave tailx taily translate dy dx atan rotate (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto (T) ah eq {closepath} if (W) ah eq {gsave 1 setgray fill grestore closepath} if (F) ah eq {fill} {stroke} ifelse grestore tipx tipy moveto} def 0.24 0.24 scale 1 setlinecap 1 setlinejoin 3 setlinewidth [] 0 setdash 0 0 moveto 0 sl 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 -57 mv 174 -57 lv 0 0 mv 87 0 lv 174 0 lv 174 -236 lv 174 -472 lv 87 -472 lv 0 -472 lv 0 -236 lv 0 0 lv 87 -472 mv 87 -590 lv 111 -614 lv 64 -614 lv 88 -590 lv 64 -614 lv -30 -614 lv -30 -661 lv -102 -661 mv -102 -661 lv -102 -661 mv -102 -661 lv -102 -661 mv -102 -661 lv -102 -718 mv 246 -718 lv -102 -661 mv 72 -661 lv 246 -661 lv 246 -897 lv 246 -1133 lv 72 -1133 lv -102 -1133 lv -102 -897 lv -102 -661 lv 72 -1134 mv 72 -1252 lv 96 -1276 lv 49 -1276 lv 73 -1252 lv 49 -1276 lv -45 -1276 lv -45 -1323 lv -117 -1323 mv -117 -1323 lv -117 -1323 mv -117 -1323 lv -117 -1323 mv -117 -1323 lv -117 -1379 mv 331 -1379 lv -117 -1323 mv 107 -1323 lv 331 -1323 lv 331 -1536 lv 331 -1749 lv 107 -1749 lv -117 -1749 lv -117 -1536 lv -117 -1323 lv stroke end showpage %%EndDocument @endspecial 851 661 a Fc(perso)o(n)851 771 y(name)851 811 y(se)o(x)851 847 y(m)q(o)o(ne)o(y)851 895 y(hea)o(l)q(th)851 936 y(hobb)o(i)q(e)o(s)851 976 y(dr)q(e)o(ams)749 1330 y(worke)o(r)749 1432 y(salary)749 1471 y(pos)o(t)749 1517 y(l)q(a)o(bor)g(u)o(nion)749 1553 y(pr)q(o)o(duc)o(t)q(i)o(vit)q (y)749 1593 y(qua)o(l)q(i\002ca)o(t)q(ion)o(s)749 1633 y(cap)o(abili)q(ti)q(e)o(s)734 1988 y(compu)o(t)q(e)o(r)g(s)o(cientist) 734 2095 y(l)q(a)o(ngua)o(ge)o(s)734 2135 y(pr)q(e)o(f)q(e)o(r)q(red)f (OS)734 2175 y(pr)q(e)o(f)q(e)o(r)q(red)g(e)o(dit)q(o)o(r)734 2218 y(hac)o(ke)o(r)q(ism)734 2258 y(A)l(TBB)926 2831 y Fg(8)p eop %%Page: 9 9 9 8 bop 693 416 a Fg(Fi)o(gure)10 b(7:)j(Si)o(m)q(p)o(le)e(assoc)q(i)o (a)q(t)o(io)o(n)511 941 y @beginspecial 0 @llx -113 @lly 204 @urx 0 @ury 2040 @rwi @setspecial %%BeginDocument: consdiag.ps7 50 dict begin /mv {stroke moveto} def /lv {lineto} def /st {currentpoint stroke moveto} def /sl {st setlinewidth} def /sd {st 0 setdash} def /sg {st setgray} def /bs {gsave} def /es {stroke grestore} def /fl {gsave setgray fill grestore currentpoint newpath moveto} def /fp {gsave setgray fill grestore st} def /cv {curveto} def /cr {gsave currentpoint newpath 3 -1 roll 0 360 arc stroke grestore} def /fc {gsave setgray currentpoint newpath 3 -1 roll 0 360 arc fill grestore} def /ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def /el {gsave /svm matrix currentmatrix def currentpoint translate scale newpath 0 0 1 0 360 arc svm setmatrix stroke grestore} def /fe {gsave setgray currentpoint translate scale newpath 0 0 1 0 360 arc fill grestore} def /av {/hhwid exch 2 div def /hlen exch def /ah exch def /tipy exch def /tipx exch def currentpoint /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /alen dx dx mul dy dy mul add sqrt def /blen alen hlen sub def gsave tailx taily translate dy dx atan rotate (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto (T) ah eq {closepath} if (W) ah eq {gsave 1 setgray fill grestore closepath} if (F) ah eq {fill} {stroke} ifelse grestore tipx tipy moveto} def 0.24 0.24 scale 1 setlinecap 1 setlinejoin 3 setlinewidth [] 0 setdash 0 0 moveto 0 sl 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 -57 mv 398 -57 lv 0 0 mv 199 0 lv 398 0 lv 398 -236 lv 398 -472 lv 199 -472 lv 0 -472 lv 0 -236 lv 0 0 lv 400 -212 mv 400 -212 lv 398 -236 mv 625 -236 lv 533 -212 mv 533 -212 lv 625 -142 mv 625 -142 lv 625 -142 mv 625 -142 lv 625 -142 mv 625 -142 lv 625 -198 mv 849 -198 lv 625 -142 mv 737 -142 lv 849 -142 lv 849 -307 lv 849 -472 lv 737 -472 lv 625 -472 lv 625 -307 lv 625 -142 lv stroke end showpage %%EndDocument @endspecial 532 502 a Fc(enterpri)q(s)o(e)532 608 y(name)532 648 y(pr)q(o)o(\002ts)532 692 y(estab)o(l)q(is)o(hed)532 728 y(\002sc)o(al)f(p)o(aradise)o(s)532 773 y(f)q(raud)o(s)532 813 y(bad)f(tr)q(ick)o(s)920 694 y(0:n)85 b(0:1)1156 647 y(work)o(er)1156 746 y(wag)o(e)1156 794 y(t)q(imetable)1156 830 y(sen)o(i)q(o)o(r)q(it)q(y)675 1330 y Fg(Fi)o(gure)10 b(8:)j(M)o(ult)o(ipl)o(e)e(aggreg)o(a)q(t)o(io)o(n)359 2543 y @beginspecial -30 @llx -278 @lly 247 @urx 0 @ury 2770 @rwi @setspecial %%BeginDocument: consdiag.ps8 50 dict begin /mv {stroke moveto} def /lv {lineto} def /st {currentpoint stroke moveto} def /sl {st setlinewidth} def /sd {st 0 setdash} def /sg {st setgray} def /bs {gsave} def /es {stroke grestore} def /fl {gsave setgray fill grestore currentpoint newpath moveto} def /fp {gsave setgray fill grestore st} def /cv {curveto} def /cr {gsave currentpoint newpath 3 -1 roll 0 360 arc stroke grestore} def /fc {gsave setgray currentpoint newpath 3 -1 roll 0 360 arc fill grestore} def /ar {gsave currentpoint newpath 5 2 roll arc stroke grestore} def /el {gsave /svm matrix currentmatrix def currentpoint translate scale newpath 0 0 1 0 360 arc svm setmatrix stroke grestore} def /fe {gsave setgray currentpoint translate scale newpath 0 0 1 0 360 arc fill grestore} def /av {/hhwid exch 2 div def /hlen exch def /ah exch def /tipy exch def /tipx exch def currentpoint /taily exch def /tailx exch def /dx tipx tailx sub def /dy tipy taily sub def /alen dx dx mul dy dy mul add sqrt def /blen alen hlen sub def gsave tailx taily translate dy dx atan rotate (V) ah ne {blen 0 gt {blen 0 lineto} if} {alen 0 lineto} ifelse stroke blen hhwid neg moveto alen 0 lineto blen hhwid lineto (T) ah eq {closepath} if (W) ah eq {gsave 1 setgray fill grestore closepath} if (F) ah eq {fill} {stroke} ifelse grestore tipx tipy moveto} def 0.24 0.24 scale 1 setlinecap 1 setlinejoin 3 setlinewidth [] 0 setdash 0 0 moveto 0 sl 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 0 mv 0 0 lv 0 -57 mv 174 -57 lv 0 0 mv 87 0 lv 174 0 lv 174 -236 lv 174 -472 lv 87 -472 lv 0 -472 lv 0 -236 lv 0 0 lv 87 -472 mv 111 -496 lv 87 -520 lv 111 -496 lv 87 -472 lv 63 -496 lv 87 -520 lv 87 -638 lv -55 -638 lv -55 -685 lv -126 -685 mv -126 -685 lv -126 -685 mv -126 -685 lv -126 -685 mv -126 -685 lv -126 -742 mv 222 -742 lv -126 -685 mv 48 -685 lv 222 -685 lv 222 -921 lv 222 -1157 lv 48 -1157 lv -126 -1157 lv -126 -921 lv -126 -685 lv 87 -638 mv 308 -638 lv 308 -685 lv 237 -685 mv 237 -685 lv 237 -685 mv 237 -685 lv 237 -685 mv 237 -685 lv 237 -742 mv 535 -742 lv 237 -685 mv 386 -685 lv 535 -685 lv 535 -921 lv 535 -1157 lv 386 -1157 lv 237 -1157 lv 237 -921 lv 237 -685 lv 308 -638 mv 654 -638 lv 654 -685 lv 583 -685 mv 583 -685 lv 583 -685 mv 583 -685 lv 583 -685 mv 583 -685 lv 583 -742 mv 1031 -742 lv 583 -685 mv 807 -685 lv 1031 -685 lv 1031 -921 lv 1031 -1157 lv 807 -1157 lv 583 -1157 lv 583 -921 lv 583 -685 lv stroke end showpage %%EndDocument @endspecial 506 1414 a Fc(perso)o(n)506 1524 y(name)506 1564 y(se)o(x)506 1600 y(mone)o(y)506 1648 y(hea)o(l)q(th)506 1689 y(hob)o(bies)506 1729 y(dreams)380 2108 y(work)o(er)380 2210 y(sa)o(l)q(a)o(r)q(y)380 2248 y(pos)o(t)380 2294 y(l)q(a)o(bor)e(union)380 2330 y(produ)o(ctivity)380 2371 y(qua)o(l)q(i\002c)o(ati)q(o)o(ns)380 2411 y(cap)o(ab)o(i)q(li)q (ties)743 2108 y(father)743 2210 y(b)o(us)o(y)743 2254 y(t)q(e)o(nde)o(r)q(n)o(ess)743 2294 y(stubo)o(r)q(n)o(nes)o(s)743 2329 y(cares)o(s)743 2375 y(kiss)o(es)743 2411 y(cap)o(ab)o(i)q(li)q (ties)1089 2104 y(che)o(ss)g(p)o(l)q(a)o(yer)1089 2214 y(elo)1089 2250 y(cruelty)1089 2294 y(stubo)o(r)q(n)o(nes)o(s)1089 2334 y(bad)g(tri)q(c)o(ks)1089 2371 y(i)q(n)o(t)q(e)o(l)q(li)q(g)o(en)o (ce)1089 2411 y(ope)o(nings)g(k)o(no)o(wled)o(ge)926 2831 y Fg(9)p eop %%Page: 10 10 10 9 bop 220 266 a Fh(6)60 b(By)o(e)14 b(b)q(y)o(e)220 358 y Fg(I)g(hope)h(t)o(hi)o(s)g(docume)q(n)o(tati)o(on)g(h)o(e)q(l)o (ps)g(y)o(ou)g(t)o(o)f(use)h(thi)o(s)g(ut)o(il)o(it)o(y)m(.)26 b(It')m(s)15 b(no)o(t)f(dif)n(\002)q(cul)o(t)g(a)q(nd)g(gr)o(e)q(atl)o (y)220 408 y(pro)o(\002table.)h(And)10 b(if)h(yo)o(u)g(want)f(to)g(ge)q (t)g(simil)o(a)q(r)g(drawi)o(ngs)h(or)f(impro)o(v)o(e)h(s)q(o)o(m)q(e)g (of)g(t)o(hem)g(just)f(take)220 458 y(a)h(l)o(ook)f(at)g(the)g(c)q(od)o (e)q(,)h(o)o(nc)q(e)f(you)g(get)g(a)q(ccostumed)g(to)g(it)g(,)g(you')o (ll)f(\002)q(n)o(d)h(it)g(qu)o(it)o(e)h(log)o(ica)q(l)o(.)915 2831 y(10)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF