(original) (raw)
%!PS-Adobe-2.0 %%Creator: dvips 5.495 Copyright 1986, 1992 Radical Eye Software %%Title: paper.dvi %%CreationDate: Tue Oct 11 11:33:41 1994 %%Pages: 24 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSCommandLine: dvips -f paper %DVIPSSource: TeX output 1994.10.11:1133 %%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 /@rigin{isls{[0 -1 1 0 0 0] concat}if 72 Resolution div 72 VResolution div neg scale isls{Resolution hsize -72 div mul 0 TR}if Resolution VResolution vsize -72 div 1 add mul TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put 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 add]{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 showpage userdict /eop-hook known{eop-hook}if}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 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 %%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 false 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 (/homes/d4/spiros/papers/tubeGraphs/paper.dvi) @start /Fa 44 123 df<70F8FCFC7404040404080810102040060F7A8410>44 D<70F8F8F87005057A8410>46 D<00004000000000E000000000E000000000E000000001F000000001F000000003F80000000278 0000000278000000043C000000043C000000043C000000081E000000081E000000101F00000010 0F000000100F000000200780000020078000006007C000004003C000004003C00000FFFFE00000 FFFFE000008001E000010000F000010000F000020000F800020000780002000078000400003C00 0400003C001E00003E00FFC003FFE0FFC003FFE023237DA229>65 D<0003F802001FFF06007E03 8601F000CE03E0003E0780001E0F00001E1F00000E1E0000063E0000063C0000067C0000027C00 000278000002F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800000078 0000007C0000027C0000023C0000023E0000021E0000041F0000040F0000080780001803E00030 01F00060007E03C0001FFF000003FC001F247CA227>67 DIII<0003F80200001FFF0600007E03860001F000CE00 03E0003E000780001E000F00001E001F00000E001E000006003E000006003C000006007C000002 007C000002007800000200F800000000F800000000F800000000F800000000F800000000F80000 0000F800000000F8000FFFE078000FFFE07C00001E007C00001E003C00001E003E00001E001E00 001E001F00001E000F80001E0007C0001E0003E0002E0001F8006E00007E01C600001FFF020000 03FC000023247CA22A>II<03FFF803FFF800 078000078000078000078000078000078000078000078000078000078000078000078000078000 0780000780000780000780000780000780000780000780000780000780300780780780FC0780FC 0780FC0700F80F00400E00201C0018380007E00015237DA11C>74 DIIII<0007F80000 003C0F000000F003C00001C000E000038000700007000038000F00003C001E00001E001E00001E 003C00000F003C00000F007C00000F8078000007807800000780F8000007C0F8000007C0F80000 07C0F8000007C0F8000007C0F8000007C0F8000007C0F8000007C078000007807C00000F807C00 000F803C00000F003C00000F001E00001E001E00001E000F00003C000780007800038000700001 E001E00000F003C000003C0F00000007F8000022247CA22A>II82 D<01F80807FF181E07983800F8300078700038600018E00018E00008E00008E00008F000007800 007C00003F00003FF8001FFF0007FFC001FFE0001FF00001F800007800003800003C00001C8000 1C80001C80001C80001CC00018E00038E00030F80070CF01E0C7FF8080FE0016247CA21E>I<7F FFFFFF007FFFFFFF007801E00F006001E003006001E001004001E00100C001E00180C001E00180 8001E000808001E000808001E000808001E000800001E000000001E000000001E000000001E000 000001E000000001E000000001E000000001E000000001E000000001E000000001E000000001E0 00000001E000000001E000000001E000000001E000000001E000000001E000000001E000000001 E0000000FFFFC00000FFFFC00021227DA127>I86 DI<3FFFFF803FFFFF803F000F003C 001F0038001E0030003C0060007C00600078006000F0004001F0004001E0004003C0000007C000 00078000000F0000001F0000001E0000003C0000007C00000078000000F0008001F0008001E000 8003C0008007C00080078001800F0001801F0001001E0003003C0007007C000F0078003F00FFFF FF00FFFFFF0019227CA121>90 D<00040000000E0000000E0000000E0000001F0000001F000000 3F800000278000002780000043C0000043C0000043C0000081E0000081E0000101F0000100F000 0100F00003FFF8000200780006007C0004003C0004003C000C001E000C001E003C003F00FF00FF E01B1A7F991F>97 DI<003F0201C0C603002E0E001E1C000E1C00063800067800 02700002700002F00000F00000F00000F00000F00000F000007000027000027800023800041C00 041C00080E000803003001C0C0003F00171A7E991D>IIII<003F810001E06300 0380170006000F000C0007001C00030038000300780001007800010070000100F0000000F00000 00F0000000F0000000F0000000F001FFE070001F0078000F0078000F0038000F001C000F000C00 0F0006000F000380170001E06300003F81001B1A7E9920>III< FFF01FC00F000F000F000C000F0008000F0010000F0020000F0040000F0080000F0100000F0200 000F0400000F0E00000F1F00000F6F00000F8780000F03C0000F03C0000F01E0000F01F0000F00 F0000F0078000F0078000F003C000F003E000F003F00FFF0FFC01A1A7E9920>107 DIII<007F8000 01C0E000070038000E001C001C000E003C000F0038000700780007807000038070000380F00003 C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C07800078078000780380007003C00 0F001C000E000E001C000700380001C0E000007F80001A1A7E9920>II114 D<07E100181B00300700600300600300E00100E00100E00100F00000F800007F80003FF8001FFC 000FFE0000FF00000F00000780000780800380800380800380C00300C00700E00600DC0C0083F0 00111A7E9917>I<7FFFFF00701E0700601E0100401E0100C01E0180801E0080801E0080801E00 80001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E 0000001E0000001E0000001E0000001E0000001E0000001E0000003F000003FFF000191A7F991D >II119 D121 D<7FFFE07803C07003C0600780400780400F00401E00401E0000 3C00003C0000780000F00000F00001E00001E00003C0000780200780200F00200F00201E00603C 00403C00C07801C07803C0FFFFC0131A7E9919>I E /Fb 13 122 df<03CC063C0C3C181C3838 303870387038E070E070E070E070E0E2C0E2C0E261E462643C380F127B9115>97 D<3F00070007000E000E000E000E001C001C001C001C0039C03E60383038307038703870387038 E070E070E070E060E0E0C0C0C1C0618063003C000D1D7B9C13>I<01E007100C10180838107010 70607F80E000E000E000E000E000E0086010602030C01F000D127B9113>101 D<00F3018F030F06070E0E0C0E1C0E1C0E381C381C381C381C383830383038187818F00F700070 007000E000E0C0C0E1C0C3007E00101A7D9113>103 D<1F800380038007000700070007000E00 0E000E000E001C001C001C001C0038003800380038007000700070007000E400E400E400E40068 003800091D7C9C0B>108 D<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380 E00E0380E01C0701C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C 0320300C01C01D127C9122>I<3C3C002646004687004707008E07008E07000E07000E07001C0E 001C0E001C0E001C1C00381C40381C40383840383880701900300E0012127C9117>I<01E00718 0C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E000F127B9115>I< 3C3C26C2468747078E068E000E000E001C001C001C001C0038003800380038007000300010127C 9112>114 D<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C030806060 C01F000E127D9111>I<1E0300270700470700470700870E00870E000E0E000E0E001C1C001C1C 001C1C001C1C003838803838801838801839001C5900078E0011127C9116>117 D<1E06270E470E4706870287020E020E021C041C041C041C0818083808181018200C4007800F12 7C9113>I<1E03270747074707870E870E0E0E0E0E1C1C1C1C1C1C1C1C38383838183818381C70 07F00070007000E0E0C0E1C0818047003C00101A7C9114>121 D E /Fc 10 96 df<07E01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF807E01010 7E9115>15 D<000001800000078000001E00000078000001E00000078000001E00000078000001 E00000078000001E00000078000000E0000000780000001E0000000780000001E0000000780000 001E0000000780000001E0000000780000001E0000000780000001800000000000000000000000 0000000000000000000000000000000000FFFFFF80FFFFFF8019227D9920>20 D<020000000004000000000400000000080000000010000000002000000000FFFFFFFFF0FFFFFF FFF0200000000010000000000800000000040000000004000000000200000000240E7D902A>32 D<007FF801FFF80780000E00001C0000380000300000700000600000E00000C00000C00000FFFF F8FFFFF8C00000C00000E000006000007000003000003800001C00000E000007800001FFF8007F F8151A7D961C>50 D<0000600000600000E00000C00001C0000180000380000300000700000600 000600000E00000C00001C0000180000380000300000700000600000E00000C00000C00001C000 0180000380000300000700000600000E00000C00000C00001C0000180000380000300000700000 600000E00000C00000C0000013287A9D00>54 D56 D58 D<0018001803D80C381838303C303C707E606660666066E0E7E0C7E0C7E0C7E1C7E187E187 E187E387E307E307E307E707E607660666067E0E3C0C3C0C1C181C301BC01800180010237E9F15 >I<003800003800003800007C00006C0000EE0000C60001C70001830001830003838003018007 01C00600C00E00E00C00601C007018003018003038003830001870001C60000CE0000EC00006C0 0006171A7E981C>94 DI E /Fd 9 122 df<0000038000000F0000003C000000F0 000003C000000F0000003C000000F0000003C000000F0000003C000000F0000000F00000003C00 00000F00000003C0000000F00000003C0000000F00000003C0000000F00000003C0000000F0000 00038019187D9520>60 D62 D<0001F808000E061800380138006000F001C0007003800070070000300F0000200E0000201C00 00203C0000203C000000780000007800000078000000F0000000F0000000F0007FF0F0000780F0 000700F0000700F00007007000070070000E0030000E0038000E001C001E000E00640007018400 00FE00001D1E7E9C21>71 D86 D<01F007080C0818043808300870307FC0E000E000 E000E000E000E0046008601030600F800E127E9113>101 D<07078009C86008D03008E03011C0 3011C03801C03801C0380380700380700380700380600700E00700C00701800783000E86000E78 000E00000E00001C00001C00001C00001C00003C0000FF8000151A819115>112 D<01C206260C1E181E381C301C701C701CE038E038E038E038E070E070E07060F023E01CE000E0 00E001C001C001C001C003C01FF80F1A7E9113>I<00C001C001C001C00380038003800380FFF0 0700070007000E000E000E000E001C001C001C001C00382038203840384018800F000C1A80990F >116 D<1C00C02701C04701C04701C08703808703800E03800E03801C07001C07001C07001C07 00180E00180E00180E001C1E000C3C0007DC00001C00001800603800F03000F06000E0C0004180 003E0000121A7E9114>121 D E /Fe 1 4 df<020002000200C218F2783AE00F800F803AE0F278 C2180200020002000D0E7E8E12>3 D E /Ff 33 119 df45 D<1C007F00FF80FF80FF80FF80FF807F001C0009097B8813>I<000E00 001E00007E0007FE00FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277B A622>49 D<00FF800003FFF0000FFFFC003F03FF007C00FF807C007FC0FE007FC0FF003FE0FF00 3FE0FF003FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F8000007F8000 00FF000001FE000001FC000003F0000007E000000FC000001F0000003E0000007C00E0007800E0 00F000E001E001C0038001C0070001C00FFFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF 80FFFFFF801B277DA622>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE 000003FE0000077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C0 7E0003807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FF FFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 007FFFF8007FFFF8007FFFF81D277EA622>52 D<0007F000003FFC0000FFFF0001FC0F0007F01F 800FE03F800FC03F801FC03F803F803F803F801F007F8000007F0000007F0000007F000000FF00 0000FF0FC000FF3FF800FF70FE00FFE03F00FFC03F80FF801FC0FF801FC0FF801FC0FF001FE0FF 001FE0FF001FE0FF001FE07F001FE07F001FE07F001FE07F001FE03F801FC03F801FC01F803F80 0FC03F8007E0FF0003FFFC0000FFF000003FC0001B277DA622>54 D<000003800000000007C000 00000007C0000000000FE0000000000FE0000000000FE0000000001FF0000000001FF000000000 3FF8000000003FF8000000003FF80000000073FC0000000073FC00000000F3FE00000000E1FE00 000000E1FE00000001C0FF00000001C0FF00000003C0FF80000003807F80000007807FC0000007 003FC0000007003FC000000E003FE000000E001FE000001E001FF000001C000FF000001FFFFFF0 00003FFFFFF800003FFFFFF80000780007FC0000700003FC0000700003FC0000E00001FE0000E0 0001FE0001E00001FF0001C00000FF0001C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFF FE2F297EA834>65 D70 D<00007FE003000003FFFC0F00 001FFFFF1F00007FF00FFF0000FF8001FF0003FE0000FF0007FC00007F000FF800003F000FF000 001F001FE000001F003FE000000F003FC000000F007FC0000007007FC0000007007FC000000700 FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000 000000FF8000000000FF8000000000FF8001FFFFF8FF8001FFFFF87FC001FFFFF87FC00000FF00 7FC00000FF003FC00000FF003FE00000FF001FE00000FF000FF00000FF000FF80000FF0007FC00 00FF0003FE0001FF0000FF8001FF00007FF007FF00001FFFFFBF000003FFFE0F0000007FF00300 2D297CA836>I<0000FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007F00003F8 0003F80007F00001FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803FC000007F 807FC000007FC07F8000003FC07F8000003FC07F8000003FC0FF8000003FE0FF8000003FE0FF80 00003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003F E0FF8000003FE07F8000003FC07FC000007FC07FC000007FC03FC000007F803FC000007F801FE0 0000FF001FE00000FF000FF00001FE0007F00001FC0003F80003F80001FC0007F00000FF001FE0 00003FC07F8000000FFFFE00000000FFE000002B297CA834>79 DI<007F806003FFF0E00FFFFFE01F807FE03F001FE07E0007E07E0003E07C0003E0FC00 01E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC000007FFE00007FFFE0003FFFFC003F FFFF001FFFFF8007FFFFC003FFFFE000FFFFF00007FFF000007FF000000FF8000007F8000003F8 E00003F8E00001F8E00001F8E00001F8F00001F8F00001F0F80003F0FC0003E0FF0007E0FFE01F C0FFFFFF00E0FFFE00C01FF0001D297CA826>83 D<7FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC0 7F803FC03FC07E003FC007C078003FC003C078003FC003C070003FC001C0F0003FC001E0F0003F C001E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E000003FC00000 00003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000 00003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F C0000000003FC00000007FFFFFE000007FFFFFE000007FFFFFE0002B287EA730>I86 DI<01FF800007FFF0000F81FC001FC0FE001FC07F001FC07F001FC03F800F803F8000003F80 00003F8000003F80000FFF8000FFFF8007FC3F801FE03F803F803F807F803F807F003F80FE003F 80FE003F80FE003F80FE007F80FF007F807F00FFC03F83DFFC0FFF0FFC01FC03FC1E1B7E9A21> 97 DI<001FF80000FFFE0003F01F000FE0 3F801FC03F803F803F803F803F807F801F007F000000FF000000FF000000FF000000FF000000FF 000000FF000000FF000000FF000000FF0000007F0000007F8000003F8001C03FC001C01FC003C0 0FE0078003F01F0000FFFC00001FE0001A1B7E9A1F>I<00003FF80000003FF80000003FF80000 0003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F800000003F800000003F800001FE3F80000FFFBF80003F03FF8000FE00FF8 001FC007F8003F8003F8003F8003F8007F8003F8007F0003F800FF0003F800FF0003F800FF0003 F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F00 03F8003F8003F8003F8007F8001FC00FF8000FE01FF80003F03FFF8000FFF3FF80003FC3FF8021 2A7EA926>I<003FE00001FFF80003F07E000FE03F001FC01F803F800FC03F800FC07F000FC07F 0007E0FF0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF000000FF000000FF000000 7F0000007F8000003F8000E03F8001E01FC001C00FE003C003F81F8000FFFE00001FF0001B1B7E 9A20>I<00FF81F003FFE7FC0FC1FE7C1F80FC7C3F80FE7C3F007E107F007F007F007F007F007F 007F007F007F007F007F007F003F007E003F80FE001F80FC000FC1F8001FFFE00018FF80003800 00003C0000003C0000003E0000003FFFF8003FFFFF001FFFFFC00FFFFFE007FFFFF01FFFFFF07E 0007F87C0001F8F80001F8F80000F8F80000F8F80000F8FC0001F87E0003F03F0007E00FC01F80 03FFFE00007FF0001E287E9A22>103 DI< 07001FC01FE03FE03FE03FE01FE01FC007000000000000000000000000000000FFE0FFE0FFE00F E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 0FE0FFFEFFFEFFFE0F2B7DAA13>I108 DII<003FE00001FFFC0003F07E000FC01F801F800FC03F80 0FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF 0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F00 01FFFC00003FE0001D1B7E9A22>II114 D<03FE300FFFF03E03F07800F07000F0F00070F00070F80070FC0000FFE000FFFE007FFFC03FFF E01FFFF007FFF800FFFC0003FC0000FCE0007CE0003CF0003CF0003CF80078FC0078FF01F0F7FF C0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000F00001F00003F00003 F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F00007F00007 F00007F00007F00007F00007F00007F03807F03807F03807F03807F03807F03807F03803F87001 F8F000FFE0001F8015267FA51B>III E /Fg 3 107 df<0000C00000C00001C00001C00003C00005C00005E00008E00008E00010E00020E00020 E00040E000C0E00080E001FFF0010070020070040070040070080070180070FE03FE17177F961A >65 D<0300038003000000000000000000000000001C002400460046008C000C00180018001800 31003100320032001C0009177F960C>105 D<00180038001000000000000000000000000001C0 022004300430086000600060006000C000C000C000C001800180018001806300E300C60078000D 1D80960E>I E /Fh 1 51 df50 D E /Fi 17 107 df2 D<03F0000FFC001FFE003FFF007FFF807FFF80FFFFC0FFFFC0FFFFC0FFFFC0FFFF C0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC0003F00012147D9519>15 D17 D<001FFFFC007FFFFC01E00000078000000E000000 1C00000038000000300000007000000060000000E0000000C0000000C0000000C0000000C00000 00C0000000C0000000C0000000E0000000600000007000000030000000380000001C0000000E00 00000780000001E00000007FFFFC001FFFFC000000000000000000000000000000000000000000 00000000000000000000007FFFFFFC7FFFFFFC1E277C9F27>I21 D<0000006000000000006000000000003000000000001800000000001800000000000C00000000 00060000000000030000FFFFFFFF8000FFFFFFFFC000000000007000000000001C00000000000F 800000000003E0000000000780000000001E00000000003800000000006000FFFFFFFFC000FFFF FFFF80000000000700000000000600000000000C00000000001800000000003000000000003000 000000006000000000006000002B1C7D9932>41 D<000600030000000600030000000C00018000 000C0001800000180000C00000180000C00000300000600000600000300000FFFFFFF80001FFFF FFFC000700000007000E00000003803800000000E0F000000000783800000000E01C00000001C0 070000000700038000000E0001FFFFFFFC0000FFFFFFF800006000003000003000006000001800 00C00000180000C000000C000180000006000300000006000300000006000300002D1C7E9932> 44 D<001FFF00FFFF01E0000780000E00001C0000380000300000700000600000600000E00000 C00000C00000FFFFFFFFFFFFC00000C00000E000006000006000007000003000003800001C0000 0E000007800001E00000FFFF001FFF181E7C9A21>50 D<00000300000300000700000600000E00 000C00001C0000180000380000300000700000600000E00000C00001C000018000038000030000 0700000600000E00000C00001C0000180000180000380000300000700000600000E00000C00001 C0000180000380000300000700000600000E00000C00001C000018000038000030000070000060 0000E00000C00000C00000183079A300>54 D56 DII<000C0000000C000000 1E0000001E0000003F00000033000000330000007380000061800000E1C00000C0C00001C0E000 018060000180600003807000030030000700380006001800060018000E001C000C000C001C000E 00180006003800070030000300300003007000038060000180E00001C0C00000C0C00000C01A1F 7D9D21>94 DI<000F0038007000E001C001C001C001C001C001 C001C001C001C001C001C001C001C001C001C001C001C0038007001E00F0001E000700038001C0 01C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C000E00070003800 0F10317CA419>102 DI106 D E /Fj 38 122 df<07FFF81FFFF83FFFF83020004020 0080200080600000600000600000C00000C00000C00000C00001C0000180000180000380000380 0003800007000003000015157E9415>28 D<70F8FCFC7404040404080810102040060F7C840E> 59 D62 D<00007F00800003808100000E00630000380027000070001F0000E0000E0001C000 0E000380000E000700000E000F000004000E000004001E000004003C000004003C000008007800 00000078000000007800000000F000000000F000000000F000000000F000000000F000000000E0 00000000E000002000E000002000E000004000E000004000F00000800070000080007000010000 380002000018000400001C0008000006003000000381C0000000FE00000021247DA223>67 D<007FFFFFC000078003C000078000C000078000C0000F0000C0000F0000C0000F000080000F00 0080001E000080001E000080001E008080001E008000003C010000003C010000003C030000003C 070000007FFE000000780600000078060000007806000000F004000000F004000000F004000000 F000000001E000000001E000000001E000000001E000000003C000000003C000000003C0000000 03C000000007C0000000FFFE00000022227EA120>70 D<00007F00400003C0C080000E00218000 1C0013800070000F8000E000070001C0000700038000070007000007000F000002000E00000200 1E000002003C000002003C00000400780000000078000000007800000000F000000000F0000000 00F000000000F000000000F0003FFF00E00000F000E00000F000E00000F000E00001E000F00001 E000F00001E000700001E000700003C000380003C000180007C0000C0009C00006001180000380 E08000007F00000022247DA226>I<00FFFC0007C0000780000780000F00000F00000F00000F00 001E00001E00001E00001E00003C00003C00003C00003C0000780000780000780000780000F000 00F00000F00000F00001E00001E00001E00001E00003C00003C00003C00003C00007C000FFFC00 16227EA116>73 D<007FFE000007C0000007800000078000000F0000000F0000000F0000000F00 00001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000007800000078 0000007800000078000000F0000000F0000000F0001000F0001001E0002001E0002001E0004001 E0004003C000C003C0008003C0018003C0078007C01F00FFFFFF001C227EA121>76 D<007FC00001FF0007C00003E00007C00005E00007C00005E00009E0000BC00009E0000BC00009 E00013C00009E00023C00011E00027800011E00047800011E00047800011E00087800021E0010F 000020F0010F000020F0020F000020F0040F000040F0041E000040F0081E000040F0081E000040 F0101E000080F0203C00008078203C00008078403C00008078803C000100788078000100790078 0001007900780001007A00780002007C00F00002007C00F00002003800F00006003800F0000F00 3001F000FFE0203FFF0030227EA12F>I<007FC003FF0007C000780007C000600005E000200009 E000400009E000400008F000400008F000400010F800800010780080001078008000103C008000 203C010000203E010000201E010000201E010000400F020000400F020000400F02000040078200 0080078400008007C400008003C400008003C400010001E800010001E800010001F800010000F8 00020000F0000200007000020000700006000070000F00002000FFE000200028227EA127>I<00 007F00000381C0000E0060003800380070003800E0001C01C0001E0380000E0700000E0F00000F 0E00000F1C00000F3C00000F3C00000F7800000F7800000F7800000FF000001EF000001EF00000 1EF000003CF000003CF000003CE0000078E0000078E00000F0F00000E0F00001E0F00003C07000 07807800070038000E001C0038000E0070000783C00000FE000020247DA225>I<007FFFF00000 07801C000007800F000007800700000F000380000F000380000F000380000F000380001E000780 001E000780001E000780001E000F00003C000F00003C001E00003C003C00003C007000007801E0 00007FFF00000078000000007800000000F000000000F000000000F000000000F000000001E000 000001E000000001E000000001E000000003C000000003C000000003C000000003C000000007C0 000000FFFC00000021227EA11F>I<007FFFE0000007803C000007800E000007800700000F0007 80000F000380000F0003C0000F0003C0001E000780001E000780001E000780001E000F00003C00 1E00003C003C00003C007000003C01C000007FFE00000078078000007801C000007801E00000F0 00F00000F000F00000F000F00000F000F00001E001E00001E001E00001E001E00001E001E00003 C003C00003C003C04003C003C04003C001C08007C001C080FFFC00E3000000003C0022237EA125 >82 D<0003F010000E0C2000180260002001E0004000E000C000C0008000C0018000C0018000C0 0380008003800080038000000380000003C0000001F0000001FE000000FFE000007FF000001FF8 000001FC0000003C0000001C0000000E0000000E0000000E0020000C0020000C0020000C002000 080060001800600010007000200070004000C8008000C603000081FC00001C247DA21E>I<1FFF FFFE1E01E00E1801E0063001E0062003C0062003C0064003C0044003C004400780048007800480 07800400078000000F0000000F0000000F0000000F0000001E0000001E0000001E0000001E0000 003C0000003C0000003C0000003C00000078000000780000007800000078000000F0000000F000 0000F0000000F0000001F00000FFFFC0001F227EA11D>I86 DI<00786001C4 E00302E00601C00E01C01C01C03C01C0380380780380780380780380F00700F00700F00700F007 08F00E10700E10701E1030262018C6200F01C015157E941A>97 D<03C0003F8000038000038000 0380000700000700000700000700000E00000E00000E00000E00001C00001C78001D8E001E0700 3C0700380380380380380780700780700780700780700780E00F00E00F00E00F00E01E00E01C00 601C0060380030700030C0000F000011237DA215>I<00001E0001FC00001C00001C00001C0000 380000380000380000380000700000700000700000700000E00078E001C4E00302E00601C00E01 C01C01C03C01C0380380780380780380780380F00700F00700F00700F00708F00E10700E10701E 1030262018C6200F01C017237EA219>100 D<007C000382000701000E01001C01003801007802 00700400FFF800F00000F00000E00000E00000E00000E00000E00080E000807003003004001838 000FC00011157D9417>I<000F0C00389C00605C00C03801C0380380380780380700700F00700F 00700F00701E00E01E00E01E00E01E00E01E01C00E01C00E03C00605C0031B8001E38000038000 0380000700000700000700700E00F00C00F018006070003FC000161F809417>103 D<00F0000FE00000E00000E00000E00001C00001C00001C00001C0000380000380000380000380 00070000071F0007218007C0C00F00E00F00E00E00E00E00E01C01C01C01C01C01C01C01C03803 80380380380700380704700708700E08700E08700610E006206003C016237DA21C>I<00E000E0 01E000C00000000000000000000000000000000000001E0023004380438083808380870007000E 000E000E001C001C0038003820384070407040308031001E000B227EA111>I<00F0000FE00000 E00000E00000E00001C00001C00001C00001C0000380000380000380000380000700000700F007 03080704380E08780E10780E20300E40001C80001F00001FC0001C7000383800383800381C0038 1C10703820703820703820701840E00C8060070015237DA219>107 D<01E01FC001C001C001C0 038003800380038007000700070007000E000E000E000E001C001C001C001C0038003800380038 007000700070007100E200E200E200620064001C000B237DA20F>I<3C07E01F00461830618047 201880C087401D00E087801E00E087801C00E087001C00E00E003801C00E003801C00E003801C0 0E003801C01C007003801C007003801C007007001C007007043800E007083800E00E083800E00E 083800E006107001C006203000C003C026157E942B>I<3C07C046186047203087403887803887 00388700380E00700E00700E00700E00701C00E01C00E01C01C01C01C13801C238038238038238 01847001883000F018157E941D>I<003E0000C1800380C00700E00E00E01C00F03C00F03C00F0 7800F07800F07800F0F001E0F001E0F001C0F003C0700380700700700600381C001C380007E000 14157E9417>I<03C0F004631C04740E08780E08700708700708700F00E00F00E00F00E00F00E0 0F01C01E01C01E01C01E01C03C03803803803803C07003C0E0072180071E000700000700000E00 000E00000E00000E00001C00001C00001C0000FFC000181F819418>I<00782001C4600302E006 01C00E01C01C01C03C01C0380380780380780380780380F00700F00700F00700F00700F00E0070 0E00701E00302E0018DC000F1C00001C00001C0000380000380000380000380000700000700000 700007FF00131F7E9416>I<3C0F004630C04741C08783C08783C08701808700000E00000E0000 0E00000E00001C00001C00001C00001C000038000038000038000038000070000030000012157E 9416>I<007E0000810003008002018006038006030006000007000007F80003FE0001FF00003F 00000780000380700380F00300F00300E002004004003018000FE00011157E9417>I<006000E0 00E000E000E001C001C001C001C00380FFFC0380038007000700070007000E000E000E000E001C 001C001C001C08381038103820182018C007000E1F7F9E12>I<1E001823003843803843807083 80708380708700700700E00E00E00E00E00E00E01C01C01C01C01C01C01C01C21C03841C03841C 07840C09880E118803E07017157E941C>I<1E00C02301E04381F04380F0838070838030870030 0700200E00200E00200E00201C00401C00401C00801C00801C01001C01001C02000C0400060800 03F00014157E9418>I<01E0F006310C081A1C101A3C201C3C201C18201C000038000038000038 0000380000700000700000700000700860E010F0E010F0E020E170404230803C1F0016157E941C >120 D<1E00302300704380704380E08380E08380E08700E00701C00E01C00E01C00E01C01C03 801C03801C03801C03801C07001C07001C07001C0F000C3E0003CE00000E00000E00001C00601C 00F03800F03000E0600080C0004180003E0000141F7E9418>I E /Fk 59 123 df<000FF000007FFC0001F80E0003E01F0007C03F000F803F000F803F000F801E000F800C 000F8000000F8000000F8000000F800000FFFFFF00FFFFFF000F801F000F801F000F801F000F80 1F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F 801F000F801F000F801F000F801F000F801F007FF0FFE07FF0FFE01B237FA21F>12 D<00180030006000C001C00380070007000E001E001C003C003C003C007800780078007800F800 F000F000F000F000F000F000F000F000F000F000F000F80078007800780078003C003C003C001C 001E000E0007000700038001C000C00060003000180D317BA416>40 DI<387CFEFFFF7F3B03030706060C1C18702008117C8610> 44 DI<387CFEFEFE7C3807077C8610>I<00FE0007FFC00F83 E01F01F03E00F83E00F87C007C7C007C7C007CFC007CFC007EFC007EFC007EFC007EFC007EFC00 7EFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C7C007C3E00F83E00F81F01 F00F83E007FFC000FE0017207E9F1C>48 D<00180000780001F800FFF800FFF80001F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F8007FFFE07FFFE013207C 9F1C>I<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003 F80003F00003F00007E00007C0000F80001F00003E0000380000700000E01801C0180380180700 180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D9F1C>I<00FE0007FFC00F07E01E 03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E00007C0001F8001FE0001FF0000 07C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FEFF00FEFF00FC7E01FC7801F81E 07F00FFFC001FE0017207E9F1C>I<0000E00001E00003E00003E00007E0000FE0001FE0001FE0 0037E00077E000E7E001C7E00187E00307E00707E00E07E00C07E01807E03807E07007E0E007E0 FFFFFEFFFFFE0007E00007E00007E00007E00007E00007E00007E000FFFE00FFFE17207E9F1C> I<1000201E01E01FFFC01FFF801FFF001FFE001FF8001BC00018000018000018000018000019FC 001FFF001E0FC01807E01803E00003F00003F00003F80003F83803F87C03F8FE03F8FE03F8FC03 F0FC03F07007E03007C01C1F800FFF0003F80015207D9F1C>I<001F8000FFE003F07007C0F00F 01F81F01F83E01F83E01F87E00F07C00007C0000FC0800FC7FC0FCFFE0FD80F0FF00F8FE007CFE 007CFC007EFC007EFC007EFC007E7C007E7C007E7C007E3C007C3E007C1E00F80F00F00783E003 FFC000FF0017207E9F1C>I<6000007800007FFFFE7FFFFE7FFFFC7FFFF87FFFF87FFFF0E00060 E000C0C00180C00300C00300000600000C00001C0000180000380000780000780000F00000F000 00F00001F00001F00001F00003F00003F00003F00003F00003F00003F00003F00001E00017227D A11C>I<00FE0003FFC00601E00C00701800701800383800383C00383F00383F80783FE0701FF8 E01FFFC00FFF8007FFC003FFE007FFF01E7FF83C1FFC7807FC7801FEF000FEF0003EF0001EF000 1EF0001CF8001C7800383C00381F01F00FFFC001FF0017207E9F1C>I<01FE0007FF800F83E01E 01F03E00F07C00F87C0078FC007CFC007CFC007CFC007EFC007EFC007EFC007E7C00FE7C00FE3E 01FE1E037E0FFE7E07FC7E00207E00007C00007C1E007C3F00F83F00F83F00F03F01E01E03C01C 0F800FFE0003F80017207E9F1C>I<387CFEFEFE7C380000000000000000387CFEFEFE7C380716 7C9510>I<000070000000007000000000F800000000F800000000F800000001FC00000001FC00 000003FE00000003FE00000003FE00000006FF000000067F0000000E7F8000000C3F8000000C3F 800000183FC00000181FC00000381FE00000300FE00000300FE00000600FF000006007F00000E0 07F80000FFFFF80000FFFFF800018001FC00018001FC00038001FE00030000FE00030000FE0006 00007F000600007F00FFE00FFFF8FFE00FFFF825227EA12A>65 DI<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F80 0F800007801F800007803F000003803F000003807F000001807E000001807E00000180FE000000 00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000007E0000 00007E000001807F000001803F000001803F000003801F800003000F8000030007C000060003F0 000C0001F800380000FF00F000001FFFC0000003FE000021227DA128>II70 D<0003FE0040001FFFC0C0007F00F1C001F8003FC003F0000FC007C00007C00FC00003C01F8000 03C03F000001C03F000001C07F000000C07E000000C07E000000C0FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE000FFFFC7E000FFFFC7F00001FC07F 00001FC03F00001FC03F00001FC01F80001FC00FC0001FC007E0001FC003F0001FC001FC003FC0 007F80E7C0001FFFC3C00003FF00C026227DA12C>I73 D76 DII<0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F80003F001F8000 3F003F00001F803F00001F807F00001FC07E00000FC07E00000FC0FE00000FE0FE00000FE0FE00 000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE07E00000FC07F 00001FC07F00001FC03F00001F803F80003F801F80003F000FC0007E0007E000FC0003F001F800 00FC07E000003FFF80000007FC000023227DA12A>II82 D<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF0000FFE0 007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F00003FC0001FC000 1FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA11F>I<7FFFFFFF807FFF FFFF807E03F80F807803F807807003F803806003F80180E003F801C0E003F801C0C003F800C0C0 03F800C0C003F800C0C003F800C00003F800000003F800000003F800000003F800000003F80000 0003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800000003F8000003FFFF F80003FFFFF80022227EA127>IIII<07FC001FFF803F07C03F03 E03F01E03F01F01E01F00001F00001F0003FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01 F0FC01F07E02F07E0CF81FF87F07E03F18167E951B>97 DI<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000 FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00003E00301F00600FC0E007FF80 00FE0014167E9519>I<0001FE000001FE0000003E0000003E0000003E0000003E0000003E0000 003E0000003E0000003E0000003E0000003E0000003E0001FC3E0007FFBE000F81FE001F007E00 3E003E007E003E007C003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E 00FC003E007C003E007C003E003E007E001E00FE000F83BE0007FF3FC001FC3FC01A237EA21F> I<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC00 00FC00007C00007C00007E00003E00181F00300FC07003FFC000FF0015167E951A>I<003F8000 FFC001E3E003C7E007C7E00F87E00F83C00F80000F80000F80000F80000F80000F8000FFFC00FF FC000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F 80000F80000F80000F80000F80000F80007FF8007FF80013237FA211>I<03FC1E0FFF7F1F0F8F 3E07CF3C03C07C03E07C03E07C03E07C03E07C03E03C03C03E07C01F0F801FFF0013FC00300000 3000003800003FFF801FFFF00FFFF81FFFFC3800FC70003EF0001EF0001EF0001EF0001E78003C 7C007C3F01F80FFFE001FF0018217E951C>II<1C003F007F007F007F003F001C000000000000000000000000000000FF 00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 FFE0FFE00B247EA310>I107 DIII<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC007E FC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE0017167E951C>II114 D<0FF3003FFF00781F00600700E00300E00300F00300FC00007FE0 007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F00700FC0E00EFFC00C7F0 0011167E9516>I<0180000180000180000180000380000380000780000780000F80003F8000FF FF00FFFF000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F 81800F81800F81800F81800F81800F830007C30003FE0000F80011207F9F16>IIIIII<7FFFF07FFFF07C03E07007C0600FC0 E01F80C01F00C03E00C07E0000FC0000F80001F00003F03007E03007C0300F80701F80703F0060 3E00E07C03E0FFFFE0FFFFE014167E9519>I E /Fl 56 124 df<007E1F0001C1B1800303E3C0 0703C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0 000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01 C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C07F87F8151D809C17>I<6060F0F0F8F868680808080808081010101020204040 80800D0C7F9C15>34 D<004000800100020006000C000C00180018003000300070006000600060 00E000E000E000E000E000E000E000E000E000E000E000E0006000600060007000300030001800 18000C000C00060002000100008000400A2A7D9E10>40 D<800040002000100018000C000C0006 00060003000300038001800180018001C001C001C001C001C001C001C001C001C001C001C001C0 018001800180038003000300060006000C000C00180010002000400080000A2A7E9E10>I<0006 000000060000000600000006000000060000000600000006000000060000000600000006000000 0600000006000000060000FFFFFFE0FFFFFFE00006000000060000000600000006000000060000 00060000000600000006000000060000000600000006000000060000000600001B1C7E9720>43 D<60F0F0701010101020204080040C7C830C>II<60F0F06004047C830C >I<03C00C301818300C300C700E60066006E007E007E007E007E007E007E007E007E007E007E0 07E007E00760066006700E300C300C18180C3007E0101D7E9B15>48 D<030007003F00C7000700 070007000700070007000700070007000700070007000700070007000700070007000700070007 0007000F80FFF80D1C7C9B15>I<60F0F0600000000000000000000060F0F06004127C910C>58 D<7FFFFFC0FFFFFFE0000000000000000000000000000000000000000000000000000000000000 0000FFFFFFE07FFFFFC01B0C7E8F20>61 D<000600000006000000060000000F0000000F000000 0F00000017800000178000001780000023C0000023C0000023C0000041E0000041E0000041E000 0080F0000080F0000180F8000100780001FFF80003007C0002003C0002003C0006003E0004001E 0004001E000C001F001E001F00FF80FFF01C1D7F9C1F>65 DI<00 1F808000E0618001801980070007800E0003801C0003801C000180380001807800008078000080 70000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000700000 807800008078000080380000801C0001001C0001000E000200070004000180080000E03000001F C000191E7E9C1E>II70 D<001F808000E06180018019800700 07800E0003801C0003801C00018038000180780000807800008070000080F0000000F0000000F0 000000F0000000F0000000F0000000F000FFF0F0000F8070000780780007807800078038000780 1C0007801C0007800E00078007000B800180118000E06080001F80001C1E7E9C21>I73 D76 DI<003F800000E0E000 0380380007001C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001 E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C07800 03C0380003803C0007801C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C20 >79 DI82 D<07E0801C1980300580700380600180E0 0180E00080E00080E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F8000 07C00003C00001C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C 17>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020 000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 00000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C 7F9B1E>I86 DI<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>92 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C00E01C 40E01C40E01C40603C40304E801F870012127E9115>97 DI<07E00C301878307870306000E000E000E000E000E000E00060007004300418080C3007C00E12 7E9112>I<003F0000070000070000070000070000070000070000070000070000070000070003 E7000C1700180F00300700700700600700E00700E00700E00700E00700E00700E0070060070070 0700300700180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E006FFFEE000 E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E00 0E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C00381C00381C00 1818001C38000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0 C000C0C000C06001803003001C0E0007F800121C7F9215>II<18003C003C0018000000000000000000000000000000FC001C001C001C001C001C001C001C 001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<00C001E001E000C0000000 00000000000000000000000FE000E000E000E000E000E000E000E000E000E000E000E000E000E0 00E000E000E000E000E000E000E060E0F0C0F1C061803E000B25839C0D>IIIII<03F000 0E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C0600180700380 3003001806000E1C0003F00012127F9115>II<03C1000C3300180B00300F0070 0700700700E00700E00700E00700E00700E00700E00700600700700700300F00180F000C370007 C700000700000700000700000700000700000700000700003FE0131A7E9116>II<1F90 30704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D0608FC00D127F9110 >I<04000400040004000C000C001C003C00FFE01C001C001C001C001C001C001C001C001C001C 101C101C101C101C100C100E2003C00C1A7F9910>IIII<7F8FF00F03800F03000702 0003840001C80001D80000F00000700000780000F800009C00010E00020E000607000403801E07 C0FF0FF81512809116>II123 D E /Fm 7 56 df<0C001C00EC000C000C000C000C000C000C000C000C000C000C000C000C000C000C 000C00FFC00A137D9211>49 D<1F0060C06060F070F030603000700070006000C001C001800200 04000810101020207FE0FFE00C137E9211>I<0FC030707038703870380038003000E00FC00070 00380018001C601CF01CF018E03860701FC00E137F9211>I<006000E000E00160026006600C60 0860106020606060C060FFFC0060006000600060006003FC0E137F9211>I<60607FC07F804400 4000400040004F0070C040E0006000700070E070E070E06040E021C01F000C137E9211>I<07C0 0C201070207060006000C000CF00D0C0E060C020C030C030C03040306020206010C00F000C137E 9211>I<40007FFC7FF8401080108020004000800100010003000200060006000E000E000E000E 000E0004000E147E9311>I E /Fn 8 56 df<0030000030000030000030000030000030000030 00003000003000003000003000FFFFFCFFFFFC0030000030000030000030000030000030000030 0000300000300000300000300016187E931B>43 D<03000700FF00070007000700070007000700 070007000700070007000700070007000700070007007FF00C157E9412>49 D<0F8030E040708030C038E0384038003800700070006000C00180030006000C08080810183FF0 7FF0FFF00D157E9412>I<0FE030306018701C701C001C00180038006007E000300018000C000E 000EE00EE00EC00C401830300FE00F157F9412>I<00300030007000F001F00170027004700870 1870107020704070C070FFFE0070007000700070007003FE0F157F9412>I<20303FE03FC02400 20002000200020002F8030E020700030003800384038E038E0388030406020C01F000D157E9412 >I<01F00608080C181C301C70006000E000E3E0EC30F018F00CE00EE00EE00E600E600E300C30 18183007C00F157F9412>I<40007FFE7FFC7FF8C0088010802000400080008001000100030002 00060006000E000E000E000E000E0004000F167E9512>I E /Fo 58 124 df<00000FE0000030180000E01C0001C03C0001803C0003803800038000000380000007000000 070000000700000007000000070000000E000000FFFFE0000E00E0000E00E0000E01C0001C01C0 001C01C0001C01C0001C0380001C03800038038000380380003807000038070000380700007007 0800700E1000700E1000700E1000700E2000E0062000E003C000E0000000E0000000C0000001C0 000001C0000071800000F1800000F3000000620000003C0000001E2D82A21B>12 D<00000FF3800000303F000000607F000000C07F000001C037000001800E000003800E00000380 0E000003800E000003801C000007001C000007001C000007001C00000700380000FFFFF800000E 003800000E003800000E007000000E007000000E007000001C007000001C00E000001C00E00000 1C00E000001C00E000003801C000003801C000003801C000003801C20000380384000070038400 007003840000700388000070018800007000F00000E000000000E000000000E000000000C00000 0000C00000007180000000F180000000F10000000062000000003C00000000212D82A21D>I<0C 1E3F3F1D02020204040810204080080F75A20F>39 D<0000800001000002000004000008000010 0000300000600000C00000C0000180000300000300000600000600000E00000C00001C00001800 00180000380000300000300000700000700000600000600000E00000E00000E00000C00000C000 00C00000C00000C00000C00000C00000C00000C00000C00000C00000C00000C000004000006000 00600000200000300000100000080000113278A414>I<00080000040000060000020000030000 030000010000018000018000018000018000018000018000018000018000018000018000018000 0180000180000380000380000380000300000300000700000700000600000600000E00000C0000 0C00001C0000180000380000300000300000600000600000C00001800001800003000006000004 0000080000100000200000400000800000113280A414>I<0E1E1E1E1E02020404080810204080 070F7D840F>44 DI<70F8F8F0E005057A840F>I<00010003000300 06001E002E03CE001C001C001C001C0038003800380038007000700070007000E000E000E000E0 01C001C001C001C003800380038003800780FFFC10217AA019>49 D<000FC00010600060380080 1800801C01001C02201E02101E04101E04101E04101E08203C08203C0840380840780880F00700 E00001C000030000060000180000200000C0000100000200000400100800301000202000605F80 C063FFC040FF80807F00801E0017227CA019>I<000FC000307000C01801001C02001C04000C04 401C08201C08201C08201C08403808C0380700700000600001C000070000FC0000070000038000 03800001C00001C00001C00003C06003C0F003C0F00380E00780800700800E00801C0040380020 F0001F800016227BA019>I<0000180000380000380000700000700000700000E00000E00000E0 0000C00001C0000180000380000300000300000600000600000C00000C00001800001000003180 0061C00043800083800183800303800207000407000807003FC700403E00800FF0000E00000E00 001C00001C00001C00001C00003800003800003800003000152B7EA019>I<02780204FC0407FC 040FFC080F0C181E04701803A03000602000406000C04000808001800003800003000007000006 00000E00000E00001C00001C00003C0000380000780000780000F00000F00000F00001E00001E0 0001E00003E00003C00003C000018000172279A019>55 D<000FC000386000703000E03001C038 0380380780380700380F00380F00380F00381E00781E00781E00781E00F81E00F01C00F00E01F0 0E02F00605E00309E001F1E00003C00003C0000380000700000700600E00F00C00F01800E03000 80600041C0003F000015227BA019>57 D<07000F800F800F000E00000000000000000000000000 000000000000000000007000F800F800F000E00009157A940F>I<000003000000030000000700 0000070000000F0000000F0000001F0000002F0000002F0000004F0000004F8000008780000087 800001078000020780000207800004078000040780000807800008078000100780003007800020 0780007FFF80004007C0008007C0008003C0010003C0030003C0020003C0040003C0040003C00C 0003C03C0007C0FF003FFC1E237DA224>65 D<00FFFFE0000F0038000F001C000F001E001E000E 001E000F001E000F001E000F003C000E003C001E003C001E003C003C00780078007800F0007801 E00078078000FFFF8000F001E000F000F000F0007801E0007801E0003801E0003C01E0003C03C0 007803C0007803C0007803C000F0078000F0078001E0078003C0078007000F801E00FFFFF00020 227DA122>I<00007F00800003808100000E00630000380027000070001F0000E0000E0001C000 0E000380000E000700000E000F000004000E000004001E000004003C000004003C000008007800 00000078000000007800000000F000000000F000000000F000000000F000000000F000000000E0 00000000E000002000E000002000E000004000E000004000F00000800070000080007000010000 380002000018000400001C0008000006003000000381C0000000FE000000212479A223>I<00FF FFF000000F003C00000F000E00000F000700001E000380001E000380001E0001C0001E0001C000 3C0001C0003C0001E0003C0001E0003C0001E000780001E000780001E000780001E000780001E0 00F00003C000F00003C000F00003C000F00003C001E000078001E000078001E000070001E0000F 0003C0000E0003C0001C0003C0003C0003C00038000780007000078000E000078001C000078007 00000F801C0000FFFFF0000023227DA125>I<00FFFFFF80000F000780000F000180000F000180 001E000180001E000180001E000100001E000100003C000100003C000100003C010100003C0100 0000780200000078020000007806000000780E000000FFFC000000F00C000000F00C000000F00C 000001E008000001E008000001E008040001E000080003C000080003C000080003C000100003C0 00100007800020000780006000078000C000078001C0000F8007C000FFFFFF800021227DA121> I<00FFFFFF000F000F000F0003000F0003001E0003001E0003001E0002001E0002003C0002003C 0002003C0102003C010000780200007802000078060000780E0000FFFC0000F00C0000F00C0000 F00C0001E0080001E0080001E0080001E0000003C0000003C0000003C0000003C0000007800000 0780000007800000078000000F800000FFFC000020227DA120>I<00007F00800003808100000E 00630000380027000070001F0000E0000E0001C0000E000380000E000700000E000F000004000E 000004001E000004003C000004003C00000800780000000078000000007800000000F000000000 F000000000F000000000F000000000F0003FFC00E00001E000E00001E000E00001E000E00003C0 00E00003C000F00003C000700003C0007000078000380007800018000F80001C00138000060023 00000381C1000000FE000000212479A226>I<00FFF8000F00000F00000F00001E00001E00001E 00001E00003C00003C00003C00003C0000780000780000780000780000F00000F00000F00000F0 0001E00001E00001E00001E00003C00003C00003C00003C0000780000780000780000780000F80 00FFF80015227DA113>73 D<0007FFC000003C0000003C0000003C000000780000007800000078 00000078000000F0000000F0000000F0000000F0000001E0000001E0000001E0000001E0000003 C0000003C0000003C0000003C00000078000000780000007800000078000000F0000000F000038 0F0000780F0000F81E0000F81E0000F03C0000403800004070000021E000001F8000001A237CA1 1A>I<00FFFC00000F8000000F0000000F0000001E0000001E0000001E0000001E0000003C0000 003C0000003C0000003C00000078000000780000007800000078000000F0000000F0000000F000 0000F0000001E0000001E0000001E0002001E0002003C0004003C0004003C0008003C000800780 0180078001000780030007800F000F803E00FFFFFE001B227DA11F>76 D<00FF800007FC000F80 000F80000F80001780000F80001780001780002F000013C0002F000013C0004F000013C0008F00 0023C0009E000023C0011E000023C0011E000023C0021E000043C0043C000043C0043C000043C0 083C000041E0083C000081E01078000081E02078000081E02078000081E04078000101E040F000 0101E080F0000101E100F0000101E100F0000200F201E0000200F201E0000200F401E0000200F8 01E0000400F803C0000400F003C0000400F003C0000C00E003C0001E00C007C000FFC0C07FFC00 2E227DA12C>I<00FF000FFC000F8001E0000F800180000FC000800013C001000013C001000011 E001000011E001000021E002000020F002000020F002000020F002000040780400004078040000 4078040000403C040000803C080000803E080000801E080000801E080001001F100001000F1000 01000F10000100079000020007A000020007A000020003E000020003E000040003C000040001C0 00040001C0000C0001C0001E00008000FFC000800026227DA124>I<0000FE0000078380000C00 E0003800700070003800E0003801C0001C0380001C0700001C0F00001E1E00001E1C00001E3C00 001E3C00001E7800001E7800001E7800001EF000003CF000003CF000003CF0000078F0000078E0 000078E00000F0E00000F0E00001E0E00001C0F00003C0F00007807000070078000E0038001C00 1C0038000E00E0000703800001FC00001F2479A225>I<00FFFFE0000F0038000F001E000F000E 001E0007001E0007001E0007001E0007003C000F003C000F003C000F003C001E0078001E007800 3C00780078007800E000F003C000FFFE0000F0000000F0000001E0000001E0000001E0000001E0 000003C0000003C0000003C0000003C00000078000000780000007800000078000000F800000FF F8000020227DA121>I<00FFFFC0000F0070000F003C000F001C001E000E001E000E001E000F00 1E000F003C001E003C001E003C001E003C003C0078003800780070007801E00078078000FFFC00 00F00E0000F0070000F0038001E003C001E003C001E003C001E003C003C0078003C0078003C007 8003C0078007800F0007800F0107800F01078007020F800702FFF8038C000000F020237DA124> 82 D<0001F020000E0C40001802C0003001C0006001C000E0018000C0018001C0018001C00180 03C0010003C0010003C0000003C0000003E0000001F8000001FF000000FFE000007FF000001FF8 000003FC0000007C0000003C0000001E0000001E0000001E0020001C0020001C0020001C002000 18006000380060003000700060007000C000C8018000C607000081FC00001B247DA21B>I<1FFF FFF81E03C0381803C0183003C01820078018200780184007801040078010400F0010800F001080 0F0010000F0000001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000 0078000000780000007800000078000000F0000000F0000000F0000000F0000001E0000001E000 0001E0000001E0000003E00000FFFF00001D2277A123>I86 DI<00 F8C00185C00705C00E03800E03801C03803C0380380700780700780700780700F00E00F00E00F0 0E00F00E10F01C20701C20703C20305C40308C400F078014157B9419>97 D<03C03F8003800380038007000700070007000E000E000E000E001C001CF81D0C1E0E3C063807 3807380F700F700F700F700FE01EE01EE01EE03CE038E038607060E031C01F0010237BA216>I< 007E0001C1000301800703800E07801C07803C0000380000780000780000780000F00000F00000 F00000F00000F00100700100700200300C001830000FC00011157B9416>I<00003C0003F80000 380000380000380000700000700000700000700000E00000E00000E00000E00001C000F9C00185 C00705C00E03800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E 10F01C20701C20703C20305C40308C400F078016237BA219>I<00F803840E021C023C02380278 04F018FFE0F000F000E000E000E000E000E002E0026004701830600F800F157A9416>I<00003E 0000470000CF00018F000186000380000380000380000700000700000700000700000700000E00 00FFF0000E00000E00000E00001C00001C00001C00001C00001C00003800003800003800003800 00380000700000700000700000700000700000E00000E00000E00000E00000C00001C00001C000 718000F18000F300006200003C0000182D82A20F>I<001F180030B800E0B801C07001C0700380 700780700700E00F00E00F00E00F00E01E01C01E01C01E01C01E01C01E03800E03800E0780060B 8006170001E700000700000700000E00000E00000E00701C00F01800F0300060E0003F8000151F 7E9416>I<00F0000FE00000E00000E00000E00001C00001C00001C00001C00003800003800003 8000038000070000071F0007218007C0C00F00E00F00E00E00E00E00E01C01C01C01C01C01C01C 01C0380380380380380380380704700708700E08700E10700610E006206003C016237DA219>I< 00C001E001C001C0000000000000000000000000000000001C002300430043008700870087000E 000E001C001C001C00380038003840708070807080710032001C000B217BA00F>I<00F0000FE0 0000E00000E00000E00001C00001C00001C00001C0000380000380000380000380000700000701 E0070210070C700E10F00E10F00E20600E40001D80001E00001FC0001C7000383800383800381C 00381C20703840703840703840701880E01880600F0014237DA216>107 D<01E01FC001C001C001C0038003800380038007000700070007000E000E000E000E001C001C00 1C001C0038003800380038007000700070007100E200E200E200E200640038000B237CA20C>I< 1C0F80F8002610C10C00476066060087807807008780780700870070070087007007000E00E00E 000E00E00E000E00E00E000E00E00E001C01C01C001C01C01C001C01C01C001C01C03820380380 384038038070403803807080380380308070070031003003001E0023157B9428>I<1C0F002631 C04740C08780E08780E08700E08700E00E01C00E01C00E01C00E01C01C03801C03801C03801C07 04380708380E08380E103806107006203003C016157B941B>I<007E0001C3000381800701C00E 01C01C01E03C01E03801E07801E07801E07801E0F003C0F003C0F00380F00780700700700E0070 0C0030180018700007C00013157B9419>I<01C1F002621804741C08780C08700E08700E08701E 00E01E00E01E00E01E00E01E01C03C01C03C01C03C01C07803807003807003C0E003C1C0072380 071E000700000700000E00000E00000E00000E00001C00001C00001C0000FFC000171F7F9419> I<1C1F002620804741C08783C08703C08701808700000E00000E00000E00000E00001C00001C00 001C00001C000038000038000038000038000070000030000012157B9415>114 D<00FC000183000200800401800C03800C03000C00000F00000FF00007FC0003FE00003E00000F 00000700700700F00600F00600E004004008002030001FC00011157D9414>I<00C001C001C001 C001C003800380038003800700FFF8070007000E000E000E000E001C001C001C001C0038003800 38003810702070207040708031001E000D1F7C9E10>I<1E00602300E04380E04381C08381C087 01C08701C00703800E03800E03800E03801C07001C07001C07001C07081C0E10180E101C0E101C 1E200C262007C3C015157B941A>I<1E03802307C04387C04383C08381C08700C08700C0070080 0E00800E00800E00801C01001C01001C01001C02001C02001C04001C08001C08000C300003C000 12157B9416>I<1E0060E02300E1F04380E1F04381C0F08381C0708701C0308701C03007038020 0E0380200E0380200E0380201C0700401C0700401C0700401C0700801C0700801C0701001C0F01 000C0F020006138C0003E0F0001C157B9420>I<03C1E0046210083470103CF02038F020386020 380000700000700000700000700000E00000E00000E00000E02061C040F1C040F1C080E2C10044 6200383C0014157D9416>I<1E00302300704380704380E08380E08700E08700E00701C00E01C0 0E01C00E01C01C03801C03801C03801C03801C07001C07001C07001C0F000C3E0003CE00000E00 000E00001C00601C00F03800F03000E0600080C0004380003E0000141F7B9418>I123 D E /Fp 80 125 df0 D<001F83E000706E3000C07C780180F8780380F07807007000070070000700700007007000 0700700007007000070070000700700007007000FFFFFFC0070070000700700007007000070070 000700700007007000070070000700700007007000070070000700700007007000070070000700 700007007000070070000700700007007000070078007FE3FF801D2380A21C>11 D<001FC0000070200000C010000180380003807800070078000700300007000000070000000700 000007000000070000000700000007000000FFFFF8000700780007003800070038000700380007 003800070038000700380007003800070038000700380007003800070038000700380007003800 07003800070038000700380007003800070038007FE1FF80192380A21B>I<000FC07F00007031 C08000E00B004001801E00E003803E01E007003C01E007001C00C007001C000007001C00000700 1C000007001C000007001C000007001C000007001C0000FFFFFFFFE007001C01E007001C00E007 001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00E0 07001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00 E007001C00E07FF1FFCFFE272380A229>14 D<70F8F8F8F8F8F8F8707070707070707070707070 202020202020000000000070F8F8F87005247CA30E>33 D<7038F87CFC7EFC7E743A0402040204 0204020804080410081008201040200F0F7EA218>I<70F8FCFC7404040404080810102040060F 7CA20E>39 D<00200040008001000300060004000C000C00180018003000300030007000600060 006000E000E000E000E000E000E000E000E000E000E000E000E000E000E0006000600060007000 300030003000180018000C000C0004000600030001000080004000200B327CA413>I<80004000 2000100018000C000400060006000300030001800180018001C000C000C000C000E000E000E000 E000E000E000E000E000E000E000E000E000E000E000C000C000C001C001800180018003000300 0600060004000C00180010002000400080000B327DA413>I<0001800000018000000180000001 800000018000000180000001800000018000000180000001800000018000000180000001800000 0180000001800000018000FFFFFFFEFFFFFFFE0001800000018000000180000001800000018000 000180000001800000018000000180000001800000018000000180000001800000018000000180 00000180001F227D9C26>43 D<70F8FCFC7404040404080810102040060F7C840E>II<70F8F8F87005057C840E>I<000080000180000180000300000300000300000600 000600000600000C00000C00000C00001800001800001800003000003000003000006000006000 00600000C00000C00000C000018000018000018000018000030000030000030000060000060000 0600000C00000C00000C0000180000180000180000300000300000300000600000600000600000 C00000C00000C0000011317DA418>I<01F000071C000C06001803003803803803807001C07001 C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001 E0F001E0F001E0F001E07001C07001C07001C07803C03803803803801C07000C0600071C0001F0 0013227EA018>I<008003800F80F3800380038003800380038003800380038003800380038003 8003800380038003800380038003800380038003800380038003800380038007C0FFFE0F217CA0 18>I<03F0000C1C001007002007804003C04003C08003E0F003E0F801E0F801E0F801E02003E0 0003E00003C00003C0000780000700000E00001C0000180000300000600000C000018000010000 0200200400200800201800603000403FFFC07FFFC0FFFFC013217EA018>I<03F8000C1E001007 002007804007C07807C07803C07807C03807C0000780000780000700000F00000E0000380003F0 00001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F803E0F003C04003 C0400780200780100F000C1C0003F00013227EA018>I<000200000600000E00000E00001E0000 1E00002E00004E00004E00008E00008E00010E00020E00020E00040E00040E00080E00100E0010 0E00200E00200E00400E00800E00FFFFF8000E00000E00000E00000E00000E00000E00000E0000 1F0001FFF015217FA018>I<1000801E07001FFF001FFE001FF80013E000100000100000100000 10000010000010000010F800130E001407001803801003800001C00001C00001E00001E00001E0 0001E07001E0F001E0F001E0E001C08001C04003C04003802007001006000C1C0003F00013227E A018>I<007E0001C1000300800601C00E03C01C03C01801803800003800007800007000007000 00F0F800F30C00F40600F40300F80380F801C0F001C0F001E0F001E0F001E0F001E0F001E07001 E07001E07001E03801C03801C01803801C03000C0600070C0001F00013227EA018>I<40000060 00007FFFE07FFFC07FFFC0400080C0010080010080020080020000040000080000080000100000 300000200000600000600000600000E00000C00000C00001C00001C00001C00001C00003C00003 C00003C00003C00003C00003C00003C00003C00001800013237DA118>I<01F800060E00080300 1001802001802000C06000C06000C06000C07000C07801803E01003F02001FC4000FF80003F800 03FC00067F00083F80100F803007C06001C06000E0C000E0C00060C00060C00060C00060600040 6000C03000801803000E0E0003F00013227EA018>I<01F000060C000C06001807003803807003 80700380F001C0F001C0F001C0F001E0F001E0F001E0F001E0F001E07001E07003E03803E01805 E00C05E00619E003E1E00001C00001C00001C0000380000380300300780700780600700C002018 001030000FC00013227EA018>I<70F8F8F870000000000000000000000070F8F8F87005157C94 0E>I<70F8F8F870000000000000000000000070F8F8F87808080808101010204040051F7C940E> I61 D<0001800000018000000180000003C0000003C00000 03C0000005E0000005E000000DF0000008F0000008F0000010F800001078000010780000203C00 00203C0000203C0000401E0000401E0000401E0000800F0000800F0000FFFF0001000780010007 80030007C0020003C0020003C0040003E0040001E0040001E00C0000F00C0000F03E0001F8FF80 0FFF20237EA225>65 DI<0007E0 100038183000E0063001C00170038000F0070000F00E0000701E0000701C0000303C0000303C00 00307C0000107800001078000010F8000000F8000000F8000000F8000000F8000000F8000000F8 000000F800000078000000780000107C0000103C0000103C0000101C0000201E0000200E000040 070000400380008001C0010000E0020000381C000007E0001C247DA223>IIII<0007F008003C0C18 00E0021801C001B8038000F8070000780F0000381E0000381E0000183C0000183C0000187C0000 087800000878000008F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800 1FFF780000F8780000787C0000783C0000783C0000781E0000781E0000780F0000780700007803 8000B801C000B800E00318003C0C080007F00020247DA226>III<03FFF0001F00000F00000F00000F00000F00000F00000F00000F00000F 00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F 00000F00000F00000F00700F00F80F00F80F00F80E00F01E00401C0020380018700007C0001423 7EA119>IIIII<000FE00000783C0000E00E0003C007800780 03C00F0001E00E0000E01E0000F03C0000783C0000787C00007C7C00007C7800003C7800003CF8 00003EF800003EF800003EF800003EF800003EF800003EF800003EF800003EF800003E7800003C 7C00007C7C00007C3C0000783E0000F81E0000F00F0001E00F0001E0078003C003C0078000E00E 0000783C00000FE0001F247DA226>II82 D<03F0200C0C60180260 3001E07000E0600060E00060E00060E00020E00020E00020F00000F000007800007F00003FF000 1FFE000FFF0003FF80003FC00007E00001E00000F00000F0000070800070800070800070800070 C00060C00060E000C0F000C0C80180C6070081FC0014247DA21B>I<7FFFFFF878078078600780 18400780084007800840078008C007800C80078004800780048007800480078004000780000007 800000078000000780000007800000078000000780000007800000078000000780000007800000 078000000780000007800000078000000780000007800000078000000780000007800000078000 000FC00003FFFF001E227EA123>IIII91 D<0804100820102010402040208040804080408040B85CFC7EFC7E7C3E381C0F0F7AA218>II<0FE0001838003C0C003C0E001807000007000007000007 0000FF0007C7001E07003C0700780700700700F00708F00708F00708F00F087817083C23900FC1 E015157E9418>97 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E0000 0E00000E00000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E001E 0E001E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F0017237F A21B>I<01FE000703000C07801C0780380300780000700000F00000F00000F00000F00000F000 00F00000F000007000007800403800401C00800C010007060001F80012157E9416>I<0000E000 0FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001 F8E00704E00C02E01C01E03800E07800E07000E0F000E0F000E0F000E0F000E0F000E0F000E0F0 00E07000E07800E03800E01801E00C02E0070CF001F0FE17237EA21B>I<01FC000707000C0380 1C01C03801C07801E07000E0F000E0FFFFE0F00000F00000F00000F00000F00000700000780020 3800201C00400E008007030000FC0013157F9416>I<003C00C6018F038F030F07000700070007 0007000700070007000700FFF80700070007000700070007000700070007000700070007000700 0700070007000700070007807FF8102380A20F>I<00007001F198071E180E0E181C07001C0700 3C07803C07803C07803C07801C07001C07000E0E000F1C0019F000100000100000180000180000 1FFE000FFFC00FFFE03800F0600030400018C00018C00018C000186000306000303800E00E0380 03FE0015217F9518>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00 000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00700E00700E00 700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF1823 7FA21B>I<1C001E003E001E001C00000000000000000000000000000000000E00FE001E000E00 0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00A227FA10E >I<01C003E003E003E001C00000000000000000000000000000000001E00FE001E000E000E000 E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 00E060E0F0C0F18061803E000B2C82A10F>I<0E0000FE00001E00000E00000E00000E00000E00 000E00000E00000E00000E00000E00000E00000E00000E03FC0E01F00E01C00E01800E02000E04 000E08000E10000E38000EF8000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00 F00E00F8FFE3FE17237FA21A>I<0E00FE001E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E00FFE00B237FA20E>I<0E1FC07F00FE60E183801E807201C00F003C00E00F003C00E00E 003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E0 0E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E0FFE3FF8F FE27157F942A>I<0E1F80FE60C01E80E00F00700F00700E00700E00700E00700E00700E00700E 00700E00700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18157F941B>I< 01FC000707000C01801800C03800E0700070700070F00078F00078F00078F00078F00078F00078 F000787000707800F03800E01C01C00E038007070001FC0015157F9418>I<0E1F00FE61C00E80 600F00700E00380E003C0E001C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E003C0E00 3C0E00380F00700E80E00E41C00E3F000E00000E00000E00000E00000E00000E00000E00000E00 000E0000FFE000171F7F941B>I<01F8200704600E02601C01603801E07800E07800E0F000E0F0 00E0F000E0F000E0F000E0F000E0F000E07000E07800E03801E01C01E00C02E0070CE001F0E000 00E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE171F7E941A>I<0E3CFE 461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E000E000E000F00FFF0 10157F9413>I<0F8830786018C018C008C008E008F0007F803FE00FF001F8003C801C800C800C C00CC008E018D0308FC00E157E9413>I<02000200020002000600060006000E001E003E00FFF8 0E000E000E000E000E000E000E000E000E000E000E000E040E040E040E040E040E040708030801 F00E1F7F9E13>I<0E0070FE07F01E00F00E00700E00700E00700E00700E00700E00700E00700E 00700E00700E00700E00700E00700E00700E00F00E00F006017003827800FC7F18157F941B>I< FFC1FE1E00780E00300E00200E002007004007004003808003808003808001C10001C10000E200 00E20000E20000740000740000380000380000380000100017157F941A>IIII<3FFFC0380380300780200700600E00401C00403C 0040380000700000E00001E00001C0000380400700400F00400E00C01C00803800807801807007 80FFFF8012157F9416>III E /Fq 43 122 df<00001FFC00000001FFFF00000007FFFFC000001FF807E000007FC007F00000 FF000FF00001FF000FF00001FE000FF00003FC001FF80003FC000FF00003FC000FF00003FC0007 E00003FC0001800003FC0000000003FC0000000003FC0000000003FC0000000003FC00FFF800FF FFFFFFF800FFFFFFFFF800FFFFFFFFF80003FC0007F80003FC0007F80003FC0007F80003FC0007 F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003 FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007 F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003 FC0007F80003FC0007F80003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A327FB1 2E>12 D45 D<0001E0000003E000000FE000007FE0001FFFE000FFFFE000FFBFE000E03FE000003FE000003F E000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE00000 3FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000 003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE0 00003FE000003FE000003FE000003FE0007FFFFFF07FFFFFF07FFFFFF01C2E7AAD29>49 D<003FF00001FFFE0007FFFF801FC07FE03F003FF07C001FF87F000FFCFF8007FEFFC007FEFFC0 03FFFFC003FFFFC003FFFFC003FF7F8003FF3F0003FF000003FF000003FF000007FE000007FE00 0007FC00000FF800001FF800001FF000003FE000007F8000007F000000FE000001FC000003F000 0007E000000FC007001F8007003E0007007C000F00F8000E01F0000E01E0001E03FFFFFE07FFFF FE0FFFFFFE1FFFFFFE3FFFFFFE7FFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC202E7CAD29>I<000FFC 0000007FFF800001F01FE00003C00FF00007800FF8000FE007FC001FF007FE001FF807FE001FF8 07FE001FF807FE001FF807FE001FF807FE000FF007FE0007E007FC0001800FFC0000000FF80000 000FF80000001FF00000003FE00000007F8000001FFE0000001FFC0000001FFF800000001FF000 00000FF800000007FE00000003FF00000003FF00000001FF80000001FF800E0001FFC03F8001FF C07FC001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FF80FFE003FF807FC003 FF007F0007FE003F000FFC001FE01FF80007FFFFE00001FFFF8000001FFC0000222E7DAD29>I< 0000007800000000F800000001F800000003F800000007F800000007F80000000FF80000001FF8 0000003FF80000007FF800000077F8000000F7F8000001E7F8000003C7F800000787F800000707 F800000F07F800001E07F800003C07F800007807F800007007F80000F007F80001E007F80003C0 07F800078007F8000F0007F8000F0007F8001E0007F8003C0007F800780007F800F00007F800FF FFFFFFF0FFFFFFFFF0FFFFFFFFF000000FF80000000FF80000000FF80000000FF80000000FF800 00000FF80000000FF80000000FF80000000FF800000FFFFFF0000FFFFFF0000FFFFFF0242E7EAD 29>I<0C0000380FC003F80FFFFFF80FFFFFF00FFFFFE00FFFFFC00FFFFF800FFFFF000FFFFC00 0FFFF0000FFF00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0FF8 000F7FFF000FFFFFC00FF01FE00F800FF00F0007F80E0007FC000003FE000003FE000003FE0000 03FF000003FF1E0003FF7F8003FFFF8003FFFFC003FFFFC003FFFFC003FFFF8003FEFF8003FE7F 0007FC7C0007FC3C000FF81E001FF00FC07FE007FFFF8001FFFE00003FE000202E7CAD29>I<00 007F80000007FFF000001FC07800007F001C0000FE001E0001FC007E0003F800FF0007F001FF00 0FF001FF001FE001FF001FE001FF003FE000FE003FE0007C007FC00000007FC00000007FC00000 007FC0000000FFC3FF8000FFC7FFE000FFCFBFF000FFDC03FC00FFF803FE00FFF001FF00FFF000 FF00FFE000FF80FFE000FF80FFE000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC07FC0 00FFC07FC000FFC07FC000FFC07FC000FFC03FC000FFC03FC000FF801FE000FF801FE000FF000F E001FF000FF001FE0007F803FC0001FC0FF80000FFFFE000003FFF80000007FC0000222E7DAD29 >I<38000000003E000000003FFFFFFFC03FFFFFFFC03FFFFFFFC03FFFFFFF807FFFFFFF007FFF FFFE007FFFFFFC007FFFFFF8007FFFFFF000780001F000700003E000700007C000F0000F8000E0 000F0000E0001E0000E0003E000000007C00000000F800000000F800000001F000000001F00000 0003F000000003E000000007E000000007E00000000FE00000000FE00000001FC00000001FC000 00001FC00000003FC00000003FC00000003FC00000003FC00000003FC00000007FC00000007FC0 0000007FC00000007FC00000007FC00000007FC00000007FC00000007FC00000003F800000003F 800000000E00000022307BAF29>I<0000007C0000000000007C000000000000FE000000000000 FE000000000000FE000000000001FF000000000001FF000000000003FF800000000003FF800000 000007FFC00000000007FFC00000000007FFC0000000000FFFE0000000000F7FE0000000001F7F F0000000001E3FF0000000001E3FF0000000003E3FF8000000003C1FF8000000007C1FFC000000 00780FFC00000000780FFC00000000F80FFE00000000F007FE00000001F007FF00000001E003FF 00000001E003FF00000003E003FF80000003C001FF80000007C001FFC00000078000FFC0000007 8000FFC000000FFFFFFFE000000FFFFFFFE000001FFFFFFFF000001E00003FF000001E00003FF0 00003C00003FF800003C00001FF800007C00001FFC00007800000FFC00007800000FFC0000F000 0007FE0000F0000007FE0001F0000007FF0003F8000003FF00FFFFC001FFFFFEFFFFC001FFFFFE FFFFC001FFFFFE37317DB03E>65 D68 DII<000003FF80038000003FFFF007800001FFFFFC0F800007FF007F1F80001FF8000FFF8000 7FE00003FF8000FFC00001FF8001FF000000FF8003FE0000007F8007FE0000003F800FFC000000 1F801FF80000001F801FF80000000F803FF80000000F803FF00000000F803FF000000007807FF0 00000007807FF000000007807FE00000000000FFE00000000000FFE00000000000FFE000000000 00FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000 00000000FFE00007FFFFFEFFE00007FFFFFE7FE00007FFFFFE7FF0000001FF807FF0000001FF80 3FF0000001FF803FF0000001FF803FF8000001FF801FF8000001FF801FFC000001FF800FFC0000 01FF8007FE000001FF8003FF000001FF8001FF800001FF8000FFC00003FF80007FE00003FF8000 1FF80007FF800007FF803FFF800001FFFFFE1F8000003FFFF80780000003FFC0018037317BB041 >I73 D<00000FFE0000000000FFFFE000000007FFFFFC0000001FFC07FF0000 003FE000FF800000FF80003FE00001FF00001FF00003FE00000FF80007FC000007FC0007FC0000 07FC000FF8000003FE001FF8000003FF001FF0000001FF003FF0000001FF803FF0000001FF803F F0000001FF807FE0000000FFC07FE0000000FFC07FE0000000FFC0FFE0000000FFE0FFE0000000 FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0 000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE07FE0000000FFC07FE0000000FF C07FF0000001FFC07FF0000001FFC03FF0000001FF803FF0000001FF801FF8000003FF001FF800 0003FF000FFC000007FE000FFC000007FE0007FE00000FFC0003FF00001FF80001FF80003FF000 00FFC0007FE000003FE000FF8000001FFC07FF00000007FFFFFC00000000FFFFE0000000000FFE 00000033317BB03E>79 DI< FFFFFFFFC0000000FFFFFFFFFC000000FFFFFFFFFF80000000FFC001FFE0000000FFC0003FF000 0000FFC0000FFC000000FFC00007FC000000FFC00007FE000000FFC00003FF000000FFC00003FF 000000FFC00003FF800000FFC00003FF800000FFC00003FF800000FFC00003FF800000FFC00003 FF800000FFC00003FF800000FFC00003FF000000FFC00003FF000000FFC00007FE000000FFC000 07FC000000FFC0000FFC000000FFC0003FF0000000FFC001FFE0000000FFFFFFFF80000000FFFF FFFC00000000FFFFFFFE00000000FFC003FF00000000FFC000FFC0000000FFC0007FE0000000FF C0003FE0000000FFC0003FF0000000FFC0001FF0000000FFC0001FF8000000FFC0001FF8000000 FFC0001FF8000000FFC0001FF8000000FFC0001FF8000000FFC0001FFC000000FFC0001FFC0000 00FFC0001FFC000000FFC0001FFC004000FFC0001FFC00E000FFC0001FFE00E000FFC0000FFE00 E000FFC0000FFF01C000FFC00007FF83C0FFFFFFC003FFFF80FFFFFFC000FFFF00FFFFFFC0000F FC003B317EB03E>82 D<001FF0038000FFFF078003FFFFCF8007F00FFF801FC001FF801F80007F 803F00003F807F00001F807E00000F807E00000F80FE00000780FE00000780FF00000380FF0000 0380FF80000380FFC0000000FFE0000000FFFC0000007FFFE000007FFFFE00003FFFFFC0003FFF FFF0001FFFFFFC000FFFFFFE0007FFFFFF0001FFFFFF00007FFFFF80001FFFFFC00000FFFFC000 0007FFC0000000FFE00000007FE00000003FE00000001FE0E000001FE0E000000FE0E000000FE0 E000000FE0F000000FE0F000000FC0F800000FC0F800001F80FC00001F80FF00003F00FFC0007E 00FFFC01FC00F9FFFFF800F03FFFE000E007FF000023317BB02E>I<3FFFFFFFFFFF003FFFFFFF FFFF003FFFFFFFFFFF003FE00FFC01FF007F000FFC003F807E000FFC001F807C000FFC000F8078 000FFC00078078000FFC00078070000FFC00038070000FFC00038070000FFC00038070000FFC00 0380E0000FFC0001C0E0000FFC0001C0E0000FFC0001C0E0000FFC0001C000000FFC0000000000 0FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000 0000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000F FC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC000000 00000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC 00000000000FFC00000000000FFC00000000000FFC00000000000FFC000000007FFFFFFF800000 7FFFFFFF8000007FFFFFFF800032307DAF39>II87 D<007FF8000003FFFF00000FFFFFC0001FE01FF0 001FF007F8001FF007FC001FF003FC001FF001FE000FE001FE0007C001FE00010001FE00000001 FE00000001FE000001FFFE00003FFFFE0001FFF1FE0007FE01FE001FF001FE003FE001FE007FC0 01FE007F8001FE00FF8001FE00FF0001FE00FF0001FE00FF0001FE00FF8003FE00FF8007FE007F C00FFE003FF03EFF001FFFF87FF807FFF03FF800FF800FF825207E9F28>97 D<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800000007F800000007F800 000007F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8 00000007F800000007F800000007F80FF00007F87FFE0007F9FFFF8007FFE03FE007FF000FF007 FE0007F807FC0007F807F80003FC07F80003FE07F80003FE07F80001FE07F80001FF07F80001FF 07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001 FF07F80001FE07F80003FE07F80003FC07FC0003FC07FC0007F807FE000FF007FF801FE007E7E0 7FC007C1FFFF8007807FFE0007001FE00028327EB12E>I<0007FF00007FFFE001FFFFF803FC03 FC07F807FC0FF007FC1FE007FC3FC007FC3FC003F87FC001F07F800040FF800000FF800000FF80 0000FF800000FF800000FF800000FF800000FF800000FF800000FF8000007FC000007FC000003F C0000E3FE0000E1FE0001E0FF0003C07F8007803FF01F001FFFFE0007FFF800007FC001F207D9F 25>I<00000007E0000003FFE0000003FFE0000003FFE00000003FE00000001FE00000001FE000 00001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE0 0000001FE00000001FE00000001FE0000FF81FE0007FFF1FE001FFFFDFE003FE03FFE00FF800FF E01FF0007FE01FE0003FE03FC0001FE03FC0001FE07FC0001FE07F80001FE0FF80001FE0FF8000 1FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80 001FE07F80001FE07FC0001FE07FC0001FE03FC0003FE01FE0007FE01FE000FFE00FF001FFE007 FC07DFF001FFFF9FFF007FFE1FFF000FF01FFF28327DB12E>I<0007FC0000003FFF800000FFFF E00003FC07F00007F801F8000FE000FC001FE0007E003FC0007E003FC0003F007FC0003F007F80 003F007F80003F80FF80003F80FF80003F80FFFFFFFF80FFFFFFFF80FFFFFFFF80FF80000000FF 80000000FF800000007F800000007F800000003FC00000003FC00003801FC00003801FE0000780 0FF0000F0007F8001E0003FE00FC0000FFFFF800003FFFE0000003FF000021207E9F26>I<0000 FF000007FFC0001FFFF0007FC7F000FF0FF801FF0FF801FE0FF803FE0FF803FC0FF803FC07F003 FC01C003FC000003FC000003FC000003FC000003FC000003FC000003FC0000FFFFF800FFFFF800 FFFFF80003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00 0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC 000003FC000003FC000003FC000003FC000003FC000003FC000003FC00007FFFF0007FFFF0007F FFF0001D327EB119>I<001FF007E000FFFE3FF003FFFFFFF807F83FF1F80FE00FE1F81FE00FF1 F81FC007F0603FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007 F8001FC007F0001FE00FF0000FE00FE00007F83FC00007FFFF80000EFFFE00000E1FF000000E00 0000001E000000001E000000001F000000001F800000001FFFFFC0000FFFFFF8000FFFFFFE0007 FFFFFF8007FFFFFFC007FFFFFFE01FFFFFFFE03F00007FE07E00000FF0FE000007F0FC000003F0 FC000003F0FC000003F0FE000007F07E000007E07F00000FE03FC0003FC01FF801FF8007FFFFFE 0000FFFFF000001FFF8000252F7E9F29>I<01F800000000FFF800000000FFF800000000FFF800 0000000FF80000000007F80000000007F80000000007F80000000007F80000000007F800000000 07F80000000007F80000000007F80000000007F80000000007F80000000007F80000000007F800 00000007F80000000007F807F8000007F83FFF000007F87FFF800007F9F03FC00007FBC01FE000 07FF801FE00007FF000FF00007FE000FF00007FC000FF00007FC000FF00007F8000FF00007F800 0FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000 07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F800 0FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80 FFFFC1FFFF8029327DB12E>I<03C0000FF0000FF0001FF8001FF8001FFC001FF8001FF8000FF0 000FF00003C00000000000000000000000000000000000000000000000000001F800FFF800FFF8 00FFF8000FF80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 00FFFF80FFFF80FFFF8011337DB217>I<01F800FFF800FFF800FFF8000FF80007F80007F80007 F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 F800FFFFC0FFFFC0FFFFC012327DB117>108 D<03F007F8000FF000FFF03FFF007FFE00FFF07F FF80FFFF00FFF1F03FC3E07F800FF3C01FE7803FC007F7801FEF003FC007F7000FFE001FE007FE 000FFC001FE007FC000FF8001FE007FC000FF8001FE007F8000FF0001FE007F8000FF0001FE007 F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE0 07F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001F E007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF000 1FE007F8000FF0001FE007F8000FF0001FE0FFFFC1FFFF83FFFFFFFFC1FFFF83FFFFFFFFC1FFFF 83FFFF40207D9F45>I<03F007F80000FFF03FFF0000FFF07FFF8000FFF1F03FC0000FF3C01FE0 0007F7801FE00007F7000FF00007FE000FF00007FC000FF00007FC000FF00007F8000FF00007F8 000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF0 0007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8 000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000FFFFC1FFFF80FFFFC1FFFF 80FFFFC1FFFF8029207D9F2E>I<0007FE0000003FFFC00000FFFFF00003FC03FC0007F000FE00 0FE0007F001FC0003F803FC0003FC03FC0003FC07F80001FE07F80001FE07F80001FE0FF80001F F0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF07F8000 1FE07F80001FE07F80001FE03FC0003FC03FC0003FC01FE0007F800FE0007F0007F801FE0003FE 07FC0001FFFFF800003FFFC0000007FE000024207E9F29>I<01F80FF000FFF87FFE00FFF9FFFF 80FFFFE07FE00FFF001FF007FE000FF807FC0007F807F80007FC07F80003FE07F80003FE07F800 03FE07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F8 0001FF07F80001FF07F80003FF07F80003FE07F80003FE07F80003FC07FC0007FC07FC000FF807 FE000FF007FF801FE007FFE07FC007F9FFFF8007F87FFE0007F81FE00007F800000007F8000000 07F800000007F800000007F800000007F800000007F800000007F800000007F800000007F80000 0007F8000000FFFFC00000FFFFC00000FFFFC00000282E7E9F2E>I<03F03F00FFF0FFC0FFF1FF F0FFF3C7F00FF78FF807F70FF807FE0FF807FE0FF807FC07F007FC03E007FC008007FC000007F8 000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007 F8000007F8000007F8000007F8000007F8000007F8000007F80000FFFFE000FFFFE000FFFFE000 1D207E9F22>114 D<00FF870007FFEF001FFFFF003F007F007C001F007C000F00F8000F00F800 0700FC000700FC000700FF000000FFF800007FFFC0007FFFF0003FFFFC001FFFFE0007FFFF0001 FFFF80001FFF800000FFC000001FC0E0000FC0E0000FC0F00007C0F00007C0F80007C0FC000F80 FE001F80FF803F00FFFFFE00F3FFF800E07FC0001A207D9F21>I<003800003800003800003800 00380000780000780000780000F80000F80001F80003F80007F8001FF800FFFFFEFFFFFEFFFFFE 07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800 07F80007F80007F80007F80707F80707F80707F80707F80707F80707F80707FC0F03FC0E03FE1E 01FFFC007FF8000FE0182E7EAD20>I<01F80003F000FFF801FFF000FFF801FFF000FFF801FFF0 000FF8001FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8 000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF0 0007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8 001FF00007F8001FF00007F8003FF00007F8007FF00003FC00FFF00003FE03EFF80001FFFFCFFF 80007FFF0FFF80000FFC0FFF8029207D9F2E>III121 D E /Fr 9 118 df<007C01C207010E011C013C013802780C7BF07C00F000F000F000F0007000 700170023804183807C010147C9315>101 D<00C001E001E001C0000000000000000000000000 00000E003300230043804300470087000E000E000E001C001C001C003840388030807080310033 001C000B1F7C9E0E>105 D<1C0F80F0002630C318004740640C004780680E004700700E004700 700E008E00E01C000E00E01C000E00E01C000E00E01C001C01C038001C01C038001C01C038001C 01C0708038038071003803806100380380E10038038062007007006600300300380021147C9325 >109 D<007C0001C3000301800E01C01E01C01C01E03C01E07801E07801E07801E0F003C0F003 C0F003C0F00780F00700700F00700E0030180018700007C00013147C9317>111 D<01C1E002621804741C04781C04701E04701E08E01E00E01E00E01E00E01E01C03C01C03C01C0 3C01C0380380780380700380E003C1C0072380071E000700000700000E00000E00000E00000E00 001C00001C0000FFC000171D809317>I<1C1E002661004783804787804707804703008E00000E 00000E00000E00001C00001C00001C00001C000038000038000038000038000070000030000011 147C9313>114 D<00FC030206010C030C070C060C000F800FF007F803FC003E000E700EF00CF0 0CE008401020601F8010147D9313>I<018001C0038003800380038007000700FFF007000E000E 000E000E001C001C001C001C003800380038003820704070407080708031001E000C1C7C9B0F> I<0E00C03300E02301C04381C04301C04701C08703800E03800E03800E03801C07001C07001C07 001C07101C0E20180E20180E201C1E200C264007C38014147C9318>I E /Fs 38 122 df<001F83E000F06E3001C078780380F8780300F030070070000700700007007000 07007000070070000700700007007000FFFFFF8007007000070070000700700007007000070070 000700700007007000070070000700700007007000070070000700700007007000070070000700 70000700700007007000070070007FE3FF001D20809F1B>11 D<003F0000E0C001C0C00381E007 01E00701E0070000070000070000070000070000070000FFFFE00700E00700E00700E00700E007 00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 00E07FC3FE1720809F19>I<70F8FCFC74040404080810102040060E7C9F0D>39 D<0020004000800100020006000C000C00180018003000300030007000600060006000E000E000 E000E000E000E000E000E000E000E000E000E0006000600060007000300030003000180018000C 000C000600020001000080004000200B2E7DA112>I<800040002000100008000C000600060003 00030001800180018001C000C000C000C000E000E000E000E000E000E000E000E000E000E000E0 00E000C000C000C001C001800180018003000300060006000C00080010002000400080000B2E7D A112>I<70F8FCFC74040404080810102040060E7C840D>44 DI<70F8F8 F87005057C840D>I<000100000003800000038000000380000007C0000007C0000007C0000009 E0000009E0000009E0000010F0000010F0000010F00000207800002078000020780000403C0000 403C0000403C0000801E0000801E0000FFFE0001000F0001000F0001000F000200078002000780 02000780040003C00E0003C01F0007E0FFC03FFE1F207F9F22>65 D68 D73 D76 D<07E0800C1980100780300380600180 600180E00180E00080E00080E00080F00000F000007800007F00003FF0001FFC000FFE0003FF00 001F800007800003C00003C00001C08001C08001C08001C08001C0C00180C00380E00300F00600 CE0C0081F80012217D9F19>83 D<7FFFFFE0780F01E0600F0060400F0020400F0020C00F003080 0F0010800F0010800F0010800F0010000F0000000F0000000F0000000F0000000F0000000F0000 000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 00000F0000000F0000000F0000001F800007FFFE001C1F7E9E21>I87 D<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E00380E00780E 00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>97 D<0E0000FE00000E0000 0E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E000EC3800F01C00F00E0 0E00E00E00700E00700E00780E00780E00780E00780E00780E00780E00700E00700E00E00F00E0 0D01C00CC300083E0015207F9F19>I<03F80E0C1C1E381E380C70007000F000F000F000F000F0 00F00070007000380138011C020E0C03F010147E9314>I<000380003F80000380000380000380 00038000038000038000038000038000038000038003E380061B801C0780380380380380700380 700380F00380F00380F00380F00380F00380F003807003807003803803803807801C07800E1B80 03E3F815207E9F19>I<03F0000E1C001C0E00380700380700700700700380F00380F00380FFFF 80F00000F00000F000007000007000003800801800800C010007060001F80011147F9314>I<00 7C00C6018F038F07060700070007000700070007000700FFF00700070007000700070007000700 070007000700070007000700070007000700070007007FF01020809F0E>I<0000E003E3300E3C 301C1C30380E00780F00780F00780F00780F00780F00380E001C1C001E380033E0002000002000 003000003000003FFE001FFF800FFFC03001E0600070C00030C00030C00030C000306000603000 C01C038003FC00141F7F9417>I<0E0000FE00000E00000E00000E00000E00000E00000E00000E 00000E00000E00000E00000E3E000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16207F9F19>I< 1C001E003E001E001C000000000000000000000000000E007E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E00FFC00A1F809E0D>I<0E00FE000E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E00FFE00B20809F0D>108 D<0E1F01F000FE618618000E81C81C 000F00F00E000F00F00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E0 0E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00 E00E00FFE7FE7FE023147F9326>I<0E3E00FE43000E81800F01C00F01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16147F 9319>I<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000 F0F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>I<0E3E00FEC3800F 01C00F00E00E00E00E00F00E00700E00780E00780E00780E00780E00780E00780E00700E00F00E 00E00F01E00F01C00EC3000E3E000E00000E00000E00000E00000E00000E00000E00000E0000FF E000151D7F9319>I<03E0800619801C05803C0780380380780380700380F00380F00380F00380 F00380F00380F003807003807803803803803807801C0B800E138003E380000380000380000380 000380000380000380000380000380003FF8151D7E9318>I<0E78FE8C0F1E0F1E0F0C0E000E00 0E000E000E000E000E000E000E000E000E000E000E000E00FFE00F147F9312>I<1F9030704030 C010C010C010E00078007F803FE00FF00070803880188018C018C018E030D0608F800D147E9312 >I<020002000200060006000E000E003E00FFF80E000E000E000E000E000E000E000E000E000E 000E000E080E080E080E080E080610031001E00D1C7F9B12>I<0E01C0FE1FC00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C006 03C0030DC001F1FC16147F9319>III<7FC3FC0F01E00701C007018003810001C20000E40000EC000078 00003800003C00007C00004E000087000107000303800201C00601E01E01E0FF07FE1714809318 >II E /Ft 7 117 df<0000E000000000E000000001F000 000001F000000001F000000003F800000003F800000006FC00000006FC0000000EFE0000000C7E 0000000C7E000000183F000000183F000000303F800000301F800000701FC00000600FC0000060 0FC00000C007E00000FFFFE00001FFFFF000018003F000018003F000030001F800030001F80006 0001FC00060000FC000E0000FE00FFE00FFFE0FFE00FFFE0231F7E9E28>65 D<07FC001FFF003F0F803F07C03F03E03F03E00C03E00003E0007FE007FBE01F03E03C03E07C03 E0F803E0F803E0F803E0FC05E07E0DE03FF9FE0FE07E17147F9319>97 DI<01FE0007FF801F0FC03E0FC03E0FC07C0FC07C0300FC00 00FC0000FC0000FC0000FC0000FC00007C00007E00003E00603F00C01F81C007FF0001FC001314 7E9317>I114 D<0FE63FFE701E600EE006E006F800FFC07FF83FFC1FFE03FE001FC007C007E007F006F81EFFFC C7F010147E9315>I<01800180018003800380038007800F803F80FFFCFFFC0F800F800F800F80 0F800F800F800F800F800F800F860F860F860F860F8607CC03F801F00F1D7F9C14>I E /Fu 27 122 df<78FCFCFCFC7806067B8511>46 D<0000FF00100007FFE030001FC07830003E 000C7000F80006F001F00003F003E00001F007C00000F00F800000700F800000701F000000303F 000000303E000000303E000000107E000000107E000000107C00000000FC00000000FC00000000 FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000000007C000000 007E000000007E000000103E000000103E000000103F000000101F000000200F800000200F8000 006007C000004003E000008001F000018000F8000300003E000E00001FC038000007FFE0000000 FF8000242B7DA92B>67 DI72 D77 D82 D<00FE010003FF83000F81E3001E0037003C001F0038000F 007800070070000700F0000300F0000300F0000300F0000100F8000100F8000100FC0000007C00 00007F0000003FE000001FFF00000FFFE00007FFF80003FFFC00007FFE000007FF0000007F0000 001F8000000F80000007C0000007C0800003C0800003C0800003C0800003C0C00003C0C0000380 C0000380E0000780F0000700F8000E00EE001C00C3C07800C1FFF000803FC0001A2B7DA921>I< 7FFFFFFFF87FFFFFFFF87C007C00F870007C003860007C001840007C000840007C0008C0007C00 0CC0007C000C80007C000480007C000480007C000480007C000480007C000400007C000000007C 000000007C000000007C000000007C000000007C000000007C000000007C000000007C00000000 7C000000007C000000007C000000007C000000007C000000007C000000007C000000007C000000 007C000000007C000000007C000000007C000000007C000000007C000000007C00000000FE0000 00FFFFFE0000FFFFFE0026297EA82B>II< 01FC00000E0780001001C0003C00E0003E00F0003E0078001C0078000800780000007800000078 0000007800007FF80003E078000F8078001F0078003E0078007C00780078007820F8007820F800 7820F8007820F800F8207C00F8203C013C401F063FC007F80F001B1A7E991E>97 D<007F8001C0700780080F003C1E007C3C007C3C00387C0010780000F80000F80000F80000F800 00F80000F80000F80000F800007800007C00003C00043C00041E00080F001007802001C0C0007F 00161A7E991B>99 D<00000F000001FF000001FF0000001F0000000F0000000F0000000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00003F0F0001 C0CF0003802F000F001F001E001F001C000F003C000F007C000F0078000F0078000F00F8000F00 F8000F00F8000F00F8000F00F8000F00F8000F00F8000F0078000F0078000F003C000F003C000F 001E001F000E002F0007004F8001C18FF8007E0FF81D2A7EA921>I<007E0003C3800700E00E00 F01C00703C00783C003878003C78003CF8003CF8003CFFFFFCF80000F80000F80000F80000F800 007800007C00003C00043C00041E00080E001007002001C0C0007F00161A7E991B>I<001F0000 70C000E1E001C3E003C3E00381C007808007800007800007800007800007800007800007800007 8000078000FFFE00FFFE0007800007800007800007800007800007800007800007800007800007 800007800007800007800007800007800007800007800007800007800007800007800007C000FF FE00FFFE00132A7FA912>I<07800000FF800000FF8000000F8000000780000007800000078000 000780000007800000078000000780000007800000078000000780000007800000078000000783 F800078C1C0007900E0007A0070007A0078007C0078007C0078007800780078007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007800780 07800780078007800780078007800780FFFCFFFCFFFCFFFC1E2A7FA921>104 D<07000F801F801F800F80070000000000000000000000000000000000000007807F807F800F80 078007800780078007800780078007800780078007800780078007800780078007800780078007 80FFF8FFF80D297FA811>I<0780FF80FF800F8007800780078007800780078007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007800780 0780078007800780078007800780FFFCFFFC0E2A7FA911>108 D<0781F800FC00FF860E030700 FF98070C03800FA0079003C007A003D001E007C003E001E007C003E001E0078003C001E0078003 C001E0078003C001E0078003C001E0078003C001E0078003C001E0078003C001E0078003C001E0 078003C001E0078003C001E0078003C001E0078003C001E0078003C001E0078003C001E0078003 C001E0078003C001E0078003C001E0FFFC7FFE3FFFFFFC7FFE3FFF301A7F9932>I<0783F800FF 8C1C00FF900E000FA0070007A0078007C0078007C0078007800780078007800780078007800780 078007800780078007800780078007800780078007800780078007800780078007800780078007 80078007800780078007800780FFFCFFFCFFFCFFFC1E1A7F9921>I<007F000001C1C000070070 000E0038001C001C003C001E003C001E0078000F0078000F00F8000F80F8000F80F8000F80F800 0F80F8000F80F8000F80F8000F80F8000F8078000F0078000F003C001E003C001E001E003C000E 0038000700700001C1C000007F0000191A7E991E>I<0783F000FF8C1C00FFB00F0007A0078007 C003C0078003E0078001E0078001F0078001F0078000F8078000F8078000F8078000F8078000F8 078000F8078000F8078000F0078001F0078001F0078001E0078003C007C003C007C0078007A00E 0007983C000787E000078000000780000007800000078000000780000007800000078000000780 00000780000007800000FFFC0000FFFC00001D267F9921>I<0787C0FF98E0FF91F00FA1F007C1 F007C0E007C0000780000780000780000780000780000780000780000780000780000780000780 0007800007800007800007800007800007C000FFFE00FFFE00141A7F9917>114 D<07F8401C06C03001C06000C06000C0E00040E00040F00040F800007E00007FF0003FFE000FFF 0003FF80003FC00007C08001E08001E0C000E0C000E0C000E0E000C0F001C0F80180C4070083F8 00131A7E9918>I<0080000080000080000080000180000180000180000380000380000780000F 80001FFF80FFFF8007800007800007800007800007800007800007800007800007800007800007 800007800007800007804007804007804007804007804007804007804003C08001C08000E10000 3E0012257FA417>I<07800780FF80FF80FF80FF800F800F800780078007800780078007800780 078007800780078007800780078007800780078007800780078007800780078007800780078007 800780078007800780078007800F8007800F800380178001C027C000E047FC003F87FC1E1A7F99 21>II121 D E /Fv 27 122 df<0000000C000000000000001E000000000000001E000000000000001E 000000000000003F000000000000003F000000000000003F000000000000007F80000000000000 7F800000000000007F80000000000000FFC0000000000000FFC0000000000000FFC00000000000 019FE00000000000019FE00000000000039FF00000000000030FF00000000000030FF000000000 00070FF800000000000607F800000000000607F800000000000C07FC00000000000C03FC000000 00000C03FC00000000001803FE00000000001801FE00000000001801FE00000000003000FF0000 0000003000FF00000000003000FF000000000060007F800000000060007F8000000000E0007F80 00000000C0003FC000000000C0003FC000000001C0003FE00000000180001FE00000000180001F E00000000380001FF000000003FFFFFFF000000003FFFFFFF000000007FFFFFFF8000000060000 07F800000006000007F80000000C000007FC0000000C000003FC0000000C000003FC0000001800 0001FE00000018000001FE00000018000001FE00000030000000FF00000030000000FF00000070 000000FF800000600000007F800000E00000007F800000F00000007FC00003F80000007FC0000F FE000001FFF000FFFFC0003FFFFFC0FFFFC0003FFFFFC0FFFFC0003FFFFFC03A3D7DBC41>65 D68 D<000000FFC0006000000007FFF800E00000003FFFFE00E0000000 FFC01F01E0000003FE0007C3E0000007F80001E7E000001FE00000F7E000003FC000003FE00000 7F8000001FE00000FF0000001FE00001FE0000000FE00003FC00000007E00003F800000003E000 07F800000003E0000FF000000001E0000FF000000001E0001FE000000001E0001FE000000000E0 003FE000000000E0003FC000000000E0003FC00000000060007FC00000000060007FC000000000 60007FC0000000006000FF80000000000000FF80000000000000FF80000000000000FF80000000 000000FF80000000000000FF80000000000000FF80000000000000FF80000000000000FF800000 00000000FF80000000000000FF80000000000000FF80000000000000FF800000FFFFFF807FC000 00FFFFFF807FC00000FFFFFF807FC00000007FF0003FC00000001FE0003FC00000001FE0003FE0 0000001FE0001FE00000001FE0001FE00000001FE0000FF00000001FE0000FF00000001FE00007 F80000001FE00003FC0000001FE00003FC0000001FE00001FE0000001FE00000FF0000001FE000 007F8000003FE000003FC000003FE000001FE000007FE0000007F80000E7E0000003FE0003C3E0 000000FFC01F81E00000003FFFFE00E000000007FFF8006000000000FFC0000000393D7BBB44> 71 D77 D<000FF80060003FFF00E000FFFFC0E003F807E1E007E000FBE00FC0003FE01F80001FE03F0000 0FE03E000007E07E000003E07E000003E07C000001E0FC000001E0FC000000E0FC000000E0FC00 0000E0FE00000060FE00000060FE00000060FF00000060FF800000007FC00000007FE00000007F F80000003FFF8000001FFFF800001FFFFF80000FFFFFF00007FFFFF80003FFFFFE0000FFFFFF00 003FFFFF800007FFFFC000007FFFC0000007FFE00000007FE00000003FF00000001FF00000000F F000000007F800000003F8C0000003F8C0000003F8C0000001F8C0000001F8C0000001F8E00000 01F8E0000001F8E0000001F0F0000001F0F0000003F0F8000003E0FC000007E0FE000007C0FF00 000FC0FFC0001F80FBF0003F00F0FE00FE00E03FFFF800E00FFFE000C001FF8000253D7BBB30> 83 D<3FFFFFFFFFFFF83FFFFFFFFFFFF83FFFFFFFFFFFF83FE001FF8007F83F0000FF0001F87C 0000FF00007C780000FF00003C780000FF00003C700000FF00001C700000FF00001C600000FF00 000C600000FF00000C600000FF00000C600000FF00000C600000FF00000CE00000FF00000EC000 00FF000006C00000FF000006C00000FF000006C00000FF000006000000FF000000000000FF0000 00000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000 FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000 000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF 000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF00000000 0000FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF00 0000000000FF000000000000FF000000000000FF000000000000FF000000000000FF0000000000 03FFC00000001FFFFFFFF800001FFFFFFFF800001FFFFFFFF800373B7DBA3E>II<003FC0000001FFF8000007C07E00000E001F80001E000FC0003F 8007E0003FC007E0003FC003F0003FC003F0003FC001F8001F8001F8000F0001F800000001F800 000001F800000001F800000001F80000001FF8000007FFF800003FF9F80000FF01F80003F801F8 0007F001F8001FE001F8001FC001F8003F8001F8007F0001F8007F0001F800FF0001F80CFE0001 F80CFE0001F80CFE0001F80CFE0003F80CFE0003F80CFF0007F80C7F000EF80C3F800C7C181FC0 3C7E380FE0703FF003FFE01FE0007F800F8026287CA62B>97 D<01F800000000FFF800000000FF F800000000FFF80000000007F80000000001F80000000001F80000000001F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001 F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000 000001F80FF0000001F83FFE000001F8F01F800001F9C007C00001FB8003F00001FF0001F80001 FE0000FC0001FC0000FC0001F800007E0001F800007F0001F800003F0001F800003F8001F80000 3F8001F800001F8001F800001F8001F800001FC001F800001FC001F800001FC001F800001FC001 F800001FC001F800001FC001F800001FC001F800001FC001F800001FC001F800001F8001F80000 3F8001F800003F8001F800003F0001F800003F0001F800007E0001FC00007E0001FC0000FC0001 FE0001F80001F70001F00001E38003E00001E1C00FC00001C0F03F000001807FFC000000000FE0 00002A3D7EBB30>I<0003FE00001FFFC0007E01F000F8003801F0003C03E000FE07E001FE0FC0 01FE1F8001FE1F8001FE3F8000FC3F0000787F0000007F0000007E000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000007F000000 7F0000007F0000033F0000033F8000071F8000060FC0000E0FC0000C07E0001C03F0003800F800 F0007E03C0001FFF000003FC0020287DA626>I<00000007E000000003FFE000000003FFE00000 0003FFE0000000001FE00000000007E00000000007E00000000007E00000000007E00000000007 E00000000007E00000000007E00000000007E00000000007E00000000007E00000000007E00000 000007E00000000007E00000000007E00000000007E00000000007E00000000007E0000001FC07 E000000FFF87E000003F03C7E00000FC00F7E00001F0003FE00003E0001FE00007E0001FE0000F C0000FE0001F800007E0001F800007E0003F000007E0003F000007E0007F000007E0007F000007 E0007E000007E000FE000007E000FE000007E000FE000007E000FE000007E000FE000007E000FE 000007E000FE000007E000FE000007E000FE000007E0007E000007E0007E000007E0007F000007 E0007F000007E0003F000007E0003F800007E0001F80000FE0000FC0000FE0000FC0001FE00007 E0003FE00003F00077F80000F800E7FFC0007E03C7FFC0001FFF07FFC00003FC07E0002A3D7DBB 30>I<0003FC0000001FFF0000007E07C00000F803F00003F001F80007E000FC0007C0007C000F C0007E001F80003E003F80003F003F00001F003F00001F007F00001F807F00001F807E00001F80 FE00001F80FE00001F80FFFFFFFF80FFFFFFFF80FE00000000FE00000000FE00000000FE000000 00FE00000000FE000000007E000000007F000000007F000000003F000001803F000001801F8000 03801F800003000FC000070007E0000E0003E0000C0001F0003C0000FC007000003F01E000000F FF80000001FE000021287EA626>I<00003F000001FFC00003E0F0000FC3F0001F87F8003F07F8 003F07F8007E07F8007E07F800FE03F000FC000000FC000000FC000000FC000000FC000000FC00 0000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000FFFFFC00FFFF FC00FFFFFC0000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00 0000FC000000FC000001FE00007FFFFC007FFFFC007FFFFC001D3D7FBC1A>I<0007F001F8003F FE0FFC00FC1FBE3E01F007F03E03E003E03E07E003F01C07C001F0000FC001F8000F8000F8001F 8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC000F8000F800 0FC001F80007C001F00007E003F00003E003E00003F007C00003FC1F8000073FFE00000607F000 000E000000000E000000000E000000000F000000000F000000000F8000000007C000000007FFFF C00003FFFFFC0003FFFFFF0000FFFFFFC003FFFFFFE00F80003FF01F000007F03E000003F87C00 0001F87C000000FCFC000000FCF80000007CF80000007CF80000007CF80000007CFC000000FC7C 000000F87E000001F83E000001F01F000003E00FC0000FC003E0001F0001FC00FE00003FFFF000 0007FF800027397EA52B>I<01F800000000FFF800000000FFF800000000FFF80000000007F800 00000001F80000000001F80000000001F80000000001F80000000001F80000000001F800000000 01F80000000001F80000000001F80000000001F80000000001F80000000001F80000000001F800 00000001F80000000001F80000000001F80000000001F80000000001F807F8000001F81FFE0000 01F8781F800001F8E00FC00001F9C007E00001FB8007E00001FF0007E00001FE0003F00001FE00 03F00001FC0003F00001FC0003F00001FC0003F00001F80003F00001F80003F00001F80003F000 01F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F800 03F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F000 01F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00003FC00 07F800FFFFF1FFFFE0FFFFF1FFFFE0FFFFF1FFFFE02B3C7EBB30>I<01C00007F0000FF8000FF8 000FF8000FF8000FF80007F00001C0000000000000000000000000000000000000000000000000 0000000000000000000001F8007FF8007FF8007FF80007F80001F80001F80001F80001F80001F8 0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80003FC00FFFF E0FFFFE0FFFFE0133A7FB918>I<01F800FFF800FFF800FFF80007F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80003FC00FFFFF0FFFFF0FFFFF014 3C7FBB18>108 D<01F803F80003F80000FFF81FFF001FFF0000FFF87C0FC07C0FC000FFF8E007 E0E007E00007F9C003E1C003E00001FB8003F38003F00001FF0003F70003F00001FE0001FE0001 F80001FE0001FE0001F80001FC0001FC0001F80001FC0001FC0001F80001FC0001FC0001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80003FC0003FC0003FC00FFFFF0FFFFF0FFFFF0FFFFF0FFFFF0FFFFF0FFFFF0FFFFF0FFFFF044 267EA548>I<01F807F80000FFF81FFE0000FFF8781F8000FFF8E00FC00007F9C007E00001FB80 07E00001FF0007E00001FE0003F00001FE0003F00001FC0003F00001FC0003F00001FC0003F000 01F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F800 03F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F000 01F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F800 03F00001F80003F00001F80003F00003FC0007F800FFFFF1FFFFE0FFFFF1FFFFE0FFFFF1FFFFE0 2B267EA530>I<0001FE0000000FFFC000003F03F00000F8007C0001F0003E0003E0001F0007C0 000F800F800007C00F800007C01F000003E03F000003F03F000003F03F000003F07E000001F87E 000001F87E000001F8FE000001FCFE000001FCFE000001FCFE000001FCFE000001FCFE000001FC FE000001FCFE000001FCFE000001FC7E000001F87E000001F87F000003F83F000003F03F000003 F01F000003E01F800007E00F800007C007C0000F8003E0001F0001F0003E0000F8007C00003F03 F000000FFFC0000001FE000026287EA62B>I<01F80FF00000FFF83FFE0000FFF8F01F8000FFF9 C00FC00003FB8007F00001FF0003F80001FE0001FC0001FC0000FC0001F80000FE0001F800007F 0001F800007F0001F800003F8001F800003F8001F800003F8001F800003F8001F800001FC001F8 00001FC001F800001FC001F800001FC001F800001FC001F800001FC001F800001FC001F800001F C001F800001FC001F800003F8001F800003F8001F800003F8001F800003F0001F800007F0001F8 00007E0001FC0000FE0001FC0000FC0001FE0001F80001FF0003F00001FB8007E00001F9C00FC0 0001F8F03F000001F87FFC000001F80FE0000001F80000000001F80000000001F80000000001F8 0000000001F80000000001F80000000001F80000000001F80000000001F80000000001F8000000 0001F80000000001F80000000003FC00000000FFFFF0000000FFFFF0000000FFFFF00000002A37 7EA530>I<03F00F80FFF03FE0FFF0F1F0FFF1C3F807F383F801F303F801F703F801F601F001FE 004001FC000001FC000001FC000001FC000001F8000001F8000001F8000001F8000001F8000001 F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80000 01F8000001F8000001F8000001F8000001F8000001F8000003FC0000FFFFF800FFFFF800FFFFF8 001D267EA522>114 D<007F818003FFE3800F807F801E001F803C000F807800078070000380F0 000380F0000380F0000180F8000180F8000180FC000180FE0000007F8000007FFC00003FFFC000 1FFFF0000FFFFC0007FFFE0001FFFF00001FFF800000FFC000001FC0C0000FE0C00007E0C00003 E0E00003E0E00001E0E00001E0F00001E0F00001E0F80001C0F80003C0FC000380FE000780FF00 0F00F3C03E00E0FFF800C03FC0001B287DA622>I<001800000018000000180000001800000018 000000380000003800000038000000380000007800000078000000F8000000F8000001F8000003 F8000007F800001FFFFF00FFFFFF00FFFFFF0001F8000001F8000001F8000001F8000001F80000 01F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800 0001F8000001F8000001F8000001F8018001F8018001F8018001F8018001F8018001F8018001F8 018001F8018001F8018001F8018000FC038000FC0300007C0300007E0700003F0E00000FFC0000 03F00019367EB421>I<01F80003F000FFF801FFF000FFF801FFF000FFF801FFF00007F8000FF0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8 0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8 0003F00001F80003F00001F80003F00001F80003F00001F80007F00001F80007F00001F80007F0 0001F8000FF00000F8000FF00000FC001FF000007C003BFC00007E0073FFE0001F81E3FFE0000F FF83FFE00001FE03F0002B277EA530>I119 D121 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 141 246 a Fv(Using)28 b(T)-7 b(ub)r(e)29 b(Graphs)e(to)j(Mo)r(del)f (Arc)n(hitectural)421 350 y(Designs)g(of)g(Soft)n(w)n(are)g(Systems)445 498 y Fu(Ric)n(hard)20 b(C.)g(Holt)f(and)h(Spiros)g(Mancoridis)520 573 y(Departmen)n(t)g(of)g(Computer)g(Science)675 648 y(Univ)n(ersit)n(y)f (of)h(T)-5 b(oron)n(to)857 722 y(Canada)856 908 y Ft(Abstract)190 992 y Fs(A)11 b(tub)q(e)g(graph)g(is)f(a)g(mathematical)f(en)o(tit)o(y)h (that)g(can)g(b)q(e)i(used)f(for)f(mo)q(delling)g(arc)o(hitectural)122 1048 y(designs)h(of)f(soft)o(w)o(are)g(systems.)18 b(It)11 b(consists)f(of)g(a)h(tree)g(\(represen)o(ting)f(con)o(tainmen)o(t\))g(with)g (a)h(set)122 1105 y(of)k(edges)h(called)f(tub)q(es)h(\(represen)o(ting)f(dep) q(endencies\))i(b)q(et)o(w)o(een)f(the)g(tree's)f(v)o(ertices)f(\(repre-)122 1161 y(sen)o(ting)e(comp)q(onen)o(ts\).)19 b(T)l(ub)q(es,)14 b(for)f(example,)f(can)i(mo)q(del)f(the)g Fr(imp)n(ort)g Fs(relation)f(at)g (the)h(mo)q(d-)122 1218 y(ule)18 b(lev)o(el)f(and)h(the)g Fr(use)g Fs(dep)q(endency)i(relation)d(at)g(the)h(subsystem)g(lev)o(el.)27 b(W)l(ell-formedness)122 1274 y(constrain)o(ts)16 b(are)i(imp)q(osed)g(on)g (tub)q(e)h(edges)f(to)g(de\014ne)h(restricted)e(tub)q(e)i(graphs)e(that)h(mo) q(del)122 1331 y(particular)h(st)o(yles)h(of)g(arc)o(hitectural)g(designs.)36 b(In)21 b(this)f(pap)q(er,)j(the)d(w)o(ell-formedness)g(con-)122 1387 y(strain)o(ts)13 b(de\014ne)k(tub)q(e)e(graphs)g(that)f(mo)q(del)h(SIL)h (language)f(arc)o(hitectural)e(designs.)20 b(Di\013eren)o(t)122 1443 y(mathematical)d(form)o(ulations)g(of)i(these)g(w)o(ell-formed)f(tub)q (e)i(graphs)f(are)g(giv)o(en)g(and)g(pro)o(v)o(en)122 1500 y(to)h(b)q(e)h(equiv)m(alen)o(t.)35 b(Algorithms)19 b(for)h(manipulating)f (tub)q(e)i(graphs,)g(for)f(p)q(ossible)g(use)h(in)f(a)122 1556 y(soft)o(w)o(are)14 b(dev)o(elopmen)o(t)j(en)o(vironmen)o(t,)e(are)h(also)f (giv)o(en)h(and)h(their)f(complexities)f(are)h(sho)o(wn)122 1613 y(to)e(b)q(e)i(mo)q(dest)f(in)g(most)g(cases.)0 1779 y Fq(1)83 b(In)n(tro)r(duction)0 1889 y Fp(An)17 b Fo(ar)n(chite)n(ctur)n(al)h (design)g Fp(sp)q(eci\014es)f(a)h(soft)o(w)o(are)f(system's)f(structure)h(in) g(terms)f(of)h(its)g(comp)q(onen)o(ts)0 1949 y(and)23 b(their)e(in)o (terconnections.)37 b(Soft)o(w)o(are)22 b(arc)o(hitecture,)f(as)h(describ)q (ed)g(b)o(y)f(P)o(erry)g(and)i(W)l(olf)f([14])0 2009 y(and)i(Garlan)h(and)f (Sha)o(w)g([7],)g(is)g(a)g(broader)g(term)e(that)i(encompasses)f(arc)o (hitectural)f(design)i(as)0 2069 y(w)o(ell)14 b(as)j(issues)e(suc)o(h)h(as)g (global)g(con)o(trol)g(structures,)f(proto)q(cols)i(for)f(comm)o(uni)o (cation,)d(sync)o(hroniza-)0 2129 y(tion)i(and)g(data)h(access,)e(assignmen)o (t)g(of)h(functionalit)o(y)e(to)i(design)g(elemen)o(ts,)d(ph)o(ysical)h (distribution,)0 2190 y(p)q(erformance,)23 b(and)h(so)g(on.)42 b(Earlier)22 b(textual)h(notations)h(for)g(sp)q(ecifying)e(arc)o(hitectural)g (designs,)0 2250 y(called)e(Mo)q(dule)h(In)o(terconnection)f(Languages)k (\(MILs\),)e(include)e(those)h(b)o(y)g(DeRemer)e(and)j(Kron)0 2310 y([5],)h(Co)q(oprider)f([3],)h(and)g(Tic)o(h)o(y)d([16)q(].)38 b(More)22 b(recen)o(t)f(visual)g(ones)i(include)e(those)h(b)o(y)g(Sc)o(h)o(w) o(ank)o(e)0 2370 y(et)f(al.)36 b([15],)22 b(P)o(enn)o(y)e(et)h(al.)37 b([13,)21 b(10],)h(and)g(the)f(authors)h([9].)36 b(Although)21 b(these)g(notations)i(di\013er)944 2528 y(1)p eop %%Page: 2 2 2 1 bop 0 45 a Fp(in)17 b(their)g(details,)g(they)g(all)h(feature)f(mec)o (hanisms)d(for)k(aggregating)i(related)d(soft)o(w)o(are)g(comp)q(onen)o(ts)0 105 y(\(pro)q(cedures,)g(mo)q(dules,)f(classes,)h(\014les\))g(in)o(to)g(comp) q(osite)f(comp)q(onen)o(ts)g(called)g(subsystems.)24 b(These)0 165 y(subsystems)14 b(can)g(con)o(tain)g(other)h(subsystems)e(to)i(form)e(a)i (con)o(tainmen)o(t)d(hierarc)o(h)o(y)l(.)1583 147 y Fn(1)1622 165 y Fp(Programming)0 226 y(languages,)22 b(suc)o(h)e(as)g(Mo)q(dula-2,)i (Ob)s(ject-Orien)o(ted)c(T)l(uring)j([8)o(],)g(C,)e(and)i(C++,)g(pro)o(vide)e (mec)o(ha-)0 286 y(nisms)c(for)h(sp)q(ecifying)f(connections)g(b)q(et)o(w)o (een)g(atomic)g(comp)q(onen)o(ts)g(via)g(relations)h(suc)o(h)g(as)g Fo(imp)n(ort)p Fp(,)0 346 y Fo(include)k Fp(and)f Fo(inherit)p Fp(.)29 b(Similarly)l(,)15 b(arc)o(hitectural)j(design)g(notations)i(should)f (pro)o(vide)f(mec)o(hanism)o(s)0 406 y(for)f(sp)q(ecifying,)e(either)g (explicitly)e(or)k(implici)o(tly)l(,)12 b(suc)o(h)k(connections)h(in)o(v)o (olving)d(subsystems.)73 466 y(Recen)o(tly)l(,)h(Dean)i(and)g(Lam)o(b)g(used) g(a)g(set)g(theory)f(based)i(framew)o(ork)d(to)j(formally)d(describ)q(e)h (ex-)0 527 y(isting)k(MILs)h([4].)34 b(Our)20 b(approac)o(h)i(is)e(based)h(a) g(mathematical)d(en)o(tit)o(y)h(called)g(a)i(tub)q(e)g(graph.)1821 509 y Fn(2)1876 527 y Fp(A)0 587 y(tub)q(e)c(graph)h(consists)f(of)g(a)g (tree)f(and)h(an)h(extra)e(set)h(of)g(edges,)f(called)g(tub)q(es,)h(b)q(et)o (w)o(een)f(the)g(v)o(ertices)0 647 y(of)21 b(the)g(tree.)34 b(These)21 b(graphs)h(b)q(ecome)d(useful)i(for)g(mo)q(delling)e(arc)o (hitectural)g(designs)j(when)f(w)o(ell-)0 707 y(formedness)15 b(restrictions)h(are)g(imp)q(osed)f(on)i(their)e(tub)q(es)i(to)f(express)g (the)g(connectivit)o(y)e(constrain)o(ts)0 767 y(b)q(et)o(w)o(een)19 b(the)g(soft)o(w)o(are)h(comp)q(onen)o(ts.)31 b(The)20 b(tree)f(represen)o (ts)g(subsystem)g(con)o(tainmen)o(t.)30 b(F)l(or)20 b(ex-)0 828 y(ample,)e(the)g(ro)q(ot)i(of)f(the)g(tree)f(could)h(represen)o(t)f(a)h (large)g(soft)o(w)o(are)g(system,)f(the)g(in)o(ternal)g(v)o(ertices)0 888 y(could)i(represen)o(t)f(subsystems)h(and)g(the)g(leaf)g(v)o(ertices)e (could)i(represen)o(t)f(source)i(co)q(de)f(\(mo)q(dules\).)0 948 y(The)i(tub)q(es)f(represen)o(t)g(dep)q(endencies.)36 b(F)l(or)22 b(example,)e(a)i(tub)q(e)f(b)q(et)o(w)o(een)g(t)o(w)o(o)g(leaf)g(v)o(ertices) f(ma)o(y)0 1008 y(represen)o(t)15 b(a)i(pro)q(cedure)f(call)g(b)o(y)f(one)i (mo)q(dule)e(to)h(another.)73 1068 y(Figure)11 b(1)g(sho)o(ws)h(the)f (structure)g(of)g(system)f Fo(S)i Fp(con)o(taining)f(t)o(w)o(o)g(subsystems)f Fo(A)h Fp(and)h Fo(C)p Fp(.)f(Subsystem)0 1129 y Fo(A)18 b Fp(con)o(tains)h(mo)q(dule)e Fo(B)h Fp(and)h(subsystem)e Fo(C)i Fp(con)o(tains)f(mo)q(dules)f Fo(D)h Fp(and)h Fo(E)p Fp(.)f(The)g(edges)g (from)g Fo(B)g Fp(to)0 1189 y Fo(D)e Fp(and)h Fo(E)f Fp(represen)o(t)f(in)o (ter-mo)q(dule)f(dep)q(endencies.)20 b(F)l(or)c(example,)e(a)i(pro)q(cedure)h (in)e Fo(B)i Fp(ma)o(y)d(in)o(v)o(ok)o(e)0 1249 y(pro)q(cedures)21 b(in)f Fo(D)g Fp(and)h Fo(E)p Fp(.)f(The)g(p)q(erson)h(in)g(c)o(harge)f(of)g (the)h(arc)o(hitectural)e(design)h(of)h(this)f(system)0 1309 y(migh)o(t)c(wish)h(to)h(p)q(ermit)d(mo)q(dules)h(in)h Fo(A)h Fp(to)f(dep)q(end)h(on)g(mo)q(dules)e(in)h Fo(C)p Fp(,)f(but)i(not)g(vice)d (v)o(ersa.)24 b(This)0 1369 y(p)q(ermission)11 b(could)i(b)q(e)f(represen)o (ted)g(b)o(y)g(a)h(large)f(arro)o(w)h(from)f Fo(A)g Fp(to)h Fo(C)p Fp(,)f(whic)o(h)g(is)g(dra)o(wn)h(in)g(the)f(middle)0 1429 y(of)j(the)f(diagram)g(of)h(Figure)f(1)h(as)h(a)f(hollo)o(w)f(tub)q(e,)h (through)g(whic)o(h)f(are)h(routed)g(the)f(edges)h(from)e Fo(B)i Fp(to)0 1490 y Fo(D)f Fp(and)i Fo(E)p Fp(.)e(The)h(b)q(ottom)f(diagram)g(sho) o(ws)i(the)e(tub)q(e)h(graph)g(that)h(corresp)q(onds)f(to)g(the)g(design)f (in)h(the)0 1550 y(middle)f(of)j(the)f(diagram,)f(where)h(con)o(tainmen)o(t)f (is)h(sho)o(wn)h(b)o(y)f(solid)g(edges,)g(and)h(t)o(w)o(o)f(dep)q(endencies)0 1610 y Fo(B)j Fp(to)h Fo(D)e Fp(and)i Fo(B)f Fp(to)h Fo(E)p Fp(,)e(as)i(w)o(ell)e(as)h(the)g(tub)q(e)g Fo(A)g Fp(to)h Fo(C)f Fp(are)g(sho)o(wn)g(as)h(dotted)f(edges.)30 b(All)18 b(of)h(these)0 1670 y(dotted)d(edges)h(are)f(tub)q(es.)73 1730 y(As)e(the)h(example)d (illustrates,)h(w)o(e)h(use)h(the)f(term)f(\\tub)q(e")i(for)g(the)f (connecting)g(edges)h(to)f(indicate)0 1791 y(that)19 b(when)f(suc)o(h)g (edges)g(o)q(ccur)h(higher)f(in)g(the)g(tree,)f(they)h(represen)o(t)g(p)q (ermissions)f(or)h(routes)h(that)0 1851 y(m)o(ust)14 b(b)q(e)i(used)g(b)o(y)f (lo)o(w)o(er-lev)o(el)e(edges.)22 b(When)15 b(all)h(of)g(the)f(tub)q(e)h (edges)g(ob)q(ey)g(these)f(p)q(ermissions,)g(w)o(e)0 1911 y(sa)o(y)i(that)g (the)f(tub)q(e)h(graph)g(is)g(w)o(ell-formed.)i(During)e(a)g(system's)e(dev)o (elopmen)o(t,)e(its)j(designers)h(and)0 1971 y(programmers)c(ma)o(y)g(add)i (or)g(delete)e(dep)q(endencies,)h(whic)o(h)g(implies)d(c)o(hanges)k(to)g(the) g(corresp)q(onding)0 2031 y(tub)q(e)j(graph.)27 b(As)18 b(a)g(result,)g(the)g (graph)g(ma)o(y)f(b)q(ecome)f(ill-formed,)g(and)i(these)g(p)q(eople)g(can)g (use)g(the)0 2092 y(algorithms,)k(presen)o(ted)f(in)g(Section)g(6,)j(to)e (e\016cien)o(tly)d(manipulate)h(tub)q(e)i(graphs)h(and)f(c)o(hec)o(k)e(for)0 2152 y(w)o(ell-formedness.)73 2212 y(The)13 b(rest)g(of)g(this)f(pap)q(er)i (is)e(organized)i(as)f(follo)o(ws:)19 b(In)13 b(Section)f(2,)i(w)o(e)e (describ)q(e)g(ho)o(w)h(tub)q(e)g(graphs)0 2272 y(\014t)h(in)o(to)f(a)h(soft) o(w)o(are)f(dev)o(elopmen)o(t)e(en)o(vironmen)o(t)f(framew)o(ork)i(that)i (supp)q(orts)h(the)f(sp)q(eci\014cation)f(and)0 2332 y(visualization)20 b(of)h(arc)o(hitectural)f(designs.)35 b(In)21 b(Section)f(3,)i(w)o(e)f (formally)e(de\014ne)h(tub)q(e)h(graphs.)37 b(In)0 2393 y(Section)20 b(4,)h(w)o(e)e(de\014ne)h(w)o(ell-formed)e(tub)q(e)i(graphs)i(that)e(are)g (useful)g(for)g(mo)q(delling)f(arc)o(hitectural)0 2453 y(designs)e(of)h(a)g (v)o(ersion)e(of)i(a)f(language)h(called)f(SIL)g([9].)23 b(In)17 b(Section)g(5,)g(w)o(e)g(giv)o(e)f(an)i(alternativ)o(e)e(and)0 2513 y(equiv)m(alen)o(t)f(de\014nition)h(of)h(w)o(ell-formed)d(tub)q(e)j (graphs)g(using)g(a)g(graph)h(grammar)d([1].)21 b(In)c(Section)f(6,)p 0 2558 765 2 v 56 2589 a Fm(1)75 2604 y Fl(Some)11 b(MILs)h(migh)o(t)f(allo)o (w)f(o)o(v)o(erlapping)g(subsystems,)k(where)f(the)f(con)o(tainmen)o(t)f (hierarc)o(h)o(y)h(is)g(a)f(directed-acyclic)0 2654 y(graph)j(instead)g(of)f (a)h(tree.)19 b(Suc)o(h)14 b(structures)j(cannot)d(b)q(e)g(mo)q(delled)g (using)f(tub)q(e)i(graphs.)56 2689 y Fm(2)75 2704 y Fl(It)e(is)g(lik)o(ely)f (that)i(tub)q(e)g(graphs,)f(b)q(eing)h(general)f(mathematic)g(en)o(tities,)g (could)h(ha)o(v)o(e)f(other)h(applications)e(as)i(w)o(ell.)944 2828 y Fp(2)p eop %%Page: 3 3 3 2 bop 484 58 a 14917438 19094316 9012101 12432752 30983208 40587345 startTexFig 484 58 a %%BeginDocument: motivate.ps %!PS-Adobe-2.0 EPSF-1.2 %%DocumentFonts: Helvetica-Bold Times-Bold %%Pages: 1 %%BoundingBox: 137 189 471 617 %%EndComments 50 dict begin /arrowHeight 8 def /arrowWidth 4 def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l b translate w h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont findfont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 0 descender sub printSize sub printFont /Courier ne printFont /Courier-Bold ne and { 1 add } if def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath 0 0 moveto arrowHeight neg arrowWidth 2 div lineto arrowHeight neg arrowWidth 2 div neg lineto closepath patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath 0 0 moveto arrowHeight neg arrowWidth 2 div lineto arrowHeight neg arrowWidth 2 div neg lineto closepath } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def %%EndProlog %I Idraw 7 Grid 2 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.8 0 0 0.8 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 160 -17 ] concat %I 31 480 161 560 Rect End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 155 -12 ] concat %I 71 500 121 530 Rect End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 409.249 -17 ] concat %I 31 480 161 560 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 246 508 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 196 538 ] concat %I [ (A) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 553 535 ] concat %I [ (C) ] Text End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 414 8 ] concat %I 71 500 121 530 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 505 528 ] concat %I [ (D) ] Text End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 414 -32 ] concat %I 71 500 121 530 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 505 488 ] concat %I [ (E) ] Text End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.843533 0 0 1 176.792 103 ] concat %I 172 440 291 440 Line End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.847026 0 0 1 176.199 84 ] concat %I 172 440 290 440 Line End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg White 1 1 1 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.58838 150 -155.193 ] concat %I 171 428 171 439 Line End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg White 1 1 1 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 10 0 0 1.40818 -1269.75 -76.527 ] concat %I 171 428 171 440 Line End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 142 411 ] concat %I 34 35 443 160 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 181 567 ] concat %I [ (S) ] Text End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 160 180 ] concat %I 31 480 161 560 Rect End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 155 185 ] concat %I 71 500 121 530 Rect End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 409 180 ] concat %I 31 480 161 560 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 155 180 ] concat %I 121 525 325 540 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 246 705 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 196 735 ] concat %I [ (A) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 554 733 ] concat %I [ (C) ] Text End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 414 205 ] concat %I 71 500 121 530 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 505 725 ] concat %I [ (D) ] Text End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 414 165 ] concat %I 71 500 121 530 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 505 685 ] concat %I [ (E) ] Text End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 155 150 ] concat %I 121 545 325 530 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-helvetica-bold-r-*-140-* /Helvetica-Bold 14 SetF %I t [ 1 0 0 1 183 761 ] concat %I [ (S) ] Text End Begin %I Rect %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 143 608 ] concat %I 34 35 443 160 Rect End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 133 -197 ] concat %I 212 566 4 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 240 -264 ] concat %I 212 566 4 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 31 -282 ] concat %I 212 566 4 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 31 -235 ] concat %I 212 566 4 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 265 -230 ] concat %I 212 566 4 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 341 387 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 222 338 ] concat %I [ (A) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 222 285 ] concat %I [ (B) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 486 343 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 458 304 ] concat %I [ (D) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 538 285 ] concat %I [ (E) ] Text End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 123 -225 ] concat %I 218 593 123 560 Line End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 121 -228 ] concat %I 121 555 121 515 Line End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 123 -225 ] concat %I 226 595 355 560 Line End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 123 -225 ] concat %I 355 560 330 528 Line End Begin %I Line %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 125 -229 ] concat %I 355 563 408 512 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 123 -225 ] concat %I 123 558 348 558 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 125 -274 ] concat %I 123 558 323 572 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 129 -262 ] concat %I 115 542 399 542 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 321 -285 ] concat %I 212 566 4 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 323 635 ] concat %I [ (Atomic Dependencies) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 318 435 ] concat %I [ (Tube Dependencies) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 333 253 ] concat %I [ (Tube Graph) ] Text End Begin %I MLine %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 265 346 ] concat %I 3 314 356 314 338 350 362 3 MLine End Begin %I MLine %I b 65535 3 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.5 0 0 0.5 265 345.5 ] concat %I 3 314 394 314 415 350 395 3 MLine End Begin %I MLine %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 153 80 ] concat %I 4 124 419 168 452 287 452 332 403 4 MLine End Begin %I MLine %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 149 101 ] concat %I 4 127 409 167 436 292 436 333 421 4 MLine End End %I eop showpage %%Trailer end %%EndDocument endTexFig 162 1423 a Fp(Figure)15 b(1:)22 b Fk(Using)c(T)-5 b(ub)r(e)19 b(Graphs)g(to)g(Mo)r(del)e(the)h(Structure)g(of)h(a)g(System)0 1557 y Fp(w)o(e)c(giv)o(e)g(algorithms)f(and)i(their)f(complexit)o(y)d(for)k (manipulating)e(tub)q(e)i(graphs.)22 b(Finally)l(,)14 b(in)h(Section)0 1617 y(7,)h(w)o(e)g(summarize)d(the)j(pap)q(er)h(and)g(describ)q(e)e(p)q (ossible)i(directions)e(for)i(further)f(researc)o(h.)0 1783 y Fq(2)83 b(Using)41 b(T)-7 b(ub)r(e)41 b(Graphs)f(in)g(a)h(Soft)n(w)n(are)f (Dev)n(elopmen)n(t)124 1875 y(En)n(vironmen)n(t)0 1984 y Fp(T)l(ub)q(e)14 b(graphs)i(\014t)e(in)o(to)f(a)i(general)f(framew)o(ork)864 1966 y Fn(3)896 1984 y Fp([9])f(\(illustrated)g(in)h(Figure)g(2\))g(for)g (soft)o(w)o(are)g(dev)o(elop-)0 2045 y(men)o(t)c(en)o(vironmen)o(ts)f(that)j (supp)q(ort)h(the)f(sp)q(eci\014cation)g(and)g(visualization)f(of)h(arc)o (hitectural)f(designs.)0 2105 y(Within)i(this)g(framew)o(ork,)g(the)g (designer)g(can)h(dra)o(w)g(arc)o(hitectural)e(designs)i(using)g(diagrams)g (suc)o(h)f(as)0 2165 y(those)k(in)f(Figure)h(1.)23 b(The)16 b(w)o(a)o(y)h(the)f(diagrams)g(can)h(b)q(e)g(dra)o(wn)g(|)g(what)g(kinds)f (of)h(colours)g(of)g(b)q(o)o(xes)0 2225 y(and)f(edges)f(are)g(a)o(v)m (ailable,)f(whether)h(b)q(o)o(xes)g(can)g(o)o(v)o(erlap)f(and)i(so)f(on)h(|)f (is)f(determined)f(b)o(y)h(the)h(syn-)0 2285 y(tax)h(\(top)h(righ)o(t)f(o)o (v)m(al)g(of)h(Figure)f(2\))g(and)h(seman)o(tics)e(\(b)q(ottom)h(righ)o(t\))f (of)i(the)f(dra)o(wing)h(system.)i(The)0 2345 y(dra)o(wing)h(system)e(ma)o(y) l(,)g(in)h(fact,)h(b)q(e)g(used)f(for)h(applications)g(other)f(than)h(soft)o (w)o(are)g(design.)31 b(Once)0 2406 y(a)18 b(diagram)f(has)h(b)q(een)g(dra)o (wn,)f(it)g(can)h(b)q(e)g(in)o(terpreted)e(as)i(a)g(program)f(in)g(a)h (language)h(suc)o(h)e(as)h(SIL)0 2466 y([9].)i(One)15 b(w)o(a)o(y)g(to)g(do)h (this)e(is)h(b)o(y)g(ha)o(ving)g(the)f(dra)o(wing)i(system)d(emit)g(a)i(SIL)h (program)e(that)i(sp)q(eci\014es)0 2526 y(the)j(comp)q(onen)o(ts)f(of)h(the)g (system)e(and)j(their)e(dep)q(endencies.)28 b(This)19 b(program)g(can)g(b)q (e)g(in)o(terpreted)p 0 2570 765 2 v 56 2600 a Fm(3)75 2615 y Fl(This)13 b(framew)o(ork)g(fo)q(cuses)i(on)e(those)h(comp)q(onen)o(ts)g (of)f(a)g(soft)o(w)o(are)h(dev)o(elopmen)o(t)f(en)o(vironmen)o(t)g(that)h (are)g(related)0 2665 y(to)g(arc)o(hitectural)g(design.)944 2828 y Fp(3)p eop %%Page: 4 4 4 3 bop 11 58 a 29834876 11933948 657817 21050163 39732183 37035130 startTexFig 11 58 a %%BeginDocument: overview.ps %!PS-Adobe-2.0 EPSF-1.2 %%DocumentFonts: Times-Roman Times-Bold %%Pages: 1 %%BoundingBox: 10 320 604 563 %%EndComments 50 dict begin /arrowHeight 8 def /arrowWidth 4 def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l b translate w h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont findfont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 0 descender sub printSize sub printFont /Courier ne printFont /Courier-Bold ne and { 1 add } if def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath 0 0 moveto arrowHeight neg arrowWidth 2 div lineto arrowHeight neg arrowWidth 2 div neg lineto closepath patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath 0 0 moveto arrowHeight neg arrowWidth 2 div lineto arrowHeight neg arrowWidth 2 div neg lineto closepath } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def %%EndProlog %I Idraw 7 Grid 4 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.8 0 0 0.8 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Elli %I b 65535 4 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.24479 0 0 1.24479 156.619 15.4822 ] concat %I 71 525 55 25 Elli End Begin %I Elli %I b 65535 4 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.1396 0 0 1.1396 433.088 65.709 ] concat %I 71 525 55 25 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 1 0 0 1 328 690 ] concat %I [ ( Syntactic Mapping) ] Text End Begin %I Rect %I b 65535 4 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.72864 0 0 1.23489 -90.042 13.0073 ] concat %I 146 356 300 411 Rect End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 0.851435 152 260.888 ] concat %I 96 441 96 325 Line End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 0.863281 423 253.616 ] concat %I 96 441 96 325 Line End Begin %I Line %I b 65535 3 1 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.992796 0 0 0.501679 292.147 432.371 ] concat %I 27 468 153 468 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 1 0 0 1 169.374 598.193 ] concat %I [ ( Semantic) ( Theory) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 1 0 0 1 514.424 593.072 ] concat %I [ ( Semantic) ( Theory) ] Text End Begin %I Elli %I b 65535 4 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.28628 0 0 1.4984 158.076 -294.307 ] concat %I 71 525 55 25 Elli End Begin %I Elli %I b 65535 4 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.1396 0 0 1.1396 438.702 -100.436 ] concat %I 71 525 55 25 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 1 0 0 1 20.1556 513.651 ] concat %I [ ( Connectivity) ( Constraints on) ( Tube Graphs) (\(Design Theory\)) ] Text End Begin %I Rect %I b 65535 4 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.779644 0 0 1.11728 517.802 63.8416 ] concat %I 146 356 300 411 Rect End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 1 0 0 1 639.279 520.458 ] concat %I [ ( Drawing) ( Constraints on) ( Sets) (\(Drawing Theory\)) ] Text End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1.02815 0 0 1.19278 85.106 123.663 ] concat %I 533 313 492 313 Line End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1.03196 0 0 1.19278 14.3921 123.663 ] concat %I 110 305 152 305 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 1 0 0 1 469.036 515.578 ] concat %I [ (Semantic Objects) ( of Drawings) ( \(Sets\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 1 0 0 1 198.229 517.385 ] concat %I [ (Semantic Objects) ( of Architectural) ( Designs) ( \(Tube Graphs\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 1 0 0 1 487 685 ] concat %I [ (Syntactic) (Objects of) (Drawings) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-140-* /Times-Roman 14 SetF %I t [ 0.964286 0 0 0.964286 207.307 693.65 ] concat %I [ ( Syntactic) ( Objects of) (Architectural) ( Designs) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 41 417 ] concat %I [ (ARCHITECTURAL DESIGN SYSTEM) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 510 421 ] concat %I [ (DRAWING SYSTEM) ] Text End End %I eop showpage %%Trailer end %%EndDocument endTexFig 509 969 a Fp(Figure)15 b(2:)22 b Fk(Ov)n(erview)17 b(of)i(the)f(F)-5 b(ramew)n(ork)0 1103 y Fp(b)o(y)16 b(the)g(SIL)g(system)f(as)i(a)g(tub)q(e)f (graph.)22 b(In)16 b(other)h(w)o(ords,)f(the)g(syn)o(tax)g(of)h(a)g(SIL)f(sp) q(eci\014cation)g(\(top)0 1164 y(left)h(o)o(v)m(al\))h(can)h(b)q(e)f(parsed)h (to)f(pro)q(duce)h(its)f(seman)o(tics)1051 1145 y Fn(4)1087 1164 y Fp(\(b)q(ottom)g(left)f(o)o(v)m(al\).)27 b(The)19 b(resulting)e(tub)q (e)0 1224 y(graph)h(\(the)g(design)f(seman)o(tics\))f(can)h(b)q(e)h(c)o(hec)o (k)o(ed)d(for)j(w)o(ell-formedness,)d(using)j(the)f(algorithms)g(in)0 1284 y(this)f(pap)q(er.)73 1344 y(A)g(p)q(ossible)g(alternativ)o(e)f(activit) o(y)g(is)h(that)g(the)g(designer)g(could)g(mo)q(dify)f(the)h(tub)q(e)g (graph,)h(using)0 1404 y(our)e(algorithms,)f(request)g(that)i(a)f(new)g(SIL)g (program)f(b)q(e)h(generated)g(and)g(translated)h(to)f(a)g(diagram)0 1464 y(that)i(can)f(b)q(e)g(displa)o(y)o(ed)f(b)o(y)h(the)g(dra)o(wing)h (system.)73 1525 y(T)l(o)j(summarize,)d(w)o(e)h(separate)i(the)f(v)m(arious)h (parts)g(of)g(a)g(soft)o(w)o(are)f(dev)o(elopmen)o(t)d(en)o(vironmen)o(t)0 1585 y(that)e(supp)q(orts)i(the)d(sp)q(eci\014cation)h(and)h(visualization)e (of)h(arc)o(hitectural)f(designs.)20 b(W)l(e)14 b(are)g(primarily)0 1645 y(in)o(terested)i(in)g(mo)q(dels)g(that)i(represen)o(t)e(the)g (graph-theoretic)i(structure)e(of)i(suc)o(h)e(designs)i(\(b)q(ottom)0 1705 y(left)j(of)i(Figure)f(2\).)39 b(This)23 b(area)f(of)h(in)o(terest)e (requires)g(atten)o(tion)h(b)q(ecause)h(w)o(e)f(need)f(metho)q(ds)h(of)0 1765 y(capturing)16 b(the)f(essence)g(of)h(soft)o(w)o(are)g(designs,)f (distinct)g(from)f(the)i(systems)e(for)i(dra)o(wing)g(them)e(and)0 1826 y(distinct)h(from)h(particular)f(dev)o(elopmen)o(t)f(pro)s(jects.)73 1886 y(W)l(e)k(presen)o(t)f(tub)q(e)h(graphs)i(as)e(a)g(mo)q(del)f(for)h(arc) o(hitectural)f(designs.)27 b(The)18 b(mo)q(del)e(is)i(simple)e(|)0 1946 y(it)i(has)h(only)e(one)i(kind)e(of)i(tub)q(e)f(|)g(and)h(its)f (formalization)e(is)i(straigh)o(tforw)o(ard.)28 b(W)l(e)18 b(b)q(eliev)o(e)e(that)0 2006 y(the)j(particular)h(mo)q(del)e(w)o(e)i(presen) o(t)f(here)g(will)f(pro)o(v)o(e)h(to)h(b)q(e)g(of)g(practical)f(use)h(and)g (also)h(that)f(the)0 2066 y(general)d(approac)o(h)g(to)g(this)g(area)g(will)f (help)g(clarify)f(ho)o(w)j(approac)o(hes)f(to)g(arc)o(hitectural)f(design)g (can)0 2127 y(b)q(e)g(mo)q(delled)f(and)i(in)o(tegrated)e(in)o(to)h(soft)o(w) o(are)g(dev)o(elopmen)o(t)e(en)o(vironmen)o(ts.)73 2187 y(W)l(e)i(no)o(w)h (pro)q(ceed)f(with)g(the)g(formal)f(de\014nition)h(of)g(tub)q(e)h(graphs.)p 0 2231 765 2 v 56 2261 a Fm(4)75 2276 y Fl(A)o(t)e(a)g(separate)h(lev)o(el,)f (not)g(addressed)i(in)e(this)g(pap)q(er,)h(one)g(m)o(ust)f(also)g(giv)o(e)f (the)i(seman)o(tics)g(of)e(the)i(program)f(in)0 2326 y(terms)g(of)e(the)h (e\013ect)i(of)d(its)h(execution.)944 2828 y Fp(4)p eop %%Page: 5 5 5 4 bop 0 53 a Fq(3)83 b(The)27 b(De\014nition)g(of)h(a)g(T)-7 b(ub)r(e)28 b(Graph)0 163 y Fp(A)10 b Fo(tub)n(e)k(gr)n(aph)c Fp(consists)h(of)g(a)h(set)e(of)i(v)o(ertices)d(\()p Fj(V)i Fp(\))g(and)g(t)o(w)o(o)g(sets)g(of)g(edges)g(called)f(the)h Fo(c)n(ontainment)h Fp(\()p Fj(C)t Fp(\))0 223 y(and)k(the)f Fo(tub)n(e)h Fp(\()p Fj(T)7 b Fp(\))14 b(edges)479 205 y Fn(5)499 223 y Fp(,)h(resp)q(ectiv)o(ely)l(.)k(A)c(tub)q(e)g(graph)h(can)g(b)q(e)f (though)o(t)h(of)g(as)g(an)o(y)f(con)o(tainmen)o(t)0 283 y(tree)h(augmen)o (ted)f(with)h(tub)q(e)h(edges)f(\(tub)q(es\).)22 b(Later,)17 b(w)o(e)f(imp)q(ose)f(w)o(ell-formedness)f(constrain)o(ts)j(to)0 343 y(limit)f(the)j(allo)o(w)o(ed)f(usage)i(of)g(tub)q(es.)30 b(F)l(ollo)o(wing)18 b(is)h(the)g(formal)f(de\014nition)h(of)g(con)o(tainmen) o(t)e(trees)0 404 y(and)g(tub)q(e)f(graphs:)4 524 y Fk(De\014nition)i(1:)j (Con)n(tainmen)n(t)d(T)-5 b(ree)73 584 y Fp(Giv)o(en)17 b(a)h(set)g(of)g(v)o (ertices)d Fj(V)29 b Fp(and)19 b(the)e(con)o(tainmen)o(t)f(relation)h Fj(C)k Fi(\022)d Fj(V)11 b Fi(\002)p Fj(V)g Fp(,)18 b(w)o(e)f(sa)o(y)h(\()p Fj(V)s(;)8 b(C)t Fp(\))17 b(is)g(a)0 644 y(tree)e(if)g(and)h(only)f(if)g(it)h (has)g(one)g(ro)q(ot,)g(eac)o(h)f(v)o(ertex)f(has)i(a)g(single)f(paren)o(t,)h (and)g(there)f(are)g(no)h(cycles:)98 746 y Fj(Root)p Fp(\(x\))h Fi(\021)f(:)g(9)g Fp(p)g Fi(2)h Fj(V)27 b Fi(\017)16 b Fp(p)p Fj(C)t Fp(x)98 866 y Fj(T)7 b(r)q(ee)p Fp(\()p Fj(V)s(;)h(C)t Fp(\))14 b Fi(\021)i Fp(\()p Fi(9)p Fp(!)21 b(r)16 b Fi(2)h Fj(V)27 b Fi(\017)16 b Fj(Root)p Fp(\(r\)\))i Fi(^)587 b Fp(\(unique)16 b(ro)q(ot\))415 927 y(\()p Fi(8)f Fp(x)h Fi(2)h Fj(V)27 b Fi(\017)17 b(:)p Fj(Root)p Fp(\(x\))g Fi(\))f Fp(\()p Fi(9)p Fp(!)21 b(p)16 b Fi(2)h Fj(V)27 b Fi(\017)16 b Fp(p)p Fj(C)t Fp(x\)\))g Fi(^)83 b Fp(\(single)16 b(paren)o(t\))415 987 y(\()p Fi(8)f Fp(p,x)h Fi(2)h Fj(V)27 b Fi(\017)16 b Fp(p)p Fj(C)772 969 y Fn(+)801 987 y Fp(x)g Fi(\))g Fp(p)p Fi(6)p Fp(=x\))461 b(\(no)17 b(cycles\))98 1107 y(where,)e Fj(C)291 1089 y Fn(+)336 1107 y Fp(is)h(the)g(transitiv)o(e)f (closure)h(of)h(relation)f Fj(C)t Fp(.)0 1209 y Fh(2)4 1329 y Fk(De\014nition)i(2:)j(T)-5 b(ub)r(e)18 b(Graph)73 1389 y Fp(W)l(e)e(sa)o(y)g(that)h Fj(T)7 b(G)p Fp(=\()p Fj(V)s(;)h(C)q(;)g(T)f Fp(\))15 b(is)h(a)h(tub)q(e)f(graph)h(if)f(and)h(only)f(if)g(\()p Fj(V)s(;)8 b(C)t Fp(\))15 b(is)h(a)h(tree:)98 1491 y Fj(V)11 b Fp(,)16 b(where)g Fi(j)p Fj(V)11 b Fi(j)16 b(\025)g Fp(1)i(\(set)e(of)g(at) h(least)f(one)h(v)o(ertices\))98 1551 y Fj(C)i Fi(\022)d Fj(V)c Fi(\002)p Fj(V)174 b Fp(\(con)o(tainmen)o(t)14 b(relation\))98 1611 y Fj(T)22 b Fi(\022)16 b Fj(V)11 b Fi(\002)p Fj(V)178 b Fp(\(tub)q(e)16 b(relation\))98 1732 y Fj(T)7 b(G)p Fp(=\()p Fj(V)s(;)h(C)q(;)g(T)f Fp(\))14 b(is)j(a)f(tub)q(e)h(graph)g(if)f(and)g(only) g(if)g Fj(T)7 b(r)q(ee)p Fp(\()p Fj(V)s(;)h(C)t Fp(\))0 1833 y Fh(2)0 2000 y Fq(4)83 b(Restricting)26 b(T)-7 b(ub)r(e)28 b(Edges)0 2109 y Fp(The)17 b(preceding)g(section)f(de\014ned)h(a)h(tub)q(e)f (graph)h(to)g(b)q(e)f(a)g(con)o(tainmen)o(t)e(tree)i(with)g(tub)q(es)g(b)q (et)o(w)o(een)0 2169 y(its)h(v)o(ertices.)25 b(By)17 b(imp)q(osing)h(w)o (ell-formedness)e(constrain)o(ts)i(on)h(the)f(tub)q(e)g(relation)g(w)o(e)g (can)g(obtain)0 2230 y(restricted)g(tub)q(e)i(graphs)h(that)f(can)g(mo)q(del) e(particular)i(st)o(yles)e(of)i(arc)o(hitectural)e(designs.)32 b(F)l(or)20 b(ex-)0 2290 y(ample,)f(designers)h(of)g(la)o(y)o(ered)f(systems) g(w)o(e)g(ma)o(y)g(w)o(an)o(t)h(to)g(restrict)g(the)f(language)i(to)g(only)f (allo)o(w)0 2350 y(connections)14 b(b)q(et)o(w)o(een)f(comp)q(onen)o(ts)g(on) h(the)g(same)e(lev)o(el)g(in)i(the)f(con)o(tainmen)o(t)f(tree.)20 b(W)l(e)13 b(will)g(de\014ne)0 2410 y(a)j(set)g(of)g(w)o(ell-formedness)e (rules)i(that)g(captures)g(the)g(connectivit)o(y)e(constrain)o(ts)i(of)g(a)g (v)o(ersion)g(of)g(an)0 2470 y(arc)o(hitectural)f(design)h(language)h(called) f(SIL.)p 0 2514 765 2 v 56 2545 a Fm(5)75 2560 y Fl(Other)g(applications)f (ma)o(y)f(require)i(v)n(arious)f(kinds)g(of)g(tub)q(e)h(edges.)24 b(T)m(o)14 b(mak)o(e)h(the)h(de\014nition)f(easier)i(to)e(under-)0 2610 y(stand,)f(w)o(e)g(mak)o(e)f(the)i(simplifying)c(assumption)j(that)g (there)h(is)f(only)f(one)h(kind)f(of)g(tub)q(e.)944 2828 y Fp(5)p eop %%Page: 6 6 6 5 bop 248 58 a 22376157 4698991 5196759 31772590 35324805 38284984 startTexFig 248 58 a %%BeginDocument: Ta.ps %!PS-Adobe-2.0 EPSF-1.2 %%DocumentFonts: Times-Bold Courier Times-Roman helvetica %%Pages: 1 %%BoundingBox: 79 483 537 582 %%EndComments 50 dict begin /arrowHeight 8 def /arrowWidth 4 def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l b translate w h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont findfont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 0 descender sub printSize sub printFont /Courier ne printFont /Courier-Bold ne and { 1 add } if def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath 0 0 moveto arrowHeight neg arrowWidth 2 div lineto arrowHeight neg arrowWidth 2 div neg lineto closepath patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath 0 0 moveto arrowHeight neg arrowWidth 2 div lineto arrowHeight neg arrowWidth 2 div neg lineto closepath } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def %%EndProlog %I Idraw 7 Grid 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.8 0 0 0.8 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Pict %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 -153 -66 ] concat Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 300 113.726 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 330 259 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 357 206 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 331 110.726 ] concat %I 38 560 64 520 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 297 204 ] concat %I 39 512 3 3 Elli End End %I eop Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 190 692 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 234 691 ] concat %I [ (C) ] Text End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 13 267 ] concat %I 175 384 223 384 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 214 720 ] concat %I [ (p) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 180 647 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 241 647 ] concat %I [ (y) ] Text End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 337 192 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 267 46.726 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 298 193 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 364 140 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 338 38.726 ] concat %I 38 560 64 520 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 263 139 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.592992 0 0 1 238.077 321 ] concat %I 175 384 223 384 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1.80625 0 0 1 -7.7101 268 ] concat %I 175 384 223 384 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 309 692 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 391 691 ] concat %I [ (C) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 332 721 ] concat %I [ (p) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 375 719 ] concat %I [ (q) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 299 648 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 401 649 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 352 720 ] concat %I [ (T) ] Text End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 503 193 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 409 46.726 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 440 193 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 405 139 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 309 322 ] concat %I 175 384 223 384 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 454 694 ] concat %I [ (C) ] Text End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 300 266 ] concat %I 147 384 240 437 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 474 720 ] concat %I [ (p) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 541 722 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 439 648 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 499 720 ] concat %I [ (T) ] Text End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 598 195 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 536 195 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 625 143 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 599 41.726 ] concat %I 38 560 64 520 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 405 323 ] concat %I 175 384 223 384 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 651 694 ] concat %I [ (C) ] Text End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 402 299 ] concat %I 174 404 257 355 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 572 722 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 634 723 ] concat %I [ (q) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 662 652 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 600 722 ] concat %I [ (T) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 103 679 ] concat %I [ (T ) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-medium-r-*-120-* /Times-Roman 12 SetF %I t [ 1 0 0 1 110 670 ] concat %I [ (A) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 133 690 ] concat %I [ (=) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 263 693 ] concat %I [ (+) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 410 696 ] concat %I [ (+) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 549 688 ] concat %I [ (+) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 199 621 ] concat %I [ (\(R1\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 339 621 ] concat %I [ (\(R2\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 608 621 ] concat %I [ (\(R4\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 478 621 ] concat %I [ (\(R3\)) ] Text End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 28 108 ] concat %I 177 533 194 533 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 28 103 ] concat %I 177 533 194 533 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 28 108 ] concat %I 192 540 179 522 Line End End %I eop showpage %%Trailer end %%EndDocument endTexFig 281 511 a Fp(Figure)16 b(3:)21 b Fk(A)e(Visual)g(Represen)n(tation)e(of)i (Allo)n(w)n(ed)g(T)-5 b(ub)r(es,)18 b Fj(T)1603 518 y Fg(A)0 644 y Ff(4.1)70 b(W)-6 b(ell-F)g(ormed)24 b(T)-6 b(ub)r(e)22 b(Graphs)0 737 y Fp(W)l(e)16 b(will)f(consider)h(that)h(a)f(tub)q(e)h Fj(xT)7 b(y)17 b Fp(is)f(w)o(ell-formed)e(if)h(it)h(satis\014es)h(one)f(of)h (these)f(rules:)98 837 y Fk(\(R1\))f Fp(Sibling)h(Rule:)k Fj(x)c Fp(and)h Fj(y)h Fp(are)e(prop)q(er)h(\()p Fj(x)p Fi(6)p Fp(=)p Fj(y)r Fp(\))e(siblings,)h(or)98 898 y Fk(\(R2\))f Fp(P)o(aren)o(t-T)l(ub)q (e-Child)h(Rule:)21 b Fj(x)p Fp('s)16 b(paren)o(t)g(has)h(a)f(tub)q(e)h(to)f Fj(y)r Fp('s)g(paren)o(t,)g(or)98 958 y Fk(\(R3\))f Fp(P)o(aren)o(t-T)l(ub)q (e)i(Rule:)j Fj(x)p Fp('s)c(paren)o(t)g(has)h(a)g(tub)q(e)f(to)h Fj(y)r Fp(,)e(or)98 1018 y Fk(\(R4\))g Fp(T)l(ub)q(e-Child)i(Rule:)j Fj(x)c Fp(has)h(a)g(tub)q(e)f(to)h Fj(y)r Fp('s)e(paren)o(t.)0 1119 y(Figure)i(3)h(giv)o(es)e(a)i(visual)f(represen)o(tation)f(of)i(the)f (set)g(of)h(allo)o(w)o(ed)e(tub)q(es)i(using)g(a)f(notation)i(similar)0 1179 y(to)e(GraphLog)i([2,)e(12)q(].)23 b(The)17 b(lab)q(elled)f(edges)h(\()p Fj(C)j Fp(and)e Fj(T)7 b Fp(\))16 b(represen)o(t)g(edges)h(in)g(a)g(tub)q(e)g (graph.)24 b(The)0 1239 y(unlab)q(elled)c(dotted)h(edges)g(represen)o(t)f (allo)o(w)o(ed)g(tub)q(es.)35 b(Note)21 b(that)g(the)g(sibling)f(v)o(ertices) f(for)i(rule)0 1299 y(\(R1\))c(m)o(ust)f(b)q(e)i(distinct.)23 b(W)l(e)17 b(denote)g(the)g(set)g(of)h(allo)o(w)o(ed)e(tub)q(es)i(of)f(a)h (tub)q(e)f(graph)i Fj(T)7 b(G)p Fp(=\()p Fj(V)k Fp(,)p Fj(C)t Fp(,)p Fj(T)c Fp(\))0 1359 y(as)14 b Fj(T)86 1366 y Fg(A)114 1359 y Fp(\()p Fj(T)7 b(G)p Fp(\).)20 b(When)13 b(the)g(particular)g(tub)q(e) g(graph)h Fj(T)7 b(G)13 b Fp(is)g(ob)o(vious)g(w)o(e)g(write)f Fj(T)1471 1366 y Fg(A)1513 1359 y Fp(instead)h(of)g Fj(T)1759 1366 y Fg(A)1787 1359 y Fp(\()p Fj(T)7 b(G)p Fp(\).)0 1419 y(F)l(ollo)o(wing)16 b(is)g(the)g(formal)f(de\014nition)h(of)g(the)g(set)g (of)h(allo)o(w)o(ed)e(tub)q(es:)4 1540 y Fk(De\014nition)j(3:)j(Allo)n(w)n (ed)e(T)-5 b(ub)r(es)73 1600 y Fp(Giv)o(en)15 b(a)i(tub)q(e)g(graph)g Fj(T)7 b(G)p Fp(=\()p Fj(V)s(;)h(C)q(;)g(T)f Fp(\),)14 b(its)i(set)g(of)h (allo)o(w)o(ed)e(tub)q(es)i(\()p Fj(T)1384 1607 y Fg(A)1412 1600 y Fp(\))f(is:)98 1700 y Fj(T)127 1707 y Fg(A)171 1700 y Fi(\021)g(f)g Fp(\(x,y\))f Fi(j)h Fp(WFT)l(ub)q(e\(x,y\))g Fi(g)98 1821 y Fp(where)98 1941 y(WFT)l(ub)q(e\(x,y\))f Fi(\021)h(9)g Fp(p,q)g Fi(2)g Fj(V)28 b Fi(\017)16 b Fp(\(x)p Fi(6)p Fp(=y)g Fi(^)g Fp(p)p Fj(C)t Fp(x)g Fi(^)g Fp(p)p Fj(C)t Fp(y\))g Fi(_)108 b Fk(\(R1\))732 2001 y Fp(\(p)p Fj(C)t Fp(x)15 b Fi(^)i Fp(q)p Fj(C)t Fp(y)e Fi(^)h Fp(p)p Fj(T)7 b Fp(q\))16 b Fi(_)114 b Fk(\(R2\))732 2062 y Fp(\(p)p Fj(C)t Fp(x)15 b Fi(^)i Fp(p)p Fj(T)7 b Fp(y\))15 b Fi(_)270 b Fk(\(R3\))732 2122 y Fp(\(q)p Fj(C)t Fp(y)15 b Fi(^)h Fp(x)p Fj(T)7 b Fp(q\))321 b Fk(\(R4\))0 2222 y Fh(2)73 2283 y Fp(Note)17 b(that)h(the)f(righ)o(t)f(hand)i(side)f(of)h (the)f(de\014nition)f(of)i Fo(WFT)l(ub)n(e)f Fp(corresp)q(onds)i(directly)c (to)j(the)0 2343 y(graphs)f(in)f(Figure)g(3.)4 2463 y Fk(De\014nition)i(4:)j (W)-5 b(ell-F)g(ormed)16 b(T)-5 b(ub)r(e)18 b(Graph)73 2553 y Fp(A)f(tub)q(e)h(graph)g Fj(T)7 b(G)p Fp(=\()p Fj(V)k Fp(,)p Fj(C)t Fp(,)p Fj(T)c Fp(\))16 b(is)h(w)o(ell-formed)e(if)i(and)h(only)f(if)g (its)g(set)h(of)f(tub)q(es)h Fj(T)24 b Fp(is)17 b(a)h(subset)0 2613 y(of)f(its)f(set)g(of)g(allo)o(w)o(ed)g(tub)q(es)g Fj(T)589 2620 y Fg(A)617 2613 y Fp(:)73 2704 y Fj(W)7 b(F)g Fp(\()p Fj(T)g(G)p Fp(\))15 b Fi(\021)h Fj(T)23 b Fi(\022)16 b Fj(T)483 2711 y Fg(A)944 2828 y Fp(6)p eop %%Page: 7 7 7 6 bop 73 45 a Fp(whic)o(h)16 b(can)g(b)q(e)h(rewritten)e(as:)98 147 y Fj(W)7 b(F)g Fp(\()p Fj(T)g(G)p Fp(\))15 b Fi(\021)h(8)g Fp(\(x,y\))f Fi(2)h Fj(T)23 b Fi(\017)16 b Fp(WFT)l(ub)q(e\(x,y\))0 249 y Fh(2)4 369 y Fk(De\014nition)i(5:)j(All)d(W)-5 b(ell-F)g(ormed)16 b(T)-5 b(ub)r(e)19 b(Graphs)73 459 y Fp(W)l(e)d(de\014ne)g Fj(\034)22 b Fp(as)17 b(the)f(set)g(of)h(all)e(w)o(ell-formed)f(tub)q(e)j (graphs:)98 573 y Fj(\034)22 b Fi(\021)16 b(f)g Fj(T)7 b(G)16 b Fi(j)g Fj(W)7 b(F)g Fp(\()p Fj(T)g(G)p Fp(\))15 b Fi(g)0 687 y Fh(2)73 747 y Fp(In)j(the)g(follo)o(wing)f(section,)h(w)o(e)f(de\014ne) h(a)g(graph)h(grammar)d(that)j(generates)f(exactly)f(the)g(set)h(of)0 808 y(all)e(w)o(ell-formed)e(tub)q(e)i(graphs.)0 974 y Fq(5)83 b(A)23 b(Graph)f(Grammar)h(for)g(W)-7 b(ell-F)g(ormed)23 b(T)-7 b(ub)r(e)23 b(Graphs)0 1083 y Fp(In)12 b(this)g(section,)h(w)o(e)f(giv)o(e)f (an)i(alternativ)o(e)e(mathematical)f(form)o(ulation)h(of)i(w)o(ell-formed)d (tub)q(e)i(graphs)0 1144 y(based)17 b(on)h(graph)g(grammars)e([1)o(].)23 b(This)18 b(form)o(ulation)d(implies)f(a)k(construction)f(algorithm)f(for)h (gen-)0 1204 y(erating)g(exactly)g(the)g(set)g(of)h(all)f(w)o(ell-formed)e (tub)q(e)i(graphs.)1155 1186 y Fn(6)1201 1204 y Fp(It)g(di\013ers)g(from)f (the)h(logic)g(predicate)0 1264 y(form)o(ulation)f(in)g(Section)h(4,)g(whic)o (h)f(declarativ)o(ely)f(sp)q(eci\014es)h(the)h(necessary)g(conditions)g(for)g (a)g(tub)q(e)0 1324 y(graph)g(to)g(b)q(e)f(w)o(ell-formed.)73 1384 y(A)c Fo(c)n(ontext-sensitive)18 b(gr)n(aph)13 b(gr)n(ammar)k(CSG)p Fp(=\()p Fj(N)r(;)8 b(M)r(;)g(P)q(;)g(S)s Fp(\))14 b([11,)e(6])h(consists)g (of)f(a)h(set)g Fj(N)18 b Fp(of)13 b(non-)0 1445 y(terminal)k(edges,)i(a)g (set)g Fj(M)24 b Fp(of)19 b(terminal)e(edges,)i(a)g(set)g Fj(P)26 b Fp(of)19 b(con)o(text-sensitiv)o(e)e(pro)q(ductions,)j(and)0 1505 y(the)f(initial)f(non-terminal)g(edge)h Fj(S)s Fi(2)p Fj(N)5 b Fp(.)30 b(The)20 b(left-hand)f(side)g(of)g(a)h(con)o(text-sensitiv)o (e)d(pro)q(duction)0 1565 y(is)h(an)o(y)f(graph)i(that)f(con)o(tains)g(at)g (least)g(one)g(non-terminal)e(edge)i(from)e Fj(N)5 b Fp(,)18 b(and)h(p)q(ossibly)f(terminal)0 1625 y(edges)h(from)f Fj(M)5 b Fp(.)30 b(The)19 b(righ)o(t-hand)h(side)e(of)i(a)f(con)o(text-sensitiv)o(e) e(pro)q(duction)j(ma)o(y)d(b)q(e)j(an)o(y)f(graph)0 1685 y(of)h (non-terminals)e(from)h Fj(N)25 b Fp(and)20 b(terminals)e(from)g Fj(M)5 b Fp(,)21 b(pro)o(vided)e(that)h(the)f(n)o(um)o(b)q(er)f(of)i (\(terminal)0 1746 y(and)15 b(non-terminal\))e(edges)h(on)h(the)f(righ)o (t-hand)h(side)f(graph)i(is)e(not)h(less)f(than)h(that)f(of)h(its)f(resp)q (ectiv)o(e)0 1806 y(left-hand)i(side)g(graph.)22 b(A)16 b(graph)h(is)f (terminal)e(if)i(all)g(of)g(its)g(edges)h(are)f(terminal.)73 1866 y(Giv)o(en)f(a)g(con)o(text-sensitiv)o(e)f(grammar)f Fo(CSG)p Fp(,)i(all)g(terminal)e(graphs)k(\000)f(that)g(are)f(deriv)m(able)g(from)0 1926 y(the)h(initial)f(edge)h Fj(S)j Fp(comprise)c(the)h(language)h Fo(L\(CSG\))f Fp(generated)g(b)o(y)f Fo(CSG)p Fp(:)500 2028 y Fo(L\(CSG\))g Fi(\021)h(f)p Fp(\000)h Fi(j)f Fj(S)908 2001 y Fe(\003)892 2028 y Fi(\))g Fp(\000,)h(and)f(\000)h(is)f(terminal)p Fi(g)0 2130 y Fp(Where)172 2103 y Fe(\003)156 2130 y Fi(\))g Fp(denotes)g(the)g(transitiv)o(e)f(closure)h(of)h(direct)e(deriv)m(ation.)73 2190 y(The)f(complete)e(con)o(text-sensitiv)o(e)f(graph)k(grammar)e Fj(G)h Fp(for)g(w)o(ell-formed)e(tub)q(e)i(graphs)h(is)f(sho)o(wn)0 2250 y(in)j(Figure)g(4.)24 b(V)l(ertices)16 b(in)h(the)g(graph)h(grammar)e (are)h(distinct.)23 b(Note)17 b(that)h(pro)q(duction)g(P0)f(gener-)0 2310 y(ates)i(the)f(con)o(tainmen)o(t)e(tree)i(of)h(the)f(tub)q(e)h(graph,)g (while)f(pro)q(ductions)i(P1-P4)f(corresp)q(ond)h(to)f(the)0 2370 y(four)i(w)o(ell-formedness)d(rules.)33 b(Pro)q(duction)21 b(5)f(simply)f(mak)o(es)f(non-terminal)h(con)o(tainmen)o(t)f(edges)0 2431 y(terminal.)30 b(W)l(e)19 b(need)g(t)o(w)o(o)h(kinds)g(of)g (non-terminals)e(for)i(con)o(tainmen)o(t)e(edges)i(b)q(ecause)g(ill-formed)0 2491 y(tub)q(e)14 b(graphs)g(can)g(b)q(e)f(generated)g(b)o(y)g(a)h(grammar)e (that)h(allo)o(ws)h(con)o(tainmen)o(t)d(edges)i(to)h(b)q(e)g(expanded)0 2551 y(after)i(they)g(ha)o(v)o(e)f(b)q(een)i(connected)e(to)i(tub)q(e)f (edges.)p 0 2595 765 2 v 56 2625 a Fm(6)75 2640 y Fl(Since)i(w)o(e)g(are)f (using)h(edge)g(replacemen)o(t)g(graph)g(grammars,)f(grammar)g Fd(G)g Fl(cannot)g(generate)i(a)e(single)h(v)o(ertex)0 2690 y(tub)q(e)d(graph.)944 2828 y Fp(7)p eop %%Page: 8 8 8 7 bop 248 58 a 22376157 18646798 5854576 7630684 36179968 43284398 startTexFig 248 58 a %%BeginDocument: grammar.ps %!PS-Adobe-2.0 EPSF-1.2 %%DocumentFonts: helvetica Times-Bold Courier %%Pages: 1 %%BoundingBox: 89 116 550 658 %%EndComments 50 dict begin /arrowHeight 8 def /arrowWidth 4 def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l b translate w h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont findfont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 0 descender sub printSize sub printFont /Courier ne printFont /Courier-Bold ne and { 1 add } if def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath 0 0 moveto arrowHeight neg arrowWidth 2 div lineto arrowHeight neg arrowWidth 2 div neg lineto closepath patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath 0 0 moveto arrowHeight neg arrowWidth 2 div lineto arrowHeight neg arrowWidth 2 div neg lineto closepath } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def %%EndProlog %I Idraw 7 Grid 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.8 0 0 0.8 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.592992 0 0 1 130.077 120 ] concat %I 175 384 223 384 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 239 167 ] concat %I 81 560 112 560 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 239 157 ] concat %I 81 560 112 560 Line End Begin %I MLine %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 238 166 ] concat %I 3 106 571 120 557 106 540 3 MLine End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.34091 557 5.1967 ] concat %I 40 560 40 521 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 558 186 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 558 246 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 264 199 ] concat %I 216 573 216 476 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 337 200 ] concat %I 216 573 216 476 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 123 744 ] concat %I [ (P0\)) ] Text End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 195 88.726 ] concat %I 40 560 40 521 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 196 183 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 196 243 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 358 91.726 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 388 239 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 418 184 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 389 88.726 ] concat %I 38 560 64 520 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 351 182 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 479 131.726 ] concat %I 40 560 40 521 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 480 227 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 480 287 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 479 73.7256 ] concat %I 40 560 40 521 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 480 168 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 170 -41.274 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 200 104 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 232 49 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 202 -44.274 ] concat %I 38 560 64 520 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 164 47 ] concat %I 39 512 3 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 121 597 ] concat %I [ (P1\)) ] Text End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 238 35 ] concat %I 81 560 112 560 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 238 25 ] concat %I 81 560 112 560 Line End Begin %I MLine %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 237 34 ] concat %I 3 106 571 120 557 106 540 3 MLine End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 379 -36.274 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 409 109 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 440 52 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 412 -41.274 ] concat %I 38 560 64 520 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 374 54 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1.05455 0 0 1 234.673 180 ] concat %I 175 384 223 384 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 116 488 ] concat %I [ (P2\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 116 402 ] concat %I [ (P3\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 119 316 ] concat %I [ (P4\)) ] Text End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 238 -79 ] concat %I 81 560 112 560 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 238 -89 ] concat %I 81 560 112 560 Line End Begin %I MLine %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 237 -80 ] concat %I 3 106 571 120 557 106 540 3 MLine End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 244 -261 ] concat %I 81 560 112 560 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 244 -271 ] concat %I 81 560 112 560 Line End Begin %I MLine %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 243 -262 ] concat %I 3 106 571 120 557 106 540 3 MLine End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 232 -10 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 160 -155.274 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 191 -9 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 264 -67 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 236 -163.274 ] concat %I 38 560 64 520 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 153 -66 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 427 -9 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 351 -154.274 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 382 -8 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 458 -64 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 430 -160.274 ] concat %I 38 560 64 520 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 347 -62 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 0.660763 0 0 1 309.68 120 ] concat %I 175 384 223 384 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1.88311 0 0 1 63.0221 64 ] concat %I 175 384 223 384 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 420 670 ] concat %I [ (a\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 513 668 ] concat %I [ (b\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 592 670 ] concat %I [ (c\)) ] Text End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 238 -155 ] concat %I 81 560 112 560 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 238 -165 ] concat %I 81 560 112 560 Line End Begin %I MLine %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 237 -156 ] concat %I 3 106 571 120 557 106 540 3 MLine End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 258 -108 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 161 -252.274 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 190 -108 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 155 -163 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 59 21 ] concat %I 175 384 223 384 Line End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 354 -244.274 ] concat %I 69 558 37 515 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 385 -98 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 350 -152 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1.1422 0 0 1 229.648 31 ] concat %I 175 384 223 384 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 245 -25 ] concat %I 147 384 240 437 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 163 -200 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 252 -252 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 226 -353.274 ] concat %I 38 560 64 520 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 32 -72 ] concat %I 175 384 223 384 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 348 -201 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 437 -253.04 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 411 -354.274 ] concat %I 38 560 64 520 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 217 -73 ] concat %I 175 384 223 384 Line End Begin %I Line %I b 13107 3 0 1 [2 2 2 2 2 2 2 2] 15 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 214 -97 ] concat %I 174 404 257 355 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 232 771 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 231 690 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 423 768 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 390 688 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 451 688 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 518 818 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 524 742 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 525 683 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 594 775 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 594 692 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 236 632 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 446 636 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 201 556 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 266 556 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 410 564 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 477 558 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 227 520 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 416 520 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 226 418 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 420 427 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 200 328 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 384 326 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 268 519 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 459 518 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 290 418 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 500 424 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 263 327 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 446 325 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 189 441 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 382 447 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 189 343 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 385 357 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 291 249 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 484 249 ] concat %I [ (z) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 302 442 ] concat %I [ (w) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 0.714286 0 0 1 495 442 ] concat %I [ (w) ] Text End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 452 -95 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 225 -200 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 410 -201 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.34091 638 4.1967 ] concat %I 40 560 40 521 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 639 187 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 639 247 ] concat %I 39 512 3 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* /Times-Bold 14 SetF %I t [ 1 0 0 1 673 671 ] concat %I [ (d\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 675 776 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 675 693 ] concat %I [ (y) ] Text End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 416 202 ] concat %I 216 573 216 476 Line End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 222 740 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 402 735 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 445 736 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 508 783 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 506 722 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 587 737 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 213 603 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 259 602 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 418 605 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 467 606 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 205 491 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 290 489 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 204 390 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 281 293 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 486 487 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 393 489 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 401 403 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 467 293 ] concat %I [ (R) ] Text End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 243 -362 ] concat %I 81 560 112 560 Line End Begin %I Line %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 243 -372 ] concat %I 81 560 112 560 Line End Begin %I MLine %I b 65535 1 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 242 -363 ] concat %I 3 106 571 120 557 106 540 3 MLine End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 /helvetica 34 SetF %I t [ 1 0 0 1 117 216 ] concat %I [ (P5\)) ] Text End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 178 -441.274 ] concat %I 40 560 40 521 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 179 -347 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 179 -287 ] concat %I 39 512 3 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 214 160 ] concat %I [ (y) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 205 210 ] concat %I [ (R) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 215 243 ] concat %I [ (x) ] Text End Begin %I Line %I b 65535 1 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.34091 382 -530.803 ] concat %I 40 560 40 521 Line End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 383 -348 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 383 -288 ] concat %I 39 512 3 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 419 241 ] concat %I [ (x) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* /Courier 10 SetF %I t [ 1 0 0 1 419 158 ] concat %I [ (y) ] Text End End %I eop showpage %%Trailer end %%EndDocument endTexFig 0 1394 a Fp(Figure)22 b(4:)34 b Fk(Con)n(text-Sensitiv)n(e)24 b(Grammar)f Fj(G)k Fk(for)e(W)-5 b(ell-F)g(ormed)24 b(T)-5 b(ub)r(e)25 b(Graphs:)34 b Fp(The)0 1455 y(grammar)17 b(has)i(six)e(pro)q (ductions.)29 b(The)18 b(initial)f(non-terminal)g(edge)h(\(lab)q(elled)f Fo(S)p Fp(\))h(is)g(the)g(left-hand)0 1515 y(side)j(of)h(pro)q(duction)g (0\).)38 b(There)21 b(are)h(t)o(w)o(o)f(kinds)g(of)h(non-terminal)e(edges,)j Fo(S)f Fp(and)g Fo(R)p Fp(,)f(that)h(b)q(oth)0 1575 y(represen)o(t)17 b(con)o(tainmen)o(t.)23 b(Note)17 b(that)h(b)q(efore)g(an)o(y)f(tub)q(e)h (edges)g(can)f(b)q(e)h(generated,)g(their)e(con)o(tain-)0 1635 y(men)o(t)c(edges)i(m)o(ust)f(b)q(e)h(transformed)g(in)o(to)g Fo(R)f Fp(edges)i(using)f(pro)q(duction)h(1c\).)20 b(All)13 b(terminal)f(edges)i(are)0 1695 y(unlab)q(elled.)20 b(T)l(erminal)15 b(con)o(tainmen)o(t)f(edges)i(are)g(thin)g(and)h(solid)f(while)g(tub)q(e)g (edges)g(are)h(dotted.)73 1819 y(Next,)k(w)o(e)f(presen)o(t)g(pro)q(ofs)i (that)g(grammar)d Fj(G)i Fp(generates)g(all)f(w)o(ell-formed)f(tub)q(e)i (graphs)h(and)0 1880 y(nothing)16 b(more,)f(that)h(is)f Fo(WF\(TG\))g Fi(,)h Fo(TG)f Fi(2)h Fo(L\(G\))p Fp(.)e(Underlying)h(these)h(pro)q(ofs)h(is) e(the)h(assumption)0 1940 y(of)h(the)f(canonical)g(order)g(of)h(construction) f(dictated)g(b)o(y)f(the)h(graph)i(grammar.)4 2060 y Fk(Theorem)f(1:)k(An)n (y)e(W)-5 b(ell-F)g(ormed)16 b(T)-5 b(ub)r(e)19 b(Graph)g(is)f(in)g(L\(G\))0 2142 y Fp(W)l(e)f(will)f(pro)o(v)o(e)h(that)h(an)o(y)f(w)o(ell-formed)e(tub)q (e)i(graph)i Fj(T)7 b(G)p Fp(=\()p Fj(V)k Fp(,)p Fj(C)t Fp(,)p Fj(T)c Fp(\))15 b(can)i(b)q(e)h(generated)f(using)h(the)0 2202 y(con)o(text-sensitiv)o(e)c(grammar)h Fj(G)p Fp(:)852 2288 y Fj(\034)22 b Fi(\022)16 b Fj(L)p Fp(\()p Fj(G)p Fp(\))73 2375 y(Let)i Fj(d)p Fp(\()p Fj(v)r Fp(,)p Fj(R)p Fp(\))f(b)q(e)g(the)g (out-degree)h(of)g(v)o(ertex)d Fj(v)r Fi(2)p Fj(V)29 b Fp(with)17 b(resp)q(ect)g(to)g(relation)g Fj(R)p Fp(;)h(hence,)f Fj(d)p Fp(\()p Fj(v)r Fp(,)p Fj(C)t Fp(\))0 2435 y(is)i(the)g(out-degree)g(of)g(v)o (ertex)f Fj(v)i Fp(with)f(resp)q(ect)g(to)g(the)g(con)o(tainmen)o(t)e (relation)i(\()p Fj(C)t Fp(\))f(and)i Fj(d)p Fp(\()p Fj(v)r Fp(,)p Fj(T)7 b Fp(\))18 b(is)0 2495 y(the)e(out-degree)g(of)h(v)o(ertex)e Fj(v)i Fp(with)f(resp)q(ect)g(to)h(the)f(tub)q(e)g(relation)g(\()p Fj(T)7 b Fp(\).)4 2616 y Fk(De\014nition)18 b(6:)j(Out-Degree)c(of)i(a)g(V)-5 b(ertex)98 2702 y Fj(d)p Fp(\()p Fj(v)r Fp(,)p Fj(R)p Fp(\))16 b Fi(\021)g(jf)p Fp(\()p Fj(v)r Fp(,y\))e Fi(j)i Fj(v)r(R)p Fp(y)p Fi(gj)944 2828 y Fp(8)p eop %%Page: 9 9 9 8 bop 248 58 a 22376157 22376157 8683192 17234821 24799723 42166108 startTexFig 248 58 a %%BeginDocument: deriv.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: idraw %%DocumentFonts: Times-Bold Courier %%Pages: 1 %%BoundingBox: 132 262 377 641 %%EndComments %%BeginIdrawPrologue /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def %%EndIdrawPrologue /arrowHeight 8 def /arrowWidth 4 def /IdrawDict 52 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Times-Bold reencodeISO def /Courier reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l w add b translate w neg h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %%EndProlog %I Idraw 10 Grid 8 8 %%Page: 1 1 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.8 0 0 0.8 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Pict %I b 65535 1 0 0 [] 0 SetB %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 30 -39 ] concat Begin %I Line %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 148 197 ] concat %I 81 560 112 560 Line %I 1 End Begin %I Line %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 148 187 ] concat %I 81 560 112 560 Line %I 1 End Begin %I MLine %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 147 196 ] concat %I 3 106 571 120 557 106 540 3 MLine %I 1 End End %I eop Begin %I Pict %I b 65535 1 0 0 [] 0 SetB %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 20 -158 ] concat Begin %I Line %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 148 197 ] concat %I 81 560 112 560 Line %I 1 End Begin %I Line %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 148 187 ] concat %I 81 560 112 560 Line %I 1 End Begin %I MLine %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 147 196 ] concat %I 3 106 571 120 557 106 540 3 MLine %I 1 End End %I eop Begin %I Pict %I b 65535 1 0 0 [] 0 SetB %I cfg u %I cbg u %I f u %I p u %I t [ 1 0 0 1 20 -308 ] concat Begin %I Line %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 148 197 ] concat %I 81 560 112 560 Line %I 1 End Begin %I Line %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 148 187 ] concat %I 81 560 112 560 Line %I 1 End Begin %I MLine %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg Black 0 0 0 SetCBg none SetP %I p n %I t [ 1 0 0 1 147 196 ] concat %I 3 106 571 120 557 106 540 3 MLine %I 1 End End %I eop Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.2511 142 51.4346 ] concat %I 40 562 40 525 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 143 185 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 143 245 ] concat %I 39 512 3 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 179 778 ] concat %I [ (r) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 177 687 ] concat %I [ (v1) ] Text End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 342.491 95.2167 ] concat %I 69 558 41 519 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 373.491 242.491 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 403.491 189.491 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 376.491 93.2167 ] concat %I 38 560 63 522 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 338.491 187.491 ] concat %I 39 512 3 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 407.491 776.491 ] concat %I [ (r) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 371.491 692.491 ] concat %I [ (v1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 403.491 708.491 ] concat %I [ (...) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 403.491 651.491 ] concat %I [ (r) ] Text End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.26061 335.491 -136.139 ] concat %I 40 560 40 527 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 336.491 6.49066 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 338.491 -31.7833 ] concat %I 69 558 42 520 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 369.491 117.491 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 398.491 63.4907 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 371.491 -33.7833 ] concat %I 38 560 62 523 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 336.491 62.4907 ] concat %I 39 512 3 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 351.491 578.491 ] concat %I [ (v1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 399.491 583.491 ] concat %I [ (...) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 363.491 513.491 ] concat %I [ (v1.1) ] Text End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 363.491 -157.509 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 298.491 -159.509 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 333.491 -194.783 ] concat %I 69 558 42 520 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 365.491 -46.509 ] concat %I 39 512 3 3 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 395.491 -99.509 ] concat %I 39 512 3 3 Elli End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 366.491 -195.783 ] concat %I 38 560 63 523 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1 332.491 -100.509 ] concat %I 39 512 3 3 Elli End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 399.491 487.491 ] concat %I [ (r) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 345.491 418.491 ] concat %I [ (v1) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 395.491 419.491 ] concat %I [ (...) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 321.491 344.491 ] concat %I [ (v1.1) ] Text End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 336.491 -254.783 ] concat %I 36 562 61 524 Line %I 1 End Begin %I Line %I b 65535 3 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg %I p 0 SetP %I t [ 1 0 0 1.18182 298.491 -253.783 ] concat %I 71 560 43 520 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 362.491 362.491 ] concat %I [ (...) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 169 742 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 385 742 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 428 742 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 382 620 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 423 621 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 379 558 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 418 456 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 377 455 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 342 392 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-courier-medium-r-*-100-* Courier 10 SetF %I t [ 1 0 0 1 391 393 ] concat %I [ (S) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 239 797 ] concat %I [ ( Apply prod.) (1a\) starting at) ( edge \(r,v1\)) ( d\(r,C\)-1 ) ( times.) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 225 654 ] concat %I [ (Apply prod. 1b\)) (to edge \(r, v1\) if) ( d\(v1,C\) > 0.) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 225 526 ] concat %I [ ( Apply prod.) (1a\) starting at) (edge \(v1, v1.1\)) ( d\(v1,C\)-1 ) ( times.) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 421.491 694.491 ] concat %I [ (v d\(r,C\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 417.491 570.491 ] concat %I [ (v d\(r,C\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 413.491 405.491 ] concat %I [ (v d\(r,C\)) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f *-times-bold-r-*-140-* Times-Bold 14 SetF %I t [ 1 0 0 1 376.491 344.491 ] concat %I [ (v 1.d\(v1,C\)) ] Text End End %I eop showpage %%Trailer end %%EndDocument endTexFig 250 1631 a Fp(Figure)16 b(5:)22 b Fk(Deriving)16 b(the)j(Con)n(tainmen)n(t)f (T)-5 b(ree)18 b(of)h(a)g(T)-5 b(ub)r(e)18 b(Graph)0 1765 y Fh(2)73 1825 y Fp(W)l(e)k(\014rst)g(sho)o(w)h(ho)o(w)f(the)g(con)o(tainmen)o (t)e(tree)h(can)i(b)q(e)f(constructed)g(and)g(then)g(sho)o(w)h(ho)o(w)f(to)0 1885 y(augmen)o(t)15 b(this)h(tree)g(with)g(w)o(ell-formed)e(tub)q(e)i (edges.)73 1945 y(Starting)i(from)e(the)g(ro)q(ot)j(v)o(ertex)c Fj(r)q Fp(,)i(construct)g(its)g(c)o(hildren)f(b)o(y)g(applying)h(the)g(1a\))h (pro)q(duction)0 2006 y Fj(d)p Fp(\()p Fj(r)q Fp(,)p Fj(C)t Fp(\){1)12 b(times.)18 b(Then)12 b(apply)g(pro)q(duction)g(1b\))h(to)f(the)f (edge)h(from)f(the)h(ro)q(ot)h(to)f(eac)o(h)f(c)o(hild)g(v)o(ertex)f Fj(v)1899 2013 y Fg(i)0 2066 y Fp(if)h Fj(d)p Fp(\()p Fj(v)108 2073 y Fg(i)122 2066 y Fp(,)p Fj(C)t Fp(\))p Fj(>)p Fp(0.)19 b(Recursiv)o(ely)9 b(rep)q(eat)j(the)f(steps)h(p)q(erformed)e(on)i(the)g(ro)q (ot)g(to)g Fj(v)1436 2073 y Fg(i)1450 2066 y Fp(,)g(un)o(til)f(all)g(con)o (tainmen)o(t)0 2126 y(edges)k(are)g(generated.)21 b(Figure)14 b(5)i(illustrates)e(these)h(steps,)g(whic)o(h)f(generate)h(the)g(con)o (tainmen)o(t)e(tree.)73 2186 y(T)l(o)20 b(sho)o(w)g(ho)o(w)g(the)g(tub)q(es)f (can)h(b)q(e)g(constructed,)g(w)o(e)f(\014rst)g(de\014ne)h(the)f Fj(l)q(ev)r(el)f Fp(of)i(a)g(v)o(ertex)e(in)h(a)0 2246 y(con)o(tainmen)o(t)14 b(tree:)4 2366 y Fk(De\014nition)k(7:)j(Lev)n(el)c(of)i(a)g(V)-5 b(ertex)73 2427 y Fp(A)16 b(v)o(ertex)e Fj(v)r Fi(2)p Fj(V)d Fp(,)k(in)h(a)g(tub)q(e)h(graph)g Fj(T)7 b(G)p Fp(=\()p Fj(V)s(;)h(C)q(;)g(T) f Fp(\),)14 b(is)h(at)i(lev)o(el)d Fj(n)i Fp(if)f(it)h(has)g Fj(n)g Fp(prop)q(er)h(ancestors)0 2487 y(in)f(the)g(con)o(tainmen)o(t)e (tree.)98 2589 y Fj(l)q(ev)r(el)q Fp(\()p Fj(v)r Fp(\))f Fi(\021)j(jf)p Fp(p)g Fi(j)g Fp(p)p Fj(C)512 2570 y Fn(+)541 2589 y Fj(v)r Fi(gj)0 2690 y Fh(2)944 2828 y Fp(9)p eop %%Page: 10 10 10 9 bop 73 45 a Fp(W)l(e)22 b(no)o(w)g(augmen)o(t)f(the)h(con)o(tainmen)o(t) e(tree)h(with)h(tub)q(e)g(edges.)39 b(Before)21 b(doing)h(so)h(w)o(e)f(apply) 0 105 y(pro)q(duction)e(1c\))g(so)g(all)f Fo(S)h Fp(edges)g(b)q(ecome)e Fo(R)h Fp(edges.)31 b(Since)19 b(the)g(ro)q(ot)i(v)o(ertex)d Fj(r)j Fp(of)f(a)g(w)o(ell-formed)0 165 y(tub)q(e)g(graph)g(cannot)h(ha)o(v)o (e)d(an)o(y)i(tub)q(es)g(\(Theorem)e(3\),)i(w)o(e)g(start)g(with)f(the)h Fj(d)p Fp(\()p Fj(r)q Fp(,)p Fj(C)t Fp(\))f(c)o(hildren)f(of)i Fj(r)q Fp(,)0 226 y(whic)o(h)15 b(are)h(all)f(the)g(v)o(ertices)f(on)i(the)g (\014rst)g(lev)o(el)d(of)j(the)g(con)o(tainmen)o(t)d(tree.)21 b(F)l(or)15 b(eac)o(h)h(lev)o(el)d Fj(k)18 b Fp(of)e(the)0 286 y(tree,)d(in)g(order)h(1)g(to)g(2)g(to)g(3,)g(and)h(so)f(on,)g(do)g(the)g (follo)o(wing:)19 b(F)l(or)14 b(eac)o(h)f(v)o(ertex)f Fj(v)1490 293 y Fg(i)1517 286 y Fp(of)i(lev)o(el)e Fj(k)r Fp(,)i(generate)0 346 y(all)h(of)h(its)g Fj(d)p Fp(\()p Fj(v)258 353 y Fg(i)272 346 y Fp(,)p Fj(T)7 b Fp(\))15 b(tub)q(es.)21 b(Start)16 b(b)o(y)f(selecting) g(v)o(ertex)f Fj(v)1066 353 y Fg(j)1100 346 y Fp(suc)o(h)h(that)i(the)e(tub)q (e)h Fj(v)1534 353 y Fg(i)1548 346 y Fj(T)7 b(v)1608 353 y Fg(j)1641 346 y Fp(has)16 b(not)h(b)q(een)0 406 y(generated)g(and)g Fj(l)q(ev)r(el)q Fp(\()p Fj(v)465 413 y Fg(j)481 406 y Fp(\){)p Fj(l)q(ev)r(el)q Fp(\()p Fj(v)671 413 y Fg(i)683 406 y Fp(\))g(is)g(minim)n (um)n(.)k(Con)o(tin)o(ue)16 b(un)o(til)g(all)g Fj(d)p Fp(\()p Fj(v)1469 413 y Fg(i)1483 406 y Fp(,)p Fj(T)7 b Fp(\))16 b(tub)q(es)h(ha)o(v) o(e)g(b)q(een)0 466 y(generated.)24 b(Since)16 b(the)h(tub)q(e)g(graph)h(is)f (w)o(ell-formed,)e(eac)o(h)i(tub)q(e)g Fj(v)1285 473 y Fg(i)1299 466 y Fj(T)7 b(v)1359 473 y Fg(j)1393 466 y Fp(m)o(ust)16 b(fall)g(in)o(to)h (one)g(of)h(the)0 527 y(follo)o(wing)e(categories:)98 628 y Fk(\(R1\):)k Fj(v)272 635 y Fg(i)302 628 y Fp(and)d Fj(v)421 635 y Fg(j)455 628 y Fp(ha)o(v)o(e)f(the)g(same)f(paren)o(t)h(\(use)g(pro)q (duction)h(1\),)f(or)98 689 y Fk(\(R2\):)k Fp(there)c(exists)g(a)g(tub)q(e)h (b)q(et)o(w)o(een)e(the)h(paren)o(ts)g(of)h Fj(v)1185 696 y Fg(i)1215 689 y Fp(and)g Fj(v)1334 696 y Fg(j)1368 689 y Fp(\(use)f(pro)q (duction)h(2\),)f(or)98 749 y Fk(\(R3\):)k Fp(there)c(exists)g(a)g(tub)q(e)h (b)q(et)o(w)o(een)e(the)h(paren)o(t)g(of)h Fj(v)1166 756 y Fg(i)1196 749 y Fp(and)f Fj(v)1314 756 y Fg(j)1348 749 y Fp(\(use)h(pro)q (duction)g(3\),)f(or)98 809 y Fk(\(R4\):)k Fp(there)c(exists)g(a)g(tub)q(e)h (b)q(et)o(w)o(een)e Fj(v)873 816 y Fg(i)903 809 y Fp(and)i(the)f(paren)o(t)g (of)g Fj(v)1314 816 y Fg(j)1348 809 y Fp(\(use)h(pro)q(duction)g(4\).)0 911 y(By)h(applying)h(the)f(appropriate)i(pro)q(duction)f(\(indicated)f(in)g (paren)o(theses\),)h(w)o(e)f(can)h(generate)g(an)o(y)0 971 y(w)o(ell-formed)i(tub)q(e)k Fj(v)415 978 y Fg(i)428 971 y Fj(T)7 b(v)488 978 y Fg(j)505 971 y Fp(.)44 b(After)23 b(all)h(the)f(tub)q (es)i(in)e(the)h(graph)h(ha)o(v)o(e)e(b)q(een)g(generated,)j(apply)0 1031 y(pro)q(duction)17 b(5\))g(to)f(all)g Fo(R)g Fp(edges)g(to)h(mak)o(e)d (them)h(terminal.)k(This)d(pro)o(v)o(es)g(that)g Fj(\034)22 b Fi(\022)16 b Fj(L)p Fp(\()p Fj(G)p Fp(\).)73 1091 y Fh(2)4 1241 y Fk(Theorem)h(2:)k(An)n(y)e(Graph)g(in)g(L\(G\))f(is)g(a)h(W)-5 b(ell-F)g(ormed)16 b(T)-5 b(ub)r(e)18 b(Graph)0 1323 y Fp(W)l(e)f(will)f(pro) o(v)o(e)g(that)h(an)o(y)g(graph)h(\000=\()p Fj(V)s(;)8 b(C)q(;)g(T)f Fp(\))16 b(constructed)h(using)h(grammar)d Fj(G)j Fp(is)f(a)g(w)o(ell-formed) 0 1383 y(tub)q(e)f(graph,)h(that)g(is:)852 1485 y Fj(L)p Fp(\()p Fj(G)p Fp(\))g Fi(\022)f Fj(\034)73 1587 y Fp(First,)f(w)o(e)f(pro)o(v)o(e)g (that)i(\000)f Fi(2)g Fj(L)p Fp(\()p Fj(G)p Fp(\))h Fi(\))f Fj(T)7 b(r)q(ee)p Fp(=\()p Fj(V)j Fp(,)p Fj(C)t Fp(\).)19 b(W)l(e)c(use)g (the)g(prop)q(ert)o(y)g(of)g(trees)g(that)g(they)0 1647 y(are)h(connected)g (and)h(their)e(n)o(um)o(b)q(er)g(of)h(edges)h(is)f(one)g(less)g(than)h(their) e(n)o(um)o(b)q(er)g(of)h(v)o(ertices.)73 1707 y(The)h(only)g(pro)q(ductions)h (of)g Fj(G)f Fp(in)o(v)o(olv)o(ed)e(in)i(building)f(the)h(con)o(tainmen)o(t)e (tree)h(are)i(1a\),)f(1b\),)g(1c\))0 1767 y(and)22 b(1d\).)36 b(Since)21 b(none)g(of)h(these)f(pro)q(ductions)h(generates)f(unconnected)g (v)o(ertices,)f(the)h(resulting)0 1827 y(graph)e(is)f(connected.)27 b(Also,)18 b(b)q(ecause)g(w)o(e)g(start)h(with)f(a)h(single)e(edge)i (connecting)e(t)o(w)o(o)i(v)o(ertices,)d(if)0 1888 y(w)o(e)j(use)h(pro)q (ductions)g(1a\))g(or)g(1b\),)g(w)o(e)f(in)o(tro)q(duce)g(a)h(single)f(new)h (v)o(ertex)e(and)i(a)g(single)f(new)g(edge.)0 1948 y(Pro)q(ductions)d(1c\))g (and)g(1d\))g(preserv)o(e)e(the)h(n)o(um)o(b)q(er)f(of)i(v)o(ertices)d(and)j (edges.)21 b(Hence,)14 b(the)i(n)o(um)o(b)q(er)d(of)0 2008 y(edges)j(in)g(the)g(graph)h(is)f(alw)o(a)o(ys)h(one)f(less)g(than)h(the)f(n) o(um)o(b)q(er)e(of)j(v)o(ertices.)i(Therefore,)677 2110 y(\000)d Fi(2)h Fj(L)p Fp(\()p Fj(G)p Fp(\))g Fi(\))f Fj(T)7 b(r)q(ee)p Fp(=\()p Fj(V)j Fp(,)p Fj(C)t Fp(\))73 2211 y(Next,)15 b(w)o(e)h(pro)o(v)o(e) f(that)i(\000)g Fi(2)f Fj(L)p Fp(\()p Fj(G)p Fp(\))h Fi(\))f Fj(W)7 b(F)g Fp(\(\000\).)21 b(W)l(e)16 b(kno)o(w)g(that:)146 2325 y(\000)h Fi(2)g Fj(L)p Fp(\()p Fj(G)p Fp(\))f Fi(\))g Fj(W)7 b(F)g Fp(\(\000\))98 2386 y(=)16 b(\000)g Fi(2)h Fj(L)p Fp(\()p Fj(G)p Fp(\))g Fi(\))f(8)g Fp(\(x,y\))f Fi(2)h Fj(T)23 b Fi(\017)16 b Fp(WFT)l(ub)q(e\(x,y\))98 2446 y(=)g(\000)g Fi(2)h Fj(L)p Fp(\()p Fj(G)p Fp(\))g Fi(\))f(8)g Fp(\(x,y\))f Fi(2)h Fj(T)23 b Fi(\017)16 b Fp(\(x)p Fi(6)p Fp(=y)g Fi(^)g Fp(p)p Fj(C)t Fp(x)g Fi(^)g Fp(p)p Fj(C)t Fp(y\))g Fi(_)746 2506 y Fp(\(p)p Fj(C)t Fp(x)f Fi(^)i Fp(q)p Fj(C)t Fp(y)e Fi(^)i Fp(p)p Fj(T)7 b Fp(q\))15 b Fi(_)746 2566 y Fp(\(p)p Fj(C)t Fp(x)g Fi(^)i Fp(p)p Fj(T)7 b Fp(y\))15 b Fi(_)746 2626 y Fp(\(q)p Fj(C)t Fp(y)g Fi(^)h Fp(x)p Fj(T)7 b Fp(q\))932 2828 y(10)p eop %%Page: 11 11 11 10 bop 73 45 a Fp(Since)21 b(pro)q(ductions)j(1-4\))f(are)f(the)g(only)g (pro)q(ductions)h(with)f(tub)q(es)h(in)f(them,)f(all)h(tub)q(es)h Fj(xT)7 b(y)0 105 y Fp(generated)18 b(b)o(y)g(grammar)f Fj(G)i Fp(are)g(deriv)o(ed)e(from)g(them.)27 b(If)18 b(pro)q(duction)h(1\))g(is)f (used,)h Fj(x)f Fp(and)h Fj(y)h Fp(ha)o(v)o(e)0 165 y(the)c(same)g(paren)o(t) g(\(Sibling)g(Rule\).)22 b(If)16 b(2\))h(is)f(used,)g(the)h(paren)o(ts)f(of)h Fj(x)g Fp(and)g Fj(y)h Fp(ha)o(v)o(e)e(a)h(tub)q(e)f(b)q(et)o(w)o(een)0 226 y(them)j(\(P)o(aren)o(t-T)l(ub)q(e-Child)j(Rule\).)34 b(If)21 b(3\))g(is)g(used,)h(there)f(is)g(a)g(tub)q(e)g(b)q(et)o(w)o(een)g(the)f (paren)o(t)h(of)h Fj(x)0 286 y Fp(and)e Fj(y)h Fp(\(P)o(aren)o(t-T)l(ub)q(e)f (Rule\).)31 b(If)19 b(4\))h(is)f(used,)h(there)f(is)g(a)h(tub)q(e)g(b)q(et)o (w)o(een)f Fj(x)g Fp(and)h(the)g(paren)o(t)f(of)h Fj(y)0 346 y Fp(\(T)l(ub)q(e-Child)d(Rule\).)22 b(In)17 b(an)o(y)g(case,)f(the)h(deriv)o (ed)e(tub)q(es)i(satisfy)g(the)g(w)o(ell-formedness)e(rules.)22 b(This)0 406 y(pro)o(v)o(es)16 b(that)g Fj(L)p Fp(\()p Fj(G)p Fp(\))h Fi(\022)f Fj(\034)6 b Fp(,)16 b(and)h(b)q(oth)g(Theorems)e(1)i(and)f (2)h(pro)o(v)o(e)e(that)i Fj(\034)22 b Fi(\021)16 b Fj(L)p Fp(\()p Fj(G)p Fp(\).)73 466 y Fh(2)4 617 y Fk(Theorem)h(3:)23 b(In)c(a)g(w)n(ell-formed)e(tub)r(e)i(graph)g(there)g(are)g(no)g(tub)r(es)g (b)r(et)n(w)n(een)g(a)g(v)n(ertex)0 677 y(and)g(its)f(ancestors)h(or)f (descendan)n(ts)0 758 y Fp(The)e(theorem)e(states)i(that)g(in)f(a)h(w)o (ell-formed)d(tub)q(e)j(graph)h Fj(T)7 b(G)p Fp(=\()p Fj(V)s(;)h(C)q(;)g(T)f Fp(\),)14 b(if)h(a)h(tub)q(e)g Fj(xT)7 b(y)16 b Fp(is)g(w)o(ell-)0 819 y(formed)e Fj(x)g Fp(cannot)i(b)q(e)f(an)h(ancestor)f(of)h Fj(y)r Fp(,)e(and)i(vice)d(v)o(ersa.)21 b(This)15 b(statemen)o(t)e(is)i(form) o(ulated)e(in)i(logic)0 879 y(as)i(follo)o(ws:)459 971 y Fj(W)7 b(F)g Fp(\()p Fj(T)g(G)p Fp(\))15 b Fi(\))h(8)g Fp(\(x,y\))g Fi(2)g Fj(T)23 b Fi(\017)16 b(:)g Fp(x)p Fj(C)1164 953 y Fn(+)1193 971 y Fp(y)g Fi(^)g(:)h Fp(y)p Fj(C)1399 953 y Fn(+)1428 971 y Fp(x)0 1063 y(This)d(theorem)f(ma)o(y)f(not)j(b)q(e)f(ob)o(vious)h(from)e (the)h(de\014nition)f(of)i(a)f(w)o(ell-formed)e(tub)q(e)j(graph,)g(giv)o(en)e (in)0 1123 y(Section)i(4.1;)h(namely)l(,)d(that)j(there)g(are)f(no)i(tub)q (es)f(b)q(et)o(w)o(een)e(ancestors)j(of)f(descendan)o(ts)f(of)h(a)h(v)o (ertex,)0 1183 y(whic)o(h)f(also)h(implies)c(that)k(are)f(no)h(tub)q(e)g(to)f (or)h(from)e(the)h(ro)q(ot.)23 b(Rules)16 b(of)g(this)g(sort)h(are)g(common)d (in)0 1243 y(MILs)19 b(when)g(sp)q(ecifying)f(the)g(dep)q(endencies)g(b)q(et) o(w)o(een)g(mo)q(dules)f(and)j(subsystems,)e(but)h(w)o(ould)f(b)q(e)0 1303 y(relaxed)g(if)g(w)o(e)h(w)o(ere)f(using)h(tub)q(e)g(graphs)h(for)f(sp)q (ecifying)f(to)h(dep)q(endencies)f(b)q(et)o(w)o(een)g(pro)q(cedures,)0 1364 y(since)d(a)i(pro)q(cedure)f(ma)o(y)f(call)h(\(dep)q(end)g(on\))h (itself.)73 1424 y(The)g(pro)q(of)i(of)e(this)h(theorem)d(dep)q(ends)j(on)g (the)f(canonical)g(order)g(of)h(construction)f(dictated)g(b)o(y)0 1484 y(the)j(graph)h(grammar.)31 b(W)l(e)20 b(use)g(induction)g(on)h(the)f(n) o(um)o(b)q(er)e(of)j(tub)q(es)f(of)h(the)f(w)o(ell-formed)d(tub)q(e)0 1544 y(graph)g Fj(T)7 b(G)p Fp(.)0 1626 y(Base)16 b(Case)p 0 1633 217 2 v 0 1686 a(Let)i(the)f(n)o(um)o(b)q(er)f(of)i(tub)q(es)h(b)q(e)e (one.)26 b(Since)17 b Fj(T)7 b(G)18 b Fp(is)f(w)o(ell-formed,)f(the)h(tub)q (e)h(can)g(only)g(b)q(e)f(b)q(et)o(w)o(een)0 1746 y(sibling)f(v)o(ertices)e (\(otherwise)i(the)g(graph)h(m)o(ust)e(con)o(tain)h(additional)h(tub)q(es\).) 0 1828 y(Inductiv)o(e)d(Step)p 0 1844 311 2 v 0 1888 a(Assume)j(the)h (theorem)f(holds)i(for)g(an)o(y)g(w)o(ell-formed)d(tub)q(e)j(graph)g(with)g Fj(n)f Fp(tub)q(es.)29 b(T)l(o)19 b(add)g(a)g(tub)q(e)0 1948 y Fj(xT)7 b(y)21 b Fp(to)f(an)o(y)h(w)o(ell-formed)c(tub)q(e)k(graph)g(of)g Fj(n)f Fp(tub)q(es,)h(so)g(that)g(the)f(resulting)f(tub)q(e)i(graph)g(is)f (also)0 2008 y(w)o(ell-formed,)13 b(the)j(additional)h(tub)q(e)f(m)o(ust)f (satisfy)h(one)h(of)f(the)g(follo)o(wing)g(conditions:)98 2100 y Fk(\(R1\):)k Fp(V)l(ertices)15 b Fj(x)h Fp(and)h Fj(y)g Fp(are)g(prop)q(er) f(siblings.)244 2160 y(In)g(this)g(case,)g(trivially)l(,)d Fj(x)j Fp(is)g(not)h(an)g(ancestor)g(or)f(descendan)o(t)g(of)h Fj(y)r Fp(.)98 2221 y Fk(\(R2\):)j Fp(There)c(exists)g(a)g(tub)q(e)h(b)q(et)o (w)o(een)e(the)h(paren)o(ts)h(of)f Fj(x)g Fp(and)h Fj(y)r Fp(.)244 2281 y(By)e(the)h(induction)g(h)o(yp)q(othesis)h(the)f(paren)o(ts)g(are)g (not)h(descendan)o(ts)f(of)h(one)f(another.)244 2341 y(Therefore,)f Fj(x)h Fp(and)h Fj(y)h Fp(\(their)d(c)o(hildren\))g(cannot)i(b)q(e)f (descendan)o(ts)g(of)h(one)f(another.)98 2401 y Fk(\(R3\):)k Fp(There)c(exists)g(a)g(tub)q(e)h(b)q(et)o(w)o(een)e(the)h(paren)o(t)g(of)h Fj(x)f Fp(and)h Fj(y)r Fp(.)244 2461 y(By)e(the)h(induction)g(h)o(yp)q (othesis,)g(the)g(paren)o(t)g(of)h Fj(x)f Fp(and)h Fj(y)g Fp(are)g(not)f (descendan)o(ts)h(of)244 2522 y(one)f(another.)22 b(Therefore,)15 b Fj(x)h Fp(cannot)h(b)q(e)g(a)f(descendan)o(t)g(of)h Fj(y)h Fp(and)f(vice)d(v)o(ersa.)98 2582 y Fk(\(R4\):)20 b Fp(There)c(exists)g(a)g (tub)q(e)h(b)q(et)o(w)o(een)e Fj(x)h Fp(and)h(the)f(paren)o(t)g(of)h Fj(y)r Fp(.)244 2642 y(By)e(the)h(induction)g(h)o(yp)q(othesis,)g Fj(x)g Fp(and)h(the)f(paren)o(t)g(of)h Fj(y)g Fp(are)g(not)f(descendan)o(ts)h (of)244 2702 y(one)f(another.)22 b(Therefore,)15 b Fj(x)h Fp(cannot)h(b)q(e)g (a)f(descendan)o(t)g(of)h Fj(y)h Fp(and)f(vice)d(v)o(ersa.)932 2828 y(11)p eop %%Page: 12 12 12 11 bop 0 45 a Fp(Therefore,)19 b(the)g(theorem)f(that)h(a)h(w)o (ell-formed)d(tub)q(e)i(graph)i(do)q(es)f(not)f(ha)o(v)o(e)g(tub)q(es)g(b)q (et)o(w)o(een)g(an)o(y)0 105 y(v)o(ertex)c(and)i(its)f(ancestors)g(or)h (descendan)o(ts,)f(holds)g(for)h(an)o(y)f(w)o(ell-formed)e(tub)q(e)i(graph.) 73 165 y Fh(2)73 256 y Fp(Next,)f(w)o(e)h(presen)o(t)f(algorithms)h(for)g (manipulating)f(tub)q(e)i(graphs)g(and)g(c)o(hec)o(king)e(for)h(their)g(w)o (ell-)0 316 y(formedness.)0 482 y Fq(6)83 b(Op)r(erations)27 b(on)g(T)-7 b(ub)r(e)28 b(Graphs)0 592 y Fp(W)l(e)19 b(no)o(w)i(presen)o(t)e (algorithms)g(for)h(manipulating)e(the)i(tub)q(es)g(and)g(v)o(ertices)e(of)i (w)o(ell-formed)d(tub)q(e)0 652 y(graphs)24 b(as)f(w)o(ell)e(as)i(for)f (determining)e(the)j(w)o(ell-formedness)d(of)i(general)h(tub)q(e)f(graphs.)41 b(F)l(rom)21 b(a)0 712 y(theoretical)i(standp)q(oin)o(t,)k(these)d (algorithms)f(can)h(b)q(e)h(considered)e(to)i(b)q(e)f(op)q(erations)h(of)g(a) f(tub)q(e)0 772 y(graph)19 b(algebra.)29 b(F)l(rom)17 b(a)i(practical)f (standp)q(oin)o(t,)i(they)e(can)g(b)q(e)h(considered)f(to)h(b)q(e)g (functions)f(of)h(a)0 833 y(visual)f(or)g(textual)f(editor)h(that)g(supp)q (orts)i(the)e(manipulation)e(of)j(arc)o(hitectural)d(designs)j(based)f(on)0 893 y(tub)q(e)13 b(graphs.)22 b(When)13 b(sp)q(ecifying)f(the)h(complexit)o (y)d(of)k(these)e(op)q(erations)j(\(applied)d(to)i(a)f(tub)q(e)h(graph\))0 953 y(w)o(e)i(use)g(the)g(follo)o(wing)g(de\014nitions:)73 1055 y Fi(\017)24 b(j)p Fp(V)p Fi(j)15 b Fp(is)h(the)g(n)o(um)o(b)q(er)f(of)i (v)o(ertices,)73 1156 y Fi(\017)24 b(j)p Fp(T)p Fi(j)16 b Fp(is)g(the)g(n)o (um)o(b)q(er)f(of)h(tub)q(es,)73 1258 y Fi(\017)24 b Fj(heig)r(ht)15 b Fp(is)h(the)g(heigh)o(t)g(of)h(the)f(con)o(tainmen)o(t)e(tree,)h(whic)o(h,) g(for)h(the)g(w)o(orst)h(case)f(tree,)f(is)i Fi(j)p Fp(V)p Fi(j)p Fp(,)73 1360 y Fi(\017)24 b Fo(maxChildr)n(en)g Fp(is)f(the)h(n)o(um)o (b)q(er)d(of)j(c)o(hildren)e(of)i(the)g(v)o(ertex)e(\(or)i(v)o(ertices\))d (with)j(the)f(most)122 1420 y(c)o(hildren,)14 b(whic)o(h,)h(for)i(the)f(w)o (orst)g(case)h(tree,)e(is)h Fi(j)p Fp(V{1)p Fi(j)p Fp(,)73 1522 y Fi(\017)24 b Fo(maxT)l(ub)n(eOut)18 b Fp(is)f(the)g(n)o(um)o(b)q(er)e (of)j(outgoing)g(tub)q(es)f(from)f(the)h(v)o(ertex)e(\(or)j(v)o(ertices\))d (with)i(the)122 1582 y(most)e(outgoing)j(tub)q(es,)e(whic)o(h,)f(for)i(the)f (w)o(orst)h(case)f(tree,)f(is)h Fi(j)p Fp(T)p Fi(j)p Fp(,)73 1684 y Fi(\017)24 b Fo(maxT)l(ub)n(eIn)15 b Fp(is)f(the)g(n)o(um)o(b)q(er)f (of)h(incoming)f(tub)q(es)h(to)h(the)f(v)o(ertex)e(\(or)j(v)o(ertices\))d (with)i(the)g(most)122 1744 y(incoming)h(tub)q(es,)h(whic)o(h,)f(for)h(the)g (w)o(orst)h(case)f(tree,)f(is)i Fi(j)p Fp(T)p Fi(j)p Fp(,)73 1845 y Fi(\017)24 b Fo(maxChildT)l(ub)n(es)16 b Fp(is)f(the)g(total)g(n)o(um) o(b)q(er)e(of)j(outgoing)g(tub)q(es)g(from)e(the)g(c)o(hildren)g(of)h(the)g (v)o(ertex)122 1906 y(\(or)h(v)o(ertices\))e(whose)j(c)o(hildren)d(ha)o(v)o (e)h(the)h(most)f(outgoing)i(tub)q(es,)f(whic)o(h,)e(for)j(the)e(w)o(orst)i (case)122 1966 y(tree,)e(is)h Fi(j)p Fp(T)p Fi(j)p Fp(.)0 2067 y(The)h(w)o(orst)g(case)f(complexit)o(y)e(of)j(eac)o(h)f(of)h(the)f(follo)o (wing)g(algorithms)g(dep)q(ends)h(on)g(the)g(complexit)o(y)0 2128 y(of)g(the)f(primitiv)o(e)d(op)q(erations,)18 b(whic)o(h)e(are)g (de\014ned)h(in)f(App)q(endix)g(A.)22 b(The)16 b(w)o(orst)h(case)g(complexit) o(y)0 2188 y(of)k(all)f(primitiv)o(e)d(op)q(erations)22 b(is)f(O\(1\),)h (except)d(for)i(the)g Fo(addChild)f Fp(and)h Fo(r)n(emoveChild)g Fp(op)q(erations)0 2248 y(whic)o(h)16 b(ha)o(v)o(e)f(w)o(orst)i(case)f (complexit)o(y)d(O\()p Fi(j)p Fj(V)e Fi(j\002)p Fj(heig)r(ht)p Fp(\).)0 2392 y Ff(6.1)70 b(Op)r(erations)23 b(on)g(T)-6 b(ub)r(es)0 2485 y Fp(W)l(e)20 b(no)o(w)h(presen)o(t)f(algorithms)g(for)g(manipulating)g (tub)q(es)h(and)g(c)o(hec)o(king)e(the)h(w)o(ell-formedness)e(of)0 2545 y(tub)q(e)k(graphs.)39 b(Note)21 b(that)h(the)f(algorithms)g(for)h (adding)g Fo(\(addT)l(ub)n(e\))g Fp(and)h(deleting)d Fo(\(deleteT)l(ub)n(e\)) 0 2605 y Fp(tub)q(es)i(are)f(primitiv)n(e)d(op)q(erations.)37 b(All)20 b(of)h(the)g(follo)o(wing)g(algorithms)f(assume)h(that)g(the)g (graphs)0 2665 y(b)q(eing)16 b(manipulated)f(are)i(tub)q(e)f(graphs.)932 2828 y(12)p eop %%Page: 13 13 13 12 bop 4 45 a Fk(Algorithm)17 b(1:)k(In)n(v)m(alid)d(T)-5 b(ub)r(e)0 95 y Fp(Bo)q(olean)19 b(function)g Fo(invalidT)l(ub)n(e)i Fp(c)o(hec)o(ks)c(if)i(an)g(ill-formed)e(tub)q(e)i(cannot)h(b)q(ecome)d(w)o (ell-formed)g(b)o(y)0 145 y(adding)e(other)f(tub)q(es)h(to)f(the)g(graph.)22 b(This)14 b(situation)h(o)q(ccurs)f(when)h(the)f(tub)q(e)g(is)g(a)h(lo)q(op)g (or)f(the)g(tub)q(e)0 195 y(v)o(ertices)e(are)h(prop)q(er)h(ancestors)h(or)e (descenden)o(ts)g(of)h(eac)o(h)f(other)h(\(Theorem)e(3\).)20 b(In)o(v)m(alid)13 b(tub)q(es)h(m)o(ust)0 244 y(ev)o(en)o(tually)h(b)q(e)j (deleted)e(in)i(order)f(to)h(ac)o(hiev)o(e)e(w)o(ell-formedness.)23 b(The)18 b(complexit)o(y)c(of)k Fo(invalidT)l(ub)n(e)0 294 y Fp(is)e(O\(1\).)83 383 y Fl(function)e(in)o(v)n(alidT)m(ub)q(e\(x,y)d(:)18 b Fd(V)10 b Fl(\))k(:)j(b)q(o)q(olean)166 433 y(result)e(x=y)f Fc(_)f Fl(isAncestor\(x,y\))i Fc(_)f Fl(isAncestor\(y)m(,x\))83 483 y(end)g(in)o(v)n(alidT)m(ub)q(e)0 523 y Fh(2)4 632 y Fk(Algorithm)j(2:)k (W)-5 b(ell-F)g(ormed)16 b(T)-5 b(ub)r(e)0 682 y Fp(Bo)q(olean)21 b(function)g Fo(WFT)l(ub)n(e)g Fp(c)o(hec)o(ks)e(if)i(a)g(tub)q(e)g(is)g(w)o (ell-formed)d(based)k(on)f(the)g(w)o(ell-formedness)0 732 y(de\014nition)14 b(of)h(Section)f(4.1.)21 b(Since)13 b(this)i(function)f(do)q(es)h(not)g(rely) e(on)i(the)f(existence)f(of)i(the)f(tub)q(e,)h(the)0 782 y(function)h(can)h (also)f(b)q(e)h(used)f(to)h(c)o(hec)o(k)e(if)g(adding)i(a)g(tub)q(e)f(to)h(a) g(w)o(ell-formed)d(tub)q(e)i(graph)i(preserv)o(es)0 832 y(its)e(w)o (ell-formedness.)j(The)d(complexit)o(y)d(of)k Fo(WFT)l(ub)n(e)f Fp(is)g(O\(1\).)83 921 y Fl(function)e(WFT)m(ub)q(e\(x,y)f(:)18 b Fd(V)9 b Fl(\))14 b(:)k(b)q(o)q(olean)166 971 y(result)d Fc(:)e Fl(\(isRo)q(ot\(x\))h Fc(_)f Fl(isRo)q(ot\(y\)\))h Fc(^)332 1020 y Fl(\(\(x)p Fc(6)p Fl(=y)g Fc(^)g Fl(par\(x\)=par\(y\)\))h Fc(_)e Fl(tub)q(e\(par\(x\),par\(y\)\))i Fc(_)f Fl(tub)q(e\(par\(x\),y\))g Fc(_)g Fl(tub)q(e\(x,par\(y\)\)\))83 1070 y(end)g(WFT)m(ub)q(e)0 1110 y Fh(2)4 1220 y Fk(Algorithm)j(3:)k(W)-5 b(ell-F)g(ormed)16 b(T)-5 b(ub)r(e)19 b(Graph)0 1269 y Fp(Bo)q(olean)d(function)f Fo(isWFT)l(ub)n(eGr)n(aph)f Fp(c)o(hec)o(ks)g(the)h(w)o(ell-formedness)f(of)h (a)h(tub)q(e)g(graph)g(ro)q(oted)h(at)f Fj(r)q Fp(.)0 1319 y(Starting)e(from)f Fj(r)q Fp(,)h(it)g(visits)f(eac)o(h)g(v)o(ertex)g(in)g (depth-\014rst)i(order.)20 b(F)l(or)14 b(eac)o(h)g(v)o(ertex,)e(it)h(c)o(hec) o(ks)g(that)h(all)0 1369 y(of)f(the)f(outgoing)i(tub)q(es)g(from)d(that)i(v)o (ertex)f(are)g(w)o(ell-formed.)18 b(The)13 b(complexit)o(y)c(of)k Fo(isWFT)l(ub)n(eGr)n(aph)0 1419 y Fp(is)f(O\()p Fi(j)p Fj(V)f Fi(j)p Fp(+)p Fi(j)p Fj(T)c Fi(j)p Fp(\).)19 b(The)12 b(complexit)o(y)e(is)i (not)h(simply)d(O\()p Fi(j)p Fj(T)d Fi(j)p Fp(\))k(b)q(ecause)i(if)f(the)g (tub)q(e)h(graph)g(has)h(no)f(tub)q(es,)0 1469 y Fo(isWFT)l(ub)n(eGr)n(aph)i Fp(m)o(ust)g(still)g(visit)g(all)h(of)g(the)g(v)o(ertices,)e(whic)o(h)i (requires)f(O\()p Fi(j)p Fj(V)c Fi(j)p Fp(\).)83 1558 y Fl(function)j(isWFT)m (ub)q(eGraph\(r)f(:)18 b Fd(V)10 b Fl(\))k(:)k(b)q(o)q(olean)166 1608 y(for)c(i)f(:)18 b(1)c(..)j(n)o(umOfOutgoingT)m(ub)q(es\(r\))249 1658 y(if)c Fc(:)h Fl(WFT)m(ub)q(e\(r,)f(v)o(ertexOfIthOutgoingT)m(ub)q (e\(r,i\)\))i(then)332 1707 y(result)g(false)249 1757 y(end)f(if)166 1807 y(end)g(for)166 1857 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfChildren\(r\)) 249 1907 y(if)c Fc(:)h Fl(isWFT)m(ub)q(eGraph\(ithChild\(r,i\)\))e(then)332 1956 y(result)j(false)249 2006 y(end)f(if)166 2056 y(end)g(for)166 2106 y(result)h(true)83 2156 y(end)f(isWFT)m(ub)q(eGraph)0 2195 y Fh(2)4 2305 y Fk(Algorithm)j(4:)k(Making)d(a)h(T)-5 b(ub)r(e)19 b(W)-5 b(ell)17 b(F)-5 b(ormed)0 2355 y Fp(Pro)q(cedure)13 b Fo(makeT)l(ub)n(eWF)h Fp(deletes)e(a)i(tub)q(e)f(if)g(it)f(is)h(in)o(v)m (alid)f(or)i(adds)g(w)o(ell-formed)c(tub)q(es)k(to)f(the)g(tub)q(e)0 2405 y(graph)j(in)f(order)g(to)h(mak)o(e)d(a)j(v)m(alid)f(tub)q(e)g(w)o(ell)f (formed)g(\(there)g(ma)o(y)g(b)q(e)h(more)f(than)i(one)f(set)h(of)f(tub)q(es) 0 2455 y(that)g(can)g(accomplish)e(this\).)20 b(It)14 b(is)g(imp)q(ortan)o(t) g(to)h(note)g(that)g(adding)g(w)o(ell-formed)d(tub)q(es)j(to)g(a)g(w)o(ell-)0 2504 y(formed)i(tub)q(e)i(graph)h(preserv)o(es)d(w)o(ell-formedness.)26 b(Let)19 b Fj(xT)7 b(y)19 b Fp(b)q(e)g(the)f(tub)q(e)h(under)g (consideration.)0 2554 y(There)e(are)g(three)g(cases:)23 b(1\))18 b(the)f(lev)o(els)e(of)j Fj(x)f Fp(and)h Fj(y)g Fp(are)g(the)f(same,)f(2\))h (the)g(lev)o(el)e(of)j Fj(x)f Fp(is)g(less)g(than)0 2604 y(the)g(lev)o(el)d (of)k Fj(y)r Fp(,)e(or)h(3\))g(the)g(lev)o(el)e(of)i Fj(x)f Fp(is)h(greater)g(than)g(that)h(of)f Fj(y)r Fp(.)23 b(In)16 b(case)h(2\))g(the)g(algorithm)f(adds)0 2654 y(tub)q(es)i(from)e Fj(x)h Fp(and)h(to)g(the)f(ancestors)h(of)g Fj(y)h Fp(un)o(til)d(the)h(added) h(tub)q(e)g(is)f(at)h(the)f(same)f(lev)o(el)f(as)j Fj(x)p Fp(.)25 b(In)0 2704 y(case)16 b(3\))g(the)f(algorithm)g(adds)h(tub)q(es)g(b)q(et)o(w) o(een)f(the)g(ancestors)h(of)g Fj(x)g Fp(and)g Fj(y)h Fp(un)o(til)e(the)g (added)h(tub)q(e)g(is)932 2828 y(13)p eop %%Page: 14 14 14 13 bop 0 45 a Fp(at)15 b(the)g(same)e(lev)o(el)g(as)i Fj(y)r Fp(.)21 b(Then,)14 b(the)h(algorithm)f(adds)h(tub)q(es)h(b)q(et)o(w)o(een)d (the)i(paren)o(ts)g(of)g(the)f(v)o(ertices)0 95 y(of)20 b(the)g(last)g(tub)q (e)g(added)g(\(if)f(an)o(y\),)h(and)h(so)f(on,)h(un)o(til)e(the)g(common)f (ancestor)i(is)g(reac)o(hed.)31 b(Note)0 145 y(that)17 b(this)g(algorithm)f (do)q(es)i(not)g(guaran)o(tee)f(that)g(the)g(minim)n(um)c(n)o(um)o(b)q(er)i (of)j(tub)q(es)f(will)f(b)q(e)h(added)0 195 y(to)g(the)f(tub)q(e)g(graph)h (to)g(mak)o(e)d(it)i(w)o(ell)f(formed.)20 b(The)c(complexit)o(y)d(of)k Fo(makeT)l(ub)n(eWF)g Fp(is)f(O\()p Fj(heig)r(ht)p Fp(\).)83 281 y Fl(pro)q(cedure)g(mak)o(eT)m(ub)q(eWF\(x,y)d(:)18 b Fd(V)9 b Fl(\))166 331 y(precondition)14 b(tub)q(e\(x,y\))166 381 y(if)f(in)o(v)n(alidT)m(ub)q(e\(x,y\))f(then)249 431 y(deleteT)m(ub)q (e\(x,y\))166 480 y(elsif)h Fc(:)p Fl(WFT)m(ub)q(e\(x,y\))h(then)249 530 y(p)g Fc( )f Fl(par\(x\))249 580 y(q)h Fc( )f Fl(par\(y\))249 630 y(if)g(lev)o(el\(x\))h Fd(<)g Fl(lev)o(el\(y\))g(then)332 680 y(lo)q(op)436 729 y(addT)m(ub)q(e\(x,q\))436 779 y(q)g Fc( )f Fl(par\(q\))436 829 y(exit)h(when)g(lev)o(el\(x\))g(=)g(lev)o (el\(q\){1)332 879 y(end)g(lo)q(op)249 929 y(elsif)f(lev)o(el\(x\))h Fd(>)g Fl(lev)o(el\(y\))g(then)332 979 y(lo)q(op)436 1028 y(addT)m(ub)q (e\(p,y\))436 1078 y(p)g Fc( )f Fl(par\(p\))436 1128 y(exit)h(when)g(lev)o (el\(y\))g(=)g(lev)o(el\(p\){1)332 1178 y(end)g(lo)q(op)249 1228 y(end)g(if)249 1277 y(lo)q(op)332 1327 y(exit)g(when)g(p)g(=)g(q)332 1377 y(addT)m(ub)q(e\(p,q\))332 1427 y(p)g Fc( )f Fl(par\(p\))332 1477 y(q)h Fc( )f Fl(par\(q\))249 1526 y(end)h(lo)q(op)166 1576 y(end)g(if)83 1626 y(end)g(mak)o(eT)m(ub)q(eWF)0 1663 y Fh(2)4 1773 y Fk(Algorithm)j(5:)k(Making)d(a)h(T)-5 b(ub)r(e)19 b(Graph)g(W)-5 b(ell)18 b(F)-5 b(ormed)0 1823 y Fp(Pro)q(cedure)20 b Fo(makeA)o(l)r(lT)l(ub)n(esWF)i Fp(calls)d(pro)q(cedure)h Fo(makeT)l(ub)n(eWF)h Fp(for)f(all)f(of)h(the)g(tub)q(es)g(in)g(a)g(tub)q(e)0 1872 y(graph)e(ro)q(oted)g(at)g Fj(r)q Fp(.)25 b(The)17 b(complexit)o(y)d(of) k Fo(makeA)o(l)r(lT)l(ub)n(esWF)h Fp(is)e(O\()p Fi(j)p Fj(V)11 b Fi(j)17 b Fp(+)g Fi(j)p Fj(T)7 b Fi(j\002)p Fj(heig)r(ht)p Fp(\),)15 b(b)q(ecause)0 1922 y(all)i(of)h(the)f(tub)q(es)h(and)g(v)o (ertices)e(m)o(ust)g(b)q(e)i(visited)e(and)j(eac)o(h)e(ill-formed)e(tub)q(e)j (m)o(ust)e(b)q(e)h(made)g(w)o(ell)0 1972 y(formed.)83 2059 y Fl(pro)q(cedure)f(mak)o(eAllT)m(ub)q(esWF\(r)d(:)18 b Fd(V)10 b Fl(\))166 2108 y(for)k(i)f(:)18 b(1)c(..)j(n)o(umOfOutgoingT)m(ub)q (es\(r\))249 2158 y(mak)o(eT)m(ub)q(eWF\(r,)c(v)o(ertexOfIthOutgoingT)m(ub)q (e\(r,i\)\))166 2208 y(end)h(for)166 2258 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfChildren\(r\))249 2308 y(mak)o(eAllT)m(ub)q (esWF\(ithChild\(r,i\)\))166 2358 y(end)d(for)83 2407 y(end)g(mak)o(eAllT)m (ub)q(esWF)0 2444 y Fh(2)4 2554 y Fk(Algorithm)j(6:)k(T)-5 b(ub)r(e)18 b(Deletion)f(and)j(W)-5 b(ell-F)g(ormedness)0 2604 y Fp(F)l(unction)18 b Fo(okT)l(oDeleteT)l(ub)n(e)i Fp(returns)e(the)g (conjunction)g(of)g(t)o(w)o(o)g(b)q(o)q(olean)h(v)m(alues.)27 b(The)18 b(\014rst)g(v)m(alue,)0 2654 y Fo(okT)l(oDelete)p Fp(,)j(indicates)d(if)g(deleting)f(a)i(tub)q(e)g Fj(pT)7 b(q)20 b Fp(from)e(a)h(w)o(ell-formed)d(tub)q(e)j(graph)g(preserv)o(es)f(its)0 2704 y(w)o(ell-formedness.)g(The)d(second)g(one,)f Fo(tub)n(esBene)n(ath)p Fp(,)i(indicates)e(if)g(there)g(are)g(an)o(y)g(tub)q(es)h(\\b)q(eneath")932 2828 y(14)p eop %%Page: 15 15 15 14 bop 0 45 a Fp(tub)q(e)19 b Fj(pT)7 b(q)r Fp(.)30 b(By)18 b(\\b)q(eneath")i(w)o(e)f(mean)f(an)o(y)h(tub)q(es)h(b)q(et)o(w)o(een)e Fj(p)i Fp(\(or)f(the)g(c)o(hildren)f(of)h Fj(p)p Fp(\))h(and)g Fj(q)g Fp(\(or)0 95 y(the)h(c)o(hildren)f(of)i Fj(q)r Fp(\),)g(except)f(the)g (tub)q(e)h(b)q(et)o(w)o(een)f Fj(p)h Fp(and)g Fj(q)r Fp(.)37 b(The)22 b Fo(tub)n(esBene)n(ath)h Fp(v)m(alue)e(is)h(useful)0 145 y(when)e(c)o(hec)o(king)e(for)i(gratuitous)h(tub)q(es)g(in)e(the)h (algorithm)f(presen)o(ted)g(next.)32 b(The)20 b(complexit)o(y)c(of)0 195 y Fo(okT)l(oDeleteT)l(ub)n(e)j Fp(is)d(O\()p Fj(maxT)7 b(ubeO)q(ut)14 b Fp(+)i Fj(maxC)t(hil)q(dr)q(en)e Fp(+)i Fj(maxC)t(hil)q(dT)7 b(ubes)p Fp(\).)83 280 y Fl(function)14 b(okT)m(oDeleteT)m(ub)q(e\(p,q)f(:)18 b Fd(V)9 b Fl(\))14 b(:)k(b)q(o)q(olean)166 330 y(precondition)c(tub)q (e\(p,q\))g Fc(^)g(:)g Fl(in)o(v)n(alidT)m(ub)q(e\(p,q\))166 380 y(tub)q(esBeneath)i Fc( )e Fl(false)166 430 y(okT)m(oDelete)g Fc( )f Fl(true)166 479 y(deleteT)m(ub)q(e\(p,q\))166 529 y(for)h(i)f(:)18 b(1)c(..)j(n)o(umOfOutgoingT)m(ub)q(es\(p\))249 579 y(y)d Fc( )f Fl(v)o(ertexOfIthOutgoingT)m(ub)q(e\(p,i\))249 629 y(if)g(par\(y\)=q)h(then) 332 679 y(if)f Fc(:)h Fl(WFT)m(ub)q(e\(p,y\))f(then)436 729 y(okT)m(oDelete)g Fc( )h Fl(false)332 778 y(end)g(if)332 828 y(tub)q(esBeneath)i Fc( )e Fl(true)249 878 y(end)g(if)166 928 y(end)g(for)166 978 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfChildren\(p\))249 1027 y(x)d Fc( )f Fl(ithChild\(p,i\))249 1077 y(for)h(j)f(:)18 b(1)c(..)j(n)o(umOfOutgoingT)m(ub)q(es\(x\))332 1127 y(y)d Fc( )f Fl(v)o(ertexOfIthOutgoingT)m(ub)q(e\(x,j\))332 1177 y(if)g(par\(y\)=q)h Fc(_)g Fd(y)f Fl(=)f Fd(q)j Fl(then)436 1227 y(if)e Fc(:)g Fl(WFT)m(ub)q(e\(x,y\))h(then)519 1276 y(okT)m(oDelete)f Fc( )h Fl(false)436 1326 y(end)g(if)436 1376 y(tub)q(esBeneath)i Fc( )e Fl(true)332 1426 y(end)g(if)249 1476 y(end)g(for)166 1526 y(end)g(for)166 1575 y(addT)m(ub)q(e\(p,q\))166 1625 y(result)h(okT)m (oDelete)e Fc(^)h Fl(tub)q(esBeneath)83 1675 y(end)g(okT)m(oDeleteT)m(ub)q(e) 0 1711 y Fh(2)4 1821 y Fk(Algorithm)j(7:)k(Delete)c(Gratuitous)h(T)-5 b(ub)r(es)0 1871 y Fp(Pro)q(cedure)20 b Fo(deleteGr)n(atuitousT)l(ub)n(es)i Fp(deletes)c(all)i(of)g(those)h(tub)q(es)f(whose)h(tub)q(es)f(\\b)q(eneath")h (them)0 1921 y(do)15 b(not)f(dep)q(end)g(on)h(them.)k(Suc)o(h)14 b(tub)q(es)g(can)g(b)q(e)h(deleted)e(from)g(a)h(w)o(ell-formed)e(tub)q(e)i (graph)h(without)0 1970 y(a\013ecting)21 b(the)g(w)o(ell-formedness)e(of)i (the)g(tub)q(e)g(graph.)36 b(If)21 b(the)g(algorithm)f(ignores)h(c)o(hec)o (king)e(that)0 2020 y(there)k(are)h(no)h(tub)q(es)f(b)q(eneath)g(the)g(p)q (oten)o(tially)f(gratuitous)i(tub)q(e,)g(b)o(y)f(deleting)f(the)g(tub)q(e,)j (the)0 2070 y(seman)o(tics)11 b(of)h(the)g(tub)q(e)h(graph)g(c)o(hange)g(\(a) g(dep)q(endency)e(is)i(lost\).)20 b(T)l(o)13 b(\014nd)f(and)h(delete)f(all)f (gratuitous)0 2120 y(tub)q(es,)19 b(the)g(algorithm)f(tra)o(v)o(erses)g(the)g (con)o(tainmen)o(t)f(tree)h(and)h(for)g(eac)o(h)f(of)h(its)g(v)o(ertices)e (it)h(c)o(hec)o(ks)0 2170 y(if)e(the)h(remo)o(v)m(al)e(of)i(eac)o(h)g(of)g (its)g(tub)q(es)g(do)q(es)h(not)f(lea)o(v)o(e)e(an)o(y)i(unsupp)q(orted)h (tub)q(es.)23 b(Note)17 b(that)g(since)0 2219 y(this)i(algorithm)e(starts)j (from)e(the)g(top)i(of)f(the)f(tree)g(and)i(mo)o(v)o(es)c(to)o(w)o(ard)k(the) e(lea)o(v)o(es,)g(it)g(will)g(nev)o(er)0 2269 y(delete)13 b(gratuitous)i(tub) q(es)g(b)q(et)o(w)o(een)f(v)o(ertices)e(on)j(the)f(same)f(lev)o(el,)f(but)j (will)e(prefer)h(to)h(delete)e(sk)o(ew)o(ed)0 2319 y(gratuitous)24 b(tub)q(es.)40 b(The)22 b(complexit)o(y)d(of)k Fo(gr)n(atuitousT)l(ub)n(es)g Fp(is)f(O\()p Fi(j)p Fj(V)11 b Fi(j)23 b Fp(+)f Fi(j)p Fj(T)7 b Fi(j\002)p Fp(\()p Fj(maxT)g(ub)o(eO)q(ut)20 b Fp(+)0 2369 y Fj(maxC)t(hil)q(dr)q(en)14 b Fp(+)j Fj(maxC)t(hil)q(dT)7 b(ube)o(s)p Fp(\)\).)83 2455 y Fl(pro)q(cedure)16 b(deleteGratuitousT)m(ub)q (es\(r)f(:)j Fd(V)10 b Fl(\))166 2504 y(for)k(i)f(:)18 b(1)c(..)j(n)o (umOfOutgoingT)m(ub)q(es\(r\))249 2554 y(x)d Fc( )f Fl(v)o (ertexOfIthOutgoingT)m(ub)q(e\(r,i\)\))249 2604 y(if)g(okT)m(oDeleteT)m(ub)q (e\(r,x\))h(then)332 2654 y(deleteT)m(ub)q(e\(r,x\))249 2704 y(end)g(if)932 2828 y Fp(15)p eop %%Page: 16 16 16 15 bop 166 45 a Fl(end)14 b(for)166 95 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfChildren\(r\))249 145 y(deleteGratuitousT)m(ub)q (es\(ithChild\(r,i\)\))166 195 y(end)d(for)83 244 y(end)g(deleteGratuitousT)m (ub)q(es)0 278 y Fh(2)0 421 y Ff(6.2)70 b(Op)r(erations)23 b(on)g(V)-6 b(ertices)0 513 y Fp(W)l(e)15 b(no)o(w)g(presen)o(t)f(algorithms) g(for)h(op)q(erating)h(on)f(the)f(v)o(ertices)f(of)i(a)h(tub)q(e)f(graph)g (and)h(consider)e(ho)o(w)0 574 y(these)i(op)q(erations)h(a\013ect)g(its)f(w)o (ell-formedness.)4 683 y Fk(Algorithm)h(8:)k(Adding)e(a)g(V)-5 b(ertex)0 733 y Fp(Pro)q(cedure)13 b Fo(addV)l(ertex)i Fp(adds)f(a)g(new)f(v) o(ertex)e Fj(x)i Fp(as)h(the)f(c)o(hild)f(of)i(v)o(ertex)d Fj(p)j Fp(\(if)f Fj(p)h Fp(=)g Fj(nil)q Fp(,)f Fj(x)g Fp(b)q(ecomes)f(the)0 783 y(ro)q(ot\).)25 b(V)l(ertex)16 b Fj(x)h Fp(can)g(b)q(e)h(the)f(ro)q(ot)h (of)g(a)f(subtree,)g(or)h(a)f(single)g(v)o(ertex.)23 b(The)17 b Fo(sele)n(cte)n(dChildr)n(enOfP)0 833 y Fp(set)e(con)o(tains)g(those)h(c)o (hildren)d(of)j Fj(p)f Fp(that)h(b)q(ecome)d(c)o(hildren)h(of)h Fj(x)p Fp(.)21 b(The)15 b(algorithm)f(adds)i(tub)q(es)g(from)0 883 y Fj(x)f Fp(to)h(all)e(v)o(ertices)g(the)h(selected)f(c)o(hildren)g(ha)o (v)o(e)g(tub)q(es)i(to.)21 b(Similarly)l(,)12 b(it)j(adds)h(tub)q(es)g(to)f Fj(x)g Fp(from)g(an)o(y)0 933 y(v)o(ertices)h(with)i(tub)q(es)g(to)g(the)g (selected)e(c)o(hildren.)25 b(Note)17 b(that)i(these)e(tub)q(es)i(are)f(not)g (added)g(if)g(b)q(oth)0 982 y(v)o(ertices)10 b(in)i(the)h(tub)q(e)f(are)h (selected)d(c)o(hildren,)h(as)i(this)g(w)o(ould)f(add)h(a)g(tub)q(e)f(to)h (or)g(from)e(their)h(ancestor.)0 1032 y(This)22 b(preserv)o(es)g(the)g(w)o (ell-formedness)e(of)i(the)h(tub)q(e)f(graph.)40 b(The)23 b(complexit)o(y)c (of)j Fo(addV)l(ertex)i Fp(is)0 1082 y(O\()p Fi(j)p Fj(V)11 b Fi(j\002)p Fj(heig)r(ht)18 b Fp(+)h Fj(maxC)t(hil)q(dr)q(en)p Fi(\002)p Fp(\()p Fi(j)p Fj(V)9 b Fi(j\002)p Fj(heig)r(ht)18 b Fp(+)h Fj(maxT)7 b(ubeO)q(ut)17 b Fp(+)i Fj(maxT)7 b(ubeI)t(n)p Fp(\)\).)27 b(If)19 b(there)0 1132 y(are)d(no)h(selected)e(c)o(hildren,)f (the)i(complexit)o(y)d(is)j(O\()p Fi(j)p Fj(V)11 b Fi(j\002)p Fj(heig)r(ht)p Fp(\).)83 1215 y Fl(pro)q(cedure)16 b(addV)m(ertex\(p,x)e(:)k Fd(V)9 b Fl(,)14 b(selectedChildrenOfP)i(:)d(set)i(of)e Fd(V)d Fl(\))166 1265 y(precondition)k(selectedChildrenOfP)i(=)e Fc(;)g(_)f(8)h Fl(c)g Fc(2)g Fl(selectedChildrenOfP)i Fc(\017)d Fl(par\(c\)=p)166 1315 y(addChild\(p,x\))166 1365 y(foreac)o(h)h(c)g Fc(2)g Fl (selectedChildrenOfP)249 1414 y(remo)o(v)o(eChild\(p,c\))249 1464 y(addChild\(x,c\))249 1514 y(for)g(i)f(:)18 b(1)c(..)j(n)o (umOfOutgoingT)m(ub)q(es\(c\))332 1564 y(y)d Fc( )f Fl(v)o (ertexOfIthOutgoingT)m(ub)q(e\(c,i\))332 1614 y(if)g(y)h Fc(62)f Fl(selectedChildrenOfP)j(then)436 1663 y(addT)m(ub)q(e\(x,y\))332 1713 y(end)e(if)249 1763 y(end)g(for)249 1813 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfIncomingT)m(ub)q(es\(c\))332 1863 y(y)d Fc( )f Fl(v)o(ertexOfIthIncomingT)m(ub)q(e\(c,i\))332 1913 y(if)g(y)h Fc(62)f Fl(selectedChildrenOfP)j(then)436 1962 y(addT)m(ub)q(e\(y) m(,x\))332 2012 y(end)e(if)249 2062 y(end)g(for)166 2112 y(end)g(foreac)o(h) 83 2162 y(end)g(addV)m(ertex)0 2195 y Fh(2)4 2305 y Fk(Algorithm)j(9:)k (Deleting)c(a)i(V)-5 b(ertex)0 2355 y Fp(Pro)q(cedure)14 b Fo(deleteV)l(ertex)j Fp(deletes)c(a)h(v)o(ertex)e(from)h(a)h(w)o(ell-formed)e (tub)q(e)i(graph)h(without)f(deleting)f(its)0 2405 y(c)o(hildren)j(\(it)h (links)g(them)f(to)i(the)f(paren)o(t)h(of)f(the)h(deleted)e(v)o(ertex\).)24 b(T)l(o)18 b(preserv)o(e)e(w)o(ell-formedness,)0 2455 y(it)g(then)g(replaces) g(an)o(y)h(incoming)d(tub)q(es)j(to)g(the)g(deleted)e(v)o(ertex)g(b)o(y)h (incoming)f(tub)q(es)i(to)f(its)h(paren)o(t)0 2504 y(|)22 b(except)f(if)g (this)h(causes)h(lo)q(ops)g(or)f(tub)q(es)h(b)q(et)o(w)o(een)e(ancestors)i (or)f(descendan)o(ts.)39 b(Similarly)l(,)20 b(it)0 2554 y(replaces)g(an)o(y)h (outgoing)h(tub)q(es)g(from)d(the)i(deleted)f(v)o(ertex)f(to)j(outgoing)g (tub)q(es)f(from)f(the)h(paren)o(t)0 2604 y(of)d(the)g(deleted)f(v)o(ertex.) 25 b(Note)17 b(that)i(the)e(ro)q(ot)i(v)o(ertex)e(cannot)i(b)q(e)f(deleted,)e (since)i(all)f(tub)q(e)h(graphs)0 2654 y(m)o(ust)h(ha)o(v)o(e)h(a)i(ro)q(ot.) 36 b(The)20 b(complexit)o(y)e(of)j Fo(deleteV)l(ertex)j Fp(is)d(O\()p Fj(maxT)7 b(ubeO)q(ut)18 b Fp(+)j Fj(maxT)7 b(ubeI)t(n)18 b Fp(+)0 2704 y Fj(maxC)t(hil)q(dr)q(en)p Fi(\002j)p Fj(V)9 b Fi(j\002)p Fj(heig)r(ht)p Fp(\).)932 2828 y(16)p eop %%Page: 17 17 17 16 bop 83 45 a Fl(pro)q(cedure)16 b(deleteV)m(ertex\(x)g(:)i Fd(V)9 b Fl(\))166 95 y(precondition)14 b Fc(:)g Fl(isRo)q(ot\(x\))166 145 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfChildren\(x\))249 195 y(addChild\(par\(x\),ithChild\(x,i\)\))166 244 y(end)d(for)166 294 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfOutgoingT)m(ub)q(es\(x\))249 344 y(y)d Fc( )f Fl(v)o(ertexOfIthOutgoingT)m(ub)q(e\(x,i\))249 394 y(if)g(par\(x\))h Fc(6)p Fl(=)g(par\(y\))g(then)332 444 y(addT)m(ub)q(e\(par\(x\),y\))249 493 y(end)g(if)249 543 y(deleteT)m(ub)q (e\(x,y\))166 593 y(end)g(for)166 643 y(for)g(i)f(:)18 b(1)c(..)j(n)o (umOfIncomingT)m(ub)q(es\(x\))249 693 y(y)d Fc( )f Fl(v)o (ertexOfIthIncomingT)m(ub)q(e\(x,i\))249 742 y(if)g(par\(x\))h Fc(6)p Fl(=)g(par\(y\))g(then)332 792 y(addT)m(ub)q(e\(y)m(,par\(x\)\))249 842 y(end)g(if)249 892 y(deleteT)m(ub)q(e\(y)m(,x\))166 942 y(end)g(for)166 992 y(remo)o(v)o(eChild\(par\(x\),x\))83 1041 y(end)g(deleteV)m(ertex)0 1083 y Fh(2)4 1193 y Fk(Algorithm)j(10:)k(Deleting) c(a)i(Subtree)0 1243 y Fp(Pro)q(cedure)24 b Fo(deleteSubtr)n(e)n(e)i Fp(deletes)d(the)g(subtree)h(ro)q(oted)g(at)h Fj(x)p Fp(.)43 b(T)l(o)25 b(preserv)o(e)d(w)o(ell-formedness,)0 1293 y(the)e(pro)q(cedure)h (ensures)g(that)g(an)o(y)f(incoming)g(and)h(outgoing)h(tub)q(es)f(to)g(or)g (from)f(the)g(v)o(ertices)f(in)0 1342 y(the)f(deleted)f(subtree)g(are)i (deleted.)25 b(The)18 b(complexit)o(y)d(of)j Fo(deleteSubtr)n(e)n(e)j Fp(is)d(O\()p Fi(j)p Fj(V)11 b Fi(j\002)p Fj(heig)r(ht)16 b Fp(+)i Fi(j)p Fj(T)7 b Fi(j)p Fp(\))0 1392 y(b)q(ecause,)17 b(in)g(the)g(w)o(orst)g(case,)g Fj(x)g Fp(can)g(b)q(e)h(the)e(ro)q(ot)j(of)e (the)g(con)o(tainmen)o(t)e(tree)h(and)i(the)f(complexit)o(y)0 1442 y(of)g Fo(r)n(emoveChild)p Fp(,)f(when)g(remo)o(ving)e(leaf)i(v)o (ertices,)e(is)i(O\()p Fj(heig)r(ht)p Fp(\).)83 1533 y Fl(pro)q(cedure)g (deleteSubtree\(x)g(:)i Fd(V)10 b Fl(\))166 1583 y(for)k(i)f(:)18 b(1)c(..)j(n)o(umOfChildren\(x\))249 1633 y(deleteSubtree\(ithChild\(x,i\)\)) 166 1683 y(end)d(for)166 1733 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfOutgoingT)m (ub)q(es\(x\))249 1782 y(deleteT)m(ub)q(e\(x,)e(ithOutgoingT)m(ub)q (e\(x,i\)\))166 1832 y(end)f(for)166 1882 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfIncomingT)m(ub)q(es\(x\))249 1932 y(deleteT)m(ub)q(e\(v)o (ertexOfIthIncomingT)m(ub)q(e\(x,i\),x\))166 1982 y(end)d(for)166 2031 y(remo)o(v)o(eChild\(par\(x\),x\))83 2081 y(end)g(deleteSubtree)0 2123 y Fh(2)73 2183 y Fp(This)g(concludes)g(the)f(description)g(of)i(our)f (algorithms)f(for)h(manipulating)f(tub)q(e)h(graphs.)22 b(F)l(ollo)o(w-)0 2243 y(ing,)16 b(is)g(a)h(synopsis)f(of)h(the)f(pap)q(er)h(and)g(directions)e (for)i(future)f(researc)o(h.)0 2410 y Fq(7)83 b(Summary)26 b(and)h(F)-7 b(uture)27 b(Researc)n(h)0 2519 y Fp(W)l(e)22 b(describ)q(ed)g(tub)q(e)h(graphs)h(as)f(mathematical)c(en)o(tities)i(and)i (sho)o(w)o(ed)g(ho)o(w)g(they)f(can)h(b)q(e)f(used)0 2579 y(|)15 b(b)o(y)f(imp)q(osing)h(restrictions)f(on)i(tub)q(es)f(|)g(to)h(mo)q(del)e (particular)g(st)o(yles)h(of)g(arc)o(hitectural)f(designs.)0 2640 y(First,)f(w)o(e)g(describ)q(ed)g(ho)o(w)h(tub)q(e)f(graphs)i(\014t)e (in)o(to)g(our)h(general)g(soft)o(w)o(are)f(dev)o(elopmen)o(t)d(en)o (vironmen)o(t)0 2700 y(framew)o(ork)15 b(for)i(sp)q(ecifying)f(and)i (visualizing)d(arc)o(hitectural)h(designs.)23 b(Then,)16 b(w)o(e)h(formally)e (de\014ned)932 2828 y(17)p eop %%Page: 18 18 18 17 bop 0 45 a Fp(general)20 b(tub)q(e)g(graphs,)h(as)f(w)o(ell)f(as)h(a)g (restricted)f(form,)g(called)g(w)o(ell-formed)e(tub)q(e)j(graphs.)33 b(W)l(ell-)0 105 y(formed)11 b(tub)q(e)h(graphs)i(mo)q(del)c(SIL)j(arc)o (hitectural)e(designs.)20 b(These)12 b(tub)q(e)g(graphs)i(w)o(ere)d(then)h (sp)q(eci\014ed)0 165 y(using)j(a)f(graph)i(grammar.)j(W)l(e)14 b(pro)o(v)o(ed)g(that)g(the)g(grammar)f(generates)i(exactly)e(the)h(set)g(of) h(all)f(w)o(ell-)0 226 y(formed)k(tub)q(e)i(graphs.)33 b(Finally)l(,)18 b(algorithms)h(for)h(manipulating)e(w)o(ell-formed)g(tub)q(e)h(graphs)i(w)o (ere)0 286 y(sp)q(eci\014ed)11 b(and,)h(assuming)f(the)g(data)h(structures)f (of)g(app)q(endix)g(A,)h(the)f(complexit)o(y)c(of)12 b(eac)o(h)f(algorithm)0 346 y(w)o(as)17 b(giv)o(en.)73 406 y(In)g(the)g(future,)f(w)o(e)h(plan)g(to)g (use)g(tub)q(e)g(graphs)i(to)e(mo)q(del)f(arc)o(hitectural)f(designs)j(based) f(on)h(the)0 466 y(en)o(tire)c(SIL)h(language)h(whic)o(h)e(includes)g (relations)h(suc)o(h)f(as)i Fo(imp)n(ort)p Fp(,)e Fo(exp)n(ort)p Fp(,)g(and,)i(p)q(ossibly)f(later)f(on,)0 527 y Fo(inheritanc)n(e)p Fp(,)f(and)f Fo(data)g(\015ow)p Fp(.)20 b(W)l(e)11 b(are)g(also)h(in)o (terested)e(in)g(using)i(tub)q(e)f(graphs)i(to)e(mo)q(del)f(designs)i(and)0 587 y(programs)17 b(of)h(other)f(arc)o(hitectural)f(design)i(and)f (programming)f(languages.)26 b(A)16 b(tec)o(hnical)g(problem)0 647 y(that)f(w)o(e)g(are)g(in)o(v)o(estigating)f(is)h(the)f(automatic)g (generation)i(of)f(to)q(ols)h(for)f(arc)o(hitectural)f(design)h(from)0 707 y(graph)i(grammar)e(sp)q(eci\014cations.)0 874 y Fq(A)83 b(Data)28 b(Structures)e(and)h(Primitiv)n(e)g(Op)r(erations)0 983 y Fp(This)14 b(app)q(endix)f(de\014nes)h(the)f(primitiv)o(e)d(op)q (erations)15 b(used)f(b)o(y)f(the)g(algorithms)g(describ)q(ed)g(in)g(Section) 0 1043 y(6.)40 b(These)22 b(primitiv)n(e)d(op)q(erations)24 b(are)e(used)g(for)h(manipulating)e(the)h(data)h(structures)f(describ)q(ed)0 1103 y(b)q(elo)o(w.)0 1233 y Fk(A.0.1)56 b(Data)18 b(Structures)0 1315 y Fp(The)i(data)g(structures)f(are)h(designed)f(to)h(optimize)d(the)j (sp)q(eed)f(of)h(the)f(primitiv)o(e)d(op)q(erations)21 b(that)0 1365 y(deal)14 b(with)g(tub)q(es.)21 b(W)l(e)14 b(assume)g(that)h(the)f(a)o (v)m(ailable)g(space)g(is)g(su\016cien)o(t)f(for)i(an)o(y)f(tub)q(e)g(graph.) 22 b(In)14 b(an)0 1415 y(implem)o(en)o(tati)o(on,)f(ho)o(w)o(ev)o(er,)h(w)o (e)h(could)h(trade-o\013)h(some)d(sp)q(eed)i(to)g(reduce)f(the)g(space)h (requiremen)n(ts)0 1465 y(b)o(y)g(using)g(hashing.)22 b(The)17 b(data)g(structures)f(are)g(de\014ned)g(as)h(follo)o(ws:)83 1556 y Fl(t)o(yp)q(e)d Fd(V)24 b Fl(:)18 b(p)q(oin)o(ter)c(to)g Fd(V)9 b(ty)q(pe)83 1656 y Fl(const)15 b(maxV)m(ertex)f(:)k(natural)13 b Fc( )g Fb(some)i(very)g(lar)n(ge)f(numb)n(er)83 1755 y Fl(t)o(yp)q(e)g Fd(V)c(ty)q(pe)15 b Fl(:)166 1805 y(record)249 1855 y(id)e(:)18 b(1)c(..)k(maxV)m(ertex)249 1905 y(paren)o(t)c(:)k Fd(V)249 2004 y Fl(hasChild,)13 b(hasT)m(ub)q(eT)m(o,)g(hasT)m(ub)q(eF)m(rom,)g (hasAncestor)j(:)i(arra)o(y)13 b(1)h(..)j(maxV)m(ertex)d(of)g(0)f(..)18 b(maxV)m(ertex)249 2054 y(c)o(hild,)13 b(tub)q(eT)m(o,)g(tub)q(eF)m(rom,)h (ancestor)h(:)j(arra)o(y)c(1)f(..)18 b(maxV)m(ertex)c(of)f Fd(V)249 2104 y Fl(n)o(umOfChildren,)g(n)o(umOfT)m(ub)q(esT)m(o,)g(n)o(umOfT) m(ub)q(esF)m(rom,)f(n)o(umOfAncestors)k(:)i(0)13 b(..)18 b(maxV)m(ertex)166 2154 y(end)c(record)0 2305 y Fp(F)l(or)23 b(a)f(v)o(ertex)f Fj(x)p Fp(,)j Fo(x.id)459 2287 y Fn(7)502 2305 y Fp(uniquely)d(iden)o (ti\014es)g(it.)39 b(A)22 b(p)q(oin)o(ter)g(to)h(the)f(paren)o(t)h(of)g Fj(x)f Fp(is)g(stored)h(in)0 2366 y Fo(x.p)n(ar)n(ent)i Fp(\(is)g(nil)f(if)h Fj(x)g Fp(is)g(the)g(ro)q(ot\).)50 b(The)25 b Fo(x.hasChild)g Fp(arra)o(y)h(is)f(used)g(for)h(quic)o(kly)d(determin-)0 2426 y(ing)g(the)h(c)o(hildren)d(of)j Fj(x)p Fp(.)43 b(If)23 b(a)g(v)o(ertex)f Fj(v)j Fp(is)e(not)h(a)g(c)o(hild)e(of)i Fj(x)p Fp(,)g Fo(x.hasChild\(v.id\)) g Fp(is)f(0,)i(if)e(it)g(is,)0 2486 y Fo(x.child\(x.hasChild\(v.id\)\))17 b Fp(is)f Fo(v)p Fp(.)22 b(V)l(ariables)15 b Fo(x.child)j Fp(and)f Fo(x.numOfChildr)n(en)g Fp(are)f(useful)g(when)g(iter-)0 2546 y(ating)f(across)g(the)g(c)o(hildren)e(of)h Fj(x)p Fp(.)21 b(Similar)12 b(data)j(structures)g(are)f(emplo)o(y)o(ed)e(for)j(the)f (outgoing)i(tub)q(es)0 2606 y(from)g Fj(x)g Fp(\()p Fo(x.tub)n(eT)l(o,)k (x.hasT)l(ub)n(eT)l(o,)e(x.numOfT)l(ub)n(esT)l(o)p Fp(\),)h(the)d(incoming)g (tub)q(es)h(to)g Fj(x)g Fp(\()p Fo(x.tub)n(esF)l(r)n(om,)p 0 2653 765 2 v 56 2683 a Fm(7)75 2699 y Fl(W)m(e)c(use)i(\\.")i(for)d(p)q (oin)o(ter)g(dereferencing.)932 2828 y Fp(18)p eop %%Page: 19 19 19 18 bop 0 45 a Fo(x.hasT)l(ub)n(eF)l(r)n(om,)22 b(x.numOfT)l(ub)n(esF)l(r)n (om)p Fp(\),)g(and)f(the)f(ancestors)h(of)g Fj(x)f Fp(\()p Fo(x.anc)n(estor,)j(x.hasA)o(nc)n(estor,)0 105 y(x.numOfA)o(nc)n(estors)p Fp(\).)73 165 y(W)l(e)16 b(next)g(presen)o(t)g(the)g(op)q(erations)h(for)f (manipulating)f(the)h(data)i(structures.)0 295 y Fk(A.0.2)56 b(Primitiv)m(e)16 b(Op)r(erations)0 388 y Fp(The)k(primitiv)o(e)d(op)q (erations)k(are)g(used)f(b)o(y)g(the)g(tub)q(e)g(graph)i(op)q(erations)f (describ)q(ed)f(in)g(Section)g(6.)0 448 y(These)c(primitiv)o(e)c(op)q (erations)18 b(dep)q(end)e(on)g(a)h(few)e(supp)q(orting)j(op)q(erations)f(|)f (whic)o(h)f(k)o(eep)g(trac)o(k)g(of)0 508 y(ancestor)i(information)e(|)h (de\014ned)g(in)g(the)g(next)g(section.)4 618 y Fk(Algorithm)h(11:)k(P)n (aren)n(t)f(of)e(a)h(V)-5 b(ertex)0 668 y Fp(F)l(unction)14 b Fo(p)n(ar)f Fp(returns)i(the)f(paren)o(t)g(of)h(v)o(ertex)e Fj(x)h Fp(or)h(the)f(v)m(alue)g Fo(nil)p Fp(,)h(if)f Fj(x)g Fp(is)h(the)f(ro)q(ot.)22 b(Its)14 b(complexit)o(y)0 718 y(is)i(O\(1\).)83 809 y Fl(function)e(par\(x)g(:)k Fd(V)9 b Fl(\))14 b(:)k Fd(V)166 859 y Fl(precondition)c(x)g Fc(6)p Fl(=)g(nil)166 909 y(result)h(x.paren)o(t) 83 958 y(end)f(par)0 1000 y Fh(2)4 1110 y Fk(Algorithm)j(12:)k(V)-5 b(ertex)18 b(is)g(the)g(Ro)r(ot)0 1160 y Fp(Bo)q(olean)g(function)f Fo(isR)n(o)n(ot)f Fp(c)o(hec)o(ks)g(if)h Fj(x)g Fp(is)h(the)f(ro)q(ot)h(of)g (the)g(con)o(tainmen)o(t)d(tree.)24 b(Its)18 b(complexit)n(y)d(is)0 1209 y(O\(1\).)83 1301 y Fl(function)f(isRo)q(ot\(x)f(:)18 b Fd(V)9 b Fl(\))14 b(:)k(b)q(o)q(olean)166 1351 y(precondition)c(x)g Fc(6)p Fl(=)g(nil)166 1400 y(result)h(par\(x\))f(=)g(nil)83 1450 y(end)g(isRo)q(ot)0 1492 y Fh(2)4 1602 y Fk(Algorithm)j(13:)k(V)-5 b(ertex)18 b(is)g(an)h(Ancestor)g(of)g(Another)f(V)-5 b(ertex)0 1652 y Fp(Bo)q(olean)17 b(function)f Fo(isA)o(nc)n(estor)g Fp(c)o(hec)o(ks)f(if)g Fj(x)h Fp(is)g(a)h(prop)q(er)g(ancestor)g(of)f Fj(y)r Fp(.)21 b(Its)16 b(complexit)o(y)d(is)j(O\(1\).)83 1743 y Fl(function)e(isAncestor\(x,y)g(:)k Fd(V)10 b Fl(\))k(:)k(b)q(o)q(olean)166 1793 y(precondition)c(x)g Fc(6)p Fl(=)g(nil)f Fc(^)g Fl(y)h Fc(6)p Fl(=)g(nil)166 1843 y(result)h(y)m(.hasAncestor\(x.id\))f Fc(6)p Fl(=)g(0)83 1892 y(end)g(isAncestor)0 1934 y Fh(2)4 2044 y Fk(Algorithm)j(14:)k(Lev)n(el)c(of)i(a)g(V)-5 b(ertex)0 2094 y Fp(F)l(unction)16 b Fo(level)j Fp(returns)d(the)g(lev)o(el)f(of)i(v)o (ertex)d Fj(x)j Fp(in)f(the)g(con)o(tainmen)o(t)e(tree)i(\()p Fo(level)p Fp(=0)j(for)e(the)f(ro)q(ot\).)0 2143 y(Its)g(complexit)o(y)d(is)j (O\(1\).)83 2235 y Fl(function)e(lev)o(el\(x)f(:)18 b Fd(V)10 b Fl(\))k(:)k(0)13 b(..)18 b(maxV)m(ertex)166 2285 y(precondition)c(x)g Fc(6)p Fl(=)g(nil)166 2334 y(result)h(x.n)o(umOfAncestors)83 2384 y(end)f(lev)o(el)0 2426 y Fh(2)4 2536 y Fk(Algorithm)j(15:)k(Num)n(b)r (er)c(of)i(Children)0 2586 y Fp(F)l(unction)d Fo(numOfChildr)n(en)h Fp(returns)f(the)g(n)o(um)o(b)q(er)f(of)h(c)o(hildren)f(of)h Fj(x)p Fp(.)21 b(Its)16 b(complexit)o(y)d(is)j(O\(1\).)932 2828 y(19)p eop %%Page: 20 20 20 19 bop 83 45 a Fl(function)14 b(n)o(umOfChildren\(x)f(:)18 b Fd(V)9 b Fl(\))14 b(:)k(0)c(..)j(maxV)m(ertex)166 95 y(precondition)d(x)g Fc(6)p Fl(=)g(nil)166 145 y(result)h(x.n)o(umOfChildren)83 195 y(end)f(n)o(umOfChildren)0 235 y Fh(2)4 345 y Fk(Algorithm)j(16:)k(Num)n (b)r(er)c(of)i(Outgoing)f(T)-5 b(ub)r(es)19 b(from)e(a)i(V)-5 b(ertex)18 b(to)g(Other)h(V)-5 b(ertices)0 395 y Fp(F)l(unction)17 b Fo(numOfOutgoingT)l(ub)o(es)j Fp(returns)e(the)f(n)o(um)o(b)q(er)f(of)j (tub)q(es)f(from)e Fj(x)i Fp(to)g(other)g(v)o(ertices.)24 b(Its)0 445 y(complexit)o(y)13 b(is)j(O\(1\).)83 535 y Fl(function)e(n)o (umOfOutgoingT)m(ub)q(es\(x)f(:)18 b Fd(V)9 b Fl(\))14 b(:)k(0)c(..)j(maxV)m (ertex)166 585 y(precondition)d(x)g Fc(6)p Fl(=)g(nil)166 635 y(result)h(x.n)o(umOfT)m(ub)q(esT)m(o)83 685 y(end)f(n)o(umOfOutgoingT)m(ub)q (es)0 725 y Fh(2)4 835 y Fk(Algorithm)j(17:)k(Num)n(b)r(er)c(of)i(Incoming)e (T)-5 b(ub)r(es)18 b(to)h(a)g(V)-5 b(ertex)18 b(from)f(Other)h(V)-5 b(ertices)0 885 y Fp(F)l(unction)17 b Fo(numOfInc)n(omingT)l(ub)n(es)i Fp(returns)f(the)f(n)o(um)o(b)q(er)f(of)i(tub)q(es)g(to)f Fj(x)h Fp(from)e(other)i(v)o(ertices.)23 b(Its)0 935 y(complexit)o(y)13 b(is)j(O\(1\).)83 1025 y Fl(function)e(n)o(umOfIncomingT)m(ub)q(es\(x)f(:)18 b Fd(V)9 b Fl(\))14 b(:)k(0)c(..)j(maxV)m(ertex)166 1075 y(precondition)d(x)g Fc(6)p Fl(=)g(nil)166 1125 y(result)h(x.n)o(umOfT)m(ub)q(esF)m(rom)83 1175 y(end)f(n)o(umOfIncomingT)m(ub)q(es)0 1215 y Fh(2)4 1325 y Fk(Algorithm)j(18:)k(T)-5 b(ub)r(e)19 b(Bet)n(w)n(een)f(t)n(w)n(o)i(V)-5 b(ertices)0 1375 y Fp(Bo)q(olean)17 b(function)f Fo(tub)n(e)h Fp(c)o(hec)o(ks)d(if)i(there)g(is)g(a)g(tub)q(e)h(b)q(et)o(w)o(een)e Fj(x)h Fp(and)h Fj(y)r Fp(.)k(Its)16 b(complexit)o(y)d(is)j(O\(1\).)83 1465 y Fl(function)e(tub)q(e\(x,y)g(:)k Fd(V)9 b Fl(\))14 b(:)k(b)q(o)q (olean)166 1515 y(precondition)c(x)g Fc(6)p Fl(=)g(nil)f Fc(^)g Fl(y)h Fc(6)p Fl(=)g(nil)166 1565 y(result)h(x.hasT)m(ub)q(eT)m(o\(y)m(.id\)) d Fc(6)p Fl(=)i(0)83 1615 y(end)g(tub)q(e)0 1655 y Fh(2)4 1765 y Fk(Algorithm)j(19:)k(Adding)e(a)g(T)-5 b(ub)r(e)0 1815 y Fp(Pro)q(cedure)12 b Fo(addT)l(ub)n(e)g Fp(up)q(dates)h(the)e(tub)q(e)h (lists)g(of)g Fj(x)f Fp(and)i Fj(y)g Fp(to)f(indicate)f(that)h(there)g(is)f (a)h(tub)q(e)g(b)q(et)o(w)o(een)0 1865 y(them.)20 b(Its)c(complexit)o(y)d(is) j(O\(1\).)83 1955 y Fl(pro)q(cedure)g(addT)m(ub)q(e\(x,y)d(:)18 b Fd(V)10 b Fl(\))166 2005 y(precondition)k(x)g Fc(6)p Fl(=)g(nil)f Fc(^)g Fl(y)h Fc(6)p Fl(=)g(nil)166 2055 y(if)f Fc(:)h Fl(tub)q(e\(x,y\))g (then)249 2105 y(x.n)o(umOfT)m(ub)q(esT)m(o)f Fc( )g Fl(x.n)o(umOfT)m(ub)q (esT)m(o)g(+)h(1)249 2155 y(x.hasT)m(ub)q(eT)m(o\(y)m(.id\))e Fc( )h Fl(x.n)o(umOfT)m(ub)q(esT)m(o)249 2204 y(x.tub)q(eT)m(o\(x.hasT)m(ub)q (eT)m(o\(y)m(.id\)\))f Fc( )h Fl(y)249 2254 y(y)m(.n)o(umOfT)m(ub)q(esF)m (rom)f Fc( )i Fl(y)m(.n)o(umOfT)m(ub)q(esF)m(rom)e(+)i(1)249 2304 y(y)m(.hasT)m(ub)q(eF)m(rom\(x.id\))e Fc( )h Fl(y)m(.n)o(umOfT)m(ub)q (esF)m(rom)249 2354 y(y)m(.tub)q(eF)m(rom\(y)m(.hasT)m(ub)q(eF)m (rom\(x.id\)\))e Fc( )j Fl(x)166 2404 y(end)g(if)83 2453 y(end)g(addT)m(ub)q (e)0 2494 y Fh(2)4 2604 y Fk(Algorithm)j(20:)k(Deleting)c(a)i(T)-5 b(ub)r(e)0 2654 y Fp(Pro)q(cedure)19 b Fo(deleteT)l(ub)n(e)i Fp(up)q(dates)f(the)e(tub)q(e)h(lists)f(of)h Fj(x)g Fp(and)g Fj(y)h Fp(to)g(indicate)d(that)i(there)g(is)f(no)h(tub)q(e)0 2704 y(b)q(et)o(w)o(een)c(them.)20 b(Its)c(complexit)o(y)d(is)j(O\(1\).)932 2828 y(20)p eop %%Page: 21 21 21 20 bop 83 45 a Fl(pro)q(cedure)16 b(deleteT)m(ub)q(e\(x,y)e(:)k Fd(V)10 b Fl(\))166 95 y(precondition)k(x)g Fc(6)p Fl(=)g(nil)f Fc(^)g Fl(y)h Fc(6)p Fl(=)g(nil)166 145 y(if)f(tub)q(e\(x,y\))h(then)249 195 y(x.tub)q(eT)m(o\(x.hasT)m(ub)q(eT)m(o\(y)m(.id\)\))e Fc( )h Fl(x.tub)q(eT)m(o\(x.n)o(umOfT)m(ub)q(esT)m(o\))249 244 y(x.hasT)m(ub)q(eT)m (o\(\(x.tub)q(eT)m(o\(x.n)o(umOfT)m(ub)q(esT)m(o\)\).id\))e Fc( )j Fl(x.hasT)m(ub)q(eT)m(o\(y)m(.id\))249 294 y(x.hasT)m(ub)q(eT)m(o\(y)m (.id\))e Fc( )h Fl(0)249 344 y(x.tub)q(eT)m(o\(x.n)o(umOfT)m(ub)q(esT)m(o\))g Fc( )g Fl(nil)249 394 y(x.n)o(umOfT)m(ub)q(esT)m(o)g Fc( )g Fl(x.n)o(umOfT)m(ub)q(esT)m(o)g({)g(1)249 444 y(y)m(.tub)q(eF)m(rom\(y)m (.hasT)m(ub)q(eF)m(rom\(x.id\)\))e Fc( )j Fl(y)m(.tub)q(eF)m(rom\(y)m(.n)o (umOfT)m(ub)q(esF)m(rom\))249 493 y(y)m(.hasT)m(ub)q(eF)m(rom\(\(y)m(.tub)q (eF)m(rom\(y)m(.n)o(umOfT)l(ub)q(esF)m(rom\)\).id\))d Fc( )i Fl(y)m(.hasT)m(ub)q(eF)m(rom\(x.id\))249 543 y(y)m(.hasT)m(ub)q(eF)m (rom\(x.id\))f Fc( )h Fl(0)249 593 y(y)m(.tub)q(eF)m(rom\(y)m(.n)o(umOfT)m (ub)q(esF)m(rom\))f Fc( )h Fl(nil)249 643 y(y)m(.n)o(umOfT)m(ub)q(esF)m(rom)f Fc( )i Fl(y)m(.n)o(umOfT)m(ub)q(esF)m(rom)e({)h(1)166 693 y(end)h(if)83 742 y(end)g(deleteT)m(ub)q(e)0 784 y Fh(2)4 894 y Fk(Algorithm)j(21:)k (Adding)e(a)g(Child)0 944 y Fp(Pro)q(cedure)d Fo(addChild)g Fp(\014rst)h(assigns)g Fj(x)f Fp(to)h(b)q(e)g(the)f(paren)o(t)g(of)g Fj(y)r Fp(.)21 b(It)16 b(then)g(up)q(dates)h(the)f(c)o(hild)f(lists)h(of)0 994 y Fj(x)i Fp(to)h(indicate)e(that)i Fj(y)h Fp(is)e(a)h(c)o(hild)e(of)i Fj(x)p Fp(.)28 b(Finally)l(,)17 b(it)h(creates)g(the)g(ancestor)h(lists)f(of) g(all)g(v)o(ertices)f(in)0 1043 y(the)f(subtree)g(ro)q(oted)h(at)g Fj(y)r Fp(.)j(The)d(complexit)o(y)c(of)j Fo(addChild)g Fp(is)g(O\()p Fi(j)p Fj(V)11 b Fi(j\002)p Fj(heig)r(ht)p Fp(\).)83 1135 y Fl(pro)q(cedure)16 b(addChild\(x,y)c(:)18 b Fd(V)10 b Fl(\))166 1185 y(precondition)k(y)g Fc(6)p Fl(=)g(nil)166 1234 y(assignP)o(aren)o(t\(y) m(,x\))166 1284 y(if)f(x)h Fc(6)p Fl(=)g(nil)f(then)249 1334 y(if)g(x.hasChild\(y)m(.id\))f(=)i(0)f(then)332 1384 y(x.n)o(umOfChildren)g Fc( )g Fl(x.n)o(umOfChildren)g(+)h(1)332 1434 y(x.hasChild\(y)m(.id\))e Fc( )h Fl(x.n)o(umOfChildren)332 1483 y(x.c)o(hild\(x.hasChild\(y)m(.id\)\))e Fc( )i Fl(y)332 1533 y(createAncestors)q(OfSubtre)q(e\(y\))249 1583 y(end)h(if)166 1633 y(end)g(if)83 1683 y(end)g(addChild)0 1724 y Fh(2)4 1834 y Fk(Algorithm)j(22:)k(Remo)n(ving)c(a)i(Child)0 1884 y Fp(Pro)q(cedure)f Fo(r)n(emoveChild)h Fp(up)q(dates)g(the)f(c)o(hild)f (lists)h(of)g Fj(x)g Fp(to)h(indicate)e(that)i Fj(y)g Fp(is)f(not)h(a)g(c)o (hild)e(of)h Fj(x)p Fp(.)0 1934 y(It)g(then)h(remo)o(v)o(es)d Fj(x)j Fp(from)e(b)q(eing)i(the)g(paren)o(t)f(of)h Fj(y)r Fp(.)28 b(Finally)l(,)18 b(it)g(creates)g(the)h(ancestor)g(lists)f(of)h(all)0 1984 y(v)o(ertices)14 b(in)i(the)g(subtree)g(ro)q(oted)h(at)g Fj(y)r Fp(.)k(The)16 b(complexit)o(y)d(of)k Fo(r)n(emoveChild)f Fp(is)g(O\()p Fi(j)p Fj(V)11 b Fi(j\002)p Fj(heig)r(ht)p Fp(\).)83 2075 y Fl(pro)q(cedure)16 b(remo)o(v)o(eChild\(x,y)c(:)18 b Fd(V)10 b Fl(\))166 2125 y(precondition)k(x)g Fc(6)p Fl(=)g(nil)f Fc(^)g Fl(y)h Fc(6)p Fl(=)g(nil)166 2175 y(if)f(x.hasChild\(y)m(.id\))f Fc(6)p Fl(=)i(0)f(then)249 2224 y(x.c)o(hild\(x.hasChild\(y)m(.id\)\))e Fc( )i Fl(x.c)o(hild\(x.n)o(umOfChildren\))249 2274 y(x.hasChild\(\(x.c)o (hild\(x.n)o(umOfChil)o(dren\)\).id\))f Fc( )h Fl(x.hasChild\(y)m(.id\))249 2324 y(x.hasChild\(y)m(.id\))f Fc( )h Fl(0)249 2374 y(x.c)o(hild\(x.n)o (umOfChildren\))f Fc( )h Fl(nil)249 2424 y(x.n)o(umOfChildren)g Fc( )g Fl(x.n)o(umOfChildren)g({)g(1)166 2473 y(end)h(if)166 2523 y(remo)o(v)o(eP)o(aren)o(t\(y)m(,x\))166 2573 y(createAncestors)q (OfSubtre)q(e\(y\))83 2623 y(end)g(remo)o(v)o(eChild)932 2828 y Fp(21)p eop %%Page: 22 22 22 21 bop 0 45 a Fh(2)4 155 y Fk(Algorithm)17 b(23:)k(Ith)e(Child)f(of)h(a)g (V)-5 b(ertex)0 205 y Fp(F)l(unction)17 b Fo(ithChild)g Fp(returns)g(the)g (ith)g(c)o(hild)f(of)i Fj(x)p Fp(.)23 b(This)18 b(function)f(is)g(useful)g (when)g(iterating)g(across)0 255 y(the)f(c)o(hildren)f(of)h Fj(x)p Fp(.)21 b(Its)16 b(complexit)o(y)d(is)j(O\(1\).)83 346 y Fl(function)e(ithChild\(x)e(:)18 b Fd(V)10 b Fl(,)j(i)h(:)k(1)13 b(..)18 b(maxV)m(ertex\))c(:)k Fd(V)166 396 y Fl(precondition)c(\(x)g Fc(6)p Fl(=)g(nil\))f Fc(^)h Fl(\(1)f Fc(\024)h Fl(i)g Fc(\024)g Fl(n)o(umOfChildren\(x\)\))166 445 y(result)h(x.c)o(hild\(i\))83 495 y(end)f(ithChild)0 537 y Fh(2)4 647 y Fk(Algorithm)j(24:)k(Ith)e (Outgoing)f(T)-5 b(ub)r(e)18 b(F)-5 b(rom)18 b(a)h(V)-5 b(ertex)0 697 y Fp(F)l(unction)21 b Fo(vertexOfIthOutgoingT)l(ub)o(e)j Fp(returns)d(the)g(ith)f(tub)q(e)i(from)e Fj(x)g Fp(to)i(another)f(v)o (ertex.)34 b(This)0 746 y(function)24 b(is)f(useful)g(when)h(iterating)f (across)i(all)e(of)h(the)g(tub)q(es)g(from)f Fj(x)g Fp(to)h(other)g(v)o (ertices.)42 b(Its)0 796 y(complexit)o(y)13 b(is)j(O\(1\).)83 888 y Fl(function)e(v)o(ertexOfIthOutgoingT)m(ub)q(e\(x)g(:)k Fd(V)10 b Fl(,)j(i)g(:)18 b(1)c(..)j(maxV)m(ertex\))e(:)j Fd(V)166 937 y Fl(precondition)c(\(x)g Fc(6)p Fl(=)g(nil\))f Fc(^)h Fl(\(1)f Fc(\024)h Fl(i)g Fc(\024)g Fl(n)o(umOfOutgoingT)m(ub)q(es\(x\)\))166 987 y(result)h(x.tub)q(eT)m(o\(i\))83 1037 y(end)f(v)o(ertexOfIthOutgoingT)m (ub)q(e)0 1079 y Fh(2)4 1189 y Fk(Algorithm)j(25:)k(Ith)e(Incoming)e(T)-5 b(ub)r(e)18 b(to)h(a)f(V)-5 b(ertex)0 1238 y Fp(F)l(unction)20 b Fo(vertexOfIthInc)n(omingT)l(ub)n(e)k Fp(returns)d(the)f(ith)h(tub)q(e)g (to)g Fj(x)f Fp(from)g(another)h(v)o(ertex.)33 b(This)0 1288 y(function)24 b(is)f(useful)g(when)h(iterating)f(across)i(all)e(of)h(the)g (tub)q(es)g(to)g Fj(x)f Fp(from)g(other)h(v)o(ertices.)42 b(Its)0 1338 y(complexit)o(y)13 b(is)j(O\(1\).)83 1429 y Fl(function)e(v)o (ertexOfIthIncomingT)m(ub)q(e\(x)g(:)k Fd(V)9 b Fl(,)14 b(i)f(:)18 b(1)c(..)j(maxV)m(ertex\))d(:)k Fd(V)166 1479 y Fl(precondition)c(\(x)g Fc(6)p Fl(=)g(nil\))f Fc(^)h Fl(\(1)f Fc(\024)h Fl(i)g Fc(\024)g Fl(n)o(umOfIncomingT)m(ub)q(es\(x\)\))166 1529 y(result)h(x.tub)q(eF)m (rom\(i\))83 1579 y(end)f(v)o(ertexOfIthIncomingT)m(ub)q(e)0 1620 y Fh(2)0 1765 y Ff(A.1)69 b(Supp)r(orting)25 b(Primitiv)n(e)e(Op)r (erations)0 1857 y Fp(The)d(follo)o(wing)g(supp)q(orting)h(op)q(erations)g (are)f(used)g(b)o(y)g(the)g(primitiv)o(e)c(op)q(erations)21 b(de\014ned)f(previ-)0 1917 y(ously)l(.)4 2027 y Fk(Algorithm)d(26:)k(Assign) e(a)g(P)n(aren)n(t)g(to)g(a)g(V)-5 b(ertex)0 2077 y Fp(Pro)q(cedure)14 b Fo(assignPar)n(ent)p Fp(,)h(used)g(only)f(b)o(y)g Fo(addChild)p Fp(,)g(assigns)h(v)o(ertex)e Fj(p)i Fp(to)g(b)q(e)f(the)g(paren)o(t)g(of)h(v) o(ertex)0 2127 y Fj(x)p Fp(.)21 b(Its)16 b(complexit)o(y)d(is)j(O\(1\).)83 2218 y Fl(pro)q(cedure)g(assignP)o(aren)o(t\(x,p)e(:)k Fd(V)9 b Fl(\))166 2268 y(precondition)14 b(x)g Fc(6)p Fl(=)g(nil)166 2318 y(result)h(x.paren)o(t)f Fc( )f Fl(p)83 2368 y(end)h(assignP)o(aren)o(t) 0 2409 y Fh(2)4 2519 y Fk(Algorithm)j(27:)k(Initializing)c(Ancestors)0 2569 y Fp(Pro)q(cedure)e Fo(initA)o(nc)n(estors)h Fp(resets)e(the)h(ancestor) g(list)g(of)g Fj(x)p Fp(.)20 b(It)15 b(is)f(only)h(used)g(b)o(y)g Fo(cr)n(e)n(ateA)o(nc)n(estorsOf-)0 2619 y(Subtr)n(e)n(e)i Fp(and)g(has)g(complexit)o(y)c(O\()p Fj(heig)r(ht)p Fp(\).)932 2828 y(22)p eop %%Page: 23 23 23 22 bop 83 45 a Fl(pro)q(cedure)16 b(initAncestors\(x)f(:)j Fd(V)9 b Fl(\))166 95 y(for)14 b(i)f(:)18 b(1)c(..)j(x.n)o(umOfAncestors)249 145 y(x.hasAncestor\(x.ancestor\(i\)\))f Fc( )d Fl(0)166 195 y(end)h(for)166 244 y(x.n)o(umOfAncestors)h Fc( )e Fl(0)83 294 y(ens)i(initAncestors)0 386 y Fh(2)4 495 y Fk(Algorithm)i(28:)k(Creating) e(Ancestors)0 545 y Fp(Pro)q(cedure)f Fo(cr)n(e)n(ateA)o(nc)n(estors)h Fp(creates)f(a)h(list)e(of)i Fj(x)p Fp('s)f(ancestors.)28 b(It)18 b(is)g(only)g(used)h(b)o(y)f Fo(cr)n(e)n(ateA)o(nc)n(es-)0 595 y(torsOfSubtr)n(e)n(e)f Fp(and)g(has)g(complexit)n(y)c(O\()p Fj(heig)r(ht)p Fp(\).)83 686 y Fl(pro)q(cedure)j(createAncestors\(x)h(:)h Fd(V)10 b Fl(\))166 736 y(precondition)k(x)g Fc(6)p Fl(=)g(nil)166 786 y(p)g Fc( )f Fl(x)166 836 y(lo)q(op)249 886 y(exit)h(when)g(isRo)q (ot\(p\))249 936 y(p)g Fc( )f Fl(par\(p\))249 985 y(x.n)o(umOfAncestors)i Fc( )e Fl(x.n)o(umOfAncestors)i(+)f(1)249 1035 y(x.hasAncestor\(p.id\))h Fc( )e Fl(x.n)o(umOfAncestors)249 1085 y(x.ancestor\(x.hasAncestor\(p.id\)\)) j Fc( )d Fl(p)166 1135 y(end)h(lo)q(op)83 1185 y(end)g(createAncest)q(ors)0 1226 y Fh(2)4 1336 y Fk(Algorithm)j(29:)k(Creating)e(the)f(Ancestors)g(of)h (a)g(Subtree)0 1386 y Fp(Pro)q(cedure)d Fo(cr)n(e)n(ateA)o(nc)n (estorsOfSubtr)n(e)n(e)i Fp(creates)e(the)g(ancestor)g(list)g(of)h(eac)o(h)e (v)o(ertex)g(of)i(the)f(subtree)0 1436 y(ro)q(oted)h(at)g Fj(x)p Fp(.)k(Its)16 b(complexit)o(y)d(is)j(O\()p Fi(j)p Fj(V)11 b Fi(j\002)p Fj(heig)r(ht)p Fp(\).)83 1527 y Fl(pro)q(cedure)16 b(createAncestorsO)q(fSubtree)q(\(x)h(:)h Fd(V)9 b Fl(\))166 1577 y(precondition)14 b(x)g Fc(6)p Fl(=)g(nil)166 1627 y(initAncestors\(x\)) 166 1676 y(createAncestors)q(\(x\))166 1726 y(for)g(i)f(:)18 b(1)c(..)j(n)o(umOfChildren\(x\))249 1776 y(createAncestors)q(OfSubtre)q (e\(ithChild\(x,i\)\))166 1826 y(end)d(end)83 1876 y(end)g(createAncest)q (orsOfSubtre)q(e)0 1917 y Fh(2)0 2084 y Fq(References)24 2193 y Fp([1])24 b Fa(Cla)o(us,)k(V.,)h(Ehrig,)g(H.,)f(and)f(R)o(ozenber)o(g,)g (G.)46 b Fp(In)24 b Fo(Gr)n(aph-Gr)n(ammar)o(s)e(and)j(Their)100 2254 y(Applic)n(ation)h(to)e(Computer)h(Scienc)n(e)i(and)d(Biolo)n(gy)29 b Fp(\(Berlin,)24 b(German)o(y)l(,)g(1978\),)j(Springer{)100 2314 y(V)l(erlag.)24 2415 y([2])d Fa(Consens,)f(M.,)h(Eigler,)g(F.,)h(Hasan,) d(M.,)i(Mendelzon,)f(A.,)h(Noik,)f(M.,)h(R)l(yman,)100 2476 y(A.,)18 b(and)f(Vist)m(a,)g(D.)k Fp(Arc)o(hitecture)13 b(and)k(Applications) d(of)i(the)g(Hy)1408 2458 y Fn(+)1452 2476 y Fp(Visualization)f(System.)100 2536 y Fo(IBM)i(Systems)h(Journal)g(33)p Fp(,)d(3)i(\(1994\).)24 2638 y([3])24 b Fa(Cooprider,)17 b(L.)g(W.)h Fp(The)d(Represen)o(tation)f(of) h(F)l(amilies)d(of)i(Soft)o(w)o(are)h(Systems.)i(T)l(ec)o(h.)c(Rep.)100 2698 y(CMU{CS{79{116,)19 b(Computer)c(Science)g(Departmen)o(t)g(CMU,)g(April) g(1979.)932 2828 y(23)p eop %%Page: 24 24 24 23 bop 24 45 a Fp([4])24 b Fa(Dean,)17 b(T.)h(R.,)f(and)g(Lamb,)g(D.)h(A.) h Fp(A)c(Theory)g(Mo)q(del)f(Core)i(for)f(Mo)q(dule)g(In)o(terconnection)100 105 y(Languages.)24 b(In)16 b Fo(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)h(the)h (1994)f(IBM)g(CASCON)i(Confer)n(enc)n(e)h Fp(\(No)o(v)o(em)o(b)q(er)14 b(1994\).)24 207 y([5])24 b Fa(DeRemer,)56 b(F.,)g(and)48 b(Kr)o(on,)54 b(H.)48 b(H.)104 b Fp(Programming{in{the{Large)44 b(V)l(ersus)100 267 y(Programming{in{the{Small.)21 b Fo(IEEE)d(T)l(r)n(ansactions)g(on)g (Softwar)n(e)h(Engine)n(ering)h(2)p Fp(,)c(2)i(\(June)100 327 y(1976\),)g(80{86.)24 429 y([6])24 b Fa(Fenton,)e(N.,)g(and)g(Hill,)f(G.)30 b Fo(Systems)21 b(Construction)g(and)f(A)o(nalysis:)28 b(A)20 b(Mathematic)n(al)100 489 y(and)e(L)n(o)n(gic)n(al)e(F)l(r)n(amework)p Fp(.)21 b(McGra)o(w-Hill)15 b(In)o(ternational,)g(1993.)24 591 y([7])24 b Fa(Garlan,)18 b(D.,)i(and)e(Sha)l(w,)h(M.)k Fp(Arc)o(hitectures)14 b(for)j(Soft)o(w)o(are)g(Systems.)k(In)c Fo(tutorial)h(given)100 651 y(at)e(A)o(CM)f(SIGSOFT)h('93:)21 b(Symp)n(osium)15 b(on)h(the)g(F)l(oundations)h(of)e(Softwar)n(e)h(Engine)n (ering)k Fp(\(Los)100 711 y(Angeles,)15 b(California,)h(Decem)o(b)q(er)e (1993\).)24 813 y([8])24 b Fa(Hol)m(t,)19 b(R.)g(C.,)h(and)f(Cord)o(y,)g(J.)h (R.)j Fp(The)17 b(T)l(uring)g(Programming)f(Language.)25 b Fo(Communi-)100 873 y(c)n(ations)18 b(of)f(the)h(A)o(CM)f(31)p Fp(,)f(12)h(\(Decem)o(b)q(er)d(1988\),)j(1410{1423.)24 975 y([9])24 b Fa(Hol)m(t,)d(R.)g(C.,)h(and)f(Mancoridis,)g(S.)29 b Fp(A)18 b(F)l(ramew)o(ork)f(F)l(or)i(Sp)q(ecifying)f(and)h(Visualizing)100 1035 y(Arc)o(hitectural)f(Designs.)31 b(T)l(ec)o(h.)18 b(Rep.)h(CSRI-300,)i (Computer)e(Science)f(Researc)o(h)h(Institute,)100 1095 y(Univ)o(ersit)o(y)14 b(of)i(T)l(oron)o(to,)h(June)f(1994.)0 1197 y([10])24 b Fa(Hol)m(t,)h(R.)g (C.,)h(Penny,)f(D.)g(A.,)g(and)f(Mancoridis,)i(S.)38 b Fp(Multicolour)21 b(Programming)100 1257 y(and)i(Metamorphic)e(Programming:)33 b(Ob)s(ject)21 b(Orien)o(ted)h(Programming{in{the{Large.)40 b(In)100 1317 y Fo(Pr)n(o)n(c)n(e)n(e)n(dings)17 b(of)g(the)h(1992)f(IBM)g (CASCON)h(Confer)n(enc)n(e)j Fp(\(No)o(v)o(em)o(b)q(er)13 b(1992\),)18 b(pp.)e(43{58.)0 1419 y([11])24 b Fa(Kreo)o(wski,)d(H.)28 b Fp(A)18 b(Pumping)g(Lemma)f(for)h(Con)o(text-F)l(ree)g(Graph)i(Languages.)30 b(In)19 b Fo(Gr)n(aph-)100 1479 y(Gr)n(ammars)12 b(and)i(Their)g(Applic)n (ation)h(to)f(Computer)g(Scienc)n(e)i(and)e(Biolo)n(gy)j Fp(\(Berlin,)12 b(German)o(y)l(,)100 1539 y(1978\),)18 b(Springer{V)l(erlag,)d(pp.)h (270{283.)0 1641 y([12])24 b Fa(Mendelzon,)f(A.)g(O.)35 b Fp(Declarativ)o(e) 19 b(Database)j(Visualization:)29 b(Recen)o(t)19 b(P)o(ap)q(ers)i(from)f(the) 100 1701 y(Hy+/GraphLog)c(Pro)s(ject.)h(T)l(ec)o(h.)c(Rep.)g(CSRI-285,)j (Computer)d(Science)f(Researc)o(h)i(Institute,)100 1762 y(Univ)o(ersit)o(y)g (of)i(T)l(oron)o(to,)h(1993.)0 1863 y([13])24 b Fa(Penny,)i(D.)g(A.)40 b Fo(The)24 b(Softwar)n(e)f(L)n(andsc)n(ap)n(e:)33 b(A)24 b(Visual)g(F)l (ormalism)e(for)h(Pr)n(o)n(gr)n(amming{)100 1923 y(in{the{L)n(ar)n(ge)p Fp(.)28 b(PhD)20 b(thesis,)e(Departmen)o(t)g(of)h(Computer)e(Science,)h(Univ) o(ersit)o(y)e(of)j(T)l(oron)o(to,)100 1984 y(1992.)0 2085 y([14])24 b Fa(Perr)m(y,)18 b(D.)i(E.,)e(and)h(W)o(olf,)e(A.)i(L.)j Fp(F)l(oundations)c (for)e(the)h(Study)f(of)h(Soft)o(w)o(are)f(Arc)o(hitec-)100 2146 y(tures.)21 b Fo(Softwar)n(e)d(Engine)n(ering)h(Notes)f(17)p Fp(,)e(4)h(\(Octob)q(er)f(1992\),)h(40{49.)0 2247 y([15])24 b Fa(Schw)l(anke,)f(R.)g(W.,)h(Al)m(tucher,)f(R.)g(Z.,)h(and)e(Pla)m(toff,)h (M.)g(A.)33 b Fp(Disco)o(v)o(ering,)20 b(Vi-)100 2307 y(sualizing,)i(and)f (Con)o(trolling)g(Soft)o(w)o(are)g(Structure.)35 b(In)21 b Fo(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)g(the)i(Fifth)e(Interna-)100 2368 y(tional)14 b(Workshop)e(on)h(Softwar)n(e)g(Sp)n(e)n(ci\014c)n(ation)g (and)g(Design)j Fp(\(Pittsburgh,)d(P)o(ennsylv)m(ania,)e(Ma)o(y)100 2428 y(1989\),)18 b(pp.)e(147{150.)0 2530 y([16])24 b Fa(Tichy,)14 b(W.)g(F.)f Fp(Soft)o(w)o(are)e(Dev)o(elopmen)o(t)d(Con)o(trol)k(Based)f(on)g (System)f(Structure)g(Description.)100 2590 y(T)l(ec)o(h.)15 b(Rep.)h(CMU{CS{80{120,)j(Computer)c(Science)g(Departmen)o(t)f(CMU,)h(Jan)o (uary)i(1980.)932 2828 y(24)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF