current proposal

Marc Snir (snir@watson.ibm.com)
Thu, 01 Jun 1995 18:41:30 -0400

%!PS-Adobe-2.0
%%Creator: dvips 5.47 (RS/6000 1.0) Copyright 1986-91 Radical Eye Software
%%Title: temp.dvi
%%Pages: 20 1
%%BoundingBox: 0 0 612 792
%%EndComments
%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
/vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 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}N /eop{clear SI restore
showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if /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}N /p /show load 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 statusdict begin /product where{pop product dup length 7 ge{0
7 getinterval(Display)eq}{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 /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{clear SS restore}B end
%%EndProcSet
TeXDict begin 1000 300 300 @start /Fa 10 116 df<00E001E007C007000F001E003C0038
007800700070007000F000E000E000E000E000E000E000E000F000700070007000780038003C00
1E000F00070007C001E000E00B217A9C16>40 D<E000F0007C001C001E000F000780038003C001
C001C001C001E000E000E000E000E000E000E000E001E001C001C001C003C0038007800F001E00
1C007C00F000E0000B217C9C16>I<387C7E7E3E0E1E3C7CF860070B798416>44
D<1FE0007FF8007FFC00783C00301E00000E00003E0007FE003FFE007FCE00F80E00E00E00E00E
00F01E00F83E007FFFE03FF7E00FC3E013127E9116>97 D<003F00007F00003F00000700000700
00070000070003E7000FFF003FFF003C1F00780F00700F00F00700E00700E00700E00700E00700
F00F00F00F00781F007C3F003FFFE01FF7F007C7E014197F9816>100 D<07E00FF81FFC3C3E78
0E700FF007FFFFFFFFFFFFE000F000700778073E1F1FFE0FFC03F010127D9116>I<7E0000FE00
007E00000E00000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0
000FF8000FF8000FBC000F1E000E0E000E0F000E07807F87F0FFCFF07F87F01419809816>107
D<7E7C00FFFF007FFF800F87800F03800F03800E03800E03800E03800E03800E03800E03800E03
800E03800E03807FC7F0FFE7F87FC7F01512809116>110 D<FF0F80FF3FE0FFFFE007F1E007E0
C007C000078000078000070000070000070000070000070000070000070000FFFC00FFFC00FFFC
0013127F9116>114 D<0FEC3FFC7FFCF03CE01CE01CF0007F801FF007FC003EE00EE00EF00EF8
1EFFFCFFF8C7E00F127D9116>I E /Fb 2 108 df<007000F000F0006000000000000000000000
0000000007001F8039C031C061C061C0C38003800380070007000E000E000E181C301C301C601C
E00FC007000D1F7F9E10>105 D<01E0000FE0000FC00001C00001C00001C00003800003800003
80000380000700000700000701C00707E00E0C300E18700E30F00E60F01CC0E01F80001F80001F
E00038F000383800383800381C307038607038607038407018C0E01F80600F0014207E9F18>
107 D E /Fc 20 119 df<70F8F8F0E005057B840E>46 D<000007000000070000000F0000000F
0000001F0000003F0000003F0000006F0000006F000000CF000000CF0000018F0000038F000003
0F0000060F0000060F00000C0F80000C07800018078000180780003FFF80007FFF800060078000
C0078000C00780018007800180078003000780070007800F0007807FC07FF8FFC07FF81D207E9F
22>65 D<01FFFFFE01FFFFFC001E003C001E001C001E001C003C000C003C000C003C000C003C00
1800780C1800780C1800780C0000781C0000F0380000FFF80000FFF80000F0380001E0300001E0
300001E0303001E0306003C0006003C0006003C000C003C001C007800180078003800780070007
801F00FFFFFF00FFFFFE001F1F7D9E1F>69 D<00F18003FDC0078F800E07801C07803C07803C07
00780700780700780700F00E00F00E00F00E00F00E30F01C60F03C60707C6078FCC03FCFC00F07
8014147C9317>97 D<007E0001FF000383800F07801E07801C07003C0200780000780000780000
F00000F00000F00000F00000F00000700200700700381E001FF80007E00011147C9315>99
D<0000780003F80003F00000700000700000700000E00000E00000E00000E00001C00001C000F1
C003FDC0078F800E07801C07803C07803C0700780700780700780700F00E00F00E00F00E00F00E
30F01C60F03C60707C6078FCC03FCFC00F078015207C9F17>I<007C0001FF000783000F01801E
01803C01803C0300780E007FFC007FE000F00000F00000F00000F000007000007002007807003C
1E001FF80007E00011147C9315>I<0000F80001FC0003BC00033C000718000700000700000E00
000E00000E00000E00000E0001FFE001FFE0001C00001C00001C00003800003800003800003800
00380000700000700000700000700000700000700000E00000E00000E00000E00001C00001C000
01C0000180003380007B8000F300007E00003C00001629829F0E>I<003C6000FF7001E3E00381
E00701E00F01E00F01C01E01C01E01C01E01C03C03803C03803C03803C03803C07003C0F001C1F
001E3F000FFE0003CE00000E00000E00001C00001C00301C00783800F0F0007FE0003F8000141D
7E9315>I<006000F000F000E000000000000000000000000000000F001F80318031C063806380
C3800700070007000E000E000E001C301C601C6038C018C01F800F000C1F7D9E0E>105
D<03C01FC01F8003800380038007000700070007000E000E000E000E001C001C001C001C003800
3800380038007000700070007180E300E300E300E6007E003C000A207C9F0C>108
D<1E07C0F8003F1FE1FC0033B8730E0063E076070063C03C07006380380700C780780E00070070
0E000700700E000700700E000E00E01C000E00E01C000E00E01C000E00E038601C01C038C01C01
C038C01C01C071801C01C031803803803F001801801E0023147D9325>I<1E07C03F1FE033B870
63E07063C038638038C780700700700700700700700E00E00E00E00E00E00E01C31C01C61C01C6
1C038C1C018C3801F81800F018147D931A>I<007C0001FF000383800F01C01E01C01C01E03C01
E07801E07801E07801E0F003C0F003C0F003C0F00780F00700700F00701E003838001FF00007C0
0013147C9317>I<03C1E007E7F8067E3C0C7C1C0C781E0C701E18E01E00E01E00E01E00E01E01
C03C01C03C01C03C01C07803C07803C07003C0E003E3C0077F80071E000700000700000E00000E
00000E00000E00001C0000FFC000FFC000171D809317>I<1E0F003F3F8033F1C063C1C063C3C0
6383C0C783800700000700000700000E00000E00000E00000E00001C00001C00001C00001C0000
38000018000012147D9313>114 D<00FC03FE07070E0F0E0F0E0E1E000F800FF007F803FC003E
001E701EF01CF01CE03860703FE01F8010147D9313>I<018001C0038003800380038007000700
FFF0FFF00E000E000E000E001C001C001C001C0038003800380038307060706070C071803F001E
000C1C7C9B0F>I<0F00601F80703180E031C0E06380E06380E0C381C00701C00701C00701C00E
03800E03800E03800E038C0E07180E07180E0F180E1F3007F3F003E1E016147D9318>I<0F01C0
1F83C03183E031C1E06380E06380E0C380C00700C00700C00700C00E01800E01800E01800E0300
0E03000E06000E06000F0C0007F80001E00013147D9315>I E /Fd 42 122
df<00FC1F8001FC3F8003FC7F800700E0000E01C0000E01C0000E01C0000E01C0000E01C0000E
01C0000E01C000FFE1FC00FFE1FC00FFE1FC000E01C0000E01C0000E01C0000E01C0000E01C000
0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0
00191D809C18>11 D<00E001C0038007000E000E001C001C003800380038007000700070007000
E000E000E000E000E000E000E000E000E000E000E000E00070007000700070003800380038001C
001C000E000E000700038001C000E00B2A7E9E10>40 D<E000700038001C000E000E0007000700
03800380038001C001C001C001C000E000E000E000E000E000E000E000E000E000E000E000E001
C001C001C001C0038003800380070007000E000E001C0038007000E0000B2A7E9E10>I<787878
7838307060E005097D830C>44 D<F0F0F0F004047C830C>46 D<001C0000003E0000003E000000
2E0000006700000067000000E7800000C7800000C3800001C3C0000183C0000181C0000381E000
0381E0000700F0000700F0000600F0000E0078000FFFF8000FFFF8001FFFFC001C003C0018003C
0038001E0038001E0070001F0070000F0070000F00E0000780191D7F9C1C>65
D<FFF800FFFF00FFFF80F00FC0F003E0F000F0F000F0F000F0F000F0F000F0F001E0F007C0FFFF
80FFFE00FFFF80F01FC0F003E0F000F0F00078F00078F00078F00078F00078F000F0F001F0F007
E0FFFFC0FFFF80FFFC00151D7C9C1C>I<003FC000FFF003FFF007C0700F80001E00003E00003C
0000780000780000780000F00000F00000F00000F00000F00000F00000F00000F00000F0000078
00007800007800003C00003E00001E00000F800807C07803FFF800FFF0003F80151F7D9D1B>I<
FFFC00FFFF00FFFF80F00FE0F003F0F000F0F00078F00078F0003CF0003CF0001CF0001EF0001E
F0001EF0001EF0001EF0001EF0001EF0001EF0003CF0003CF0007CF00078F000F0F001F0F007E0
FFFFC0FFFF00FFFC00171D7C9C1E>I<FFFFC0FFFFC0FFFFC0F00000F00000F00000F00000F000
00F00000F00000F00000F00000FFFF80FFFF80FFFF80F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000FFFFC0FFFFC0FFFFC0121D7C9C19>I<FFFF80FFFF80FF
FF80F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFF00FFFF00FF
FF00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000111D7C9C18>I<003F8001FFF003FFF807C0F80F00181E00003E00003C0000780000780000
780000F00000F00000F00000F00000F00000F00000F007F8F007F8F007F8780038780038780038
3C00383E00381E00380F003807C07803FFF801FFF0003F80151F7D9D1C>I<F000F0F000F0F000
F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0FFFFF0FFFFF0FFFFF0F000
F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000
F0141D7C9C1D>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0041D
7C9C0C>I<F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
F000F000F000F000F000F000F000F000F000FFFEFFFEFFFE0F1D7C9C16>76
D<FC0007E0FC0007E0FC0007E0EE000DE0EE000DE0EE000DE0E70019E0E70019E0E70019E0E780
39E0E38031E0E3C071E0E3C071E0E1C061E0E1C061E0E1E0E1E0E1E0E1E0E0E0C1E0E0F1C1E0E0
7181E0E07181E0E07181E0E03B01E0E03B01E0E03B01E0E01E01E0E01E01E0E01E01E0E00001E0
1B1D7C9C24>I<FC0070FC0070FE0070EE0070EF0070E70070E70070E78070E38070E3C070E3C0
70E1E070E1E070E0E070E0F070E07070E07870E07870E03C70E03C70E01C70E01E70E00E70E00E
70E00F70E00770E007F0E003F0E003F0141D7C9C1D>I<003F000001FFE00003FFF00007C0F800
0F807C001E001E003E001F003C000F00780007807800078078000780F00003C0F00003C0F00003
C0F00003C0F00003C0F00003C0F00003C0F00003C0F80007C078000780780007807C000F803C00
0F003E001F001F003E000F807C0007C0F80003FFF00001FFE000003F00001A1F7E9D1F>I<FFFC
00FFFF00FFFF80F007C0F003E0F001E0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F007
C0FFFF80FFFF00FFFC00F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000141D7C9C1B>I<003F000001FFE00003FFF00007C0F8000F807C001F003E003E
001F003C000F00780007807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0
F00003C0F00003C0F00003C0F00003C07800078078000780781E07803C0F0F003E079F001E07DE
000F83FC0007C1F80003FFF00001FFF800003F7C0000003C0000003E0000001F0000000F801A23
7E9D1F>I<FFF800FFFF00FFFF80F007C0F001E0F000E0F000F0F000F0F000F0F000F0F000E0F0
01E0F007C0FFFF80FFFF00FFF800F03C00F01C00F01E00F00F00F00F00F00780F00780F003C0F0
03C0F001E0F000F0F000F0F00078151D7C9C1B>I<03F8000FFE001FFF003E0F00780300780000
F00000F00000F00000F00000F800007C00007F00003FE0001FFC0007FE0001FF00001F80000780
0007C00003C00003C00003C00003C00003C0C00780E00780FC1F007FFE001FFC0007F000121F7E
9D17>I<FFFFFF80FFFFFF80FFFFFF80001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E000000
1E0000191D7F9C1C>I<F00070F00070F00070F00070F00070F00070F00070F00070F00070F000
70F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F000
F07800E07801E03C03C01F07800FFF8007FE0001F800141E7C9C1D>I<F0000380F00003807800
070078000700780007003C000E003C000E003E000E001E001C001E001C000F0038000F0038000F
003800078070000780700003C0600003C0E00003C0E00001E0C00001E1C00001E1C00000F18000
00F380000073000000730000007B0000003E0000003E0000001C0000191D7F9C1C>I<F000F000
70F000F80070F000F800707800B8006078019C00E078019C00E078019C00E03C039C01C03C031E
01C03C030E01C01E030E01801E070F03801E070F03801E060F03800F060703000F0E0787000F0C
078700070C038600070C038600079C038E00079803CE00039801CC00039801CC00039801CC0001
D001C80001D000D80001F000F80001E000F80000E0007000241D7F9C27>I<F80001E07C0001C0
3E0003801E0007801F0007000F800E0007801E0007C01C0003E03C0001E0380001F0700000F0F0
000078E000007DC000003FC000001F8000001F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F00001B1D809C1C>89
D<0FC03FF07FF87038401C001C001C00FC0FFC3FFC781CE01CE01CE01CF07C7FFC7FDC3F1C0E12
7E9114>97 D<E000E000E000E000E000E000E000E000E000E000E000E3E0EFF0FFF8F87CF01CE0
1EE00EE00EE00EE00EE00EE00EE01CF01CF87CFFF8EFF0E3C00F1D7D9C15>I<07E00FF81FFC3C
1C70047000E000E000E000E000E000E000700070043C1C1FFC0FF807E00E127E9112>I<000E00
0E000E000E000E000E000E000E000E000E000E0F8E1FEE3FFE7C3E700E700EE00EE00EE00EE00E
E00EE00EF00E701E7C3E3FFE1FEE0F8E0F1D7E9C15>I<07C01FE03FF078787018601CFFFCFFFC
FFFCE000E000E000700070043C1C3FFC1FF807E00E127E9112>I<00FC01FC03FC07000E000E00
0E000E000E000E000E00FFE0FFE0FFE00E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E000E1D809C0D>I<F0F0F0F0000000000000007070707070707070707070707070
70707070041D7E9C0A>105 D<E3F03F00EFF8FF80FFFDFFC0F81F81E0F00F00E0E00E00E0E00E
00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E0
0E00E0E00E00E01B127D9124>109 D<E3E0EFF0FFF8F83CF01CE01CE01CE01CE01CE01CE01CE0
1CE01CE01CE01CE01CE01CE01C0E127D9115>I<03F0000FFC001FFE003C0F00780780700380E0
01C0E001C0E001C0E001C0E001C0F003C07003807807803C0F001FFE000FFC0003F00012127F91
15>I<E3E0EFF0FFF8F87CF01CE01EE00EE00EE00EE00EE00EE00EE01CF03CF87CFFF8EFF0E3C0
E000E000E000E000E000E000E000E0000F1A7D9115>I<1C001C001C001C001C001C00FFE0FFE0
FFE01C001C001C001C001C001C001C001C001C001C001C001C201FF00FF007C00C187F970F>
116 D<E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE07CFFFC7FDC3F1C
0E127D9115>I<E03E0380E03E0380E03E03807037030070770700707707007073070038E38E00
38E38E0038E38E0018E18C001CC1CC001DC1DC001DC1DC000D80D8000F80F8000F80F800078070
0019127F911C>119 D<E007E007700E700E780E381C381C1C181C380C380E300E700670076003
6003C001C001C001800180030003000700FE00FC00F800101A7F9113>121
D E /Fe 30 120 df<001F000000007FC0000000F0C0000001F0E0000001E060000003E0600000
03E060000003E0E0000003E0C0000003E1C0000003E380000003E700000003FE007FE001FC007F
E001F8000E0001F8000E0001FC001C0003FC003800077E0030000E7E0070001E3F00E0007C3F80
C0007C1FC1C000FC0FE38000FC07F70000FC03FE0000FC01FC0000FE00FC00607E00FF00E03F07
DF81C00FFF07FF8003F800FE0023207E9F29>38 D<387CFEFEFE7C38000000000000387CFEFEFE
7C3807147C930F>58 D<0000E000000000E000000001F000000001F000000001F000000003F800
000003F800000007FC00000007FC0000000FFE0000000CFE0000000CFE000000187F000000187F
000000307F800000303F800000703FC00000601FC00000601FC00000C01FE00000C00FE00001FF
FFF00001FFFFF000018007F000030003F800030003F800060003FC00060001FC000E0001FE00FF
E01FFFE0FFE01FFFE0231F7E9E28>65 D<0007FC02003FFF0E00FE03DE03F000FE07E0003E0FC0
001E1F80001E3F00000E3F00000E7F0000067E0000067E000006FE000000FE000000FE000000FE
000000FE000000FE000000FE0000007E0000007E0000067F0000063F0000063F00000C1F80000C
0FC0001807E0003803F0007000FE01C0003FFF800007FC001F1F7D9E26>67
D<FFFFFE0000FFFFFFC00007F007F00007F001F80007F000FC0007F0007E0007F0003F0007F000
3F0007F0001F8007F0001F8007F0001F8007F0001FC007F0001FC007F0001FC007F0001FC007F0
001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001F8007F0001F8007F0001F8007
F0003F0007F0003F0007F0007E0007F000FC0007F001F80007F007F000FFFFFFC000FFFFFE0000
221F7E9E28>I<FFFFFFE0FFFFFFE007F007E007F001E007F000E007F0006007F0007007F00030
07F0003007F0603007F0603007F0600007F0600007F1E00007FFE00007FFE00007F1E00007F060
0007F0600007F0600C07F0600C07F0000C07F0001807F0001807F0001807F0003807F0007807F0
00F807F003F0FFFFFFF0FFFFFFF01E1F7E9E22>I<FFFFFFE0FFFFFFE007F007E007F001E007F0
00E007F0006007F0007007F0003007F0003007F0603007F0603007F0600007F0600007F1E00007
FFE00007FFE00007F1E00007F0600007F0600007F0600007F0600007F0000007F0000007F00000
07F0000007F0000007F0000007F0000007F00000FFFFC000FFFFC0001C1F7E9E21>I<FFFF80FF
FF8007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
F00007F000FFFF80FFFF80111F7F9E14>73 D<FFF000007FF8FFF80000FFF807F80000FF0006FC
0001BF0006FC0001BF0006FC0001BF00067E00033F00067E00033F00063F00063F00063F00063F
00061F800C3F00061F800C3F00061F800C3F00060FC0183F00060FC0183F000607E0303F000607
E0303F000603F0603F000603F0603F000603F0603F000601F8C03F000601F8C03F000600FD803F
000600FD803F0006007F003F0006007F003F0006003E003F0006003E003F0006003E003F00FFF0
1C07FFF8FFF01C07FFF82D1F7E9E32>77 D<FFF800FFF0FFF800FFF007FC00060007FE00060007
FF00060006FF800600067F800600063FC00600061FE00600060FF00600060FF806000607FC0600
0603FC06000601FE06000600FF060006007F860006007FC60006003FE60006001FE60006000FF6
00060007FE00060003FE00060003FE00060001FE00060000FE000600007E000600003E00060000
1E000600001E00FFF0000E00FFF0000600241F7E9E29>I<001FF80000FFFF0001F81F8007E007
E00FC003F01F8001F81F0000F83F0000FC7F0000FE7E00007E7E00007EFE00007FFE00007FFE00
007FFE00007FFE00007FFE00007FFE00007FFE00007FFE00007F7E00007E7F0000FE7F0000FE3F
0000FC3F8001FC1F8001F80FC003F007E007E001F81F8000FFFF00001FF800201F7D9E27>I<FF
FFFE00FFFFFF8007F00FE007F003F007F001F807F001F807F001FC07F001FC07F001FC07F001FC
07F001FC07F001F807F001F807F003F007F00FE007FFFF8007FFFE0007F0000007F0000007F000
0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000FFFF
8000FFFF80001E1F7E9E24>I<001FF80000FFFF0001F81F8007E007E00FC003F01F8001F81F80
01F83F0000FC7F0000FE7F0000FE7E00007EFE00007FFE00007FFE00007FFE00007FFE00007FFE
00007FFE00007FFE00007FFE00007F7E00007E7E00007E7F0000FE3F0000FC3F87C1FC1F8FF1F8
0FDC3BF007F83FE001FC3F8000FFFF00001FFE0300001F0300001F8700000FFF00000FFF00000F
FE000007FE000007FC000003FC000000F020287D9E27>I<FFFFF80000FFFFFF000007F01FC000
07F007E00007F003F00007F003F00007F003F80007F003F80007F003F80007F003F80007F003F0
0007F003F00007F007E00007F01FC00007FFFF000007FFFE000007F03F800007F01FC00007F01F
E00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE03007F0
0FE03007F00FF07007F007F860FFFF81FFE0FFFF807F80241F7E9E27>I<03FC080FFF381E03F8
3C00F8780078780038F80038F80018FC0018FC0000FF0000FFF8007FFF007FFFC03FFFE01FFFF0
0FFFF803FFF8001FFC0001FC0000FC0000FCC0007CC0007CC0007CE00078E00078F800F0FE01E0
E7FFC081FF00161F7D9E1D>I<7FFFFFFC7FFFFFFC7C0FE07C700FE01C600FE00C600FE00CE00F
E00EC00FE006C00FE006C00FE006C00FE006000FE000000FE000000FE000000FE000000FE00000
0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000
000FE000000FE00007FFFFC007FFFFC01F1E7E9D24>I<FFFF81FFE0FFFF81FFE007F0000C0007
F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C00
07F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C
0007F0000C0007F0000C0007F0000C0007F0000C0007F0001C0003F000180003F800380001F800
300000FC007000007F03E000001FFF80000003FC0000231F7E9E28>I<FFFF003FF8FFFF003FF8
0FF800038007F800070003FC00060003FC000C0001FE001C0000FF00180000FF003000007F8070
00003FC06000003FC0C000001FE1C000000FF18000000FF300000007FF00000003FE00000003FC
00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001
FC00000001FC00000001FC00000001FC0000003FFFE000003FFFE000251F7F9E28>89
D<07FC001FFF003F0F803F07C03F03E03F03E00C03E00003E001FFE00FFFE03F83E07E03E07C03
E0F803E0F803E0F803E0FC07E07E0DE03FF9FE07E07E17147F9319>97 D<01FE0007FF801F0FC0
3E0FC03E0FC07C0FC07C0300FC0000FC0000FC0000FC0000FC0000FC00007C00007E00003E0060
3F00C01F81C007FF0001FC0013147E9317>99 D<0007F80007F80000F80000F80000F80000F800
00F80000F80000F80000F80000F80000F801F8F80FFEF81F83F83E01F87E00F87C00F87C00F8FC
00F8FC00F8FC00F8FC00F8FC00F8FC00F87C00F87C00F87E00F83E01F81F07F80FFEFF03F8FF18
207E9F1D>I<01FE0007FF801F83E03F01F07E00F07E00F8FC00F8FC00F8FFFFF8FFFFF8FC0000
FC0000FC00007C00007E00003E00183F00380F807007FFE000FF8015147F9318>I<FF0000FF00
001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0FC01F3FE01F61
F01FC0F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F8FFE3FFFFE3FF18207D9F1D>104 D<FE0FE03F80FE3FF0FFC01E70F9C3E01EC0
7F01F01F807E01F01F807E01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F
007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F0FFE3FF8FFE
FFE3FF8FFE27147D932C>109 D<01FF0007FFC01F83F03E00F83E00F87C007C7C007CFC007EFC
007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F83E00F81F83F007FFC001FF0017147F93
1A>111 D<FF1FC0FF7FF01FE1F81F80FC1F007E1F007E1F003E1F003F1F003F1F003F1F003F1F
003F1F003F1F003E1F007E1F007C1F80FC1FC1F81F7FE01F1F801F00001F00001F00001F00001F
00001F00001F0000FFE000FFE000181D7E931D>I<FE3E00FE7F801ECFC01F8FC01F8FC01F8FC0
1F03001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FFF000
FFF00012147E9316>114 D<0FE63FFE701E600EE006E006F800FFC07FF83FFC1FFE03FE001FC0
07C007E007F006F81EFFFCC7F010147E9315>I<01800180018003800380038007800F803F80FF
FCFFFC0F800F800F800F800F800F800F800F800F800F800F860F860F860F860F8607CC03F801F0
0F1D7F9C14>I<FFE7FE1FE0FFE7FE1FE01F00F007001F00F803000F80F806000F80F8060007C1
BC0C0007C1BC0C0007C1BE0C0003E31E180003E31E180001F60F300001F60F300001F60FB00000
FC07E00000FC07E000007803C000007803C000007803C000003001800023147F9326>119
D E /Ff 10 58 df<1F003F8060C04040C060C060C060C060C060C060C060C06060C060C03F80
1F000B107F8F0F>48 D<18007800F80098001800180018001800180018001800180018001800FF
80FF8009107E8F0F>I<3F007F80F1C0F0E06060006000E000C00180030006001C0038606060FF
C0FFC00B107F8F0F>I<1F003F8071C071C031C001800F800F0001C000E060E0F0E0F0E0F1C07F
801F000B107F8F0F>I<070007000F001F001B003B0033006300E300FFE0FFE00300030003001F
E01FE00B107F8F0F>I<60807F807F007C00600060006F007F8070C060E000E060E0E0E0E1C07F
803F000B107F8F0F>I<07801FC039C061C06000C000DF80FFC0E060C060C060C060606060C03F
801F000B107F8F0F>I<60007FE07FE0C0C0C1800180030006000E000C000C001C001C001C001C
001C0008000B117E900F>I<1F003F8061C060C060C079C03F801F803FC063E0C0E0C060C06060
C03F801F000B107F8F0F>I<1F003F8060C0C0C0C060C060C060C0E07FE03F60006000C070C071
807F003E000B107F8F0F>I E /Fg 10 118 df<387CFEFEFE7C3800000000387CFEFEFE7C3807
127D910D>58 D<FFFFF800FFFFFF000FC01FC00FC007E00FC003F00FC001F80FC001F80FC000FC
0FC000FC0FC000FC0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000
FE0FC000FC0FC000FC0FC000FC0FC001F80FC001F80FC003F00FC007E00FC01FC0FFFFFF00FFFF
F8001F1C7E9B25>68 D<FFC00003FFFFE00007FF0FE00007F00DF0000DF00DF0000DF00DF0000D
F00CF80019F00CF80019F00C7C0031F00C7C0031F00C3E0061F00C3E0061F00C1F00C1F00C1F00
C1F00C1F00C1F00C0F8181F00C0F8181F00C07C301F00C07C301F00C03E601F00C03E601F00C01
FC01F00C01FC01F00C01FC01F00C00F801F00C00F801F0FFC0701FFFFFC0701FFF281C7E9B2D>
77 D<03FC000FFE001F1F003E1F007C1F007C0E00FC0000FC0000FC0000FC0000FC0000FC0000
7C00007E01803E03801F07000FFE0003F80011127E9115>99 D<03F0F00FFFF83E1F383C0F307C
0F807C0F807C0F807C0F803C0F003E1F001FFC0033F0003000007000003800003FFF003FFFC01F
FFE03FFFF07801F8F00078F00078F000787800F03E03E01FFFC003FE00151B7F9118>103
D<1E003F003F007F003F003F001E0000000000000000000000FF00FF001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F00FFE0FFE00B1E7F9D0E>105
D<FF1FC0FF7FE01FE1F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F8FFE7FFFFE7FF18127F911B>110 D<01FC000FFF801F07C03E03E07C01
F07C01F0FC01F8FC01F8FC01F8FC01F8FC01F8FC01F87C01F07C01F03E03E01F07C00FFF8001FC
0015127F9118>I<1FD83FF87038E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CF0
38FFF0CFC00E127E9113>115 D<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F81F00F81F
00F81F00F81F00F81F00F81F00F81F00F81F01F80F03F80FFEFF03F8FF18127F911B>117
D E /Fh 65 125 df<03C00007E0000FF0001E78001C38001C38001C38001C38001C7BF01CF3F0
1EE3F00FE7800FC7000F87000F0F001F0E003F8E007B9E0073DC00F1DC00E1FC00E0F800E07870
F0F87071FE707FFFF03FCFE01F03C0141C7F9B18>38 D<007000F001F003C007800F001E001C00
3C003800780070007000F000E000E000E000E000E000E000E000E000F00070007000780038003C
001C001E000F00078003C001F000F000700C24799F18>40 D<6000F00078003C001E000F000780
038003C001C001E000E000E000F00070007000700070007000700070007000F000E000E001E001
C003C0038007800F001E003C007800F00060000C247C9F18>I<01C00001C00001C00001C000C1
C180F1C780F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C18001C00001
C00001C00001C00011147D9718>I<00600000F00000F00000F00000F00000F00000F00000F000
7FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F00000600013147E
9718>I<3C7E7F7F7F3F0F0E1E7CF870080C788518>I<01800380078007800F803F80FF80FB8063
8003800380038003800380038003800380038003800380038003800380038003807FFCFFFE7FFC
0F1C7B9B18>49 D<07F8001FFE003FFF007C0F807003C0F001E0F000E0F000E0F000E00000E000
00E00001E00001C00003C0000780000F00001E00003C0000780000F00003E00007C0000F80001E
00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<78FCFCFCFC78000000000000000078FCFCFC
FC780614779318>58 D<3C7E7E7E7E3C0000000000000000387C7E7E7E3E0E1E3C78F060071A78
9318>I<000300000F80001F80003F0000FE0001FC0003F00007E0001FC0003F80007E0000FC00
00FC00007E00003F80001FC00007E00003F00001FC0000FE00003F00001F80000F800003001118
7D9918>I<7FFFC0FFFFE0FFFFE0FFFFE0000000000000000000000000FFFFE0FFFFE0FFFFE07F
FFC0130C7E9318>I<600000F80000FC00007E00003F80001FC00007E00003F00001FC0000FE00
003F00001F80001F80003F0000FE0001FC0003F00007E0001FC0003F80007E0000FC0000F80000
60000011187D9918>I<0FF8003FFE007FFF00F80F80F00380F00380F00780001F00003E0000FC
0001F00001E00003C00003C00003C00003C00003C0000380000000000000000000000000000000
0003800007C00007C00007C000038000111C7D9B18>I<00700000F80000F80000D80000D80001
DC0001DC0001DC00018C00038E00038E00038E00038E000306000707000707000707000707000F
FF800FFF800FFF800E03800E03801C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>65
D<FFFC00FFFF00FFFF801C03C01C01C01C00E01C00E01C00E01C00E01C01E01C01C01C07C01FFF
801FFF001FFFC01C03C01C00E01C00F01C00701C00701C00701C00701C00F01C00E01C03E0FFFF
C0FFFF80FFFE00141C7F9B18>I<01FCE003FEE007FFE00F07E01E03E03C01E07800E07000E070
00E0F00000E00000E00000E00000E00000E00000E00000E00000E00000F000007000E07000E078
00E03C01E01E01C00F07C007FF8003FF0001FC00131C7E9B18>I<7FF800FFFE007FFF001C0F80
1C03C01C03C01C01E01C00E01C00E01C00F01C00701C00701C00701C00701C00701C00701C0070
1C00701C00F01C00E01C00E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C7F9B18>
I<FFFFF0FFFFF0FFFFF01C00701C00701C00701C00701C00001C00001C0E001C0E001C0E001FFE
001FFE001FFE001C0E001C0E001C0E001C00001C00001C00381C00381C00381C00381C0038FFFF
F8FFFFF8FFFFF8151C7F9B18>I<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C00E01C00001C
00001C1C001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C1C001C00001C00001C00001C
00001C00001C00001C0000FFC000FFC000FFC000131C7E9B18>I<01F9C007FFC00FFFC01F0FC0
1C03C03C03C07801C07001C07001C0F00000E00000E00000E00000E00000E00000E00FF0E01FF0
E00FF0F001C07001C07003C07803C03C03C01C07C01F0FC00FFFC007FDC001F9C0141C7E9B18>
I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFF
C01FFFC01FFFC01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07
F0FF8FF87F07F0151C7F9B18>I<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C00001C00001C00001C0007FFF00FFFF807FFF00111C7D9B18>I<7F07F0FF87F87F07F01C03C0
1C07801C07001C0F001C1E001C3C001C38001C78001CF0001DF0001DF8001FF8001FBC001F1C00
1E1E001E0E001C0F001C07001C07801C03801C03C01C01C07F03F0FF87F87F03F0151C7F9B18>
75 D<7FE000FFE0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E0000
0E00000E00000E00000E00000E00000E00000E00000E00000E00700E00700E00700E00700E0070
7FFFF0FFFFF07FFFF0141C7F9B18>I<FC01F8FE03F8FE03F83B06E03B06E03B06E03B06E03B8E
E03B8EE0398CE0398CE039DCE039DCE039DCE038D8E038D8E038F8E03870E03870E03800E03800
E03800E03800E03800E03800E0FE03F8FE03F8FE03F8151C7F9B18>I<7E07F0FF0FF87F07F01D
81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C01C
39C01C39C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B
18>I<0FF8003FFE007FFF00780F00700700F00780E00380E00380E00380E00380E00380E00380
E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780700700780F00
7FFF003FFE000FF800111C7D9B18>I<FFFE00FFFF80FFFFC01C03C01C01E01C00E01C00701C00
701C00701C00701C00701C00E01C01E01C03C01FFFC01FFF801FFE001C00001C00001C00001C00
001C00001C00001C00001C0000FF8000FF8000FF8000141C7F9B18>I<0FF8003FFE007FFF0078
0F00700700F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0
0380E00380E00380E00380E1E380E1E380F0E78070F700787F007FFF003FFE000FFC00001C0000
1E00000E00000F0000070000070011227D9B18>I<7FF800FFFE007FFF001C0F801C03801C03C0
1C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C0F001C07801C03801C0380
1C03801C03801C03801C039C1C039C1C039C7F03FCFF81F87F00F0161C7F9B18>I<07F3801FFF
803FFF807C1F80700780F00380E00380E00380E00000F000007800003F00001FF0000FFE0001FF
00001F800003C00001E00000E00000E06000E0E000E0E001E0F001C0FC07C0FFFF80FFFF00E7FC
00131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038E07038E0703800700000700000700000
700000700000700000700000700000700000700000700000700000700000700000700000700000
700000700007FF0007FF0007FF00151C7F9B18>I<FF83FEFF83FEFF83FE1C00701C00701C0070
1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C0070
1C00701C00701E00F00E00E00F01E007C7C003FF8001FF00007C00171C809B18>I<FF07F8FF07
F8FF07F81C01C01C01C01C01C01C01C00E03800E03800E03800E03800F07800707000707000707
00070700038E00038E00038E00038E00018C0001DC0001DC0001DC0000D80000F80000F8000070
00151C7F9B18>I<FE03F8FE03F8FE03F87000707000707000703800E03800E03800E03800E038
00E038F8E038F8E039DCE039DCE019DCC019DCC019DCC0198CC01D8DC01D8DC01D8DC01D8DC00D
8D800D05800F07800F07800E0380151C7F9B18>I<7F8FE07F9FE07F8FE00E07000F0700070E00
078E00039C0003DC0001F80001F80000F00000F00000700000F00000F80001F80001DC00039E00
038E00070F000707000E07800E03801E03C07F07F0FF8FF87F07F0151C7F9B18>I<FF07F8FF07
F8FF07F81C01C01E03C00E03800F0780070700070700038E00038E0001DC0001DC0001FC0000F8
0000F80000700000700000700000700000700000700000700000700000700001FC0003FE0001FC
00151C7F9B18>I<3FFFE07FFFE07FFFE07001C07003C0700780700700000F00001E00001C0000
3C0000780000700000F00001E00001C00003C0000780000700000F00001E00E01C00E03C00E078
00E07000E0FFFFE0FFFFE0FFFFE0131C7E9B18>I<7FFF00FFFF80FFFF807FFF0011047D7F18>
95 D<1FE0003FF8007FFC00783E00300F0000070000070001FF000FFF003FFF007F0700780700
F00700E00700E00700F00F00783F007FFFF03FFBF00FE1F014147D9318>97
D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFFC00FE3E00F80
F00F00700F00780E00380E00380E00380E00380E00380F00380F00780F00700F80F00FC3E00FFF
C00EFF80067E00151C809B18>I<01FE0007FF001FFF803F07803C0300780000700000F00000E0
0000E00000E00000E00000F000007000007801C03C01C03F07C01FFF8007FF0001FC0012147D93
18>I<001F80003F80001F8000038000038000038000038000038003F3800FFB801FFF803E1F80
780F80700780F00780E00380E00380E00380E00380E00380E00780F00780700780780F803E3F80
1FFFF00FFBF803E3F0151C7E9B18>I<03F0000FFC001FFE003E1F00780780700380F003C0E001
C0E001C0FFFFC0FFFFC0FFFFC0F000007000007801C03C01C03F07C01FFF8007FF0001FC001214
7D9318>I<001FC0007FE000FFE001F1E001C0C001C00001C00001C0007FFFC0FFFFC0FFFFC001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C0007FFF007FFF007FFF00131C7F9B18>I<03F1F007FFF80FFFF81E1F303C0F00380700380700
3807003807003807003C0F001E1E001FFC003FF8003BF0003800003C00001FFF001FFFC03FFFE0
7801F0F00078E00038E00038E00038F000787800F07E03F03FFFE00FFF8003FE00151F7F9318>
I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3F000EFF800FFFC00FE1E00F80
E00F00E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3
FCFFE7FE7FC3FC171C809B18>I<03800007C00007C00007C00003800000000000000000000000
00007FC000FFC0007FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C00001C00001C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18>I<FE0000FE0000FE0000
0E00000E00000E00000E00000E00000E3FF00E7FF00E3FF00E07800E0F000E1E000E3C000E7800
0EF0000FF8000FFC000F9C000F1E000E0F000E07800E03800E03C0FFC7F8FFC7F8FFC7F8151C7F
9B18>107 D<7FE000FFE0007FE00000E00000E00000E00000E00000E00000E00000E00000E000
00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000
00E0007FFFC0FFFFE07FFFC0131C7E9B18>I<7DF1F000FFFBF8007FFFFC001F1F1C001E1E1C00
1E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C
001C1C1C001C1C1C007F1F1F00FFBFBF807F1F1F001914819318>I<7E3F00FEFF807FFFC00FE1
E00F80E00F00E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00
E07FC3FCFFE7FE7FC3FC1714809318>I<01F0000FFE001FFF003E0F803803807001C07001C0E0
00E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F801FFF000FFE0001F00013
147E9318>I<7E3E00FEFF807FFFC00FE3E00F80F00F00700F00780E00380E00380E00380E0038
0E00380F00380F00780F00700F80F00FC3E00FFFC00EFF800E7E000E00000E00000E00000E0000
0E00000E00000E00007FC000FFE0007FC000151E809318>I<03F3800FFB801FFF803E1F80780F
80700780F00780E00380E00380E00380E00380E00380E00380F00780700780780F803E1F801FFF
800FFB8003F380000380000380000380000380000380000380000380003FF8003FF8003FF8151E
7E9318>I<7F87E0FF9FF87FBFF803FC7803F03003E00003C00003C00003C00003800003800003
80000380000380000380000380000380007FFE00FFFF007FFE0015147F9318>I<0FF7003FFF00
7FFF00F81F00E00700E00700F007007C00007FF0001FFC0007FE00001F00600780E00380F00380
F00780FC0F00FFFF00FFFE00E7F80011147D9318>I<0180000380000380000380000380007FFF
C0FFFFC0FFFFC00380000380000380000380000380000380000380000380000380000380400380
E00380E00381E003C3C001FFC000FF80007E0013197F9818>I<7E07E0FE0FE07E07E00E00E00E
00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01E00F07E007
FFFC03FFFE01FCFC1714809318>I<7F8FF0FF8FF87F8FF01E03C00E03800E03800E0380070700
070700070700038E00038E00038E00038E0001DC0001DC0001DC0000F80000F80000700015147F
9318>I<FF8FF8FF8FF8FF8FF83800E03800E03800E01C01C01C01C01C71C01CF9C01CF9C01CD9
C01CD9C00DDD800DDD800DDD800D8D800F8F800F8F8007070015147F9318>I<7F8FF07F9FF07F
8FF0070700078E00039E0001DC0001F80000F80000700000F00000F80001DC00039E00038E0007
07000F07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F8FF00E01C00E03800E0380
070380070700070700038700038600038E0001CE0001CE0000CC0000CC0000DC00007800007800
00780000700000700000700000F00000E00079E0007BC0007F80003F00001E0000151E7F9318>
I<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600424
769F18>124 D E /Fi 61 123 df<003F0F0000FFBF8003C3F3C00703E3C00703C1800E01C000
0E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC00FFFFFC000E01C0000E01C0000E01C0
000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01
C0000E01C0007F87FC007F87FC001A1D809C18>11 D<003F0000FF8003C1C00703C00703C00E01
800E00000E00000E00000E00000E0000FFFFC0FFFFC00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F87F87F8151D809C17>I<00
3FC000FFC003C3C00703C00701C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC0FFFFC00E
01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C07FCFF87FCFF8151D809C17>I<003F03F00000FFCFF80003C0FC1C000701F03C000701F03C
000E00E018000E00E000000E00E000000E00E000000E00E000000E00E00000FFFFFFFC00FFFFFF
FC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00
E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF807F
C7FCFF80211D809C23>I<7070F8F8FCFCFCFC7C7C0C0C0C0C0C0C181818183030606040400E0D
7F9C15>34 D<00F0000001F8000003980000030C0000070C0000070C0000070C0000070C000007
0C000007180000073800000730000007607FE003C07FE003801F0003800C0007C00C000DC01800
19E0180038E0300070F06000F0706000F038C000F03CC000F01F8000F00F006078070060780F80
C03C39E1C01FF0FF8007C03E001B1F7E9D20>38 D<00C00180030006000E000C001C0018003800
300030007000700060006000E000E000E000E000E000E000E000E000E000E000E000E000600060
007000700030003000380018001C000C000E0006000300018000C00A2A7D9E10>40
D<C0006000300018001C000C000E000600070003000300038003800180018001C001C001C001C0
01C001C001C001C001C001C001C001C0018001800380038003000300070006000E000C001C0018
0030006000C0000A2A7E9E10>I<70F0F8F8781818183030706040050D7D840C>44
D<FFE0FFE0FFE00B0380890E>I<70F8F8F87005057D840C>I<00030003000700060006000E000C
001C0018001800380030003000700060006000E000C000C001C001800380030003000700060006
000E000C000C001C001800180038003000700060006000E000C000C00010297E9E15>I<07C01F
F03878603C601EF01EF80FF80FF80F700F000F000E001E001C003C0078007000E001C003800700
0E030C03180330067FFEFFFEFFFE101C7E9B15>50 D<70F8F8F870000000000000000070F8F8F8
7005127D910C>58 D<70F8F8F870000000000000000070F0F8F8781818183030706040051A7D91
0C>I<0FE03FF8703C601CF01EF01EF01E001E003C007800E001C0018003800300030003000300
03000200000000000000000007000F800F800F8007000F1D7E9C14>63 D<00060000000F000000
0F0000000F0000001F8000001F8000001F8000001F80000033C0000033C0000033C0000061E000
0061E0000061E00000C0F00000C0F00000C0F000018078000180780001FFF80003FFFC0003003C
0003003C0006001E0006001E0006001E001F001F00FFC0FFF0FFC0FFF01C1D7F9C1F>65
D<FFFFC0FFFFF00F00F80F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F00780FFF
F00FFFE00F00F80F003C0F001E0F001E0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00
7CFFFFF8FFFFC0181C7E9B1D>I<001F808000FFE18003F0338007801B800F000F801E0007801C
0003803C000380780003807800018070000180F0000180F0000000F0000000F0000000F0000000
F0000000F0000000F00000007000018078000180780001803C0001801C0003001E0003000F0006
0007800C0003F0380000FFF000001F8000191E7E9C1E>I<FFFFC000FFFFF0000F007C000F001E
000F000F000F0007000F0003800F0003C00F0003C00F0001C00F0001E00F0001E00F0001E00F00
01E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001C00F0003C00F0003800F0007800F
000F000F001E000F007C00FFFFF000FFFFC0001B1C7E9B20>I<FFFFFCFFFFFC0F007C0F001C0F
000C0F000E0F00060F03060F03060F03060F03000F07000FFF000FFF000F07000F03000F03000F
03030F03030F00030F00060F00060F00060F000E0F001E0F007CFFFFFCFFFFFC181C7E9B1C>I<
FFFFF8FFFFF80F00780F00380F00180F001C0F000C0F000C0F030C0F030C0F03000F03000F0700
0FFF000FFF000F07000F03000F03000F03000F03000F00000F00000F00000F00000F00000F0000
FFF800FFF800161C7E9B1B>I<001F808000FFE18003F0338007801B800F000F801E0007801C00
03803C000380780003807800018070000180F0000180F0000000F0000000F0000000F0000000F0
000000F000FFF0F000FFF07000078078000780780007803C0007801C0007801E0007800F000780
07800F8003F0398000FFF080001FC0001C1E7E9C21>I<FFF3FFC0FFF3FFC00F003C000F003C00
0F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000FFFFC000FFFFC
000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F00
3C000F003C000F003C00FFF3FFC0FFF3FFC01A1C7E9B1F>I<FFF0FFF00F000F000F000F000F00
0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00FF
F0FFF00C1C7F9B0F>I<FF8000FF80FFC001FF800FC001F8000FC001F8000DE00378000DE00378
000DE00378000CF00678000CF00678000CF00678000C780C78000C780C78000C780C78000C3C18
78000C3C1878000C3C1878000C1E3078000C1E3078000C1E3078000C0F6078000C0F6078000C0F
6078000C07C078000C07C078000C07C078001E03807800FFC387FF80FFC387FF80211C7E9B26>
77 D<FF00FFC0FF80FFC00F801E000FC00C000FC00C000DE00C000CF00C000CF00C000C780C00
0C780C000C3C0C000C1E0C000C1E0C000C0F0C000C0F0C000C078C000C07CC000C03CC000C01EC
000C01EC000C00FC000C00FC000C007C000C003C000C003C001E001C00FFC01C00FFC00C001A1C
7E9B1F>I<003F800000FFE00003E0F80007803C000E000E001E000F003C000780380003807800
03C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F0
0001E0780003C0780003C0780003C03C0007803C0007801E000F000F001E0007803C0003E0F800
00FFE000003F80001B1E7E9C20>I<FFFF80FFFFE00F00F00F00380F003C0F001E0F001E0F001E
0F001E0F001E0F001E0F003C0F00380F00F00FFFE00FFF800F00000F00000F00000F00000F0000
0F00000F00000F00000F00000F0000FFF000FFF000171C7E9B1C>I<FFFF0000FFFFE0000F00F0
000F0038000F003C000F001E000F001E000F001E000F001E000F001E000F003C000F0038000F00
F0000FFFE0000FFFC0000F01E0000F00F0000F0078000F0078000F0078000F0078000F0078000F
0078000F0078000F0078300F003830FFF03C60FFF01FE0000007C01C1D7E9B1F>82
D<07E0801FF9803C1F80700780700380E00380E00180E00180E00180F00000F000007C00007FC0
003FF8001FFE0007FF0000FF80000F800003C00003C00001C0C001C0C001C0C001C0E00180E003
80F00300FC0E00CFFC0083F800121E7E9C17>I<7FFFFFC07FFFFFC0780F03C0700F01C0600F00
C0E00F00E0C00F0060C00F0060C00F0060C00F0060000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F000003FFFC0003FFFC001B1C7F9B1E>I<FFF0FFC0FFF0FFC00F001E000F000C000F
000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C00
0F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C0007001800078018
000380300001C0300000E0E000007FC000001F00001A1D7E9B1F>I<FFE0FFE1FFFFE0FFE1FF1F
001E007C0F001E00300F003F00300F003F00300F803F0070078067806007806780600780678060
03C0E780C003C0C3C0C003C0C3C0C001E0C3C18001E181E18001E181E18001E181E18000F381F3
0000F300F30000F300F300007B00F600007E007E00007E007E00007E007E00003C003C00003C00
3C00003C003C00001C0038000018001800281D7F9B2B>87 D<08081818303060606060C0C0C0C0
C0C0F8F8FCFCFCFC7C7C38380E0D7B9C15>92 D<0FE0001FF8003C3C003C1E00180E00000E0000
1E0007FE001FFE003E0E00780E00F00E00F00E60F00E60F01E60783E603FFFC01F878013127F91
15>97 D<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7E
001DFF001F87801E01C01C01E01C00E01C00F01C00F01C00F01C00F01C00F01C00F01C00E01C01
E01E01C01F078019FF00187C00141D7F9C17>I<03F00FF81E3C383C78187000F000F000F000F0
00F000F000780078063C061E0C0FF803E00F127F9112>I<001F80001F80000380000380000380
00038000038000038000038000038000038003E3800FFB801E0F80380780780380700380F00380
F00380F00380F00380F00380F003807003807803803807801E1F800FFBF007E3F0141D7F9C17>
I<03E00FF01C38381C781E700EFFFEFFFEF000F000F000F000700078063C061E0C0FF803E00F12
7F9112>I<007801FC039E071E0E0C0E000E000E000E000E000E00FFE0FFE00E000E000E000E00
0E000E000E000E000E000E000E000E000E000E007FE07FE00F1D809C0D>I<00038007E7C00FFD
C03C3DC0381C00781E00781E00781E00781E00381C003C3C003FF00037E0007000007000003000
003FFC001FFF003FFF80700780E001C0E001C0E001C0E001C07003803C0F001FFE0007F800121C
7F9215>I<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
7C001DFF001F07001E03801E03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C03801C0380FF9FF0FF9FF0141D7F9C17>I<18003C007C003C0018000000000000000000
00000000FC00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80FF
80091D7F9C0C>I<01C003E003E003E001C00000000000000000000000000FE00FE000E000E000
E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F1C0F1C0
7F803E000B25839C0D>I<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C
00001C00001C7FC01C7FC01C3E001C18001C30001C60001CC0001DE0001FE0001E70001C78001C
38001C3C001C1C001C0E001C0F00FF9FE0FF9FE0131D7F9C16>I<FC00FC001C001C001C001C00
1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C00FF80FF80091D7F9C0C>I<FC7E07E000FDFF9FF8001F83B838001E01E01C001E01E01C00
1C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C
001C01C01C001C01C01C001C01C01C00FF8FF8FF80FF8FF8FF8021127F9124>I<FC7C00FDFF00
1F07001E03801E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380
1C0380FF9FF0FF9FF014127F9117>I<03F0000FFC001E1E00380700780780700380F003C0F003
C0F003C0F003C0F003C0F003C07003807807803807001E1E000FFC0003F00012127F9115>I<FC
7E00FDFF001F87801E03C01C01E01C01E01C00F01C00F01C00F01C00F01C00F01C00F01C01E01C
01E01E03C01F07801DFF001C7C001C00001C00001C00001C00001C00001C0000FF8000FF800014
1A7F9117>I<03E1800FF9801E1F803C0780780780780380F00380F00380F00380F00380F00380
F003807803807807803C07801E1F800FFB8007E380000380000380000380000380000380000380
001FF0001FF0141A7F9116>I<FDE0FFF01F781E781E301C001C001C001C001C001C001C001C00
1C001C001C00FFC0FFC00D127F9110>I<1F903FF07070E030E030E030F8007F803FE00FF000F8
C038C038E038E038F070DFE08FC00D127F9110>I<0C000C000C000C000C001C001C003C00FFE0
FFE01C001C001C001C001C001C001C001C001C301C301C301C301C301E600FC007800C1A7F9910
>I<FC1F80FC1F801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C03801C07800C0F800FFBF003E3F014127F9117>I<FF0FE0FF0FE01C07801C03000E0600
0E06000E0600070C00070C00071C0003980003980003F80001F00001F00000E00000E00000E000
13127F9116>I<FF3FCFE0FF3FCFE01C0F07801C0F03001C1F03000E1B06000E1B86000E1B8600
0E318E000731CC000731CC000760CC0003E0F80003E0F80003E0F80001C0700001C0700001C070
001B127F911E>I<7F8FF07F8FF00F0780070600038E0001DC0001D80000F00000700000780000
F80001DC00038E00030E000607000F0380FF8FF8FF8FF81512809116>I<FF0FE0FF0FE01C0780
1C03000E06000E06000E0600070C00070C00071C0003980003980003F80001F00001F00000E000
00E00000E00000C00000C00000C000F18000F18000C700007E00003C0000131A7F9116>I<7FFC
7FFC7838707060F060E061C063C00380070C0F0C0E0C1C1C3C1838187078FFF8FFF80E127F9112
>I E /Fj 50 122 df<007000E001C00380078007000E001E001E003C003C003C007800780078
0078007000F000F000F000F000F000F000F000F000F000F000F000F00070007800780078007800
3C003C003C001E001E000E0007000780038001C000E000700C2E7EA112>40
D<E000700038001C001E000E0007000780078003C003C003C001E001E001E001E000E000F000F0
00F000F000F000F000F000F000F000F000F000F000E001E001E001E001E003C003C003C0078007
8007000E001E001C0038007000E0000C2E7DA112>I<787878781830306060E0050A7D830D>44
D<FFC0FFC0FFC00A037F8B0F>I<FFFFFFF0FFFFFFF00000000000000000000000000000000000
000000000000000000000000000000FFFFFFF0FFFFFFF01C0C7D9023>61
D<001F0000001F0000003F8000003B8000003B8000007BC0000073C0000071C00000F1E00000E1
E00000E0E00001E0F00001E0F00001C0F00003C0780003C078000380780007803C0007803C0007
003C000FFFFE000FFFFE000FFFFE001E000F001E000F003C000F803C0007803C000780780007C0
780003C0780003C0F00003E01B207F9F1E>65 D<001FC000FFF801FFFC03E03C07800C0F00001E
00003E00003C00007C0000780000780000780000F00000F00000F00000F00000F00000F00000F0
0000F000007800007800007800007C00003C00003E00001E00000F000207800E03E03E01FFFC00
FFF0001FC017227DA01D>67 D<FFFC00FFFF80FFFFC0F007E0F001F0F000F8F00078F0003CF000
3CF0001EF0001EF0000EF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF000
1EF0001EF0001EF0003CF0007CF000F8F001F0F007E0FFFFC0FFFF80FFFC0018207B9F21>I<FF
FFC0FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000FFFF80FFFF80FFFF80F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000FFFFE0FFFFE0FFFFE013207B9F1B>I<FFFFC0FFFFC0FFFFC0F00000F00000
F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFF00FFFF00FFFF00F00000
F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F0000012207B9F1A>I<001FE000FFF801FFFE03E03E07800E0F00001E00003E00003C00007C00
00780000780000780000F00000F00000F00000F00000F00000F00000F003FEF003FE7803FE7800
1E78001E7C001E3C001E3E001E1E001E0F001E07801E03E03E01FFFE00FFF8001FC017227DA01E
>I<F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F0
0078F00078FFFFF8FFFFF8FFFFF8F00078F00078F00078F00078F00078F00078F00078F00078F0
0078F00078F00078F00078F00078F00078F0007815207B9F20>I<F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207C9F0D>I<F0003EF0007CF000F8F001F0
F003E0F007C0F00780F00F00F01F00F03E00F07C00F0F800F1F000F3F800F3F800F7FC00FFBC00
FF1E00FE1F00FC0F00F80780F00780F003C0F003E0F001E0F000F0F000F8F00078F0003CF0003C
F0001EF0001F18207B9F20>75 D<F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000FFFF80FFFF80FFFF8011207B9F19>I<
F80001F8FC0003F8FC0003F8F4000378F6000778F6000778F6000778F7000F78F3000E78F3000E
78F3801E78F3801E78F1801C78F1C03C78F1C03C78F1C03C78F0C03878F0E07878F0E07878F060
7078F070F078F070F078F030E078F039E078F039E078F019C078F019C078F019C078F00F8078F0
0F8078F00F8078F00000781D207B9F28>I<FC0078FE0078FE0078F60078F70078F70078F38078
F38078F38078F3C078F1C078F1E078F1E078F0E078F0F078F07078F07078F07878F03878F03C78
F03C78F01C78F01E78F00E78F00E78F00E78F00778F00778F00378F003F8F003F8F001F815207B
9F20>I<003F000000FFC00003FFF00007E1F8000F807C001F003E001E001E003C000F003C000F
00780007807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000
03C0F00003C0F00003C0F80007C07800078078000780780007803C000F003C000F001E001E001F
003E000F807C0007E1F80003FFF00000FFC000003F00001A227DA021>I<FFF800FFFF00FFFF80
F00FC0F003E0F001E0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00FC0
FFFF80FFFF00FFF800F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F00000F00000F0000014207B9F1D>I<003F000000FFC00003FFF00007E1F8000F807C001F003E
001E001E003C000F003C000F00780007807800078078000780F00003C0F00003C0F00003C0F000
03C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C07800078078000780781E07803C
0F0F003C0F8F001E079E001F03FE000F83FC0007E1F80003FFF00000FFF800003F780000007C00
00003E0000001E0000001F0000000F801A277DA021>I<FFF800FFFF00FFFF80F007C0F003E0F0
01E0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F007C0FFFF80FFFF00FFF800F03C00F0
1E00F01E00F00F00F00F00F00780F00780F003C0F001C0F001E0F000F0F000F0F00078F00078F0
003C16207B9F1D>I<01FC0007FF800FFFC01F03C03C00C03C0000780000780000780000780000
7800007C00003C00003F00001FE0000FFC0007FE0001FF00003F800007C00003C00003E00001E0
0001E00001E00001E00001E00001C0C003C0F007C0FC0F807FFF001FFE0003F80013227EA019>
I<FFFFFFC0FFFFFFC0FFFFFFC0001E0000001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E000000
1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000
001E0000001E0000001E00001A207E9F1F>I<F000F0F000F0F000F0F000F0F000F0F000F0F000
F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000
F0F000F0F000F0F000F0F000F0F000F07801E07801E03C03C03C03C01F0F800FFF0007FE0001F8
0014217B9F1F>I<F00001E0F00001E0780003C0780003C0780003C03C0007803C0007803C0007
801E000F001E000F001F000F000F001E000F001E0007801C0007803C0007803C0003C0380003C0
780003C0780001E0700001E0F00001E0F00000F0E00000F1E00000F1E0000071C000007BC00000
3B8000003B8000003F8000001F0000001F00001B207F9F1E>I<F0007C000FF0007E000FF0007E
000F78006E000E7800EE001E7800E7001E7800E7001E3C00E7003C3C01E7803C3C01C7803C3C01
C3803C1E01C380781E03C3C0781E0383C0780E0381C0700F0381C0F00F0781E0F00F0701E0F007
0700E0E0078700E1E0078F00F1E0078E00F1E0038E0071C0038E0071C003CE0073C001DC007B80
01DC003B8001DC003B8001DC003B8000F8003F0000F8001F0000F8001F0028207F9F2B>I<F800
00F87C0001F03C0001E03E0003E01F0003C00F0007800F800F8007C00F0003C01F0003E01E0001
F03C0000F07C00007878000078F000003CF000001DE000001FE000000FC0000007800000078000
000780000007800000078000000780000007800000078000000780000007800000078000000780
0000078000000780001D20809F1E>89 D<07E03FF87FFC701E401F000F000F000F003F07FF1FFF
7E0FF80FF00FF00FF00FF83F7FFF3FEF1F8F10147E9316>97 D<F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F1F000F7FC00FFFE00FC3E00F80F00F0
0F00F00780F00780F00780F00780F00780F00780F00780F00F00F00F00F81F00FC3E00FFFC00F7
F800F1E00011207D9F17>I<03F00FFC1FFE3E0E3C0278007800F000F000F000F000F000F00078
0078003C013E0F1FFF0FFE03F010147E9314>I<00078000078000078000078000078000078000
078000078000078000078000078000078007C7800FF7801FFF803E1F807C0780780780F80780F0
0780F00780F00780F00780F00780F00780F00780780780780F803E1F801FFF800FF78007C78011
207E9F17>I<03F0000FFC001FFE003E1F003C0700780700700380FFFF80FFFF80FFFF80F00000
F00000F000007000007800003C01003E07001FFF0007FE0001F80011147F9314>I<007E01FE03
FE078007000F000F000F000F000F000F000F00FFF0FFF0FFF00F000F000F000F000F000F000F00
0F000F000F000F000F000F000F000F000F000F000F20809F0E>I<03E0F00FFFF01FFFF03E3E00
3C1E00780F00780F00780F00780F00780F003C1E003E3E001FFC003FF80033E000300000380000
3FFE003FFF801FFFC03FFFE07803F0F000F0F000F0F000F0F801F07E07E03FFFC00FFF0003FC00
141E7F9317>I<F000F000F000F000F000F000F000F000F000F000F000F000F1F8F3FCF7FEFC1F
F80FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10207D9F17>I<
F0F0F0F00000000000000000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207D9F0B>I<
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207D9F0B>
108 D<F0FC07E0F3FE1FF0F7FF3FF8FE0FF07CF807C03CF807C03CF007803CF007803CF007803C
F007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF00780
3CF007803C1E147D9327>I<F1F8F3FCF7FEFC1FF80FF80FF00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00F10147D9317>I<01F80007FE001FFF803F0FC03C03C07801E078
01E0F000F0F000F0F000F0F000F0F000F0F000F07801E07801E03C03C03F0FC01FFF8007FE0001
F80014147F9317>I<F1F000F7FC00FFFE00FC3E00F81F00F00F00F00F80F00780F00780F00780
F00780F00780F00780F00F00F00F00F81F00FC3E00FFFC00F7F800F1E000F00000F00000F00000
F00000F00000F00000F00000F00000F00000111D7D9317>I<03C7800FF7801FFF803E1F807C0F
80780780780780F00780F00780F00780F00780F00780F00780F807807807807C0F803E1F801FFF
800FF78007C780000780000780000780000780000780000780000780000780000780111D7E9317
>I<F0E0F3E0F7E0FF00FC00FC00F800F800F000F000F000F000F000F000F000F000F000F000F0
00F0000B147D9310>I<07F01FFC3FFC780C7800780078007C003FC01FF00FF803F8007C003C00
3CC03CF07CFFF87FF00FC00E147F9311>I<1E001E001E001E001E001E00FFF0FFF0FFF01E001E
001E001E001E001E001E001E001E001E001E001E001E001E201FF00FF007C00C1A7F9910>I<F0
0FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF01FF03FFFFF7FEF3F0F
10147D9317>I<F003C0F003C07803807807807807803C0F003C0F003C0F001E0E001E1E001E1E
000F1C000F3C000F3C0007380007380007B80003F00003F00001E00012147F9315>I<F01F00F0
F01F80F0F01F80F0781B81E0783B81E0783BC1E07839C1E03C31C3C03C71C3C03C71E3C01C70E3
801E60E7801E60E7801EE0E7800EE077000EC077000EC0770007C07E0007C03E0007803E001C14
7F931F>I<7801E07C03C03E07801E0F000F0F00079E0003FC0003F80001F80000F00001F00001
F80003FC00079E000F0F000E0F001E07803C03C07801E0F801F01414809315>I<F003C0F003C0
7807807807807C07803C0F003C0F001E0F001E1E000E1E000F1C000F1C00073C0007380003B800
03B80003B00001F00001F00000E00000E00001C00001C00003C0000380000780007F00007E0000
7C0000121D7F9315>I E /Fk 40 122 df<000078007C7800FC7801FC7803C400038000078000
078000078000078000078000078000078000078000FFFC78FFFC78FFFC78078078078078078078
078078078078078078078078078078078078078078078078078078078078078078078078078078
078078078078078078152480A31A>12 D<FFE0FFE0FFE00B037F8C10>45
D<F0F0F0F004047B830E>I<000180000180000380000300000300000700000600000600000E00
000C00000C00001C0000180000180000180000380000300000300000700000600000600000E000
00C00000C00001C0000180000180000380000300000300000700000600000600000E00000C0000
0C00000C00001C0000180000180000380000300000300000700000600000600000E00000C00000
C0000011317DA418>I<00C001C007C0FFC0FFC0FBC003C003C003C003C003C003C003C003C003
C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0FFFFFFFFFFFF
10227CA118>49 D<03F0000FFC001FFE003C1F003807807007C07003C0F003E0E001E06001E020
01E00001E00001E00001E00003C00003C0000780000780000F00001E00003C0000780000F00001
E00001C0000380000700000E00001C0000380000700000FFFFE0FFFFE0FFFFE013227EA118>I<
01F00007FC001FFF003E0F003807807003C02003C02003C00003C00003C00003C0000780000780
000F00001E0003FC0003F80003FE00000F000007800003C00003C00001E00001E00001E00001E0
0001E08001E0C003C0E003C07007803C0F801FFF000FFC0003F00013237EA118>I<001F00001F
00002F00002F00006F0000EF0000CF0001CF0001CF00038F00038F00078F00070F000F0F000E0F
001E0F003C0F003C0F00780F00780F00F00F00FFFFF8FFFFF8FFFFF8000F00000F00000F00000F
00000F00000F00000F00000F00000F0015217FA018>I<3FFF803FFF803FFF803C00003C00003C
00003C00003C00003C00003C00003C00003C00003CF8003FFE003FFF003F0F803E07803C03C038
03C00001E00001E00001E00001E00001E00001E00001E04003C04003C0E003C07007807C1F003F
FE000FFC0003F00013227EA018>I<007E0001FF0003FF0007C1000F00001E00001E00003C0000
3C000078000078000078F800F3FE00F7FF00FF0F80FC0780F803C0F803C0F801C0F001E0F001E0
F001E0F001E0F001E07001E07001E07801E07803C03803C03C03801C07801F0F000FFE0007FC00
01F00013237EA118>I<FFFFE0FFFFE0FFFFE00001E00003C0000380000780000F00000E00001E
00001C00003C0000380000780000780000F00000F00000E00001E00001E00001E00003C00003C0
0003C00003C00003C00007800007800007800007800007800007800007800013217EA018>I<01
F00007FC000FFE001E0F003C07803C07807803C07803C07803C07803C07803C03803803C07801E
0F000F1E0007FC0003F8000FFE001E0F003C07807803C07803C0F001E0F001E0F001E0F001E0F0
01E0F001E07803C07803C03C07803E0F801FFF0007FC0001F00013237EA118>I<000FF000007F
FC0000FFFF0001F01F0003C00700078002000F0000001E0000003E0000003C0000003C00000078
0000007800000078000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000
F0000000F00000007800000078000000780000003C0000003C0000003E0000001E0000000F0000
800780018003C0038001F00F8000FFFF00007FFC00000FF00019257DA31F>67
D<FFFFF0FFFFF0FFFFF0F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000FFFFE0FFFFE0FFFFE0F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000FFFFF8FFFFF8FFFFF815237BA21D>69
D<FC001EFE001EFE001EFE001EF7001EF7001EF3801EF3801EF3C01EF1C01EF1C01EF1E01EF0E0
1EF0F01EF0F01EF0781EF0781EF0381EF03C1EF03C1EF01E1EF01E1EF00E1EF00F1EF0071EF007
1EF0079EF0039EF0039EF001DEF001DEF000FEF000FEF000FEF0007E17237BA222>78
D<FFFE00FFFF80FFFFC0F003E0F000F0F00078F00078F0003CF0003CF0003CF0003CF0003CF000
3CF00078F00078F000F0F003E0FFFFC0FFFF80FFFE00F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F0000016237BA21F>80
D<FFFC00FFFF80FFFFC0F003E0F000F0F00078F00038F0003CF0003CF0003CF0003CF0003CF000
38F00078F000F0F003E0FFFFC0FFFF80FFFE00F01E00F00F00F00700F00780F00380F003C0F001
E0F001E0F000F0F000F0F00078F00038F0003CF0001EF0001EF0000F18237BA21F>82
D<07E01FF83FFC3C1E301E200F000F000F000F01FF0FFF3FFF7F0F780FF00FF00FF00FF80F7C3F
7FFF3FFF1F8F10167E9517>97 D<F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F1F000F7FC00FFFE00FC1F00F80F00F00780F00780F003C0F0
03C0F003C0F003C0F003C0F003C0F003C0F003C0F00780F00780F80F00FC3E00FFFE00F7F800F3
F00012237CA219>I<01FC0007FF000FFF801F07803C0180780000780000700000F00000F00000
F00000F00000F00000F000007800007800007800403C00C01F07C00FFFC007FF8001FC0012167E
9516>I<0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003
C00003C003F3C00FFFC01FFFC03F0FC03C07C07803C07803C0F003C0F003C0F003C0F003C0F003
C0F003C0F003C0F003C07803C07803C03C07C03E0FC01FFFC00FFBC003E3C012237EA219>I<03
F00007FC001FFE003E0F003C0780780380780380F001C0FFFFC0FFFFC0FFFFC0F00000F00000F0
00007000007800007800003C00801F07800FFF8007FF0001F80012167E9516>I<003F00FF01FF
03C1038007800780078007800780078007800780FFF8FFF8FFF807800780078007800780078007
80078007800780078007800780078007800780078007800780102380A20F>I<01F0F807FFF80F
FFF81F1F801E0F003C07803C07803C07803C07803C07801E0F001F1F001FFE001FFC0039F00038
00003800003C00003FFE001FFFC01FFFE03FFFF07801F0F800F8F00078F00078F00078F0007878
00F03E03E01FFFC00FFF8001FC0015217F9518>I<F000F000F000F000F000F000F000F000F000
F000F000F000F000F1F8F7FCFFFEFE1EF80FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00F10237CA219>I<F0F0F0F0000000000000000000F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>I<00F000F000F000F00000000000000000
0000000000000000000000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
F000F000F000F000F000F000F000F000F000F000F000F000F080F0E3E0FFE07FC01F000C2D83A2
0D>I<F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F00000F01F80F03F00F03E00F07C00F0F800F1F000F3E000F7C000FFC000FFC000FFE000FFE000
FDF000F8F800F07800F07C00F03E00F01E00F01F00F00F00F00F80F007C012237CA218>I<F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>
I<F0F807C0F3FE1FF0FFFF7FF8FE0FF078FC0FE07CF807C03CF807C03CF007803CF007803CF007
803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF0
07803CF007803CF007803C1E167C9529>I<F1F8F7FCFFFEFE1EF80FF80FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10167C9519>I<01FC0007FF000FFF80
1F07C03C01E07800F07800F0700070F00078F00078F00078F00078F00078F000787800F07800F0
7C01F03E03E01F07C00FFF8007FF0001FC0015167F9518>I<F1F000F7FC00FFFE00FC3F00F80F
00F00780F00780F007C0F003C0F003C0F003C0F003C0F003C0F003C0F007C0F00780F00F80F80F
00FC3E00FFFE00F7F800F3F000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F0000012207C9519>I<03F3C007FBC00FFFC01F0FC03C07C07C03C07803C0F803C0F003C0F0
03C0F003C0F003C0F003C0F003C0F803C07803C07803C03C07C03F0FC01FFFC00FFBC003E3C000
03C00003C00003C00003C00003C00003C00003C00003C00003C00003C012207E9519>I<F0E0F3
E0F7E0FFE0FF00FC00F800F800F000F000F000F000F000F000F000F000F000F000F000F000F000
F0000B167C9511>I<07F01FFE3FFF3C0F7803780078007C003F003FF01FF80FFC01FE001F000F
000F400FE00FF81EFFFE3FFC0FF010167F9513>I<0F000F000F000F000F000F00FFF8FFF8FFF8
0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F080F1C07FC07F803E00E
1C7F9B12>I<F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0
0FF01FF83F7FFF7FEF1F8F10167C9519>I<7801F07C01E03E03C01E07C00F0780078F0007DE00
03FC0001FC0000F80000700000F80001FC0003DC00039E00078F000F07801E07801E03C03C01E0
7800F0F800F81516809516>120 D<F001E0F001E07803C07803C07C03C03C07803C07801E0780
1E07001E0F000F0F000F0E00071E00079E00039C00039C00039C0001980001D80000F80000F000
00F00000F00000E00000E00001E00001C00001C0004380007F80007F00007E000013207F9516>
I E /Fl 2 16 df<FFFFFFC0FFFFFFC01A027C8B23>0 D<07E01FF83FFC7FFE7FFEFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF807E010127D9317>15 D E
/Fm 23 88 df<3078F8787005057C840D>46 D<00000300000700000600000E00000C00001C00
00180000380000300000700000600000E00000C00001C000018000038000030000070000060000
0E00000C00001C0000180000380000300000700000600000E00000C00001C00001800003800003
00000700000600000E00000C00001C0000180000380000300000700000600000E00000C0000018
2D7FA117>I<000C001C00FC0FF80F38003800380038003800700070007000700070007000E000
E000E000E000E000E001C001C001C001C001C001C003C07FFEFFFE0F1E7C9D17>49
D<003F0000FFC001C1E00300F00600780600780F007C0F807C0F807C0F00780600780000F80000
F00001F00001E00003C0000780000F00001C0000380000700000C0000180000300600600601C00
C03800C07FFFC0FFFF80FFFF80161E7E9D17>I<007F0001FFC00383E00701E00700F00F00F00F
01F00F01F00001E00001E00003C0000780000F0000FE0000F800000E000007000007800003C000
03C00003C03007C07807C0F807C0F807C0F00F80C00F00601E00383C001FF80007E000141F7D9D
17>I<0001C00003C00003C0000780000F80001B80003B8000738000638000C700018700030700
0707000E07000C0700180E00300E00600E00E00E00FFFFF0FFFFF0001C00001C00001C00001C00
001C00001C00003C0003FFC003FFC0141E7D9D17>I<0000180000003800000038000000780000
007C000000FC000000FC000001BC000001BC0000033C0000033E0000061E0000061E00000C1E00
000C1E0000181E0000181F0000300F0000300F0000600F00007FFF0000FFFF0000C00F00018007
8001800780030007800300078006000780060007801F0007C0FFC07FFCFFC07FFC1E207E9F22>
65 D<0003F808000FFE18003F0738007801F801F000F803C000F007C00070078000700F000070
1F0000701E0000703E0000603C0000607C0000007C0000007C0000007C000000F8000000F80000
00F8000000F8000000F80000C0780000C0780001807C0001803C0003003C0003001E0006001E00
0C000F80180007E0700001FFC000007F00001D217B9F21>67 D<07FFFF0007FFFFE0003C01F000
3C00F80078007C0078003C0078001E0078001E0078001E0078001F00F0001F00F0001F00F0001F
00F0001F00F0001F00F0001F01E0001E01E0003E01E0003E01E0003E01E0003C01E0007C03C000
7803C000F003C000F003C001E003C003C003C00F8007C03F007FFFFC00FFFFE000201F7E9E23>
I<07FFFFF807FFFFF8003C00F8003C007800780038007800380078003800780038007800380078
0C3000F0183000F0180000F0180000F0380000FFF80000FFF80001E0700001E0300001E0300001
E0301801E0303001E0003003C0003003C0006003C0006003C000E003C001C003C003C007C00FC0
7FFFFF80FFFFFF801D1F7E9E1F>I<0001FC04000FFF0C003F039C007800FC00F000FC03E00078
03C00078078000380F0000381F0000381E0000383E0000303E0000307C0000007C0000007C0000
007C000000F8000000F8000000F8007FFCF8007FFCF80001E0780001E0780003C07C0003C03C00
03C03C0003C01E0003C00F0007C007800F8003E0398001FFF080003F80001E217B9F24>71
D<07FFC7FFC007FFC7FFC0003C007800003C007800007800F000007800F000007800F000007800
F000007800F000007800F00000F001E00000F001E00000F001E00000F001E00000FFFFE00000FF
FFE00001E003C00001E003C00001E003C00001E003C00001E003C00001E003C00003C007800003
C007800003C007800003C007800003C007800003C007800007C00F80007FFCFFF800FFF8FFF800
221F7E9E22>I<07FFE007FFE0003C00003C0000780000780000780000780000780000780000F0
0000F00000F00000F00000F00000F00001E00001E00001E00001E00001E00001E00003C00003C0
0003C00003C00003C00003C00007C000FFFC00FFFC00131F7F9E10>I<07FFF00007FFF000003C
0000003C000000780000007800000078000000780000007800000078000000F0000000F0000000
F0000000F0000000F0000000F0000001E0000001E0000001E0000001E0018001E0018001E00300
03C0030003C0030003C0070003C0060003C00E0003C01E0007C07E007FFFFC00FFFFFC00191F7E
9E1C>76 D<07FC0000FFC007FC0001FFC0003E0001F800003E00037800006E0003F000006E0006
F000006E0006F000006E000CF0000067000CF00000670018F00000C70019E00000C70031E00000
C70031E00000C70061E00000C38061E00000C380C1E000018380C3C00001838183C00001838183
C0000181C303C0000181C303C0000181C603C0000301C60780000301CC0780000301CC07800003
00F80780000300F80780000700F00780000F80F00F80007FF0E0FFF800FFF0E1FFF8002A1F7E9E
2A>I<07FC03FFC007FC03FFC0003E007C00003E003800006F003000006F003000006F00300000
6780300000678030000063C0300000C3C0600000C3C0600000C1E0600000C1E0600000C0F06000
00C0F060000180F0C000018078C000018078C00001803CC00001803CC00001803CC00003001F80
0003001F800003000F800003000F800003000F800007000780000F800700007FF0030000FFF003
0000221F7E9E22>I<0003F800001FFE00003C1F0000F0078001E003C003C001E0078001E00F80
00F00F0000F01F0000F01E0000F83E0000F83C0000F87C0000F87C0000F87C0000F87C0000F8F8
0001F0F80001F0F80001F0F80001F0F80003E0780003E0780007C07C0007C07C000F803C000F00
3E001E001E003C000F00780007C1F00003FFC00000FE00001D217B9F23>I<07FFFF0007FFFFC0
003C03E0003C01F0007800F0007800F8007800F8007800F8007800F8007800F800F001F000F001
F000F001E000F003C000F00F8000FFFE0001FFF80001E0000001E0000001E0000001E0000001E0
000003C0000003C0000003C0000003C0000003C0000003C0000007C000007FFC0000FFFC00001D
1F7E9E1F>I<07FFFC0007FFFF00003C07C0003C03E0007801E0007801F0007801F0007801F000
7801F0007801E000F003E000F003C000F0078000F01F0000FFFC0000FFF00001E0380001E03C00
01E01C0001E01C0001E01E0001E01E0003C03E0003C03E0003C03E0003C03E0003C03E0603C03E
0607C03E0C7FFC1F18FFFC0FF8000003E01F207E9E21>82 D<003F04007FCC01E0FC03807C0300
3C0700380600180E00180E00180E00180E00000F00000F00000FE00007FE0003FF8001FFC0007F
E00007E00001E00000E00000F00000F06000E06000E06000E06000E07001C0700180F80380FE0F
00C7FC0081F80016217D9F19>I<1FFFFFF81FFFFFF81E03C0F83803C038380780383007803870
078018600780186007803860078030C00F0030000F0000000F0000000F0000000F0000000F0000
001E0000001E0000001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C00
00003C0000003C0000007C00001FFFF0003FFFF0001D1F7B9E21>I<FFFC7FF8FFFC7FF807800F
80078007000F0006000F0006000F0006000F0006000F0006000F0006001E000C001E000C001E00
0C001E000C001E000C001E000C003C0018003C0018003C0018003C0018003C0018003C00180038
0030003800300038003000380060003C00C0001C00C0001E0180000F07000007FC000001F80000
1D20799E22>I<FFF07FF83FF0FFF07FF83FF01F000F800F800F000F8007000F000F8006000F00
0F8006000F001F800C000F001F800C000F00378018000F00378018000F0063C03000078063C030
000780C3C060000780C3C06000078183C0E000078183C0C000078383C0C000078303E1800007C7
01E1800003C601E3000003C601E3000003CC01E6000003CC01E6000003D801EC000003D801EC00
0003F001F8000001F000F8000001E000F8000001E000F0000001C000F0000001C000E0000001C0
00E000002C207A9E2F>87 D E /Fn 28 118 df<F8F8F8F8F805057B8410>46
D<00000C00001C00001C00003C0000380000380000780000700000700000F00000E00000E00001
E00001C00001C00003C0000380000380000780000700000700000F00000E00000E00001E00001C
00001C00003C0000380000780000700000700000F00000E00000E00001E00001C00001C00003C0
000380000380000780000700000700000F00000E00000E00001E00001C00001C00003C00003800
00380000780000700000700000F00000E00000E00000E00000163C7DAC1D>I<00180000380000
F80007F800FFF800FFF800FFF800F8F80000F80000F80000F80000F80000F80000F80000F80000
F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000
F80000F80000F80000F80000F80000F80000F80000F8007FFFF07FFFF07FFFF07FFFF014287CA7
1D>49 D<00FE0003FF800FFFC01FFFE01F07F03C01F87800FC78007C70007CF0003EF0003E6000
3E20003E00003E00003E00003E00007C00007C0000780000F80001F00001E00003E00007C0000F
80001F00003E00007C0000F80001F00003E00003C0000780000F00001E00003C00007FFFFE7FFF
FE7FFFFE7FFFFE17287EA71D>I<007E0003FF8007FFE00FFFF01F81F83E00F87C007C78007C30
007C10007C00007C00007C0000780000F80000F80001F00007E000FFC000FF8000FFC000FFF000
01F80000FC00007C00003E00003E00001F00001F00001F00001F00001F80001FC0003EE0003EF0
007E7C00FC3F01F81FFFF00FFFE003FFC000FE0018297EA71D>I<0007E0000FE0000BE0001BE0
001BE0003BE0003BE00073E00073E000F3E000F3E001E3E001E3E003E3E003C3E007C3E00F83E0
0F83E01F03E01F03E03E03E03E03E07C03E07C03E0F803E0FFFFFFFFFFFFFFFFFFFFFFFF0003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E018277EA61D>I<0003FE0000
0FFFC0003FFFF000FFFFF001FE03F003F8006007E0002007C000000F8000001F8000001F000000
3E0000003E0000007C0000007C0000007C0000007C000000F8000000F8000000F8000000F80000
00F8000000F8000000F8000000F8000000F8000000F80000007C0000007C0000007C0000007C00
00003E0000003E0000001F0000001F8000000F80000007C0000007E0000803F8003801FE01F800
FFFFF8003FFFF0000FFFC00003FE001D2C7CAA25>67 D<0003FE00000FFFC0003FFFF8007FFFFC
01FE01FC03F8007C07E0001807C000000F8000001F8000001F0000003E0000003E0000007E0000
007C0000007C0000007C000000F8000000F8000000F8000000F8000000F8000000F8000000F800
0000F8003FFCF8003FFCF8003FFC7C003FFC7C00007C7C00007C7E00007C3E00007C3E00007C1F
00007C1F80007C0F80007C07C0007C07E0007C03F8007C01FE01FC007FFFFC003FFFF8000FFFC0
0003FE001E2C7CAA27>71 D<F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7BA910>73 D<FE000000FFFE000000FFFE000000FFFF
000001FFFB000001DFFB800003DFFB800003DFFB800003DFF9C000079FF9C000079FF9C000079F
F9E0000F9FF8E0000F1FF8E0000F1FF8F0001F1FF870001E1FF870001E1FF878003E1FF838003C
1FF83C007C1FF83C007C1FF81C00781FF81E00F81FF81E00F81FF80E00F01FF80F01F01FF80F01
F01FF80701E01FF80783E01FF80783E01FF80383C01FF803C7C01FF803C7C01FF801C7801FF801
EF801FF801EF801FF800EF001FF800FF001FF8007E001FF8007E001FF8007E001FF80000001F28
2A7BA933>77 D<FFFFC000FFFFF800FFFFFE00FFFFFF00F8007F80F8001FC0F80007C0F80003E0
F80003E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80003E0F80003
E0F80007C0F8001FC0F8007F80FFFFFF00FFFFFE00FFFFF800FFFFC000F8000000F8000000F800
0000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8
000000F8000000F8000000F8000000F80000001C2A7BA925>80 D<FFFFE000FFFFFC00FFFFFE00
FFFFFF80F8003FC0F8000FE0F80003F0F80001F0F80000F0F80000F8F80000F8F80000F8F80000
F8F80000F8F80000F0F80001F0F80003F0F8000FE0F8003FC0FFFFFF80FFFFFE00FFFFFC00FFFF
E000F801F000F801F000F800F800F800F800F8007C00F8003C00F8003E00F8001E00F8001F00F8
000F80F8000F80F80007C0F80007C0F80003E0F80001E0F80001F0F80000F8F80000F8F800007C
1E2A7BA926>82 D<F80001F80001F0F80003F80001F0FC0003FC0001F07C0003FC0003E07C0003
BC0003E07C0007BC0003E03E00079E0003C03E00079E0007C03E00079E0007C03E000F9F0007C0
1F000F1F0007801F000F0F000F801F000F0F000F801F001F0F800F800F801E0F800F000F801E07
801F000F801E07801F000F803E07C01F0007C03C07C01E0007C03C03C03E0007C03C03C03E0007
C07C03E03E0003E07803E03C0003E07801E07C0003E07801E07C0001E0F801F0780001E0F001F0
780001F0F000F0F80001F0F000F0F80000F0F000F0F00000F1E000F8F00000F9E00078F00000F9
E00079F0000079E00079E0000079C00079E000007BC0003DE000007BC0003DE000003BC0003DC0
00003F80003FC000003F80001FC000001F80001F8000001F00001F8000342A7FA937>87
D<01FC000FFF003FFF803FFFC03C07E03003E00001F00001F00001F00001F00001F00003F001FF
F007FFF01FFFF03FC1F07E01F0FC01F0F801F0F801F0F801F0FC03F07E0FF07FFFF03FFFF01FF9
F00FE1F0141B7E9A1C>97 D<007F8001FFE007FFF80FFFF81FC0783F00103E00007C00007C0000
7C0000F80000F80000F80000F80000F80000F80000F800007C00007C00007C00003E00003F0018
1FC0780FFFF807FFF801FFE0007F80151B7E9A1A>99 D<00007C00007C00007C00007C00007C00
007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00FC7C03FF7C07FFFC0F
FFFC1FC1FC3F00FC3E007C7C007C7C007CFC007CF8007CF8007CF8007CF8007CF8007CF8007CF8
007CF8007C7C007C7C007C7E00FC3F00FC1F83FC1FFFFC0FFF7C03FE7C01F87C162A7EA91E>I<
00FC0003FF0007FF800FFFC01F87E03F01E03E00F07C00F07C0070F80078FFFFF8FFFFF8FFFFF8
FFFFF8F80000F80000F800007800007C00007C00003E00003F00181FC0F80FFFF807FFF801FFE0
007F00151B7E9A1A>I<F80000F80000F80000F80000F80000F80000F80000F80000F80000F800
00F80000F80000F80000F80000F80000F87E00F9FF00FBFF80FFFFC0FF0FC0FE07E0FC03E0FC03
E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803
E0F803E0F803E0F803E0F803E0F803E0F803E0132A7BA91E>104 D<F8F8F8F8F8000000000000
00000000F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7CA90E>I<F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8052A7CA90E>108 D<F83F007E00F9FF83FF00FBFFC7FF80FFFFEFFFC0FF07FE0FC0FE03FC
07E0FC01F803E0FC01F803E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801
F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F8
01F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0231B7B9A30>I<F87E00
F9FF00FBFF80FFFFC0FF0FC0FE07E0FC03E0FC03E0F803E0F803E0F803E0F803E0F803E0F803E0
F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0
131B7B9A1E>I<007E0001FF8007FFE00FFFF01F81F83F00FC3E007C7C003E7C003E78001EF800
1FF8001FF8001FF8001FF8001FF8001FF8001F7C003E7C003E7C003E3E007C3F00FC1FC3F80FFF
F007FFE003FFC0007E00181B7E9A1D>I<F87E00F9FF80FFFFC0FFFFE0FF0FE0FC03F0F801F8F8
00F8F800F8F800FCF8007CF8007CF8007CF8007CF8007CF8007CF8007CF800FCF800F8F801F8F8
01F0FC03F0FE0FE0FFFFC0FFFF80FBFF00F8FC00F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F8000016277B9A1E>I<F838F8F8F9F8FBF8FFC0FF00FE00FE
00FC00FC00F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800
0D1B7B9A14>114 D<07F8001FFF003FFF807FFF807C0780F80100F80000F80000F80000FC0000
7F00007FF0003FFC001FFE0007FF0000FF80001FC0000FC00007C00007C04007C0E007C0FC1F80
FFFF807FFF001FFE0007F800121B7E9A16>I<07C00007C00007C00007C00007C00007C00007C0
00FFFF80FFFF80FFFF80FFFF8007C00007C00007C00007C00007C00007C00007C00007C00007C0
0007C00007C00007C00007C00007C00007C00007C00007C00007C08007E38003FFC003FFC001FF
0000FC0012227FA115>I<F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F8
03E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F807E0F807E0FC
1FE0FFFFE07FFBE03FF3E01F83E0131B7B9A1E>I E /Fo 22 122 df<FFFFFFFFFFFFC00000FF
FFFFFFFFFFFC0000FFFFFFFFFFFFFF8000FFFFFFFFFFFFFFE000FFFFFFFFFFFFFFF800001FFF00
0003FFFC00001FFF0000007FFE00001FFF0000003FFF00001FFF0000001FFF80001FFF0000000F
FFC0001FFF0000000FFFC0001FFF00000007FFE0001FFF00000007FFE0001FFF00000007FFE000
1FFF00000003FFF0001FFF00000003FFF0001FFF00000003FFF0001FFF00000003FFF0001FFF00
000003FFF0001FFF00000003FFF0001FFF00000003FFF0001FFF00000003FFF0001FFF00000007
FFE0001FFF00000007FFE0001FFF00000007FFC0001FFF0000000FFFC0001FFF0000000FFF8000
1FFF0000001FFF00001FFF0000003FFE00001FFF0000007FFC00001FFF000001FFF800001FFF00
000FFFE000001FFFFFFFFFFF8000001FFFFFFFFFFC0000001FFFFFFFFFFF8000001FFFFFFFFFFF
F000001FFF000000FFFC00001FFF0000003FFF00001FFF0000000FFF80001FFF00000007FFE000
1FFF00000003FFF0001FFF00000001FFF0001FFF00000001FFF8001FFF00000000FFFC001FFF00
000000FFFC001FFF000000007FFE001FFF000000007FFE001FFF000000007FFE001FFF00000000
7FFF001FFF000000007FFF001FFF000000007FFF001FFF000000007FFF001FFF000000007FFF00
1FFF000000007FFF001FFF000000007FFF001FFF000000007FFF001FFF000000007FFE001FFF00
000000FFFE001FFF00000000FFFE001FFF00000001FFFC001FFF00000001FFFC001FFF00000003
FFF8001FFF00000007FFF0001FFF0000000FFFE0001FFF0000003FFFC0001FFF000001FFFF80FF
FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFF000FFFFFFFFFFFFFF8000FFFFFFFF
FFFFF8000048477CC653>66 D<000000007FFC00000E0000000FFFFFC0001E0000007FFFFFF800
3E000003FFFFFFFE007E00000FFFFFFFFF80FE00003FFFF8007FC1FE0000FFFF80000FF3FE0003
FFFC000003FFFE0007FFF0000001FFFE000FFFC00000007FFE001FFF800000003FFE003FFF0000
00001FFE007FFC000000000FFE00FFFC000000000FFE01FFF80000000007FE03FFF00000000003
FE03FFE00000000003FE07FFE00000000001FE0FFFC00000000001FE0FFFC00000000000FE1FFF
800000000000FE1FFF8000000000007E3FFF8000000000007E3FFF0000000000007E3FFF000000
0000003E7FFF0000000000003E7FFF0000000000003E7FFF0000000000003E7FFE000000000000
007FFE00000000000000FFFE00000000000000FFFE00000000000000FFFE00000000000000FFFE
00000000000000FFFE00000000000000FFFE00000000000000FFFE00000000000000FFFE000000
00000000FFFE00000000000000FFFE00000000000000FFFE00000000000000FFFE000000000000
00FFFE000000000000007FFE000000000000007FFE000000000000007FFF000000000000007FFF
0000000000003E7FFF0000000000003E3FFF0000000000003E3FFF0000000000003E3FFF800000
0000003E1FFF8000000000007E1FFF8000000000007C0FFFC000000000007C0FFFC00000000000
FC07FFE00000000000FC03FFE00000000000F803FFF00000000001F801FFF80000000003F000FF
FC0000000003F0007FFE0000000007E0003FFF000000000FC0001FFF800000001F80000FFFC000
00003F000007FFF0000000FE000003FFFC000001FC000000FFFF80000FF80000003FFFF8007FE0
0000000FFFFFFFFFC000000003FFFFFFFF00000000007FFFFFFC00000000000FFFFFE000000000
00007FFE00000047497AC754>I<00000003FFF0000000000000007FFFFF80000000000003FFFF
FFF000000000000FFFFFFFFC00000000003FFF003FFF0000000000FFF80007FFC000000003FFE0
0001FFF000000007FF8000007FF80000000FFF0000003FFC0000001FFE0000001FFE0000003FFC
0000000FFF0000007FF800000007FF800000FFF000000003FFC00001FFF000000003FFE00003FF
E000000001FFF00003FFC000000000FFF00007FFC000000000FFF80007FFC000000000FFF8000F
FF80000000007FFC000FFF80000000007FFC001FFF80000000007FFE001FFF00000000003FFE00
3FFF00000000003FFF003FFF00000000003FFF003FFF00000000003FFF007FFF00000000003FFF
807FFE00000000001FFF807FFE00000000001FFF807FFE00000000001FFF807FFE00000000001F
FF80FFFE00000000001FFFC0FFFE00000000001FFFC0FFFE00000000001FFFC0FFFE0000000000
1FFFC0FFFE00000000001FFFC0FFFE00000000001FFFC0FFFE00000000001FFFC0FFFE00000000
001FFFC0FFFE00000000001FFFC0FFFE00000000001FFFC0FFFE00000000001FFFC0FFFE000000
00001FFFC0FFFE00000000001FFFC0FFFE00000000001FFFC07FFE00000000001FFF807FFF0000
0000003FFF807FFF00000000003FFF807FFF00000000003FFF803FFF00000000003FFF003FFF00
000000003FFF003FFF80000000007FFF001FFF80000000007FFE001FFF80000000007FFE001FFF
80000000007FFE000FFFC000000000FFFC000FFFC000000000FFFC0007FFE000000001FFF80003
FFE000000001FFF00003FFF000000003FFF00001FFF000000003FFE00000FFF800000007FFC000
007FFC0000000FFF8000007FFE0000001FFF8000003FFF0000003FFF0000000FFFC00000FFFC00
000007FFE00001FFF800000003FFF80007FFF000000000FFFF003FFFC0000000007FFFFFFFFF80
000000000FFFFFFFFC000000000003FFFFFFF00000000000007FFFFF8000000000000003FFF000
0000004A497AC757>79 D<00007FF00007000007FFFF000F00001FFFFFE01F00007FFFFFF83F00
00FFFFFFFC7F0003FFC00FFFFF0007FE0000FFFF000FFC00003FFF000FF800001FFF001FF00000
0FFF003FE0000007FF003FE0000003FF007FE0000001FF007FC0000000FF007FC0000000FF00FF
C00000007F00FFC00000007F00FFC00000003F00FFE00000003F00FFE00000003F00FFE0000000
1F00FFF00000001F00FFF80000001F00FFFC0000001F00FFFE00000000007FFF80000000007FFF
F8000000007FFFFF800000003FFFFFFC0000003FFFFFFFC000001FFFFFFFF800001FFFFFFFFF00
000FFFFFFFFFC00007FFFFFFFFE00003FFFFFFFFF00001FFFFFFFFFC0000FFFFFFFFFC00003FFF
FFFFFE00000FFFFFFFFF000003FFFFFFFF8000007FFFFFFF80000003FFFFFFC00000003FFFFFC0
00000001FFFFE0000000003FFFE0000000000FFFE00000000003FFF00000000001FFF000000000
01FFF0F800000000FFF0F8000000007FF0F8000000007FF0F8000000007FF0F8000000003FF0FC
000000003FF0FC000000003FF0FC000000003FE0FE000000003FE0FE000000003FE0FF00000000
7FE0FF800000007FC0FF800000007FC0FFC0000000FF80FFF0000001FF80FFF8000001FF00FFFE
000003FE00FFFFC0000FFC00FF7FFC007FF800FE3FFFFFFFF000FC0FFFFFFFC000F803FFFFFF00
00F0007FFFFC0000E00003FFE0000034497AC741>83 D<0003FFF0000000003FFFFF00000000FF
FFFFE0000001FFFFFFF8000003FF003FFC000007FF800FFE000007FF8007FF000007FF8003FF80
0007FF8003FFC00007FF8001FFC00007FF8001FFC00003FF0000FFE00001FE0000FFE00000FC00
00FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000
000000FFFFE00000007FFFFFE0000007FFFFFFE000003FFFFCFFE00000FFFE00FFE00003FFF000
FFE00007FFC000FFE0000FFF0000FFE0001FFE0000FFE0003FFC0000FFE0007FFC0000FFE0007F
F80000FFE000FFF80000FFE000FFF00000FFE000FFF00000FFE000FFF00000FFE000FFF00001FF
E000FFF00001FFE000FFF80003FFE0007FFC0007FFE0007FFC000FFFE0003FFE001F7FF8001FFF
80FE7FFFF007FFFFFC3FFFF003FFFFF01FFFF0007FFFC00FFFF00007FE0003FFF0342E7DAD38>
97 D<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FF
FFC00000000003FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000
000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF
C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000
0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00FFE000001FFC0
FFFFC00001FFC3FFFFF00001FFCFFFFFFC0001FFFFE01FFF0001FFFF0007FF8001FFFC0001FFC0
01FFF80000FFE001FFF00000FFF001FFE000007FF001FFC000007FF801FFC000003FFC01FFC000
003FFC01FFC000003FFC01FFC000001FFE01FFC000001FFE01FFC000001FFE01FFC000001FFF01
FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC00000
1FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FF
C000001FFE01FFC000001FFE01FFC000003FFE01FFC000003FFC01FFC000003FFC01FFC000003F
F801FFC000007FF801FFE000007FF001FFF00000FFE001FFF80001FFE001FFFC0003FFC001FF7F
0007FF0001FE3FC03FFE0001FC0FFFFFF80001FC03FFFFF00001F800FFFF800001F0001FF80000
38487CC741>I<00001FFF80000001FFFFF8000007FFFFFE00001FFFFFFF00007FF801FF8000FF
E003FFC003FFC003FFC007FF8003FFC007FF0003FFC00FFE0003FFC01FFE0003FFC01FFC0001FF
803FFC0000FF003FFC00007E007FFC000000007FF8000000007FF800000000FFF800000000FFF8
00000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000
00FFF800000000FFF800000000FFF800000000FFF8000000007FFC000000007FFC000000007FFC
000000003FFC000000003FFE000000001FFE000001F01FFF000001F00FFF000003F007FF800007
E007FFC00007C003FFE0000FC000FFF8003F80007FFF00FF00001FFFFFFC000007FFFFF0000001
FFFFC00000001FFC00002C2E7CAD34>I<0000000000FF8000000001FFFF8000000001FFFF8000
000001FFFF8000000001FFFF8000000001FFFF800000000007FF800000000003FF800000000003
FF800000000003FF800000000003FF800000000003FF800000000003FF800000000003FF800000
000003FF800000000003FF800000000003FF800000000003FF800000000003FF800000000003FF
800000000003FF800000000003FF800000000003FF800000000003FF800000000003FF80000000
0003FF8000001FF803FF800001FFFF03FF80000FFFFFE3FF80003FFFFFFBFF80007FFC03FFFF80
01FFE0007FFF8003FFC0003FFF8007FF80000FFF800FFF000007FF800FFE000003FF801FFE0000
03FF801FFC000003FF803FFC000003FF803FFC000003FF807FFC000003FF807FF8000003FF807F
F8000003FF80FFF8000003FF80FFF8000003FF80FFF8000003FF80FFF8000003FF80FFF8000003
FF80FFF8000003FF80FFF8000003FF80FFF8000003FF80FFF8000003FF80FFF8000003FF80FFF8
000003FF80FFF8000003FF807FF8000003FF807FF8000003FF807FF8000003FF803FFC000003FF
803FFC000003FF803FFC000003FF801FFE000007FF800FFE000007FF800FFF00000FFF8007FF00
001FFF8003FF80007FFF8001FFE000FFFFC000FFF807FBFFFF003FFFFFE3FFFF000FFFFFC3FFFF
0003FFFE03FFFF00003FF003FFFF38487CC741>I<00003FFE00000001FFFFC000000FFFFFF800
003FFFFFFC00007FFC0FFE0000FFE003FF0001FF8000FF8003FF0000FFC007FF00007FE00FFE00
003FF01FFE00003FF01FFC00003FF03FFC00001FF83FFC00001FF87FFC00001FF87FF800001FFC
7FF800000FFC7FF800000FFCFFF800000FFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFF
FFFFFCFFF800000000FFF800000000FFF800000000FFF800000000FFF8000000007FF800000000
7FF8000000007FFC000000007FFC000000003FFC000000003FFC0000007C1FFE0000007C0FFE00
0000FC0FFF000000F807FF800001F803FFC00003F001FFE00007E000FFF8001FC0007FFF00FF80
001FFFFFFF000007FFFFFC000000FFFFF00000000FFF00002E2E7DAD35>I<00000000003F0000
00FFF000FFC00007FFFE03FFE0003FFFFFCFFFF0007FFFFFFFCFF001FFE07FFE0FF003FF801FFC
1FF007FF000FFE0FF00FFE0007FF0FF00FFE0007FF07E01FFC0003FF81801FFC0003FF80003FFC
0003FFC0003FFC0003FFC0003FFC0003FFC0003FFC0003FFC0003FFC0003FFC0003FFC0003FFC0
003FFC0003FFC0003FFC0003FFC0003FFC0003FFC0001FFC0003FF80001FFC0003FF80000FFE00
07FF00000FFE0007FF000007FF000FFE000003FF801FFC000001FFE07FF8000003FFFFFFE00000
03FFFFFFC000000787FFFE0000000780FFF0000000078000000000000F8000000000000F800000
0000000FC000000000000FC000000000000FE000000000000FF8000000000007FFFFFFF0000007
FFFFFFFF000007FFFFFFFFE00003FFFFFFFFF80003FFFFFFFFFC0001FFFFFFFFFE0000FFFFFFFF
FF0003FFFFFFFFFF800FFFFFFFFFFF801FF000001FFFC03FC0000001FFC07F800000007FE07F80
0000003FE0FF000000003FE0FF000000001FE0FF000000001FE0FF000000001FE0FF000000001F
E0FF800000003FE07F800000003FC07FC00000007FC03FE0000000FF801FF8000003FF000FFE00
000FFE0007FFE000FFFC0001FFFFFFFFF000003FFFFFFF8000000FFFFFFE000000007FFFC00000
34447DAE3A>103 D<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFF
C000000000FFFFC00000000003FFC00000000001FFC00000000001FFC00000000001FFC0000000
0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0
0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000
01FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC007
FE000001FFC03FFFC00001FFC0FFFFF00001FFC1FFFFFC0001FFC7F01FFC0001FFCFC00FFE0001
FFDF0007FF0001FFDE0007FF0001FFFC0007FF0001FFF80003FF8001FFF80003FF8001FFF00003
FF8001FFE00003FF8001FFE00003FF8001FFE00003FF8001FFC00003FF8001FFC00003FF8001FF
C00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF
8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC0
0003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF80
01FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC000
03FF8001FFC00003FF80FFFFFF81FFFFFFFFFFFF81FFFFFFFFFFFF81FFFFFFFFFFFF81FFFFFFFF
FFFF81FFFFFF38487BC741>I<00FC0001FF0003FF8007FF800FFFC00FFFC00FFFE00FFFE00FFF
E00FFFC00FFFC007FF8003FF8001FF0000FC000000000000000000000000000000000000000000
00000000000000000000000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FF
C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
C001FFC001FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1849
7CC820>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF8019487CC720>108 D<00FF8003FF000003FF00
0000FFFF801FFFE0001FFFE00000FFFF807FFFF8007FFFF80000FFFF81FFFFFC01FFFFFC0000FF
FF83F01FFE03F01FFE0000FFFF87C007FF07C007FF000003FF8F0007FF8F0007FF800001FF9E00
03FF9E0003FF800001FFBC0003FFBC0003FF800001FFF80001FFF80001FFC00001FFF80001FFF8
0001FFC00001FFF00001FFF00001FFC00001FFE00001FFE00001FFC00001FFE00001FFE00001FF
C00001FFE00001FFE00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FF
FFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80592E7BAD
62>I<00FF8007FE0000FFFF803FFFC000FFFF80FFFFF000FFFF81FFFFFC00FFFF87F01FFC00FF
FF8FC00FFE0003FF9F0007FF0001FF9E0007FF0001FFBC0007FF0001FFF80003FF8001FFF80003
FF8001FFF00003FF8001FFE00003FF8001FFE00003FF8001FFE00003FF8001FFC00003FF8001FF
C00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF
8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC0
0003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF80
01FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC000
03FF8001FFC00003FF8001FFC00003FF80FFFFFF81FFFFFFFFFFFF81FFFFFFFFFFFF81FFFFFFFF
FFFF81FFFFFFFFFFFF81FFFFFF382E7BAD41>I<00000FFE0000000001FFFFF000000007FFFFFC
0000001FFFFFFF0000007FF803FFC00000FFE000FFE00001FF80003FF00003FF00001FF80007FE
00000FFC000FFE00000FFE000FFC000007FE001FFC000007FF003FFC000007FF803FF8000003FF
803FF8000003FF807FF8000003FFC07FF8000003FFC07FF8000003FFC0FFF8000003FFE0FFF800
0003FFE0FFF8000003FFE0FFF8000003FFE0FFF8000003FFE0FFF8000003FFE0FFF8000003FFE0
FFF8000003FFE0FFF8000003FFE0FFF8000003FFE07FF8000003FFC07FF8000003FFC07FF80000
03FFC07FF8000003FFC03FFC000007FF803FFC000007FF801FFC000007FF001FFC000007FF000F
FE00000FFE0007FF00001FFC0003FF00001FF80001FFC0007FF00000FFE000FFE000007FFC07FF
C000001FFFFFFF00000007FFFFFC00000001FFFFF0000000001FFF000000332E7DAD3A>I<007F
C00FFE0000FFFFC0FFFFC000FFFFC3FFFFF000FFFFCFFFFFFC00FFFFFFE03FFF00FFFFFF000FFF
8003FFFC0007FFC001FFF80003FFE001FFF00001FFF001FFE00000FFF001FFC00000FFF801FFC0
00007FFC01FFC000007FFC01FFC000003FFC01FFC000003FFE01FFC000003FFE01FFC000003FFE
01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000
001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01FFC000001FFF01
FFC000001FFF01FFC000003FFE01FFC000003FFE01FFC000003FFE01FFC000007FFC01FFC00000
7FFC01FFC000007FF801FFC00000FFF801FFE00000FFF001FFF00001FFE001FFF80003FFE001FF
FC0007FFC001FFFF000FFF0001FFFFC07FFE0001FFCFFFFFF80001FFC3FFFFF00001FFC0FFFF80
0001FFC01FF8000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0
0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000
01FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000FFFFFF80
000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF8000000038427CAD41>I<00
FF807F00FFFF81FFC0FFFF87FFF0FFFF8FFFF8FFFF9F8FFCFFFF9F1FFE03FFBE1FFE01FFBC1FFE
01FFF81FFE01FFF81FFE01FFF01FFE01FFF00FFC01FFE007F801FFE003F001FFE0000001FFE000
0001FFE0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0
000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FF
C0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001
FFC0000001FFC00000FFFFFFE000FFFFFFE000FFFFFFE000FFFFFFE000FFFFFFE000272E7CAD2F
>114 D<000FFE01C000FFFFC7C003FFFFFFC007FFFFFFC01FF001FFC03FC0007FC03F80003FC0
7F00001FC07E00000FC0FE00000FC0FE000007C0FE000007C0FF000007C0FF800007C0FFC00000
00FFF8000000FFFFC000007FFFFE00007FFFFFE0003FFFFFF8001FFFFFFE000FFFFFFF0007FFFF
FF8001FFFFFFC0007FFFFFE0001FFFFFF00000FFFFF0000007FFF00000007FF80000001FF8F800
000FF8F8000007F8FC000007F8FC000003F8FC000003F8FE000003F8FF000003F0FF000007F0FF
800007F0FFC0000FE0FFF0001FC0FFFC00FF80FFFFFFFF00FC7FFFFC00F01FFFF000E003FF8000
252E7CAD2E>I<0001F000000001F000000001F000000001F000000001F000000001F000000003
F000000003F000000003F000000007F000000007F000000007F00000000FF00000000FF0000000
1FF00000003FF00000003FF00000007FF0000001FFF0000003FFF000000FFFFFFFC0FFFFFFFFC0
FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0007FF00000007FF00000007FF00000007FF00000007FF000
00007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF0
0000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007F
F00000007FF00000007FF00000007FF001F0007FF001F0007FF001F0007FF001F0007FF001F000
7FF001F0007FF001F0007FF001F0007FF001F0007FF003F0003FF803E0003FF807E0001FFC07C0
001FFE0F80000FFFFF800003FFFE000000FFFC0000001FE00024427EC12D>I<007FC00000FF80
FFFFC001FFFF80FFFFC001FFFF80FFFFC001FFFF80FFFFC001FFFF80FFFFC001FFFF8003FFC000
07FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001
FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003
FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FF
C00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF
8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00003FF8001FFC00007FF8001FFC0
0007FF8001FFC00007FF8001FFC0000FFF8001FFC0001FFF8000FFC0003FFF8000FFE0007FFF80
007FE000FBFFC0007FF803F3FFFF003FFFFFE3FFFF000FFFFF83FFFF0003FFFE03FFFF00007FF0
03FFFF382E7BAD41>I<FFFFFF0003FFFFFFFFFF0003FFFFFFFFFF0003FFFFFFFFFF0003FFFFFF
FFFF0003FFFF01FFE000001F8000FFE000001F0000FFF000003F00007FF000003E00007FF80000
7E00003FF800007C00003FFC0000FC00001FFC0000F800001FFC0000F800001FFE0001F800000F
FE0001F000000FFF0003F0000007FF0003E0000007FF8007E0000003FF8007C0000003FFC007C0
000003FFC00FC0000001FFC00F80000001FFE01F80000000FFE01F00000000FFF03F000000007F
F03E000000007FF87E000000003FF87C000000003FF87C000000003FFCFC000000001FFCF80000
00001FFFF8000000000FFFF0000000000FFFF00000000007FFE00000000007FFE00000000003FF
C00000000003FFC00000000003FFC00000000001FF800000000001FF800000000000FF00000000
0000FF0000000000007E0000000000007E0000000000007E0000000000007C000000000000FC00
0000000000F8000000000001F8000000000001F00000001F0003F00000003F8003E00000007FC0
03E0000000FFE007C0000000FFE00FC0000000FFE00F80000000FFE01F80000000FFE03F000000
007FC0FE000000007F83FC000000003FFFF8000000001FFFE00000000007FF800000000001FE00
0000000038427EAD3D>121 D E /Fp 8 117 df<00001E000000003E00000000FE00000003FE00
00003FFE0000FFFFFE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F
FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000
0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000
000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00
00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE00007FFFFFFF807FFFFFFF807FFFFFFF807FFFFFFF80213879B730>49
D<0000001FFE0000E0000003FFFFE001E000001FFFFFF803E000007FFFFFFE07E00001FFFC00FF
0FE00007FFC0001FDFE0000FFF000007FFE0003FFC000001FFE0007FF0000000FFE000FFE00000
007FE001FFC00000003FE003FF800000001FE007FF800000001FE007FF000000000FE00FFE0000
000007E00FFE0000000007E01FFC0000000007E01FFC0000000003E03FFC0000000003E03FF800
00000003E07FF80000000001E07FF80000000001E07FF80000000001E07FF0000000000000FFF0
000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FF
F0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000
FFF0000000000000FFF0000000000000FFF00000000000007FF00000000000007FF80000000000
007FF80000000001E07FF80000000001E03FF80000000001E03FFC0000000001E01FFC00000000
01E01FFC0000000003E00FFE0000000003C00FFE0000000007C007FF0000000007C007FF800000
000F8003FF800000000F8001FFC00000001F0000FFE00000003E00007FF00000007C00003FFC00
0000F800000FFF000003F0000007FFC0000FE0000001FFFC007FC00000007FFFFFFF000000001F
FFFFFC0000000003FFFFE000000000001FFE0000003B3D7BBB46>67 D<003FFF00000001FFFFE0
000007FFFFFC00000FF007FE00001FF801FF80001FF800FFC0001FF8007FE0001FF8007FE0001F
F8007FF0000FF0003FF00007E0003FF00003C0003FF0000000003FF0000000003FF0000000003F
F0000000003FF0000000FFFFF000000FFFFFF000007FF83FF00003FF803FF00007FE003FF0001F
FC003FF0003FF8003FF0007FF0003FF0007FE0003FF000FFE0003FF000FFC0003FF000FFC0003F
F000FFC0003FF000FFC0007FF000FFC0007FF000FFE000FFF0007FE001DFF0003FF003DFFC001F
FC0F9FFFE00FFFFE0FFFE001FFF807FFE0003FE001FFE02B267DA52F>97
D<0003FF8000001FFFF000007FFFFC0000FF83FF0003FE00FF8007FC003F800FF8003FC01FF800
1FE01FF0001FE03FF0001FF03FF0000FF07FE0000FF07FE0000FF87FE0000FF8FFE0000FF8FFE0
000FF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FFE0000000FFE0000000FFE0000000FF
E00000007FE00000007FE00000007FF00000003FF00000783FF00000781FF80000F80FF80000F0
07FC0001F003FE0003E001FF000FC000FFC07F80003FFFFE00000FFFFC000001FFC00025267DA5
2C>101 D<00FF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF00000000
0007FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003FF00
0000000003FF000000000003FF000000000003FF000000000003FF000000000003FF0000000000
03FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003FF0000
00000003FF003FE0000003FF01FFFC000003FF07FFFE000003FF0F81FF800003FF3C00FF800003
FF3800FFC00003FF7000FFC00003FFE0007FE00003FFC0007FE00003FFC0007FE00003FF80007F
E00003FF80007FE00003FF00007FE00003FF00007FE00003FF00007FE00003FF00007FE00003FF
00007FE00003FF00007FE00003FF00007FE00003FF00007FE00003FF00007FE00003FF00007FE0
0003FF00007FE00003FF00007FE00003FF00007FE00003FF00007FE00003FF00007FE00003FF00
007FE00003FF00007FE00003FF00007FE00003FF00007FE00003FF00007FE00003FF00007FE000
03FF00007FE000FFFFFC1FFFFF80FFFFFC1FFFFF80FFFFFC1FFFFF80FFFFFC1FFFFF80313C7DBB
36>104 D<00FF00FF8000FFFF0FFFF800FFFF3FFFFE00FFFFFE03FF00FFFFF000FFC007FFE000
7FE003FFC0003FF003FF80003FF803FF00001FF803FF00001FFC03FF00000FFC03FF00000FFE03
FF00000FFE03FF00000FFE03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF0000
07FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF00000FFE03
FF00000FFE03FF00000FFE03FF00000FFC03FF00001FFC03FF00001FF803FF80003FF003FFC000
7FF003FFE000FFE003FFF001FF8003FFFE07FF0003FF3FFFFC0003FF0FFFF00003FF01FF000003
FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000
000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000FF
FFFC000000FFFFFC000000FFFFFC000000FFFFFC00000030377EA536>112
D<00FE01F800FFFE07FF00FFFE1FFF80FFFE3E3FC0FFFE787FE007FE707FE003FEE07FE003FEE0
7FE003FFC07FE003FFC03FC003FF801F8003FF800F0003FF80000003FF80000003FF00000003FF
00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003
FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000
03FF00000003FF00000003FF000000FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE000023267EA5
28>114 D<000F0000000F0000000F0000000F0000000F0000001F0000001F0000001F0000001F
0000003F0000003F0000007F0000007F000000FF000001FF000003FF000007FF00001FFFFFF0FF
FFFFF0FFFFFFF0FFFFFFF003FF000003FF000003FF000003FF000003FF000003FF000003FF0000
03FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF00
0003FF000003FF000003FF003C03FF003C03FF003C03FF003C03FF003C03FF003C03FF003C03FF
003C01FF807801FF807800FFC0F000FFE1F0003FFFE0000FFF800001FE001E377EB626>116
D E /Fq 71 123 df<000FC3E0007FEFF000E07C7801C0F8780380F83007007000070070000700
700007007000070070000700700007007000FFFFFF80FFFFFF8007007000070070000700700007
007000070070000700700007007000070070000700700007007000070070000700700007007000
0700700007007000070070007FE3FF007FE3FF001D20809F1B>11 D<001F80007FC001E0E00381
E00381E00701E0070000070000070000070000070000070000FFFFE0FFFFE00700E00700E00700
E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700
E07FC3FE7FC3FE1720809F19>I<001FE0007FE001E1E00381E00380E00700E00700E00700E007
00E00700E00700E00700E0FFFFE0FFFFE00700E00700E00700E00700E00700E00700E00700E007
00E00700E00700E00700E00700E00700E00700E00700E00700E07FE7FE7FE7FE1720809F19>I<
000F80F800007FE7FE0000E06E060001C0FC0F000380F80F000700F00F00070070000007007000
000700700000070070000007007000000700700000FFFFFFFF00FFFFFFFF000700700700070070
070007007007000700700700070070070007007007000700700700070070070007007007000700
7007000700700700070070070007007007000700700700070070070007007007007FE3FE3FF07F
E3FE3FF02420809F26>I<7038F87CFC7EFC7E7C3E0C060C060C06180C180C381C301860304020
0F0E7E9F17>34 D<0078000000FC00000186000003860000030300000703000007030000070300
00070300000706000007060000070C00000718000003B81FFC03F01FFC03E003E003C0018003C0
030007C003000EE006001CE0060038700C0078780C0070381800F01C3000F01E3000F00E6000F0
07C000F003C0187801C0187807E0303E1E78701FF83FE007E00F801E227EA023>38
D<006000C001800300070006000C001C00180038003800300070007000700060006000E000E000
E000E000E000E000E000E000E000E000E000E0006000600070007000700030003800380018001C
000C00060007000300018000C000600B2E7DA112>40 D<C0006000300018001C000C0006000700
030003800380018001C001C001C000C000C000E000E000E000E000E000E000E000E000E000E000
E000E000C000C001C001C001C00180038003800300070006000C001C00180030006000C0000B2E
7DA112>I<70F8FCFC7C0C0C0C181838306040060E7C840D>44 D<FFC0FFC0FFC00A037F8A0F>I<
70F8F8F87005057C840D>I<00030003000700060006000E000C000C001C001800180038003000
3000700060006000E000C000C001C00180018001800380030003000700060006000E000C000C00
1C0018001800380030003000700060006000E000C000C000102D7DA117>I<03F0000FFC001E1E
001C0E00380700780780700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0F003
C0F003C0F003C0F003C0F003C0F003C0F003C07003807003807003807807803807001C0E001E1E
000FFC0003F000121F7E9D17>I<018003801F80FF80E380038003800380038003800380038003
80038003800380038003800380038003800380038003800380038003800380FFFEFFFE0F1E7C9D
17>I<03F0000FFC00183E00300F00600F80C00780F007C0F807C0F803C0F803C02003C00007C0
000780000780000F00000E00001C0000380000700000E00001C0000380000300000600C00C00C0
1800C03001807FFF80FFFF80FFFF80121E7E9D17>I<03F0000FFC001C1E00300F00780F80780F
80780780380F80000F80000F00000F00001E00003C0003F80003F000001C00000E00000F000007
800007800007C02007C0F807C0F807C0F807C0F00780600F80700F003C1E001FFC0003F000121F
7E9D17>I<000E00000E00001E00003E00003E00006E0000EE0000CE00018E00038E00030E0006
0E000E0E000C0E00180E00380E00300E00600E00E00E00FFFFF0FFFFF0000E00000E00000E0000
0E00000E00000E00000E0000FFE000FFE0141E7F9D17>I<3803003FFF003FFE003FF8003FE000
30000030000030000030000030000030000031F00037FC003E0E003C0700380780300380000380
0003C00003C00003C06003C0F003C0F003C0F00380C00780600700700E003C1E000FF80007E000
121F7E9D17>I<007C0001FE000783000E03800C07801C07803803003800007800007000007000
00F3F800F7FE00FC0E00F80700F80380F80380F003C0F003C0F003C0F003C0F003C07003C07003
C07003803803803807001C07000E1E0007FC0001F000121F7E9D17>I<6000007FFFC07FFFC07F
FF80600180C00300C00600C00600000C0000180000180000300000600000600000E00000C00001
C00001C00001C00003800003800003800003800007800007800007800007800007800007800007
8000030000121F7D9D17>I<03F0000FFC001E1E00380700300700700380700380700380700380
7807003E07003F0E001FDC000FF80003F80007FC001E7E00383F00700F80700780E003C0E001C0
E001C0E001C0E001C0F001807003803807001E0E000FFC0003F000121F7E9D17>I<03F00007F8
001E1C00380E00380700700700700380F00380F00380F003C0F003C0F003C0F003C0F003C07007
C07007C0380FC01C0FC01FFBC007F3C0000380000380000780000700300700780E00780E00701C
003078001FF0000FC000121F7E9D17>I<70F8F8F8700000000000000000000070F8F8F8700514
7C930D>I<70F8F8F8700000000000000000000070F8F8F878181818183030606040051D7C930D>
I<0FC03FF070786038E03CF03CF03C603C003C007800F000E001C0018003800300030003000300
0300030003000000000000000000000007000F800F800F8007000E207D9F15>63
D<0003800000038000000380000007C0000007C0000007C000000DE000000DE000000DE0000018
F0000018F0000018F00000307800003078000030780000603C0000603C0000603C0000E01E0000
C01E0000FFFE0001FFFF0001800F0001800F0003800F800300078003000780070007C0070003C0
0F8003C0FFE03FFEFFE03FFE1F207F9F22>65 D<FFFFE000FFFFF80007803E0007801F0007800F
0007800F8007800F8007800F8007800F8007800F8007800F0007801F0007803E0007807C0007FF
F80007FFFC0007801E0007800F0007800F8007800780078007C0078007C0078007C0078007C007
8007C00780078007800F8007801F0007803E00FFFFFC00FFFFF0001A1F7E9E20>I<001FC04000
7FF0C001F839C003C00DC0078007C00F0003C01E0003C03E0001C03C0001C07C0001C07C0000C0
780000C0F80000C0F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80000
00780000C07C0000C07C0000C03C0000C03E0001801E0001800F0003000780030003C00E0001F8
1C00007FF000001FC0001A217D9F21>I<FFFFE000FFFFFC0007803E0007800F00078007800780
03C0078003E0078001E0078001F0078000F0078000F0078000F8078000F8078000F8078000F807
8000F8078000F8078000F8078000F8078000F8078000F0078000F0078001F0078001E0078001E0
078003C00780078007800F0007803E00FFFFFC00FFFFE0001D1F7E9E23>I<FFFFFF00FFFFFF00
07801F000780070007800300078003000780038007800180078001800780C1800780C1800780C0
000780C0000781C00007FFC00007FFC0000781C0000780C0000780C0000780C0600780C0600780
0060078000C0078000C0078000C0078001C0078001C0078003C007800F80FFFFFF80FFFFFF801B
1F7E9E1F>I<FFFFFF00FFFFFF0007801F00078007000780030007800300078003800780018007
8001800780C1800780C1800780C0000780C0000781C00007FFC00007FFC0000781C0000780C000
0780C0000780C0000780C000078000000780000007800000078000000780000007800000078000
0007800000FFFE0000FFFE0000191F7E9E1E>I<000FC020007FF86001F81CE003E006E0078003
E00F0001E01E0001E01E0000E03C0000E07C0000E07C00006078000060F8000060F8000000F800
0000F8000000F8000000F8000000F8000000F8007FFCF8007FFC780001E07C0001E07C0001E03C
0001E01E0001E01E0001E00F0001E0078003E003E003E001F80E60007FFC20000FE0001E217D9F
24>I<FFF8FFF8FFF8FFF807800F0007800F0007800F0007800F0007800F0007800F0007800F00
07800F0007800F0007800F0007800F0007800F0007FFFF0007FFFF0007800F0007800F0007800F
0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F000780
0F00FFF8FFF8FFF8FFF81D1F7E9E22>I<FFFCFFFC078007800780078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780FFFCFF
FC0E1F7F9E10>I<FFFE00FFFE0007800007800007800007800007800007800007800007800007
800007800007800007800007800007800007800007800007800007800607800607800607800607
800E07800E07800C07801C07803C0780FCFFFFFCFFFFFC171F7E9E1C>76
D<FF80001FF8FFC0003FF807C0003F0007C0003F0006E0006F0006E0006F0006E0006F00067000
CF00067000CF00067000CF000638018F000638018F000638018F00061C030F00061C030F00061C
030F00060E060F00060E060F00060E060F0006070C0F0006070C0F0006070C0F000603980F0006
03980F000603980F000601F00F000601F00F000601F00F000F00E00F00FFF0E1FFF8FFF0E1FFF8
251F7E9E2A>I<FF807FF8FFC07FF807C0078007E0030007E0030006F0030006F0030006780300
063C0300063C0300061E0300061E0300060F0300060F0300060783000607C3000603C3000601E3
000601E3000600F3000600F30006007B0006007B0006003F0006001F0006001F0006000F000600
0F000F000700FFF00700FFF003001D1F7E9E22>I<001F800000FFF00001E0780007C03E000F80
1F000F000F001E0007803C0003C03C0003C07C0003E07C0003E0780001E0F80001F0F80001F0F8
0001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E07C0003E0
3C0003C03E0007C01E0007800F000F000F801F0007C03E0001F0F80000FFF000001F80001C217D
9F23>I<FFFFE000FFFFF80007807C0007801E0007801F0007800F0007800F8007800F8007800F
8007800F8007800F8007800F0007801F0007801E0007807C0007FFF80007FFE000078000000780
000007800000078000000780000007800000078000000780000007800000078000000780000007
800000FFFC0000FFFC0000191F7E9E1F>I<FFFF8000FFFFF0000780F80007803C0007803E0007
801E0007801F0007801F0007801F0007801F0007801E0007803E0007803C000780F80007FFF000
07FF80000781C0000780E000078070000780700007807800078078000780780007807C0007807C
0007807C0007807C0C07807E0C07803E0CFFFC1F18FFFC0FF0000003E01E207E9E21>82
D<07E0800FF9801C1F80300F80700780600380E00380E00180E00180E00180F00000F000007800
007F00003FF0001FFC000FFE0003FF00001F800007800003C00003C00001C0C001C0C001C0C001
C0C001C0E00180F00380F80700FE0E00CFFC0081F80012217D9F19>I<7FFFFFE07FFFFFE0780F
01E0700F00E0600F0060600F0060E00F0070C00F0030C00F0030C00F0030C00F0030000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000000F0000000F0000000F000007FFFE0007FFFE001C1F7E
9E21>I<FFF07FF83FF0FFF07FF83FF00F0007800F800F00078003000F000780030007800FC006
0007800FC0060007800FC00600078019E00E0003C019E00C0003C019E00C0003C039E00C0001E0
30F0180001E030F0180001E030F0180000F06078300000F06078300000F06078300000F0E07C30
000078C03C60000078C03C60000078C03C6000003D801EC000003D801EC000003D801EC000003F
000FC000001F000F8000001F000F8000001F000F8000000E00070000000E00070000000E000700
002C207F9E2F>87 D<7FF83FF87FF83FF807C00F8003C0060001E00E0001F00C0000F018000078
3800007C3000003C7000003E6000001EC000000FC000000F8000000780000007C0000007E00000
0DE000001DF0000018F8000038780000307C0000603C0000E01E0000C01F0001800F0003800780
030007C00F8007C0FFE01FFEFFE01FFE1F1F7F9E22>I<0804180C3018703860306030C060C060
C060F87CFC7EFC7E7C3E381C0F0E7B9F17>92 D<1FE0003FF000783800781C00300E00000E0000
0E00000E0003FE001FFE003E0E00780E00F80E00F00E30F00E30F00E30F01E30783F703FEFE00F
878014147E9317>97 D<0E0000FE0000FE00000E00000E00000E00000E00000E00000E00000E00
000E00000E00000E3F000EFF800FC3C00F00E00E00F00E00700E00780E00780E00780E00780E00
780E00780E00780E00700E00F00F00F00F01E00FC3C00CFF800C3E0015207F9F19>I<03F80FFC
1E1E3C1E380C78007000F000F000F000F000F000F0007000780038033C031F0E0FFC03F010147E
9314>I<000380003F80003F800003800003800003800003800003800003800003800003800003
8003E3800FFB801E0F803C0780780380780380700380F00380F00380F00380F00380F00380F003
807003807003807807803807801E1F800FFBF803E3F815207E9F19>I<03F0000FFC001E1E003C
0F00380700780700700380F00380FFFF80FFFF80F00000F00000F000007000007800003801801C
03800F070007FE0001F80011147F9314>I<003C00FE01CF038F03060700070007000700070007
000700FFF0FFF00700070007000700070007000700070007000700070007000700070007000700
7FF07FF01020809F0E>I<0001E003E3F00FFF701C1C703C1E00380E00780F00780F00780F0078
0F00380E003C1E001C1C003FF80033E0003000003000003800003FFE001FFF803FFFC07003E070
00F0E00070E00070E00070F000F07801E03E07C00FFF0003FC00141F7F9417>I<0E0000FE0000
FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E000EFF000FC380
0F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C00E01C0FFE7FCFFE7FC16207F9F19>I<1C001E003E001E001C0000000000000000000000
00000E007E007E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FF
C0FFC00A1F809E0C>I<00E001F001F001F000E0000000000000000000000000007007F007F000
F00070007000700070007000700070007000700070007000700070007000700070007000700070
00706070F0E0F1C07F803E000C28829E0E>I<0E0000FE0000FE00000E00000E00000E00000E00
000E00000E00000E00000E00000E00000E1FF00E1FF00E0F800E0E000E0C000E18000E30000E70
000EF0000FF8000F38000E1C000E1E000E0E000E07000E07800E03800E03C0FFCFF8FFCFF81520
7F9F18>I<0E00FE00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E00FFE0FFE00B20809F0C>I<0E3F
03F000FEFF8FF800FFC1DC1C000F80F80E000F00F00E000E00E00E000E00E00E000E00E00E000E
00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00
0E00E00E000E00E00E00FFE7FE7FE0FFE7FE7FE023147F9326>I<0E3E00FEFF00FFC3800F01C0
0F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C0FFE7FCFFE7FC16147F9319>I<01F80007FE001E07803C03C03801C07000E07000E0F000
F0F000F0F000F0F000F0F000F0F000F07000E07801E03801C03C03C01E078007FE0001F8001414
7F9317>I<0E3F00FEFF80FFC3C00F01E00E00F00E00F00E00780E00780E00780E00780E00780E
00780E00780E00700E00F00F00F00F01E00FC3C00EFF800E3E000E00000E00000E00000E00000E
00000E00000E0000FFE000FFE000151D7F9319>I<03E1800FF9801E1F803C0780780780780380
700380F00380F00380F00380F00380F00380F003807003807803807807803C0F801E1F800FF380
03E380000380000380000380000380000380000380000380003FF8003FF8151D7E9318>I<0E78
FEFCFF9E0F1E0F0C0F000E000E000E000E000E000E000E000E000E000E000E000E00FFE0FFE00F
147F9312>I<1F903FF07070E030E030E030F00078007F803FE00FF000F0C078C038C038E038E0
38F070DFE08F800D147E9312>I<06000600060006000E000E001E003E00FFF8FFF80E000E000E
000E000E000E000E000E000E000E000E180E180E180E180E18073007E003C00D1C7F9B12>I<0E
01C0FE1FC0FE1FC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E03C00E03C0070FC007FDFC01F1FC16147F9319>I<FF87F8FF87F81E01E00E01C0
0E01800E0180070300070300070300038600038600038E0001CC0001CC0001FC0000F80000F800
00700000700000700015147F9318>I<FF9FF3FCFF9FF3FC1C0780F01C0780601C07C0E00E0FC0
C00E0CC0C00E0CE0C0070CE18007186180071871800398730003B0330003B0330003B03F0001F0
3E0001E01E0001E01E0000E01C0000C00C001E147F9321>I<7FC7FC7FC7FC0703E00703800383
0001C70000EE0000EC00007800003800003C00007C0000EE0001C7000187000303800701C00F01
E0FF87FEFF87FE1714809318>I<FF87F8FF87F81E01E00E01C00E01800E018007030007030007
0300038600038600038E0001CC0001CC0001FC0000F80000F80000700000700000700000600000
600000600000C000F0C000F18000F380007F00003C0000151D7F9318>I<3FFF3FFF380E301C70
3C6038607060F001E001C0038007830F030E031C073C063806701EFFFEFFFE10147F9314>I
E /Fr 46 122 df<70F8FCFC7C0C0C0C0C181830306040060F7C840E>44
D<FFE0FFE0FFE00B037F8B10>I<70F8F8F87005057C840E>I<01F00007FC000E0E001C07003803
803803807803C07001C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001
E0F001E0F001E0F001E0F001E0F001E0F001E07001C07001C07001C07803C03803803803801C07
000E0E0007FC0001F00013227EA018>48 D<018003800F80FF80F3800380038003800380038003
800380038003800380038003800380038003800380038003800380038003800380038003800380
0380FFFEFFFE0F217CA018>I<03F0000FFC001C1F00300F806007806003C0C003C0F003E0F801
E0F801E0F801E02003E00003E00003C00003C0000780000780000F00001E00001C000038000070
0000E00001C0000380000700600E00600C00601800E03000C07FFFC0FFFFC0FFFFC013217EA018
>I<03F0000FFC001C1F003007807007807807C07807C07803C03807C00007C000078000078000
0F00000E00003C0003F80003F800001E00000F000007800007C00003C00003E02003E07003E0F8
03E0F803E0F003C06003C06007803007801C1F000FFC0003F00013227EA018>I<000E00000E00
001E00001E00003E00003E00006E0000EE0000CE0001CE00018E00030E00070E00060E000E0E00
0C0E00180E00180E00300E00700E00600E00E00E00FFFFF8FFFFF8000E00000E00000E00000E00
000E00000E00000E0001FFF001FFF015217FA018>I<1000801C07801FFF001FFE001FFC001FF0
0018000018000018000018000018000018000018F8001BFE001F0F001C07801803801803C00001
C00001E00001E00001E00001E06001E0F001E0F001E0F001C0C003C06003C06003803007001C1E
000FFC0003F00013227EA018>I<007E0001FF0003C1800701C00E03C01C03C01C018038000038
0000780000700000702000F1FC00F3FE00F60700FC0380F803C0F801C0F001C0F001E0F001E0F0
01E0F001E0F001E07001E07001E07001E03801C03803C01803801C07000E0E0007FC0001F00013
227EA018>I<01F00007FC000E0F001807803803803001C07001C07001C07001C07801C0780380
3E03803F07001FCE000FFC0003F80003FC000F7F001C3F80380F807007C07003C0E001E0E000E0
E000E0E000E0E000E0E000E07001C07001C03803801E0F000FFE0003F00013227EA018>56
D<01F00007FC000E0E001C0700380380780380700380F001C0F001C0F001C0F001E0F001E0F001
E0F001E0F001E07001E07003E07803E03807E01C0DE00FF9E007F1E00081C00001C00003C00003
80000380300700780700780E00701C003838001FF0000FC00013227EA018>I<000180000003C0
000003C0000003C0000007E0000007E0000007E000000FF000000CF000000CF000001CF8000018
78000018780000383C0000303C0000303C0000601E0000601E0000601E0000C00F0000C00F0000
C00F0001FFFF8001FFFF8001800780030003C0030003C0030003C0060001E0060001E0060001E0
0E0000F01F0001F0FFC00FFFFFC00FFF20237EA225>65 D<000FE010003FF83000F81C7001E006
7003C003F0078001F00F0000F01E0000F03E0000703C0000707C0000707C000030780000307800
0030F8000030F8000000F8000000F8000000F8000000F8000000F8000000F80000007800003078
0000307C0000307C0000303C0000603E0000601E0000600F0000C0078000C003C0018001E00300
00F80E00003FF800000FE0001C247DA223>67 D<FFFFFFC0FFFFFFC007800FC0078003C0078001
C0078000C0078000E0078000E007800060078060600780606007806060078060000780E0000781
E00007FFE00007FFE0000781E0000780E000078060000780600007806018078060180780001807
80003007800030078000300780003007800070078000F0078001F0078007E0FFFFFFE0FFFFFFE0
1D227EA121>69 D<FFFFFFC0FFFFFFC007800FC0078003C0078001C0078000C0078000E0078000
E00780006007800060078060600780606007806000078060000780E0000781E00007FFE00007FF
E0000781E0000780E0000780600007806000078060000780600007800000078000000780000007
80000007800000078000000780000007800000FFFE0000FFFE00001B227EA120>I<FFFCFFFC07
800780078007800780078007800780078007800780078007800780078007800780078007800780
0780078007800780078007800780078007800780FFFCFFFC0E227EA112>73
D<FFC00003FFFFE00007FF07E00007E007E00007E006F0000DE006F0000DE006F0000DE0067800
19E006780019E006780019E0063C0031E0063C0031E0063C0031E0061E0061E0061E0061E0061E
0061E0060F00C1E0060F00C1E006078181E006078181E006078181E00603C301E00603C301E006
03C301E00601E601E00601E601E00601E601E00600FC01E00600FC01E00600FC01E006007801E0
1F807801E0FFF0783FFFFFF0303FFF28227EA12D>77 D<FF800FFFFFC00FFF07C001F807E00060
07F0006006F000600678006006780060063C0060063E0060061E0060060F0060060F0060060780
600607C0600603C0600601E0600601E0600600F060060078600600786006003C6006003C600600
1E6006000F6006000F60060007E0060007E0060003E0060001E0060001E01F8000E0FFF000E0FF
F0006020227EA125>I<FFFFF000FFFFFC0007803F0007800F8007800780078003C0078003C007
8003E0078003E0078003E0078003E0078003E0078003C0078003C00780078007800F8007803F00
07FFFC0007FFF00007800000078000000780000007800000078000000780000007800000078000
000780000007800000078000000780000007800000FFFC0000FFFC00001B227EA121>80
D<FFFFE00000FFFFF8000007803E000007800F00000780078000078007C000078003E000078003
E000078003E000078003E000078003E000078003E000078007C000078007800007800F00000780
3E000007FFF8000007FFF00000078078000007803C000007801E000007800E000007800F000007
800F000007800F000007800F000007800F800007800F800007800F800007800F818007800FC180
078007C180FFFC03E300FFFC01FE000000007C0021237EA124>82 D<03F0200FFC601C0EE03803
E07001E07001E0E000E0E000E0E00060E00060E00060F00000F000007800007F00003FF0001FFE
000FFF0003FF80003FC00007E00001E00000F00000F0000070C00070C00070C00070C00070E000
60E000E0F000C0F801C0EF0380C7FF0081FC0014247DA21B>I<7FFFFFF87FFFFFF87C0780F870
0780386007801860078018E007801CC007800CC007800CC007800CC007800CC007800C00078000
000780000007800000078000000780000007800000078000000780000007800000078000000780
0000078000000780000007800000078000000780000007800000078000000780000007800003FF
FF0003FFFF001E227EA123>I<0FE0001FF8003C1C003C0E00180700000700000700000F0003FF
000FFF003F07007C0700780700F00700F00718F00718F00F18780F187C3FB83FF3F00FC3C01515
7E9418>97 D<0E0000FE0000FE00001E00000E00000E00000E00000E00000E00000E00000E0000
0E00000E00000E00000E1F800E7FE00FC0F00F00780E00380E003C0E001C0E001E0E001E0E001E
0E001E0E001E0E001E0E001E0E001C0E003C0F00380F80700FC1F00C7FC00C1F0017237FA21B>
I<01FE0007FF000F07801C0780380300780000700000F00000F00000F00000F00000F00000F000
00F000007800007800C03C00C01E01800F030007FE0001F80012157E9416>I<0000E0000FE000
0FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E003F0E007
FEE01F07E03C01E03800E07800E07000E0F000E0F000E0F000E0F000E0F000E0F000E0F000E070
00E07800E03801E03C03E01E0EF00FFCFE03F0FE17237EA21B>I<01FC0007FF000F07801C03C0
3801C07801E07000E0FFFFE0FFFFE0F00000F00000F00000F00000F000007800007800603C0060
1E00C00F838007FF0000FC0013157F9416>I<003C00FE01CF038F038F07000700070007000700
0700070007000700FFF8FFF8070007000700070007000700070007000700070007000700070007
000700070007007FF87FF8102380A20F>I<0000F001F1F807FFB80F1F381E0F001C07003C0780
3C07803C07803C07803C07801C07001E0F000F1E001FFC0019F0001800001800001C00001FFF00
0FFFC01FFFE03801F0700070E00038E00038E00038E000387000707800F01E03C00FFF8001FC00
15217F9518>I<0E0000FE0000FE00001E00000E00000E00000E00000E00000E00000E00000E00
000E00000E00000E00000E1F800E7FC00FC1E00F80F00F00700E00700E00700E00700E00700E00
700E00700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FFFFE7FF18237FA21B
>I<1C001E003E001E001C00000000000000000000000000000000000E00FE00FE001E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC0FFC00A227FA10E>I<01
C003E003E003E001C00000000000000000000000000000000001E00FE00FE001E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060
C0F1C0F1807F003E000B2C82A10F>I<0E0000FE0000FE00001E00000E00000E00000E00000E00
000E00000E00000E00000E00000E00000E00000E0FFC0E0FFC0E07E00E03800E07000E0E000E18
000E30000E78000EF8000F9C000F1E000E0E000E07000E07800E03C00E01C00E01E00E01F0FFE3
FEFFE3FE17237FA21A>I<0E00FE00FE001E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FF
E0FFE00B237FA20E>I<0E1FC07F00FE7FE1FF80FEC0F303C01F807E01E00F003C00E00E003800
E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E0038
00E00E003800E00E003800E00E003800E00E003800E00E003800E0FFE3FF8FFEFFE3FF8FFE2715
7F942A>I<0E1F80FE7FC0FFC1E01F80F00F00700E00700E00700E00700E00700E00700E00700E
00700E00700E00700E00700E00700E00700E00700E0070FFE7FFFFE7FF18157F941B>I<01FC00
07FF000F07801C01C03800E07800F0700070F00078F00078F00078F00078F00078F00078F00078
7000707800F03800E01C01C00F078007FF0001FC0015157F9418>I<0E1F80FE7FE0FFC1F00F00
780E00780E003C0E003C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0F00
780F80700FC1F00E7FC00E1F000E00000E00000E00000E00000E00000E00000E00000E0000FFE0
00FFE000171F7F941B>I<0E3CFEFEFFCF1F8F0F060F000E000E000E000E000E000E000E000E00
0E000E000E000E000E00FFF0FFF010157F9413>114 D<0F883FF87078E038E018E018E018F000
7F003FE01FF001F8003CC01CC01CE01CE01CF018F878DFF08FC00E157E9413>I<060006000600
060006000E000E000E001E003E00FFF8FFF80E000E000E000E000E000E000E000E000E000E000E
0C0E0C0E0C0E0C0E0C0E08071803F001E00E1F7F9E13>I<0E0070FE07F0FE07F01E00F00E0070
0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00F00E01F0
07037803FE7F01F87F18157F941B>I<FFC3FEFFC3FE1E00F80E00600E00600700C00700C00700
C003818003818003C38001C30001C30000E60000E60000E600007C00007C00007C000038000038
0017157F941A>I<FF8FF9FFFF8FF9FF1E01C07C1C03C0380E03E0300E03E0300E066030070670
6007067060070E7060038C30C0038C38C0039C38C001D8198001D81D8001D81D8001F00F8000F0
0F0000F00F0000E007000060060020157F9423>I<FFC3FEFFC3FE1E00F80E00600E00600700C0
0700C00700C003818003818003C38001C30001C30000E60000E60000E600007C00007C00007C00
003800003800003000003000007000006000006000F0C000F1C000F380007F00003E0000171F7F
941A>121 D E /Fs 20 118 df<FFFF80FFFF80FFFF8011037F9016>45
D<FFFFFFE00000FFFFFFFC000007E0007F000003E0000F800003E00007C00003E00001E00003E0
0000F00003E00000780003E000007C0003E000003E0003E000003E0003E000001F0003E000001F
0003E000000F8003E000000F8003E000000FC003E000000FC003E0000007C003E0000007C003E0
000007E003E0000007E003E0000007E003E0000007E003E0000007E003E0000007E003E0000007
E003E0000007E003E0000007E003E0000007E003E0000007E003E0000007C003E0000007C003E0
000007C003E000000FC003E000000F8003E000000F8003E000000F8003E000001F0003E000001F
0003E000003E0003E000007C0003E00000780003E00000F80003E00001F00003E00007E00003E0
000F800007E0007F0000FFFFFFFC0000FFFFFFE000002B317CB033>68 D<FFFF80FFFF8007F000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00007F000FFFF80FFFF8011317DB017>73 D<FFF00000007FF8FFF800
0000FFF807F8000000FF0003F8000000FE00037C000001BE00037C000001BE00037C000001BE00
033E0000033E00033E0000033E00033E0000033E00031F0000063E00031F0000063E00031F0000
063E00030F80000C3E00030F80000C3E00030F80000C3E000307C000183E000307C000183E0003
07C000183E000303E000303E000303E000303E000303E000303E000301F000603E000301F00060
3E000301F000C03E000300F800C03E000300F800C03E0003007C01803E0003007C01803E000300
7C01803E0003003E03003E0003003E03003E0003003E03003E0003001F06003E0003001F06003E
0003001F06003E0003000F8C003E0003000F8C003E0003000F8C003E00030007D8003E00030007
D8003E00030007D8003E00030003F0003E00030003F0003E00030003F0003E00078001E0003E00
0FC001E0007F00FFFC01E00FFFF8FFFC00C00FFFF835317CB03D>77 D<FFFFFFC000FFFFFFF800
07E000FE0003E0001F0003E0000F8003E00007C003E00003E003E00003F003E00001F003E00001
F003E00001F803E00001F803E00001F803E00001F803E00001F803E00001F803E00001F003E000
01F003E00003F003E00003E003E00007C003E0000F8003E0001F0003E000FE0003FFFFF80003FF
FFC00003E000000003E000000003E000000003E000000003E000000003E000000003E000000003
E000000003E000000003E000000003E000000003E000000003E000000003E000000003E0000000
03E000000003E000000003E000000003E000000003E000000007F0000000FFFF800000FFFF8000
0025317CB02D>80 D<007F802001FFE06007C0F8600F001CE01E000FE03C0007E0380003E07800
01E0700001E0700000E0F00000E0F00000E0F0000060F0000060F0000060F8000060F80000007C
0000007E0000003F0000003FC000001FF800000FFF800007FFF80003FFFC0000FFFF00000FFF80
0000FFC000001FE0000007E0000003F0000001F0000000F0000000F8000000F8C0000078C00000
78C0000078C0000078C0000078E0000078E0000070F00000F0F00000E0F80000E0FC0001C0FE00
0380E7800700C1F01E00C07FFC00800FF0001D337CB125>83 D<01FE00000FFFC0001C03E0003C
00F0003E0078003E003C003E001C0008001E0000001E0000001E0000001E0000001E000001FE00
003FFE0001FF1E0007F01E000F801E001F001E003E001E007C001E007C001E00F8001E0CF8001E
0CF8001E0CF8003E0CF8003E0C7C007E0C3E00DF1C1F038FB80FFF07F003F803C01E1F7D9E21>
97 D<003FC000FFF803E01C07801E0F003E1E003E1E003E3C00087C00007C0000780000F80000
F80000F80000F80000F80000F80000F80000F80000F800007C00007C00007C00003E00031E0003
1F00060F800E07C01C03F03800FFE0003F80181F7D9E1D>99 D<000001E000003FE000003FE000
0003E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0
000001E0000001E0000001E0000001E0000001E0000001E0003F81E000FFE1E003E079E007800D
E00F0007E01E0003E01E0001E03C0001E07C0001E07C0001E0780001E0F80001E0F80001E0F800
01E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0780001E07C0001E07C0001E03C
0001E03E0003E01E0007E00F000FE007801DE003E071F001FFE1FF003F01FF20327DB125>I<00
3F800000FFE00003E0F80007803C000F001E001E001E001E000F003C000F007C000F007C000F80
78000780F8000780FFFFFF80FFFFFF80F8000000F8000000F8000000F8000000F8000000F80000
00780000007C0000003C0000003C0001801E0001800F0003000F80060007C00E0001F03C0000FF
F000001FC000191F7E9E1D>I<0003E0001FF8003C3800707C00F07C01E07C01E03803C00003C0
0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C000FFFFC0FFFFC003C0
0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0
0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00007E0
007FFF007FFF0016327FB114>I<000000F0007F03F801FFCF1C03C1FC1C0780F8180F0078001F
007C001E003C003E003E003E003E003E003E003E003E003E003E003E003E003E003E001E003C00
1F007C000F0078000780F0000FC1E0000DFFC0001C7F000018000000180000001C0000001C0000
001E0000000FFFF8000FFFFF0007FFFF800FFFFFC01E0007E0380001F07000007070000078E000
0038E0000038E0000038E0000038E000003870000070780000F03C0001E01E0003C007C01F0001
FFFC00003FE0001E2F7E9F21>I<07000F801F801F800F80070000000000000000000000000000
0000000000000000000780FF80FF800F8007800780078007800780078007800780078007800780
07800780078007800780078007800780078007800780078007800FC0FFF8FFF80D307EAF12>
105 D<0781FE003FC000FF87FF80FFF000FF8E07C1C0F8000F9803E3007C0007B001E6003C0007
E000FC001E0007C000F8001E0007C000F8001E0007C000F8001E00078000F0001E00078000F000
1E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E000780
00F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E
00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000
F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>109
D<0781FE0000FF87FF8000FF8E07C0000F9803E00007B001E00007E000F00007C000F00007C000
F00007C000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F000078000F00007
8000F000078000F000078000F000078000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF80
211F7E9E25>I<001FC00000FFF80001E03C0007800F000F0007801E0003C01E0003C03C0001E0
3C0001E0780000F0780000F0780000F0F80000F8F80000F8F80000F8F80000F8F80000F8F80000
F8F80000F8F80000F8780000F07C0001F03C0001E03C0001E01E0003C01E0003C00F00078007C0
1F0001F07C0000FFF800001FC0001D1F7E9E21>I<0783E0FF8FF8FF9C7C0FB07C07F07C07E038
07C00007C00007C000078000078000078000078000078000078000078000078000078000078000
0780000780000780000780000780000780000780000780000780000FC000FFFE00FFFE00161F7E
9E19>114 D<01FC100FFF301E03F03800F0700070E00070E00030E00030E00030F00030F80000
7E00003FF0001FFF000FFF8003FFE0003FF00003F8000078C0003CC0003CC0001CE0001CE0001C
F0001CF00018F80038FC0070EF01E0C3FFC080FE00161F7E9E1A>I<00C00000C00000C00000C0
0000C00001C00001C00001C00003C00003C00007C0000FC0001FC000FFFFE0FFFFE003C00003C0
0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0
0003C00003C03003C03003C03003C03003C03003C03003C03003C03001E06001E06000F0C0007F
80001F00142C7FAB19>I<078000F000FF801FF000FF801FF0000F8001F000078000F000078000
F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F000078000F00007
8000F000078000F000078001F000078001F000078003F000038007F00003C00EF00001F03CF800
00FFF0FF80003FC0FF80211F7E9E25>I E /Ft 5 85 df<00000000600000000000E000000000
00E00000000001E00000000001F00000000003F00000000003F00000000007F0000000000FF000
0000000FF0000000001BF0000000001BF00000000033F00000000033F00000000063F000000000
63F000000000C3F000000001C3F00000000183F00000000303F00000000303F00000000603F800
00000603F80000000C01F80000000C01F80000001801F80000003801F80000003001F800000060
01F80000006001F8000000C001F8000000C001F80000018001F8000001FFFFF8000003FFFFF800
00070001F80000060001F800000C0001F800000C0001F80000180001FC0000180001FC00003000
00FC0000300000FC0000600000FC0000E00000FC0000C00000FC0001C00000FC0003C00000FC00
0FE00003FC00FFFC003FFFE0FFF8003FFFE02B337CB234>65 D<000FFFFFFC00000FFFFFFF8000
007F000FC000007E0003E000007E0001F000007E0000F800007E00007C0000FC00007C0000FC00
003E0000FC00003E0000FC00003E0001F800001E0001F800001F0001F800001F0001F800001F00
03F000001F0003F000001F0003F000001F0003F000001F0007E000003F0007E000003F0007E000
003F0007E000003F000FC000003E000FC000007E000FC000007E000FC000007E001F8000007C00
1F800000FC001F800000FC001F800000F8003F000001F8003F000001F0003F000003F0003F0000
03E0007E000007E0007E000007C0007E00000F80007E00000F0000FC00001F0000FC00003E0000
FC00007C0000FC0000F80001F80001F00001F80007C00001F8000F800003F8007E0000FFFFFFF8
0000FFFFFFC0000030317BB035>68 D<000FFFFFFFF8000FFFFFFFF800007F0003F800007E0000
F800007E00007800007E00007800007E0000300000FC0000300000FC0000300000FC0000300000
FC0000300001F80000300001F80000300001F80000300001F80000600003F00180600003F00180
000003F00180000003F00180000007E00300000007E00300000007E00700000007E01F0000000F
FFFE0000000FFFFE0000000FC01E0000000FC00E0000001F800C0000001F800C0000001F800C00
00001F800C0000003F00180000003F00180000003F00000000003F00000000007E00000000007E
00000000007E00000000007E0000000000FC0000000000FC0000000000FC0000000000FC000000
0001F80000000001F80000000001F80000000003F800000000FFFFF0000000FFFFF00000002D31
7BB02E>70 D<000FFFFFE000000FFFFFFC0000007F003F0000007E000F8000007E0007C000007E
0003E000007E0003F00000FC0001F00000FC0001F00000FC0001F00000FC0001F00001F80003F0
0001F80003F00001F80003F00001F80003E00003F00007E00003F00007C00003F0000FC00003F0
001F800007E0003F000007E0007C000007E000F8000007E007E000000FFFFF8000000FFFFF0000
000FC00FC000000FC007E000001F8003F000001F8001F000001F8001F800001F8001F800003F00
01F800003F0001F800003F0001F800003F0001F800007E0003F000007E0003F000007E0003F000
007E0003F00000FC0007E00000FC0007E00000FC0007E00000FC0007E01801F80007E03001F800
07E03001F80007E06003F80003E060FFFFE001F1C0FFFFC000FF80000000003E002D327BB033>
82 D<07FFFFFFFFF007FFFFFFFFF00FE007F007F00F8007E001F00E0007E000E00C0007E000E0
1C0007E000E018000FC000E018000FC000E030000FC000C030000FC000C030001F8000C060001F
8000C060001F8000C060001F8000C0C0003F00018000003F00000000003F00000000003F000000
00007E00000000007E00000000007E00000000007E0000000000FC0000000000FC0000000000FC
0000000000FC0000000001F80000000001F80000000001F80000000001F80000000003F0000000
0003F00000000003F00000000003F00000000007E00000000007E00000000007E00000000007E0
000000000FC0000000000FC0000000000FC0000000000FC0000000001F80000000001F80000000
001F80000000003F800000007FFFFF8000007FFFFF8000002C3174B032>84
D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300
TeXDict begin
%%EndSetup
%%Page: 0 1
bop 799 911 a Ft(D)25 b(R)g(A)g(F)g(T)225 1002 y Fs(Do)r(cumen)n(t)20
b(for)i(a)f(Standard)g(Message-P)n(assing)f(In)n(terface)621
1196 y Fr(Message)c(P)o(assing)h(In)o(terface)e(F)l(orum)832
1323 y(Ma)o(y)h(29,)g(1995)77 1381 y(This)h(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 1439 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 1497 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 1555 y(through)f(Esprit)f(pro)s(ject)g(P6643.)p
eop
%%Page: 1 2
bop 166 49 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
106 y(Rep)q(ort)d(do)q(cumen)o(t.)969 2828 y(i)p eop
%%Page: 1 3
bop 75 361 a Fp(Chapter)31 b(1)75 568 y Fo(One)39 b(Sided)e(Comm)m
(unications)75 809 y Fn(1.1)59 b(Intro)r(duction)75 910 y Fq(This)16
b(c)o(hapter)f(in)o(tro)q(duces)h(three)f(\\one-sided")h(comm)o(unication)g
(mec)o(hanisms:)131 1004 y(1.)22 b(Remote-memory-cop)o(y)l(,)16
b(using)h(Put)g(and)g(Get)f(op)q(erations,)g(where)h(data)f(is)h(mo)o(v)o(ed)
f(from)g(the)189 1061 y(memory)h(of)g(one)h(pro)q(cess)f(to)g(the)h(memory)f
(of)g(another)h(pro)q(cess,)g(follo)o(wing)g(a)f(call)i(executed)189
1117 y(b)o(y)c(only)h(one)f(of)g(the)g(t)o(w)o(o)f(pro)q(cesses.)131
1211 y(2.)22 b(Read-Mo)q(dify-W)l(rite)17 b(op)q(erations)e(on)h(remote)e
(memory)h(lo)q(cations,)h(that)f(can)g(b)q(e)i(used)f(to)e(im-)189
1267 y(plemen)o(t)i(global)f(semaphores)h(and)f(similar)h(sync)o(hronization)
g(primitiv)o(es.)131 1361 y(3.)22 b(Comm)o(unicate&call)12
b(calls)h(that)d(in)o(v)o(ok)o(e)i(a)f(call-bac)o(k)h(function)g(when)g(a)f
(comm)o(unication)h(\(Send)189 1418 y(or)j(Receiv)o(e\))h(completes.)22
b(Suc)o(h)16 b(in)o(terface)f(can)h(b)q(e)g(used)g(to)f(implemen)o(t)i(new)e
(comm)o(unication)189 1474 y(functions,)g(in)h(particular)g(to)f(implemen)o
(t)h(the)f(\014rst)g(t)o(w)o(o)f(t)o(yp)q(es)h(of)g(functions.)166
1568 y(The)i(use)h(of)f(put/get)g(primitiv)o(es)h(simpli\014es)i(the)d
(implemen)o(tation)i(of)e(co)q(des)h(where)f(access)h(to)75
1624 y(remote)k(data)f(has)i(a)f(v)o(ery)g(irregular)g(pattern,)i(in)f(time)f
(or)g(space.)42 b(It)22 b(a)o(v)o(oids)g(the)g(o)o(v)o(erhead)g(of)75
1681 y(generating,)d(from)e(a)h(list)g(of)g(requests)g(\(receiv)o(es\),)h
(the)f(list)h(of)e(matc)o(hing)h(sends.)29 b(It)19 b(simpli\014es)h(the)75
1737 y(implemen)o(tation)f(of)f(shared)g(ob)s(ject)f(libraries)j(and)e(the)g
(compilation)i(of)d(con)o(trol)h(parallel)h(co)q(de)g(on)75
1794 y(distributed)g(memory)f(mac)o(hines.)28 b(Read-Mo)q(dify-write)19
b(op)q(erations)f(supp)q(ort)g(e\016cien)o(t)h(implemen-)75
1850 y(tation)e(of)h(lo)q(c)o(ks,)g(semaphores,)g(and)g(similar)h(primitiv)o
(es.)28 b(A)18 b(comm)o(unicate&call)i(in)o(terface)e(allo)o(ws)75
1907 y(one)g(to)e(implemen)o(t)j(new)f(comm)o(unication)g(primitiv)o(es)h
(and)e(pro)o(vide)h(higher-lev)o(el)i(comm)o(unication)75 1963
y(functions,)c(suc)o(h)f(as)g(marshalling/demarshalling)j(of)c(argumen)o(ts)h
(in)h(a)f(remote)f(pro)q(cedure)i(call.)166 2020 y(These)23
b(comm)o(unication)h(mec)o(hanisms)g(are)f(mainly)h(targeted)f(\(lik)o(e)h
(message-passing\))f(to)f(a)75 2076 y(distributed-memory)c(en)o(vironmen)o
(t.)26 b(A)16 b(Put/Get)h(functionalit)o(y)h(can)f(b)q(e)g(implemen)o(ted)i
(purely)f(in)75 2132 y(soft)o(w)o(are,)13 b(on)j(top)f(of)g(message-passing.)
21 b(Put/get)14 b(can)i(b)q(e)g(implemen)o(ted)h(e\016cien)o(tly)l(,)g(ev)o
(en)f(without)75 2189 y(hardw)o(are)h(supp)q(ort)i(to)e(global)i(shared)f
(memory)l(.)29 b(The)18 b(comm)o(unication)h(agen)o(t)e(at)h(eac)o(h)g(no)q
(de)h(can)75 2245 y(service)13 b(Put/Get)e(requests)h(submitted)g(b)o(y)g
(remote)f(pro)q(cesses)i(\(or)e(remote)g(comm)o(unication)h(agen)o(ts\).)75
2302 y(This)18 b(\014ts)g(w)o(ell)h(an)f(arc)o(hitecture)g(where)g(this)g
(agen)o(t)f(executes)i(on)f(a)f(separate)g(comm)o(unication)i(co-)75
2358 y(pro)q(cessor,)e(whic)o(h)h(has)e(access)h(to)g(the)g(no)q(de)g(memory)
l(,)g(suc)o(h)g(as)g(a)f(Meik)o(o)h(or)g(a)f(P)o(aragon.)24
b(Another)75 2415 y(implemen)o(tation)d(st)o(yle)e(will)i(o)q(ccur)f(on)f
(systems)g(where)h(the)f(comm)o(unication)h(agen)o(t)f(can)h(directly)75
2471 y(access)14 b(remote)f(memories,)h(so)g(that)f(Put/Get)g(requests)h(can)
g(\(in)g(some)g(cases\))f(b)q(e)i(directly)g(executed)75 2528
y(b)o(y)20 b(the)g(lo)q(cal)h(agen)o(t.)33 b(Mixed)21 b(implemen)o(tations,)h
(where)e(simple)h(transfers)f(are)f(executed)i(b)o(y)f(the)75
2584 y(lo)q(cal)15 b(agen)o(t)d(directly)l(,)j(and)f(more)f(complex)h
(transfers)f(are)g(mediated)h(b)o(y)g(the)f(remote)g(agen)o(t,)g(are)g(also)
75 2641 y(p)q(ossible.)964 2828 y(1)p eop
%%Page: 2 4
bop 75 -100 a Fq(2)746 b Fm(CHAPTER)15 b(1.)35 b(ONE)16 b(SIDED)f(COMMUNICA)l
(TIONS)166 49 y Fq(The)20 b(prop)q(osal)h(attempts)e(to)h(k)o(eep)h(as)f(m)o
(uc)o(h)g(compatibilit)o(y)i(as)e(p)q(ossible)i(with)f(o)o(v)o(erall)f(MPI)75
106 y(design.)31 b(E.g.,)17 b(a)i(Put)f(or)g(Get)g(op)q(erations)g(\\lo)q
(oks)h(and)f(feels")h(lik)o(e)h(a)e(pair)h(of)f(matc)o(hed)g(Send)i(and)75
162 y(Receiv)o(e)g(calls,)h(except)e(that)f(one)h(call,)h(executed)g(b)o(y)f
(one)g(pro)q(cess,)g(pro)o(vides)h(b)q(oth)f(the)f(send)i(and)75
219 y(receiv)o(e)c(parameters.)166 275 y(Among)f(the)g(op)q(en)h(issues:)143
369 y Fl(\017)23 b Fq(Ho)o(w)d(do)q(es)i(one)g(sync)o(hronize)g(pro)q(ducer)h
(and)e(consumer)h(when)g(Put/Get)e(are)i(used?)40 b(The)189
425 y(curren)o(t)13 b(prop)q(osal)i(supp)q(orts)f(b)q(oth)g(a)f
(\\shared-memory")h(st)o(yle)g(sync)o(hronization,)g(where)h(syn-)189
482 y(c)o(hronization)20 b(is)g(totally)f(separated)g(from)g(data)f
(transfer,)h(and)h(a)f(\\message-passing")g(st)o(yle)189 538
y(sync)o(hronization,)12 b(where)f(the)f(data)g(transfer)g(op)q(eration)h
(sets)f(a)h(request)f(on)h(the)g(target)e(pro)q(cess.)189 595
y(This)j(request)g(can)f(then)i(b)q(e)f(used)g(to)f(test)g(or)h(w)o(ait)f
(for)g(the)h(completion)h(of)e(the)h(comm)o(unication.)143
689 y Fl(\017)23 b Fq(Who)11 b(pro)o(vides)g(the)h(parameters)e(for)h(the)g
(bu\013er)g(at)g(the)g(target)f(pro)q(cess)i(in)g(a)f(Put/Get)f(comm)o(u-)189
745 y(nication?)26 b(The)16 b(curren)o(t)h(prop)q(osal)g(assumes)f(that,)g
(normally)l(,)h(the)g(caller)h(pro)o(vides)f(informa-)189 801
y(tion)11 b(ab)q(out)f(b)q(oth)h(lo)q(cal)h(and)f(remote)f(bu\013ers.)19
b(Ho)o(w)o(ev)o(er,)10 b(supp)q(ort)h(is)g(pro)o(vided)h(for)e(indirection,)
189 858 y(where)i(the)h(caller)g(merely)g(pro)o(vides)g(a)f(p)q(oin)o(ter)h
(to)f(a)g(remote)f(datat)o(yp)q(e)h(handle.)20 b(This,)13 b(coupled)189
914 y(with)i(use)h(of)e(absolute)i(addresses)f(in)h(datat)o(yp)q(es,)f(also)g
(pro)o(vides)g(remote)g(addressing.)143 1008 y Fl(\017)23 b
Fq(Ho)o(w)13 b(m)o(uc)o(h)i(of)e(the)i(remote)e(memory)h(is)h(exp)q(osed)g
(to)f(a)g(remote)f(access?)21 b(The)14 b(initial)j(prop)q(osal)189
1065 y(is)e(that)f(all)h(of)f(the)h(remote)f(memory)g(is)h(exp)q(osed;)g(it)g
(is)g(the)g(user)g(resp)q(onsibilit)o(y)i(not)d(to)g(access)189
1121 y(parts)c(whic)o(h)i(should)g(not)f(b)q(e)h(remotely)f(accessed.)20
b(W)l(e)11 b(discuss)h(some)f(alternativ)o(e)g(mec)o(hanisms)189
1178 y(to)j(restrict)h(access.)75 1321 y Fn(1.2)59 b(Put/Get)75
1424 y Fk(1.2.1)49 b(Creation)17 b(of)f(comm)n(unication)f(requests)75
1604 y Fj(MPI)p 160 1604 14 2 v 16 w(T)l(ARGET)p 350 1604 V
17 w(INIT\(request\))117 1681 y Fi(OUT)108 b Fj(request)452
b Fi(request)16 b(\(handle\))75 1806 y Fh(int)23 b(MPI)p 245
1806 15 2 v 17 w(Target)p 406 1806 V 17 w(init\(MPI)p 615 1806
V 16 w(Request)g(*request\))75 1892 y(MPI)p 150 1892 V 17 w(TARGET)p
311 1892 V 16 w(INIT\(REQUEST,)f(IERROR\))170 1949 y(INTEGER)h(REQUEST,)g
(IERROR)166 2035 y Fq(Allo)q(cates)14 b(a)f(request)g(ob)s(ject)g(that)g(can)
g(b)q(e)h(used)g(for)f(testing)g(on)g(a)g(target)f(pro)q(cess)i(the)f(status)
f(of)75 2092 y(put/get)h(op)q(erations)h(that)f(w)o(ere)h(initiated)h(b)o(y)f
(a)g(\(p)q(ossibly\))g(di\013eren)o(t)g(origin)h(pro)q(cess.)20
b(This)14 b(request)75 2148 y(can)k(b)q(e)g(used)g(in)g(MPI)g(T)l(est)f(and)g
(W)l(ait)h(calls.)28 b(The)17 b(request)h(is)g(p)q(ersisten)o(t:)25
b(it)17 b(is)h(\\set")f(b)o(y)h(remote)75 2205 y(put/get)d(op)q(erations)h
(that)e(use)i(it)g(as)f(their)h Fj(ta)o(rget)p 967 2205 14
2 v 17 w(request)h Fq(argumen)o(t.)j(It)15 b(is)i(\\unset")e(b)o(y)g(lo)q
(cal)i(calls)75 2261 y(to)e(W)l(ait)g(or)f(T)l(est.)20 b(It)15
b(is)h(freed)f(b)o(y)h(a)e(call)j(to)d Fj(MPI)p 947 2261 V
16 w(REQUEST)p 1166 2261 V 18 w(FREE)p Fq(.)166 2400 y Fg(Discussion:)44
b Fi(If)16 b(MPI-2)g(incorp)q(orates)i(the)f(prop)q(osal)f(for)g(de\014ning)g
(new)h(request)h(classes,)g(then)f(this)75 2457 y(function)d(ma)o(y)e(not)h
(b)q(e)i(required.)1967 46 y Ff(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
bop 75 -100 a Fm(1.2.)34 b(PUT/GET)1450 b Fq(3)75 49 y Fk(1.2.2)49
b(Extensions)16 b(to)h(the)e(set)g(of)i(p)o(rede\014ned)e(data)h(t)o(yp)q(es)
75 135 y Fq(The)f(set)f(of)g(basic)h(datat)o(yp)q(es)f(that)g(can)h(b)q(e)g
(used)g(in)h(message)e(passing)h(calls)g(is)g(extended)h(to)e(include)75
229 y Fe(MPI)p 184 229 16 2 v 18 w(AINT)22 b Fq(Datat)o(yp)q(e)14
b(for)h(an)g(in)o(teger)h(the)f(size)h(of)f(a)g(p)q(oin)o(ter.)75
323 y Fe(MPI)p 184 323 V 18 w(REQUEST)24 b Fq(Request)16 b(handle)75
417 y Fe(MPI)p 184 417 V 18 w(D)o(A)l(T)l(A)l(TYPE)21 b Fq(Datat)o(yp)q(e)14
b(handle)75 538 y Fk(1.2.3)49 b(Remote)14 b(datat)o(yp)q(e)75
624 y Fq(The)h(set)g(of)g(datat)o(yp)q(e)g(constructors)f(is)i(extended)g(to)
f(include)i(the)e(follo)o(wing.)75 775 y Fj(MPI)p 160 775 14
2 v 16 w(TYPE)p 293 775 V 17 w(REMOTE\(remotet)o(yp)q(e,)e(newt)o(yp)q(e\))
117 852 y Fi(IN)155 b Fj(remotet)o(yp)q(e)373 b Fi(remote)14
b(datat)o(yp)q(e)g(\(handle\))117 927 y(OUT)108 b Fj(newt)o(yp)q(e)433
b Fi(new)15 b(lo)q(cal)e(datat)o(yp)q(e)h(\(handle\))75 1052
y Fh(int)23 b(MPI)p 245 1052 15 2 v 17 w(Type)p 358 1052 V
17 w(remote\(MPI)p 615 1052 V 16 w(Datatype)f(remotetype,)h(MPI)p
1204 1052 V 17 w(Datatype)f(newtype\))75 1138 y(MPI)p 150 1138
V 17 w(TYPE)p 263 1138 V 16 w(REMOTE\(REMOTETYPE,)g(NEWTYPE,)h(IERR\))170
1195 y(INTEGER)g(REMOTETYPE,)g(NEWTYPE,)f(IERROR)166 1281 y
Fq(Encapsulates)e(a)f(remote)g(t)o(yp)q(e)h(handle)h(in)o(to)f(a)f(lo)q(cal)i
(datat)o(yp)q(e)e(ob)s(ject.)32 b Fj(remotet)o(yp)q(e)18 b
Fq(should)75 1338 y(b)q(e)g(a)g(handle)h(to)e(a)g(t)o(yp)q(e)h(ob)s(ject,)f
(either)h(lo)q(cal)h(or)e(remote)g(\(in)h(the)g(later)g(case,)g(it)g(m)o(ust)
f(ha)o(v)o(e)g(b)q(een)75 1394 y(receiv)o(ed)e(in)g(a)f(previous)g(comm)o
(unication,)h(using)g(datat)o(yp)q(e)e Fh(MPI)p 1227 1394 V
17 w(DATATYPE)p Fq(\).)f(A)i(handle)h(to)e(a)h(newly)75 1451
y(created)h(lo)q(cal)i(datat)o(yp)q(e)d(is)i(returned)g(in)g
Fj(newt)o(yp)q(e)p Fq(.)166 1507 y(This)i(newly)g(created)g(datat)o(yp)q(e)f
(cannot)g(b)q(e)i(used)f(recursiv)o(ely)h(in)f(datat)o(yp)q(e)f
(constructors.)26 b(It)75 1563 y(can)12 b(only)g(b)q(e)g(used)g(in)g(put/get)
f(comm)o(unication)i(calls,)f(in)h(order)e(to)g(sp)q(ecify)i(a)e(target)f
(comm)o(unication)75 1620 y(bu\013er)16 b(at)f(the)h(pro)q(cess)h(where)f
Fj(remotet)o(yp)q(e)e Fq(where)i(de\014ned.)24 b(Note)16 b(that)f
Fj(remotet)o(yp)q(e)f Fq(ma)o(y)i(b)q(e)g(lo)q(cal,)75 1676
y(when)g(the)f(put/get)g(call)h(is)g(used)f(b)o(y)h(a)e(pro)q(cess)i(to)e
(comm)o(unicate)i(with)g(itself.)166 1809 y Fg(Discussion:)39
b Fi(It)16 b(is)f(in)o(triguing)f(to)h(relax)g(the)h(last)f(constrain)o(t.)22
b(One)16 b(could)f(extend)i(the)f(de\014nition)f(of)75 1859
y(remotet)o(yp)q(e)e(so)g(that)g(it)g(also)f(con)o(tains)h(the)g(rank)g(of)f
(the)i(remote)e(pro)q(cess,)j(and)d(allo)o(w)g(one)h(to)g(apply)f(datat)o(yp)
q(e)75 1908 y(constructors)g(on)d(it.)16 b(Then,)11 b(one)f(put/get)g(comm)o
(unicati)o(on)d(call)i(could)g(scatter/gather)i(data)f(from/to)d(m)o(ultiple)
75 1958 y(pro)q(cesses.)21 b(Implemen)o(tation)10 b(b)q(ecomes)15
b(somewhat)e(more)f(complex.)166 2015 y(Do)h(w)o(e)h(w)o(an)o(t)g(to)g
(mandate)e(an)i(MPI)p 757 2015 13 2 v 15 w(COMMIT)g(call)f(here)i(to)q(o?)-32
46 y Ff(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
bop 75 -100 a Fq(4)746 b Fm(CHAPTER)15 b(1.)35 b(ONE)16 b(SIDED)f(COMMUNICA)l
(TIONS)75 49 y Fk(1.2.4)49 b(Non-blo)q(cking)19 b(and)d(blo)q(cking)i(puts)75
230 y Fj(MPI)p 160 230 14 2 v 16 w(IPUT\(o)o(rigin)p 404 230
V 15 w(addr,)23 b(count,)h(o)o(rigin)p 787 230 V 16 w(datat)o(yp)q(e,)g(o)o
(rigin)p 1109 230 V 15 w(request,)h(dest,)g(comm)m(,)20 b(ta)o(rget)p
1674 230 V 16 w(addr,)j(ta)o(r-)75 286 y(get)p 137 286 V 17
w(datat)o(yp)q(e,)16 b(ta)o(rget)p 458 286 V 16 w(request\))117
363 y Fi(IN)155 b Fj(o)o(rigin)p 427 363 V 16 w(addr)381 b
Fi(address)15 b(of)f(origin)e(bu\013er)j(\(c)o(hoice\))117
436 y(IN)155 b Fj(count)482 b Fi(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f(sen)
o(t)i(\(in)o(teger\))117 508 y(IN)155 b Fj(o)o(rigin)p 427
508 V 16 w(datat)o(yp)q(e)302 b Fi(datat)o(yp)q(e)14 b(of)g(elemen)o(ts)f
(sen)o(t)i(\(handle\))117 580 y(OUT)108 b Fj(o)o(rigin)p 427
580 V 16 w(request)330 b Fi(request)16 b(at)d(origing)g(pro)q(cess)j
(\(handle\))117 653 y(IN)155 b Fj(dest)511 b Fi(rank)14 b(of)f(destination)h
(\(in)o(teger\))117 725 y(IN)155 b Fj(com)505 b Fi(comm)o(unicator)11
b(used)k(for)f(comm)o(unicati)o(on)d(\(handle\))117 798 y(OUT)108
b Fj(ta)o(rget)p 433 798 V 17 w(addr)374 b Fi(address)15 b(of)f(destination)f
(bu\013er)i(\(c)o(hoice\))117 870 y(IN)155 b Fj(ta)o(rget)p
433 870 V 17 w(datat)o(yp)q(e)295 b Fi(datat)o(yp)q(e)14 b(used)h(for)f
(receiving)g(\(handle\))117 942 y(OUT)108 b Fj(ta)o(rget)p
433 942 V 17 w(request)323 b Fi(request)16 b(at)d(target)i(pro)q(cess)g
(\(handle\))75 1067 y Fh(int)47 b(int)24 b(MPI)p 365 1067 15
2 v 17 w(iput\(void)e(*origin)p 788 1067 V 16 w(addr,)i(int)f(count,)g(MPI)p
1282 1067 V 17 w(Datatype)393 1123 y(origin)p 540 1123 V 17
w(datatype,)f(MPI)p 867 1123 V 17 w(request)h(*origin)p 1243
1123 V 16 w(request,)g(int)g(dest,)393 1180 y(MPI)p 468 1180
V 17 w(Comm)g(comm,)g(void)h(*target)p 1035 1180 V 16 w(addr,)f(MPI)p
1266 1180 V 17 w(Datatype)g(target)p 1642 1180 V 16 w(datatype,)393
1236 y(MPI)p 468 1236 V 17 w(request)g(*target)p 844 1236 V
16 w(request\))75 1323 y(MPI)p 150 1323 V 17 w(IPUT\(ORIGIN)p
431 1323 V 15 w(ADDR,)h(COUNT,)f(ORIGIN)p 901 1323 V 16 w(DATATYPE,)g(ORIGIN)
p 1300 1323 V 16 w(REQUEST,)g(DEST,)g(COMM,)393 1379 y(TARGET)p
540 1379 V 17 w(ADDR,)g(TARGET)p 844 1379 V 16 w(DATATYPE,)g(TARGET)p
1243 1379 V 16 w(REQUEST,)g(IERROR\))170 1436 y(<type>)g(ORIGIN)p
484 1436 V 17 w(ADDR\(*\),)g(TARGET)p 860 1436 V 16 w(ADDR\(*\))170
1492 y(INTEGER)g(COUNT,)g(ORIGIN)p 675 1492 V 17 w(DATATYPE,)f(ORIGIN)p
1074 1492 V 17 w(REQUEST,)h(DEST,)g(COMM,)170 1549 y(TARGET)p
317 1549 V 17 w(DATATYPE,)f(TARGET)p 716 1549 V 17 w(REQUEST,)h(IERROR\))166
1635 y Fq(T)l(ransfers)12 b(data)g(from)f(the)i(comm)o(unication)g(bu\013er)g
(sp)q(eci\014ed)h(at)e(teh)h(origin)g(b)o(y)f(the)h(parameters)75
1691 y Fj(o)o(rigin)p 184 1691 14 2 v 15 w(addr)p Fq(,)h Fj(count)h
Fq(and)e Fj(o)o(rigin)p 622 1691 V 16 w(datat)o(yp)q(e)i Fq(to)e(the)g
(target)f(pro)q(cess)i(sp)q(eci\014ed)i(b)o(y)d(the)h Fj(comm)m
Fq(,)c Fj(dest)15 b Fq(pair.)75 1748 y(The)g(data)g(are)g(written)g(in)o(to)g
(the)g(target)f(bu\013er)h(the)g(consists)g(of)g(con)o(tiguous)g(copies)h(of)
f Fj(ta)o(rget)p 1765 1748 V 16 w(addr)p Fq(,)75 1804 y(starting)g(ad)g
(address)g Fj(ta)o(rget)p 585 1804 V 16 w(datat)o(yp)q(e)p
Fq(.)166 1943 y Fg(Discussion:)33 b Fi(The)13 b(list)f(of)h(parameters)f(is)h
(as)g(for)f(a)h(send/receiv)o(e)i(pair,)d(except)i(that)f(no)g(receiv)o(e)h
(coun)o(t)75 2000 y(is)g(pro)o(vided.)k(The)c(reason)g(is)g(that)g(this)g
(coun)o(t)g(can)g(b)q(e)h(deduced)g(from)d(the)j(send)g(coun)o(t.)166
2139 y Fq(The)i Fj(ta)o(rget)p 376 2139 V 16 w(datat)o(yp)q(e)h
Fq(argumen)o(t)d(is)i(a)f(handle)i(to)e(a)g(lo)q(cal)h(datat)o(yp)q(e)f(ob)s
(ject.)23 b(If)17 b(this)f(datat)o(yp)q(e)75 2195 y(ob)s(ject)d(w)o(as)g
(created)h(b)o(y)f(a)g(call)i(to)e Fj(MPI)p 773 2195 V 16 w(TYPE)p
906 2195 V 17 w(REMOTE)h Fq(then)g(it)g(should)h(encapsulate)f(a)g(handle)h
(to)75 2252 y(a)i(datat)o(yp)q(e)f(ob)s(ject)h(that)f(w)o(as)g(de\014ned)j
(at)d(the)h(target)f(pro)q(cess.)26 b(Otherwise,)18 b(it)f(should)h(b)q(e)g
(a)e(basic)75 2308 y(datat)o(yp)q(e,)e(or)h(a)g(lo)q(cally)i(de\014ned)f
(datat)o(yp)q(e)f(that)f(do)q(es)i(not)f(use)g(absolute)h(addresses.)166
2365 y(Let)22 b Fj(remt)o(yp)q(e)d Fq(b)q(e)k(equal)f(to)f(the)h(remote)f
(datat)o(yp)q(e)g(encapsulated)i(in)f Fh(target)p 1608 2365
15 2 v 17 w(datatype)p Fq(,)f(if)75 2421 y(this)e(w)o(as)f(created)g(b)o(y)h
(a)f(call)i(to)d Fj(MPI)p 758 2421 14 2 v 16 w(TYPE)p 891 2421
V 17 w(REMOTE)p Fq(,)i(or)f(to)g Fj(ta)o(rget)p 1357 2421 V
16 w(datat)o(yp)q(e)p Fq(,)j(otherwise.)30 b(The)75 2478 y(outcome)24
b(is)g(as)g(if)h(the)f(origin)h(pro)q(cess)f(executed)h(a)f(non)o(blo)q(c)o
(king)i(send)e(op)q(eration)h(with)f(argu-)75 2534 y(men)o(ts)g
Fh(origin)p 364 2534 15 2 v 16 w(addr,)f(origin)p 667 2534
V 17 w(datatype,)f(count,)h(dest,)g(tag,)h(comm,)f(request)p
Fq(,)i(for)e(some)75 2591 y Fh(tag)17 b Fq(v)m(alue,)i(and)f(the)g(receiving)
h(pro)q(cess)f(executed)g(a)f(non)o(blo)q(c)o(king)i(receiv)o(e)g(op)q
(eration)e(with)h(argu-)75 2647 y(men)o(ts)13 b Fh(target)p
353 2647 V 16 w(address,)23 b(maxint,)g(remtype,)f(source,)h(tag,)h(comm,)f
(request)p Fq(,)12 b(for)g(the)h(same)75 2704 y Fh(tag)i Fq(v)m(alue,)h(and)f
Fh(source)g Fq(set)f(to)h(the)g(rank)g(of)g(the)g(origin)h(pro)q(cess.)1967
46 y Ff(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
bop 75 -100 a Fm(1.2.)34 b(PUT/GET)1450 b Fq(5)166 49 y(The)12
b Fj(ta)o(rget)p 371 49 14 2 v 16 w(request)i Fq(parameter)d(is)h(either)h
Fd(MPI)p 992 49 13 2 v 14 w(REQUEST)p 1194 49 V 14 w(NULL)f
Fq(or)g(a)f(handle)i(to)e(a)h(request)g(that)75 106 y(w)o(as)f(created)i(at)e
(the)i(target)e(pro)q(cess)h(using)h Fj(MPI)p 931 106 14 2
v 16 w(T)l(ARGET)p 1121 106 V 18 w(INIT)p Fq(,)e(and)h(comm)o(unicated)h(to)f
(the)g(origin)75 162 y(pro)q(cess)17 b(using)g(some)f(earlier)h(comm)o
(unication)h(op)q(eration)e(\(with)h(datat)o(yp)q(e)f Fj(MPI)p
1533 162 V 15 w(REQUEST)p Fq(\).)i(The)75 219 y(origin)h(pro)q(cess)f(is)g
(not)g(p)q(ermitted)h(to)e(c)o(hange)h(the)g Fj(ta)o(rget)p
1121 219 V 16 w(request)i Fq(parameter)d(or)h(use)g(it)g(an)o(y)g(MPI)75
275 y(call)e(other)f(than)g(put/get)g(calls.)21 b(\(The)15
b(origin)h(request)f(need)h(not)f(b)q(e)h(preallo)q(cated.\))166
332 y(The)f(op)q(eration)f(completes)i(at)e(the)g(origin)h(after)f(the)h
(data)f(ha)o(v)o(e)g(b)q(een)h(copied)h(out.)j(The)c(origin)75
388 y(pro)q(cess)g(v)m(an)h(w)o(ait)f(or)f(test)h(for)g(completion)h(using)g
(the)f(origin)h(request.)166 444 y(The)i(op)q(eration)h(completes)g(at)e(the)
h(target)f(after)h(the)g(data)f(ha)o(v)o(e)h(b)q(een)i(copied)f(in)g(the)f
(target)75 501 y(pro)q(cess)e(memory)l(.)j(If)d Fj(remo)o(te)p
605 501 V 14 w(request)h(=)f(MPI)p 904 501 V 16 w(REQUEST)p
1123 501 V 18 w(NULL)f Fq(then)g(no)g(information)h(is)g(directly)75
557 y(pro)o(vided)f(of)f(remote)g(completion)i(\(the)e(sync)o(hronization)h
(mec)o(hanisms)g(describ)q(ed)i(in)e(Sec)g(1.2.8)e(can)75 614
y(b)q(e)k(used)g(to)f(test)g(for)g(remote)f(completion\).)25
b(Otherwise,)17 b(the)f(target)g(pro)q(cess)g(can)h(test)f(or)g(w)o(ait)g
(for)75 670 y(completion)g(using)g(the)g(target)e(request.)166
727 y(It)h(is)h(erroneous)g(to)f(issue)h(a)f Fj(IPUT)h Fq(call)g(with)g(a)f
(nonn)o(ull)j(target)c(request)h(argumen)o(t)g(b)q(efore)h(the)75
783 y(target)e(request)h(w)o(as)g(reset)g(b)o(y)g(a)g(call)h(to)e(W)l(ait)i
(or)e(T)l(est.)166 916 y Fg(Discussion:)47 b Fi(The)18 b(alternativ)o(e)f(to)
g(the)h(last)f(statemen)o(t)g(is)g(to)g(allo)o(w)f(suc)o(h)h(call,)g(in)g
(whic)o(h)g(case)h(the)75 965 y(target)f(pro)q(cess)i(will)d(not)h(b)q(e)g(a)
o(w)o(are)g(that)g(t)o(w)o(o)g(sim)o(ultaneous)e(Puts)j(o)q(ccurred.)29
b(I)17 b(am)e(not)i(sure)h(this)f(c)o(hoice)75 1015 y(mak)o(es)12
b(sense:)20 b(If)12 b(the)i(program)e(uses)j(an)e(alternativ)o(e)g(sync)o
(hronization)g(mec)o(hanism)e(to)i(a)o(v)o(oid)f(write)i(on)f(write)75
1065 y(con\015icts,)h(then)h(the)f(Put)g(should)g(use)h(a)e(n)o(ull)g(remote)
h(request)h(argumen)o(t.)i(If)c(it)h(uses)h(the)f(remote)g(request)h(for)75
1115 y(sync)o(hronization,)e(then)i(write)f(on)g(write)g(con\015icts)h
(should)e(b)q(e)i(detected.)166 1171 y(Another)e(p)q(ossible)f(c)o(hoice)g
(is)g(that)g(the)h(The)f Fd(IPUT)f Fi(call)g(is)h(blo)q(c)o(k)o(ed)g(un)o
(til)f(the)i(remote)e(request)j(is)e(cleared.)75 1228 y(In)19
b(fact,)g(to)g(pro)o(vide)f(full)g(con)o(v)o(enience)i(in)e(a)h(pro)q
(ducer-consumer)h(proto)q(col,)f(one)g(w)o(ould)f(lik)o(e)g(the)h(remote)75
1284 y(request)c(to)f(b)q(e)g(a)g(semaphore)f(that)h(can)g(b)q(e)g(tested)h
(\(to)f(c)o(hec)o(k)g(that)g(data)g(arriv)o(ed\))f(and)h(then)g(can)g(b)q(e)h
(cleared,)75 1341 y(to)f(indicate)g(that)g(new)h(data)f(can)g(b)q(e)h(sen)o
(t.)20 b(But,)15 b(then)f(w)o(e)h(migh)o(t)d(as)i(w)o(ell)g(use)h(non)o(blo)q
(c)o(king)e(receiv)o(es)j(\(\\clear)75 1397 y(semaphore")d(is)h(equiv)n(alen)
o(t)f(to)h(p)q(osting)g(a)f(new)i(receiv)o(e\).)166 1619 y
Fg(Discussion:)42 b Fi(A)16 b(p)q(ossible)g(design)g(c)o(hoice)h(is)f(to)f(a)
o(v)o(oid)g(altogether)h(the)h(use)f(of)g(remote)f(requests)j(and)75
1675 y(alw)o(a)o(ys)f(separate)i(comm)o(unicati)o(on)c(from)h(sync)o
(hronization.)30 b(In)17 b(this)h(case,)i(one)e(do)q(es)g(not)g(need)g(to)g
(b)q(other)75 1732 y(with)c(remote)f(requests)j(in)d(Put/Get)i(calls,)e(and)g
Fd(MPI)p 948 1732 13 2 v 15 w(T)m(ARGET)p 1124 1732 V 14 w(INIT)g
Fi(is)h(sup)q(er\015uous.)166 1954 y Fg(Discussion:)48 b Fi(The)18
b(curren)o(t)h(design)f(assumes)f(that)h(an)o(y)f(part)g(of)g(the)h(target)g
(pro)q(cess)i(memory)15 b(can)75 2010 y(b)q(e)i(accessed)j(b)o(y)c(remote)h
(Put/Get)g(op)q(erations.)27 b(An)17 b(alternativ)o(e)f(design)h(is)g(to)g
(explicitly)e(exp)q(ose)j(parts)g(of)75 2067 y(the)j(target)f(memory)e(to)i
(Put/Get)g(op)q(erations.)37 b(One)21 b(c)o(hoice)f(w)o(ould)f(b)q(e)i(to)f
(use)h(a)f Fd(MPI)p 1583 2067 V 14 w(RMC)p 1687 2067 V 15 w(INIT\(bu\013,)75
2123 y(count,)14 b(datat)o(yp)q(e,)g(comm)n(,)c(...,)h(new)o(comm)n(\))g
Fi(collectiv)o(e)i(call)g(that)g(w)o(ould)g(allo)o(w)f(eac)o(h)i(pro)q(cess)h
(to)e(exp)q(ose)i(a)e(lo)q(cal)75 2180 y(comm)o(unication)e(bu\013er)k
(starting)f(at)g(address)i Fd(bu\013)f Fi(and)f(consisting)g(of)g
Fd(count)h Fi(copies)f(of)g Fd(datat)o(yp)q(e)i Fi(for)d(remote)75
2236 y(accesses.)21 b(The)15 b(information)c(ma)o(y)h(b)q(e)j(cac)o(hed)g
(with)f Fd(new)o(comm)n Fi(.)i(With)d(this)h(approac)o(h,)g(one)g(ma)o(y)f
(reduce)i(the)75 2292 y(n)o(um)o(b)q(er)f(of)f(argumen)o(ts)h(used)h(in)e
(Put/Get)i(calls.)k(E.g.,)13 b(the)h(remote)g(request)i(could)e(b)q(e)h(sp)q
(eci\014ed)h(in)d(the)i(Init)75 2349 y(call,)e(rather)h(than)g(b)o(y)f(the)i
(Put/Get)f(calls;)f(the)h(remote)f(address)i(could)f(b)q(e)g(assumed)f(to)h
(b)q(e)g(that)g(sp)q(eci\014ed)h(in)75 2405 y(the)f(Init)g(call,)f(and)g
(only)g(displacemen)o(ts)h(need)h(b)q(e)f(pro)o(vided)g(in)g(the)g(Put/Get)g
(call;)f(etc.)166 2627 y Fg(Discussion:)31 b Fi(Can)11 b(the)g(same)g(comm)o
(unicator)d(used)k(b)q(oth)f(for)g(put/get)g(and)g(for)g(regular)g(message)g
(pass-)75 2684 y(ing?)18 b(An)c(a\016rmativ)o(e)d(answ)o(er)k(simpli\014es)d
(life)h(to)h(the)h(programmer)c(\(no)j(need)h(to)f(duplicate)g(comm)o
(unicators,)-32 46 y Ff(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
bop 75 -100 a Fq(6)746 b Fm(CHAPTER)15 b(1.)35 b(ONE)16 b(SIDED)f(COMMUNICA)l
(TIONS)75 49 y Fi(and)f(ma)o(y)e(require)i(a)g(hidden)g(comm)o(unication)c
(replication)k(in)f(the)i(implemen)o(tati)o(on.)189 238 y Fc(A)n(dvic)n(e)i
(to)h(implementors.)50 b Fq(The)18 b(design)g(en)o(tails)f(no)g(c)o(hange)g
(in)h(curren)o(t)f(MPI)g(and)g(curren)o(t)189 295 y(datat)o(yp)q(es,)f
(except)i(p)q(ossibly)g(a)f(new)g(\015ag)g(in)h(datat)o(yp)q(es)e(ob)s
(jects.)25 b(It)17 b(requires)h(an)f(extension)189 351 y(to)d(the)h(datat)o
(yp)q(e)g(ob)s(ject)g(to)f(accommo)q(date)h(remote)g(datat)o(yp)q(e)f
(handles.)189 426 y(Consider)h(the)h(follo)o(wing)g(t)o(w)o(o)d(cases:)189
483 y(\(1\))i Fj(ta)o(rget)p 378 483 14 2 v 16 w(datat)o(yp)q(e)j
Fq(is)f(a)f(basic)h(datat)o(yp)q(e)f(of)f(a)h(lo)q(cally)i(de\014ned)g(datat)
o(yp)q(e.)23 b(Then,)16 b(the)h(lo)q(cal)189 539 y(co)q(de)f(that)f(implemen)
o(ts)i(Put)f(has)f(to)g(create)h(a)f(\\\015attened")h(represen)o(tation)f(of)
h(the)f(datat)o(yp)q(e)189 596 y(and)21 b(transfer)f(it)h(to)f(the)h(target)f
(pro)q(cess.)37 b(The)21 b(put)h(handler)g(at)e(the)h(target)f(pro)q(cess)h
(uses)189 652 y(this)16 b(\015attened)f(datat)o(yp)q(e)g(to)g(access)g(the)h
(remote)f(memory)l(.)20 b(On)c(man)o(y)f(implemen)o(tations)i(the)189
709 y(in)o(ternal)g(represen)o(tation)g(of)f(committed)h(datat)o(yp)q(es)f
(can)g(b)q(e)i(used)f(as)f(the)h(\\\015attened")f(t)o(yp)q(e,)189
765 y(and)h(can)g(b)q(e)g(directly)h(used)g(at)e(the)h(remote)f(no)q(de)i(to)
e(access)h(the)g(data.)24 b(I.e.,)17 b(if)g(the)g(Put)g(call)189
821 y(is)f(la)o(y)o(ered)f(on)h(top)f(of)g(curren)o(t)g(MPI,)g(then)h
(additional)h(datat)o(yp)q(e)e(\\\015atten")g(and)g(\\un\015atten")189
878 y(calls)h(are)e(needed;)i(if)g(it)f(is)h(la)o(y)o(ered)f(on)g(top)g(of)f
(the)h(in)o(ternals)h(of)f(MPI,)f(then)i(no)f(suc)o(h)g(calls)h(are)189
934 y(lik)o(ely)k(needed.)33 b(The)20 b(lo)q(cal)g(call)g(can)f(recognize)h
(the)f(simple)i(datat)o(yp)q(es)d(that)h(map)g(directly)189
991 y(on)c(put/get)g(h/w,)g(on)g(systems)g(that)g(ha)o(v)o(e)g(suc)o(h.)20
b(One)c(could)h(also)e(impro)o(v)o(e)g(p)q(erformance)h(b)o(y)189
1047 y(cac)o(hing)g(datat)o(yp)q(es)e(at)h(the)g(target)f(no)q(de.)189
1104 y(\(2\))d Fj(ta)o(rget)p 374 1104 V 16 w(datat)o(yp)q(e)j
Fq(w)o(as)d(created)i(b)o(y)f(a)g(call)h(to)f Fj(MPI)p 1118
1104 V 15 w(TYPE)p 1250 1104 V 17 w(REMOTE)p Fq(.)h(Then,)g(the)f(lo)q(cal)h
(co)q(de)189 1160 y(will)k(extract)e(the)h(remote)f(handle)i(and)f(pass)g(it)
g(to)f(the)h(target)f(pro)q(cess.)22 b(The)16 b(put)g(handler)h(at)189
1217 y(the)12 b(target)f(pro)q(cess)i(uses)g(the)f(datat)o(yp)q(e)g(ob)s
(ject)g(indicated)i(b)o(y)e(this)h(handle)h(to)e(access)g(the)h(data)189
1273 y(in)18 b(its)f(memory)l(.)26 b(The)17 b(call)h(will)h(not)e(normally)h
(map)f(in)o(to)g(put/get)g(hardw)o(are)f(\(since)i(it)g(uses)189
1330 y(a)d(data)g(la)o(y)o(out)g(description)j(that)d(is)h(stored)g(at)f(the)
h(target)e(pro)q(cess\).)22 b(One)16 b(could,)h(or)e(course,)189
1386 y(think)h(of)e(optimizations)i(to)f(do)g(so.)20 b(\()p
Fc(End)15 b(of)i(advic)n(e)f(to)g(implementors.)p Fq(\))75
1587 y Fj(MPI)p 160 1587 V 16 w(PUT\(o)o(rigin)p 391 1587 V
15 w(addr,)k(count,)h(o)o(rigin)p 768 1587 V 16 w(datat)o(yp)q(e,)g(dest,)g
(comm)m(,)c(ta)o(rget)p 1351 1587 V 16 w(addr,)k(ta)o(rget)p
1597 1587 V 16 w(datat)o(yp)q(e,)g(ta)o(r-)75 1643 y(get)p
137 1643 V 17 w(request\))117 1720 y Fi(IN)155 b Fj(o)o(rigin)p
427 1720 V 16 w(addr)381 b Fi(address)15 b(of)f(origin)e(bu\013er)j(\(c)o
(hoice\))117 1796 y(IN)155 b Fj(count)482 b Fi(n)o(um)o(b)q(er)13
b(of)h(elemen)o(ts)f(sen)o(t)i(\(in)o(teger\))117 1871 y(IN)155
b Fj(o)o(rigin)p 427 1871 V 16 w(datat)o(yp)q(e)302 b Fi(datat)o(yp)q(e)14
b(of)g(elemen)o(ts)f(sen)o(t)i(\(handle\))117 1946 y(IN)155
b Fj(dest)511 b Fi(rank)14 b(of)f(destination)h(\(in)o(teger\))117
2021 y(IN)155 b Fj(com)505 b Fi(comm)o(unicator)11 b(used)k(for)f(comm)o
(unicati)o(on)d(\(handle\))117 2096 y(OUT)108 b Fj(ta)o(rget)p
433 2096 V 17 w(addr)374 b Fi(address)15 b(of)f(destination)f(bu\013er)i(\(c)
o(hoice\))117 2171 y(IN)155 b Fj(ta)o(rget)p 433 2171 V 17
w(datat)o(yp)q(e)295 b Fi(datat)o(yp)q(e)14 b(used)h(for)f(receiving)g
(\(handle\))117 2246 y(OUT)108 b Fj(ta)o(rget)p 433 2246 V
17 w(request)323 b Fi(request)16 b(at)d(target)i(pro)q(cess)g(\(handle\))75
2371 y Fh(int)47 b(int)24 b(MPI)p 365 2371 15 2 v 17 w(put\(void)e(*origin)p
764 2371 V 17 w(addr,)h(int)g(count,)g(MPI)p 1258 2371 V 17
w(Datatype)g(origin)p 1634 2371 V 16 w(datatype,)393 2427 y(int)h(dest,)f
(MPI)p 707 2427 V 17 w(Comm)g(comm,)g(void)g(*target)p 1273
2427 V 17 w(addr,)g(MPI)p 1505 2427 V 17 w(Datatype)393 2484
y(target)p 540 2484 V 17 w(datatype,)f(MPI)p 867 2484 V 17
w(request)h(*target)p 1243 2484 V 16 w(request\))75 2570 y(MPI)p
150 2570 V 17 w(PUT\(ORIGIN)p 407 2570 V 16 w(ADDR,)g(COUNT,)g(ORIGIN)p
877 2570 V 16 w(DATATYPE,)g(DEST,)g(COMM,)g(TARGET)p 1562 2570
V 17 w(ADDR,)393 2627 y(TARGET)p 540 2627 V 17 w(DATATYPE,)f(TARGET)p
939 2627 V 17 w(REQUEST,)g(IERROR\))170 2683 y(<type>)h(ORIGIN)p
484 2683 V 17 w(ADDR\(*\),)g(TARGET)p 860 2683 V 16 w(ADDR\(*\))1967
46 y Ff(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
bop 75 -100 a Fm(1.2.)34 b(PUT/GET)1450 b Fq(7)170 49 y Fh(INTEGER)23
b(COUNT,)g(ORIGIN)p 675 49 15 2 v 17 w(DATATYPE,)f(DEST,)i(COMM,)f(TARGET)p
1361 49 V 16 w(DATATYPE,)170 106 y(TARGET)p 317 106 V 17 w(REQUEST,)g
(IERROR\))166 192 y Fq(This)14 b(is)f(the)g(blo)q(c)o(king)i(v)o(ersion)e(of)
g Fh(MPI)p 843 192 V 17 w(IPUT)p Fq(.)f(Con)o(trol)g(do)q(es)i(not)f(return)g
(to)f(the)h(caller)i(un)o(til)f(the)75 249 y(data)h(ha)o(v)o(e)f(b)q(een)j
(copied)f(out)f(of)g(the)g(origin)h(bu\013er.)75 370 y Fk(1.2.5)49
b(Non-blo)q(cking)19 b(and)d(blo)q(cking)i(synchronous)e(puts)75
551 y Fj(MPI)p 160 551 14 2 v 16 w(ISPUT\(o)o(rigin)p 429 551
V 15 w(addr,)k(count,)g(o)o(rigin)p 805 551 V 16 w(datat)o(yp)q(e,)h(o)o
(rigin)p 1124 551 V 15 w(request,)g(dest,)g(comm)m(,)16 b(ta)o(rget)p
1677 551 V 17 w(addr,)j(ta)o(r-)75 607 y(get)p 137 607 V 17
w(datat)o(yp)q(e,)d(ta)o(rget)p 458 607 V 16 w(request\))117
684 y Fi(IN)155 b Fj(o)o(rigin)p 427 684 V 16 w(addr)381 b
Fi(address)15 b(of)f(origin)e(bu\013er)j(\(c)o(hoice\))117
759 y(IN)155 b Fj(count)482 b Fi(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f(sen)
o(t)i(\(in)o(teger\))117 835 y(IN)155 b Fj(o)o(rigin)p 427
835 V 16 w(datat)o(yp)q(e)302 b Fi(datat)o(yp)q(e)14 b(of)g(elemen)o(ts)f
(sen)o(t)i(\(handle\))117 910 y(OUT)108 b Fj(o)o(rigin)p 427
910 V 16 w(request)330 b Fi(request)16 b(at)d(origin)g(pro)q(cess)j
(\(handle\))117 985 y(IN)155 b Fj(dest)511 b Fi(rank)14 b(of)f(destination)h
(\(in)o(teger\))117 1060 y(IN)155 b Fj(com)505 b Fi(comm)o(unicator)11
b(used)k(for)f(comm)o(unicati)o(on)d(\(handle\))117 1135 y(OUT)108
b Fj(ta)o(rget)p 433 1135 V 17 w(addr)374 b Fi(address)15 b(of)f(destination)
f(bu\013er)i(\(c)o(hoice\))117 1210 y(IN)155 b Fj(ta)o(rget)p
433 1210 V 17 w(datat)o(yp)q(e)295 b Fi(datat)o(yp)q(e)14 b(used)h(for)f
(receiving)g(\(handle\))117 1285 y(OUT)108 b Fj(ta)o(rget)p
433 1285 V 17 w(request)323 b Fi(request)16 b(at)d(target)i(pro)q(cess)g
(\(handle\))75 1410 y Fh(int)47 b(int)24 b(MPI)p 365 1410 15
2 v 17 w(isput\(void)e(*origin)p 812 1410 V 16 w(addr,)h(int)h(count,)f(MPI)p
1306 1410 V 17 w(Datatype)393 1466 y(origin)p 540 1466 V 17
w(datatype,)f(MPI)p 867 1466 V 17 w(request)h(*origin)p 1243
1466 V 16 w(request,)g(int)g(dest,)393 1523 y(MPI)p 468 1523
V 17 w(Comm)g(comm,)g(void)h(*target)p 1035 1523 V 16 w(addr,)f(MPI)p
1266 1523 V 17 w(Datatype)g(target)p 1642 1523 V 16 w(datatype,)393
1579 y(MPI)p 468 1579 V 17 w(request)g(*target)p 844 1579 V
16 w(request\))75 1666 y(MPI)p 150 1666 V 17 w(ISPUT\(ORIGIN)p
455 1666 V 15 w(ADDR,)g(COUNT,)h(ORIGIN)p 925 1666 V 16 w(DATATYPE,)f(ORIGIN)
p 1324 1666 V 16 w(REQUEST,)g(DEST,)g(COMM,)393 1722 y(TARGET)p
540 1722 V 17 w(ADDR,)g(TARGET)p 844 1722 V 16 w(DATATYPE,)g(TARGET)p
1243 1722 V 16 w(REQUEST,)g(IERROR\))170 1779 y(<type>)g(ORIGIN)p
484 1779 V 17 w(ADDR\(*\),)g(TARGET)p 860 1779 V 16 w(ADDR\(*\))170
1835 y(INTEGER)g(COUNT,)g(ORIGIN)p 675 1835 V 17 w(DATATYPE,)f(ORIGIN)p
1074 1835 V 17 w(REQUEST,)h(DEST,)g(COMM,)170 1891 y(TARGET)p
317 1891 V 17 w(DATATYPE,)f(TARGET)p 716 1891 V 17 w(REQUEST,)h(IERROR\))166
1978 y Fq(Similar)13 b(to)f Fh(MPI)p 447 1978 V 17 w(IPUT)p
Fq(,)f(except)h(that)g(the)g(seman)o(tics)g(of)g(completion)h(at)e(the)i
(origin)f(are)g(di\013eren)o(t.)75 2034 y(Completion)18 b(of)f(an)g
Fh(MPI)p 516 2034 V 17 w(ISPUT)f Fq(means)h(that)g(the)g(data)g(ha)o(v)o(e)g
(arriv)o(ed)g(at)f(the)i(target)e(pro)q(cess,)h(i.e.,)75 2091
y(the)e(transfer)g(has)g(completed)h(b)q(oth)f(in)h(origin)g(and)g(target)e
(memory)l(.)-32 46 y Ff(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
bop 75 -100 a Fq(8)746 b Fm(CHAPTER)15 b(1.)35 b(ONE)16 b(SIDED)f(COMMUNICA)l
(TIONS)75 49 y Fj(MPI)p 160 49 14 2 v 16 w(SPUT\(o)o(rigin)p
416 49 V 15 w(addr,)i(count,)g(o)o(rigin)p 786 49 V 16 w(datat)o(yp)q(e,)g
(dest,)h(comm)m(,)13 b(ta)o(rget)p 1358 49 V 17 w(addr,)j(ta)o(rget)p
1600 49 V 16 w(datat)o(yp)q(e,)i(ta)o(r-)75 106 y(get)p 137
106 V 17 w(request\))117 183 y Fi(IN)155 b Fj(o)o(rigin)p 427
183 V 16 w(addr)381 b Fi(address)15 b(of)f(origin)e(bu\013er)j(\(c)o(hoice\))
117 258 y(IN)155 b Fj(count)482 b Fi(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f
(sen)o(t)i(\(in)o(teger\))117 333 y(IN)155 b Fj(o)o(rigin)p
427 333 V 16 w(datat)o(yp)q(e)302 b Fi(datat)o(yp)q(e)14 b(of)g(elemen)o(ts)f
(sen)o(t)i(\(handle\))117 408 y(IN)155 b Fj(dest)511 b Fi(rank)14
b(of)f(destination)h(\(in)o(teger\))117 483 y(IN)155 b Fj(com)505
b Fi(comm)o(unicator)11 b(used)k(for)f(comm)o(unicati)o(on)d(\(handle\))117
559 y(OUT)108 b Fj(ta)o(rget)p 433 559 V 17 w(addr)374 b Fi(address)15
b(of)f(destination)f(bu\013er)i(\(c)o(hoice\))117 634 y(IN)155
b Fj(ta)o(rget)p 433 634 V 17 w(datat)o(yp)q(e)295 b Fi(datat)o(yp)q(e)14
b(used)h(for)f(receiving)g(\(handle\))117 709 y(OUT)108 b Fj(ta)o(rget)p
433 709 V 17 w(request)323 b Fi(request)16 b(at)d(target)i(pro)q(cess)g
(\(handle\))75 833 y Fh(int)47 b(int)24 b(MPI)p 365 833 15
2 v 17 w(sput\(void)e(*origin)p 788 833 V 16 w(addr,)i(int)f(count,)g(MPI)p
1282 833 V 17 w(Datatype)393 890 y(origin)p 540 890 V 17 w(datatype,)f(int)i
(dest,)f(MPI)p 1106 890 V 17 w(Comm)g(comm,)g(void)g(*target)p
1672 890 V 17 w(addr,)393 946 y(MPI)p 468 946 V 17 w(Datatype)g(target)p
844 946 V 16 w(datatype,)g(MPI)p 1171 946 V 16 w(request)g(*target)p
1546 946 V 17 w(request\))75 1033 y(MPI)p 150 1033 V 17 w(SPUT\(ORIGIN)p
431 1033 V 15 w(ADDR,)h(COUNT,)f(ORIGIN)p 901 1033 V 16 w(DATATYPE,)g(DEST,)g
(COMM,)g(TARGET)p 1586 1033 V 16 w(ADDR,)393 1089 y(TARGET)p
540 1089 V 17 w(DATATYPE,)f(TARGET)p 939 1089 V 17 w(REQUEST,)g(IERROR\))170
1146 y(<type>)h(ORIGIN)p 484 1146 V 17 w(ADDR\(*\),)g(TARGET)p
860 1146 V 16 w(ADDR\(*\))170 1202 y(INTEGER)g(COUNT,)g(ORIGIN)p
675 1202 V 17 w(DATATYPE,)f(DEST,)i(COMM,)f(TARGET)p 1361 1202
V 16 w(DATATYPE,)170 1259 y(TARGET)p 317 1259 V 17 w(REQUEST,)g(IERROR\))166
1345 y Fq(This)16 b(is)f(the)h(blo)q(c)o(king)g(v)o(ersion)g(of)e
Fh(MPI)p 855 1345 V 17 w(ISPUT)p Fq(.)75 1467 y Fk(1.2.6)49
b(Non-blo)q(cking)19 b(and)d(blo)q(cking)i(gets)75 1647 y Fj(MPI)p
160 1647 14 2 v 16 w(IGET\(o)o(rigin)p 401 1647 V 15 w(addr,)24
b(count,)g(o)o(rigin)p 785 1647 V 15 w(datat)o(yp)q(e,)i(o)o(rigin)p
1108 1647 V 15 w(request,)f(dest,)g(comm)m(,)20 b(ta)o(rget)p
1673 1647 V 17 w(addr,)j(ta)o(r-)75 1703 y(get)p 137 1703 V
17 w(datat)o(yp)q(e,)16 b(ta)o(rget)p 458 1703 V 16 w(request\))117
1781 y Fi(IN)155 b Fj(o)o(rigin)p 427 1781 V 16 w(addr)381
b Fi(address)15 b(of)f(origin)e(bu\013er)j(\(c)o(hoice\))117
1856 y(IN)155 b Fj(count)482 b Fi(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f
(sen)o(t)i(\(in)o(teger\))117 1931 y(IN)155 b Fj(o)o(rigin)p
427 1931 V 16 w(datat)o(yp)q(e)302 b Fi(datat)o(yp)q(e)14 b(of)g(elemen)o(ts)
f(sen)o(t)i(\(handle\))117 2006 y(OUT)108 b Fj(o)o(rigin)p
427 2006 V 16 w(request)330 b Fi(request)16 b(at)d(origin)g(pro)q(cess)j
(\(handle\))117 2081 y(IN)155 b Fj(dest)511 b Fi(rank)14 b(of)f(destination)h
(\(in)o(teger\))117 2156 y(IN)155 b Fj(com)505 b Fi(comm)o(unicator)11
b(used)k(for)f(comm)o(unicati)o(on)d(\(handle\))117 2231 y(OUT)108
b Fj(ta)o(rget)p 433 2231 V 17 w(addr)374 b Fi(address)15 b(of)f(destination)
f(bu\013er)i(\(c)o(hoice\))117 2307 y(IN)155 b Fj(ta)o(rget)p
433 2307 V 17 w(datat)o(yp)q(e)295 b Fi(datat)o(yp)q(e)14 b(used)h(for)f
(receiving)g(\(handle\))117 2382 y(OUT)108 b Fj(ta)o(rget)p
433 2382 V 17 w(request)323 b Fi(request)16 b(at)d(target)i(pro)q(cess)g
(\(handle\))75 2506 y Fh(int)47 b(int)24 b(MPI)p 365 2506 15
2 v 17 w(iget\(void)e(*origin)p 788 2506 V 16 w(addr,)i(int)f(count,)g(MPI)p
1282 2506 V 17 w(Datatype)393 2563 y(origin)p 540 2563 V 17
w(datatype,)f(MPI)p 867 2563 V 17 w(request)h(*origin)p 1243
2563 V 16 w(request,)g(int)g(dest,)393 2619 y(MPI)p 468 2619
V 17 w(Comm)g(comm,)g(void)h(*target)p 1035 2619 V 16 w(addr,)f(MPI)p
1266 2619 V 17 w(Datatype)g(target)p 1642 2619 V 16 w(datatype,)393
2676 y(MPI)p 468 2676 V 17 w(request)g(*target)p 844 2676 V
16 w(request\))1967 46 y Ff(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
bop 75 -100 a Fm(1.2.)34 b(PUT/GET)1450 b Fq(9)75 49 y Fh(MPI)p
150 49 15 2 v 17 w(IGET\(ORIGIN)p 431 49 V 15 w(ADDR,)24 b(COUNT,)f(ORIGIN)p
901 49 V 16 w(DATATYPE,)g(ORIGIN)p 1300 49 V 16 w(REQUEST,)g(DEST,)g(COMM,)
393 106 y(TARGET)p 540 106 V 17 w(ADDR,)g(TARGET)p 844 106
V 16 w(DATATYPE,)g(TARGET)p 1243 106 V 16 w(REQUEST,)g(IERROR\))170
162 y(<type>)g(ORIGIN)p 484 162 V 17 w(ADDR\(*\),)g(TARGET)p
860 162 V 16 w(ADDR\(*\))170 219 y(INTEGER)g(COUNT,)g(ORIGIN)p
675 219 V 17 w(DATATYPE,)f(ORIGIN)p 1074 219 V 17 w(REQUEST,)h(DEST,)g(COMM,)
170 275 y(TARGET)p 317 275 V 17 w(DATATYPE,)f(TARGET)p 716
275 V 17 w(REQUEST,)h(IERROR\))166 362 y Fq(Similar)18 b(to)d
Fh(MPI)p 455 362 V 17 w(ISPUT)p Fq(,)g(except)h(that)g(the)g(direction)h(of)f
(data)g(transfer)f(is)i(rev)o(ersed.)22 b(Data)15 b(are)75
418 y(copied)g(from)e(the)g(target)g(pro)q(cess)g(to)g(the)h(origin.)20
b(The)14 b Fh(target)p 1202 418 V 16 w(request)f Fq(completes)h(after)f(the)h
(data)75 474 y(ha)o(v)o(e)g(b)q(een)h(copied)g(out)f(of)f(the)h(memory)g(at)f
(the)h(target)f(pro)q(cess.)20 b(The)14 b Fh(origin)p 1486
474 V 16 w(request)f Fq(completes)75 531 y(when)j(the)f(data)g(ha)o(v)o(e)f
(arriv)o(ed)i(at)e(the)h(origin.)75 682 y Fj(MPI)p 160 682
14 2 v 16 w(GET\(o)o(rigin)p 388 682 V 15 w(addr,)21 b(count,)g(o)o(rigin)p
766 682 V 16 w(datat)o(yp)q(e,)g(dest,)h(comm)m(,)17 b(ta)o(rget)p
1350 682 V 17 w(addr,)j(ta)o(rget)p 1596 682 V 16 w(datat)o(yp)q(e,)i(ta)o
(r-)75 738 y(get)p 137 738 V 17 w(request\))117 816 y Fi(IN)155
b Fj(o)o(rigin)p 427 816 V 16 w(addr)381 b Fi(address)15 b(of)f(origin)e
(bu\013er)j(\(c)o(hoice\))117 891 y(IN)155 b Fj(count)482 b
Fi(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f(sen)o(t)i(\(in)o(teger\))117
966 y(IN)155 b Fj(o)o(rigin)p 427 966 V 16 w(datat)o(yp)q(e)302
b Fi(datat)o(yp)q(e)14 b(of)g(elemen)o(ts)f(sen)o(t)i(\(handle\))117
1041 y(IN)155 b Fj(dest)511 b Fi(rank)14 b(of)f(destination)h(\(in)o(teger\))
117 1116 y(IN)155 b Fj(com)505 b Fi(comm)o(unicator)11 b(used)k(for)f(comm)o
(unicati)o(on)d(\(handle\))117 1191 y(OUT)108 b Fj(ta)o(rget)p
433 1191 V 17 w(addr)374 b Fi(address)15 b(of)f(destination)f(bu\013er)i(\(c)
o(hoice\))117 1266 y(IN)155 b Fj(ta)o(rget)p 433 1266 V 17
w(datat)o(yp)q(e)295 b Fi(datat)o(yp)q(e)14 b(used)h(for)f(receiving)g
(\(handle\))117 1341 y(OUT)108 b Fj(ta)o(rget)p 433 1341 V
17 w(request)323 b Fi(request)16 b(at)d(target)i(pro)q(cess)g(\(handle\))75
1466 y Fh(int)47 b(int)24 b(MPI)p 365 1466 15 2 v 17 w(get\(void)e(*origin)p
764 1466 V 17 w(addr,)h(int)g(count,)g(MPI)p 1258 1466 V 17
w(Datatype)g(origin)p 1634 1466 V 16 w(datatype,)393 1522 y(int)h(dest,)f
(MPI)p 707 1522 V 17 w(Comm)g(comm,)g(void)g(*target)p 1273
1522 V 17 w(addr,)g(MPI)p 1505 1522 V 17 w(Datatype)393 1579
y(target)p 540 1579 V 17 w(datatype,)f(MPI)p 867 1579 V 17
w(request)h(*target)p 1243 1579 V 16 w(request\))75 1665 y(MPI)p
150 1665 V 17 w(GET\(ORIGIN)p 407 1665 V 16 w(ADDR,)g(COUNT,)g(ORIGIN)p
877 1665 V 16 w(DATATYPE,)g(DEST,)g(COMM,)g(TARGET)p 1562 1665
V 17 w(ADDR,)393 1722 y(TARGET)p 540 1722 V 17 w(DATATYPE,)f(TARGET)p
939 1722 V 17 w(REQUEST,)g(IERROR\))170 1778 y(<type>)h(ORIGIN)p
484 1778 V 17 w(ADDR\(*\),)g(TARGET)p 860 1778 V 16 w(ADDR\(*\))170
1835 y(INTEGER)g(COUNT,)g(ORIGIN)p 675 1835 V 17 w(DATATYPE,)f(DEST,)i(COMM,)
f(TARGET)p 1361 1835 V 16 w(DATATYPE,)170 1891 y(TARGET)p 317
1891 V 17 w(REQUEST,)g(IERROR\))166 1978 y Fq(This)16 b(is)f(the)h(blo)q(c)o
(king)g(v)o(ersion)g(of)e Fh(MPI)p 855 1978 V 17 w(ISGET)p
Fq(.)-32 46 y Ff(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
bop 75 -100 a Fq(10)723 b Fm(CHAPTER)15 b(1.)35 b(ONE)16 b(SIDED)f(COMMUNICA)
l(TIONS)75 49 y Fk(1.2.7)49 b(P)o(ersistent)14 b(put/get)i(objects)75
230 y Fj(MPI)p 160 230 14 2 v 16 w(IPUT)p 280 230 V 16 w(CREA)l(TE\(o)o
(rigin)p 589 230 V 16 w(addr,)11 b(count,)h(o)o(rigin)p 949
230 V 16 w(datat)o(yp)q(e,)g(o)o(rigin)p 1259 230 V 15 w(request,)h(dest,)f
(comm)m(,)c(ta)o(rget)p 1787 230 V 16 w(addr,)75 286 y(ta)o(rget)p
190 286 V 16 w(datat)o(yp)q(e,)17 b(ta)o(rget)p 511 286 V 16
w(request\))117 363 y Fi(IN)155 b Fj(o)o(rigin)p 427 363 V
16 w(addr)381 b Fi(address)15 b(of)f(origin)e(bu\013er)j(\(c)o(hoice\))117
438 y(IN)155 b Fj(count)482 b Fi(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f(sen)
o(t)i(\(in)o(teger\))117 513 y(IN)155 b Fj(o)o(rigin)p 427
513 V 16 w(datat)o(yp)q(e)302 b Fi(datat)o(yp)q(e)14 b(of)g(elemen)o(ts)f
(sen)o(t)i(\(handle\))117 589 y(OUT)108 b Fj(o)o(rigin)p 427
589 V 16 w(request)330 b Fi(request)16 b(at)d(origing)g(pro)q(cess)j
(\(handle\))117 664 y(IN)155 b Fj(dest)511 b Fi(rank)14 b(of)f(destination)h
(\(in)o(teger\))117 739 y(IN)155 b Fj(com)505 b Fi(comm)o(unicator)11
b(used)k(for)f(comm)o(unicati)o(on)d(\(handle\))117 814 y(OUT)108
b Fj(ta)o(rget)p 433 814 V 17 w(addr)374 b Fi(address)15 b(of)f(destination)f
(bu\013er)i(\(c)o(hoice\))117 889 y(IN)155 b Fj(ta)o(rget)p
433 889 V 17 w(datat)o(yp)q(e)295 b Fi(datat)o(yp)q(e)14 b(used)h(for)f
(receiving)g(\(handle\))117 964 y(OUT)108 b Fj(ta)o(rget)p
433 964 V 17 w(request)323 b Fi(request)16 b(at)d(target)i(pro)q(cess)g
(\(handle\))75 1089 y Fh(int)47 b(int)24 b(MPI)p 365 1089 15
2 v 17 w(Iput)p 478 1089 V 16 w(create\(void)f(*origin)p 949
1089 V 16 w(addr,)g(int)g(count,)g(MPI)p 1442 1089 V 17 w(Datatype)393
1145 y(origin)p 540 1145 V 17 w(datatype,)f(MPI)p 867 1145
V 17 w(request)h(*origin)p 1243 1145 V 16 w(request,)g(int)g(dest,)393
1202 y(MPI)p 468 1202 V 17 w(Comm)g(comm,)g(void)h(*target)p
1035 1202 V 16 w(addr,)f(MPI)p 1266 1202 V 17 w(Datatype)g(target)p
1642 1202 V 16 w(datatype,)393 1258 y(MPI)p 468 1258 V 17 w(request)g
(*target)p 844 1258 V 16 w(request\))75 1345 y(MPI)p 150 1345
V 17 w(IPUT)p 263 1345 V 16 w(CREATE\(ORIGIN)p 591 1345 V 16
w(ADDR,)g(COUNT,)g(ORIGIN)p 1061 1345 V 16 w(DATATYPE,)g(ORIGIN)p
1460 1345 V 16 w(REQUEST,)g(DEST,)393 1401 y(COMM,)g(TARGET)p
683 1401 V 17 w(ADDR,)g(TARGET)p 987 1401 V 16 w(DATATYPE,)g(TARGET)p
1386 1401 V 16 w(REQUEST,)g(IERROR\))170 1457 y(<type>)g(ORIGIN)p
484 1457 V 17 w(ADDR\(*\),)g(TARGET)p 860 1457 V 16 w(ADDR\(*\))170
1514 y(INTEGER)g(COUNT,)g(ORIGIN)p 675 1514 V 17 w(DATATYPE,)f(ORIGIN)p
1074 1514 V 17 w(REQUEST,)h(DEST,)g(COMM,)170 1570 y(TARGET)p
317 1570 V 17 w(DATATYPE,)f(TARGET)p 716 1570 V 17 w(REQUEST,)h(IERROR\))166
1657 y Fq(Returns)18 b(in)g Fj(o)o(rigin)p 505 1657 14 2 v
16 w(request)h Fq(a)e(p)q(ersisten)o(t)h(handle)h(for)e(Put)h(op)q(erations.)
27 b(The)18 b(parameters)e(are)75 1713 y(as)f(for)g(the)h Fj(MPI)p
365 1713 V 16 w(IPUT)g Fq(call.)22 b(Once)17 b(created,)f(the)f(handle)i(can)
f(b)q(e)h(used)f(to)f(initiate)i(Put)f(op)q(erations)75 1770
y(b)o(y)i(a)g(call)i(to)d Fj(MPI)p 412 1770 V 16 w(ST)l(ART\(o)o(rigin)p
694 1770 V 16 w(request\))j Fq(\(or)d Fj(MPI)p 1041 1770 V
16 w(ST)l(ART)l(ALL)p Fq(\),)h(as)g(for)g(usual)h(MPI)f(p)q(ersisten)o(t)75
1826 y(requests.)i(The)15 b(request)g(is)h(freed)g(with)f(a)g(call)h(to)f
Fj(MPI)p 1044 1826 V 16 w(REQUEST)p 1263 1826 V 18 w(FREE)p
Fq(.)75 1977 y Fj(MPI)p 160 1977 V 16 w(ISPUT)p 305 1977 V
16 w(CREA)l(TE\(o)o(rigin)p 614 1977 V 16 w(addr,)c(count,)i(o)o(rigin)p
975 1977 V 15 w(datat)o(yp)q(e,)f(o)o(rigin)p 1284 1977 V 15
w(request,)h(dest,)f(comm)m(,)c(ta)o(rget)p 1812 1977 V 16
w(addr,)75 2034 y(ta)o(rget)p 190 2034 V 16 w(datat)o(yp)q(e,)17
b(ta)o(rget)p 511 2034 V 16 w(request\))75 2137 y Fh(int)47
b(int)24 b(MPI)p 365 2137 15 2 v 17 w(Isput)p 502 2137 V 16
w(create\(void)e(*origin)p 972 2137 V 17 w(addr,)h(int)g(count,)g(MPI)p
1466 2137 V 17 w(Datatype)393 2194 y(origin)p 540 2194 V 17
w(datatype,)f(MPI)p 867 2194 V 17 w(request)h(*origin)p 1243
2194 V 16 w(request,)g(int)g(dest,)393 2250 y(MPI)p 468 2250
V 17 w(Comm)g(comm,)g(void)h(*target)p 1035 2250 V 16 w(addr,)f(MPI)p
1266 2250 V 17 w(Datatype)g(target)p 1642 2250 V 16 w(datatype,)393
2307 y(MPI)p 468 2307 V 17 w(request)g(*target)p 844 2307 V
16 w(request\))75 2393 y(MPI)p 150 2393 V 17 w(ISPUT)p 287
2393 V 16 w(CREATE\(ORIGIN)p 615 2393 V 16 w(ADDR,)g(COUNT,)g(ORIGIN)p
1085 2393 V 16 w(DATATYPE,)g(ORIGIN)p 1484 2393 V 16 w(REQUEST,)g(DEST,)393
2450 y(COMM,)g(TARGET)p 683 2450 V 17 w(ADDR,)g(TARGET)p 987
2450 V 16 w(DATATYPE,)g(TARGET)p 1386 2450 V 16 w(REQUEST,)g(IERROR\))170
2506 y(<type>)g(ORIGIN)p 484 2506 V 17 w(ADDR\(*\),)g(TARGET)p
860 2506 V 16 w(ADDR\(*\))170 2562 y(INTEGER)g(COUNT,)g(ORIGIN)p
675 2562 V 17 w(DATATYPE,)f(ORIGIN)p 1074 2562 V 17 w(REQUEST,)h(DEST,)g
(COMM,)170 2619 y(TARGET)p 317 2619 V 17 w(DATATYPE,)f(TARGET)p
716 2619 V 17 w(REQUEST,)h(IERROR\))1967 46 y Ff(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
bop 75 -100 a Fm(1.2.)34 b(PUT/GET)1428 b Fq(11)75 49 y Fj(MPI)p
160 49 14 2 v 16 w(IGET)p 277 49 V 16 w(CREA)l(TE\(o)o(rigin)p
586 49 V 16 w(addr,)11 b(count,)h(o)o(rigin)p 946 49 V 16 w(datat)o(yp)q(e,)g
(o)o(rigin)p 1256 49 V 15 w(request,)h(dest,)f(comm)m(,)c(ta)o(rget)p
1784 49 V 16 w(addr,)75 106 y(ta)o(rget)p 190 106 V 16 w(datat)o(yp)q(e,)17
b(ta)o(rget)p 511 106 V 16 w(request\))75 209 y Fh(int)47 b(int)24
b(MPI)p 365 209 15 2 v 17 w(Iget)p 478 209 V 16 w(create\(void)f(*origin)p
949 209 V 16 w(addr,)g(int)g(count,)g(MPI)p 1442 209 V 17 w(Datatype)393
266 y(origin)p 540 266 V 17 w(datatype,)f(MPI)p 867 266 V 17
w(request)h(*origin)p 1243 266 V 16 w(request,)g(int)g(dest,)393
322 y(MPI)p 468 322 V 17 w(Comm)g(comm,)g(void)h(*target)p
1035 322 V 16 w(addr,)f(MPI)p 1266 322 V 17 w(Datatype)g(target)p
1642 322 V 16 w(datatype,)393 379 y(MPI)p 468 379 V 17 w(request)g(*target)p
844 379 V 16 w(request\))75 465 y(MPI)p 150 465 V 17 w(IGET)p
263 465 V 16 w(CREATE\(ORIGIN)p 591 465 V 16 w(ADDR,)g(COUNT,)g(ORIGIN)p
1061 465 V 16 w(DATATYPE,)g(ORIGIN)p 1460 465 V 16 w(REQUEST,)g(DEST,)393
522 y(COMM,)g(TARGET)p 683 522 V 17 w(ADDR,)g(TARGET)p 987
522 V 16 w(DATATYPE,)g(TARGET)p 1386 522 V 16 w(REQUEST,)g(IERROR\))170
578 y(<type>)g(ORIGIN)p 484 578 V 17 w(ADDR\(*\),)g(TARGET)p
860 578 V 16 w(ADDR\(*\))170 635 y(INTEGER)g(COUNT,)g(ORIGIN)p
675 635 V 17 w(DATATYPE,)f(ORIGIN)p 1074 635 V 17 w(REQUEST,)h(DEST,)g(COMM,)
170 691 y(TARGET)p 317 691 V 17 w(DATATYPE,)f(TARGET)p 716
691 V 17 w(REQUEST,)h(IERROR\))166 778 y Fq(Create)15 b(p)q(ersisten)o(t)g
(request)g(ob)s(jects)g(for)g(Isput)g(and)h(Iget)f(op)q(erations.)166
917 y Fg(Discussion:)44 b Fi(P)o(ersisten)o(t)18 b(requests)g(in)e(MPI)h(are)
g(\\half-c)o(hannels":)22 b(they)17 b(bind)f(the)h(send)g(or)g(receiv)o(e)75
973 y(parameters,)h(but)f(they)h(do)f(not)h(bind)f(a)g(send)h(to)f(a)g
(receiv)o(e.)30 b(Since)17 b(put/get)h(op)q(erations)g(are)f(single-sided,)75
1030 y(there)e(is)f(no)g(di\013erence)h(here)g(b)q(et)o(w)o(een)h(a)d
(\\half-c)o(hannel")g(and)g(a)h(\\full-c)o(hannel".)75 1232
y Fk(1.2.8)49 b(Co)q(o)o(rdination)75 1317 y Fq(The)21 b(use)h(of)e(remote)h
(requests)g(allo)o(ws)g(the)g(target)f(pro)q(cess)h(to)f(w)o(ait)h(for)f(the)
h(completion)h(of)f(one)75 1374 y(comm)o(unication.)i(In)16
b(addition)h(lo)q(cal)g(and)f(global)h(fence)f(mec)o(hanisms)h(allo)o(w)f
(pro)q(cesses)g(to)f(w)o(ait)h(for)75 1430 y(a)k(a)h(set)f(of)h(comm)o
(unications.)37 b(In)21 b(particular,)i(the)d(global)i(fence)f(construct)g
(supp)q(orts)f(a)h(lo)q(osely)75 1487 y(sync)o(hronous)g(\(or)g(bulk-sync)o
(hronous\))h(st)o(yle)f(where)h(the)f(computation)g(o)q(ccurs)h(in)g(phases:)
32 b(eac)o(h)75 1543 y(pro)q(cess)13 b(blo)q(c)o(ks)h(b)q(efore)f(phase)g
Fb(i)f Fq(un)o(til)i(all)g(comm)o(unications)f(issued)h(at)f(phase)g
Fb(i)5 b Fl(\000)g Fq(1)13 b(ha)o(v)o(e)f(completed.)75 1600
y(One)20 b(can)f(also)g(use)h(these)f(constructs)g(to)g(supp)q(ort)g(a)g
(double-bu\013er)i(\(k-bu\013er\))d(approac)o(h,)i(where)75
1656 y(eac)o(h)15 b(pro)q(cess)h(blo)q(c)o(ks)g(b)q(efore)g(phase)g
Fb(i)f Fq(un)o(til)h(comm)o(unications)g(issued)h(at)e(phase)g
Fb(i)10 b Fl(\000)h Fq(2)k(\()p Fb(i)10 b Fl(\000)g Fb(k)q
Fq(\))15 b(ha)o(v)o(e)75 1713 y(completed.)75 1863 y Fj(MPI)p
160 1863 14 2 v 16 w(SYNC\(comm)m(\))117 1941 y Fi(IN)155 b
Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))75 2065 y
Fh(int)23 b(MPI)p 245 2065 15 2 v 17 w(sync\(MPI)p 454 2065
V 16 w(Comm)h(comm\))75 2152 y(MPI)p 150 2152 V 17 w(SYNC\(COMM,)e(IERROR\))
170 2208 y(INTEGER)h(COMM,)h(IERROR)166 2295 y Fq(The)13 b(call)g(returns)g
(after)f(all)h(put/get)f(request)h(submitted)g(b)q(efore)g(the)f(Sync)o(h)h
(call)h(b)o(y)f(the)f(calling)75 2351 y(pro)q(cess)j(ha)o(v)o(e)g(completed,)
h(b)q(oth)f(lo)q(cally)i(and)f(remotely)l(.)75 2502 y Fj(MPI)p
160 2502 14 2 v 16 w(GSYNC\(comm)n(\))117 2579 y Fi(IN)155
b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))75 2704
y Fh(int)23 b(MPI)p 245 2704 15 2 v 17 w(gsync\(MPI)p 478 2704
V 16 w(Comm)g(comm\))-32 46 y Ff(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
bop 75 -100 a Fq(12)723 b Fm(CHAPTER)15 b(1.)35 b(ONE)16 b(SIDED)f(COMMUNICA)
l(TIONS)75 49 y Fh(MPI)p 150 49 15 2 v 17 w(GSYNC\(COMM,)22
b(IERROR\))170 106 y(INTEGER)h(COMM,)h(IERROR)166 192 y Fq(This)13
b(is)h(a)f(collectiv)o(e,)h(global)g(sync)o(hronization)g(op)q(eration.)19
b(The)13 b(call)i(returns)d(after)h(all)g(put/get)75 249 y(request)d
(submitted)h(b)q(efore)g(the)f(Sync)o(h)h(call)g(b)o(y)g(an)o(y)e(pro)q(cess)
i(in)g(the)f(group)g(of)g Fj(comm)5 b Fq(ha)o(v)o(e)k(completed,)75
305 y(b)q(oth)15 b(lo)q(cally)i(and)f(remotely)l(.)75 456 y
Fj(MPI)p 160 456 14 2 v 16 w(ISYNC\(comm)m(,)c(request\))117
533 y Fi(IN)155 b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))117
608 y(OUT)108 b Fj(request)452 b Fi(request)16 b(\(handle\))75
733 y Fh(int)23 b(MPI)p 245 733 15 2 v 17 w(isync\(MPI)p 478
733 V 16 w(Comm)g(comm,)h(MPI)p 829 733 V 16 w(Request)f(*request\))75
819 y(MPI)p 150 819 V 17 w(ISYNC\(COMM,)f(REQUEST,)h(IERROR\))170
876 y(INTEGER)g(COMM,)h(REQUEST,)e(IERROR)166 962 y Fq(Non)o(blo)q(c)o(king)
16 b(v)o(ersion)g(of)e Fj(MPI)p 718 962 14 2 v 16 w(SYNC)p
Fq(.)75 1113 y Fj(MPI)p 160 1113 V 16 w(IGSYNC\(comm)m(,)e(request\))117
1190 y Fi(IN)155 b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))117
1265 y(OUT)108 b Fj(request)452 b Fi(request)16 b(\(handle\))75
1390 y Fh(int)23 b(MPI)p 245 1390 15 2 v 17 w(igsync\(MPI)p
502 1390 V 16 w(Comm)g(comm,)h(MPI)p 853 1390 V 16 w(Request)f(*request\))75
1476 y(MPI)p 150 1476 V 17 w(IGSYNC\(COMM,)f(REQUEST,)h(IERROR\))170
1533 y(INTEGER)g(COMM,)h(REQUEST,)e(IERROR)166 1619 y Fq(Non)o(blo)q(c)o
(king)16 b(v)o(ersion)g(of)e Fj(MPI)p 718 1619 14 2 v 16 w(GSYNC)p
Fq(.)75 1770 y Fj(MPI)p 160 1770 V 16 w(FENCE\(comm)m(\))117
1847 y Fi(IN)155 b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))75
1972 y Fh(int)23 b(MPI)p 245 1972 15 2 v 17 w(fence\(MPI)p
478 1972 V 16 w(Comm)g(comm\))75 2058 y(MPI)p 150 2058 V 17
w(FENCE\(COMM,)f(IERROR\))170 2115 y(INTEGER)h(COMM,)h(IERROR)166
2201 y Fq(F)l(ence)17 b(is)g(a)g(mec)o(hanism)g(to)f(enforce)h(ordering)g(b)q
(et)o(w)o(een)g(comm)o(unications.)25 b(All)18 b(put/get)e(calls)75
2258 y(issued)11 b(with)g(the)g(same)f(comm)o(unicator)g(b)q(efore)g(the)h
(command)f Fj(MPI)p 1270 2258 14 2 v 16 w(FENCE)g Fq(is)h(issued)h(will)g
(complete,)75 2314 y(b)q(oth)i(with)f(resp)q(ect)h(to)f(origin)h(and)g
(target)e(bu\013ers,)h(b)q(efore)h(an)o(y)f(put/get)g(call)i(issued)f(after)f
(the)g(fence)75 2371 y(will)23 b(execute.)39 b(The)22 b Fj(MPI)p
551 2371 V 16 w(FENCE)g Fq(call)g(itself)h(ma)o(y)d(return)i(immediately)l(,)
i(b)q(efore)e(the)f(preceding)75 2427 y(comm)o(unications)16
b(ha)o(v)o(e)f(completed.)189 2533 y Fc(A)n(dvic)n(e)k(to)j(implementors.)69
b Fq(A)20 b(v)m(alid)i(implemen)o(tation)f(is)g(that)e(the)i(call)g(blo)q(c)o
(ks)g(un)o(til)g(all)189 2590 y(preceding)16 b(put/get)f(calls)h(ha)o(v)o(e)f
(completed.)21 b(\()p Fc(End)15 b(of)i(advic)n(e)f(to)h(implementors.)p
Fq(\))1967 46 y Ff(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
bop 75 -100 a Fm(1.3.)34 b(RMW)15 b(OPERA)l(TIONS)1209 b Fq(13)75
49 y Fj(MPI)p 160 49 14 2 v 16 w(GFENCE\(comm)m(\))117 126
y Fi(IN)155 b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))75
251 y Fh(int)23 b(MPI)p 245 251 15 2 v 17 w(gfence\(MPI)p 502
251 V 16 w(Comm)g(comm\))75 337 y(MPI)p 150 337 V 17 w(GFENCE\(COMM,)f
(IERROR\))170 394 y(INTEGER)h(COMM,)h(IERROR)166 480 y Fq(Lik)o(e)18
b Fj(FENCE)p Fq(,)f(except)h(that)f(the)g(action)g(is)h(global:)25
b(an)o(y)16 b(put/get)h(submitted)h(at)f(a)g(pro)q(cess)g(in)75
537 y(the)c(group)h(of)e Fj(comm)c Fq(after)13 b(the)g(call)h(to)f(F)l(ence)h
(will)h(not)e(start)f(un)o(til)j(all)f(put/get)f(requests)g(submitted)75
593 y(at)i(an)o(y)f(pro)q(cess)i(in)g(the)f(group)g(b)q(efore)h(the)f(call)h
(ha)o(v)o(e)f(completed.)166 726 y Fg(Discussion:)45 b Fi(Do)16
b(w)o(e)h(really)f(need)h(all)f(six)g(functions?)27 b(An)16
b Fd(GSYNC)g Fi(call)g(is)h(equiv)n(alen)o(t)f(to)g(a)g Fd(SYNC)75
775 y Fi(call,)e(follo)o(w)o(ed)g(b)o(y)h(a)g(global)f(barrier;)i(but)f(one)h
(can)f(exp)q(ect)i(that)f(a)f(direct)h(implemen)o(tati)o(on)d(w)o(ould)h(b)q
(e)i(more)75 825 y(e\016cien)o(t.)21 b(F)m(ence)16 b(calls)f(are)g(useful)g
(to)g(condition)f(some)g(comm)o(unicatio)o(n)e(\(e.g.,)i(a)h(put\))g(on)g
(some)f(other)h(\(e.g.,)75 875 y(a)f(get\),)f(without)h(needing)g(some)f
(computation)f(in)i(b)q(et)o(w)o(een.)166 932 y(One)g(p)q(ossibilit)o(y)d(is)
i(to)g(delete)h(the)f(F)m(ence)h(calls,)e(but)h(sp)q(ecify)h(that)f(the)g
Fd(ISYNC)f Fi(and)h Fd(IGSYNC)e Fi(also)i(act)g(as)75 988 y(fences.)75
1214 y Fn(1.3)59 b(RMW)19 b(op)r(erations)75 1315 y Fq(Remote)12
b(Read)p 343 1315 14 2 v 17 w(Mo)q(dify)p 501 1315 V 16 w(W)l(rite)g(op)q
(erations)g(pro)o(vide)g(atomic)f(test)g(and)h(up)q(date)g(of)f(a)g(remote)g
(v)m(ariable.)75 1372 y(They)17 b(can)h(b)q(e)g(used)f(to)g(implemen)o(t)i
(sync)o(hronization)f(op)q(erations)f(suc)o(h)h(as)e(semaphores,)i(coun)o
(ting)75 1428 y(semaphores,)d(etc.)75 1579 y Fj(MPI)p 160 1579
V 16 w(RMW\(op,)g(invalue,)g(ta)o(rgetva)o(r,)f(datat)o(yp)q(e,)i(dest,)g
(comm)n(,)11 b(returnval\))117 1656 y Fi(IN)155 b Fj(op)541
b Fi(read-mo)q(dify-write)12 b(op)q(eration)i(\(handle\))117
1732 y(IN)155 b Fj(invalue)456 b Fi(lo)q(cal)13 b(input)h(\(c)o(hoice\))117
1807 y(INOUT)62 b Fj(ta)o(rgetva)o(r)417 b Fi(target)15 b(v)n(ariable)d(\(c)o
(hoice\))117 1882 y(IN)155 b Fj(datat)o(yp)q(e)424 b Fi(datat)o(yp)q(e)14
b(of)g(v)n(ariables)117 1957 y(IN)155 b Fj(dest)511 b Fi(rank)14
b(of)f(remote)h(pro)q(cess)i(\(in)o(teger\))117 2032 y(IN)155
b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))117 2107
y(OUT)108 b Fj(returnval)419 b Fi(lo)q(cal)13 b(output)h(\(c)o(hoice\))75
2232 y Fh(int)23 b(MPI)p 245 2232 15 2 v 17 w(Rmw\(MPI)p 430
2232 V 16 w(Rmw)p 518 2232 V 17 w(op)h(op,)f(void)h(*invalue,)e(void)i
(*targetvar,)e(MPI)p 1538 2232 V 17 w(Datatype)393 2288 y(datatype,)h(int)g
(dest,)g(MPI)p 945 2288 V 17 w(Comm)h(comm,)f(void)g(*returnval\))75
2375 y(MPI)p 150 2375 V 17 w(RMW\(OP,)g(INVALUE,)f(TARGETVAR,)h(DATATYPE,)g
(DEST,)g(COMM,)g(RETURNVAL,)f(IERROR\))170 2431 y(<type>)h(INVALUE,)g
(TARGETVAR,)g(RETURNVAL)170 2488 y(INTEGER)g(OP,)h(DATATYPE,)e(DEST,)i(COMM,)
f(IERROR)166 2574 y Fq(Executes)16 b(an)g(atomic)g(read)p 661
2574 14 2 v 16 w(mo)q(dify)p 814 2574 V 17 w(write)g(op)q(eration)g(on)g(a)g
(remote)f(v)m(ariable.)24 b Fh(inputval)15 b Fq(and)75 2630
y Fh(returnval)j Fq(are)h(addresses)g(in)h(lo)q(cal)g(memory)l(,)g(and)f
Fh(targetvar)f Fq(is)i(the)f(address)g(in)h(the)g(memory)75
2687 y(of)e(the)h(remote)f(pro)q(cess)g(sp)q(eci\014ed)j(b)o(y)d
Fh(dest)g Fq(and)h Fh(comm)p Fq(.)29 b(Eac)o(h)18 b(of)g(these)h(three)g(lo)q
(cations)g(con)o(tain)-32 46 y Ff(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
bop 75 -100 a Fq(14)723 b Fm(CHAPTER)15 b(1.)35 b(ONE)16 b(SIDED)f(COMMUNICA)
l(TIONS)75 49 y Fq(a)22 b(v)m(ariable)i(of)d(the)i(t)o(yp)q(e)f(sp)q
(eci\014ed)i(b)o(y)f(the)f(basic)h(datat)o(yp)q(e)f Fh(datatype)p
Fq(.)39 b(The)23 b(remote)f(v)m(ariable)75 106 y Fh(targetvar)17
b Fq(is)h(up)q(dated)h(as)f(a)f(function)i(of)f(its)g(previous)h(v)m(alue)g
(and)f(the)g(v)m(alue)h(of)f Fh(inputval)p Fq(;)g(the)75 162
y(old)e(v)m(alue)g(of)f Fh(targetvar)f Fq(is)i(returned)g(in)g
Fh(returnval)p Fq(.)j(The)d(outcome)e(corresp)q(onds)i(to)f(the)g(atomic)75
219 y(execution)h(of)f(the)g(follo)o(wing)h(co)q(de.)75 315
y Fh(retrunval)23 b(=)g(targetvar;)75 371 y(targetvar)g(=)g(targetvar)g(op)h
(inputval;)166 467 y Fq(Prede\014ned)16 b(op)q(erations)g(include:)75
563 y Fe(T)l(est&Set:)22 b Fh(a)i(op)f(b)h(=)g(a||b)p Fq(.)41
b(Th)o(us,)24 b(if)f Fh(sendvar)f Fq(is)h(1,)g(then)g Fh(destvar)f
Fq(is)h(set)f(to)g(1)g(and)h(the)189 620 y(previous)14 b(v)m(alue)h(of)e
Fh(destvar)g Fq(is)h(returned)g(in)g Fh(sendvar)p Fq(.)19 b(Supp)q(orted)14
b(datat)o(yp)q(es)f(are)g(C)h(in)o(teger)189 676 y(and)h(Logical)h(\(see)f
(Section)h(4.9.2)e(of)h(MPI)g(do)q(cumen)o(t\).)75 767 y Fe(T)l(est&Or:)22
b Fh(a)h(op)h(b)g(=)f(a|b)p Fq(.)f(Bit)o(wise)17 b(OR,)f(rather)g(than)f(Bo)q
(olean)i(OR,)f(th)o(us)g(executing)h(m)o(ultiple)189 823 y(test&set)11
b(op)q(erations)h(sim)o(ultaneously)l(.)20 b(Datat)o(yp)q(e)10
b(is)i(C)g(in)o(teger,)g(F)l(ortran)e(in)o(teger,)i(Byte.)19
b(Can)189 880 y(b)q(e)d(extended)g(to)e Fh(Test&And,)23 b(Test&Xor)p
Fq(.)75 971 y Fe(F)l(etc)o(h&Add:)e Fh(a)j(op)f(b)h(=)g(a+b)p
Fq(.)19 b(C)c(in)o(teger,)g(F)l(ortran)f(in)o(teger,)h(Floating)h(p)q(oin)o
(t,)f(Complex.)75 1062 y Fe(Compare&Sw)o(ap:)21 b Fh(a)j(op)f(\(b1,b2\))g(=)h
(\(a==b1\)?)47 b(b2:a)p Fq(.)18 b(C)13 b(in)o(teger,)g(F)l(ortran)e(in)o
(teger)i(\(includ-)189 1118 y(ing)19 b Fh(MPI)p 343 1118 15
2 v 17 w(Aint)p Fq(\).)30 b(Note)19 b(that,)f(for)h(this)g(op)q(eration,)h
(one)f(pro)o(vides)g(t)o(w)o(o)f(lo)q(cal)i(v)m(alues,)g(stored)189
1175 y(consecutiv)o(ely)l(.)30 b(Also,)19 b(it)f(migh)o(t)g(b)q(e)h(more)e
(con)o(v)o(enien)o(t)i(to)e(return)h(T)l(rue)h(if)f(sw)o(ap)g(succeeded,)189
1231 y(F)l(alse,)d(if)g(it)h(failed,)g(rather)f(than)g(the)g(remote)g(v)m
(alue.)166 1327 y(The)h(calls)h(is)f(blo)q(c)o(king,)h(i.e.,)f(con)o(trol)g
(do)q(es)g(not)f(return)h(to)g(the)g(caller)h(till)g(the)f(op)q(eration)g
(com-)75 1384 y(pletes.)j(Note)11 b(that)f(unlik)o(e)j(the)e(data)g(transfer)
f(calls,)j(the)e(RMW)g(calls)h(do)f(not)g(pro)o(vide)g(an)o(y)g(indication)75
1440 y(of)k(completion)h(on)f(the)h(target)d(pro)q(cess.)166
1497 y(It)e(is)h(erroneous)g(to)f(directly)h(access)g(v)m(ariables)h(that)e
(ma)o(y)f(b)q(e)j(accessed)f(using)g(RMW)f(op)q(erations.)75
1553 y(These)16 b(v)m(ariable)h(should)g(only)f(b)q(e)g(accessed)g(using)h
(RMW)e(calls,)i(ev)o(en)f(if)g(the)g(v)m(ariables)g(are)g(lo)q(cal)h(to)75
1609 y(a)i(pro)q(cess.)33 b(In)20 b(other)f(w)o(ords,)g(the)g(target)g(pro)q
(cess)g(ma)o(y)g(not)g(directly)i(load)e(or)g(store)g(in)o(to)g(RMW)75
1666 y(v)m(ariables.)i(Also,)14 b Fc(get)f Fq(or)g Fc(put)h
Fq(calls)h(ma)o(y)e(not)g(access)h(the)g(RMW)f(v)m(ariables.)21
b(If)13 b(these)h(restrictions)g(are)75 1722 y(violated,)i(the)f(RMW)g(op)q
(erations)g(are)g(not)g(guaran)o(teed)g(to)f(b)q(e)i(atomic.)75
1873 y Fj(MPI)p 160 1873 14 2 v 16 w(IRMW\(op,)e(invalue,)i(ta)o(rgetva)o(r,)
d(datat)o(yp)q(e,)k(dest,)f(comm)m(,)c(returnval,)j(request\))117
1950 y Fi(IN)155 b Fj(op)541 b Fi(read-mo)q(dify-write)12 b(op)q(eration)i
(\(handle\))117 2024 y(IN)155 b Fj(invalue)456 b Fi(lo)q(cal)13
b(input)h(\(c)o(hoice\))117 2098 y(INOUT)62 b Fj(ta)o(rgetva)o(r)417
b Fi(target)15 b(v)n(ariable)d(\(c)o(hoice\))117 2172 y(IN)155
b Fj(datat)o(yp)q(e)424 b Fi(datat)o(yp)q(e)14 b(of)g(v)n(ariables)117
2245 y(IN)155 b Fj(dest)511 b Fi(rank)14 b(of)f(remote)h(pro)q(cess)i(\(in)o
(teger\))117 2319 y(IN)155 b Fj(comm)466 b Fi(comm)o(unicator)11
b(\(handle\))117 2393 y(OUT)108 b Fj(returnval)419 b Fi(lo)q(cal)13
b(output)h(\(c)o(hoice\))117 2466 y(OUT)108 b Fj(request)452
b Fi(RMW)13 b(comm)o(unication)e(request)k(\(handle\))75 2591
y Fh(int)23 b(MPI)p 245 2591 15 2 v 17 w(Rmw\(MPI)p 430 2591
V 16 w(Rmw)p 518 2591 V 17 w(op)h(op,)f(void)h(*invalue,)e(void)i
(*targetvar,)e(MPI)p 1538 2591 V 17 w(Datatype)393 2647 y(datatype,)h(int)g
(dest,)g(MPI)p 945 2647 V 17 w(Comm)h(comm,)f(void)g(*returnval,)393
2704 y(MPI)p 468 2704 V 17 w(Request)g(*request\))1967 46 y
Ff(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
bop 75 -100 a Fm(1.4.)34 b(COMMUNICA)l(TION)16 b(HANDLERS)962
b Fq(15)75 49 y Fh(MPI)p 150 49 15 2 v 17 w(RMW\(OP,)23 b(INVALUE,)f
(TARGETVAR,)h(DATATYPE,)g(DEST,)g(COMM,)g(RETURNVAL,)f(REQUEST,)393
106 y(IERROR\))170 162 y(<type>)h(INVALUE,)g(TARGETVAR,)g(RETURNVAL)170
219 y(INTEGER)g(OP,)h(DATATYPE,)e(DEST,)i(COMM,)f(REQUEST,)g(IERROR)166
305 y Fq(The)16 b(corresp)q(onding)g(non-blo)q(c)o(king)h(Read-Mo)q(dify-W)l
(rite)g(call.)22 b(It)15 b(has)h(an)f(additional)i(request)75
362 y(parameter)d(that)h(is)h(used)f(for)g(testing)g(for)g(the)g(completion)h
(of)f(the)g(op)q(eration.)166 501 y Fg(Discussion:)34 b Fi(Should)13
b(Sync)o(h)h(calls)g(also)f(sync)o(hronize)i(RMW)e(calls?)166
722 y Fg(Missing:)46 b Fi(Need)18 b(to)f(add)f(user-de\014ned)j(sync)o
(hronization)e(op)q(erations,)g(similar)d(to)j(user-de\014ned)h(col-)75
779 y(lectiv)o(e)g(reduce)h(op)q(erations.)29 b(E.g.,)16 b(w)o(e)i(ma)o(y)e
(w)o(an)o(t)h(to)g(de\014ne)h(a)f(Compare&Sw)o(ap)g(op)q(eration)g(that)g
(tak)o(es)h(a)75 835 y(pair)d(of)g(op)q(erands,)i Fa(\(rank,)j(address\))p
Fi(,)14 b(and)i(use)g(this)g(op)q(eration)f(to)h(manipulate)d(distributed)k
(link)o(ed)e(lists.)75 892 y(The)20 b(calls)f(de\014ned)i(in)e(this)h
(section)g(do)f(not)h(c)o(hange,)h(one)e(adds)h Fd(MPI)p 1258
892 13 2 v 14 w(RMW)p 1374 892 V 16 w(OP)p 1448 892 V 14 w(INIT\(function,)h
(op\))f Fi(and)75 948 y Fd(MPI)p 152 948 V 14 w(RMW)p 268 948
V 16 w(OP)p 342 948 V 14 w(FREE\(op\))13 b Fi(calls.)75 1174
y Fn(1.4)59 b(Communication)17 b(handlers)75 1276 y Fq(In)f(man)o(y)f
(situations)h(it)g(is)g(desirable)h(to)e(in)o(v)o(ok)o(e,)g(up)q(on)h
(message)f(arriv)m(al,)h(a)f(message)g(handler.)22 b(The)75
1332 y(send&call)c(and)e(receiv)o(e&call)j(functions)e(in)o(tro)q(duced)g(b)q
(elo)o(w)f(can)h(b)q(e)f(used)h(to)e(implemen)o(t)j(the)e(gen-)75
1389 y(eralized)22 b(requests)e(in)o(tro)q(duced)h(in)g(the)f(External)g(In)o
(terface)g(c)o(hapter;)i(they)e(can)g(also)g(b)q(e)h(used)g(to)75
1445 y(implemen)o(t)f(new)g(non)o(blo)q(c)o(king)g(calls,)h(suc)o(h)e(as)g
(non)o(blo)q(c)o(king)h(comm)o(unication)g(or)f(task)f(spa)o(wning.)75
1501 y(Con)o(v)o(ersely)l(,)13 b(the)f(generalized)i(requests)f(of)f(the)g
(External)h(In)o(terface)f(c)o(hapter)g(are)g(more)g(general)h(than)75
1558 y(the)k(send&call)i(and)e(receiv)o(e&call)j(functions)d(discussed)i
(here,)e(and)h(can)f(b)q(e)g(used)h(to)e(implemen)o(ted)75
1614 y(those.)75 1765 y Fj(MPI)p 160 1765 14 2 v 16 w(HRECV\()g(buf,)f
(count,)h(datat)o(yp)q(e,)h(source,)e(tag,)g(comm)m(,)d(status,)17
b(extra)p 1387 1765 V 16 w(state,)f(handler\))117 1843 y Fi(OUT)108
b Fj(buf)527 b Fi(initial)12 b(address)j(of)f(receiv)o(e)h(bu\013er)g(\(c)o
(hoice\))117 1918 y(IN)155 b Fj(count)482 b Fi(n)o(um)o(b)q(er)13
b(of)h(elemen)o(ts)f(in)h(receiv)o(e)h(bu\013er)g(\(in)o(teger\))117
1993 y(IN)155 b Fj(datat)o(yp)q(e)424 b Fi(datat)o(yp)q(e)14
b(of)g(eac)o(h)g(receiv)o(e)h(bu\013er)g(elemen)o(t)e(\(handle\))117
2068 y(IN)155 b Fj(source)468 b Fi(rank)14 b(of)f(source)j(\(in)o(teger\))117
2143 y(IN)155 b Fj(tag)526 b Fi(message)14 b(tag)f(\(in)o(teger\))117
2218 y(IN)155 b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))117
2293 y(IN)155 b Fj(extra)p 416 2293 V 17 w(state)384 b Fi(extra)15
b(state)f(for)g(handler)117 2368 y(OUT)108 b Fj(status)476
b Fi(status)15 b(ob)r(ject)117 2444 y(IN)155 b Fj(handler)449
b Fi(receiv)o(e)15 b(handler)f(\(function\))75 2568 y Fh(int)23
b(MPI)p 245 2568 15 2 v 17 w(Hrecv\(void*)g(buf,)g(int)g(count,)g(MPI)p
1002 2568 V 17 w(Datatype)g(datatype,)g(int)g(source,)393 2625
y(int)h(tag,)f(MPI)p 683 2625 V 17 w(Comm)g(comm,)g(MPI)p 1034
2625 V 17 w(Status)g(*status,)g(void)g(*extra)p 1696 2625 V
16 w(state,)393 2681 y(MPI)p 468 2681 V 17 w(Hrecv)p 605 2681
V 16 w(handler)g(*handler\))-32 46 y Ff(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
bop 75 -100 a Fq(16)728 b Fm(CHAPTER)15 b(1.)30 b(ONE)16 b(SIDED)f(COMMUNICA)
l(TIONS)75 49 y Fh(MPI)p 150 49 15 2 v 17 w(IRECV\(BUF,)22
b(COUNT,)h(DATATYPE,)g(SOURCE,)g(TAG,)g(COMM,)g(EXTRA)p 1408
49 V 17 w(STATE,)g(IERROR\))170 106 y(<type>)g(BUF\(*\))170
162 y(INTEGER)g(COUNT,)g(DATATYPE,)g(SOURCE,)g(TAG,)g(COMM,)g(STATUS\(MPI)p
1463 162 V 16 w(STATUS)p 1623 162 V 17 w(SIZE\),)170 219 y(EXTRA)p
293 219 V 17 w(STATE,)g(IERROR)170 275 y(PROCEDURE)g(HANDLER)166
362 y Fq(Beha)o(v)o(es)18 b(iden)o(tically)i(to)e Fh(MPI)p
700 362 V 17 w(IRECV)p Fq(,)f(except)h(that,)g(after)f(message)h(reception)h
(is)f(completed,)75 418 y(the)d(function)h(indicated)h(b)o(y)e
Fh(handler)g Fq(is)g(in)o(v)o(ok)o(ed.)20 b Fh(handler)15 b
Fq(is)g(a)g(p)q(oin)o(ter)h(to)e(a)h(function)h(of)f(t)o(yp)q(e)75
506 y Fh(typedef)23 b(int)g(MPI_Hrecv_handler\()f(void)h(*extra_state,)f
(MPI_status)h(*status\))166 594 y Fq(in)16 b(C,)f(and)g(of)g(t)o(yp)q(e)75
683 y Fh(PROCEDURE)46 b(MPI_HRECV_HANDLER\()22 b(EXTRA_STATE,)46
b(STATUS,)23 b(IERR\))99 739 y(INTEGER)70 b(EXTRA_STATE,)23
b(STATUS\(MPI_STATUS_SIZE\),)d(IERR)166 827 y Fq(in)g(F)l(ortran.)31
b(When)20 b(in)o(v)o(ok)o(ed)f(b)o(y)g(MPI,)g(the)g(receiv)o(e)i(handler)f
(is)g(passed)f(the)g Fj(extra)p 1694 827 14 2 v 17 w(state)h
Fq(ar-)75 884 y(gumen)o(t)g(and)g(and)h(a)e Fj(status)k Fq(argumen)o(t)c
(that)g(con)o(tains)i(information)f(on)g(the)g(completed)h(Receiv)o(e)75
940 y(\(coun)o(t,)14 b(tag,)f(source)i(and)f(error)g(co)q(de\).)20
b(If)15 b(an)f(error)g(o)q(ccur)h(during)g(the)g(receiv)o(e)g(op)q(eration)g
(then)g(the)75 997 y(error)d(co)q(de)i(is)f(passed)g(to)f(the)h(receiv)o(e)h
(handler)g(via)f(the)g(status)f(argumen)o(t)g(\(this,)h(assuming)g(the)g
(error)75 1053 y(is)j(not)f(fatal;)f(the)h(regular)h(error)e(handler)i(is)g
(in)o(v)o(ok)o(ed)f(\014rst\).)166 1192 y Fg(Discussion:)35
b Fi(Is)14 b(an)g(exception)h(during)f(the)h(execution)f(of)g(the)h(handler)f
(treated)h(as)g(an)e(MPI)i(comm)o(u-)75 1249 y(nication)e(error?)75
1482 y Fj(MPI)p 160 1482 V 16 w(HSEND\()i(buf,)h(count,)g(datat)o(yp)q(e,)g
(dest,)h(tag,)d(comm)n(,)d(extra)p 1205 1482 V 17 w(state,)16
b(handler\))117 1560 y Fi(OUT)108 b Fj(buf)527 b Fi(initial)12
b(address)j(of)f(receiv)o(e)h(bu\013er)g(\(c)o(hoice\))117
1632 y(IN)155 b Fj(count)482 b Fi(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f(in)
h(receiv)o(e)h(bu\013er)g(\(in)o(teger\))117 1705 y(IN)155
b Fj(datat)o(yp)q(e)424 b Fi(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(receiv)o(e)h
(bu\013er)g(elemen)o(t)e(\(handle\))117 1777 y(IN)155 b Fj(dest)511
b Fi(rank)14 b(of)f(destination)h(\(in)o(teger\))117 1850 y(IN)155
b Fj(tag)526 b Fi(message)14 b(tag)f(\(in)o(teger\))117 1922
y(IN)155 b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))117
1995 y(IN)155 b Fj(extra)p 416 1995 V 17 w(state)384 b Fi(extra)15
b(state)f(for)g(handler)g(function)117 2067 y(IN)155 b Fj(handler)449
b Fi(send)15 b(handler)f(\(function\))75 2192 y Fh(int)23 b(MPI)p
245 2192 15 2 v 17 w(Hsend\(void*)g(buf,)g(int)g(count,)g(MPI)p
1002 2192 V 17 w(Datatype)g(datatype,)g(int)g(dest,)393 2248
y(int)h(tag,)f(MPI)p 683 2248 V 17 w(Comm)g(comm,)g(void)h(*extra)p
1226 2248 V 16 w(state,)393 2305 y(MPI)p 468 2305 V 17 w(Handler)f
(*handler\))75 2391 y(MPI)p 150 2391 V 17 w(IRECV\(BUF,)f(COUNT,)h(DATATYPE,)
g(SOURCE,)g(TAG,)g(COMM,)g(IERROR\))170 2448 y(<type>)g(BUF\(*\))170
2504 y(INTEGER)g(COUNT,)g(DATATYPE,)g(DEST,)g(TAG,)h(COMM,)f(EXTRA)p
1296 2504 V 16 w(STATE,)g(IERROR)170 2561 y(PROCEDURE)g(MPI)p
484 2561 V 17 w(HANDLER)166 2647 y Fq(Beha)o(v)o(es)16 b(iden)o(tically)i(to)
d Fh(MPI)p 693 2647 V 17 w(ISEND)p Fq(,)f(except)i(that,)f(after)g(send)h
(has)g(completed,)g(the)g(function)75 2704 y(indicated)h(b)o(y)e
Fh(handler)f Fq(is)i(in)o(v)o(ok)o(ed.)k(The)c(send)f(handler)i(function)f
(is)f(of)g(t)o(yp)q(e)1967 46 y Ff(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
bop 75 -100 a Fm(1.4.)34 b(COMMUNICA)l(TION)16 b(HANDLERS)962
b Fq(17)75 49 y Fh(typedef)23 b(int)g(MPI_Hsend_handler\()f(void)h
(*extra_state\))166 133 y Fq(in)16 b(C,)f(and)g(of)g(t)o(yp)q(e)75
216 y Fh(PROCEDURE)46 b(MPI_HSEND_HANDLER\()22 b(EXTRA_STATE,)g(IERR\))99
272 y(INTEGER)70 b(EXTRA_STATE,)47 b(IERR)166 356 y Fq(in)13
b(F)l(ortran.)k(When)c(in)o(v)o(ok)o(ed)f(b)o(y)g(MPI,)g(the)g(send)g
(handler)i(is)e(passed)g(the)h Fj(extra)p 1557 356 14 2 v 16
w(state)g Fq(argumen)o(t.)75 507 y Fj(MPI)p 160 507 V 16 w(HLOCK\(com)o(m)n
(\))117 584 y Fi(IN)155 b Fj(comm)466 b Fi(comm)o(unicator)11
b(\(handle\))75 708 y Fh(int)23 b(MPI)p 245 708 15 2 v 17 w(Hlock\(MPI)p
478 708 V 16 w(Comm)g(comm\))75 795 y(MPI)p 150 795 V 17 w(HLOCK\()g(COMM,)g
(IERR\))170 851 y(INTEGER)g(COMM,)h(IERR)75 1032 y Fj(MPI)p
160 1032 14 2 v 16 w(HUNLOCK\(comm)m(\))117 1109 y Fi(IN)155
b Fj(comm)466 b Fi(comm)o(unicator)11 b(\(handle\))75 1234
y Fh(int)23 b(MPI)p 245 1234 15 2 v 17 w(Hunlock\(MPI)p 526
1234 V 16 w(Comm)g(comm\))75 1320 y(MPI)p 150 1320 V 17 w(HUNLOCK\()g(COMM,)g
(IERR\))170 1377 y(INTEGER)g(COMM,)h(IERR)166 1463 y Fq(The)17
b(call)h Fj(MPI)p 431 1463 14 2 v 16 w(HLOCK)f Fq(disables)h(the)f(execution)
h(of)f(comm)o(unication)h(handlers)g(in)f(comm)o(uni-)75 1520
y(cations)e(that)f(use)h(the)g(comm)o(unicator)g Fj(comm)m
Fq(.)i(The)e(call)h Fj(MPI)p 1189 1520 V 15 w(UNLOCK)f Fq(enables)h(them)f
(bac)o(k.)20 b(The)75 1576 y(calls)14 b(can)f(b)q(e)h(executed)g(within)g(a)f
(handler,)h(in)g(whic)o(h)g(case)f Fj(MPI)p 1209 1576 V 16
w(HLOCK)g Fq(disables)h(execution)h(of)d(an)o(y)75 1633 y(additional)17
b(handler.)166 1772 y Fg(Discussion:)34 b Fi(Ma)o(y)14 b(w)o(an)o(t)f
(\014ner)i(\(p)q(er)g(handler)f(t)o(yp)q(e\))h(or)f(coarser)h(\(global\))e
(lo)q(c)o(king)g(gran)o(ularit)o(y)m(.)k(Note)75 1828 y(that)c(an)g(implem)o
(en)o(tation)d(that)j(disables)g(all)f(handlers,)h(not)g(just)g(those)h(asso)
q(ciated)f(with)g Fd(comm)m Fi(,)d(is)j(incorrect)75 1885 y(\(it)h(violates)f
(the)h(progress)i(rule\).)166 2024 y Fq(Handlers)g(are)f(in)o(v)o(ok)o(ed)h
(within)h(the)e(same)h(thread)f(of)g(execution)i(as)e(the)g(Hsend)h(or)f
(Hrecv)h(call.)75 2080 y(They)f(can)h(execute)g(MPI)f(calls,)h(with)f(no)g
(restrictions.)166 2213 y Fg(Discussion:)33 b Fi(What)13 b(happ)q(ens)h(if)e
(the)i(calling)e(thread)i(is)f(blo)q(c)o(k)o(ed)g(\(not)g(necessarily)h(on)f
(a)g(comm)o(unica-)75 2263 y(tion\)?)18 b(Will)12 b(the)i(handler)g
(execution)h(b)q(e)f(dela)o(y)o(ed)g(un)o(til)f(it)h(un)o(blo)q(c)o(ks?)166
2312 y(Additional)d(constructs)k(ma)o(y)10 b(b)q(e)k(required)f(for)f(in)o(v)
o(oking)f(handlers)i(that)g(execute)h(in)f(a)f(separate)i(thread.)166
2369 y(Since)19 b(w)o(e)g(allo)o(w)e(arbitrary)h(comm)o(unication)e(calls)i
(within)g(the)h(handler,)g(this)g(will)e(include)i(blo)q(c)o(king)75
2425 y(comm)o(unication)10 b(calls)k(and)g(also)f(receiv)o(e&call.)19
b(Handler)14 b(in)o(v)o(o)q(cations)f(can)h(b)q(e)g(nested.)166
2647 y Fg(Missing:)38 b Fd(MPI)p 456 2647 13 2 v 14 w(HBSEND,)15
b(MPI)p 736 2647 V 14 w(HSSEND,)g(MPI)p 1011 2647 V 14 w(HRSEND)p
Fi(,)g(for)f(the)i(other)f(comm)o(unicatio)o(n)d(mo)q(des;)75
2704 y Fd(MPI)p 152 2704 V 14 w(HSENDRECV)i Fi(and)f Fd(MPI)p
578 2704 V 15 w(SENDRECV)p 807 2704 V 14 w(REPLA)o(CE)p Fi(;)e(blo)q(c)o
(king)i(and)h(p)q(ersisten)o(t)i(v)o(ersions)e(of)f(those.)-32
46 y Ff(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
bop 75 381 a Fo(Bibliograph)m(y)952 2828 y Fq(18)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF