Subject: dynamic processes chapter

From: Rusty Lusk <[email-masked]>
Date: Tue, 17 Oct 1995 14:51:42 -0500

Here is the draft of the dynamic processes chapter.  Changes from last time
(extensive) are highlighted at the beginning.

Rusty, Bill S., and Al

%!PS-Adobe-2.0
%%Creator: dvips 5.528 Copyright 1986, 1994 Radical Eye Software
%%Title: temp.dvi
%%CreationDate: Tue Oct 17 14:16:54 1995
%%Pages: 20
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips -o temp.ps temp
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource:  TeX output 1995.10.17:1416
%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR matrix currentmatrix dup dup 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
TeXDict begin 40258431 52099146 1000 300 300
(/tmp_mnt/Net/antireo/antireo6/lusk/mpi2/report2/temp.dvi)
@start /Fa 4 112 df<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2
C0E2C0E261E462643C380F127B9115>97 D<01F007080C08181C3838300070007000E000
E000E000E000E000E008E010602030C01F000E127B9113>99 D<1F800380038007000700
070007000E000E000E000E001C001C001C001C0038003800380038007000700070007000
E400E400E400E40068003800091D7C9C0B>108 D<01E007180C0C180C380C300E700E70
0EE01CE01CE01CE018E038E030E06060C031801E000F127B9115>111
D E /Fb 37 122 df<00E001C0038007000E000E001C001C003800380038007000700070
007000E000E000E000E000E000E000E000E000E000E000E000E000700070007000700038
00380038001C001C000E000E000700038001C000E00B2A7E9E10>40
D<E000700038001C000E000E000700070003800380038001C001C001C001C000E000E000
E000E000E000E000E000E000E000E000E000E001C001C001C001C0038003800380070007
000E000E001C0038007000E0000B2A7E9E10>I<E0E0E060404040C003087C820C>44
D<001C0000003E0000003E0000002E0000006700000067000000E7800000C7800000C380
0001C3C0000183C0000181C0000381E0000381E0000700F0000700F0000600F0000E0078
000FFFF8000FFFF8001C003C001C003C0018003C0038001E0038001E0070001F0070000F
0070000F00E0000780191D7F9C1C>65 D<003FC000FFF003C0F00780300F00001E00003C
00003C0000780000780000780000F00000F00000F00000F00000F00000F00000F00000F0
0000F000007800007800007800003C00003C00001E00000F000807801803C07800FFF000
3F80151F7D9D1B>67 D<FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000FFFF80FFFF80F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000FFFFC0FFFFC0121D7C9C19>69
D<FFFF80FFFF80F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000FFFF00FFFF00F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000111D7C9C18>I<003F8001FFF003C0F80780380F
00181E00003C00003C0000780000780000780000F00000F00000F00000F00000F00000F0
0000F007F8F007F8F000387800387800387800383C00383C00381E00380F003807803803
C0F801FFF0003F80151F7D9D1C>I<F000F0F000F0F000F0F000F0F000F0F000F0F000F0
F000F0F000F0F000F0F000F0F000F0F000F0FFFFF0FFFFF0F000F0F000F0F000F0F000F0
F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0141D7C9C1D>
I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0041D7C9C0C>
I<F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F0
00F000F000F000F000F000F000F000F000F000FFFEFFFE0F1D7C9C16>76
D<FC0007E0FC0007E0FC0007E0EE000DE0EE000DE0EE000DE0E70019E0E70019E0E70019
E0E78039E0E38031E0E3C071E0E3C071E0E1C061E0E1C061E0E1E0E1E0E1E0E1E0E0E0C1
E0E0F1C1E0E07181E0E07181E0E07181E0E03B01E0E03B01E0E03B01E0E01E01E0E01E01
E0E01E01E0E00001E01B1D7C9C24>I<FC0070FC0070FE0070EE0070EF0070E70070E700
70E78070E38070E3C070E3C070E1E070E1E070E0E070E0F070E07070E07870E07870E03C
70E03C70E01C70E01E70E00E70E00E70E00F70E00770E007F0E003F0E003F0141D7C9C1D
>I<003F000001FFE00003FFF00007C0F8000F807C001E001E003E001F003C000F007800
07807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000
03C0F00003C0F80007C078000780780007807C000F803C000F003E001F001F003E000F80
7C0007C0F80003FFF00001FFE000003F00001A1F7E9D1F>I<FFFC00FFFF00F00F80F003
C0F001E0F000F0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00FC0FFFF80FFFE
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000141D7C9C1B>I<FFF800FFFF00F00F80F003C0F001E0F000F0F000F0F000F0F0
00F0F000F0F001E0F003E0F00FC0FFFF80FFFF00FFF800F03C00F01C00F01E00F00F00F0
0F00F00780F00780F003C0F003C0F001E0F000F0F000F0F00078151D7C9C1B>82
D<03F8000FFE001C0F00380700700300600000E00000E00000E00000E00000F000007800
007F00003FE0001FFC0007FE0001FF00001F800007800003C00003C00001C00001C00001
C00001C0C00180E00380F007007C0E001FFC0007F000121F7E9D17>I<FFFFFF80FFFFFF
80001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00191D7F9C1C>I<F00070F00070F00070F00070F00070F00070F00070F00070F00070F0
0070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F0
0070F000707800E07800E03C01C01E03800F078007FE0001F800141E7C9C1D>I<F00003
80F00003807800070078000700780007003C000E003C000E003E000E001E001C001E001C
000F0038000F0038000F003800078070000780700003C0600003C0E00003C0E00001E0C0
0001E1C00001E1C00000F1800000F380000073000000730000007B0000003E0000003E00
00001C0000191D7F9C1C>I<F80001E07C0001C03E0003801E0007801F0007000F800E00
07801E0007C01C0003E03C0001E0380001F0700000F0F0000078E000007DC000003FC000
001F8000001F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000000F00001B1D809C1C>89
D<7FFFF07FFFF00001E00003E00003C00007C0000780000F00001F00001E00003E00003C
0000780000F80000F00001F00001E00003C00007C0000780000F80000F00001E00003E00
003C00007C0000780000FFFFF0FFFFF0141D7E9C19>I<0FC03FF07FF87038401C001C00
1C00FC0FFC3FFC781CE01CE01CE01CF07C7FFC7FDC3F1C0E127E9114>97
D<07E00FF81FFC3C1C70047000E000E000E000E000E000E000700070043C1C1FFC0FF807
E00E127E9112>99 D<07C01FE03FF078787018601CFFFCFFFCFFFCE000E000E000700070
043C1C3FFC1FF807E00E127E9112>101 D<E000E000E000E000E000E000E000E000E000
E000E000E3E0EFF0FFF8F83CF01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C
E01CE01C0E1D7D9C15>104 D<F0F0F0F000000000000000707070707070707070707070
707070707070041D7E9C0A>I<E3F03F00EFF8FF80FFFDFFC0F81F81E0F00F00E0E00E00
E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00
E0E00E00E0E00E00E0E00E00E01B127D9122>109 D<E3E0EFF0FFF8F83CF01CE01CE01C
E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C0E127D9115>I<03F0000FFC001F
FE003C0F00780780700380E001C0E001C0E001C0E001C0E001C0F003C07003807807803C
0F001FFE000FFC0003F00012127F9115>I<078E1FEE3FFE7C3E781E700EE00EE00EE00E
E00EE00EE00EF00E701E7C3E3FFE1FEE0F8E000E000E000E000E000E000E000E000E0F1A
7E9115>113 D<E380E780EF80FC00F800F000F000E000E000E000E000E000E000E000E0
00E000E000E00009127D910E>I<1FC03FF07FF0F030E000E000F0007F003FC01FE000F0
003800388038F078FFF07FE01FC00D127F9110>I<1C001C001C001C001C001C00FFE0FF
E01C001C001C001C001C001C001C001C001C001C001C001C001C201FF00FF007C00C187F
970F>I<E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE07CFFFC
7FDC3F1C0E127D9115>I<E03E0380E03E0380E03E038070370300707707007077070070
73070038E38E0038E38E0038E38E0018E18C001CC1CC001DC1DC001DC1DC000D80D8000F
80F8000F80F8000780700019127F911C>119 D<E007E007700E700E780E381C381C1C18
1C380C380E300E7006700760036003C001C001C001800180030003000700FE00FC00F800
101A7F9113>121 D E /Fc 17 119 df<1FE0003FF0007FF800783C00300E00000E0000
0E0003FE001FFE003E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013
127E9116>97 D<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F000700778073E
0E1FFC0FF803F010127D9116>99 D<003F00007F00003F00000700000700000700000700
03C7000FF7001FFF003C1F00780F00700700E00700E00700E00700E00700E00700E00700
700F00700F003C1F001FFFE00FE7F007C7E014197F9816>I<001F00007F8000FF8001E7
8001C30001C00001C0007FFF00FFFF00FFFF0001C00001C00001C00001C00001C00001C0
0001C00001C00001C00001C00001C00001C0003FFE007FFF003FFE0011197F9816>102
D<03E3C007F7E00FFFE01C1CC0380E00380E00380E00380E00380E001C1C000FF8001FF0
001BE0003800001800001FFC001FFF003FFF807803C0E000E0E000E0E000E0E000E07001
C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000FE00007E00000E00000E00000E
00000E00000E3C000EFE000FFF000F87800F03800E03800E03800E03800E03800E03800E
03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816>I<018003C003C0
018000000000000000007FC07FC07FC001C001C001C001C001C001C001C001C001C001C0
01C001C07FFFFFFF7FFF101A7D9916>I<7E0000FE00007E00000E00000E00000E00000E
00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0000FF0000FF8000FBC000F
1E000E0E000E07000E07807F87F0FFCFF07F87F01419809816>107
D<F9C380FFEFC0FFFFE03C78E03C78E03870E03870E03870E03870E03870E03870E03870
E03870E03870E03870E0FE7CF8FE7CF8FE3C781512809116>109
D<7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E03800E03800E03
800E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C
1E00780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E001F
FC000FF80003E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E0070
0E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E0000
0E00000E00000E00000E00000E00007FC000FFE0007FC000141B809116>I<FF0FC0FF3F
E0FF7FE007F04007C0000780000780000700000700000700000700000700000700000700
00070000FFFC00FFFC00FFFC0013127F9116>114 D<0FEC3FFC7FFCF03CE01CE01C7000
7F801FF007F8003C600EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<03000007000007
00000700000700007FFF00FFFF00FFFF0007000007000007000007000007000007000007
000007010007038007038007038007870003FE0001FC0000F80011177F9616>I<7E1F80
FE3F807E1F800E03800E03800E03800E03800E03800E03800E03800E03800E03800E0380
0E03800E0F800FFFF007FBF803E3F01512809116>I<7F1FC0FF1FE07F1FC01C07001E0F
000E0E000E0E000E0E00071C00071C00071C00071C0003B80003B80003B80001F00001F0
0000E00013127F9116>I E /Fd 66 124 df<007E1F0001C1B1800303E3C00703C3C00E
03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E
01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E
01C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C18>11
D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E0000FFFF
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C00703C00E
01C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F
CFF8151D809C17>I<6060F0F0F8F86868080808080808101010102020404080800D0C7F
9C15>34 D<0F0000C0188000C030600380703807006027FB00E0100600E0100C00E0100C
00E0101800E0101800E0103000E0106000602060007020C00030418000188180000F0303
C00006062000060C10000C1C08001818080018380400303804006038040060380400C038
0400C03804018038040300180803001C0806000C100C000620040003C01E217E9E23>37
D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C0018
001800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E0
00E000600060006000700030003000180018000C000C00060002000100008000400A2A7D
9E10>I<800040002000100018000C000C000600060003000300038001800180018001C0
01C001C001C001C001C001C001C001C001C001C001C00180018001800380030003000600
06000C000C00180010002000400080000A2A7E9E10>I<60F0F070101010102020408004
0C7C830C>44 D<FFE0FFE00B0280890E>I<60F0F06004047C830C>I<0001000300060006
0006000C000C000C0018001800180030003000300060006000C000C000C0018001800180
030003000300060006000C000C000C00180018001800300030003000600060006000C000
C00010297E9E15>I<03C00C301818300C300C700E60066006E007E007E007E007E007E0
07E007E007E007E007E007E007E00760066006700E300C300C18180C3007E0101D7E9B15
>I<03C00C301818300C700C600EE006E006E007E007E007E007E0076007700F300F1817
0C2707C700060006000E300C780C78187010203030C00F80101D7E9B15>57
D<60F0F0600000000000000000000060F0F06004127C910C>I<0FE03038401CE00EF00E
F00EF00E000C001C0030006000C000800180010001000100010001000100000000000000
0000000003000780078003000F1D7E9C14>63 D<000600000006000000060000000F0000
000F0000000F00000017800000178000001780000023C0000023C0000023C0000041E000
0041E0000041E0000080F0000080F0000180F8000100780001FFF80003007C0002003C00
02003C0006003E0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C1F>65
D<FFFFC00F00F00F00380F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F00
780F01F00FFFE00F00780F003C0F001E0F000E0F000F0F000F0F000F0F000F0F000F0F00
1E0F001E0F003C0F0078FFFFE0181C7E9B1D>I<001F808000E061800180198007000780
0E0003801C0003801C00018038000180780000807800008070000080F0000000F0000000
F0000000F0000000F0000000F0000000F0000000F0000000700000807800008078000080
380000801C0001001C0001000E000200070004000180080000E03000001FC000191E7E9C
1E>I<FFFFC0000F00F0000F003C000F000E000F0007000F0007000F0003800F0003C00F
0001C00F0001C00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F
0001E00F0001C00F0001C00F0003C00F0003800F0007800F0007000F000E000F001C000F
007000FFFFC0001B1C7E9B20>I<FFFFFC0F003C0F000C0F00040F00040F00060F00020F
00020F02020F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02010F
00010F00020F00020F00020F00060F00060F000C0F003CFFFFFC181C7E9B1C>I<FFFFF8
0F00780F00180F00080F00080F000C0F00040F00040F02040F02000F02000F02000F0600
0FFE000F06000F02000F02000F02000F02000F00000F00000F00000F00000F00000F0000
0F00000F8000FFF800161C7E9B1B>I<001F808000E0618001801980070007800E000380
1C0003801C00018038000180780000807800008070000080F0000000F0000000F0000000
F0000000F0000000F0000000F000FFF0F0000F8070000780780007807800078038000780
1C0007801C0007800E00078007000B800180118000E06080001F80001C1E7E9C21>I<FF
F3FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F
003C000F003C000F003C000F003C000FFFFC000F003C000F003C000F003C000F003C000F
003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00FF
F3FFC01A1C7E9B1F>I<FFF00F000F000F000F000F000F000F000F000F000F000F000F00
0F000F000F000F000F000F000F000F000F000F000F000F000F000F00FFF00C1C7F9B0F>
I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
000F00000F00000F00000F00000F00000F00000F00080F00080F00080F00180F00180F00
100F00300F00700F01F0FFFFF0151C7E9B1A>76 D<FF8000FF800F8000F8000F8000F800
0BC00178000BC00178000BC001780009E002780009E002780008F004780008F004780008
F0047800087808780008780878000878087800083C107800083C107800083C107800081E
207800081E207800081E207800080F407800080F40780008078078000807807800080780
780008030078001C03007800FF8307FF80211C7E9B26>I<FF007FC00F800E000F800400
0BC0040009E0040009E0040008F0040008F8040008780400083C0400083C0400081E0400
080F0400080F0400080784000807C4000803C4000801E4000801E4000800F40008007C00
08007C0008003C0008003C0008001C0008000C001C000C00FF8004001A1C7E9B1F>I<00
3F800000E0E0000380380007001C000E000E001C0007003C00078038000380780003C078
0003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F0
0001E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C0003
80380000E0E000003F80001B1E7E9C20>I<FFFF800F00E00F00780F003C0F001C0F001E
0F001E0F001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F00000F0000
0F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF000171C7E9B1C>
I<FFFF00000F01E0000F0078000F003C000F001C000F001E000F001E000F001E000F001E
000F001C000F003C000F0078000F01E0000FFF00000F03C0000F00E0000F00F0000F0078
000F0078000F0078000F0078000F0078000F0078000F0078100F0078100F0038100F003C
20FFF01C20000007C01C1D7E9B1F>82 D<07E0801C1980300580700380600180E00180E0
0080E00080E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F8000
07C00003C00001C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F80012
1E7E9C17>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F
0020800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000001F800003FFFC001B1C7F9B1E>I<FFF07FC00F000E000F0004000F0004000F0004
000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004
000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F000400070008
0007800800038010000180100000C020000070C000001F00001A1D7E9B1F>I<FFE00FF0
1F0003C00F0001800F0001000F800300078002000780020003C0040003C0040003C00400
01E0080001E0080001F0080000F0100000F0100000F830000078200000782000003C4000
003C4000003C4000001E8000001E8000001F8000000F0000000F00000006000000060000
000600001C1D7F9B1F>I<FFE0FFE0FF1F001F003C1E001E00180F001F00100F001F0010
0F001F001007801F00200780278020078027802003C027804003C043C04003C043C04003
E043C04001E081E08001E081E08001E081E08000F100F10000F100F10000F100F1000079
00FA00007A007A00007A007A00003E007C00003C003C00003C003C00003C003C00001800
180000180018000018001800281D7F9B2B>I<FFF007FC0F8001E00780008007C0018003
C0010003E0020001F0020000F0040000F8040000780800007C1800003C1000001E200000
1F2000000F4000000FC00000078000000780000007800000078000000780000007800000
07800000078000000780000007800000078000007FF8001E1C809B1F>89
D<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>92
D<0810204040808080B0F87830050C7D9C0C>96 D<1FC000307000783800781C00301C00
001C00001C0001FC000F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E80
1F870012127E9115>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00
001C00001C00001C7C001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00
E01C00E01C00E01C00C01C01C01C01801E030019060010F800131D7F9C17>I<07E00C30
1878307870306000E000E000E000E000E000E00060007004300418080C3007C00E127E91
12>I<003F00000700000700000700000700000700000700000700000700000700000700
03E7000C1700180F00300700700700600700E00700E00700E00700E00700E00700E00700
600700700700300700180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E60
06E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C
071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C38
80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800
001FF8001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F8
00121C7F9215>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C
00001C00001C7C001C87001D03001E03801C03801C03801C03801C03801C03801C03801C
03801C03801C03801C03801C03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00
18000000000000000000000000000000FC001C001C001C001C001C001C001C001C001C00
1C001C001C001C001C001C001C00FF80091D7F9C0C>I<00C001E001E000C00000000000
0000000000000000000FE000E000E000E000E000E000E000E000E000E000E000E000E000
E000E000E000E000E000E000E000E060E0F0C0F1C061803E000B25839C0D>I<FC00001C
00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C3FC01C0F001C
0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C3C001C1C001C
0E001C0F001C0F80FF9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C001C00
1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
1C00FF80091D7F9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C00
1C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C
01C01C001C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<
FC7C001C87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C0380
1C03801C03801C03801C03801C0380FF9FF014127F9117>I<03F0000E1C001806003003
00700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806
000E1C0003F00012127F9115>I<FC7C001D86001E03001C01801C01C01C00C01C00E01C
00E01C00E01C00E01C00E01C00E01C01C01C01C01C01801E03001D06001CF8001C00001C
00001C00001C00001C00001C00001C0000FF8000131A7F9117>I<03C1000C3300180B00
300F00700700700700E00700E00700E00700E00700E00700E00700600700700700300F00
180F000C370007C700000700000700000700000700000700000700000700003FE0131A7E
9116>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C001C001C001C00
1C00FFC00D127F9110>I<1F9030704030C010C010E010F8007F803FE00FF000F8803880
18C018C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE0
1C001C001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A
7F9910>I<FC1F801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C03801C03801C03801C07800C07800E1B8003E3F014127F9117>I<FF07E03C0380
1C01001C01000E02000E020007040007040007040003880003880003D80001D00001D000
00E00000E00000E00000400013127F9116>I<FF3FCFE03C0F03801C0701801C0701001C
0B01000E0B82000E0B82000E1182000711C4000711C4000720C40003A0E80003A0E80003
C0680001C0700001C0700001803000008020001B127F911E>I<7F8FF00F03800F030007
020003840001C80001D80000F00000700000780000F800009C00010E00020E0006070004
03801E07C0FF0FF81512809116>I<FF07E03C03801C01001C01000E02000E0200070400
07040007040003880003880003D80001D00001D00000E00000E00000E000004000004000
008000008000F08000F10000F300006600003C0000131A7F9116>I<7FFC703860384070
40F040E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>I<FF
FFF01401808B15>I E /Fe 8 118 df<78FCFCFCFC7800000000000078FCFCFCFC780612
7D910D>58 D<FFFFF800FFFFFF000FC01FC00FC007E00FC001F00FC001F80FC000F80FC0
00FC0FC0007C0FC0007C0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0
007E0FC0007E0FC0007C0FC0007C0FC0007C0FC000F80FC000F80FC001F00FC007E00FC0
1FC0FFFFFF00FFFFF8001F1C7E9B25>68 D<03FC000E0E001C1F003C1F00781F00780E00
F80000F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003F800
11127E9115>99 D<1E003F003F003F003F001E00000000000000000000000000FF00FF00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B1E7F9D
0E>105 D<FF0FC0FF31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F
00F81F00F81F00F81F00F81F00F81F00F8FFE7FFFFE7FF18127F911B>110
D<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800
F87800F07800F03C01E01E03C00F078001FC0015127F9118>I<1FD830786018E018E018
F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113>115
D<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F01F80F01F80786FF01F8FF18127F911B>117
D E /Ff 29 122 df<FFFF8000FFFF800007E0000007E0000007E0000007E0000007E000
0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
0007E0000007E0000007E0000007E000C007E000C007E000C007E001C007E001C007E001
C007E0038007E0038007E00F8007E01F80FFFFFF80FFFFFF801A1F7E9E1F>76
D<FFE000003FF8FFF000007FF807F000007F0006F80000DF0006F80000DF0006F80000DF
00067C00019F00067C00019F00063E00031F00063E00031F00061F00061F00061F00061F
00060F800C1F00060F800C1F000607C0181F000607C0181F000607C0181F000603E0301F
000603E0301F000601F0601F000601F0601F000600F8C01F000600F8C01F0006007D801F
0006007D801F0006003F001F0006003F001F0006003F001F0006001E001F00FFF01E03FF
F8FFF00C03FFF82D1F7E9E32>I<FFE000FFF0FFF000FFF007F000060007F800060006FC
000600067E000600063F000600063F800600061F800600060FC006000607E006000603F0
06000601F806000601FC06000600FC060006007E060006003F060006001F860006001FC6
0006000FE600060007E600060003F600060001FE00060000FE00060000FE000600007E00
0600003E000600001E000600000E00FFF0000600FFF0000600241F7E9E29>I<FFFFFE00
FFFFFF8007E00FE007E003F007E001F807E001F807E001FC07E001FC07E001FC07E001FC
07E001FC07E001F807E001F807E003F007E00FE007FFFF8007FFFE0007E0000007E00000
07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000
07E00000FFFF0000FFFF00001E1F7E9E24>80 D<03FC080FFF381E03F83800F870007870
0038F00038F00018F00018F80000FC00007FC0007FFE003FFF801FFFE00FFFF007FFF000
FFF80007F80000FC00007C00003CC0003CC0003CC0003CE00038E00078F80070FE01E0E7
FFC081FF00161F7D9E1D>83 D<FFFF01FFE0FFFF01FFE007E0000C0007E0000C0007E000
0C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C
0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C00
07E0000C0007E0000C0007E0000C0007E0000C0007E0000C0003E000180001F000180001
F000300000F8006000007E03C000001FFF80000003FC0000231F7E9E28>85
D<FFFE003FF8FFFE003FF807E000038007E000030007F000070003F000060003F8000E00
01F8000C0001FC000C0000FC00180000FC001800007E003000007E003000003F00600000
3F006000003F80E000001F80C000001FC1C000000FC18000000FE180000007E300000007
E300000003F600000003F600000003FE00000001FC00000001FC00000000F800000000F8
000000007000000000700000251F7F9E28>I<07FC001FFF003F0F803F07C03F03E03F03
E00C03E00003E0007FE007FBE01F03E03C03E07C03E0F803E0F803E0F803E0FC05E07E0D
E03FF8FE0FE07E17147F9319>97 D<FF0000FF00001F00001F00001F00001F00001F0000
1F00001F00001F00001F00001F00001F1FC01F7FF01FE0F81F807C1F007E1F003E1F003E
1F003F1F003F1F003F1F003F1F003F1F003F1F003E1F003E1F007C1F807C1EC1F81C7FE0
181F8018207E9F1D>I<01FE0007FF801F0FC03E0FC03E0FC07C0FC07C0300FC0000FC00
00FC0000FC0000FC0000FC00007C00007E00003E00603F00C01F81C007FF0001FC001314
7E9317>I<0007F80007F80000F80000F80000F80000F80000F80000F80000F80000F800
00F80000F801F8F80FFEF81F83F83E01F87E00F87C00F87C00F8FC00F8FC00F8FC00F8FC
00F8FC00F8FC00F87C00F87C00F87E00F83E01F81F07F80FFEFF03F8FF18207E9F1D>I<
01FE0007FF800F83C01E01E03E00F07C00F07C00F8FC00F8FFFFF8FFFFF8FC0000FC0000
FC00007C00007C00003E00181E00180F807007FFE000FF8015147F9318>I<001F8000FF
C001F3E003E7E003C7E007C7E007C3C007C00007C00007C00007C00007C000FFFC00FFFC
0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0
0007C00007C00007C00007C0003FFC003FFC0013207F9F10>I<01FC3C07FFFE0F079E1E
03DE3E03E03E03E03E03E03E03E03E03E01E03C00F07800FFF0009FC001800001800001C
00001FFF800FFFF007FFF81FFFFC3C007C70003EF0001EF0001EF0001E78003C78003C3F
01F80FFFE001FF00171E7F931A>I<FF0000FF00001F00001F00001F00001F00001F0000
1F00001F00001F00001F00001F00001F0FC01F3FE01F61F01FC0F81F80F81F00F81F00F8
1F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE3FF
FFE3FF18207D9F1D>I<1C003E007F007F007F003E001C00000000000000000000000000
FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
FFE0FFE00B217EA00E>I<FF0000FF00001F00001F00001F00001F00001F00001F00001F
00001F00001F00001F00001F01FE1F01FE1F00F01F00C01F03801F07001F0C001F18001F
7C001FFC001F9E001F0F001E0F801E07C01E03C01E01E01E01F01E00F8FFC3FFFFC3FF18
207E9F1C>107 D<FF00FF001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE0
0B207E9F0E>I<FE0FE03F80FE1FF07FC01E70F9C3E01E407D01F01E807E01F01F807E01
F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F0
1F007C01F01F007C01F01F007C01F01F007C01F01F007C01F0FFE3FF8FFEFFE3FF8FFE27
147D932C>I<FE0FC0FE3FE01E61F01EC0F81E80F81F00F81F00F81F00F81F00F81F00F8
1F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE3FFFFE3FF18147D931D>
I<01FF0007FFC01F83F03E00F83E00F87C007C7C007CFC007EFC007EFC007EFC007EFC00
7EFC007E7C007C7C007C3E00F83E00F81F83F007FFC001FF0017147F931A>I<01F81807
FE381F87783F01F83E01F87E00F87C00F8FC00F8FC00F8FC00F8FC00F8FC00F8FC00F87C
00F87E00F87E00F83F01F81F87F80FFEF803F8F80000F80000F80000F80000F80000F800
00F80000F80007FF0007FF181D7E931C>113 D<FE3E00FE7F801ECFC01E8FC01E8FC01F
8FC01F03001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F
0000FFF000FFF00012147E9316>I<0FE63FFE701E600EE006E006F800FFC07FF83FFC1F
FE03FE001FC007C007E007F006F81EFFFCC7F010147E9315>I<01800180018003800380
038007800F803F80FFFCFFFC0F800F800F800F800F800F800F800F800F800F800F860F86
0F860F860F8607CC03F801F00F1D7F9C14>I<FF07F8FF07F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F81F01F80F06
F807FCFF03F8FF18147D931D>I<FFE7FE1FE0FFE7FE1FE01F00F003001F00F803000F80
F806000F80F8060007C1BC0C0007C1BC0C0007C1BE0C0003E31E180003E31E180001F60F
300001F60F300001F60FB00000FC07E00000FC07E000007803C000007803C000007803C0
00003001800023147F9326>119 D<FFE1FF00FFE1FF000F80700007C0E00007E0C00003
E1800001F3800000FF0000007E0000003E0000003F0000007F8000006F800000C7C00001
83E0000381F0000701F8000E00FC00FF81FF80FF81FF8019147F931C>I<FFE07F80FFE0
7F801F001C000F8018000F80180007C0300007C0300003E0600003E0600001F0C00001F0
C00001F9C00000F9800000FF8000007F0000007F0000003E0000003E0000001C0000001C
0000001800000018000078300000FC300000FC600000C0E00000E1C000007F8000001E00
0000191D7F931C>I E /Fg 35 125 df<0E1F3F3F1D0102020404081020C0080E779F0E>
39 D<70F8F8F0E005057B840E>46 D<070F1F1F0E0000000000000000000070F8F8F0E0
08147B930E>58 D<00000200000006000000060000000E0000001E0000001E0000003F00
00002F0000004F0000004F0000008F0000010F0000010F0000020F0000020F0000040F00
000C0F0000080F0000100F0000100F0000200F80003FFF800040078000C0078000800780
01000780010007800200078002000780060007801E000F80FF807FF81D207E9F22>65
D<0000FE0200078186001C004C0038003C0060003C00C0001C01C0001803800018070000
180F0000181E0000101E0000103C0000003C000000780000007800000078000000780000
00F0000000F0000000F0000000F0000000F0000080700000807000008070000100380001
0038000200180004000C001800060020000381C00000FE00001F217A9F21>67
D<01FFFFFE001E001C001E000C001E0004001E0004003C0004003C0004003C0004003C00
040078080800780800007808000078180000F0300000FFF00000F0300000F0300001E020
0001E0200001E0200001E0001003C0002003C0002003C0004003C0004007800080078001
8007800100078007000F001F00FFFFFE001F1F7D9E1F>69 D<0000FC040007030C001C00
980030007800E0007801C000380380003003800030070000300E0000301E0000201E0000
203C0000003C00000078000000780000007800000078000000F0000000F000FFF0F00007
80F0000780F0000F0070000F0070000F0070000F0070001E0038001E0018003E001C002E
000E00CC000383040000FC00001E217A9F23>71 D<01FE00007FC0001E0000FC00001E00
00F80000170001780000170001780000270002F00000270004F00000270004F000002700
08F00000470009E00000470011E00000470021E00000470021E00000870043C000008380
43C00000838083C00000838083C000010381078000010382078000010382078000010384
0780000203840F00000203880F00000203900F00000203900F00000401E01E00000401E0
1E00000401C01E00000C01801E00001C01803E0000FF8103FFC0002A1F7D9E29>77
D<01FF007FE0001F000F00001F0004000017800400001780040000278008000023C00800
0023C008000023C008000041E010000041E010000041F010000040F010000080F0200000
807820000080782000008078200001003C400001003C400001003C400001001E40000200
1E800002001E800002000F800002000F800004000F0000040007000004000700000C0007
00001C00020000FF80020000231F7D9E22>I<01FFFF80001E00E0001E0070001E003800
1E003C003C003C003C003C003C003C003C003C0078007800780078007800F0007800E000
F003C000F00F0000FFFC0000F0000001E0000001E0000001E0000001E0000003C0000003
C0000003C0000003C00000078000000780000007800000078000000F800000FFF000001E
1F7D9E1F>80 D<0FFFFFF01E0780E0180780201007802020078020200F0020600F002040
0F0020400F0020801E0040001E0000001E0000001E0000003C0000003C0000003C000000
3C00000078000000780000007800000078000000F0000000F0000000F0000000F0000001
E0000001E0000001E0000001E0000003E00000FFFF00001C1F789E21>84
D<7FFC1FF807C003C00780010007800100078001000F0002000F0002000F0002000F0002
001E0004001E0004001E0004001E0004003C0008003C0008003C0008003C000800780010
00780010007800100078001000F0002000F0002000F0002000F0004000F0004000700080
007001000030020000380400000C18000007E000001D20779E22>I<FFF007FC0F8000E0
0F0000C00F0000800F0001000F0001000F0002000F0004000F0004000F80080007800800
078010000780200007802000078040000780400007808000078100000781000007C20000
03C2000003C4000003C8000003C8000003D0000003D0000003E0000003C0000003C00000
0380000001800000010000001E20779E22>I<00F1800389C00707800E03801C03803C03
80380700780700780700780700F00E00F00E00F00E00F00E20F01C40F01C40703C40705C
40308C800F070013147C9317>97 D<007E0001C1000300800E07801E07801C07003C0200
780000780000780000F00000F00000F00000F00000F00000700100700200300400183800
07C00011147C9315>99 D<0000780003F80000700000700000700000700000E00000E000
00E00000E00001C00001C000F1C00389C00707800E03801C03803C038038070078070078
0700780700F00E00F00E00F00E00F00E20F01C40F01C40703C40705C40308C800F070015
207C9F17>I<007C01C207010E011C013C013802780C7BF07C00F000F000F000F0007000
700170023804183807C010147C9315>I<00007800019C00033C00033C00071800070000
0700000E00000E00000E00000E00000E0001FFE0001C00001C00001C00001C0000380000
380000380000380000380000700000700000700000700000700000700000E00000E00000
E00000E00000C00001C00001C0000180003180007B0000F300006600003C00001629829F
0E>I<003C6000E27001C1E00380E00700E00F00E00E01C01E01C01E01C01E01C03C0380
3C03803C03803C03803C07003C07001C0F001C17000C2E0003CE00000E00000E00001C00
001C00301C00783800F0700060E0003F8000141D7E9315>I<01E0000FE00001C00001C0
0001C00001C000038000038000038000038000070000070000071E000763000E81800F01
C00E01C00E01C01C03801C03801C03801C0380380700380700380700380E10700E20700C
20701C20700C40E00CC060070014207D9F17>I<00C001E001E001C00000000000000000
0000000000000E003300230043804300470087000E000E000E001C001C001C0038403880
30807080310033001C000B1F7C9E0E>I<01E0000FE00001C00001C00001C00001C00003
80000380000380000380000700000700000703C00704200E08E00E11E00E21E00E40C01C
80001D00001E00001FC00038E000387000387000383840707080707080707080703100E0
3100601E0013207D9F15>107 D<03C01FC0038003800380038007000700070007000E00
0E000E000E001C001C001C001C0038003800380038007000700070007100E200E200E200
E200640038000A207C9F0C>I<1C0F80F0002630C318004740640C004780680E00470070
0E004700700E008E00E01C000E00E01C000E00E01C000E00E01C001C01C038001C01C038
001C01C038001C01C0708038038071003803806100380380E10038038062007007006600
300300380021147C9325>I<1C0F802630C04740604780604700704700708E00E00E00E0
0E00E00E00E01C01C01C01C01C01C01C03843803883803083807083803107003303001C0
16147C931A>I<007C0001C3000301800E01C01E01C01C01E03C01E07801E07801E07801
E0F003C0F003C0F003C0F00780F00700700F00700E0030180018700007C00013147C9317
>I<01C1E002621804741C04781C04701E04701E08E01E00E01E00E01E00E01E01C03C01
C03C01C03C01C0380380780380700380E003C1C0072380071E000700000700000E00000E
00000E00000E00001C00001C0000FFC000171D809317>I<00F0400388C00705800E0380
1C03803C0380380700780700780700780700F00E00F00E00F00E00F00E00F01C00F01C00
703C00705C0030B8000F380000380000380000700000700000700000700000E00000E000
0FFE00121D7C9315>I<1C1E002661004783804787804707804703008E00000E00000E00
000E00001C00001C00001C00001C00003800003800003800003800007000003000001114
7C9313>I<00FC030206010C030C070C060C000F800FF007F803FC003E000E700EF00CF0
0CE008401020601F8010147D9313>I<018001C0038003800380038007000700FFF00700
0E000E000E000E001C001C001C001C003800380038003820704070407080708031001E00
0C1C7C9B0F>I<0E00C03300E02301C04381C04301C04701C08703800E03800E03800E03
801C07001C07001C07001C07101C0E20180E20180E201C1E200C264007C38014147C9318
>I<0E03803307802307C04383C04301C04700C08700800E00800E00800E00801C01001C
01001C01001C02001C02001C04001C04001C08000E300003C00012147C9315>I<0E00C1
C03300E3C02301C3E04381C1E04301C0E04701C060870380400E0380400E0380400E0380
401C0700801C0700801C0700801C0701001C0701001C0602001C0F02000C0F04000E1308
0003E1F0001B147C931E>I<FFFFFFFFFF8029017B8C2E>124 D E
/Fh 78 126 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F870000000000070F8F8F87005
1C779B18>33 D<4010E038F078E038E038E038E038E038E038E038E038E038E03860300D
0E7B9C18>I<030600078F00078F00078F00078F00078F00078F007FFFC0FFFFE0FFFFE0
7FFFC00F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07FFFC01E3C00
1E3C001E3C001E3C001E3C001E3C000C1800131C7E9B18>I<01C00007E0000FF0000E70
001C38001C38001C38001C38001C73F01C73F01CE3F00FE3800FC7000F87000F07001F0E
003F0E007B8E0073DC00E1DC00E0F800E0F800E07070E0787070FC707FFFE03FCFE00F03
C0141C7F9B18>38 D<387C7C7E3E0E0E0E1C1C38F8F0C0070E789B18>I<007000F001E0
03C007800F001E001C00380038007000700070007000E000E000E000E000E000E000E000
E0007000700070007000380038001C001E000F00078003C001F000F000700C24799F18>
I<6000F00078003C001E000F000780038001C001C000E000E000E000E000700070007000
70007000700070007000E000E000E000E001C001C0038007800F001E003C007800F00060
000C247C9F18>I<01C00001C00001C00001C000C1C180F1C780F9CF807FFF001FFC0007
F00007F0001FFC007FFF00F9CF80F1C780C1C18001C00001C00001C00001C00011147D97
18>I<00600000F00000F00000F00000F00000F00000F00000F0007FFFC0FFFFE0FFFFE0
7FFFC000F00000F00000F00000F00000F00000F00000F00000600013147E9718>I<1C3E
7E7F3F1F070E1E7CF860080C788518>I<7FFF00FFFF80FFFF807FFF0011047D8F18>I<30
78FCFC78300606778518>I<000300000780000780000F80000F00001F00001E00001E00
003E00003C00007C0000780000780000F80000F00001F00001E00003E00003C00003C000
07C0000780000F80000F00000F00001F00001E00003E00003C00003C00007C0000780000
F80000F00000F0000060000011247D9F18>I<01F00007FC000FFE001F1F001C07003803
807803C07001C07001C0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000
E0F001E07001C07001C07803C03803801C07001F1F000FFE0007FC0001F000131C7E9B18
>I<01800380038007800F803F80FF80FB80438003800380038003800380038003800380
038003800380038003800380038003807FFCFFFE7FFC0F1C7B9B18>I<03F0000FFE003F
FF007C0F807003C0E001C0F000E0F000E06000E00000E00000E00001C00001C00003C000
0780000F00001E00003C0000780000F00001E00007C0000F80001E00E03C00E07FFFE0FF
FFE07FFFE0131C7E9B18>I<07F8001FFE003FFF007807807803C07801C03001C00001C0
0003C0000380000F0003FF0003FE0003FF000007800003C00001C00000E00000E00000E0
F000E0F000E0F001C0F003C07C07803FFF001FFE0003F800131C7E9B18>I<001F00003F
0000770000770000E70001E70001C7000387000787000707000E07001E07003C07003807
00780700F00700FFFFF8FFFFF8FFFFF8000700000700000700000700000700000700007F
F000FFF8007FF0151C7F9B18>I<1FFF803FFF803FFF8038000038000038000038000038
00003800003800003800003BF8003FFE003FFF003C07801803C00001C00000E00000E060
00E0F000E0F000E0E001C07003C07C0F803FFF001FFC0003F000131C7E9B18>I<3078FC
FC783000000000000000003078FCFC78300614779318>58 D<183C7E7E3C180000000000
000000183C7E7E3E1E0E1C3C78F060071A789318>I<000300000780001F80003F00007E
0001FC0003F00007E0001FC0003F00007E0000FC0000FC00007E00003F00001FC00007E0
0003F00001FC00007E00003F00001F8000078000030011187D9918>I<7FFFC0FFFFE0FF
FFE0FFFFE0000000000000000000000000FFFFE0FFFFE0FFFFE07FFFC0130C7E9318>I<
600000F00000FC00007E00003F00001FC00007E00003F00001FC00007E00003F00001F80
001F80003F00007E0001FC0003F00007E0001FC0003F00007E0000FC0000F00000600000
11187D9918>I<00700000F80000F80000D80000D80001DC0001DC0001DC00018C00038E
00038E00038E00038E000306000707000707000707000707000FFF800FFF800FFF800E03
800E03801C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>65 D<FFFC00FFFF00FFFF80
1C03C01C01C01C00E01C00E01C00E01C00E01C01E01C01C01C07C01FFF801FFF001FFFC0
1C03C01C00E01C00F01C00701C00701C00701C00701C00F01C00E01C03E0FFFFC0FFFF80
FFFE00141C7F9B18>I<00F8E003FEE007FFE00F07E01E03E03C01E03800E07000E07000
E0700000E00000E00000E00000E00000E00000E00000E00000E000007000007000E07000
E03800E03C00E01E01C00F07C007FF8003FE0000F800131C7E9B18>I<7FF800FFFE007F
FF001C0F801C03C01C03C01C01E01C00E01C00E01C00F01C00701C00701C00701C00701C
00701C00701C00701C00701C00F01C00E01C00E01C01E01C01C01C03C01C0F807FFF00FF
FE007FF800141C7F9B18>I<FFFFF0FFFFF0FFFFF01C00701C00701C00701C00701C0000
1C00001C0E001C0E001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C0000
1C00381C00381C00381C00381C0038FFFFF8FFFFF8FFFFF8151C7F9B18>I<FFFFE0FFFF
E0FFFFE01C00E01C00E01C00E01C00E01C00001C00001C1C001C1C001C1C001FFC001FFC
001FFC001C1C001C1C001C1C001C00001C00001C00001C00001C00001C00001C0000FFC0
00FFC000FFC000131C7E9B18>I<01F1C003FDC00FFFC01F0FC01C03C03803C03801C070
01C07001C0700000E00000E00000E00000E00000E00000E00FF0E01FF0E00FF07001C070
01C07003C03803C03803C01C07C01F0FC00FFFC003FDC001F1C0141C7E9B18>I<7F07F0
FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC0
1FFFC01FFFC01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C0
7F07F0FF8FF87F07F0151C7F9B18>I<7FFF00FFFF807FFF0001C00001C00001C00001C0
0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
0001C00001C00001C00001C00001C00001C0007FFF00FFFF807FFF00111C7D9B18>I<7F
E000FFE0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E
00000E00000E00000E00000E00000E00000E00000E00000E00700E00700E00700E00700E
00707FFFF0FFFFF07FFFF0141C7F9B18>76 D<FC01F8FE03F8FE03F83B06E03B06E03B06
E03B06E03B8EE03B8EE0398CE0398CE039DCE039DCE039DCE038D8E038D8E038F8E03870
E03870E03800E03800E03800E03800E03800E03800E0FE03F8FE03F8FE03F8151C7F9B18
>I<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C01C
E1C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C01C19C01C1DC01C0DC01C
0DC01C0DC07F07C0FF87C07F03C0151C7F9B18>I<0FF8003FFE007FFF00780F00700700
F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380
E00380E00380E00380E00380E00380F00780700700780F007FFF003FFE000FF800111C7D
9B18>I<FFFE00FFFF80FFFFC01C03C01C01E01C00E01C00701C00701C00701C00701C00
701C00E01C01E01C03C01FFFC01FFF801FFE001C00001C00001C00001C00001C00001C00
001C00001C0000FF8000FF8000FF8000141C7F9B18>I<0FF8003FFE007FFF00780F0070
0700F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0
0380E00380E00380E00380E1E380E1E380F0E78070F700787F007FFF003FFE000FFC0000
1C00001E00000E00000F0000070000070011227D9B18>I<7FF800FFFE007FFF001C0F80
1C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C0F00
1C07001C03801C03801C03801C03801C03801C039C1C039C1C039C7F01F8FF81F87F00F0
161C7F9B18>I<03F3801FFF803FFF807C0F80700780E00380E00380E00380E000007000
007800003F00001FF00007FE0000FF00000F800003C00001C00000E00000E06000E0E000
E0E001E0F001C0F80780FFFF80FFFE00E7F800131C7E9B18>I<7FFFF8FFFFF8FFFFF8E0
7038E07038E07038E0703800700000700000700000700000700000700000700000700000
700000700000700000700000700000700000700000700000700000700007FF0007FF0007
FF00151C7F9B18>I<FF83FEFF83FEFF83FE1C00701C00701C00701C00701C00701C0070
1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C0070
1C00700E00E00F01E00783C003FF8001FF00007C00171C809B18>I<FF07F8FF07F8FF07
F81C01C01C01C01C01C01C01C00E03800E03800E03800E03800F07800707000707000707
00070700038E00038E00038E00038E00018C0001DC0001DC0001DC0000D80000F80000F8
00007000151C7F9B18>I<FE03F8FE03F8FE03F87000707000707000703800E03800E038
00E03800E03800E038F8E038F8E039DCE039DCE019DCC019DCC019DCC0198CC01D8DC01D
8DC01D8DC01D8DC00D8D800D05800F07800F07800E0380151C7F9B18>I<7F8FE07F9FE0
7F8FE00E07000F0700070E00078E00039C0003DC0001F80001F80000F00000F000007000
00F00000F80001F80001DC00039E00038E00070F000707000E07800E03801E03C07F07F0
FF8FF87F07F0151C7F9B18>I<FF07F8FF07F8FF07F81C01C01E03C00E03800F07800707
00070700038E00038E0001DC0001DC0001DC0000F80000F8000070000070000070000070
0000700000700000700000700000700001FC0003FE0001FC00151C7F9B18>I<3FFFE07F
FFE07FFFE07001C07003C0700780700700000F00001E00001C00003C0000780000700000
F00001E00001C00003C0000780000700000F00001E00E01C00E03C00E07800E07000E0FF
FFE0FFFFE0FFFFE0131C7E9B18>I<FFF8FFF8FFF8E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000FFF8FFF8FFF80D24779F18>I<FFF8FFF8FFF80038003800380038
003800380038003800380038003800380038003800380038003800380038003800380038
00380038003800380038003800380038FFF8FFF8FFF80D247F9F18>93
D<7FFF00FFFF80FFFF807FFF0011047D7F18>95 D<1FE0003FF8007FFC00781E00300E00
00070000070000FF0007FF001FFF007F0700780700E00700E00700E00700F00F00781F00
3FFFF01FFBF007E1F014147D9318>97 D<7E0000FE00007E00000E00000E00000E00000E
00000E00000E3E000EFF800FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E
00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF80063E00151C809B18>I<
01FE0007FF001FFF803E0780380300700000700000E00000E00000E00000E00000E00000
E000007000007001C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F80003F
80001F8000038000038000038000038000038003E3800FFB801FFF803C1F80380F807007
80700380E00380E00380E00380E00380E00380E00380700780700780380F803C1F801FFF
F00FFBF803E3F0151C7E9B18>I<01F00007FC001FFE003E0F00380780700380700380E0
01C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E03C01FFF8007FF0001
FC0012147D9318>I<001F80007FC000FFE000E1E001C0C001C00001C00001C0007FFFC0
FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
01C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F007FFF80FFF
F81E1E301C0E003807003807003807003807003807001C0E001E1E001FFC001FF80039E0
003800001C00001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E000387800
F07E03F01FFFC00FFF8001FC00151F7F9318>I<7E0000FE00007E00000E00000E00000E
00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E
00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B
18>I<03800007C00007C00007C0000380000000000000000000000000007FC000FFC000
7FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
01C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18>I<FE0000FE0000FE00000E00
000E00000E00000E00000E00000E3FF00E7FF00E3FF00E07800E0F000E1E000E3C000E78
000EF0000FF8000FFC000F9C000F0E000E0F000E07000E03800E03C0FFC7F8FFC7F8FFC7
F8151C7F9B18>107 D<7FE000FFE0007FE00000E00000E00000E00000E00000E00000E0
0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E00000E00000E00000E0007FFFC0FFFFE07FFFC0131C7E9B18>I<7CE0E000FFFBF8
007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C
001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF807F1F1F
001914819318>I<7E3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E
00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC17148093
18>I<01F0000FFE001FFF003E0F803803807001C07001C0E000E0E000E0E000E0E000E0
E000E0F001E07001C07803C03C07803E0F801FFF000FFE0001F00013147E9318>I<7E3E
00FEFF807FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00380E00
380F00700F00700F80E00FC1E00FFFC00EFF800E3E000E00000E00000E00000E00000E00
000E00000E00007FC000FFE0007FC000151E809318>I<01E38007FB801FFF803E1F8038
0F80700780700780E00380E00380E00380E00380E00380E00380700780700780380F803C
1F801FFF800FFB8003E380000380000380000380000380000380000380000380003FF800
3FF8003FF8151E7E9318>I<7F87E0FF9FF07FBFF803F87803F03003E00003C00003C000
0380000380000380000380000380000380000380000380000380007FFE00FFFF007FFE00
15147F9318>I<07F7003FFF007FFF00780F00E00700E00700E007007C00007FE0001FFC
0003FE00001F00600780E00380E00380F00380F80F00FFFF00FFFC00E7F00011147D9318
>I<0180000380000380000380000380007FFFC0FFFFC0FFFFC003800003800003800003
80000380000380000380000380000380000380400380E00380E00380E001C1C001FFC000
FF80003E0013197F9818>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00E00E00E0
0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FCFC
1714809318>I<7F8FF0FF8FF87F8FF01E03C00E03800E03800E03800707000707000707
00038E00038E00038E00038E0001DC0001DC0001DC0000F80000F80000700015147F9318
>I<FF8FF8FF8FF8FF8FF83800E03800E03800E01C01C01C01C01C71C01CF9C01CF9C01C
D9C01CD9C00DDD800DDD800DDD800D8D800F8F800F8F8007070015147F9318>I<7F8FF0
7F9FF07F8FF0070700078E00039E0001DC0001F80000F80000700000F00000F80001DC00
039E00038E000707000F07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F8F
F00E01C00E03800E0380070380070700070700038700038600038E0001CE0001CE0000CC
0000CC0000DC0000780000780000780000700000700000700000F00000E00079E0007BC0
007F80003F00001E0000151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C070078000
0F00001E00003C0000F80001F00003C0000780000F00701E00703C0070780070FFFFF0FF
FFF0FFFFF014147F9318>I<0007E0001FE0007FE000780000E00000E00000E00000E000
00E00000E00000E00000E00000E00000E00000E00001E0007FC000FF8000FF80007FC000
01E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000
007800007FE0001FE00007E013247E9F18>I<7C0000FF0000FFC00003C00000E00000E0
0000E00000E00000E00000E00000E00000E00000E00000E00000E00000F000007FC0003F
E0003FE0007FC000F00000E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E00000E00003C000FFC000FF00007C000013247E9F18>125
D E /Fi 45 122 df<000078007C7800FC7801FC7803C000038000078000078000078000
078000078000078000078000078000FFFC78FFFC78FFFC78078078078078078078078078
078078078078078078078078078078078078078078078078078078078078078078078078
078078078078078078152480A31A>12 D<007000E001C003C0078007000F000E001E001C
003C003C00380078007800780078007000F000F000F000F000F000F000F000F000F000F0
00F000F000F000F0007000780078007800780038003C003C001C001E000E000F00070007
8003C001C000E000700C327DA413>40 D<E000700038003C001E000E000F000700078003
8003C003C001C001E001E001E001E000E000F000F000F000F000F000F000F000F000F000
F000F000F000F000F000E001E001E001E001E001C003C003C00380078007000F000E001E
003C0038007000E0000C327DA413>I<FFE0FFE0FFE00B037F8C10>45
D<F0F0F0F004047B830E>I<00C001C007C0FFC0FFC0FBC003C003C003C003C003C003C0
03C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0
03C0FFFFFFFFFFFF10227CA118>49 D<03F0000FFC001FFE003C1F003007807007C06003
C0E003E0C001E04001E04001E00001E00001E00001E00003C00003C0000780000780000F
00001E00003C0000780000F00001E00001C0000380000700000E00001C00003800007000
00FFFFE0FFFFE0FFFFE013227EA118>I<01F00007FC001FFF003E0F003807807003C020
03C02003C00003C00003C00003C0000780000780000F00001E0003FC0003F80003FE0000
0F000007800003C00003C00001E00001E00001E00001E00001E08001E0C003C0E003C070
07803C0F801FFF000FFC0003F00013237EA118>I<001F00001F00002F00002F00006F00
00EF0000CF0001CF0001CF00038F00038F00078F00070F000F0F000E0F001E0F003C0F00
3C0F00780F00780F00F00F00FFFFF8FFFFF8FFFFF8000F00000F00000F00000F00000F00
000F00000F00000F00000F0015217FA018>I<3FFF803FFF803FFF803C00003C00003C00
003C00003C00003C00003C00003C00003C00003CF8003FFE003FFF003F0F803E07803C03
C03803C00001E00001E00001E00001E00001E00001E00001E04003C04003C0E003C07007
807C1F003FFE000FFC0003F00013227EA018>I<F0F0F0F0000000000000000000000000
0000F0F0F0F004167B950E>58 D<001F0000001F0000003F8000003F8000003B8000007B
C0000073C0000071C00000F1E00000F1E00000E0E00001E0F00001E0F00001C0F00003C0
780003C078000380780007803C0007803C0007003C000F001E000F001E000FFFFE001FFF
FF001FFFFF001C000F003C0007803C00078038000780780003C0780003C0700003C0F000
01E0F00001E0E00001E01B237EA220>65 D<000FF000007FFC0000FFFF0001F01F0003C0
0700078000000F0000001E0000003E0000003C0000003C00000078000000780000007800
0000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000
00007800000078000000780000003C0000003C0000003E0000001E0000000F0000000780
008003C0038001F00F8000FFFF00007FFC00000FF00019257DA31F>67
D<FFFE0000FFFFC000FFFFE000F003F000F000F800F0007C00F0003E00F0001E00F0000F
00F0000F00F0000780F0000780F0000780F00003C0F00003C0F00003C0F00003C0F00003
C0F00003C0F00003C0F00003C0F00003C0F0000380F0000780F0000780F0000780F0000F
00F0001F00F0001E00F0003C00F000FC00F003F800FFFFE000FFFFC000FFFE00001A237B
A223>I<FFFFF0FFFFF0FFFFF0F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000FFFFE0FFFFE0FFFFE0F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFFF8FFFFF8FFFF
F815237BA21D>I<FFFFF0FFFFF0FFFFF0F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000FFFFC0FFFFC0FFFFC0F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F0000014237BA21C>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F004237CA20D>73 D<FC00007EFE0000FEFE0000FEFE0000FEF7
0001DEF70001DEF70001DEF78003DEF380039EF380039EF3C0079EF3C0079EF1C0071EF1
C0071EF1E00F1EF0E00E1EF0E00E1EF0F01E1EF0F01E1EF0701C1EF0783C1EF0783C1EF0
38381EF03C781EF03C781EF01C701EF01C701EF01EF01EF00EE01EF00EE01EF00FE01EF0
07C01EF007C01EF007C01EF000001E1F237BA22A>77 D<FC001EFE001EFE001EFE001EF7
001EF7001EF3801EF3801EF3C01EF1C01EF1C01EF1E01EF0E01EF0F01EF0F01EF0781EF0
781EF0381EF03C1EF03C1EF01E1EF01E1EF00E1EF00F1EF0071EF0071EF0079EF0039EF0
039EF001DEF001DEF000FEF000FEF000FEF0007E17237BA222>I<FFFE00FFFF80FFFFC0
F003E0F000F0F00078F00078F0003CF0003CF0003CF0003CF0003CF0003CF00078F00078
F000F0F003E0FFFFC0FFFF80FFFE00F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F00000F00000F0000016237BA21F>80
D<FFFC00FFFF80FFFFC0F003E0F000F0F00078F00038F0003CF0003CF0003CF0003CF000
3CF00038F00078F000F0F003E0FFFFC0FFFF80FFFE00F01E00F00F00F00700F00780F003
80F003C0F001E0F001E0F000F0F000F0F00078F00038F0003CF0001EF0001EF0000F1823
7BA21F>82 D<00FE0003FFC007FFE00F81E01E00603C00003C0000780000780000780000
7800007800007C00003C00003F00001FC0000FFC0007FF0001FF80003FC00007E00001F0
0000F00000F8000078000078000078000078000078000078C000F0E000F0F801E07E07C0
3FFF800FFF0001FC0015257EA31B>I<FFFFFFF0FFFFFFF0FFFFFFF0000F0000000F0000
000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F00001C237EA221>I<F0003CF0003CF0003CF0003CF0003CF000
3CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF000
3CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003C7800787800787800
783C00F01E01E01F87E00FFFC003FF0000FC0016247BA221>I<07E01FF83FFC381E201E
000F000F000F000F00FF07FF1FFF3E0F780FF00FF00FF00FF00FF83F7FFF3FEF1F8F1016
7E9517>97 D<01FC0007FF000FFF801F03803C0180780000780000700000F00000F00000
F00000F00000F00000F000007800007800007800003C00401F03C00FFFC007FF8001FC00
12167E9516>99 D<0003C00003C00003C00003C00003C00003C00003C00003C00003C000
03C00003C00003C00003C003E3C00FFBC01FFFC03F0FC03C07C07803C07803C0F003C0F0
03C0F003C0F003C0F003C0F003C0F003C0F003C07803C07803C03C07C03E0FC01FFFC00F
FBC003E3C012237EA219>I<03F00007FC001FFE003E0F003C0780780380780380F001C0
FFFFC0FFFFC0FFFFC0F00000F00000F000007000007800007800003C00801F07800FFF80
07FF0001F80012167E9516>I<003F00FF01FF03C0038007800780078007800780078007
800780FFF8FFF8FFF8078007800780078007800780078007800780078007800780078007
8007800780078007800780102380A20F>I<01F07807FFF80FFFF81F1F001E0F003C0780
3C07803C07803C07803C07801E0F001F1F000FFE001FFC0019F0003800003800003C0000
1FFE001FFFC01FFFE03FFFF07801F07800F8F00078F00078F00078F000787800F03E03E0
1FFFC00FFF8001FC0015217F9518>I<F000F000F000F000F000F000F000F000F000F000
F000F000F000F1F8F3FCF7FEFE1EF80FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00F
F00FF00FF00FF00FF00FF00FF00F10237CA219>I<F0F0F0F0000000000000000000F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>I<F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>108
D<F0F807C0F3FE1FF0F7FF3FF8FE0F7078FC0FE07CF807C03CF807C03CF007803CF00780
3CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF00780
3CF007803CF007803CF007803CF007803C1E167C9527>I<F1F8F3FCF7FEFE1EF80FF80F
F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10167C95
19>I<01FC0007FF000FFF801F07C03C01E07800F07800F0700070F00078F00078F00078
F00078F00078F000787800F07800F07C01F03E03E01F07C00FFF8007FF0001FC0015167F
9518>I<F1F000F7FC00FFFE00FC3F00F80F00F00780F00780F007C0F003C0F003C0F003
C0F003C0F003C0F003C0F007C0F00780F00F80F80F00FC3E00FFFE00F7F800F1F000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F0000012207C9519>I<03
E3C007FBC00FFFC01F0FC03C07C07C03C07803C0F803C0F003C0F003C0F003C0F003C0F0
03C0F003C0F803C07803C07803C03C07C03F0FC01FFFC00FFBC003E3C00003C00003C000
03C00003C00003C00003C00003C00003C00003C00003C012207E9519>I<F0E0F3E0F7E0
FF00FE00FC00F800F800F000F000F000F000F000F000F000F000F000F000F000F000F000
F0000B167C9511>I<07F01FFC3FFE3C0E7806780078007C003F003FF01FF80FFC01FE00
1F000F000F000FC00FF81EFFFE3FFC0FF010167F9513>I<0F000F000F000F000F000F00
FFF8FFF8FFF80F000F000F000F000F000F000F000F000F000F000F000F000F000F000F08
0F1C07FC07F803E00E1C7F9B12>I<F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF01FF83F7FFF7FCF1F0F10167C9519>I<F001E0F001E0
7803C07803C07803C03C07803C07803C07801E07001E0F001E0F000F0E000F1E000F1E00
071C00079C0007BC0003B80003B80003F80001F00001F00013167F9516>I<F007803CF0
0FC03CF00FC03C780DC078781DC078781DE078781CE0783C18E0F03C38E0F03C38F0F01C
38F0E01E3871E01E3071E01E7079E00E7079C00E7039C00F603BC007603B8007601B8007
C01F8007C01F8003C01F001E167F9521>I<F001E0F001E07803C07803C07C03C03C0780
3C07801E07801E07001E0F000F0F000F0E00071E00079E00039C00039C00039C00019800
01D80000F80000F00000F00000F00000E00000E00001E00001C00001C0000380007F8000
7F00007E000013207F9516>121 D E /Fj 10 58 df<1F00318060C04040C060C060C060
C060C060C060C060C060404060C031801F000B107F8F0F>48 D<0C003C00CC000C000C00
0C000C000C000C000C000C000C000C000C000C00FF8009107E8F0F>I<1F00618040C080
60C0600060006000C00180030006000C00102020207FC0FFC00B107F8F0F>I<1F002180
60C060C000C0008001800F00008000400060C060C060804060801F000B107F8F0F>I<03
00030007000F000B001300330023004300C300FFE003000300030003001FE00B107F8F0F
>I<20803F002C002000200020002F0030802040006000600060C06080C061801F000B10
7F8F0F>I<0780184030C060C06000C000CF00F080E040C060C060C060406060C030801F
000B107F8F0F>I<40007FE07FC08080808001000200040004000C000800080018001800
1800180018000B117E900F>I<1F00318060C060C060C071803F000F00338061C0C060C0
60C060404060801F000B107F8F0F>I<1F00318060C0C040C060C060C06040E021E01E60
0060004060C0608043003E000B107F8F0F>I E /Fk 25 90 df<FFC0FFC00A027D8A0F>
45 D<3078F8787005057C840D>I<000C001C00FC0F380038003800380038003800700070
007000700070007000E000E000E000E000E000E001C001C001C001C001C001C0038003C0
FFFE0F1E7C9D17>49 D<003F8000C1E00100F00200780400780400780F007C0F807C0F80
7C0F00780600780000F80000F00001E00001C0000380000700000E00001C000038000060
0000C0000180000300200600200800401000403FFFC07FFF80FFFF80161E7E9D17>I<00
7F000183C00201E00400F00700F00F00F00F01F00F01F00001E00001E00003C000038000
0700000E0000F800000E000007000007800007C00003C00007C03007C07807C0F807C0F8
07C0F00780800F00400E00201C0018780007E000141F7D9D17>I<0000600000600000E0
0001C00003C00005C0000DC00009C00011C000238000438000C380008380010380020380
040700080700180700100700200700400700FFFFF0000E00000E00000E00000E00000E00
001C00001E0001FFE0141E7E9D17>I<01803001FFE003FFC003FF0003FC000200000200
00020000040000040000040000047C000587000603800C01800801C00001C00001E00001
E00001E00001E07003C0F803C0F003C0E00380800780400700400E00201C0018700007C0
00141F7D9D17>I<0000100000001800000038000000380000007800000078000000FC00
0001BC0000013C0000033C0000023C0000063C0000043E0000081E0000081E0000101E00
00101E0000201E0000200F0000400F0000400F0000FFFF0000800F0001000F8001000780
020007800200078004000780040007800C0007C03E0007C0FF807FFC1E207E9F22>65
D<0001F808000E061800380138007000F801E0007803C0007007800030078000300F0000
301F0000301E0000303E0000203C0000007C0000007C0000007C0000007C000000F80000
00F8000000F8000000F8000000F80000007800004078000080780000803C0000803C0001
001C0002000E00020006000C000300100001C0E000003F00001D217B9F21>67
D<07FFFF00007C01E0003C00F0003C00780078003C0078003C0078001E0078001E007800
1E0078001F00F0001F00F0001F00F0001F00F0001F00F0001F00F0001F01E0001E01E000
3E01E0003E01E0003E01E0003C01E0007C03C0007803C000F003C000F003C001E003C003
C003C0078007800F0007803C00FFFFE000201F7E9E23>I<07FFFFF8007C0078003C0038
003C001800780018007800080078000800780008007800080078080800F0100000F01000
00F0100000F0300000FFF00000F0700001E0200001E0200001E0200001E0200001E00008
01E0001003C0001003C0001003C0002003C0002003C0006003C000C0078001C0078007C0
FFFFFF801D1F7E9E1F>I<07FFFFF8007C0078003C0038003C0018007800180078000800
78000800780008007800080078000800F0100000F0100000F0100000F0300000F0700000
FFF00001E0600001E0200001E0200001E0200001E0200001E0000003C0000003C0000003
C0000003C0000003C0000003C000000780000007C00000FFFE00001D1F7E9E1E>I<0001
FC04000F030C003C009C0070007C00E0003C01C0003803800018078000180F0000181F00
00181E0000183E0000103C0000007C0000007C0000007C0000007C000000F8000000F800
0000F8007FFCF80003E0780001E0780001E0780003C0780003C03C0003C03C0003C01C00
03C00E0007C007000B800380118001E06080003F80001E217B9F24>I<07FFC7FFC0007C
00F800003C007800003C007800007800F000007800F000007800F000007800F000007800
F000007800F00000F001E00000F001E00000F001E00000F001E00000FFFFE00000F001E0
0001E003C00001E003C00001E003C00001E003C00001E003C00001E003C00003C0078000
03C007800003C007800003C007800003C007800003C007800007800F000007C00F8000FF
F8FFF800221F7E9E22>I<07FFE0007C00003C00003C0000780000780000780000780000
780000780000F00000F00000F00000F00000F00000F00001E00001E00001E00001E00001
E00001E00003C00003C00003C00003C00003C00003C00007800007C000FFFC00131F7F9E
10>I<07FFF000007E0000003C0000003C00000078000000780000007800000078000000
7800000078000000F0000000F0000000F0000000F0000000F0000000F0000001E0000001
E0000001E0000001E0000001E0008001E0010003C0010003C0010003C0030003C0020003
C0060003C0060007801E0007807C00FFFFFC00191F7E9E1C>76 D<07FC0000FFC0007C00
00F800003C00017800003C00017800004E0002F000004E0002F000004E0004F000004E00
04F000004E0008F000004E0008F00000870011E00000870011E00000870021E000008700
21E00000870041E00000838041E00001038083C00001038083C00001038103C000010382
03C0000101C203C0000101C403C0000201C40780000201C80780000201C80780000201D0
0780000200F00780000600E00780000600E00F00000F00C00F8000FFE0C1FFF8002A1F7E
9E2A>I<07FC01FFC0003E003E00003E001800003E001800004F001000004F0010000047
80100000478010000043C010000043C010000083C020000081E020000081E020000080F0
20000080F020000080782000010078400001007C400001003C400001003C400001001E40
0001001E400002000F800002000F800002000F8000020007800002000780000600038000
06000300000F00010000FFE0010000221F7E9E22>I<0003F800001E0E000038070000E0
038001C001C003C001E0078000E00F0000F00F0000F01E0000F01E0000F83E0000F83C00
00F87C0000F87C0000F87C0000F87C0000F8F80001F0F80001F0F80001F0F80001F0F800
03E0780003E0780003C0780007C07C0007803C000F003C001E001E001C000E0038000700
F00003C3C00000FE00001D217B9F23>I<07FFFF00007C03C0003C01E0003C00F0007800
F0007800F8007800F8007800F8007800F8007800F000F001F000F001E000F003C000F007
8000F00F0000FFF80001E0000001E0000001E0000001E0000001E0000001E0000003C000
0003C0000003C0000003C0000003C0000003C000000780000007C00000FFFC00001D1F7E
9E1F>I<07FFFC00007C0700003C03C0003C01E0007801E0007801F0007801F0007801F0
007801F0007801E000F003E000F003C000F0078000F00F0000F03C0000FFF00001E03000
01E0380001E01C0001E01C0001E01C0001E01E0003C03E0003C03E0003C03E0003C03E00
03C03E0003C03E0207803E0407C01F04FFFC0F18000003E01F207E9E21>82
D<003F040060CC01803C03801C03001C0700180600080E00080E00080E00080E00000F00
000F80000FE00007FE0003FF8001FFC0007FE00007E00001E00000E00000F00000F04000
E04000E04000E04000E06000C0600180E00380F80300C60C0081F80016217D9F19>I<3F
FFFFF03C0780F03007803060078030400F0010400F0010C00F0010800F0010800F001080
0F0010001E0000001E0000001E0000001E0000001E0000001E0000003C0000003C000000
3C0000003C0000003C0000003C0000007800000078000000780000007800000078000000
78000000F0000001F800007FFFE0001C1F7A9E21>I<03FFC0FFC0007F007E00003E0038
00001E003000001E002000000F004000000F008000000F81000000078200000007C60000
0003C400000003E800000001F000000001F000000000F000000000F800000000F8000000
017C000000023C000000043C0000000C1E000000081E000000101F000000200F00000040
0F800000C0078000008007C000010003C000070003E0001F8007E000FFE01FFE00221F7F
9E22>88 D<FFF003FF1F8000F80F0000600F8000400780008007C0018003C0010003E002
0001E0040001F00C0001F0080000F0100000F8200000786000007C4000003C8000003F00
00001F0000001E0000001E0000001E0000001C0000003C0000003C0000003C0000003C00
00003C00000038000000780000007C00000FFFC000201F7A9E22>I
E /Fl 33 122 df<FFFEFFFEFFFE0F037F8E14>45 D<F8F8F8F8F805057A8411>I<0018
0000380000F80007F800FFF800FFF800F8F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
007FFFF07FFFF07FFFF014287BA71E>49 D<00FE0003FFC007FFE00FFFF01F03F83C00FC
38007E78003E70003EF0001FF0001F60001F20001F00001F00001F00001F00003E00003E
00007C00007C0000F80001F00001E00003C0000780000F00001E00003C0000780000F000
01E00003C0000780000F00001E00003C00007FFFFF7FFFFF7FFFFF7FFFFF18287EA71E>
I<007F000001FFC00007FFF0000FFFF8001FC1F8003E007C003C003E0078003E0038003E
0010003E0000003E0000003E0000003C0000007C000000FC000001F8000007F00000FFE0
0000FFC00000FFE00000FFF0000001FC0000007C0000003E0000001F0000001F0000000F
8000000F8000000F8000000F8000000F8040000F8060001F00F0001F00F8003F007E007E
003F81FC001FFFF8000FFFF00003FFE000007F000019297EA71E>I<0003F0000007F000
0005F000000DF000000DF000001DF0000039F0000039F0000079F0000079F00000F1F000
00F1F00001E1F00003E1F00003E1F00007C1F00007C1F0000F81F0000F81F0001F01F000
1F01F0003E01F0007C01F0007C01F000F801F000FFFFFF80FFFFFF80FFFFFF80FFFFFF80
0001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F000
0001F00019277EA61E>I<3FFFFC3FFFFC3FFFFC3FFFFC3E00003E00003E00003E00003E
00003E00003E00003E00003E00003E00003E3F003EFFC03FFFE03FFFF03FE1F83F807C3F
003E3E003E00003E00001F00001F00001F00001F00001F00001F00001F20001F60003E70
003EF8007C7C00FC3F03F81FFFF00FFFE007FF8000FE0018287EA61E>I<0001F0000000
03F800000003F800000007FC00000007BC00000007BC0000000F3E0000000F1E0000000F
1E0000001F1F0000001E1F0000001E0F0000003E0F8000003C0F8000003C078000007C07
C000007807C00000F803E00000F803E00000F003E00001F001F00001F001F00001E001F0
0003E000F80003E000F80003C000F80007FFFFFC0007FFFFFC000FFFFFFE000F80003E00
0F80003E001F00003F001F00001F001E00001F003E00000F803E00000F803C00000F807C
000007C07C000007C078000007C0F8000003E0F8000003E0232A7EA928>65
D<FFFFF00000FFFFFC0000FFFFFF0000F8003FC000F80007E000F80003F000F80001F800
F80000FC00F800007C00F800003E00F800001E00F800001F00F800000F00F800000F80F8
00000F80F800000780F8000007C0F8000007C0F8000007C0F8000007C0F8000007C0F800
0007C0F8000007C0F8000007C0F8000007C0F8000007C0F800000780F800000F80F80000
0F80F800000F80F800001F00F800001F00F800003E00F800007E00F800007C00F80000F8
00F80003F000F80007E000F8003FC000FFFFFF0000FFFFFE0000FFFFF00000222A7BA92B
>68 D<FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0F8000000F8000000F8000000F8000000F8
000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8
000000FFFFFF80FFFFFF80FFFFFF80FFFFFF80F8000000F8000000F8000000F8000000F8
000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8
000000F8000000F8000000FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF01C2A7BA924>I<F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8052A7AA911>73 D<FE0000007F80FE0000007F80FE0000007F80FF000000FF80
FB000000EF80FB800001EF80FB800001EF80FB800001EF80F9C00003CF80F9C00003CF80
F9C00003CF80F8E000078F80F8E000078F80F8F0000F8F80F8F0000F8F80F870000F0F80
F878001F0F80F878001F0F80F838001E0F80F83C003E0F80F83C003E0F80F81E007C0F80
F81E007C0F80F80E00780F80F80F00F80F80F80F00F80F80F80700F00F80F80781F00F80
F80781F00F80F80381E00F80F803C3E00F80F803C3E00F80F801C3C00F80F801E7C00F80
F800E7800F80F800E7800F80F800E7800F80F8007F000F80F8007F000F80F8007F000F80
F8003E000F80F80000000F80292A7BA934>77 D<FFFFE000FFFFFC00FFFFFF00F8003F80
F8000FC0F80007E0F80001E0F80001F0F80000F0F80000F8F80000F8F80000F8F80000F8
F80000F8F80000F8F80000F0F80001F0F80001F0F80003E0F8000FC0F8003F80FFFFFF00
FFFFFE00FFFFF000F8000000F8000000F8000000F8000000F8000000F8000000F8000000
F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000
F8000000F80000001D2A7BA926>80 D<FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0
0000F800000000F800000000F800000000F800000000F800000000F800000000F8000000
00F800000000F800000000F800000000F800000000F800000000F800000000F800000000
F800000000F800000000F800000000F800000000F800000000F800000000F800000000F8
00000000F800000000F800000000F800000000F800000000F800000000F800000000F800
000000F800000000F800000000F800000000F800000000F800000000F800000000F80000
0000F800000000F80000242A7EA929>84 D<01FE000FFF803FFFC03FFFE03C03F03001F0
0001F80000F80000F80000F80000F80000F8007FF807FFF81FFFF83FE0F87F00F8FC00F8
F800F8F800F8F800F8FC01F87E07F87FFFF83FFFF81FFCF80FE0F8151B7E9A1D>97
D<007FC001FFF007FFFC0FFFFC1FC07C1F00083E00007C00007C00007C0000F80000F800
00F80000F80000F80000F80000F800007C00007C00007E00003E00001F000C1FC07C0FFF
FC07FFFC01FFF0007F80161B7E9A1B>99 D<00003E00003E00003E00003E00003E00003E
00003E00003E00003E00003E00003E00003E00003E00003E00003E00FC3E03FF3E07FFFE
0FFFFE1FC1FE3F007E3E003E7C003E7C003EFC003EF8003EF8003EF8003EF8003EF8003E
F8003EF8003EFC003E7C003E7C003E3E007E3F00FE1FC1FE0FFFFE07FFBE03FF3E00FC3E
172A7EA91F>I<007E0003FF8007FFC00FFFE01F83F03F00F03E00787C00787C00387800
3CFFFFFCFFFFFCFFFFFCFFFFFCF80000F80000F800007800007C00007C00003E00003F00
0C1FC07C0FFFFC07FFFC01FFF0007F80161B7E9A1B>I<001FC0007FC000FFC001FFC003
F00003E00007C00007C00007C00007C00007C00007C00007C00007C00007C000FFFE00FF
FE00FFFE0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007
C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007
C00007C000122A7FA912>I<00F8078003FE7FC00FFFFFC01FFFFFC01F07C0003E03E000
3E03E0007C01F0007C01F0007C01F0007C01F0007C01F0007C01F0003E03E0003E03E000
1F07C0001FFFC0003FFF80003BFE000038F8000078000000780000003C0000003FFFC000
3FFFF8001FFFFC001FFFFE003FFFFF007C007F00F8001F80F8000F80F8000F80F8000F80
FC001F807E003F003F80FE003FFFFE000FFFF80007FFF00000FF80001A287E9A1E>I<F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F83F00F8FF80FBFFC0FFFFE0FF07E0FE03F0FC01F0FC01F0FC01F0F8
01F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F8
01F0F801F0F801F0F801F0F801F0F801F0142A7BA91F>I<F8F8F8F8F800000000000000
000000F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7CA90E>
I<F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8052A7CA90E>108 D<F83F003F00F8FFC0FFC0FBFFE3FFE0FFFFF7FFF0
FF83F783F0FE01FE01F8FC00FC00F8FC00FC00F8FC00FC00F8F800F800F8F800F800F8F8
00F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800
F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F8
00F8F800F800F8251B7B9A30>I<F83F00F8FF80FBFFC0FFFFE0FF07E0FE03F0FC01F0FC
01F0FC01F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F8
01F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0141B7B9A1F>I<007F000001FF
C00007FFF0000FFFF8001FC1FC003F007E003E003E007C001F007C001F0078000F00F800
0F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F807C001F007C001F007E00
3F003E003E003F007E001FC1FC000FFFF80007FFF00001FFC000007F0000191B7E9A1E>
I<F83F00F9FFC0FBFFE0FFFFF0FF07F0FC01F8F800FCF800FCF8007CF8007EF8003EF800
3EF8003EF8003EF8003EF8003EF8003EF8007CF8007CF800FCFC00F8FC03F8FF07F0FFFF
E0FBFFC0F9FF80F87E00F80000F80000F80000F80000F80000F80000F80000F80000F800
00F80000F80000F8000017277B9A1F>I<F838F8F8F9F8FBF8FFC0FF00FE00FE00FC00FC
00F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F8000D
1B7B9A14>114 D<03FC001FFF803FFFC07FFFC07C07C0F80080F80000F80000F80000FC
00007F80007FF8003FFE001FFF0007FF8000FFC0000FE00007E00003E00003E04003E0E0
07E0FC0FC0FFFFC07FFF801FFE0003F800131B7E9A17>I<07C00007C00007C00007C000
07C00007C00007C000FFFFC0FFFFC0FFFFC007C00007C00007C00007C00007C00007C000
07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C000
07C04007E1C003FFE003FFE001FF8000FC0013227FA116>I<F801F0F801F0F801F0F801
F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801
F0F801F0F801F0F801F0F801F0F803F0F803F0FC0FF0FFFFF07FFDF03FF9F01FC1F0141B
7B9A1F>I<7C000FC03E001F803F001F001F803E000F807C0007C0FC0003E0F80001F1F0
0001FBE00000FFC000007FC000003F8000001F0000001F0000003F8000007FC00000FBC0
0000F3E00001F1F00003E0F80007C07C000F807C000F803E001F001F003E000F807E000F
C0FC0007E01B1B809A1C>120 D<F8000F80FC000F807C001F007E001F003E003E003E00
3E001F003E001F007C001F007C000F807C000F80F80007C0F80007C0F00007C1F00003E1
F00003E1E00001E1E00001E3E00001F3C00000F3C00000F3800000738000007380000037
0000003F0000003E0000001E0000001E0000003C0000003C0000003C0000007800000078
000000F0000000F000007FE000007FE000007FC000007F00000019277F9A1C>I
E /Fm 53 122 df<007000E001C00380078007000E001E001E003C003C003C0078007800
780078007000F000F000F000F000F000F000F000F000F000F000F000F000700078007800
780078003C003C003C001E001E000E0007000780038001C000E000700C2E7EA112>40
D<E000700038001C001E000E0007000780078003C003C003C001E001E001E001E000E000
F000F000F000F000F000F000F000F000F000F000F000F000E001E001E001E001E003C003
C003C00780078007000E001E001C0038007000E0000C2E7DA112>I<7878787818303060
60E0050A7D830D>44 D<FFC0FFC0FFC00A037F8B0F>I<F0F0F0F004047C830D>I<000100
030003000600060006000C000C000C00180018001800300030003000600060006000C000
C000C00180018001800300030003000600060006000C000C000C00180018001800300030
003000600060006000C000C000C000102D7DA117>I<001F0000001F0000003F8000003B
8000003B8000007BC0000073C0000071C00000F1E00000E1E00000E0E00001E0F00001E0
F00001C0F00003C0780003C078000380780007803C0007803C0007003C000FFFFE000FFF
FE000FFFFE001E000F001E000F003C000F803C0007803C000780780007C0780003C07800
03C0F00003E01B207F9F1E>65 D<001FC000FFF801FFFC03E03C07800C0F00001E00003E
00003C00007C0000780000780000780000F00000F00000F00000F00000F00000F00000F0
0000F000007800007800007800007C00003C00003E00001E00000F000207800E03E03E01
FFFC00FFF0001FC017227DA01D>67 D<FFFC00FFFF80FFFFC0F007E0F001F0F000F8F000
78F0003CF0003CF0001EF0001EF0000EF0000FF0000FF0000FF0000FF0000FF0000FF000
0FF0000FF0000FF0001EF0001EF0001EF0003CF0007CF000F8F001F0F007E0FFFFC0FFFF
80FFFC0018207B9F21>I<FFFFC0FFFFC0FFFFC0F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000FFFF80FFFF80FFFF80F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000FFFFE0FFFFE0FFFFE013
207B9F1B>I<FFFFC0FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000FFFF00FFFF00FFFF00F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000012207B9F1A>
I<001FE000FFF801FFFE03E03E07800E0F00001E00003E00003C00007C00007800007800
00780000F00000F00000F00000F00000F00000F00000F003FEF003FE7803FE78001E7800
1E7C001E3C001E3E001E1E001E0F001E07801E03E03E01FFFE00FFF8001FC017227DA01E
>I<F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F0
0078F00078F00078FFFFF8FFFFF8FFFFF8F00078F00078F00078F00078F00078F00078F0
0078F00078F00078F00078F00078F00078F00078F00078F0007815207B9F20>I<F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207C9F0D>I<
F0003EF0007CF000F8F001F0F003E0F007C0F00780F00F00F01F00F03E00F07C00F0F800
F1F000F3F800F3F800F7FC00FFBC00FF1E00FE1F00FC0F00F80780F00780F003C0F003E0
F001E0F000F0F000F8F00078F0003CF0003CF0001EF0001F18207B9F20>75
D<F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000FFFF80FFFF80FFFF8011207B9F19>I<F80001F8
FC0003F8FC0003F8F4000378F6000778F6000778F6000778F3000E78F3000E78F3000E78
F3801E78F3801E78F1801C78F1C03C78F1C03C78F0C03878F0C03878F0E07878F0E07878
F0607078F070F078F070F078F030E078F039E078F039E078F019C078F019C078F019C078
F00F8078F00F8078F00F8078F00000781D207B9F28>I<FC0078FE0078FE0078F60078F7
0078F70078F38078F38078F38078F3C078F1C078F1E078F1E078F0E078F0F078F07078F0
7078F07878F03878F03C78F03C78F01C78F01E78F00E78F00E78F00E78F00778F00778F0
0378F003F8F003F8F001F815207B9F20>I<003F000000FFC00003FFF00007E1F8000F80
7C001F003E001E001E003C000F003C000F00780007807800078078000780F00003C0F000
03C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F80007C07800
078078000780780007803C000F003C000F001E001E001F003E000F807C0007E1F80003FF
F00000FFC000003F00001A227DA021>I<FFF800FFFF00FFFF80F00FC0F003E0F001E0F0
00F0F000F0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00FC0FFFF80FFFF00FF
F800F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F0000014207B9F1D>I<FFF800FFFF00FFFF80F007C0F003E0F001E0F000F0F000F0
F000F0F000F0F000F0F001E0F003E0F007C0FFFF80FFFF00FFF800F03C00F01E00F01E00
F00F00F00F00F00780F00780F003C0F001C0F001E0F000F0F000F0F00078F00078F0003C
16207B9F1D>82 D<01FC0007FF800FFFC01F03C03C00C03C000078000078000078000078
00007800007C00003C00003F00001FE0000FFC0007FE0001FF00003F800007C00003C000
03E00001E00001E00001E00001E00001E00001C0C003C0F007C0FC0F807FFF001FFE0003
F80013227EA019>I<FFFFFFC0FFFFFFC0FFFFFFC0001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E00001A207E9F1F>I<
F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0
F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0
F000F07801E07801E03C03C03C03C01F0F800FFF0007FE0001F80014217B9F1F>I<F000
01E0F00001E0780003C0780003C0780003C03C0007803C0007803C0007801E000F001E00
0F001F000F000F001E000F001E0007801C0007803C0007803C0003C0380003C0780003C0
780001E0700001E0F00001E0F00000F0E00000F1E00000F1E0000071C000007BC000003B
8000003B8000003F8000001F0000001F00001B207F9F1E>I<F0007C000FF0007E000FF0
007E000F78006E000E7800EE001E7800E7001E7800E7001E3C00E7003C3C01E7803C3C01
C7803C3C01C3803C1E01C380781E03C3C0781E0383C0780E0381C0700F0381C0F00F0781
E0F00F0701E0F0070700E0E0078700E1E0078F00E1E0078E00F1E0038E0071C0038E0071
C003CE0073C001DC00738001DC003B8001DC003B8001DC003B8000F8003F0000F8001F00
00F8001F0028207F9F2B>I<F80000F87C0001F03C0001E03E0003E01F0003C00F000780
0F800F8007C00F0003C01F0003E01E0001F03C0000F07C00007878000078F000003CF000
001CE000001FE000000FC000000780000007800000078000000780000007800000078000
00078000000780000007800000078000000780000007800000078000000780001D20809F
1E>89 D<FFFFF8FFFFF8FFFFF80000F00001F00001E00003C00007C0000780000F80000F
00001E00003E00003C00007C0000780000F00001F00001E00003E00003C0000780000F80
000F00001F00001E00003C00007C0000780000FFFFFCFFFFFCFFFFFC16207D9F1C>I<07
E03FF87FFC701E401F000F000F000F003F07FF1FFF7E0FF80FF00FF00FF00FF83F7FFF3F
EF1F8F10147E9316>97 D<F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F1F000F7FC00FFFE00FC3E00F80F00F00F00F00780F00780F0
0780F00780F00780F00780F00780F00F00F00F00F81F00FC3E00FFFC00F7F800F1E00011
207D9F17>I<03F00FFC1FFE3E0E3C0278007800F000F000F000F000F000F00078007800
3C013E0F1FFF0FFE03F010147E9314>I<00078000078000078000078000078000078000
078000078000078000078000078000078007C7800FF7801FFF803E1F807C0780780780F8
0780F00780F00780F00780F00780F00780F00780F00780780780780F803E1F801FFF800F
F78007C78011207E9F17>I<03F0000FFC001FFE003E1F003C0700780700700380FFFF80
FFFF80FFFF80F00000F00000F000007000007800003C01003E07001FFF0007FE0001F800
11147F9314>I<007E01FE03FE078007000F000F000F000F000F000F000F00FFF0FFF0FF
F00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
20809F0E>I<03E0F00FFFF01FFFF03E3E003C1E00780F00780F00780F00780F00780F00
3C1E003E3E001FFC003FF80033E0003000003800003FFE003FFF801FFFC03FFFE07803F0
F000F0F000F0F000F0F801F07E07E03FFFC00FFF0003FC00141E7F9317>I<F000F000F0
00F000F000F000F000F000F000F000F000F000F1F8F3FCF7FEFC1FF80FF80FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10207D9F17>I<F0F0F0F00000
000000000000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207D9F0B>I<01E001
E001E001E00000000000000000000000000000000001E001E001E001E001E001E001E001
E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E0C3
C0FFC0FF803F000B29839F0C>I<F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F01F00F01E00F03C00F07800F0F000F1E000F3C000F7
8000FFC000FFC000FFE000F9F000F8F000F0F800F07C00F07C00F03E00F01E00F01F00F0
0F8011207D9F16>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F004207D9F0B>I<F0FC07E0F3FE1FF0F7FF3FF8FE0FF07CF807C03CF807C03C
F007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803C
F007803CF007803CF007803CF007803CF007803C1E147D9325>I<F1F8F3FCF7FEFC1FF8
0FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10147D9317
>I<01F80007FE001FFF803F0FC03C03C07801E07801E0F000F0F000F0F000F0F000F0F0
00F0F000F07801E07801E03C03C03F0FC01FFF8007FE0001F80014147F9317>I<F1F000
F7FC00FFFE00FC3E00F81F00F00F00F00F80F00780F00780F00780F00780F00780F00780
F00F00F00F00F81F00FC3E00FFFC00F7F800F1E000F00000F00000F00000F00000F00000
F00000F00000F00000F00000111D7D9317>I<03C7800FF7801FFF803E1F807C0F807807
80780780F00780F00780F00780F00780F00780F00780F807807807807C0F803E1F801FFF
800FF78007C780000780000780000780000780000780000780000780000780000780111D
7E9317>I<F0E0F3E0F7E0FF00FC00FC00F800F800F000F000F000F000F000F000F000F0
00F000F000F000F0000B147D9310>I<07F01FFC3FFC780C7800780078007C003FC01FF0
0FF803F8007C003C003CC03CF07CFFF87FF00FC00E147F9311>I<1E001E001E001E001E
001E00FFF0FFF0FFF01E001E001E001E001E001E001E001E001E001E001E001E001E001E
201FF00FF007C00C1A7F9910>I<F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F
F00FF00FF00FF00FF01FF03FFFFF7FEF3F0F10147D9317>I<F003C0F003C07803807807
807807803C0F003C0F003C0F001E0E001E1E001E1E000F1C000F3C000F3C000738000738
0007B80003F00003F00001E00012147F9315>I<F01F00F0F01F80F0F01F80F0781B81E0
783B81E0783BC1E07839C1E03C31C3C03C71C3C03C71E3C01C70E3801E60E7801E60E780
1EE0E7800EE077000EC077000EC0770007C07E0007C03E0007803E001C147F931F>I<78
01E07C03C03E07801E0F000F0F00079E0003FC0003F80001F80000F00001F00001F80003
FC00079E000F0F000E0F001E07803C03C07801E0F801F01414809315>I<F003C0F003C0
7807807807807C07803C0F003C0F001E0F001E1E000E1E000F1C000F1C00073C00073800
03B80003B80003B00001F00001F00000E00000E00001C00001C00001C000038000078000
7F00007E00007C0000121D7F9315>I E /Fn 1 16 df<03C00FF01FF83FFC7FFE7FFEFF
FFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010127D9317>15
D E /Fo 18 122 df<FFFFFFFFFFFFE00000FFFFFFFFFFFFFE0000FFFFFFFFFFFFFFC000
48477CC654>66 D<FFFFFFFFFFFFC0000000FFFFFFFFFFFFFE000000FFFFFFFFFFFFFFC0
7CC65B>68 D<FFFFFFFFFFFF800000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF0000FFFFFF
C651>80 D<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007FE00
007FF8362E7DAD3A>97 D<007FC00000000000FFFFC00000000000FFFFC00000000000FF
80000001F0001FF800000039487CC742>I<00001FFFC0000000FFFFF8000007FFFFFE00
001FFFFFFF80007FFC00FFC000FFE001FFC001FFC003FFE003FF8003FFE007FF0003FFE0
0FFE0003FFE00FFE0003FFE01FFC0001FFC01FFC0001FFC03FFC0000FF803FFC00003E00
7FF8000000007FF8000000007FF800000000FFF800000000FFF800000000FFF800000000
FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000
FFF8000000007FF8000000007FF8000000007FFC000000003FFC000000003FFC00000000
1FFC000000F81FFE000000F80FFE000000F80FFF000001F007FF800003F003FFC00007E0
01FFE0000FC000FFF0001F80007FFE00FF00001FFFFFFE000007FFFFF8000000FFFFE000
00001FFE00002D2E7CAD35>I<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE
00007FFC07FF0000FFE001FF8001FFC0007FC003FF80003FE007FF00003FF00FFE00001F
F01FFE00000FF81FFC00000FF83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007
FC7FF8000007FE7FF8000007FEFFF8000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFF
FEFFFFFFFFFFFEFFFFFFFFFFFCFFF800000000FFF800000000FFF800000000FFF8000000
007FF8000000007FF8000000007FFC000000003FFC000000003FFC000000003FFC000000
1C1FFE0000003E0FFE0000003E07FF0000007E07FF000000FC03FF800001F801FFC00003
F0007FF0001FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF80
002F2E7DAD36>101 D<00000000001F8000007FF000FFE00007FFFF03FFF0001FFFFFC7
FFFFC0000007FFFFFE000000003FFFC0000035447DAE3B>103 D<007FC00000000000FF
FFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE03B487CC742>I<00FC
0001FE0003FF0007FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01FFFE00FFFC007FF
8003FF0001FE0000FC000000000000000000000000000000000000000000000000000000
00000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001FF
C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
C001FFC001FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF18497CC820>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80
FFFFFF80FFFFFF8019487CC720>108 D<007FC001FFC00000FFE00000FFFFC00FFFF800
E03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF05C2E7CAD63>I<
FFFFFFC07FFFFFE03B2E7CAD42>I<00000FFF0000000000FFFFF000000007FFFFFE0000
00FFFFF0000000000FFF000000342E7DAD3B>I<007FC00FFC000000FFFFC07FFFC00000
FFFFFFC00000000039427CAD42>I<00FF803F8000FFFF80FFF000FFFF83FFFC00FFFF87
FFFE00FFFF8FC3FF00FFFF8F07FF0003FF9E0FFF8001FFBC0FFF8001FFB80FFF8001FFF8
0FFF8001FFF00FFF8001FFF007FF0001FFF007FF0001FFE003FE0001FFE000F80001FFE0
00000001FFE000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0
00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0
00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0
00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0
00000001FFC0000000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFF
E00000292E7CAD31>114 D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FF
E01FC0001FE03F80000FE03F000007E07F000003E07F000003E0FF000003E0FF000003E0
FF800003E0FFC0000000FFF0000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003F
FFFFFC001FFFFFFF000FFFFFFF8007FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003
FFFFF800001FFFF8000000FFFC0000001FFC7800000FFCF8000007FCF8000003FCFC0000
03FCFC000003FCFE000003F8FE000003F8FF000003F8FF800007F0FFC0000FF0FFF0001F
E0FFFC00FFC0FFFFFFFF80FC7FFFFE00F81FFFF800E003FF8000262E7CAD2F>I<7FFFFF
000000000007FFC0000000000001FE00000000000039427EAD3F>121
D E /Fp 8 117 df<00001E000000003E00000000FE00000003FE0000003FFE0000FFFF
FE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00
00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000
000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000
0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F
FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE0000000FFE00007FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFF
C0223879B731>49 D<0000001FFF000030000001FFFFE000F000000FFFFFFC01F000007F
FFFFFF000000000FFFFFFC0000000001FFFFF000000000001FFF0000003C3D7BBB47>67
D<001FFF00000001FFFFF0000003FFFFFC000007F007FE00000FF801FF00001FFC00FF80
001FFC007FC0001FFC007FE0001FFC003FE0000FF8003FF0000FF8003FF00007F0003FF0
0001C0003FF0000000003FF0000000003FF0000000003FF0000000FFFFF000000FFFFFF0
00007FF83FF00001FF803FF00007FE003FF0000FF8003FF0001FF0003FF0003FE0003FF0
007FE0003FF0007FE0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FFC0003FF0
00FFC0007FF0007FE0007FF0007FE000DFF0003FF0039FF8001FFC0F0FFFF007FFFE0FFF
F001FFFC07FFF0003FE000FFF02C267DA530>97 D<0001FFC000000FFFF800003FFFFE00
00FF80FF0001FE003F8007FC001FC00FF8000FE00FF8000FF01FF00007F03FF00007F83F
F00007F87FE00007F87FE00003FC7FE00003FC7FE00003FCFFE00003FCFFFFFFFFFCFFFF
FFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0000000FFE00000007FE00000007FE000
00007FE00000003FE00000003FF000003C1FF000003C1FF000003C0FF800007807FC0000
F803FE0001F001FF0007E000FFC03FC0003FFFFF000007FFFC000000FFE00026267DA52D
>101 D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF
FC3FFFFF303C7CBB37>104 D<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFFFE03FF
00FFFFFC000000FFFFFC000000FFFFFC00000030377DA537>112
D<00FE03F000FFFE0FFE00FFFE1FFF00FFFE3C3F80FFFE707FC007FE60FFE003FEE0FFE0
03FEC0FFE003FFC0FFE003FF807FC003FF807FC003FF803F8003FF800E0003FF00000003
FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE00
00FFFFFE0000FFFFFE000023267DA529>114 D<00078000000780000007800000078000
00078000000F8000000F8000000F8000000F8000001F8000001F8000003F8000003F8000
007F800000FF800001FF800007FF80001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C00FF8078
00FFC078007FC070003FE0E0001FFFC00007FF800001FF001E377EB626>116
D E /Fq 77 123 df<001F83E000F06E3001C078780380F8780300F03007007000070070
000700700007007000070070000700700007007000FFFFFF800700700007007000070070
000700700007007000070070000700700007007000070070000700700007007000070070
000700700007007000070070000700700007007000070070007FE3FF001D20809F1B>11
D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700
00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700
E00700E00700E00700E00700E00700E00700E00700E07FC3FE1720809F19>I<003FE000
E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE007
00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007
00E00700E00700E00700E00700E00700E07FE7FE1720809F19>I<001F81F80000F04F04
0001C07C06000380F80F000300F00F000700F00F00070070000007007000000700700000
070070000007007000000700700000FFFFFFFF0007007007000700700700070070070007
007007000700700700070070070007007007000700700700070070070007007007000700
700700070070070007007007000700700700070070070007007007000700700700070070
07007FE3FE3FF02420809F26>I<70F8F8F8F8F8F8F87070707070707070707020202020
20000000000070F8F8F87005217CA00D>33 D<7038F87CFC7EFC7E743A04020402040208
04080410081008201040200F0E7E9F17>I<70F8FCFC74040404080810102040060E7C9F
0D>39 D<0020004000800100020006000C000C0018001800300030003000700060006000
6000E000E000E000E000E000E000E000E000E000E000E000E00060006000600070003000
30003000180018000C000C000600020001000080004000200B2E7DA112>I<8000400020
00100008000C00060006000300030001800180018001C000C000C000C000E000E000E000
E000E000E000E000E000E000E000E000E000C000C000C001C00180018001800300030006
0006000C00080010002000400080000B2E7DA112>I<70F8FCFC74040404080810102040
060E7C840D>44 D<FFC0FFC00A027F8A0F>I<70F8F8F87005057C840D>I<000100030003
000600060006000C000C000C00180018001800300030003000600060006000C000C000C0
0180018001800300030003000600060006000C000C000C00180018001800300030003000
600060006000C000C000C000102D7DA117>I<03F0000E1C001C0E001806003807007003
80700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003
C0F003C0F003C0F003C0F003C07003807003807003807807803807001806001C0E000E1C
0003F000121F7E9D17>I<018003800F80F3800380038003800380038003800380038003
8003800380038003800380038003800380038003800380038003800380038007C0FFFE0F
1E7C9D17>I<03F0000C1C00100E00200700400780800780F007C0F803C0F803C0F803C0
2007C00007C0000780000780000F00000E00001C0000380000700000600000C000018000
0300000600400C00401800401000803FFF807FFF80FFFF80121E7E9D17>I<03F0000C1C
00100E00200F00780F80780780780780380F80000F80000F00000F00000E00001C000038
0003F000003C00000E00000F000007800007800007C02007C0F807C0F807C0F807C0F007
80400780400F00200E001C3C0003F000121F7E9D17>I<000600000600000E00000E0000
1E00002E00002E00004E00008E00008E00010E00020E00020E00040E00080E00080E0010
0E00200E00200E00400E00C00E00FFFFF0000E00000E00000E00000E00000E00000E0000
0E0000FFE0141E7F9D17>I<1803001FFE001FFC001FF8001FE000100000100000100000
10000010000010000011F000161C00180E001007001007800003800003800003C00003C0
0003C07003C0F003C0F003C0E00380400380400700200600100E000C380003E000121F7E
9D17>I<007C000182000701000E03800C07801C07803803003800007800007000007000
00F1F000F21C00F40600F80700F80380F80380F003C0F003C0F003C0F003C0F003C07003
C07003C07003803803803807001807000C0E00061C0001F000121F7E9D17>I<4000007F
FFC07FFF807FFF8040010080020080020080040000080000080000100000200000200000
400000400000C00000C00001C00001800003800003800003800003800007800007800007
8000078000078000078000078000030000121F7D9D17>I<03F0000C0C00100600300300
2001806001806001806001807001807803003E03003F06001FC8000FF00003F80007FC00
0C7E00103F00300F806003804001C0C001C0C000C0C000C0C000C0C00080600180200100
1002000C0C0003F000121F7E9D17>I<03F0000E18001C0C003806003807007007007003
80F00380F00380F003C0F003C0F003C0F003C0F003C07007C07007C03807C0180BC00E13
C003E3C0000380000380000380000700300700780600780E00700C002018001070000FC0
00121F7E9D17>I<70F8F8F8700000000000000000000070F8F8F87005147C930D>I<70F8
F8F8700000000000000000000070F0F8F878080808101010202040051D7C930D>I<0001
00000003800000038000000380000007C0000007C0000007C0000009E0000009E0000009
E0000010F0000010F0000010F00000207800002078000020780000403C0000403C000040
3C0000801E0000801E0000FFFE0001000F0001000F0001000F0002000780020007800200
0780040003C00E0003C01F0007E0FFC03FFE1F207F9F22>65 D<FFFFE0000F8038000780
1E0007801F0007800F0007800F8007800F8007800F8007800F8007800F8007800F000780
1F0007801E0007803C0007FFF00007803C0007801E0007800F0007800F80078007800780
07C0078007C0078007C0078007C0078007C00780078007800F8007800F0007801F000F80
3C00FFFFF0001A1F7E9E20>I<000FC040007030C001C009C0038005C0070003C00E0001
C01E0000C01C0000C03C0000C07C0000407C00004078000040F8000000F8000000F80000
00F8000000F8000000F8000000F8000000F8000000F8000000780000007C0000407C0000
403C0000401C0000401E0000800E000080070001000380020001C0040000703800000FC0
001A217D9F21>I<FFFFE0000F803C0007801E000780070007800380078003C0078001E0
078001E0078001F0078000F0078000F0078000F8078000F8078000F8078000F8078000F8
078000F8078000F8078000F8078000F8078000F0078000F0078000F0078001E0078001E0
078003C0078003800780070007800E000F803C00FFFFE0001D1F7E9E23>I<FFFFFF000F
800F00078003000780030007800100078001800780008007800080078000800780808007
80800007808000078080000781800007FF80000781800007808000078080000780800007
808000078000200780002007800020078000400780004007800040078000C0078000C007
8001800F800F80FFFFFF801B1F7E9E1F>I<FFFFFF000F800F0007800300078003000780
010007800180078000800780008007800080078000800780800007808000078080000780
80000781800007FF80000781800007808000078080000780800007808000078000000780
00000780000007800000078000000780000007800000078000000FC00000FFFE0000191F
7E9E1E>I<000FE0200078186000E004E0038002E0070001E00F0000E01E0000601E0000
603C0000603C0000207C00002078000020F8000000F8000000F8000000F8000000F80000
00F8000000F8000000F8007FFCF80003E0780001E07C0001E03C0001E03C0001E01E0001
E01E0001E00F0001E0070001E0038002E000E0046000781820000FE0001E217D9F24>I<
FFF8FFF80F800F8007800F0007800F0007800F0007800F0007800F0007800F0007800F00
07800F0007800F0007800F0007800F0007800F0007FFFF0007800F0007800F0007800F00
07800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F00
07800F0007800F000F800F80FFF8FFF81D1F7E9E22>I<FFFC0FC0078007800780078007
800780078007800780078007800780078007800780078007800780078007800780078007
8007800780078007800FC0FFFC0E1F7F9E10>I<0FFFC0007C00003C00003C00003C0000
3C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0000
3C00003C00003C00003C00003C00003C00203C00F83C00F83C00F83C00F0380040780040
700030E0000F800012207E9E17>I<FFFC0FFC0FC003E007800180078001000780020007
800400078008000780100007802000078040000780800007810000078300000787800007
8F80000793C0000791E00007A1E00007C0F0000780F0000780780007803C0007803C0007
801E0007801E0007800F000780078007800780078007C00FC007E0FFFC3FFC1E1F7E9E23
>I<FFFE000FC00007800007800007800007800007800007800007800007800007800007
800007800007800007800007800007800007800007800007800007800207800207800207
800207800607800407800407800C07801C0F807CFFFFFC171F7E9E1C>I<FF80001FF80F
80001F800780001F0005C0002F0005C0002F0005C0002F0004E0004F0004E0004F000470
008F000470008F000470008F000438010F000438010F000438010F00041C020F00041C02
0F00041C020F00040E040F00040E040F00040E040F000407080F000407080F000407080F
000403900F000403900F000401E00F000401E00F000401E00F000E00C00F001F00C01F80
FFE0C1FFF8251F7E9E2A>I<FF803FF807C007C007C0038005E0010005E0010004F00100
0478010004780100043C0100043C0100041E0100040F0100040F01000407810004078100
0403C1000401E1000401E1000400F1000400F1000400790004003D0004003D0004001F00
04001F0004000F0004000700040007000E0003001F000300FFE001001D1F7E9E22>I<00
1F800000F0F00001C0380007801E000F000F000E0007001E0007803C0003C03C0003C07C
0003E0780001E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F8
0001F0F80001F0F80001F0780001E07C0003E07C0003E03C0003C03C0003C01E0007800E
0007000F000F0007801E0001C0380000F0F000001F80001C217D9F23>I<FFFFE0000F80
780007801C0007801E0007800F0007800F8007800F8007800F8007800F8007800F800780
0F8007800F0007801E0007801C000780780007FFE0000780000007800000078000000780
000007800000078000000780000007800000078000000780000007800000078000000780
00000FC00000FFFC0000191F7E9E1F>I<FFFF80000F80F0000780780007803C0007801E
0007801E0007801F0007801F0007801F0007801F0007801E0007801E0007803C00078078
000780F00007FF80000781C0000780E0000780F000078070000780780007807800078078
0007807C0007807C0007807C0007807C0407807E0407803E040FC01E08FFFC0F10000003
E01E207E9E21>82 D<07E0800C1980100780300380600180600180E00180E00080E00080
E00080F00000F000007800007F00003FF0001FFC000FFE0003FF00001F800007800003C0
0003C00001C08001C08001C08001C08001C0C00180C00380E00300F00600CE0C0081F800
12217D9F19>I<7FFFFFE0780F01E0600F0060400F0020400F0020C00F0030800F001080
0F0010800F0010800F0010000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000000F0000000F0000001F800007FFFE001C1F7E9E21>I<FFFC3FF80FC0
07C007800380078001000780010007800100078001000780010007800100078001000780
010007800100078001000780010007800100078001000780010007800100078001000780
010007800100078001000780010007800100038002000380020001C0020001C0040000E0
08000070180000382000000FC0001D207E9E22>I<FFF003FE1F8000F80F0000600F8000
60078000400780004003C0008003C0008003C0008001E0010001E0010001F0010000F002
0000F0020000F806000078040000780400003C0800003C0800003C0800001E1000001E10
00001F3000000F2000000F20000007C0000007C0000007C0000003800000038000000380
00000100001F207F9E22>I<FFF07FF81FF01F800FC007C00F00078003800F0007800100
0F0007C00100078007C00200078007C00200078007C0020003C009E0040003C009E00400
03C009E0040003E010F00C0001E010F0080001E010F0080001F02078080000F020781000
00F02078100000F0403C10000078403C20000078403C20000078C03E2000003C801E4000
003C801E4000003C801E4000001F000F8000001F000F8000001F000F8000001E00078000
000E00070000000E00070000000C000300000004000200002C207F9E2F>I<7FF83FF80F
E00FC007C0070003C0020001E0040001F00C0000F0080000781000007C1000003C200000
3E4000001E4000000F8000000F8000000780000003C0000007E0000005E0000009F00000
18F8000010780000207C0000603C0000401E0000801F0001800F0001000780020007C007
0003C01F8007E0FFE01FFE1F1F7F9E22>I<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FEFE072D7CA10D>91
D<080410082010201040204020804080408040B85CFC7EFC7E7C3E381C0F0E7B9F17>I<
FEFE06060606060606060606060606060606060606060606060606060606060606060606
06060606060606FEFE072D7FA10D>I<1FE000303000781800781C00300E00000E00000E
00000E0000FE00078E001E0E00380E00780E00F00E10F00E10F00E10F01E10781E103867
200F83C014147E9317>97 D<0E0000FE00000E00000E00000E00000E00000E00000E0000
0E00000E00000E00000E00000E3E000EC3800F01C00F00E00E00E00E00700E00700E0078
0E00780E00780E00780E00780E00780E00700E00700E00E00F00E00D01C00CC300083E00
15207F9F19>I<03F80E0C1C1E381E380C70007000F000F000F000F000F000F000700070
00380138011C020E0C03F010147E9314>I<000380003F80000380000380000380000380
00038000038000038000038000038000038003E380061B801C0780380380380380700380
700380F00380F00380F00380F00380F00380F003807003807003803803803807801C0780
0E1B8003E3F815207E9F19>I<03F0000E1C001C0E00380700380700700700700380F003
80F00380FFFF80F00000F00000F000007000007000003800801800800C010007060001F8
0011147F9314>I<007C00C6018F038F07060700070007000700070007000700FFF00700
070007000700070007000700070007000700070007000700070007000700070007007FF0
1020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F
00380E001C1C001E380033E0002000002000003000003000003FFE001FFF800FFFC03001
E0600070C00030C00030C00030C000306000603000C01C038003FC00141F7F9417>I<0E
0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E
3E000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16207F9F19>I<1C001E003E00
1E001C000000000000000000000000000E007E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E00FFC00A1F809E0C>I<00E001F001F001F000
E0000000000000000000000000007007F000F00070007000700070007000700070007000
700070007000700070007000700070007000700070007000706070F060F0C061803F000C
28829E0E>I<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E0000
0E00000E00000E0FF00E03C00E03000E02000E04000E08000E10000E30000E70000EF800
0F38000E1C000E1E000E0E000E07000E07800E03800E03C00E03E0FFCFF815207F9F18>
I<0E00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B20809F0C>I<
0E1F01F000FE618618000E81C81C000F00F00E000F00F00E000E00E00E000E00E00E000E
00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00
E00E000E00E00E000E00E00E000E00E00E000E00E00E00FFE7FE7FE023147F9326>I<0E
3E00FE43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16147F9319>I<01F800070E00
1C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E0
7000E03801C03801C01C0380070E0001F80014147F9317>I<0E3E00FEC3800F01C00F00
E00E00E00E00F00E00700E00780E00780E00780E00780E00780E00780E00700E00F00E00
E00F01E00F01C00EC3000E3E000E00000E00000E00000E00000E00000E00000E00000E00
00FFE000151D7F9319>I<03E0800619801C05803C0780380380780380700380F00380F0
0380F00380F00380F00380F003807003807803803803803807801C0B800E138003E38000
0380000380000380000380000380000380000380000380003FF8151D7E9318>I<0E78FE
8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FF
E00F147F9312>I<1F9030704030C010C010C010E00078007F803FE00FF0007080388018
8018C018C018E030D0608F800D147E9312>I<020002000200060006000E000E003E00FF
F80E000E000E000E000E000E000E000E000E000E000E000E080E080E080E080E08061003
1001E00D1C7F9B12>I<0E01C0FE1FC00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603C0030DC001F1FC1614
7F9319>I<FF83F81E01E01C00C00E00800E00800E008007010007010003820003820003
820001C40001C40001EC0000E80000E80000700000700000700000200015147F9318>I<
FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E03C0400707C0800704C080
0704E080038861000388710003C8730001D0320001D03A0000F03C0000E01C0000E01C00
00601800004008001E147F9321>I<7FC3FC0F01E00701C007018003810001C20000E400
00EC00007800003800003C00007C00004E000087000107000303800201C00601E01E01E0
FF07FE1714809318>I<FF83F81E01E01C00C00E00800E00800E00800701000701000382
0003820003820001C40001C40001EC0000E80000E8000070000070000070000020000020
00004000004000004000F08000F08000F100006200003C0000151D7F9318>I<3FFF380E
200E201C40384078407000E001E001C00380078007010E011E011C0338027006700EFFFE
10147F9314>I E /Fr 47 122 df<70F8FCFC7404040404080810102040060F7C840E>
44 D<FFE0FFE00B027F8B10>I<70F8F8F87005057C840E>I<01F000071C000C06001803
003803803803807001C07001C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001
E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001C07001C07001C07803
C03803803803801C07000C0600071C0001F00013227EA018>48 D<008003800F80F38003
800380038003800380038003800380038003800380038003800380038003800380038003
800380038003800380038003800380038007C0FFFE0F217CA018>I<03F8000C1E001007
002007804007C07807C07803C07807C03807C0000780000780000700000F00000E000038
0003F000001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F803
E0F003C04003C0400780200780100F000C1C0003F00013227EA018>51
D<000200000600000E00000E00001E00001E00002E00004E00004E00008E00008E00010E
00020E00020E00040E00040E00080E00100E00100E00200E00200E00400E00800E00FFFF
F8000E00000E00000E00000E00000E00000E00000E00001F0001FFF015217FA018>I<10
00801E07001FFF001FFE001FF80013E00010000010000010000010000010000010000010
F800130E001407001803801003800001C00001C00001E00001E00001E00001E07001E0F0
01E0F001E0E001C08001C04003C04003802007001006000C1C0003F00013227EA018>I<
007E0001C1000300800601C00E03C01C03C0180180380000380000780000700000700000
F0F800F30C00F40600F40300F80380F801C0F001C0F001E0F001E0F001E0F001E0F001E0
7001E07001E07001E03801C03801C01803801C03000C0600070C0001F00013227EA018>
I<4000006000007FFFE07FFFC07FFFC0400080C001008001008002008002000004000008
0000080000100000300000200000600000600000600000E00000C00000C00001C00001C0
0001C00001C00003C00003C00003C00003C00003C00003C00003C00003C0000180001323
7DA118>I<01F800060E000803001001802001802000C06000C06000C06000C07000C078
01803E01003F02001FC4000FF80003F80003FC00067F00083F80100F803007C06001C060
00E0C000E0C00060C00060C00060C000606000406000C03000801803000E0E0003F00013
227EA018>I<01F000060C000C0600180700380380700380700380F001C0F001C0F001C0
F001E0F001E0F001E0F001E0F001E07001E07003E03803E01805E00C05E00619E003E1E0
0001C00001C00001C0000380000380300300780700780600700C002018001030000FC000
13227EA018>I<0001800000018000000180000003C0000003C0000003C0000005E00000
05E000000DF0000008F0000008F0000010F800001078000010780000203C0000203C0000
203C0000401E0000401E0000401E0000800F0000800F0000FFFF00010007800100078003
0007C0020003C0020003C0040003E0040001E0040001E00C0000F00C0000F03E0001F8FF
800FFF20237EA225>65 D<0007E0100038183000E0063001C00170038000F0070000F00E
0000701E0000701C0000303C0000303C0000307C0000107800001078000010F8000000F8
000000F8000000F8000000F8000000F8000000F8000000F800000078000000780000107C
0000103C0000103C0000101C0000201E0000200E000040070000400380008001C0010000
E0020000381C000007E0001C247DA223>67 D<FFFFFFC00F8007C0078001C0078000C007
800040078000400780006007800020078000200780002007802020078020000780200007
802000078060000780E00007FFE0000780E0000780600007802000078020000780200007
802008078000080780000807800010078000100780001007800030078000300780007007
8000E00F8003E0FFFFFFE01D227EA121>69 D<FFFFFFC00F8007C0078001C0078000C007
800040078000400780006007800020078000200780002007802020078020000780200007
802000078060000780E00007FFE0000780E0000780600007802000078020000780200007
802000078000000780000007800000078000000780000007800000078000000780000007
8000000FC00000FFFE00001B227EA120>I<FFFC0FC00780078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780
078007800780078007800FC0FFFC0E227EA112>73 D<FFC00003FF0FC00003F007C00003
E005E00005E005E00005E004F00009E004F00009E004F00009E004780011E004780011E0
04780011E0043C0021E0043C0021E0043C0021E0041E0041E0041E0041E0040F0081E004
0F0081E0040F0081E004078101E004078101E004078101E00403C201E00403C201E00401
E401E00401E401E00401E401E00400F801E00400F801E00400F801E004007001E00E0070
01E01F007003F0FFE0203FFF28227EA12D>77 D<FF8007FF07C000F807C0007005E00020
04F0002004F0002004780020047C0020043C0020041E0020041F0020040F002004078020
040780200403C0200401E0200401E0200400F0200400F8200400782004003C2004003E20
04001E2004000F2004000F20040007A0040003E0040003E0040001E0040001E0040000E0
0E0000601F000060FFE0002020227EA125>I<000FE00000783C0000E00E0003C0078007
8003C00F0001E00E0000E01E0000F03C0000783C0000787C00007C7C00007C7800003C78
00003CF800003EF800003EF800003EF800003EF800003EF800003EF800003EF800003EF8
00003E7800003C7C00007C7C00007C3C0000783E0000F81E0000F00F0001E00F0001E007
8003C003C0078000E00E0000783C00000FE0001F247DA226>I<FFFFF0000F803C000780
0F0007800780078007C0078003C0078003E0078003E0078003E0078003E0078003E00780
03E0078003C0078007C00780078007800F0007803C0007FFF00007800000078000000780
000007800000078000000780000007800000078000000780000007800000078000000780
000007800000078000000FC00000FFFC00001B227EA121>I<FFFFE000000F803C000007
800E00000780078000078007C000078003C000078003E000078003E000078003E0000780
03E000078003E000078003C000078007C000078007800007800E000007803C000007FFE0
00000780700000078038000007801C000007801E000007800E000007800F000007800F00
0007800F000007800F000007800F800007800F800007800F800007800F808007800FC080
078007C0800FC003C100FFFC01E2000000007C0021237EA124>82
D<03F0200C0C601802603001E07000E0600060E00060E00060E00020E00020E00020F000
00F000007800007F00003FF0001FFE000FFF0003FF80003FC00007E00001E00000F00000
F0000070800070800070800070800070C00060C00060E000C0F000C0C80180C6070081FC
0014247DA21B>I<7FFFFFF87807807860078018400780084007800840078008C007800C
800780048007800480078004800780040007800000078000000780000007800000078000
000780000007800000078000000780000007800000078000000780000007800000078000
00078000000780000007800000078000000780000007800000078000000FC00003FFFF00
1E227EA123>I<0FE0001838003C0C003C0E0018070000070000070000070000FF0007C7
001E07003C0700780700700700F00708F00708F00708F00F087817083C23900FC1E01515
7E9418>97 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E0000
0E00000E00000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E
0E001E0E001E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0
083F0017237FA21B>I<01FE000703000C07801C0780380300780000700000F00000F000
00F00000F00000F00000F00000F000007000007800403800401C00800C010007060001F8
0012157E9416>I<0000E0000FE00001E00000E00000E00000E00000E00000E00000E000
00E00000E00000E00000E00000E001F8E00704E00C02E01C01E03800E07800E07000E0F0
00E0F000E0F000E0F000E0F000E0F000E0F000E07000E07800E03800E01801E00C02E007
0CF001F0FE17237EA21B>I<01FC000707000C03801C01C03801C07801E07000E0F000E0
FFFFE0F00000F00000F00000F00000F000007000007800203800201C00400E0080070300
00FC0013157F9416>I<003C00C6018F038F030F07000700070007000700070007000700
0700FFF80700070007000700070007000700070007000700070007000700070007000700
0700070007807FF8102380A20F>I<00007001F198071E180E0E181C07001C07003C0780
3C07803C07803C07801C07001C07000E0E000F1C0019F000100000100000180000180000
1FFE000FFFC00FFFE03800F0600030400018C00018C00018C000186000306000303800E0
0E038003FE0015217F9518>I<0E0000FE00001E00000E00000E00000E00000E00000E00
000E00000E00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00
700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00
700E00700E0070FFE7FF18237FA21B>I<1C001E003E001E001C00000000000000000000
000000000000000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E000E000E00FFC00A227FA10E>I<01C003E003E003E001C0000000000000
0000000000000000000001E00FE001E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F18061803E00
0B2C82A10F>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00
000E00000E00000E00000E00000E03FC0E01F00E01C00E01800E02000E04000E08000E10
000E38000EF8000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00F00E00
F8FFE3FE17237FA21A>I<0E00FE001E000E000E000E000E000E000E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E00FFE00B237FA20E>I<0E1FC07F00FE60E183801E807201C00F003C00E0
0F003C00E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E
003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E00
3800E00E003800E0FFE3FF8FFE27157F942A>I<0E1F80FE60C01E80E00F00700F00700E
00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E
00700E00700E0070FFE7FF18157F941B>I<01FC000707000C01801800C03800E0700070
700070F00078F00078F00078F00078F00078F00078F000787000707800F03800E01C01C0
0E038007070001FC0015157F9418>I<0E1F00FE61C00E80600F00700E00380E003C0E00
1C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00380F00700E80
E00E41C00E3F000E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE0
00171F7F941B>I<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E00
0E000E000E000E000E000F00FFF010157F9413>114 D<0F8830786018C018C008C008E0
08F0007F803FE00FF001F8003C801C800C800CC00CC008E018D0308FC00E157E9413>I<
02000200020002000600060006000E001E003E00FFF80E000E000E000E000E000E000E00
0E000E000E000E000E040E040E040E040E040E040708030801F00E1F7F9E13>I<0E0070
FE07F01E00F00E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070
0E00700E00700E00700E00F00E00F006017003827800FC7F18157F941B>I<FFC1FE1E00
780E00300E00200E002007004007004003808003808003808001C10001C10000E20000E2
0000E20000740000740000380000380000380000100017157F941A>I<FF8FF8FF1E01E0
3C1C01C0180E01C0180E01E0100E01E01007026020070270200702702003843040038438
400384384001C8188001C81C8001C81C8000F00D0000F00F0000F00F0000600600006006
000060060020157F9423>I<FFC1FE1E00780E00300E00200E0020070040070040038080
03808003808001C10001C10000E20000E20000E200007400007400003800003800003800
001000001000002000002000002000004000F04000F08000F180004300003C0000171F7F
941A>121 D E /Fs 20 118 df<FFFF80FFFF80FFFF8011037F9016>45
D<FFFFFFE00000FFFFFFFC000007E0007F000003E0000F800003E00003C00003E00001E0
0003E00000F00003E00000780003E000003C0003E000001E0003E000001E0003E000000F
0003E000000F0003E000000F8003E00000078003E0000007C003E0000007C003E0000003
C003E0000003C003E0000003E003E0000003E003E0000003E003E0000003E003E0000003
E003E0000003E003E0000003E003E0000003E003E0000003E003E0000003E003E0000003
E003E0000003C003E0000003C003E0000007C003E0000007C003E00000078003E0000007
8003E000000F8003E000000F0003E000001F0003E000001E0003E000003C0003E0000078
0003E00000F80003E00001F00003E00003E00003E0000F800007E0003F0000FFFFFFFC00
00FFFFFFE000002B317CB033>68 D<FFFF80FFFF8007F00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00007F000FFFF80FFFF8011317DB017>73 D<FFF00000007FF8FFF000
FFF8FFF800800FFFF835317CB03D>77 D<FFFFFFC000FFFFFFF80007E0007E0003E0001F
0003E000078003E00003C003E00001E003E00001F003E00001F003E00000F003E00000F8
03E00000F803E00000F803E00000F803E00000F803E00000F803E00000F003E00001F003
E00001E003E00003E003E00003C003E000078003E0001F0003E0007C0003FFFFF00003E0
00000003E000000003E000000003E000000003E000000003E000000003E000000003E000
000003E000000003E000000003E000000003E000000003E000000003E000000003E00000
0003E000000003E000000003E000000003E000000003E000000003E000000007F0000000
FFFF800000FFFF80000025317CB02D>80 D<007F802001FFE02007C078600F001C601E00
06E03C0003E0380001E0780000E0700000E070000060F0000060F0000060F0000020F000
0020F0000020F8000020F80000007C0000007E0000003F0000003FC000001FF800000FFF
800007FFF80003FFFC0000FFFF00000FFF800000FFC000001FE0000007E0000003F00000
01F0000000F0000000F8000000F88000007880000078800000788000007880000078C000
0078C0000070E00000F0E00000E0F00000E0F80001C0EC000380C7000700C1F01E00807F
FC00800FF0001D337CB125>83 D<00FE00000303C0000C00E00010007000100038003C00
3C003E001C003E001E003E001E0008001E0000001E0000001E0000001E00000FFE0000FC
1E0003E01E000F801E001F001E003E001E003C001E007C001E00F8001E04F8001E04F800
1E04F8003E04F8003E0478003E047C005E043E008F080F0307F003FC03E01E1F7D9E21>
97 D<003F8000E0600380180700040F00041E001E1C003E3C003E7C003E7C0008780000
F80000F80000F80000F80000F80000F80000F80000F80000F800007800007C00007C0000
3C00011E00011E00020F000207000403801800E060003F80181F7D9E1D>99
D<000001E000003FE000003FE0000003E0000001E0000001E0000001E0000001E0000001
E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001
E0000001E0001F81E000F061E001C019E0078005E00F0003E00E0003E01E0001E03C0001
E03C0001E07C0001E0780001E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001
E0F80001E0F80001E0F80001E0780001E0780001E03C0001E03C0001E01C0001E01E0003
E00E0005E0070009E0038011F000E061FF003F81FF20327DB125>I<003F800000E0E000
0380380007003C000E001E001E001E001C000F003C000F007C000F0078000F8078000780
F8000780F8000780FFFFFF80F8000000F8000000F8000000F8000000F8000000F8000000
780000007C0000003C0000003C0000801E0000800E0001000F0002000780020001C00C00
00F03000001FC000191F7E9E1D>I<0007E0001C1000383800707C00E07C01E07C01C038
03C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C000
FFFFC0FFFFC003C00003C00003C00003C00003C00003C00003C00003C00003C00003C000
03C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C000
03C00003C00003C00003C00007E0007FFF007FFF0016327FB114>I<000000F0007F0308
01C1C41C0380E81C070070080F0078001E003C001E003C003E003E003E003E003E003E00
3E003E003E003E003E003E001E003C001E003C000F007800070070000780E00009C1C000
087F000018000000180000001800000018000000180000001C0000000E0000000FFFF800
07FFFF0003FFFF800E000FC0180001E0300000F070000070E0000038E0000038E0000038
E0000038E00000387000007070000070380000E01C0001C00700070001C01C00003FE000
1E2F7E9F21>I<07000F801F801F800F8007000000000000000000000000000000000000
00000000000780FF80FF800F800780078007800780078007800780078007800780078007
800780078007800780078007800780078007800780078007800FC0FFF8FFF80D307EAF12
>105 D<0780FE001FC000FF83078060F000FF8C03C18078000F9001E2003C0007A001E4
003C0007A000F4001E0007C000F8001E0007C000F8001E00078000F0001E00078000F000
1E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E
00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00
078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007
8000F0001E00078000F0001E00078000F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC
1FFF83FFF0341F7E9E38>109 D<0780FE0000FF83078000FF8C03C0000F9001E00007A0
01E00007A000F00007C000F00007C000F000078000F000078000F000078000F000078000
F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0
00078000F000078000F000078000F000078000F000078000F000078000F000078000F000
078000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF80211F7E9E25>I<001FC000
00F0780001C01C00070007000F0007801E0003C01C0001C03C0001E03C0001E0780000F0
780000F0780000F0F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8
F80000F8780000F07C0001F03C0001E03C0001E01E0003C01E0003C00F00078007800F00
01C01C0000F07800001FC0001D1F7E9E21>I<0783E0FF8C18FF907C0F907C07A07C07C0
3807C00007C00007C0000780000780000780000780000780000780000780000780000780
000780000780000780000780000780000780000780000780000780000780000FC000FFFE
00FFFE00161F7E9E19>114 D<01FC100E03301800F0300070600030E00030E00010E000
10E00010F00010F800007E00003FF0001FFF000FFFC003FFE0003FF00001F80000F88000
3C80003C80001CC0001CC0001CE0001CE00018F00038F00030CC0060C301C080FE00161F
7E9E1A>I<00400000400000400000400000400000C00000C00000C00001C00001C00003
C00007C0000FC0001FFFE0FFFFE003C00003C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C00003C00003C00003C00003C01003C01003C01003
C01003C01003C01003C01003C01001C02001E02000E0400078C0001F00142C7FAB19>I<
078000F000FF801FF000FF801FF0000F8001F000078000F000078000F000078000F00007
8000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F000078000
F000078000F000078001F000078001F000078001F000038002F00003C004F00001C008F8
00007030FF80001FC0FF80211F7E9E25>I E /Ft 5 85 df<00000000C00000000000E0
E02B327BB135>65 D<000FFFFFFE0000000FFFFFFF800000007F000FE00000007E0003F0
01F8000FC0000003F8007F000000FFFFFFFC000000FFFFFFE000000031317BB036>68
D<000FFFFFFFFC000FFFFFFFFC00007F0001FC00007E00007C00007E00003C00007E0000
3C00007E0000180000FC0000180000FC0000180000FC0000180000FC0000180001F80000
180001F80000180001F80000180001F80000180003F00080100003F00180000003F00180
000003F00180000007E00300000007E00300000007E00700000007E01F0000000FFFFE00
00000FFFFE0000000FC01E0000000FC00E0000001F800C0000001F800C0000001F800C00
00001F800C0000003F00180000003F00080000003F00000000003F00000000007E000000
00007E00000000007E00000000007E0000000000FC0000000000FC0000000000FC000000
0000FC0000000001F80000000001F80000000001F80000000003F800000000FFFFF00000
00FFFFF00000002E317BB02F>70 D<000FFFFFF000000FFFFFFE0000007F003F8000007E
000FC000007E0007E000007E0003F000007E0001F80000FC0001F80000FC0001F80000FC
0001F80000FC0001F80001F80003F80001F80003F80001F80003F80001F80003F00003F0
0007F00003F00007E00003F0000FC00003F0000FC00007E0001F000007E0007E000007E0
00FC000007E007F000000FFFFFC000000FFFFF0000000FC00F8000000FC003C000001F80
03E000001F8001F000001F8001F000001F8001F800003F0001F800003F0001F800003F00
01F800003F0001F800007E0003F800007E0003F800007E0003F000007E0003F00000FC00
07F00000FC0007F00000FC0007F00800FC0007F00C01F80007F01801F80007F01801F800
03F03003F80003F030FFFFE001F0E0FFFFE000FFC0000000003F002E327BB034>82
D<07FFFFFFFFF00FFFFFFFFFF00FC00FE003F01E000FC000F01C000FC000E018000FC000
E038000FC0006030001F8000E030001F8000E060001F8000C060001F8000C060003F0000
C0C0003F0000C0C0003F0000C0C0003F0000C080007E00008000007E00000000007E0000
0000007E0000000000FC0000000000FC0000000000FC0000000000FC0000000001F80000
000001F80000000001F80000000001F80000000003F00000000003F00000000003F00000
000003F00000000007E00000000007E00000000007E00000000007E0000000000FC00000
00000FC0000000000FC0000000000FC0000000001F80000000001F80000000001F800000
00001F80000000003F00000000003F00000000003F0000000000FF00000000FFFFFF0000
00FFFFFF0000002C3173B033>84 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin

%%EndSetup
%%Page: 0 1
0 0 bop 795 908 a Ft(D)26 b(R)g(A)f(F)h(T)225 999 y Fs(Do)r(cumen)n(t)
20 b(for)i(a)f(Standard)g(Message-P)n(assing)f(In)n(terface)621
1194 y Fr(Message)c(P)o(assing)h(In)o(terface)e(F)l(orum)793
1320 y(Octob)q(er)h(17,)h(1995)77 1378 y(This)g(w)o(ork)f(w)o(as)h
(supp)q(orted)g(in)f(part)h(b)o(y)e(ARP)l(A)h(and)h(NSF)e(under)h(gran)
o(t)h(ASC-9310330,)i(the)192 1436 y(National)d(Science)f(F)l(oundation)
i(Science)e(and)i(T)l(ec)o(hnology)f(Cen)o(ter)f(Co)q(op)q(erativ)o(e)
76 1494 y(Agreemen)o(t)e(No.)22 b(CCR-8809615,)d(and)e(b)o(y)e(the)h
(Commission)e(of)j(the)f(Europ)q(ean)i(Comm)o(unit)n(y)654
1552 y(through)f(Esprit)f(pro)s(ject)g(P6643.)p eop
%%Page: 1 2
1 1 bop 166 45 a Fq(This)20 b(is)h(the)f(result)g(of)f(a)h(LaT)l(eX)g
(run)g(of)g(a)f(draft)g(of)h(a)f(single)j(c)o(hapter)d(of)h(the)g(MPIF)
f(Final)75 102 y(Rep)q(ort)d(do)q(cumen)o(t.)969 2828
y(i)p eop
%%Page: 1 3
1 2 bop 75 356 a Fp(Chapter)34 b(1)75 564 y Fo(Dynamic)40
b(Pro)s(cesses)75 786 y Fq(This)20 b(v)o(ersion)f(is)g(substan)o
(tially)h(c)o(hanged)g(\(and)f(shortened!\))31 b(from)18
b(the)h(previous)h(prop)q(osal.)32 b(The)75 843 y(main)23
b(di\013erence)g(is)g(the)g(abandonmen)o(t)f(of)g(the)g(am)o(bition)h
(to)f(pro)o(vide)h(a)f(p)q(ortable)h(in)o(terface)g(to)75
899 y(resource)14 b(managers.)k(This)d(simpli\014es)h(the)e(in)o
(terface)g(substan)o(tially)l(,)h(at)e(some)g(cost)g(in)i(functionalit)
o(y)l(.)75 956 y(The)g(main)h(c)o(hanges)f(are:)143 1062
y Fn(\017)23 b Fq(There)14 b(is)h(no)f(assumption)h(of)f(the)g
(existence)i(of)e(a)g(resource)g(manager,)f(so)h(the)h(long)f
(discussion)189 1119 y(at)e(the)h(b)q(eginning)j(ab)q(out)d(the)g(mo)q
(del)h(of)f(the)g(run)o(time)g(en)o(vironmen)o(t,)h(with)f(resource)h
(manager)189 1175 y(and)h(pro)q(cess)g(manager,)g(is)g(gone.)143
1269 y Fn(\017)23 b Fq(There)15 b(are)g(no)g(resource)g(ob)s(jects,)g
(so)f(all)i(the)g(resource-manipulation)h(functions)f(are)f(gone.)143
1363 y Fn(\017)23 b Fq(There)15 b(is)g(only)g(one)g(surviving)h(en)o
(vironmen)o(t-query)g(capabilit)o(y)l(,)g(to)e(\014nd)i(out)e(ho)o(w)h
(man)o(y)f(pro-)189 1419 y(cesses)c(ma)o(y)g(usefully)h(b)q(e)g(spa)o
(wned.)19 b(This)10 b(is)h(implemen)o(ted)h(as)e(an)g(attribute)g(on)g
Fm(MPI)p 1667 1419 14 2 v 16 w(COMM)p 1825 1419 V 16
w(W)o(ORLD)p Fq(,)189 1476 y(and)k(allo)o(ws)g(man)o(y)g(existing)h
(programs)e(to)h(b)q(e)h(p)q(orted)f(to)f(MPI)i(straigh)o(tforw)o
(ardly)l(.)j(Sp)q(eci\014ca-)189 1532 y(tion)d(of)g(where)h(they)f
(will)i(b)q(e)f(spa)o(wned)f(will)i(ha)o(v)o(e)e(to)g(b)q(e)h(part)f
(of)g(mpirun,)h(if)f(it)h(is)g(to)f(b)q(e)h(done)189
1588 y(p)q(ortably)l(.)143 1682 y Fn(\017)23 b Fq(There)15
b(is)h(no)f(MPI)p 521 1682 V 16 w(ALLOCA)l(TE,)h(since)h(there)e(are)g
(no)g(resources.)143 1776 y Fn(\017)23 b Fq(There)c(is)i(no)e(pro)q
(cess)h(ob)s(ject.)32 b(Instead)20 b(pro)q(cesses)g(are)g(iden)o
(ti\014ed)h(b)o(y)f(their)g(\(group,)g(rank\))189 1833
y(pair.)143 1926 y Fn(\017)j Fq(There)16 b(are)f(not)h(\(y)o(et\))e(an)
o(y)i(non-blo)q(c)o(king)i(calls.)k(This)17 b(will)g(probably)g(ha)o(v)
o(e)e(to)g(c)o(hange,)h(esp)q(e-)189 1983 y(cially)h(for)d(the)h(clien)
o(t-serv)o(er)i(stu\013.)143 2077 y Fn(\017)23 b Fq(The)15
b(examples)h(ha)o(v)o(e)f(b)q(een)h(up)q(dated.)75 2220
y Fl(1.1)59 b(Intro)r(duction)75 2321 y Fq(The)15 b(MPI-1)g(message)g
(passing)g(library)h(allo)o(ws)f(pro)q(cesses)h(in)g(a)f(parallel)h
(program)e(to)h(comm)o(unicate)75 2378 y(with)21 b(one)f(another.)34
b(MPI-1)20 b(sp)q(eci\014es)i(neither)g(ho)o(w)d(the)i(pro)q(cesses)f
(are)g(created,)h(nor)f(ho)o(w)g(they)75 2434 y(establish)f(comm)o
(unication.)30 b(Moreo)o(v)o(er,)17 b(an)i(MPI-1)f(application)i(is)e
(static,)h(that)e(is,)i(no)g(pro)q(cesses)75 2491 y(can)c(b)q(e)h
(added)g(to)f(or)f(deleted)j(from)d(an)h(application)i(while)g(it)e(is)
h(running.)166 2547 y(MPI)22 b(users)g(ha)o(v)o(e)g(ask)o(ed)f(that)h
(the)g(MPI-1)g(mo)q(del)h(b)q(e)f(relaxed)h(to)f(allo)o(w)g(dynamic)h
(pro)q(cess)75 2604 y(managemen)o(t.)17 b(The)11 b(main)f(imp)q(etus)i
(comes)e(from)f(the)h(PVM)g([1])f(researc)o(h)h(e\013ort,)g(whic)o(h)h
(has)f(pro)o(vided)75 2660 y(a)16 b(w)o(ealth)h(of)f(exp)q(erience)j
(with)e(dynamic)h(pro)q(cess)f(managemen)o(t)f(that)g(illustrates)h
(its)g(b)q(ene\014ts)h(and)964 2828 y(1)p eop
%%Page: 2 4
2 3 bop 75 -100 a Fq(2)951 b Fk(CHAPTER)16 b(1.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)75 45 y Fq(p)q(oten)o(tial)h(pitfalls.)22
b(The)15 b(reasons)g(for)g(adding)h(dynamic)g(pro)q(cess)g(managemen)o
(t)e(are)h(b)q(oth)g(tec)o(hnical)75 102 y(and)g(practical.)143
188 y Fn(\017)23 b Fq(W)l(orkstation)d(net)o(w)o(ork)f(users)i
(migrating)g(from)g(PVM)f(to)g(MPI)h(are)g(accustomed)g(to)f(using)189
244 y(PVM's)13 b(capabilities)k(for)d(pro)q(cess)g(and)h(resource)f
(managemen)o(t.)19 b(While)d(relativ)o(ely)f(few)f(appli-)189
301 y(cations)g(are)g(truly)h(dynamic)g(or)f(require)i(features)e(not)g
(in)h(MPI,)f(the)h(lac)o(k)g(of)f(these)g(features)g(is)189
357 y(a)h(practical)h(stum)o(bling)g(blo)q(c)o(k)g(to)e(migration.)143
445 y Fn(\017)23 b Fq(Imp)q(ortan)o(t)16 b(classes)h(of)g(message)f
(passing)h(applications,)i(suc)o(h)e(as)f(clien)o(t-serv)o(er)i
(systems)f(and)189 502 y(task)d(farming)h(jobs,)g(require)h(dynamic)g
(pro)q(cess)f(con)o(trol.)143 590 y Fn(\017)23 b Fq(With)16
b(dynamic)h(resource)g(and)f(pro)q(cess)h(managemen)o(t)e(extensions,)i
(it)g(w)o(ould)g(b)q(e)g(p)q(ossible)h(to)189 646 y(write)d(ma)s(jor)f
(parts)g(of)h(the)g(parallel)i(programming)e(en)o(vironmen)o(t)g(in)h
(MPI)f(itself.)143 735 y Fn(\017)23 b Fq(The)14 b(abilit)o(y)i(to)d
(write)h(fault)h(toleran)o(t)e(applications)j(is)f(imp)q(ortan)o(t)f
(in)h(unstable)g(en)o(vironmen)o(ts)189 791 y(and)23
b(for)f(commercial)i(applications.)45 b(MPI-1)23 b(do)q(es)g(not)f(pro)
o(vide)i(mec)o(hanisms)f(for)g(build-)189 847 y(ing)18
b(fault-toleran)o(t)f(applications.)30 b(The)18 b(mec)o(hanisms)g
(required)h(to)e(supp)q(ort)h(fault)g(tolerance)189 904
y(largely)d(o)o(v)o(erlap)g(with)h(those)f(needed)h(to)f(supp)q(ort)g
(dynamic)h(pro)q(cess)g(managemen)o(t.)166 990 y(While)e(dynamic)g(pro)
q(cess)f(managemen)o(t)f(is)i(essen)o(tial,)g(it)f(is)g(imp)q(ortan)o
(t)g(not)f(to)h(compromise)g(the)75 1047 y(p)q(ortabilit)o(y)j(or)f(p)q
(erformance)g(of)g(MPI.)g(In)h(particular:)143 1126 y
Fn(\017)23 b Fq(The)f(MPI-2)f(dynamic)i(pro)q(cess)e(managemen)o(t)g
(mo)q(del)i(m)o(ust)e(apply)h(to)f(the)h(v)m(ast)f(ma)s(jorit)o(y)189
1183 y(of)e(curren)o(t)h(parallel)h(en)o(vironmen)o(ts.)34
b(These)20 b(include)j(ev)o(erything)d(from)f(tigh)o(tly)h(in)o
(tegrated)189 1239 y(MPPs)d(suc)o(h)i(as)f(the)g(In)o(tel)h(P)o(aragon)
e(and)h(the)g(Meik)o(o)g(CS-2)h(to)e(heterogeneous)h(net)o(w)o(orks)f
(of)189 1296 y(w)o(orkstations.)143 1384 y Fn(\017)23
b Fq(MPI)16 b(m)o(ust)g(not)g(tak)o(e)g(o)o(v)o(er)f(op)q(erating)i
(system)f(resp)q(onsibiliti)q(es.)26 b(It)17 b(should)g(instead)g(pro)o
(vide)189 1440 y(a)e(clean)h(in)o(terface)f(b)q(et)o(w)o(een)h(an)f
(application)i(and)e(system)g(soft)o(w)o(are.)143 1528
y Fn(\017)23 b Fq(MPI)17 b(m)o(ust)g(con)o(tin)o(ue)h(to)f(guaran)o
(tee)g(comm)o(unication)h(determinism,)h(i.e.,)e(dynamic)i(pro)q(cess)
189 1585 y(managemen)o(t)14 b(m)o(ust)h(not)f(in)o(tro)q(duce)j(una)o
(v)o(oidable)f(race)f(conditions.)143 1673 y Fn(\017)23
b Fq(MPI)15 b(m)o(ust)f(not)h(con)o(tain)h(features)e(that)h
(compromise)g(p)q(erformance.)143 1761 y Fn(\017)23 b
Fq(MPI-1)16 b(programs)f(m)o(ust)h(w)o(ork)g(under)h(MPI-2,)f(i.e.,)g
(the)h(MPI-1)f(static)g(pro)q(cess)h(mo)q(del)h(m)o(ust)189
1817 y(b)q(e)e(a)e(sp)q(ecial)j(case)f(of)e(the)i(MPI-2)f(dynamic)h(mo)
q(del.)166 1897 y(The)e(MPI)g(dynamic)h(pro)q(cess)g(managemen)o(t)e
(mo)q(del)i(address)f(these)h(issues)g(in)f(t)o(w)o(o)f(w)o(a)o(ys.)19
b(First,)75 1953 y(MPI)d(remains)g(primarily)h(a)f(comm)o(unication)h
(library)l(.)23 b(It)16 b(do)q(es)g(not)f(manage)h(the)g(parallel)h(en)
o(viron-)75 2010 y(men)o(t)d(in)h(whic)o(h)g(a)f(parallel)i(program)d
(executes,)i(though)f(it)h(pro)o(vides)f(a)g(minimal)i(in)o(terface)f
(b)q(et)o(w)o(een)75 2066 y(an)g(application)i(and)e(external)h
(resource)f(and)h(pro)q(cess)f(managers.)166 2123 y(Second,)i(MPI-2)g
(do)q(es)g(not)f(c)o(hange)h(the)g(concept)g(of)f(comm)o(unicator.)24
b(Once)18 b(a)e(comm)o(unicator)75 2179 y(is)h(built,)g(it)g(b)q(eha)o
(v)o(es)f(as)g(sp)q(eci\014ed)j(in)e(MPI-1.)23 b(A)16
b(comm)o(unicator)g(is)h(nev)o(er)f(c)o(hanged)h(once)f(created,)75
2236 y(and)f(it)h(is)g(alw)o(a)o(ys)e(created)h(using)h(deterministic)h
(collectiv)o(e)g(seman)o(tics.)75 2376 y Fl(1.2)59 b(The)19
b(MPI-2)h(Dynamic)f(Pro)r(cess)g(Mo)r(del)75 2478 y Fq(The)i(MPI-2)g
(dynamic)h(pro)q(cess)g(mo)q(del)g(allo)o(ws)f(for)f(the)i(creation)f
(and)g(destruction)h(of)f(pro)q(cesses)75 2534 y(after)14
b(an)g(MPI)h(application)h(has)e(started.)19 b(It)14
b(pro)o(vides)h(a)g(mec)o(hanism)g(to)f(establish)h(comm)o(unication)75
2591 y(b)q(et)o(w)o(een)i(the)g(newly)h(created)f(pro)q(cesses)g(and)g
(the)g(existing)h(MPI)f(application.)27 b(It)17 b(also)g(pro)o(vides)g
(a)75 2647 y(mec)o(hanism)f(to)e(establish)j(comm)o(unication)f(b)q(et)
o(w)o(een)f(t)o(w)o(o)f(existing)i(MPI)f(applications,)i(ev)o(en)e
(when)75 2704 y(one)g(did)i(not)d(\\start")g(the)h(other.)1967
46 y Fj(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967
272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498
y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724
y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949
y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959
1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959
1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959
1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959
1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959
2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959
2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959
2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p
eop
%%Page: 3 5
3 4 bop 75 -100 a Fk(1.2.)34 b(THE)15 b(MPI-2)g(D)o(YNAMIC)g(PR)o
(OCESS)h(MODEL)775 b Fq(3)75 45 y Fi(1.2.1)49 b(Sta)o(rting)16
b(and)h(Managing)h(Pro)q(cesses)75 131 y Fq(MPI)10 b(applications)i(ma)
o(y)e(start)f(new)h(pro)q(cesses)h(\(including)i(non-MPI)d(pro)q
(cesses\),)h(send)g(them)g(signals,)75 187 y(and)17 b(\014nd)h(out)e
(when)i(they)f(die)h(or)e(b)q(ecome)i(unreac)o(hable.)26
b(They)17 b(do)g(this)g(through)g(an)f(in)o(terface)i(to)75
244 y(an)d(external)h(pro)q(cess)g(manager,)f(whic)o(h)h(can)g(range)f
(from)g(a)g(parallel)i(op)q(erating)f(system)f(\(CMOST\))75
300 y(to)g(la)o(y)o(ered)g(soft)o(w)o(are)e(\(POE\))i(to)g(an)g
Fh(rsh)g Fq(command)g(\(P4\).)166 357 y(There)g(are)g(three)h(w)o(a)o
(ys)e(to)g(start)g(new)i(pro)q(cesses.)166 413 y Fm(MPI)p
251 413 14 2 v 16 w(SP)l(A)-5 b(WN)23 b Fq(is)f(a)g(simple)h(in)o
(terface)g(that)e(allo)o(ws)h(starts)f(MPI)h(pro)q(cesses)g(and)h
(establishes)75 470 y(comm)o(unication)16 b(with)f(them,)g(returning)h
(an)f(in)o(tercomm)o(unicator.)166 526 y(The)23 b(t)o(w)o(o)f(other)h
(routines)g(are)g(used)h(in)g(conjunction)g(with)g Fm(MPI)p
1378 526 V 16 w(GROUP)p 1546 526 V 17 w(INIT)f Fq(to)f(start)g(a)75
583 y(non)o(uniform)16 b(collection)h(of)d(pro)q(cesses.)166
639 y Fm(MPI)p 251 639 V 16 w(GROUP)p 419 639 V 17 w(ST)l(ART)p
578 639 V 18 w(A)l(TT)l(A)o(CH)24 b Fq(starts)e(MPI)h(pro)q(cesses)h
(and)g(establishes)g(comm)o(unication)75 695 y(with)16
b(them,)e(returning)i(an)f(in)o(tercomm)o(unicator.)166
752 y Fm(MPI)p 251 752 V 16 w(GROUP)p 419 752 V 17 w(ST)l(ART)p
578 752 V 18 w(INDEPENDENT)c Fq(starts)e(new)j(pro)q(cesses,)f(whic)o
(h)h(ma)o(y)e(or)g(ma)o(y)h(not)f(com-)75 808 y(m)o(unicate)18
b(amoung)f(eac)o(h)h(other,)g(but)f(don't)h(comm)o(unicate)g(with)g
(their)g(paren)o(t.)27 b(This)18 b(function)g(is)75 865
y(required)e(for)f(starting)f(non-MPI)i(tasks)e(and)i(is)f(useful)i
(for)d(starting)h(an)g(SPMD)g(application.)166 921 y(MPI)f(uses)h(the)g
(existing)g(group)g(abstraction)f(to)g(represen)o(t)g(pro)q(cesses.)20
b(A)15 b(pro)q(cess)g(is)g(iden)o(ti\014ed)75 978 y(b)o(y)g(a)g
(\(group,)f(rank\))h(pair.)75 1099 y Fi(1.2.2)49 b(The)16
b(Runtime)g(Environment)g(\(w)o(as:)21 b(Resources\))75
1185 y Fq(MPI)10 b(allo)o(ws)g(an)g(application)i(to)e(start)f(new)h
(pro)q(cesses)h(with)f(the)g(routines)h Fm(MPI)p 1453
1185 V 16 w(SP)l(A)-5 b(WN)p Fq(,)10 b Fm(MPI)p 1724
1185 V 16 w(ST)l(ART)p 1882 1185 V 18 w(A)l(TT)l(A)o(CH)p
Fq(,)75 1242 y(and)24 b Fm(MPI)p 257 1242 V 15 w(ST)l(ART)p
414 1242 V 18 w(INDEPENDENT)p Fq(.)f(The)h(in)o(terface)g(for)e
(starting)h(new)h(pro)q(cesses)g(is)g(relativ)o(ely)75
1298 y(straigh)o(tforw)o(ard.)18 b(The)d(hard)g(part)g(is)h(to)e(sp)q
(ecify)j Fg(wher)n(e)e Fq(the)g(new)h(pro)q(cesses)f(start.)166
1355 y(The)f(di\016cult)o(y)h(is)f(that)f(there)h(is)g(an)g(enormous)g
(range)f(of)g(run)o(time)h(en)o(vironmen)o(ts)g(and)g(applica-)75
1411 y(tion)i(requiremen)o(ts,)g(and)g(MPI)g(m)o(ust)f(not)h(b)q(e)g
(tailored)h(to)e(an)o(y)g(particular)i(one.)22 b(Examples)16
b(of)g(suc)o(h)75 1468 y(en)o(vironmen)o(ts)f(are:)143
1574 y Fn(\017)23 b Ff(MPP)15 b(managed)i(b)o(y)e(a)i(batc)o(h)g
(queueing)f(system)p Fq(.)j(Batc)o(h)13 b(queueing)j(systems)e
(generally)189 1630 y(allo)q(cate)j(resources)g(b)q(efore)g(an)g
(application)i(b)q(egins,)f(enforce)f(limits)h(on)f(resource)g(use)g
(\(CPU)189 1687 y(time,)f(memory)g(use,)g(etc\),)g(and)g(do)h(not)e
(allo)o(w)i(a)f(c)o(hange)g(in)h(resource)f(allo)q(cation)i(after)d(a)h
(job)189 1743 y(b)q(egins.)21 b(Moreo)o(v)o(er,)13 b(man)o(y)i(MPPs)f
(ha)o(v)o(e)h(sp)q(ecial)h(limitations)h(or)d(extensions,)i(suc)o(h)f
(as)g(a)g(limit)189 1800 y(the)c(n)o(um)o(b)q(er)h(of)f(pro)q(cesses)h
(that)f(ma)o(y)g(run)h(on)g(one)f(pro)q(cessor,)h(or)f(the)h(abilit)o
(y)h(to)e(gang-sc)o(hedule)189 1856 y(pro)q(cesses)k(of)g(a)g(parallel)
i(application.)143 1950 y Fn(\017)23 b Ff(Net)o(w)o(ork)17
b(of)i(w)o(orkstations)g(with)h(PVM)p Fq(.)15 b(PVM)h(\(P)o(arallel)h
(Virtual)h(Mac)o(hine\))e(allo)o(ws)h(a)189 2006 y(user)f(to)g(create)g
(a)g(\\virtual)h(mac)o(hine")g(out)f(of)g(a)g(net)o(w)o(ork)f(of)h(w)o
(orkstations.)23 b(An)16 b(application)189 2063 y(ma)o(y)i(extend)j
(the)e(virtual)h(mac)o(hine)h(or)e(manage)g(pro)q(cesses)h(\(create,)f
(kill,)j(redirect)f(output,)189 2119 y(etc.\))26 b(through)18
b(the)f(PVM)g(library)l(.)28 b(Requests)19 b(to)e(manage)g(the)g(mac)o
(hine)i(or)e(pro)q(cesses)h(ma)o(y)189 2176 y(b)q(e)e(in)o(tercepted)g
(and)f(handled)i(b)o(y)e(an)g(external)h(resource)f(manager.)143
2270 y Fn(\017)23 b Ff(Net)o(w)o(ork)10 b(of)i(w)o(orkstations)f
(managed)i(b)o(y)e(a)i(load)g(balancing)h(system)p Fq(.)j(A)10
b(load)h(balanc-)189 2326 y(ing)h(system)f(ma)o(y)f(c)o(ho)q(ose)i(the)
f(lo)q(cation)h(of)f(spa)o(wned)h(pro)q(cesses)f(based)h(on)f(dynamic)i
(quan)o(tities,)189 2382 y(suc)o(h)19 b(as)f(load)h(a)o(v)o(erage.)29
b(It)18 b(ma)o(y)g(transparen)o(tly)g(migrate)h(pro)q(cesses)g(from)e
(one)i(mac)o(hine)h(to)189 2439 y(another)14 b(when)i(a)f(resource)g(b)
q(ecomes)h(una)o(v)m(ailable.)143 2533 y Fn(\017)23 b
Ff(Large)j(SMP)g(with)g(Unix)p Fq(.)43 b(Applications)24
b(are)f(run)g(directly)h(b)o(y)e(the)h(user.)42 b(They)23
b(are)189 2589 y(sc)o(heduled)15 b(at)d(a)h(lo)o(w)g(lev)o(el)h(b)o(y)f
(the)g(op)q(erating)h(system.)k(Pro)q(cesses)13 b(ma)o(y)g(ha)o(v)o(e)g
(sp)q(ecial)h(sc)o(hedul-)189 2646 y(ing)g(c)o(haracteristics)h
(\(gang-sc)o(heduling,)g(pro)q(cessor)g(a\016nit)o(y)l(,)f(deadline)i
(sc)o(heduling,)g(pro)q(cessor)-32 46 y Fj(1)-32 103
y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32
385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611
y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40
893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40
1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40
1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40
1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40
1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40
2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40
2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40
2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40
2699 y(48)p eop
%%Page: 4 6
4 5 bop 75 -100 a Fq(4)951 b Fk(CHAPTER)16 b(1.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)189 45 y Fq(lo)q(c)o(king,)i(etc.\))24
b(and)16 b(b)q(e)i(sub)s(ject)e(to)g(OS)h(resource)f(limits)i(\(n)o(um)
o(b)q(er)f(of)f(pro)q(cesses,)h(amoun)o(t)e(of)189 102
y(memory)l(,)f(etc.\).)166 203 y(MPI)f(assumes,)g(implicitly)l(,)k(the)
c(existence)h(of)f(an)g(en)o(vironmen)o(t)h(in)g(whic)o(h)g(an)f
(application)i(runs.)75 260 y(It)k(do)q(es)g(not)g(pro)o(vide)g(\\op)q
(erating)g(system")f(services,)i(suc)o(h)g(as)e(a)h(general)g(abilit)o
(y)h(to)e(query)i(what)75 316 y(pro)q(cesses)i(are)f(running,)j(to)c
(kill)k(arbitrary)c(pro)q(cesses,)j(to)e(\014nd)h(out)f(prop)q(erties)h
(of)f(the)h(run)o(time)75 373 y(en)o(vironmen)o(t)d(\(ho)o(w)f(man)o(y)
g(pro)q(cessors,)g(ho)o(w)g(m)o(uc)o(h)h(memory)l(,)f(etc\).)30
b(Complex)19 b(in)o(teraction)g(of)f(an)75 429 y(MPI)i(application)h
(with)f(its)g(run)o(time)h(en)o(vironmen)o(t)f(should)h(b)q(e)f(done)g
(through)g(an)g(en)o(vironmen)o(t-)75 486 y(sp)q(eci\014c)d(API.)166
625 y Fe(Discussion:)52 b Fd(An)19 b(example)e(of)h(suc)o(h)h(an)g(API)
g(w)o(ould)e(b)q(e)i(the)h(PVM)f(task)f(and)h(mac)o(hine)e(manage-)75
681 y(men)o(t)e(routines)i({)f Fc(pvm)p 450 681 14 2
v 15 w(addhosts)p Fd(,)f Fc(pvm)p 734 681 V 15 w(config)p
Fd(,)g Fc(pvm)p 974 681 V 16 w(tasks)p Fd(,)g(etc.,)i(p)q(ossibly)f(mo)
q(di\014ed)f(to)h(return)i(an)e(MPI)75 738 y(\(group,rank\))e(when)g(p)
q(ossible.)k(A)c(Condor)g(or)g(PBS)g(API)g(w)o(ould)g(b)q(e)g(another)g
(p)q(ossibilit)o(y)m(.)166 877 y Fq(A)o(t)i(some)h(lo)o(w)f(lev)o(el,)i
(ob)o(viously)l(,)g(MPI)f(m)o(ust)f(b)q(e)h(able)h(to)e(in)o(teract)h
(with)g(the)g(run)o(time)g(system,)75 933 y(but)h(the)f(in)o(teraction)
h(is)g(not)f(visible)j(at)d(the)h(application)h(lev)o(el)g(and)e(the)h
(details)g(are)g(not)f(sp)q(eci\014ed)75 990 y(b)o(y)e(the)g(MPI)h
(standard.)166 1129 y Fe(Discussion:)34 b Fd(It)14 b(has)g(b)q(een)h
(requested)h(that)e(the)g(MPI)g(forum)e(sp)q(ecify)j(this)f(in)o
(terface)g(explicitly)m(.)j(MPI)75 1185 y(has)f(so)g(far)g(shied)h(a)o
(w)o(a)o(y)e(from)f(sp)q(ecifying)i(implemen)o(tation)d(details,)j(for)
f(go)q(o)q(d)h(reasons.)26 b(It)16 b(w)o(ould)f(b)q(e)i(nice,)75
1242 y(ho)o(w)o(ev)o(er,)d(if)f(implemen)o(tors)e(agreed)k(on)f(a)f
(minim)o(al)e(standard)j(in)o(terface)g(to)g(allo)o(w)e(in)o(terop)q
(erabilit)o(y)h(-)h(w)o(cs)166 1381 y Fq(MPI)f(do)q(es)g(not)f(require)
i(the)f(existence)h(of)e(an)h(underlying)h(\\virtual)f(mac)o(hine")h
(mo)q(del,)g(in)f(whic)o(h)75 1437 y(there)h(is)g(a)g(consisten)o(t)g
(global)g(view)h(of)e(an)h(MPI)g(application,)h(and)f(an)g(implicit)i
(\\op)q(erating)e(system")75 1494 y(managing)k(resources)f(and)h(pro)q
(cesses.)28 b(F)l(or)17 b(instance,)i(pro)q(cesses)f(spa)o(wned)g(b)o
(y)g(one)f(task)g(ma)o(y)g(not)75 1550 y(b)q(e)i(visible)h(to)e
(another;)h(additional)h(hosts)e(added)h(to)e(the)i(run)o(time)f(en)o
(vironmen)o(t)h(b)o(y)f(one)h(pro)q(cess)75 1607 y(ma)o(y)13
b(not)h(b)q(e)h(visible)i(in)e(another)e(pro)q(cess;)i(tasks)e(spa)o
(wned)i(b)o(y)f(di\013eren)o(t)g(pro)q(cesses)h(ma)o(y)e(not)h(b)q(e)h
(au-)75 1663 y(tomatically)g(distributed)h(o)o(v)o(er)d(a)o(v)m
(ailable)k(resources.)i(MPI)c(do)q(es)f(require,)h(ho)o(w)o(ev)o(er,)f
(that)g(a)g(pro)q(cess)75 1720 y(b)q(e)k(a)o(w)o(are)e(of)h(its)g(o)o
(wn)g(c)o(hanges)h(to)e(the)i(run)o(time)f(en)o(vironmen)o(t.)27
b(F)l(or)17 b(instance,)h(it)g(can)f(b)q(e)h(noti\014ed)75
1776 y(when)e(its)f(c)o(hildren)i(die;)f(tasks)e(whic)o(h)i(it)g(spa)o
(wns)f(will)i(b)q(e)e(distributed)i(in)f(some)f(sane)g(manner,)g(etc.)
189 1867 y Fg(A)n(dvic)n(e)22 b(to)h(implementors.)86
b Fq(A)23 b(virtual)g(mac)o(hine)h(abstraction)e(is)h(appropriate)g(in)
h(most)189 1923 y(en)o(vironmen)o(ts)15 b(and)g(should)g(b)q(e)h(part)e
(of)g(a)h(\\high-qualit)o(y")h(implemen)o(tation.)21
b(In)15 b(other)f(cases,)189 1980 y(pro)o(viding)19 b(the)g(virtual)g
(mac)o(hine)g(abstraction)f(ma)o(y)g(add)g(to)g(m)o(uc)o(h)h(baggage)e
(\(e.g.,)h(daemon)189 2036 y(pro)q(cesses\))d(or)g(inhibit)i(p)q
(ortabilit)o(y)l(.)k(\()p Fg(End)16 b(of)g(advic)n(e)g(to)h
(implementors.)p Fq(\))166 2127 y(In)o(teraction)12 b(b)q(et)o(w)o(een)
g(MPI)g(and)g(the)f(run)o(time)i(en)o(vironmen)o(t)f(is)g(limited)i(to)
d(the)h(follo)o(wing)g(areas:)143 2229 y Fn(\017)23 b
Fq(A)15 b(pro)q(cess)g(ma)o(y)g(start)f(new)h(pro)q(cesses)h(with)f
Fm(MPI)p 1082 2229 V 16 w(SP)l(A)-5 b(WN)p Fq(,)16 b
Fm(MPI)p 1359 2229 V 16 w(ST)l(ART)p 1517 2229 V 17 w(A)l(TT)l(A)o(CH)p
Fq(,)g(or)189 2285 y Fm(MPI)p 274 2285 V 15 w(ST)l(ART)p
431 2285 V 18 w(INDEPENDENT)p Fq(.)e(It)h(ma)o(y)e(kill)k(pro)q(cesses)
d(it)h(has)f(spa)o(wned)h(\(and)f(p)q(ossibly)i(oth-)189
2342 y(ers\))e(and)i(ma)o(y)e(b)q(e)i(noti\014ed)g(when)g(pro)q(cesses)
g(die)g(or)e(b)q(ecome)i(unreac)o(hable.)189 2499 y Fe(Discussion)o(:)
38 b Fd(W)m(e)14 b(don't)g(ha)o(v)o(e)h Fb(MPI)p 815
2499 13 2 v 14 w(ALLOCA)m(TE)e Fd(an)o(y)i(more,)e(since)i(the)h(run)o
(time)d(en)o(vironmen)o(t)h(has)189 2555 y(dissolv)o(ed)k(in)o(to)g
(the)h(bac)o(kground)g(\(i.e.,)f(w)o(e)h(ha)o(v)o(e)f(no)g(handle)h(to)
f(it\).)32 b(Resources)20 b(can)f(b)q(e)g(allo)q(cated)189
2612 y(through)14 b(the)g(run)o(time-en)o(vironmen)o(t)e(API,)h(or)h
(through)g Fc(mpirun)p Fd(.)1967 46 y Fj(1)1967 103 y(2)1967
159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385
y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611
y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836
y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 5 7
5 6 bop 75 -100 a Fk(1.2.)34 b(THE)15 b(MPI-2)g(D)o(YNAMIC)g(PR)o
(OCESS)h(MODEL)775 b Fq(5)143 45 y Fn(\017)23 b Fq(When)c(a)g(pro)q
(cess)g(spa)o(wns)f(a)h(c)o(hild)i(pro)q(cess,)e(it)g(optionlly)i
(passes)e(a)f(string)h(to)g(the)g(run)o(time)189 102
y(en)o(vironmen)o(t)14 b(to)g(indicate)h(where)g(the)f(pro)q(cess)g
(should)i(b)q(e)e(started.)19 b(The)c(string)f(is)g(opaque)h(to)189
158 y(MPI.)143 252 y Fn(\017)23 b Fq(A)13 b(prede\014ned)i(atrribute,)f
Fm(MPI)p 743 252 14 2 v 16 w(UNIVERSE)p 973 252 V 17
w(SIZE)p Fq(,)f(of)g Fm(MPI)p 1241 252 V 16 w(COMM)p
1399 252 V 16 w(W)o(ORLD)h Fq(can)f(b)q(e)i(queried)189
308 y(to)f(\014nd)i(out)f(ho)o(w)g(man)o(y)g(pro)q(cesses)g(can)h
(usefully)h(b)q(e)f(started)e(altogether.)20 b(One)c(can)f(subtract)189
365 y(the)d(size)i(of)e Fm(MPI)p 482 365 V 16 w(COMM)p
640 365 V 16 w(W)o(ORLD)h Fq(from)f(this)h(v)m(alue)g(to)f(\014nd)i
(out)e(ho)o(w)g(man)o(y)g(pro)q(cesses)h(migh)o(t)189
421 y(usefully)k(b)q(e)e(started)g(in)h(addition)g(to)f(those)g
(already)g(running.)166 603 y Fe(Discussion:)41 b Fd(It)16
b(seems)f(that)h(a)f(pro)q(cess)j(should)d(b)q(e)i(able)e(to)h(query)g
(the)g(run)o(time)e(en)o(vironmen)o(t)h(in)g(a)75 653
y(v)o(ery)g(simple)e(w)o(a)o(y)m(.)20 b(The)15 b(main)e(thing)h(I'm)f
(w)o(orried)i(ab)q(out)f(is)h(that)g(90\045)f(of)g(\\dynamic")f
(programs)g(will)g(w)o(an)o(t)75 703 y(to)j(kno)o(w)f(only)g(ho)o(w)g
(man)o(y)f(pro)q(cesses)19 b(to)c(spa)o(wn)h(\(i.e.,)f(ho)o(w)g(man)o
(y)f(a)o(v)n(ailable)g(pro)q(cessors\).)26 b(The)16 b(next)g(most)75
753 y(common)c(thing)i(ma)o(y)f(b)q(e)j(ho)o(w)e(man)o(y)f(hosts)i(are)
h(there)g(of)e(a)g(giv)o(en)h(arc)o(hitecture.)22 b(The)16
b(next)f(migh)o(t)e(b)q(e)i(what)75 803 y(are)g(their)g(names.)20
b(A)15 b(slipp)q(ery)g(slop)q(e.)21 b(It)15 b(w)o(ould)f(b)q(e)h(nice)h
(to)e(do)h(a)o(w)o(a)o(y)e(with)i(all)e(resource)k(issues,)f(but)f(w)o
(ould)75 853 y(w)o(e)f(wind)g(up)g(with)f(zero)i(p)q(ortabilit)o(y?)i
(-)c(w)o(cs)166 902 y(My)f(p)q(osition)f(on)h(the)g(slipp)q(ery)g(slop)
q(e)g(is)g(on)g(the)g(\014rst)h(step:)18 b(the)13 b(pro)o(vision)e(of)g
(the)h Fb(MPI)p 1566 902 13 2 v 15 w(UNIVERSE)p 1779
902 V 13 w(SIZE)75 952 y Fd(attribute.)19 b(-)13 b(RL)75
1157 y Fi(1.2.3)49 b(Applications)18 b(Requiring)f(Direct)e
(Communication)i(with)g(the)e(Runtime)h(System)75 1242
y Fq(The)f(existing)g(MPI)g(sp)q(eci\014cation)i(is)e(adequate)f(for)g
(most)g(parallel)i(applications.)21 b(In)16 b(these)e(applica-)75
1299 y(tions,)i(run)o(time)h(en)o(vironmen)o(t,)f(whether)g(simple)i
(or)d(elab)q(orate,)h(allo)q(cates)h(resources)f(and)h(manages)75
1355 y(user)k(pro)q(cesses)g(without)g(in)o(teracting)g(with)g(the)g
(application)h(program.)36 b(In)21 b(other)g(applications,)75
1412 y(ho)o(w)o(ev)o(er,)c(it)h(is)f(necessary)h(that)f(the)g
Fg(user)i(level)i Fq(of)c(the)g(application)i(comm)o(unicate)f(with)g
(the)g(run-)75 1468 y(time)c(en)o(vironmen)o(t.)19 b(Here)14
b(w)o(e)f(describ)q(e)i(three)e(broad)g(classes)h(of)f(suc)o(h)h
(applications.)21 b(In)14 b(Section)g(1.5)75 1525 y(w)o(e)h(will)i(giv)
o(e)e(concrete)h(examples)g(of)e(eac)o(h)i(of)e(these)i(classes.)75
1645 y Fm(T)l(ask)c(F)o(a)o(rming)43 b Fq(By)11 b(a)g(\\task)f(farm")g
(application)i(w)o(e)f(mean)g(a)f(program)g(that)g(manages)h(the)g
(execution)75 1701 y(of)j(a)g(set)g(of)g(other,)g(p)q(ossibly)i(sequen)
o(tial,)g(programs.)i(This)d(situation)g(often)f(arises)h(when)g(one)f
(w)o(an)o(ts)75 1758 y(to)19 b(run)h(the)g(same)f(sequen)o(tial)i
(program)e(man)o(y)g(times)h(with)g(v)m(arying)h(input)f(data.)33
b(W)l(e)20 b(call)h(eac)o(h)75 1814 y(in)o(v)o(o)q(cation)14
b(of)e(the)i(sequen)o(tial)g(program)e(a)h Fg(task)p
Fq(.)19 b(It)13 b(is)h(often)f(simplest)h(to)f(\\parallelize")i(the)e
(existing)75 1871 y(sequen)o(tial)h(program)d(b)o(y)i(writing)g(a)f
(parallel)j(\\harness")d(program)f(that)h(in)i(turn)e(dev)o(otes)h(a)f
(separate,)75 1927 y(transien)o(t)j(pro)q(cess)g(to)g(eac)o(h)g(task.)k
(When)d(one)f(task)f(\014nishes,)i(a)f(new)g(pro)q(cess)h(is)f(started)
g(to)f(execute)75 1983 y(the)19 b(next)f(one.)30 b(Ev)o(en)19
b(if)g(the)f(resources)h(allo)q(cated)g(to)f(the)h(job)f(are)g
(\014xed,)i(the)f(\\harness")f(pro)q(cess)75 2040 y(m)o(ust)13
b(in)o(teract)g(frequen)o(tly)h(with)g(the)f(pro)q(cess)h(manager)f
(\(ev)o(en)g(if)h(this)g(is)g(just)f Fh(rsh)p Fq(,)g(to)g(start)f(the)i
(new)75 2096 y(pro)q(cesses)i(with)f(the)h(new)f(input)h(data\).)j(In)d
(man)o(y)f(cases)g(this)h(harness)f(can)g(b)q(e)h(written)g(in)g(a)e
(simple)75 2153 y(scripting)k(language)f(lik)o(e)g Fh(csh)g
Fq(or)f Fh(perl)p Fq(,)g(but)h(some)f(users)h(prefer)g(to)f(use)h(F)l
(ortran)e(or)h(C.)g(Note)h(that)75 2209 y(it)f(is)g(an)g(explicit)i
(goal)d(of)h(the)f(MPI)h(dynamic)h(pro)q(cess)f(arc)o(hitecture)g(to)f
(allo)o(w)h(the)f(managemen)o(t)g(of)75 2266 y(non-MPI)h(pro)q(cesses.)
75 2386 y Fm(Dynamic)f(numb)q(er)i(of)e(p)o(ro)q(cesses)j(in)e(pa)o
(rallel)f(job)46 b Fq(The)16 b(program)f(wishes)i(to)e(decide)j
Fg(inside)g Fq(the)e(pro-)75 2442 y(gram)e(to)g(adjust)g(the)g(n)o(um)o
(b)q(er)h(of)f(pro)q(cesses)h(to)f(\014t)h(the)f(size)i(of)e(the)h
(problem.)20 b(F)l(urthermore,)14 b(it)h(ma)o(y)75 2499
y(con)o(tin)o(ue)k(to)g(add)g(and)g(subtract)f(pro)q(cesses)h(during)h
(the)f(computation)g(to)f(\014t)h(separate)f(phases)h(of)75
2555 y(the)g(computation,)h(some)f(of)g(whic)o(h)h(ma)o(y)f(b)q(e)h
(more)f(parallel)i(than)e(others.)32 b(In)20 b(order)f(to)g(do)g(this,)
75 2612 y(the)i(application)i(program)d(will)j(ha)o(v)o(e)e(to)g(in)o
(teract)g(with)h(the)f(resource)g(manager)g(\(ho)o(w)o(ev)o(er)f(it)h
(is)75 2668 y(implemen)o(ted\))e(to)d(request)i(and)f(acquire)h(or)f
(return)g(computational)h(resources.)26 b(It)17 b(will)i(also)e(ha)o(v)
o(e)-32 46 y Fj(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32
272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 6 8
6 7 bop 75 -100 a Fq(6)951 b Fk(CHAPTER)16 b(1.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)75 45 y Fq(to)h(in)o(teract)h(with)g(the)g(pro)q(cess)g
(manager)g(to)f(request)h(that)f(pro)q(cesses)h(b)q(e)h(started)e(and)h
(in)h(order)f(to)75 102 y(mak)o(e)12 b(the)g(new)h(pro)q(cesses)f(kno)o
(wn)g(to)g(the)g(message-passing)g(library)h(so)f(that)g(the)g(larger)g
(\(or)g(smaller\))75 158 y(group)j(of)g(pro)q(cesses)g(can)h(comm)o
(unicate.)166 214 y(An)21 b(imp)q(ortan)o(t)f(t)o(yp)q(e)h(of)f
(dynamic)h(application)i(is)e(a)f(sca)o(v)o(enger)g(application.)38
b(A)20 b(sca)o(v)o(enger)75 271 y(application)j(is)g(\\em)o
(barassingly)f(parallel")h(in)f(the)g(sense)g(that)f(it)h(p)q(erforms)g
(a)f(large)h(n)o(um)o(b)q(er)g(of)75 327 y(completely)17
b(indep)q(enden)o(t)i(tasks.)i(If)c(the)f(n)o(um)o(b)q(er)g(of)g(tasks)
f(is)i(large)f(enough,)g(suc)o(h)g(an)g(application)75
384 y(can)k(mak)o(e)g(use)h(of)f(an)o(y)g(resources)g(that)g(b)q(ecome)
h(a)o(v)m(ailable.)37 b(Con)o(v)o(ersely)l(,)21 b(it)g(can)g(easily)g
(giv)o(e)f(up)75 440 y(resources)i(to)g(another)g(application.)42
b(Sca)o(v)o(enger)22 b(applications)i(are)e(excellen)o(t)i(for)e
(\014lling)i(in)f(the)75 497 y(\\holes")15 b(on)g(a)g(space-shared)h
(parallel)h(mac)o(hine,)f(allo)o(wing)g(it)f(to)g(ac)o(hiev)o(e)g(v)o
(ery)g(high)h(utilization.)75 617 y Fm(Client/Server)46
b Fq(This)15 b(situation)h(is)f(the)g(opp)q(osite)h(of)e(the)h
(situations)g(ab)q(o)o(v)o(e,)g(where)g(pro)q(cesses)g(come)75
673 y(and)21 b(go)f(up)q(on)h(request.)37 b(In)21 b(the)g(clien)o
(t/serv)o(er)g(mo)q(del,)i(one)e(set)f(of)g(pro)q(cesses)h(is)g
(relativ)o(ely)h(p)q(er-)75 730 y(manen)o(t)17 b(\(the)g(serv)o(er,)g
(whic)o(h)h(w)o(e)f(assume)g(here)h(ma)o(y)e(b)q(e)i(a)f(parallel)i
(program\).)24 b(A)o(t)17 b(unpredictable)75 786 y(times,)e(another)f
(\(p)q(ossibly)h(parallel\))h(program)d(\(the)i(clien)o(t\))g(b)q
(egins)h(execution)f(and)g(m)o(ust)f(establish)75 843
y(comm)o(unication)k(with)f(the)g(serv)o(er.)26 b(In)17
b(this)h(case)f(the)g(pro)q(cess)g(manager)g(m)o(ust)f(pro)o(vide)i(a)f
(w)o(a)o(y)f(for)75 899 y(the)e(clien)o(t)h(to)e(lo)q(cate)h(the)g
(serv)o(er)f(and)h(comm)o(unicate)g(to)f(the)g(message-passing)h
(library)h(that)e(it)h(m)o(ust)75 956 y(no)o(w)h(supp)q(ort)g(comm)o
(unications)h(with)f(a)g(new)h(collection)h(of)d(pro)q(cesses.)166
1012 y(It)19 b(is)g(curren)o(tly)h(p)q(ossible)g(to)f(write)g(the)g
(parallel)h(clien)o(ts)g(and)f(serv)o(ers)g(in)g(MPI,)g(but)g(b)q
(ecause)75 1068 y(MPI)g(do)q(es)g(not)g(pro)o(vide)h(the)f(necessary)g
(in)o(terfaces)g(b)q(et)o(w)o(een)h(the)f(application)i(program)d(and)h
(the)75 1125 y(resource)f(manager)g(or)g(pro)q(cess)h(manager,)f(other)
g(nonp)q(ortable,)h(mac)o(hine)g(sp)q(eci\014c)i(libraries)f(m)o(ust)75
1181 y(b)q(e)15 b(called)h(in)f(order)f(for)g(the)g(clien)o(t)h(and)g
(serv)o(er)f(to)f(comm)o(unicate)i(with)g(one)f(another.)19
b(On)c(the)f(other)75 1238 y(hand,)g(MPI)g(do)q(es)g(con)o(tain)g(sev)o
(eral)f(features)h(that)f(mak)o(e)g(it)h(relativ)o(ely)h(easy)e(to)g
(add)h(suc)o(h)g(in)o(terfaces,)75 1294 y(and)h(w)o(e)g(prop)q(ose)h(b)
q(oth)f(a)g(simple)h(in)o(terface)g(and)f(a)g(more)g(complex)h(but)f
(\015exible)j(one.)75 1437 y Fl(1.3)59 b(Pro)r(cess)19
b(Manager)h(Interface)75 1541 y Fi(1.3.1)49 b(Pro)q(cesses)15
b(in)i(MPI)75 1626 y Fq(A)e(pro)q(cess)h(is)g(represen)o(ted)g(in)g
(MPI)f(b)o(y)g(a)g(\(group,)g(rank\))f(pair.)21 b(A)15
b(pro)q(cess)h(ma)o(y)f(or)f(ma)o(y)h(not)g(b)q(e)h(an)75
1683 y(\\MPI)h(pro)q(cess")g(in)h(that)f(it)g(ma)o(y)f(or)h(ma)o(y)g
(not)f(call)j Fm(MPI)p 1102 1683 14 2 v 15 w(INIT)p Fq(.)e(One)h(can't)
e(comm)o(unicate)i(directly)75 1739 y(with)d(a)f(pro)q(cess)h(\(that)e
(requires)j(a)e(comm)o(unicator\),)f(but)i(signals)g(can)g(b)q(e)g(sen)
o(t)g(to)e(one.)20 b(Note)14 b(that)g(a)75 1796 y(\(group,)g(rank\))h
(iden)o(ti\014cation)i(is)f(not)e(unique)j(b)q(ecause)f(a)f(pro)q(cess)
h(ma)o(y)e(b)q(elong)i(to)f(sev)o(eral)g(groups.)166
1935 y Fe(Discussion:)59 b Fd(The)21 b(alternativ)o(e)f(is)g(to)g(ha)o
(v)o(e)g(an)h Fb(MPI)p 1114 1935 13 2 v 14 w(Pro)q(cess)f
Fd(ob)r(ject.)38 b(A)21 b(stra)o(w)f(v)o(ote)h(sho)o(w)o(ed)f(a)75
1991 y(preference)c(for)e(the)g(\(group,)g(rank\))g(alternativ)o(e.)k
(W)m(e)13 b(will)g(regret)i(this.)j({)13 b(RL.)166 2131
y Fq(MPI)i(pro)o(vides)h(no)f(guaran)o(tees)g(on)g(the)g(order)g(of)g
(op)q(erations)h(b)q(et)o(w)o(een)f(messages)g(and)h(signals.)75
2187 y(If)e(a)f(message)h(and)g(a)f(signal)h(are)g(sen)o(t)f(to)g(a)h
(pro)q(cess,)g(the)g(signal)g(ma)o(y)f(arriv)o(e)h(or)f(b)q(e)h(pro)q
(cessed)h(b)q(efore)75 2243 y(the)g(message,)g(dep)q(ending)i(on)e
(hardw)o(are)g(and)g(MPI)g(implemen)o(tation)i(details.)166
2383 y Fe(Discussion:)34 b Fd(A)14 b(bad)g(programming)d(practice)k
(that)f(has)g(b)q(een)h(seen)g(b)o(y)f(naiv)o(e)g(users)h(of)f(systems)
g(that)75 2439 y(pro)o(vide)f(b)q(oth)g(messages)h(and)f(signals)f(is)i
(to)f(send)h(a)f(pro)q(cess)i(a)e(message)g(and)g(then)h(signal)e(it)h
(to)g(w)o(ak)o(e)g(up)g(and)75 2495 y(receiv)o(e)i(the)g(message.)i
(This)d(needs)h(to)f(b)q(e)h(plainly)d(forbidden.)18
b(-)13 b(A)o(G.)1967 46 y Fj(1)1967 103 y(2)1967 159
y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967
441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959
667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959
893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959
1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959
1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959
1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959
1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959
2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959
2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959
2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959
2699 y(48)p eop
%%Page: 7 9
7 8 bop 75 -100 a Fk(1.3.)34 b(PR)o(OCESS)16 b(MANA)o(GER)f(INTERF)-5
b(A)o(CE)916 b Fq(7)75 45 y Fi(1.3.2)49 b(Sta)o(rting)16
b(Pro)q(cesses)f(-)h(Simple)h(Interface)75 131 y Fq(The)e(follo)o(wing)
h(routine)g(is)g(the)f(simplest)h(w)o(a)o(y)e(to)h(start)f(MPI)h(pro)q
(cesses.)75 282 y Fm(MPI)p 160 282 14 2 v 16 w(SP)l(A)-5
b(WN\(executable,)17 b(a)o(rguments,)e(n,)g(comm,)e(intercomm\))117
359 y Fd(IN)155 b Fm(executable)391 b Fd(executable)15
b(\014le)f(con)o(taining)f(program)f(to)i(b)q(e)g(run)117
433 y(IN)155 b Fm(a)o(rguments)391 b Fd(argumen)o(ts)13
b(for)h(the)g(program)117 508 y(IN)155 b Fm(n)564 b Fd(n)o(um)o(b)q(er)
13 b(of)h(pro)q(cesses)i(to)e(start)117 582 y(IN)155
b Fm(comm)470 b Fd(comm)o(unicator)11 b(of)j(group)f(of)h(spa)o(wning)f
(pro)q(cesses)117 657 y(OUT)108 b Fm(intercomm)384 b
Fd(in)o(tercomm)o(unicator)7 b(b)q(et)o(w)o(een)k(original)c(group)i
(and)g(the)h(newly)905 713 y(spa)o(wned)15 b(group)166
838 y Fm(MPI)p 251 838 V 16 w(SP)l(A)-5 b(WN)15 b Fq(is)g(collectiv)o
(e)h(o)o(v)o(er)e Fm(comm)f Fq(and)h(the)h(newly)g(created)g(pro)q
(cesses.)20 b(It)14 b(starts)g Fm(n)h Fq(iden-)75 894
y(tical)k(copies)g(of)f Fm(executable)i Fq(in)f(a)f(w)o(a)o(y)f(whic)o
(h)i(is)g(determined)g(b)o(y)f(the)h(run)o(time)f(en)o(vironmen)o(t)h
(\(i.e.,)75 950 y(the)c(user)g(has)g(no)g(con)o(trol)f(o)o(v)o(er)g
(where)i(the)f(pro)q(cesses)g(go,)f(though)h(a)f(high)i(qualit)o(y)g
(implemen)o(tation)75 1007 y(will)j(distribute)g(them)f(ev)o(enly)h(o)o
(v)o(er)e(a)o(v)m(ailable)i(resources\).)27 b(The)18
b(spa)o(wned)g(pro)q(cesses)g(are)g Fg(r)n(e)n(quir)n(e)n(d)75
1063 y Fq(to)i(call)h Fm(MPI)p 309 1063 V 16 w(INIT)p
Fq(,)e(whic)o(h)i(is)g(collectiv)o(e)h(with)f Fm(MPI)p
1025 1063 V 16 w(SP)l(A)-5 b(WN)21 b Fq(in)g(the)f(paren)o(t.)35
b(The)21 b(in)o(tercomm)o(u-)75 1120 y(nicator)h(is)g(kno)o(wn)f(in)i
(the)e(c)o(hildren)j(as)d Fm(MPI)p 909 1120 V 16 w(COMM)p
1067 1120 V 16 w(P)l(ARENT)p Fq(.)i(The)f(c)o(hildren)h(ha)o(v)o(e)e
(their)h(o)o(wn)75 1176 y Fm(MPI)p 160 1176 V 16 w(COMM)p
318 1176 V 16 w(W)o(ORLD)15 b Fq(whic)o(h)h(is)g(separate)f(from)f
(that)h(of)f(the)i(paren)o(t.)166 1315 y Fe(Discussion:)49
b Fd(The)19 b(\\pre-allo)q(cated)e(resources")j(to)e(b)q(e)g(used)h(to)
f(run)g(spa)o(wned)g(pro)q(cesses)j(could)c(b)q(e)75
1372 y(sp)q(eci\014ed)g(in)d(a)h(p)q(ortable)h(w)o(a)o(y)e(if)g(w)o(e)i
(standardize)g Fc(mpirun)p Fd(.)21 b(A)15 b(set)h(of)e(argumen)o(ts)h
(or)g(a)g(\014le)g(argumen)o(t)f(could)75 1428 y(describ)q(e)i(a)d
(virtual)g(mac)o(hine.)75 1632 y Fi(1.3.3)49 b(Sta)o(rting)16
b(Pro)q(cesses)f(-)h(F)o(ull)h(Interface)75 1718 y Fq(While)g
Fm(MPI)p 293 1718 V 15 w(SP)l(A)-5 b(WN)16 b Fq(is)g(su\016cien)o(t)g
(for)f(most)f(cases,)h(it)g(do)q(es)h(not)f(allo)o(w)g(the)g(follo)o
(wing:)143 1808 y Fn(\017)23 b Fq(Spa)o(wning)16 b(of)g(non-MPI)g(pro)q
(cesses)h(or)e(MPI)i(pro)q(cesses)f(whic)o(h)h(do)f(not)g(wish)g(to)g
(\(or)f(need)i(to\))189 1864 y(comm)o(unicate)e(with)h(their)f(paren)o
(t.)143 1957 y Fn(\017)23 b Fq(Spa)o(wning)15 b(of)g(m)o(ultiple)i
(binaries)g(whic)o(h)f(all)g(ha)o(v)o(e)f(the)g(same)g
Fm(MPI)p 1369 1957 V 16 w(COMM)p 1527 1957 V 16 w(W)o(ORLD)p
Fq(.)143 2049 y Fn(\017)23 b Fq(Spa)o(wning)15 b(of)g(the)g(same)g
(binary)h(with)g(di\013eren)o(t)f(argumen)o(ts.)166 2139
y(An)f(additional)i(complication)g(is)f(that)e(on)i(man)o(y)e(curren)o
(t)i(parallel)g(mac)o(hines,)g(comm)o(unication)75 2195
y(b)q(et)o(w)o(een)h(pro)q(cesses)f(spa)o(wned)g(at)g(di\013eren)o(t)g
(times)h(ma)o(y)e(b)q(e)i(slo)o(w.)166 2252 y(The)e(general)g(mec)o
(hanism)h(for)e(starting)h(pro)q(cesses)g(requires)h(t)o(w)o(o)d
(steps.)20 b(First,)13 b(pro)q(cess)h(groups)75 2308
y(are)20 b(initialized)k(with)c(one)h(or)e(more)h(calls)h(to)f
Fm(MPI)p 999 2308 V 16 w(GROUP)p 1167 2308 V 18 w(INIT)p
Fq(.)f(Eac)o(h)h(of)g(these)g(calls)i(tak)o(es)d(an)75
2365 y(executable,)c(an)e(argumen)o(t)g(list,)h(and)f(a)g(string)h
(indicating)h(where)f(the)f(pro)q(cesses)h(should)g(b)q(e)g(started,)75
2421 y(returning)21 b(a)f(group)g(handle.)37 b(The)21
b(string)g(is)g(opaque)f(to)g(MPI)h(but)f(ma)o(y)g(b)q(e)h(meaningful)h
(to)e(the)75 2478 y(run)o(time)c(system.)j(Groups)c(can)g(b)q(e)h
(joined)g(together)f(using)g(MPI-1)h(group)e(functions.)166
2534 y(The)j(second)h(step)f(starts)e(the)i(pro)q(cesses)h(sp)q
(eci\014ed)h(b)o(y)e(a)f(group)h(handle)h(and)f(places)h(them)f(all)75
2591 y(in)f(a)f(single)h Fm(MPI)p 377 2591 V 16 w(COMM)p
535 2591 V 17 w(W)o(ORLD)p Fq(.)166 2647 y(The)10 b(t)o(w)o(o-step)f
(pro)q(cess)i(not)e(only)i(allo)o(ws)f(for)g(all)h(the)f(c)o(hildren)i
(to)e(ha)o(v)o(e)g(the)g(same)g Fm(MPI)p 1667 2647 V
15 w(COMM)p 1824 2647 V 17 w(W)o(ORLD)p Fq(,)75 2704
y(but)17 b(it)g(also)g(giv)o(es)g(the)h(user)f(the)g(\015exibilit)o(y)i
(needed)g(to)d(run)h(applications)i(across)d(a)h(net)o(w)o(ork.)24
b(The)-32 46 y Fj(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32
272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 8 10
8 9 bop 75 -100 a Fq(8)951 b Fk(CHAPTER)16 b(1.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)75 45 y Fq(simple)i(example)g(is)f(w)o(ere)f
(executables)i(m)o(ust)e(b)q(e)h(matc)o(hed)g(with)g(particular)g(w)o
(orkstations)e(but)i(the)75 102 y(user)f(also)h(w)o(an)o(ts)e(all)i
(the)f(pro)q(cesses)h(on)f(all)h(the)f(w)o(orkstations)f(w)o(orking)h
(together.)166 158 y(There)c(are)f(t)o(w)o(o)g(options)h(at)f(the)h
(second)g(step.)18 b(If)11 b(the)g(paren)o(t)f(pro)q(cess)h(is)h
(starting)e(MPI)h(pro)q(cesses)75 214 y(that)21 b(will)j(comm)o
(unicate)e(bac)o(k)f(with)i(the)e(paren)o(t)h(pro)q(cess)g(at)f(some)h
(p)q(oin)o(t)g(in)h(the)e(future,)j(then)75 271 y(the)19
b(application)h(should)g(call)g Fm(MPI)p 715 271 14 2
v 16 w(ST)l(ART)p 873 271 V 17 w(A)l(TT)l(A)o(CH)p Fq(.)g(This)f
(function)h(blo)q(c)o(ks)f(un)o(til)h(the)f(c)o(hildren)75
327 y(establish)g(an)f(in)o(ter-comm)o(unicator)h(with)f(the)g(paren)o
(t)g(group.)29 b(The)18 b(syc)o(hronization)h(o)q(ccurs)f(when)75
384 y(the)12 b(c)o(hildren)j(call)e Fm(MPI)p 486 384
V 16 w(INIT)p Fq(.)e(When)i Fm(MPI)p 827 384 V 16 w(INIT)f
Fq(is)h(called,)h(the)e(v)m(arables)h Fm(MPI)p 1456 384
V 16 w(COMM)p 1614 384 V 17 w(W)o(ORLD)f Fq(and)75 440
y Fm(MPI)p 160 440 V 16 w(COMM)p 318 440 V 16 w(P)l(ARENT)17
b Fq(\(in)o(ter-comm)o(unicator\))d(are)h(set)g(in)h(the)f(c)o
(hildren.)166 497 y(The)i(adv)m(an)o(tage)f(of)h(using)h
Fm(MPI)p 737 497 V 15 w(INIT)f Fq(in)h(this)f(w)o(a)o(y)f(is)h(that)g
(MPI-1)f(programs)g(can)h(b)q(e)h(started)75 553 y(with)e(the)f(new)g
(MPI-2)g(functions)h(without)f(mo)q(di\014cation)i(to)d(these)i
(programs.)166 610 y(The)f(other)f(option)h(in)g(the)f(second)i(step)e
(is)h(to)f(call)i Fm(MPI)p 1157 610 V 15 w(ST)l(ART)p
1314 610 V 18 w(INDEPENDENT)p Fq(.)e(This)h(func-)75
666 y(tion)d(do)q(es)f(not)g(w)o(ait)g(for)g(the)g(c)o(hildren)i(and)f
(is)g(exp)q(ected)g(to)f(b)q(e)h(used)g(when)g(the)f(c)o(hildren)j(are)
d(non-MPI)75 723 y(pro)q(cesses)18 b(or)f(when)i(the)e(c)o(hildren)j
(only)e(comm)o(unicate)g(among)g(themselv)o(es)g(and)g(not)f(bac)o(k)h
(to)f(the)75 779 y(paren)o(ts.)29 b(In)18 b(the)h(latter)f(case,)g(the)
h(MPI)p 817 779 V 16 w(COMM)p 985 779 V 16 w(P)l(ARENT)g(in)o(tercomm)o
(unicator)f(is)h(not)f(de\014ned)75 835 y(on)d(return)g(from)g(MPI)p
477 835 V 16 w(INIT.)166 892 y(Note)f(that)f Fm(MPI)p
457 892 V 16 w(GROUP)p 625 892 V 18 w(INIT)g Fq(and)i
Fm(MPI)p 915 892 V 16 w(GROUP)p 1083 892 V 17 w(ST)l(ART)p
1242 892 V 18 w(INDEPENDENT)f Fq(are)g(called)i(on)e(a)75
948 y(single)e(pro)q(cess,)g(while)h Fm(MPI)p 565 948
V 16 w(GROUP)p 733 948 V 18 w(ST)l(ART)p 893 948 V 17
w(A)l(TT)l(A)o(CH)f Fq(is)g(collectiv)o(e)g(o)o(v)o(er)f(a)g(paren)o(t)
f(comm)o(unicator)75 1005 y(and)15 b(the)h(spa)o(wned)f(pro)q(cesses.)
75 1156 y Fm(MPI)p 160 1156 V 16 w(GROUP)p 328 1156 V
18 w(INIT\(executable,)g(a)o(rguments,)g(n,)g(where,)h(group\))117
1233 y Fd(IN)155 b Fm(executable)391 b Fd(executable)15
b(\014le)f(con)o(taining)f(program)f(to)i(b)q(e)g(run)117
1308 y(IN)155 b Fm(a)o(rguments)391 b Fd(argumen)o(ts)13
b(for)h(the)g(program)117 1383 y(IN)155 b Fm(n)564 b
Fd(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i(to)e(start)117
1458 y(IN)155 b Fm(where)477 b Fd(A)13 b(string)f(telling)g(the)h(run)o
(time)e(system)h(where)i(to)e(start)h(the)905 1515 y(pro)q(cesses)k
(\(opaque)d(to)f(MPI,)h(or)g(NULL\))117 1590 y(OUT)108
b Fm(group)479 b Fd(iden)o(ti\014es)15 b(the)f(group)g(of)f(pro)q
(cesses)75 1809 y Fm(MPI)p 160 1809 V 16 w(GROUP)p 328
1809 V 18 w(ST)l(ART)p 488 1809 V 17 w(A)l(TT)l(A)o(CH\(mycomm,)f
(group,)j(new)o(comm\))117 1886 y Fd(IN)155 b Fm(mycomm)412
b Fd(comm)o(unicator)11 b(of)j(paren)o(ts)g(group)117
1961 y(IN)155 b Fm(group)479 b Fd(group)14 b(returned)i(b)o(y)d
Fb(MPI)p 1326 1961 13 2 v 15 w(GROUP)p 1483 1961 V 13
w(INIT)117 2036 y Fd(OUT)108 b Fm(new)o(comm)397 b Fd(in)o(ter-comm)o
(unicator)11 b(b)q(et)o(w)o(een)16 b(paren)o(t)e(and)g(c)o(hild)f
(groups)75 2255 y Fm(MPI)p 160 2255 14 2 v 16 w(GROUP)p
328 2255 V 18 w(ST)l(ART)p 488 2255 V 17 w(INDEPENDENT\(group\))117
2333 y Fd(IN)155 b Fm(group)479 b Fd(group)14 b(returned)i(b)o(y)d
Fb(MPI)p 1326 2333 13 2 v 15 w(GROUP)p 1483 2333 V 13
w(INIT)75 2522 y Fi(1.3.4)49 b(Pro)q(cess)15 b(Utilities)75
2608 y Fq(A)h(pro)q(cess)g(represen)o(ted)g(b)o(y)g(a)f(\(group,rank\))
f(pair)i(cannot)g(b)q(e)g(comm)o(unicated)h(with)f(directly)l(,)h(un)o
(til)75 2665 y(a)d(comm)o(unicator)g(is)h(constructed)f(con)o(taining)i
(it.)j(It)c(need)g(not)f(b)q(e)h(an)f(\\MPI)g(pro)q(cess")h(in)g(the)f
(sense)1967 46 y Fj(1)1967 103 y(2)1967 159 y(3)1967
215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441
y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667
y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893
y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959
1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959
1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959
1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959
1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959
2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959
2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959
2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959
2699 y(48)p eop
%%Page: 9 11
9 10 bop 75 -100 a Fk(1.3.)34 b(PR)o(OCESS)16 b(MANA)o(GER)f(INTERF)-5
b(A)o(CE)916 b Fq(9)75 45 y(that)15 b(it)h(migh)o(t)g(not)f(call)i
Fm(MPI)p 601 45 14 2 v 16 w(INIT)p Fq(.)d(On)j(the)f(other)f(hand,)h
(it)g(allo)o(ws)g(out-of-band)g(comm)o(unication,)75
102 y(suc)o(h)g(as)e(signals,)i(and)f(migh)o(t)g(b)q(e)h(a)f(useful)h
(concept)g(for)f(dealing)h(with)g(failures.)166 158 y(T)l(o)f(ask)g
(the)g(pro)q(cess)g(manager)g(to)f(deliv)o(er)j(signals)f(to)f(pro)q
(cesses,)g(w)o(e)g(use)75 309 y Fm(MPI)p 160 309 V 16
w(GROUP)p 328 309 V 18 w(SIGNAL\(group,)f(signal\))117
386 y Fd(IN)155 b Fm(group)479 b Fd(group)14 b(of)f(pro)q(cesses)k(to)c
(signal)117 461 y(IN)155 b Fm(signal)480 b Fd(signal)13
b(t)o(yp)q(e)h(\(in)o(t\))166 586 y Fq(It)22 b(is)g(the)f(resp)q
(onsibilit)o(y)j(of)d(an)h(implemen)o(tation)h(to)e(translate)g(b)q(et)
o(w)o(een)h(signals;)j(in)d(other)75 642 y(w)o(ords,)17
b(a)h Fh(SIGINT)f Fq(that)g(has)g(v)m(alue)i Fh(3)f Fq(on)g(system)f(A)
h(m)o(ust)f(b)q(e)h(deliv)o(ered)i(as)d(a)h Fh(SIGINT)f
Fq(on)g(system)75 699 y(B,)e(ev)o(en)h(if)f(system)g(B)h(uses)f(the)g
(v)m(alue)i Fh(5)e Fq(for)g Fh(SIGINT)p Fq(.)f(If)h(the)h(signal)g(can)
f(not)g(b)q(e)h(deliv)o(ered)h(b)q(ecause)75 755 y(there)e(is)h(no)e
(corresp)q(onding)i(signal,)g(the)f(error)f(co)q(de)i(is)f
Fm(MPI)p 1157 755 V 16 w(ERR)p 1258 755 V 17 w(INV)l(ALID)p
1447 755 V 16 w(SIGNAL)p Fq(.)g(In)h(a)e(qualit)o(y)75
812 y(implemen)o(tation,)20 b(the)e(full)h(range)f(of)g(POSIX)h
(signals)g(will)h(b)q(e)e(delev)o(erable,)j(but)d(it)g(is)h(mandatory)
75 868 y(that)14 b(at)h(least)g(the)h(KILL)g(signal)g(\()p
Fm(MPI)p 769 868 V 16 w(SIGNAL)p 940 868 V 17 w(KILL)p
Fq(\))d(b)q(e)j(supp)q(orted.)75 990 y Fi(1.3.5)49 b(Noti\014cation)75
1076 y Fq(There)19 b(needs)g(to)f(b)q(e)h(some)g(w)o(a)o(y)e(of)h
(\014nding)i(out)e(when)h(a)g(pro)q(cess)f(\014nishes.)32
b(In)19 b(MPI)g(w)o(e)f(ha)o(v)o(e)g(no)75 1132 y(mec)o(hanism)g(for)g
(async)o(hronous)f(noti\014cation.)29 b(Therefore)17
b(the)h(b)q(est)g(w)o(e)g(can)g(do)f(is)i(to)e(construct)g(a)75
1188 y(request)f(that)g(can)h(b)q(e)g(tested)f(and)h(w)o(aited)f(on.)24
b(If)17 b(pro)q(cesses)g(w)o(ere)f(represen)o(ted)h(b)o(y)f(requests,)h
(then)75 1245 y(w)o(e)h(could)g(w)o(ait)g(on)g(them)f(directly)l(.)30
b(Since)19 b(w)o(e)f(ha)o(v)o(e)f(in)o(tro)q(duced)i(the)f(notion)g(of)
g Fm(MPI)p 1636 1245 V 15 w(Pro)q(cess)p Fq(,)h(w)o(e)75
1301 y(can)c(explicitly)j(attac)o(h)c(a)h(request)h(to)e(it)i(in)g
(order)f(to)f(w)o(ait)h(on)g(it.)75 1452 y Fm(MPI)p 160
1452 V 16 w(NOTIFY\(group,)g(n,)g(a)o(rra)o(y)p 641 1452
V 14 w(of)p 692 1452 V 16 w(requests\))117 1530 y Fd(IN)155
b Fm(group)479 b Fd(a)14 b(group)g(of)f(pro)q(cesses)117
1605 y(IN)155 b Fm(n)564 b Fd(n)o(um)o(b)q(er)13 b(of)h(requests)i(in)d
(follo)o(wing)e(arra)o(y)117 1680 y(OUT)108 b Fm(a)o(rra)o(y)p
416 1680 V 15 w(of)p 468 1680 V 16 w(requests)272 b Fb(MPI)p
982 1680 13 2 v 15 w(Request)p Fd(s)15 b(to)f(b)q(e)g(tested)i(and/or)d
(w)o(aited)h(on)166 1880 y Fe(Discussion:)34 b Fd(This)14
b(used)g(to)g(b)q(e:)166 1930 y(PVM)i(users)g(ha)o(v)o(e)f(found)g
(that)h(a)f(\015exible)g(`notify')e(function)i(is)g(imp)q(ortan)o(t)f
(to)h(building)f(fault)g(toleran)o(t)75 1980 y(applications.)j(W)m(e)c
(prop)q(ose)i(to)f(supply)g(similar)d(functionalit)o(y)h(in)i(MPI.)75
2124 y Fb(MPI)p 152 2124 V 14 w(NOTIFY\(what,)g(n,)f(a)o(rra)o(y)m(,)g
(request\))117 2195 y Fd(IN)154 b Fb(what)504 b Fd(a)12
b(\015ag)f(sp)q(ecifying)h(what)f(to)h(b)q(e)g(noti\014ed)g(ab)q(out)g
(\(see)h(b)q(elo)o(w\))117 2257 y(IN)154 b Fb(n)567 b
Fd(n)o(um)o(b)q(er)13 b(of)h(ob)r(jects)h(in)e(follo)o(wing)e(arra)o(y)
117 2319 y(IN)154 b Fb(a)o(rra)o(y)503 b Fd(arra)o(y)14
b(of)f(MPI)h(ob)r(jects)h(\(dep)q(ends)h(on)e(v)n(alue)f(of)g(`what'\))
117 2382 y(OUT)107 b Fb(request)465 b Fd(mpifuncMPI)p
1136 2382 V 14 w(Request)15 b(to)e(b)q(e)i(tested)g(and/or)f(w)o(aited)
f(on)166 2499 y(Initially)m(,)7 b(w)o(e)j(prop)q(osed)g(that)f(the)h
Fb(what)g Fd(can)f(tak)o(e)h(on)f(t)o(w)o(o)g(v)n(alues:)15
b(MPI)p 1306 2499 V 15 w(Pro)q(cess)p 1455 2499 V 17
w(Exit)9 b(and)g(MPI)p 1716 2499 V 16 w(Resource)p 1893
2499 V 16 w(F)m(ailure.)75 2549 y(In)14 b(these)h(cases)g
Fb(a)o(rra)o(y)f Fd(con)o(tains)g(MPI)g(Pro)q(cess)i(ob)r(jects)f(and)f
(MPI)g(resource)i(ob)r(jects)f(resp)q(ectiv)o(ely)m(.)166
2599 y(These)f(are)g(the)g(t)o(w)o(o)e(most)g(ob)o(vious)h(v)n(alues)g
(for)f(`what'.)17 b(Are)d(there)h(other)e(v)n(alues)g(w)o(e)h(w)o(an)o
(t)e(to)h(consider?)75 2649 y(PVM)21 b(con)o(tains)g(the)g(equiv)n
(alen)o(t)f(of)h(MPI)p 783 2649 V 15 w(Resource)p 959
2649 V 16 w(Add)g(case,)i(but)e(w)o(e)g(ha)o(v)o(e)g(restricted)i(MPI)e
(resource)75 2699 y(o)o(wnership)14 b(suc)o(h)h(that)f(the)g(MPI)p
608 2699 V 16 w(Resource)p 785 2699 V 16 w(Add)g(case)h(is)f(not)f(imp)
q(ortan)o(t)f(in)i(MPI.)g(-A)o(G)-32 46 y Fj(1)-32 103
y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32
385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611
y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40
893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40
1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40
1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40
1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40
1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40
2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40
2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40
2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40
2699 y(48)p eop
%%Page: 10 12
10 11 bop 75 -100 a Fq(10)928 b Fk(CHAPTER)16 b(1.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)166 45 y Fd(I)f(ha)o(v)o(e)g(c)o(hanged)
h(it)e(b)q(ecause)j(there)g(are)e(no)g(pro)q(cesses)j(an)o(y)d(more)f
(and)h(there)h(is)f(no)g(resource)j(o)o(wnership)75 102
y(or)d(ev)o(en)g(resources)i(at)e(all.)j(Therefore)e(w)o(e)f(can)g(mak)
o(e)e(do)h(with)h(the)g(sp)q(ecial)g(case)h(of)e(w)o(aiting)f(for)i
(pro)q(cesses)i(to)75 158 y(terminate.)i(I)c(am)f(not)h(sure)h(that)f
(this)g(restriction)h(is)f(desirable,)g(ho)o(w)o(ev)o(er,)g(and)g(p)q
(erhaps)i(w)o(e)e(should)g(put)g(the)75 214 y(\\what")e(bac)o(k)h(in)o
(to)e(the)j(argumen)o(t)d(list)h(for)h(MPI)p 866 214
13 2 v 15 w(NOTIFY)g(as)g(a)f(placeholder)h(for)f(future)h(extensions.)
19 b({)12 b(RL)166 354 y Fq(W)l(e)j(can)g(think)g(of)g(this)g(as)g(MPI)
g(in)o(terface)g(to)f(the)h(Pro)q(cess)g(Manager's)e(handling)k(of)d
(the)h(signal)75 410 y Fh(SIGCHILD)p Fq(.)e(The)i(exit)g(co)q(de)g
(from)f(the)g(pro)q(cess)h(\(from)f(a)g Fh(return)23
b(n)14 b Fq(or)g Fh(exit\(n\))g Fq(in)h(C)f(or)g Fh(STOP)24
b(n)14 b Fq(in)75 467 y(F)l(ortran\))g(can)h(b)q(e)h(retriev)o(ed)g
(from)e(the)h Fm(MPI)p 863 467 14 2 v 16 w(status)i Fq(\014lled)g(in)f
(the)g Fm(MPI)p 1332 467 V 15 w(W)l(AIT)p Fq(.)166 523
y(Note)h(that)g(this)h(lev)o(el)h(of)e(pro)q(cess)h(managemen)o(t)f
(allo)o(ws)h(us)g(to)f(manage)g(non-MPI)h(pro)q(cesses,)75
579 y(since)e(comm)o(unicators)f(are)g(not)g(in)o(v)o(olv)o(ed.)75
723 y Fl(1.4)59 b(A)n(ttaching)19 b(to)g(Indep)r(endent)e(Pro)r(cesses)
75 907 y Fe(Discussion:)38 b Fd(This)14 b(has)h(not)g(b)q(een)h(up)q
(dated)g(in)e(sev)o(eral)h(v)o(ersions,)g(and)g(needs)h(w)o(ork.)21
b(In)15 b(particular,)f(older)75 963 y(v)o(ersions)f(had)g(more)f
(\015exibilit)o(y)m(,)f(and)h(the)i(non-blo)q(c)o(king)d(v)o(ersions)j
(of)e(the)i(calls)e(ma)o(y)f(b)q(e)i(required)h(in)f(order)g(for)75
1020 y(a)h(serv)o(er)h(to)f(accept)h(new)f(clien)o(ts)g(while)g
(serving)g(old)f(ones.)166 1159 y Fq(So)e(far)f(w)o(e)h(ha)o(v)o(e)f
(co)o(v)o(ered)h(the)g(case)g(of)f(creating)h(new)h(pro)q(cesses.)18
b(F)l(or)11 b(clien)o(t-serv)o(er)h(applications,)75
1215 y(the)i(situation)g(is)g(di\013eren)o(t,)f(b)q(ecause)i(the)e(pro)
q(cesses)h(in)h(question)f(already)f(exist,)h(and)g(what)f(w)o(e)g
(need)75 1272 y(is)g(a)g(comm)o(unicator)f(to)g(b)q(e)h(used)h(b)o(y)e
(them)h(to)f(comm)o(unicate)h(with)g(one)g(another.)18
b(Similar)d(situations)75 1328 y(arise)20 b(in)h(other)f(applications)h
(as)f(w)o(ell.)35 b(F)l(or)19 b(example,)j(a)e(visualization)i(to)q(ol)
e(ma)o(y)f(w)o(an)o(t)g(to)g(start)75 1385 y(up)e(and)f(attac)o(h)f(to)
h(a)f(running)j(sim)o(ulation,)f(or)e(t)o(w)o(o)g(parts)h(of)g(a)f
(large)i(application)g(ma)o(y)f(b)q(e)h(started)75 1441
y(separatly)e(at)g(t)o(w)o(o)f(di\013eren)o(t)h(sites)g(and)h(then)f(w)
o(an)o(t)f(to)h(comm)o(unicate)h(with)f(eac)o(h)g(other.)166
1498 y(This)22 b(section)g(attempts)f(to)g(pro)o(vide)h(the)g
(functions)g(needed)h(to)e(solv)o(e)h(the)g(general)g(case)f(of)75
1554 y(creating)12 b(an)f(in)o(tercomm)o(unicator)g(b)q(et)o(w)o(een)h
(t)o(w)o(o)e(MPI)h(pro)q(cesses)h(with)g(no)f(kno)o(wledge)h(of)f(eac)o
(h)h(other.)75 1676 y Fi(1.4.1)49 b(Registration)17 b(and)g(Connection)
75 1762 y Fq(The)e(follo)o(wing)h(four)f(functions)h(de\014ne)g(the)g
(in)o(terface.)75 1912 y Fm(MPI)p 160 1912 V 16 w(PROCESS)p
373 1912 V 18 w(REGISTER\()g(name,)e(handle\))117 1990
y Fd(IN)155 b Fm(name)485 b Fd(string)14 b(used)h(for)e(con)o(tacting)
117 2065 y(OUT)108 b Fm(handle)465 b Fd(asso)q(ciated)15
b(with)e(the)i(name)166 2189 y Fq(The)i(form)g(of)f(the)i
Fm(name)f Fq(argumen)o(t)f(has)h(sev)o(eral)g(p)q(ossibilitie)q(s.)28
b(The)18 b(most)e(ob)o(vious)h(is)h(to)f(use)75 2246
y(the)c Fh(net-address:port-number)d Fq(format)h(that)h(curren)o(t)h
(systems)f(will)j(\014nd)e(most)f(straigh)o(tforw)o(ard.)75
2302 y(Ho)o(w)o(ev)o(er,)i(in)i(the)f(long)h(run,)f(name)g(serv)o(ers)g
(of)f(v)m(arious)i(kinds)g(ma)o(y)f(require)h(more)f(\015exibilit)o(y)l
(.)1967 46 y Fj(1)1967 103 y(2)1967 159 y(3)1967 215
y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967
498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959
724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959
949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959
1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959
1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959
1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959
1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959
2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959
2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959
2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p
eop
%%Page: 11 13
11 12 bop 75 -100 a Fk(1.4.)34 b(A)l(TT)l(A)o(CHING)15
b(TO)h(INDEPENDENT)e(PR)o(OCESSES)645 b Fq(11)75 45 y
Fm(MPI)p 160 45 14 2 v 16 w(PROCESS)p 373 45 V 18 w(A)o(CCEPT\(mycomm,)
12 b(handle,)k(ro)q(ot,)e(new)o(comm\))117 122 y Fd(IN)155
b Fm(mycomm)412 b Fd(comm)o(unicator)11 b(o)o(v)o(er)j(whic)o(h)g(this)
g(call)f(is)h(collectiv)o(e)117 197 y(IN)155 b Fm(handle)465
b Fd(asso)q(ciated)15 b(with)e(registered)j(name)117
273 y(IN)155 b Fm(ro)q(ot)508 b Fd(the)15 b(pro)q(cess)g(that)f
(registered)i(the)e(name)117 348 y(OUT)108 b Fm(new)o(comm)397
b Fd(new)12 b(in)o(ter-comm)o(unicator,)d(whic)o(h)i(includes)h(the)g
(pro)q(cesses)905 404 y(of)h(the)i(remote)e(group)75
623 y Fm(MPI)p 160 623 V 16 w(PROCESS)p 373 623 V 18
w(CONT)l(A)o(CT\(mycomm,)f(name,)j(new)o(comm\))117 700
y Fd(IN)155 b Fm(mycomm)412 b Fd(comm)o(unicator)11 b(o)o(v)o(er)j
(whic)o(h)g(this)g(call)f(is)h(collectiv)o(e)117 775
y(IN)155 b Fm(name)485 b Fd(name)8 b(b)o(y)h(whic)o(h)h(remote)e(pro)q
(cess)j(can)f(b)q(e)g(con)o(tacted)g(\(string\))117 851
y(OUT)108 b Fm(new)o(comm)397 b Fd(new)12 b(in)o(ter-comm)o(unicator,)d
(whic)o(h)i(includes)h(the)g(pro)q(cesses)905 907 y(of)h(the)i(remote)e
(group)75 1126 y Fm(MPI)p 160 1126 V 16 w(FREE)p 285
1126 V 17 w(NAME\()i(handle\))117 1203 y Fd(IN)155 b
Fm(handle)465 b Fd(asso)q(ciated)15 b(with)e(registered)j(name)166
1328 y Fq(W)l(e)h(will)h(illustrate)g(the)f(use)g(of)f(these)h
(functions)g(with)g(a)g(clien)o(t/serv)o(er)g(example.)25
b(The)17 b(serv)o(er)75 1384 y(w)o(ould)12 b(register)f(a)h(\\name")f
(b)o(y)g(whic)o(h)i(it)f(w)o(an)o(ts)e(to)h(b)q(e)h(kno)o(wn.)19
b(The)11 b(Register)i(function)f(w)o(ould)g(return)75
1441 y(an)k(error)g(if)g(there)g(is)h(a)f(name)g(con\015ict.)24
b(The)16 b(serv)o(er)g(group)g(calls)h(MPI)p 1350 1441
V 16 w(PR)o(OCESS)p 1578 1441 V 17 w(A)o(CCEPT)f(and)75
1497 y(the)f(clien)o(t)h(group)f(calls)h(MPI)p 597 1497
V 16 w(PR)o(OCESS)p 825 1497 V 18 w(CONT)l(A)o(CT.)e(The)h(output)g(of)
f(these)i(t)o(w)o(o)d(collectiv)o(e)k(calls)75 1553 y(is)j(an)g(in)o
(ter-comm)o(unicator)g(b)q(et)o(w)o(een)g(the)f(t)o(w)o(o)g(groups.)33
b(No)o(w)19 b(an)o(y)g(pro)q(cess)h(in)h(the)e(clien)o(t)i(group)75
1610 y(can)g(comm)o(unicate)h(with)f(an)o(y)g(pro)q(cess)h(in)g(the)f
(serv)o(er)g(group)g(and)g(vice)i(v)o(ersa,)e(using)h(the)g(in)o(ter-)
75 1666 y(comm)o(unicator.)166 1723 y(Disconnection)11
b(o)q(ccurs)g(when)g(pro)q(cesses)f(call)h Fm(MPI)p 1057
1723 V 16 w(COMM)p 1215 1723 V 17 w(FREE)f Fq(on)g(the)h(in)o(ter-comm)
o(unicator.)166 1862 y Fe(Discussion:)30 b Fd(I'm)9 b(not)h(clear)h(ho)
o(w)f(the)h(serv)o(er)h(can)f(con)o(tin)o(ue)g(to)f(service)i(clien)o
(ts)f(it)f(is)g(already)g(connected)75 1918 y(to,)17
b(and)g(still)f(A)o(CCEPT)h(new)h(clien)o(ts.)27 b(Do)17
b(w)o(e)g(need)h(to)f(mak)o(e)e(A)o(ttac)o(h)i(and)g(Con)o(tact)g
(non-blo)q(c)o(king)f(calls?)75 1975 y(-A)o(G)166 2190
y Fe(Discussion:)48 b Fd(A)o(G-)17 b(This)h(is)f(an)g(old)g(discussion)
h(but)g(it)f(w)o(as)g(left)h(in)f(b)q(ecause)i(W)o(CS)e(mak)o(es)f(sev)
o(eral)75 2240 y(imp)q(ortan)o(t)c(observ)n(ations)i(in)g(it.)166
2290 y(After)h(going)e(through)h(the)g(exercise)i(of)e(replacing)g
(connections)h(with)f(pro)q(cesses,)i(I)e(think)g(I)g(understand)75
2339 y(wh)o(y)j(connections)h(w)o(ere)f(prop)q(osed)h(in)f(the)g
(\014rst)h(place.)27 b(The)17 b(problem)f(is)h(that)f(y)o(ou)h(ma)o(y)e
(w)o(an)o(t)h(to)h(prev)o(en)o(t)75 2389 y(the)g(serv)o(er)h(from)d
(blo)q(c)o(king)h(no)g(matter)g(what)g(the)h(clien)o(t)g(do)q(es.)27
b(As)17 b(prop)q(osed)g(here,)h(the)f(serv)o(er)h(will)d(blo)q(c)o(k)75
2439 y(while)i(A)m(TT)m(A)o(CHing)f(if)g(the)i(clien)o(t)f(do)q(esn't)h
(do)f(a)g(matc)o(hing)e(A)m(TT)m(A)o(CH.)h(A)h(\\connection")h(w)o(as)f
(more)f(than)75 2489 y(a)j(simple)e(pro)q(cess)k(in)e(that)g
(establishing)g(an)g(in)o(tercomm)o(unicator)e(from)g(an)i
Fb(MPI)p 1447 2489 13 2 v 14 w(Connection)h Fd(\(using)f(RE-)75
2539 y(MOTE)p 205 2539 V 16 w(A)m(TT)m(A)o(CH\))13 b(w)o(as)h(a)f
Fa(lo)n(c)n(al)g Fd(op)q(eration,)h(not)g(requiring)f(sync)o
(hronization)h(with)g(the)g(remote)g(pro)q(cesses.)166
2589 y(I)f(main)o(tain)d(that)j(this)g(only)f(sw)o(ept)i(the)g(problem)
d(under)j(the)g(rug.)k(In)13 b(e\013ect,)h(establishing)f(a)f
(connection)75 2638 y(with)g(ICONNECT/IA)o(CCEPT)h(w)o(as)g(a)f(a)g
(non)o(blo)q(c)o(king)f(collectiv)o(e)i(op)q(eration)f(that)h
(established)g(comm)o(unica-)75 2688 y(tion.)19 b(REMOTE)p
367 2688 V 15 w(A)m(TT)m(A)o(CH)14 b(w)o(as)g(really)g(only)g(a)g(lo)q
(cal)f(lo)q(okup)h(of)g(the)h(already-established)f(comm)o(unicator.)
-32 46 y Fj(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32
272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 12 14
12 13 bop 75 -100 a Fq(12)933 b Fk(CHAPTER)16 b(1.)29
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fd(A)j(more)f(direct)i(solution)
e(is)g(\(IMHO\))i(to)f(pro)o(vide)g(a)f(non-blo)q(c)o(king)g(v)o
(ersion)h(of)f Fb(MPI)p 1495 45 13 2 v 14 w(PROCESS)p
1692 45 V 14 w(A)m(TT)m(A)o(CH)p Fd(.)75 95 y(This)d(has)g(all)e(the)j
(same)e(asso)q(ciated)i(issues)g(of)e(non)o(blo)q(c)o(king)f(collectiv)
o(e)i(op)q(erations,)g(but)g(seems)g(cleaner.)166 145
y(More)21 b(generally)m(,)g(a)f(serv)o(er)i(m)o(ust)e(alw)o(a)o(ys)f(a)
o(v)o(oid)g(collectiv)o(e)i(comm)o(unicatio)o(n)d(with)i(a)g(clien)o(t)
h(\(unless)75 195 y(non)o(blo)q(c)o(king)11 b(collectiv)o(e)h(is)g(a)o
(v)n(ailable\))f(and)h(m)o(ust)f(alw)o(a)o(ys)g(use)i(non-blo)q(c)o
(king)e(p)q(oin)o(t-to-p)q(oin)o(t)g(comm)o(unication)75
244 y(if)f(it)h(wishes)h(to)g(a)o(v)o(oid)e(deadlo)q(c)o(k)h(due)h(to)f
(an)g(unco)q(op)q(erativ)o(e/incorrect)i(clien)o(t.)k(Because)c(there)g
(are)f(\(curren)o(tly\))75 294 y(no)f(non-blo)q(c)o(king)e(collectiv)o
(e)i(op)q(erations,)g(and)f(b)q(ecause)j(these)f(w)o(ould)e(probably)g
(not)h(b)q(e)g(to)q(o)g(useful)f(to)h(a)f(serv)o(er)75
344 y(in)16 b(an)o(y)f(case)i(\(?\))25 b(W)m(e)15 b(ma)o(y)f(w)o(an)o
(t)i(to)f(a)o(v)o(oid)g(the)i(issue)f(en)o(tirely)g(and)g(pro)o(vide)g
(only)f(a)h(lo)q(cal)f(\(non-collectiv)o(e\))75 394 y(non-blo)q(c)o
(king)e(v)o(ersion)h(of)f Fb(MPI)p 586 394 V 14 w(PROCESS)p
783 394 V 13 w(IA)m(TT)m(A)o(CH)g Fd(\(i.e,)g(without)g(the)i
Fb(comm)d Fd(and)h Fb(ro)q(ot)h Fd(argumen)o(ts.)j(\).)166
444 y(If)12 b(w)o(e)h(do)f(ha)o(v)o(e)g(a)g(non)o(blo)q(c)o(king)f
(collectiv)o(e)h(op)q(eration,)g(it)g(will)f(need)j(to)e(function)g
(correctly)i(when)e(sev)o(eral)75 493 y(are)i(o)o(v)o(erlapp)q(ed.)k
(Is)d(this)f(p)q(ossible?)75 550 y(w)o(cs)75 776 y Fl(1.5)59
b(Examples)75 877 y Fm(Manager-w)o(o)o(rk)o(er)13 b(example,)i(using)h
(SP)l(A)-5 b(WN.)75 971 y Fh(/*)24 b(manager)e(*/)75
1028 y(#include)h(<mpi.h>)75 1084 y(main\(int,)g(argc,)g(char)g
(*arg[]\))75 1140 y({)147 1197 y(MPI_Status)f(status;)147
1253 y(int)h(count,)g(world_size,)f(flag;)147 1310 y(MPI_Comm)g
(everyone;)262 b(/*)23 b(intercommunicator)f(*/)147 1423
y(MPI_Init\(&argc,)f(&argv\);)147 1479 y(MPI_Comm_size\(MPI_COMM_)o
(WORLD,)f(&world_size\);)147 1536 y(if)j(\(world_size)g(!=)g(1\))242
1592 y(error\("Top)g(heavy)g(with)g(management"\);)147
1649 y(MPI_Attr_get\(MPI_COMM_W)o(ORLD,)e(MPI_UNIVERSE_SIZE,)g(&count,)
i(&flag\))147 1761 y(if)g(\(count)g(==)h(1\))242 1818
y(error\("No)f(room)g(to)h(start)f(workers"\);)147 1931
y(MPI_Spawn\("worker",)e(NULL,)i(count-1,)g(MPI_COMM_SELF,)f
(&everyone\);)147 2044 y(/*)170 2100 y(*)i(Parallel)f(code)g(here.)g
(The)h(communicator)e("everyone")h(can)g(be)h(used)170
2157 y(*)g(to)g(communicate)e(with)h(the)h(spawned)f(processes,)f
(which)h(have)h(ranks)f(0,..count-2)170 2213 y(*)h(in)g(the)f(remote)g
(group)g(of)h(the)f(intercommunicator)f("everyone".)170
2270 y(*/)147 2382 y(MPI_Finalize\(\);)75 2439 y(})75
2552 y(/*)i(worker)f(*/)75 2665 y(#include)g(<mpi.h>)1967
46 y Fj(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967
272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498
y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724
y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949
y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959
1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959
1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959
1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959
1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959
2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959
2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959
2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p
eop
%%Page: 13 15
13 14 bop 75 -100 a Fk(1.5.)29 b(EXAMPLES)1398 b Fq(13)75
45 y Fh(main\(int)23 b(argc,)g(char)g(*argv[]\))75 102
y({)147 158 y(MPI_Init\(&argc,)e(&argv\);)147 271 y(/*)170
327 y(*)j(Parallel)f(code)g(here.)170 384 y(*)h(The)g(manager)f(is)g
(represented)f(as)i(the)g(process)e(with)i(rank)f(0)h(in)f(\(the)h
(remote)170 440 y(*)g(group)f(of\))h(MPI_COMM_PARENT.)45
b(If)24 b(the)f(workers)g(need)h(to)f(communicate)g(among)170
497 y(*)h(themselves,)f(they)g(can)g(either)g(extract)g(the)h(local)f
(group)g(of)h(the)170 553 y(*)g(intercommunicator)e(MPI_COMM_PARENT,)f
(or)j(use)f(MPI_COMM_WORLD.)46 b(They)170 610 y(*)24
b(should)f(be)h(the)f(same.)170 666 y(*/)147 779 y(MPI_Finalize\(\);)75
835 y(})75 1068 y Fm(Manager-w)o(o)o(rk)o(er)13 b(example,)i(using)h(A)
l(TT)l(A)o(CH.)75 1162 y Fh(/*)24 b(manager)e(*/)75 1219
y(#include)h(<mpi.h>)75 1275 y(main\(int,)g(argc,)g(char)g(*arg[]\))75
1332 y({)147 1388 y(int)g(count,)g(world_size,)f(flag;)147
1445 y(MPI_Comm)g(everyone;)333 b(/*)24 b(intercommunictor)d(*/)147
1501 y(MPI_Group)h(worker_group;)147 1614 y(MPI_Init\(&argc,)f
(&argv\);)147 1670 y(MPI_Comm_size\(MPI_COMM_)o(WORLD,)f
(&world_size\);)147 1727 y(if)j(\(world_size)g(!=)g(1\))242
1783 y(error\("Top)g(heavy)g(with)g(management"\);)147
1840 y(MPI_Attr_get\(MPI_COMM_W)o(ORLD,)e(MPI_UNIVERSE_SIZE,)g(&count,)
i(&flag\);)147 1953 y(if)g(\(count)g(==)h(1\))242 2009
y(error\("No)f(room)g(to)h(start)f(workers"\);)147 2122
y(MPI_Group_init\("worker")o(,)e(NULL,)i(count-1,)g(NULL,)g
(&worker_group\);)147 2178 y(MPI_Start_attach\(MPI_CO)o(MM_SELF)o(,)e
(0,)j(worker_group,)e(&everyone\);)147 2291 y(/*)170
2348 y(*)i(Parallel)f(code)g(here.)g(The)h(communicator)e("everyone")h
(can)g(be)h(used)170 2404 y(*)g(to)g(communicate)e(with)h(the)h
(spawned)f(processes,)f(which)h(have)h(ranks)f(0,..count-2)170
2461 y(*)h(in)g(the)f(remote)g(group)g(of)h(the)f(intercommunicator)f
("everyone".)170 2517 y(*/)147 2630 y(MPI_Finalize\(\);)75
2687 y(})-32 46 y Fj(1)-32 103 y(2)-32 159 y(3)-32 215
y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32
498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724
y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40
1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40
1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40
1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40
1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40
1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40
2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40
2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40
2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 14 16
14 15 bop 75 -100 a Fq(14)933 b Fk(CHAPTER)16 b(1.)29
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 102 y Fh(/*)24 b(worker)f(*/)75
214 y(#include)g(<mpi.h>)75 271 y(main\(int)g(argc,)g(char)g(*argv[]\))
75 327 y({)147 384 y(MPI_Init\(&argc,)e(&argv\);)147
497 y(/*)170 553 y(*)j(Parallel)f(code)g(here.)170 610
y(*)h(Manager)f(is)h(represented)e(as)i(the)f(process)g(with)g(rank)h
(0)f(in)h(\(the)f(remote)g(group)170 666 y(*)h(of\))g(MPI_COMM_PARENT.)
45 b(The)24 b(workers)f(can)g(communicate)f(with)i(one)f(another)170
723 y(*)h(using)f(MPI_COMM_WORLD.)170 779 y(*/)147 892
y(MPI_Finalize\(\);)75 948 y(})75 1181 y Fm(T)l(ask)16
b(fa)o(rm)d(example.)45 b Fq(This)16 b(example)g(sho)o(ws)e(ho)o(w)h
(to)f(manage)h(a)g(set)g(of)g(non-MPI)g(pro)q(cesses.)75
1288 y Fh(#include)23 b(<mpi.h>)75 1344 y(#define)g(MAXPROC)g(1000)75
1401 y(main\(int)g(argc,)g(char)g(*argv[]\))75 1457 y({)147
1513 y(MPI_Group)f(workers[MAXPROC];)147 1570 y(MPI_Group)g
(worker_group;)147 1626 y(MPI_Request)g(obituaries[MAXPROC];)147
1683 y(MPI_Status)g(statuses[MAXPROC];)45 b(/*)24 b(see)f(comment)g
(below)g(*/)147 1739 y(int)g(count,)g(nslots,)g(i,)h(deadone;)147
1796 y(char)f(**args;)147 1909 y(ThingToDo)f(*thingstodo;)147
1965 y(int)h(nthingstodo,)f(nthingsdone;)147 2078 y(MPI_Init\(&argc,)f
(&argv\);)147 2134 y(MPI_Attr_get\(MPI_COMM_W)o(ORLD,)g
(MPI_UNIVERSE_SIZE,)g(&count,)i(&flag\);)147 2191 y(nslots)g(=)147
2247 y(GetThingsToDo\(&thingsto)o(do,)e(nthingstodo\);)147
2360 y(/*)i(need)g(to)h(initialize)f(these)g(for)g(Waitany/all\(\))f
(below)h(to)h(work)f(*/)147 2417 y(for)g(\(i)h(=)f(0;)h(i)g(<)f
(MAXPROC;)g(i++\))g(obituaries[i])g(=)g(MPI_REQUEST_NULL;)147
2530 y(/*)g(start)g(up)h(initial)f(set)g(of)h(tasks)f(*/)147
2586 y(for)g(\(nthingsdone)f(=)i(0;)g(nthingsdone)e(<)i(nslots)f(&&)g
(nthingsdone)g(<)g(nthingstodo;)266 2643 y(nthingsdone++\))147
2699 y({)1967 46 y Fj(1)1967 103 y(2)1967 159 y(3)1967
215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441
y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667
y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893
y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959
1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959
1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959
1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959
1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959
2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959
2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959
2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959
2699 y(48)p eop
%%Page: 15 17
15 16 bop 75 -100 a Fk(1.5.)29 b(EXAMPLES)1398 b Fq(15)218
45 y Fh(SetArgs\(thingstodo[nthingsd)o(one],)21 b(&args\);)218
102 y(MPI_Group_init\("cow",)g(args,)i(1,)h(NULL,)f
(&workers[nthingsdone]\);)147 158 y(})147 214 y(merge_groups\(workers,)
e(&worker_group\);)236 b(/*)24 b(merge)f(singleton)g(groups)1340
271 y(into)g(one)h(big)f(group)g(*/)147 327 y(MPI_Group_start_indepen)o
(dent\(wo)o(rker_gro)o(up\);)147 384 y(MPI_Notify\(worker_group)o(,)e
(nslots,)i(obituaries\);)147 497 y(/*)g(spawn)g(new)h(ones)f(as)h(old)f
(ones)g(finish)h(*/)147 553 y(while\(nthingsdone)d(<)j(nthingstodo\))
147 610 y({)218 666 y(MPI_Waitany\(nslots,)d(obituaries,)i(&deadone,)f
(&status[0]\);)218 723 y(SetArgs\(thingstodo[nthingsd)o(one],)f
(&args\);)218 779 y(MPI_Group_init\("cow",)g(args,)i(1,)h
(&workers[nthingsdone]\);)218 835 y(MPI_Group_start_independent)o
(\(workers)o([nthing)o(sdone]\))o(;)218 892 y
(MPI_Notify\(&workers[nthings)o(done],)d(1,)i
(&obituaries[nthingsdone]\);)147 948 y(})147 1005 y
(MPI_Waitall\(nslots,)e(obituaries,)h(statuses\);)147
1118 y(MPI_Finalize\(\);)75 1174 y(})75 1351 y Fm(PVM-st)o(yle)16
b(SPMD)f(example)45 b Fq(This)16 b(is)g(ho)o(w)f(man)o(y)f(PVM)h
(programs)f(are)h(t)o(ypically)i(written.)j(There)75
1407 y(is)h(no)g(reason)g(they)g(can't)f(b)q(e)i(done)f(with)g(MPI-1,)h
(but)f(in)h(case)f(users)g(w)o(an)o(t)f(the)h(app)q(earance)g(of)75
1464 y(minimal)c(c)o(hange,)e(here)g(is)h(is.)k(\(V)l(ery)15
b(similar)i(to)d(the)i(manager-w)o(ork)o(er)d(example)j(ab)q(o)o(v)o
(e.\))75 1570 y Fh(/*)24 b(myprog)f(*/)75 1683 y(#include)g(<mpi.h>)75
1739 y(main\(int)g(argc,)g(char)g(*argv[]\))75 1796 y({)147
1852 y(int)g(count,)g(world_size,)f(flag;)147 1909 y(MPI_Comm)g
(everyone;)238 b(/*)23 b(intercommunicator)f(*/)147 1965
y(MPI_Comm)g(new_world;)214 b(/*)23 b(corresponding)f
(intracommunicator)g(*/)147 2078 y(MPI_Init\(&argc,)f(&argv\);)147
2191 y(if)i(\(MPI_COMM_PARENT)f(==)h(MPI_COMM_NULL\))46
b(/*)24 b(I'm)f(the)h(parent)f(*/)147 2247 y({)218 2304
y(MPI_Attr_get\(MPI_COMM_WORLD)o(,)e(MPI_UNIVERSE_SIZE,)h(&count,)h
(&flag\);)218 2360 y(if)h(\(count)f(==)g(1\))314 2417
y(error\("No)f(room)i(to)f(start)g(workers"\);)218 2473
y(MPI_Spawn\("myprog",)e(NULL,)j(count-1,)e(MPI_COMM_SELF,)g
(&everyone\);)218 2530 y(MPI_Intercomm_merge\(everyon)o(e,)f(FALSE,)i
(&new_world\);)147 2586 y(})147 2643 y(else)218 2699
y(MPI_Intercomm_merge\(MPI_COM)o(M_PARENT)o(,)e(TRUE,)i(&new_world\);)
-32 46 y Fj(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32
272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 16 18
16 17 bop 75 -100 a Fq(16)933 b Fk(CHAPTER)16 b(1.)29
b(D)o(YNAMIC)15 b(PR)o(OCESSES)170 102 y Fh(/*)24 b(SPMD)f(parallel)g
(code)g(here,)h(using)f(new_world)f(instead)h(of)h(MPI_COMM_WORLD)e(*/)
170 214 y(MPI_Finalize\(\);)75 271 y(})75 447 y Fm(Client-server)14
b(example.)44 b Fq(This)14 b(is)f(a)f(simple)j(example;)f(the)f(serv)o
(er)f(accepts)h(only)g(a)g(single)h(connection)75 503
y(at)h(a)f(time)i(and)f(serv)o(es)g(that)g(connection)h(un)o(til)g(the)
g(clien)o(t)g(requests)f(to)g(b)q(e)h(disconnected.)166
560 y(Here)21 b(is)h(the)g(serv)o(er.)38 b(It)21 b(accepts)h(a)f
(single)h(connection)h(and)e(then)h(pro)q(cesses)g(data)e(un)o(til)j
(it)75 616 y(receiv)o(es)16 b(a)f(message)g(with)g(tag)f
Fh(1)p Fq(.)20 b(A)15 b(message)g(with)h(tag)e Fh(0)h
Fq(tells)h(the)g(serv)o(er)e(to)h(exit.)75 706 y Fh(#include)23
b("mpi.h")75 763 y(main\()g(int)h(argc,)f(char)g(**argv)g(\))75
819 y({)75 875 y(MPI_Comm)g(client;)75 932 y(MPI_Status)f(status;)75
988 y(double)h(buf[MAX_DATA];)75 1045 y(int)95 b(again;)75
1158 y(MPI_Init\()23 b(&argc,)g(&argv)g(\);)75 1214 y(while)g(\(1\))h
({)170 1271 y(MPI_Server_connect\()e(MPI_COMM_WORLD,)g("cave:1234",)g
(&client)h(\);)170 1327 y(again)h(=)f(1;)170 1384 y(while)h(\(again\))f
({)266 1440 y(MPI_Recv\()g(buf,)g(MAX_DATA,)f(MPI_DOUBLE,)h(0,)g
(MPI_ANY_TAG,)505 1496 y(client,)f(&status)h(\);)266
1553 y(switch)g(\(status.tag\))f({)361 1609 y(case)i(0:)f
(MPI_Comm_free\()f(&client)h(\);)552 1666 y(MPI_Finalize\(\);)552
1722 y(return)g(0;)361 1779 y(case)h(1:)f(MPI_Comm_free\()f(&client)h
(\);)552 1835 y(again)g(=)h(0;)552 1892 y(break;)361
1948 y(case)g(2:)f(/*)h(do)f(something)g(*/)361 2005
y(...)361 2061 y(default:)552 2117 y(MPI_Abort\()g(MPI_COMM_WORLD,)f
("Unexpected)g(message)h(type")g(\);)361 2174 y(})266
2230 y(})170 2287 y(})75 2343 y(})166 2433 y Fq(Here)15
b(is)h(the)f(clien)o(t.)75 2534 y Fh(#include)23 b("mpi.h")75
2591 y(main\()g(int)h(argc,)f(char)g(**argv)g(\))75 2647
y({)75 2704 y(MPI_Comm)g(server;)1967 46 y Fj(1)1967
103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328
y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959
611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959
836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 17 19
17 18 bop 75 -100 a Fk(1.5.)34 b(EXAMPLES)1393 b Fq(17)75
45 y Fh(double)23 b(buf[MAX_DATA];)75 158 y(MPI_Init\()g(&argc,)g
(&argv)g(\);)75 214 y(MPI_Client_connect\()e(MPI_COMM_WORLD,)h
("cave:1234",)g(&server)h(\);)75 271 y(while)g(\(!done\))g({)170
327 y(tag)h(=)g(2;)f(/*)h(Action)f(to)g(perform)g(*/)170
384 y(MPI_Send\()g(buf,)g(n,)h(MPI_DOUBLE,)e(0,)i(tag,)f(server)g(\);)
170 440 y(/*)h(etc)f(*/)170 497 y(})75 553 y(MPI_Send\()g(buf,)g(0,)h
(MPI_DOUBLE,)e(0,)h(1,)h(server)f(\);)75 610 y(MPI_Comm_free\()f
(&client)h(\);)75 666 y(MPI_Finalize\(\);)75 723 y(})166
829 y Fq(If)17 b(the)g(serv)o(er)f(needs)i(to)e(manage)g(m)o(ultiple)i
(connections)g(at)e(once,)h(it)g(can)g(use)g Fm(MPI)p
1675 829 14 2 v 16 w(IA)o(CCEPT)75 885 y Fq(instead.)j(The)c(clien)o(t)
g(need)g(not)f(b)q(e)h(c)o(hanged.)-32 46 y Fj(1)-32
103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32
385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611
y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40
893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40
1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40
1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40
1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40
1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40
2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40
2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40
2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40
2699 y(48)p eop
%%Page: 18 20
18 19 bop 75 377 a Fo(Biblio)q(graph)m(y)75 600 y Fq([1])22
b(Al)d(Geist,)g(Adam)f(Beguelin,)j(Jac)o(k)e(Dongarra,)e(W)l(eic)o
(heng)j(Jiang,)g(Bob)e(Manc)o(hek,)h(and)g(V)l(aidy)146
656 y(Sunderam.)g Fg(PVM:)c(Par)n(al)r(lel)g(Virtual)h(Machine|A)g
(User's)f(Guide)h(and)g(T)m(utorial)g(for)g(Network)146
713 y(Par)n(al)r(lel)f(Computing)p Fq(.)20 b(MIT)15 b(Press,)g(1994.)
952 2828 y(18)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF