%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86e Copyright 2001 Radical Eye Software
%%Title: rbset.dvi
%%Pages: 10
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips rbset.dvi -o rbset.ps
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2003.06.06:1417
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 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 IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A 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/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end

%%EndProcSet
TeXDict begin 39158280 55380996 1000 600 600 (rbset.dvi)
@start
%DVIPSBitmapFont: Fa cmsy8 8 1
/Fa 1 49 df<137813FE1201A3120313FCA3EA07F8A313F0A2EA0FE0A313C0121F1380A3
EA3F00A3123E127E127CA35AA35A0F227EA413>48 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fb cmmi12 12 22
/Fb 22 121 df<EC03FCEC1FFF9138FE07C0903903F001F049486C7ED91FC06D130E4948
137C49C76C130C01FE143F4848161C48486E131800071680491638000F173048481670EF
C060485A18E0040F13C0484815C1188017C300FFEEC70090C813C617CE17DCEE1FD84816
F85F5F5FA5007E153F167F6C03EF1338ED03CF6C6CD90F0713306C6C011C14706C6C9039
F803E0E03C01F00FE001E1C026007FFFC7EAFF80D91FF0EC3E00372D7CAB3E>11
D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>58 D<121EEA7F8012FF13C0A2
13E0A3127FEA1E601200A413E013C0A312011380120313005A1206120E5A5A5A12600B1D
78891B>I<F001C0F007E0181FF07FC0943801FF00EF07FCEF1FF0EF7FC04C48C7FCEE0F
FCEE3FF0EEFFC0030390C8FCED0FF8ED3FE0EDFF80DA03FEC9FCEC1FF8EC7FE0903801FF
80D907FECAFCEB1FF0EB7FC04848CBFCEA07FCEA1FF0EA7FC048CCFCA2EA7FC0EA1FF0EA
07FCEA01FF38007FC0EB1FF0EB07FE903801FF809038007FE0EC1FF8EC03FE913800FF80
ED3FE0ED0FF8ED03FF030013C0EE3FF0EE0FFCEE01FF9338007FC0EF1FF0EF07FCEF01FF
9438007FC0F01FE01807F001C03B3878B44C>I<1618163C167CA2167816F8A216F01501
A216E01503A216C01507A21680150FA2ED1F00A2151E153EA2153C157CA2157815F8A25D
1401A24A5AA25D1407A25D140FA292C7FC5CA2141E143EA2143C147CA25CA25C1301A25C
1303A25C1307A25C130FA291C8FC5BA2133EA2133C137CA2137813F8A25B1201A25B1203
A2485AA25B120FA290C9FC5AA2121E123EA2123C127CA2127812F8A25A126026647BCA31
>I<127012FCB4FCEA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FE903801FF8090
38007FE0EC1FF8EC03FE913800FF80ED3FE0ED0FF8ED03FF030013C0EE3FF0EE0FFCEE01
FF9338007FC0EF1FF0EF07FCEF01FF9438007FC0F01FE0A2F07FC0943801FF00EF07FCEF
1FF0EF7FC04C48C7FCEE0FFCEE3FF0EEFFC0030390C8FCED0FF8ED3FE0EDFF80DA03FEC9
FCEC1FF8EC7FE0903801FF80D907FECAFCEB1FF0EB7FC04848CBFCEA07FCEA1FF0EA7FC0
48CCFC12FC12703B3878B44C>I<91B912FCA3020001C0C7123F6F48EC03F803FF150119
0093C91278A21A385C5DA3020317305DA314074B1460A218E0020F4B13005DA21701021F
5D4B13031707170F023F027FC8FC92B6FCA391397FC0007E4B131EA2170E02FF140C92C7
FCA2171C49031813035C611906010392C7FC4A160E190C191C010717184A163819301970
130F4A5E180161011F16034A15074E5A013F163F4EC7FC4AEC03FF01FFED3FFEB9FCA260
46447CC348>69 D<027FB512F8A217F09139007FF000ED3FC0157FA25EA315FF93C7FCA3
5C5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92C8FCA35B5CA3
13035CA313075CA3130F5CA2131FA25CEB7FF0007FB512F0B6FCA22D447DC32B>73
D<EC0FC0EC7FF0903901F8381C903907E01C7E90380FC00E90393F0007FE496D5A13FE48
5A49130100035D485A120F491303001F5DA2485A1507007F5D5BA2150F00FF5D90C7FCA2
151F5E5AA2033F1330EE00701760A24B13E017C015FE007E130102031301003ED9073E13
80003F010E13036C011C14006C6C486C5A3A07C0F00F0E3A01FFC007FC3A007F0001F02C
2D7CAB33>97 D<EB0FE0EA07FFA338001FC0130F131FA25CA3133F91C8FCA35B137EA313
FE5BA312015BEC0FC0EC3FF00003EBF07C9038F3C03E9038F7001F01FE14804848130F49
14C05B16E0485A5BA3121F5BA2151F123F90C7FCA2153F4815C0127EA2157F16805A1600
5DA24A5A007C5CA24A5A4A5A5D003C130F003E495A001E495A001F017EC7FC6C5B3807C1
F03801FFC06C6CC8FC23467CC429>I<EE01FC16FFA3EE03F816011603A217F0A21607A2
17E0A2160FA217C0A2161FA21780A2163FA21700EC0FC091387FF07F903801F838903907
E01C7E90380FC00E90393F0007FE49130301FE5C485A491301120348485C120F49130312
1F5E485A1507127F495CA2150F12FF90C75BA2151FA2485DA2033F13301770EE0060A24B
13E017C015FE007E130102031301003ED9073E1380003F010E13036C011C14006C6C486C
5A3A07C0F00F0E3A01FFC007FC3A007F0001F02E467CC433>100
D<EC07F8EC3FFE903901FC0780903903F003C090390FC001E090381F8000017FC7FC01FE
1470485A484814F0000715E05B000F1401484814C015034848EB0780ED1F0015FC007FEB
1FF090B5128002F0C7FC0180C8FC12FF90C9FCA55AA41618007E15381670007F15E06CEC
01C0ED03806CEC07006C6C131E6D13383907E001F03901F00FC026007FFEC7FCEB1FF025
2D7CAB2D>I<EE07E0EE1FF8EE7C1CEEF80E923801F03E923803E07F17FFED07E116C117
FE92380FC0FC177817004B5AA4153F93C7FCA45D157EA491B61280A3DA00FCC7FCA31401
5DA414035DA414075DA4140F5DA5141F5DA4143F92C8FCA45C147EA45CA45C1301A25CA2
EA1C03007F5B12FF5C13075C4848C9FC12F8EA601EEA783CEA1FF0EA07C0305A7BC530>
I<141E143F5C5CA3147E143891C7FCAE133EEBFF803801C3C0380781E0380601F0120E12
1CEA180312381230A2EA700700605BA2EAE00F00C05BEA001F5CA2133F91C7FCA25B137E
13FE5BA212015BEC03800003140013F01207495A1406140E140CEBC01C141814385C0003
5BEBE1C0C6B45A013EC7FC19437DC121>105 D<EB03F8EA01FFA3380007F013031307A2
14E0A2130FA214C0A2131FA21480A2133FA21400A25BA2137EA213FEA25BA21201A25BA2
1203A25BA21207A25BA2120FA25BA2121FA25BA2123FA290C7FCA248136014E0007E13C0
A2130100FE138012FCA21303007C13005B1306EA3E0EEA1E1CEA0FF8EA03E015467CC41D
>108 D<01F8D903FCEC7F80D803FED91FFF903803FFE0D8071F903B7C0FC00F81F83E0E
0F80E007E01C00FC001C9026C3C0030178137C271807C700D9F0E0137E02CE902601F1C0
133E003801DCDAFB80133F003001D892C7FCD90FF814FF0070495C0060495CA200E04949
485CD8C01F187E4A5C1200040715FE013F6091C75BA2040F14014960017E5D1903041F5D
13FE494B130762043F160E0001060F130C4992C713C0191F4CED801C00031A1849027E16
38F2003004FE167000071A60494A16E0F201C0030192380F0380000FF18700494AEC03FE
D80380D90070EC00F84F2D7DAB55>I<D903E0EB3F80D90FF8EBFFE0903A1C7C03C0F890
3A383E07007C9026703F1E137E9026601F387F5D01E00160EB1F8001C013E04A5A00014A
14C0018090C7FCA200035B1300147EC7FC02FE143FA25CA20101157F18805CA2010315FF
18005C5F010714015F4A13035F010F14075F4C5A5F496C495A4CC7FC02B8137E02985B90
393F9C01F891388F07E0913803FF80DA00FCC8FC4990C9FCA2137EA213FEA25BA21201A2
5BA21203A21207B512F0A25C323F83AB31>112 D<01F8EB0FC0D803FEEB7FF0D8070FEB
F038000E903883C07C3A0C07C701FC001C13CE0018EBDC03003813D8003013F8D90FF013
F800709038E000E0006015005C12E0EAC01F5C1200A2133F91C8FCA35B137EA313FE5BA3
12015BA312035BA312075BA3120F5BEA0380262D7DAB2C>114 D<EC0FF0EC7FFE903901
F00F809039078001C049C712E0011E14605BED01F0491307A201F8EB0FE05B7FED03806D
90C7FC7F7F14F86DB47E15E06D13F86D7F01077F1300EC07FF140081ED3F80151F120E00
3FEC0F00487EA25D48C7121EA200FC5C12605D00705C6C495A6CEB07C0260F803FC7FC38
03FFFC38007FE0242D7BAB2E>I<141C147EA314FE5CA313015CA313035CA313075CA200
7FB512FCB6FC15F839000FC000A2131F5CA3133F91C7FCA35B137EA313FE5BA312015BA3
12035BA21570000714605B15E015C0000F130101C013801403EC070000071306140E5C6C
6C5A000113F03800FFC0013FC7FC1E3F7EBD23>I<013E140ED9FF80EB3F802603C3C013
7F380703E0380601F0120E121CD81803143F0038151F0030150FA2D87007140700605BA2
D8E00F150000C0497FEA001F4A5B1606133F91C7FC160E49140C137EA2161C01FE14185B
1638163016704848146016E05E150100005D15036D49C7FC1506017C130E017E5B6D1378
90380F81E06DB45AD900FEC8FC292D7DAB2F>118 D<02FCEB07E0903A03FF801FFC903A
0F07C0781E903A1C03E0E01F903A3801F1C07FD9700013804901FB13FF4848EBFF00495B
000316FE90C71438484A130012061401000E5C120CC7FC14035DA314075DA3140F5DA302
1F143817305D1770023F1460121E003F16E0267F807FEB01C0026F148000FF01EF1303D9
01CFEB070000FE903887C00E267C03835B3A3C0F01E0783A1FFC00FFE0D803F0EB3F8030
2D7EAB37>120 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fc ecti1200 12 10
/Fc 10 118 df<EFFFC00407EBF83F93381F807E93397E000F7F04F8EB1F7E4B48EB3FFE
0303147F4B4813FF19FC4B5A187E183D4B48EB01F8A31803033F15F093C7FCA218074B15
E0A2157E180F19C0A215FE91B8FC1980A2DA00FCC7121F0201153F4B1500A3600203157E
5DA218FE6014075D170160A2140F4B130360A3021F14074B5CA3050F1338023FEDC07892
C71470A3051F13F04AED80E0147E188119C0170F02FEED83804AEC0787F0C700EF01FEEF
0078494892C7FCA4495AA3001C5BEA7F0700FF5BA25C130F00FE90CBFCEAF81E12F0EA78
3CEA1FF0EA07C0405A83C539>29 D<EC1F80EC7FE0903901F07070903907C039F890380F
801D90381F001F013E6D5A137E5B484813075E485A120749130F000F5DA2485A151F003F
5D5BA2153F007F92C7FC90C7FCA25D157E12FEA29238FE0380EDFC071700A2007E13015E
913803F80E1407003E010F131E161C6C131C02385B3A0F80F078783A07C3E07C703A01FF
801FE03A007E000780292D76AB32>97 D<EB0FE0EA07FFA338001FC0130F131FA25CA313
3F91C8FCA35B137EA313FE5BA312015BEC1F80EC7FE03903F9E0F89038F3C07C9038F700
3E13FE48487F5BA2491480485AA25BA2121F5BA2153F123F90C7FCA2157F481500127EA2
5D5D5AA24A5AA24A5AA2007C5C4A5A140F5D4A5A003C49C7FC003E137E001E5B6C485A38
0783E03803FF80C648C8FC214676C42D>I<143C147E14FE1301A3EB00FC14701400AE13
7C48B4FC3803C780380703C0000F13E0120E121C13071238A21278EA700F14C0131F00F0
138012E0EA003F1400A25B137EA213FE5B12015BA212035B141E0007131C13E0A2000F13
3CEBC038A21478EB807014F014E0EB81C0EA0783EBC7803803FE00EA00F8174378C11E>
105 D<EB03F8EA01FFA3380007F013031307A214E0A2130FA214C0A2131FA21480A2133F
A21400A25BA2137EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121F
A25BA2123FA290C7FCA2387F01C01303007E1380A2130700FE130012FCA25B130EEA7C1E
131CEA3C3CEA3E786C5AEA07C0154678C419>108 D<D801F0EB0FE0D803FCEB7FF83A07
1E01F03E3A0E0F03C01F001ED987001380001C018E130F003C139C003801B814C014F838
781FF000705BA25C00F049131FD8E03F158091C7FC1200163F491500137EA25E01FE147E
5B16FE5E12014913015E170F00030203130E4914F0A20307131E0007EDE01C5B173CEEC0
38000F167849157017E0ED03C1001FEDE3C049903801FF000007C8127C302D78AB37>
110 D<EC0FE0EC7FFC903801F83E903907E00F8090390F8007C0EB1F00017EEB03E04914
F0A248481301484814F81207485AA2485AA2485A1503127F90C7FCA215074815F05AA215
0F16E05AED1FC0A21680153F16005D157E5D007C495A007E495A003E5C4A5A6CEB1F8026
0F803EC7FC3807C0FC3801FFF038003F80252D75AB32>I<EC0FE0EC7FF8903801F01E90
3803C00F90390780078090380F0003011E14C0150749131FA2017CEB3F801378137CED0E
0092C7FC137E137F14F014FF6D13C06D13F06D7F6D7F1300EC0FFE14011400157F81120E
003F141E487EA2153E48C7123CA200FC5C12705D0078495A6C495A6CEB0F80260F803EC7
FC3803FFF838007FC0222D7AAB28>115 D<1470EB01F8A313035CA313075CA3130F5CA3
131F5CA2007FB512E0B6FC15C0D8003FC7FCA25B137EA313FE5BA312015BA312035BA312
075BA3120F5BA2EC0780001F140013805C140E003F131EEB001C143C14385C6C13F0495A
6C485AEB8780D807FEC7FCEA01F81B3F78BD20>I<137C48B414072603C780EB1F803807
03C0000F7F000E153F121C0107150012385E1278D8700F147E5C011F14FE00F05B00E05D
EA003FEC0001A2495C137E150313FE495CA215071201495CA2030F13380003167849ECC0
70A3031F13F0EE80E0153F00011581037F13C06DEBEF8300000101148090397C03C78790
3A3E0F07C70090391FFE01FE903903F000782D2D78AB34>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fd cmsy10 12 8
/Fd 8 107 df<007FB912E0BA12F0A26C18E03C04789A4D>0 D<0060160600F8160F6C16
1F007E163F6C167E6C6C15FC6C6CEC01F86C6CEC03F06C6CEC07E06C6CEC0FC06C6CEC1F
80017EEC3F006D147E6D6C5B6D6C485A6D6C485A6D6C485A6D6C485A6D6C485ADA7E3FC7
FCEC3F7E6E5A6E5A6E5AA24A7E4A7EEC3F7EEC7E3F4A6C7E49486C7E49486C7E49486C7E
49486C7E49486C7E49C7127E017E8049EC1F804848EC0FC04848EC07E04848EC03F04848
EC01F84848EC00FC48C9127E007E163F48161F48160F00601606303072B04D>2
D<147014F8A81470007815F0007C1401B4EC07F8D87F80EB0FF0D83FE0EB3FE0D80FF0EB
7F80D803F8EBFE003900FE73F890383F77E090380FFF80D903FEC7FCEB00F8EB03FE9038
0FFF8090383F77E09038FE73F83903F870FED80FF0EB7F80D83FE0EB3FE0D87F80EB0FF0
D8FF00EB07F8007CEC01F000781400C7140014F8A81470252B7AAD32>I<1AF0A3861A78
A21A7C1A3CA21A3E1A1E1A1F747EA2747E747E87747E747E1B7E87757EF30FE0F303F800
7FBC12FEBE1280A26CF3FE00CEEA03F8F30FE0F31F8051C7FC1B7E63505A505A63505A50
5AA250C8FC1A1E1A3E1A3CA21A7C1A78A21AF862A359347BB264>33
D<1706170F171FA2173EA2177CA217F8A2EE01F0A2EE03E0A2EE07C0A2EE0F80A2EE1F00
A2163EA25EA25EA24B5AA24B5AA24B5AA24B5AA24BC7FCA2153EA25DA25DA24A5AA24A5A
A24A5AA24A5AA24AC8FCA2143EA25CA25CA2495AA2495AA2495AA2495AA249C9FCA2133E
A25BA25BA2485AA2485AA2485AA2485AA248CAFCA2123EA25AA25AA25A1260305C72C600
>54 D<1538157CA215FEA24A7EA215EF02037FA2913807C7C0A291380F83E0A291381F01
F0A2EC1E00023E7FA24A137CA24A7FA249487FA24A7F010381A249486D7EA249486D7EA2
49C76C7EA2011E1400013E81A249157CA24981A2484881A24848ED0F80A2491507000717
C0A24848ED03E0A248C9EA01F0A2003EEE00F8A2003C1778007C177CA248173EA248171E
0060170C373D7BBA42>94 D<0060170C00F0171E6C173EA2007C177CA2003C1778003E17
F8A26CEE01F0A26C6CED03E0A26C6CED07C0A2000317806D150FA26C6CED1F00A26C6C15
3EA2017C5DA26D5DA2011E5D011F1401A26D6C495AA26D6C495AA26D6C495AA2010192C7
FC6E5BA26D6C133EA2027C5BA26E5BA2021E5BEC1F01A291380F83E0A2913807C7C0A291
3803EF80A2020190C8FC15FFA26E5AA2157CA21538373D7BBA42>I<126012F0B3B3B3B3
B3A81260046474CA1C>106 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fe cmr12 12 13
/Fe 13 94 df<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F8
5B12015B1203A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127CA312
7EA4123EA2123FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB
03C01301EB00E014701438141C140C166476CA26>40 D<12C07E12707E7E7E120F6C7E6C
7EA26C7E6C7EA21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0A213
01A214F8A41300A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80A3EB
1F00A2131E133E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A16647BCA
26>I<16C04B7EB3AB007FBAFCBB1280A26C1900C8D801E0C9FCB3AB6F5A41407BB84C>
43 D<14FF010713E090381F81F890383E007C01FC133F4848EB1F8049130F4848EB07C0
4848EB03E0A2000F15F0491301001F15F8A2003F15FCA390C8FC4815FEA54815FFB3A46C
15FEA56D1301003F15FCA3001F15F8A26C6CEB03F0A36C6CEB07E0000315C06D130F6C6C
EB1F806C6CEB3F00013E137C90381F81F8903807FFE0010090C7FC28447CC131>48
D<143014F013011303131F13FFB5FC13E713071200B3B3B0497E497E007FB6FCA3204278
C131>I<EB03FE90381FFFC0017F13F03901F80FFC3903C001FE48486C7E000EC7EA7F80
48EC3FC0ED1FE04815F00030140F007015F800601407126CB415FC7F7F1503A46C481307
6CC7FCC8FC16F8A2150F16F0151F16E0A2ED3FC0ED7F8016005D5D4A5A4A5A4A5A5D4A5A
4A5A4AC7FC147C5C5C495A495A495A49C7120C131E5B013814185B5B485A4848143848C8
1230000E1570001FB612F0A25A5AB712E0A326427BC131>I<49B4FC010F13E0013F13FC
9038FE01FE3A01F0007F80D803C0EB3FC048C7EA1FE0120EED0FF0EA0FE0486C14F8A215
077F5BA26C48130FEA03C0C813F0A3ED1FE0A2ED3FC01680ED7F0015FE4A5AEC03F0EC1F
C0D90FFFC7FC15F090380001FCEC007FED3F80ED1FC0ED0FE016F0ED07F816FC150316FE
A2150116FFA3121EEA7F80487EA416FE491303A2007EC713FC00701407003015F8003814
0F6C15F06CEC1FE06C6CEB3FC0D803E0EB7F803A01FE01FE0039007FFFF8010F13E00101
90C7FC28447CC131>I<EC07FCEC3FFF91B512C0903903FC03E0903907E000F0D91FC013
3849C71258017EEB01FC01FE1303491307485A485AA24848EB03F8000FEC01F092C7FC48
5AA3485AA3127FA29038007F80903801FFF090380780FC39FF0E003E49EB1F8049EB0FC0
49EB07E0136001E0EB03F04914F8150116FC5BED00FEA390C812FFA47EA57F123FA216FE
121F15016D14FC120FED03F86C7EED07F06C6C14E06C6CEB0FC06C6CEB1F80017EEB3F00
90383F80FE90380FFFF8010313E00100138028447CC131>54 D<121EEA7F80A2EAFFC0A4
EA7F80A2EA1E00C7FCB3A5121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2B78AA1B>58
D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121E127FEAFF80A213C0A4127F12
1E1200A512011380A3120313005A1206120E120C121C5A5A12600A3E78AA1B>I<007FBA
FCBB1280A26C1900CEFCB0007FBAFCBB1280A26C190041187BA44C>61
D<EAFFFCA4EAF000B3B3B3B3B3A2EAFFFCA40E6476CA1B>91 D<EAFFFCA4EA003CB3B3B3
B3B3A2EAFFFCA40E647ECA1B>93 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff cmti12 12 39
/Ff 39 123 df<4CB414FC040F9039C003FF80933B3F81F00783C0933B7C00781F01E04C
9038F83F03923C01F001FC3E07F003030103EB7E0F922607E007EB7C1F19FCDB0FC001F8
14E0943A03F0F80FC0DD01E1EB0780031FD9000190C7FC5E180361153F93C7FCA2180761
5D157EA2180F6115FE91B912F0A3DA00FCC7D81F80C7FC1401A25D183F96C8FCA214035D
A260187E14075DA218FE60140F5DA2170160141F5DA2170360143F92C7FCA21707605C14
7EA2170F6014FE5CA24D5AA2495A95C9FC5F5C0103153E177E001CEBE038007F02FE137C
26FF07E114FC02C15C4C5AEB0F8100FE903901FC03E0D8F81F9038F007C03B701E00E00F
80D8783CD9F83ECAFCD81FF0EB3FF8D807C0EB0FE04C5A83C53C>11
D<EF7FF80407B5FC93391FC00FC093393E0001E004FCEB00F04B4813014B4813075E0307
140FA24B5A19E0031FEC03804C90C7FCA3153F93C9FCA45D157EA415FE91B8FCA260DA00
FCC7127E020115FE4B5CA317016014035D170360A214074B130760A3020F140F4B5CA317
1F021F5D5DA2053F13E01801023F16C092C7FCA2EF7F03057E13805C027E15071900173E
180E02FEEC1E1E4AEC1F1CEF07F8EF01E094C8FC495AA35C1303A2001C5B127FEAFF075C
A2495A00FE90CBFCEAF81FEA701EEA783CEA1FF0EA07C03C5A83C537>I<16C01501A215
031507ED0F80151F153F157F913801FF005C140F147F903807FCFEEB0FF0EB0700EB0001
5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3147F92C7FCA35C5CA313015CA313
035CA313075CA2130FA2131F133FB612FCA25D224276C132>49 D<ED3FC0913801FFF091
3807C07C4AC67E021CEB1F800278130F4AEB07C0494814E04A1303494814F0130749C7FC
EB0E06D91E0714F8EB1C03133C1338137813704A1307D9F00614F013E0140E020C130F00
01011C14E0EBC0180238131F4A14C06C6C48EB3F80D9E1C0137FD97F801400013EC712FE
90C7485A4B5A4B5A4B5AED1F804BC7FC15FC4A5AEC03E0EC0FC0023FC8FC147CEB01F049
5AEB0780011FC9FC133E49EC03805B49140748481500485A48485C90C8121E5A001E5D00
1C157CD83FFC5C9038FFC0013A7C0FFC07F0D87803B55AEA700126F0007F5B486D90C7FC
EC0FFEEC03F82D4478C132>I<ED1FE0EDFFFC913803E03F91390F000F80023EEB07C002
78EB03E05C4948EB01F0495A495A91C713F85BEB0E0CEB1E0EEB1C061603013C15F01338
A2020E1307020C14E0141CD91C78EB0FC0D90FE0131F6D48148090C8EA3F00167E5E4B5A
4B5AED0FE091383FFF804A48C7FC15F8EC007E151F6F7E6F7E82150382A482A34B5A121F
EA7F80A2150F48C75BA2484A5A12F800E04A5AA24BC7FC007014FE5D0078495A0038495A
003CEB0FC06C495A260780FEC8FC3803FFF038007F802D4477C132>I<EE0380EE0FC0A2
161F1780A3163F1700A3167EA35EA34B5AA34B5AA25E1507A24B5AA24B5AA293C7FC5D15
3E157E157C15FC5D4A5AA24A5A14075D4A5A16E091381F01F0EC3E03143C147CECF807D9
01F05B14E01303903807C00FD90F805BEB1F00131E49131F495C5B485A3903FFC03F000F
01F890C7FC4813FF397E003FFF007801071480480101EBFFC000606D7EC8EBFE0003FEC7
FC5DA314015DA314035DA314075DA4EC03802A557DC132>I<91B712FCF0FF8019E00201
903980001FF06E90C7EA07F84A6F7E727E4B81841A800203167F5DA314075D19FFA2020F
17004B5C611803021F5E4B4A5A180F4E5A023F4B5A4BEC7F804EC7FCEF03FC027FEC0FF8
4BEBFFC092B6C8FC18E0913AFF800007F892C7EA01FC717E187F49834A6F7EA30103835C
A313075CA3010F5F4A157FA24E5A131F4A4A90C7FC601703013F4B5A4A4A5A4D5A017F4B
5A4D5A4A4948C8FC01FFEC0FFEB812F817C04CC9FC41447AC345>66
D<91B912C0A30201902680000313806E90C8127F4A163F191F4B150FA30203EE07005DA3
14074B5D190EA2140F4B1307A25F021F020E90C7FC5DA2171E023F141C4B133C177C17FC
027FEB03F892B5FCA39139FF8003F0ED00011600A2495D5CA2160101034B13705C19F061
010791C8FC4A1501611803010F5F4A150796C7FC60131F4A151E183E183C013F167C4A15
FC4D5A017F1503EF0FF04A143F01FF913803FFE0B9FCA26042447AC342>69
D<91B612F0A25F020101C0C7FC6E5B4A90C8FCA25DA314035DA314075DA3140F5DA3141F
5DA3143F5DA3147F5DA314FF92C9FCA35B5CA3010316104A1538A21878010716705C18F0
18E0010F15015C18C01703011F15074A1580170FA2013FED1F004A5C5F017F15FE16034A
130F01FFEC7FFCB8FCA25F35447AC33D>76 D<91B56C93387FFFC08298B5FC02014DEBC0
006E614A5FA203DF4C6CC7FC1A0E63912603CFE05D038F5F1A381A711407030FEEE1FCA2
F101C3020FEE0383020E60F107036F6C1507021E160E021C60191CF1380F143C02380470
5BA2F1E01F0278ED01C091267003F85EF003801A3F02F0ED070002E0030E5CA24E137F13
0102C04B91C8FC606201036D6C5B02805F4D5A943803800113070200DA07005BA2050E13
03495D010E606F6C5A1907011E5D011C4B5CA27048130F133C01384B5C017892C7FC191F
01F85C486C027E5DD807FE027C4A7EB500F00178013FB512C0A216705A447AC357>I<91
B56C49B512E0A28202009239000FFC00F107F0706E5A4A5F15DF705D1907EC03CFDB8FF8
92C7FCA203875D02077F0303150EA270141EEC0F01020E161C826F153C141E021C6E1338
167F1978023C800238013F1470A27113F00278131F02705E83040F130102F014F84A5E16
07EFFC0313014A01035C17FE1807010314014A02FF90C8FCA2705B0107168F91C8138E17
7F18DE5B010EED3FDC18FCA2011E151F011C5EA2170F133C01386F5A1378A201F8150348
6C5EEA07FEB500F01401A2604B447AC348>I<EE1FF84BB5FC923907F01FC092391F8003
F092397E0001F8DA01F86D7EDA03E0147EDA0FC0804A48EC1F804AC813C0027E150F4A16
E049481507494816F01307495A494816F8013F16035C137F49C9FC4917FC120112035B12
07491607120FA25B121F19F849160F123FA34848EE1FF0A3183F19E0485A19C0187FA2F0
FF80A219005F604D5AA2007F4C5A4D5AA24D5A003F5F4D5A6D4BC7FC001F5E4C5A6C6C5D
EE03F06C6C4A5A0003ED1FC06C6C4A5A6C6C027EC8FC017EEB01F890393F8007F090390F
E03F80902603FFFEC9FC9038007FE03E4872C54B>I<91B77E18F818FE020190398001FF
806E90C7EA3FC04AED1FE0F00FF04BEC07F8180319FC14034B15FEA314075DA3020FED07
FC5DA2F00FF8141F4B15F0F01FE0F03FC0023F16804BEC7F0018FEEF03F8027F4A5A4BEB
1FC04CB4C7FC92B512F891B612E092380003F8EE00FE177F496F7E4A6E7EA28413034A14
0FA2171F13075CA2173F130F5CA24D5A131F5CA3013F170E5CA2017FEE801E191C4A163C
496C1638B66C90383FC070051F13F094380FE1E0CA3803FF80943800FE003F467AC347>
82 D<DB03FE130C92390FFF801C037FEBE03C9238FE03F8913A03F0007C7C4A48EB3EF8
4A48131F4A48130F4AC7FC027EEC07F05C1703495A18E0495AA213074A15C0A3130F1880
A28094C7FCA280806D7EECFFE015FC6DEBFF806D14F016FC6D14FF023F80020F801403DA
003F7F150703007F163F161F160FA21607A3120716031607A2485EA2120E160F001E5EA2
001F4B5AA2484BC7FC6D143E167E6D5C007F4A5A6D495AD87CF0495AD8787CEB1F8027F0
3F807FC8FC90381FFFFCD8E00713F039C0007F80364879C537>I<48B912F85AA2913B00
07FC001FF0D807F84A130701E0010F140349160148485C90C71500A2001E021F15E05E12
1C123C0038143F4C1301007818C0127000F0147F485DA3C800FF91C7FC93C9FCA35C5DA3
14035DA314075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92CAFCA35B5CA21303A2
1307497E007FB612C0A25E3D446FC346>I<EC1F80EC7FE0903901F07070903907C039F8
90380F801D90381F001F013E6D5A137E5B484813075E485A120749130F000F5DA2485A15
1F003F5D5BA2153F007F92C7FC90C7FCA25D157E12FEA29238FE0380EDFC071700A2007E
13015E913803F80E1407003E010F131E161C6C131C02385B3A0F80F078783A07C3E07C70
3A01FF801FE03A007E000780292D76AB32>97 D<EB0FE0EA07FFA338001FC0130F131FA2
5CA3133F91C8FCA35B137EA313FE5BA312015BEC1F80EC7FE03903F9E0F89038F3C07C90
38F7003E13FE48487F5BA2491480485AA25BA2121F5BA2153F123F90C7FCA2157F481500
127EA25D5D5AA24A5AA24A5AA2007C5C4A5A140F5D4A5A003C49C7FC003E137E001E5B6C
485A380783E03803FF80C648C8FC214676C42D>I<EC0FE0EC7FF8903801F81E903807E0
0F90390F80078090381F0003017E14C049131F0001143F5B4848EB7F801207485AED3E00
484890C7FCA2485AA2127F90C9FCA35A5AA45AA5ED0180ED03C0ED0780A2007CEC0F0000
7E141E003E147C15F06CEB03E0390F800F802607C07EC7FC3801FFF838007FC0222D75AB
2D>I<EE07F0ED03FFA39238000FE01607160FA217C0A2161FA21780A2163FA21700A25E
A2167EA216FEA25EEC1F80EC7FE1903801F071903907C039F890380F801D90381F001F01
3E130F017E5C5B48481307A248485C120749130F120F5E485A151F123F495CA2153F127F
90C790C7FCA25DA200FE147EA29238FE0380160703FC1300A2007E13015E913803F80E14
07003E010F131E161C6C131C02385B3A0F80F078783A07C3E07C703A01FF801FE03A007E
0007802C4676C432>I<EC0FE0EC7FF8903801F83E903807C00F90391F800780EB3F0001
7E14C0491303485A48481307000715805B000F140F484814005D4848133E15FCEC07F000
7FEBFFC0D9FFFEC7FC14C090C9FC5A5AA55AA4ED0180ED03C0007CEC0780A2007EEC0F00
003E141E157C6C14F06CEB03E03907800F802603C07EC7FC3801FFF838003FC0222D75AB
2D>I<EE0F80EE3FE0EEF870923801F038923803E0F8923807E1FC16C3ED0FC7A2EE87F8
92381F83F0EE81E0EE8000153F93C7FCA45D157EA415FE5DA349B512FEA390260001F8C7
FCA314035DA414075DA4140F5DA4141F5DA4143F92C8FCA55C147EA314FE5CA413015CA4
495AA35C1307121C007F5B12FF495AA291C9FC485AEAF81E485AEA7878EA1FF0EA07C02E
5A83C51E>I<15FCEC03FF91390F83838091393E01CFC091387C00EF4A13FF4948137F01
0315804948133F495A131F4A1400133F91C75A5B167E13FE16FE1201495CA21501120349
5CA21503A2495CA21507A25EA2150F151F5E0001143F157F6C6C13FF913801DF8090387C
039F90383E0F3FEB0FFCD903F090C7FC90C7FC5DA2157EA215FEA25DA2001C495A127F48
495A14074A5A485C023FC8FC00F8137E387C01F8381FFFE0000390C9FC2A407BAB2D>I<
14FE137FA3EB01FC13001301A25CA21303A25CA21307A25CA2130FA25CA2131FA25C157F
90393F83FFC091388F81F091381E00F802387F4948137C5C4A137EA2495A91C7FCA25B48
4814FE5E5BA2000314015E5BA2000714035E5B1507000F5DA249130F5E001F1678031F13
70491480A2003F023F13F0EE00E090C7FC160148023E13C01603007E1680EE070000FEEC
1E0FED1F1E48EC0FF80038EC03E02D467AC432>I<143C147E14FE1301A3EB00FC147014
00AE137C48B4FC3803C780380703C0000F13E0120E121C13071238A21278EA700F14C013
1F00F0138012E0EA003F1400A25B137EA213FE5B12015BA212035B141E0007131C13E0A2
000F133CEBC038A21478EB807014F014E0EB81C0EA0783EBC7803803FE00EA00F8174378
C11E>I<14FE137FA3EB01FC13001301A25CA21303A25CA21307A25CA2130FA25CA2131F
A25C167E013F49B4FC92380783C09138000E07ED3C1F491370ED603F017E13E0EC01C090
26FE03801380913907000E00D9FC0E90C7FC5C00015B5C495AEBF9C03803FB8001FFC9FC
A214F03807F3FCEBF07F9038E01FC06E7E000F130781EBC003A2001F150FA20180140EA2
003F151E161C010013E0A2485DA2007E1578167000FE01015B15F1489038007F80003802
1FC7FC2A467AC42D>107 D<EB03F8EA01FFA3380007F013031307A214E0A2130FA214C0
A2131FA21480A2133FA21400A25BA2137EA213FEA25BA21201A25BA21203A25BA21207A2
5BA2120FA25BA2121FA25BA2123FA290C7FCA2387F01C01303007E1380A2130700FE1300
12FCA25B130EEA7C1E131CEA3C3CEA3E786C5AEA07C0154678C419>I<D801F0D90FE0EB
07F0D803FCD97FF8EB3FFC28071E01F03EEBF81F3E0E1F03C01F01E00F80271E0F8700D9
83807F001C018E90390F870007003C019C148E003801B802DC8002F814FC26781FF05C00
70495CA24A5C00F0494948130FD8E03F6091C75B1200043F141F4960017E92C7FCA24C14
3F01FE95C7FC49147E6104FE147E1201494A14FE610301EE0780000305011400494A14F8
A2030302035B0007F0F00E495C1A1E0307EDE01C000F193C494A153862030F020113F000
1FF0F1E0494A903800FF800007C7D80380023EC7FC492D78AB50>I<D801F0EB0FE0D803
FCEB7FF83A071E01F03E3A0E0F03C01F001ED987001380001C018E130F003C139C003801
B814C014F838781FF000705BA25C00F049131FD8E03F158091C7FC1200163F491500137E
A25E01FE147E5B16FE5E12014913015E170F00030203130E4914F0A20307131E0007EDE0
1C5B173CEEC038000F167849157017E0ED03C1001FEDE3C049903801FF000007C8127C30
2D78AB37>I<EC0FE0EC7FFC903801F83E903907E00F8090390F8007C0EB1F00017EEB03
E04914F0A248481301484814F81207485AA2485AA2485A1503127F90C7FCA215074815F0
5AA2150F16E05AED1FC0A21680153F16005D157E5D007C495A007E495A003E5C4A5A6CEB
1F80260F803EC7FC3807C0FC3801FFF038003F80252D75AB32>I<D903E0137E903A07F8
01FF80903A0E3C0783E0903A1C1E0F01F0903A3C1F1C00F801385B017849137C01705BA2
4A48137E01E05BA292C7FC00015B13C0147EC7FC02FE14FEA25CA20101140117FC5CA201
03140317F85CA20107EC07F0A24AEB0FE0A2010F15C0EE1F80163F1700496C137E5E4B5A
9138B803F090393F9C07E091389E0F80DA07FEC7FCEC01F849C9FCA2137EA213FEA25BA2
1201A25BA21203A21207B512F0A25C2F3F7FAB32>I<91381F800C91387FE01C903901F0
703C903907C0387890390F801CF890381F001D013E130F017E14F05B48481307A2484814
E012075B000F140F16C0485AA2003F141F491480A3007F143F90C71300A35D00FE147EA3
15FE5DA2007E1301A24A5A1407003E130FA26C495A143B380F80F33807C3E73901FF87E0
38007E071300140F5DA3141F5DA3143F92C7FCA25CA25C017F13FEA25D263F76AB2D>I<
D801F0EB3F803A03FC01FFF03A071E03C0F83A0E0F0F007C001E90389E01FC001C139CEC
B803003813F0A2D91FE013F80078EC00E00070491300A200F05BEAE03F91C8FC1200A25B
137EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B0007C9FC262D78AB29>
I<EC0FE0EC7FF8903801F01E903803C00F90390780078090380F0003011E14C015074913
1FA2017CEB3F801378137CED0E0092C7FC137E137F14F014FF6D13C06D13F06D7F6D7F13
00EC0FFE14011400157F81120E003F141E487EA2153E48C7123CA200FC5C12705D007849
5A6C495A6CEB0F80260F803EC7FC3803FFF838007FC0222D7AAB28>I<1470EB01F8A313
035CA313075CA3130F5CA3131F5CA2007FB512E0B6FC15C0D8003FC7FCA25B137EA313FE
5BA312015BA312035BA312075BA3120F5BA2EC0780001F140013805C140E003F131EEB00
1C143C14385C6C13F0495A6C485AEB8780D807FEC7FCEA01F81B3F78BD20>I<137C48B4
14072603C780EB1F80380703C0000F7F000E153F121C0107150012385E1278D8700F147E
5C011F14FE00F05B00E05DEA003FEC0001A2495C137E150313FE495CA215071201495CA2
030F13380003167849ECC070A3031F13F0EE80E0153F00011581037F13C06DEBEF830000
0101148090397C03C787903A3E0F07C70090391FFE01FE903903F000782D2D78AB34>I<
017C143848B414FC3A03C78001FE380703C0000F13E0120E001C14000107147E1238163E
1278D8700F141E5C131F00F049131C12E0EA003F91C7123C16385B137E167801FE14705B
A216F0000115E05B150116C0A24848EB0380A2ED0700A2150E12015D6D5B000014786D5B
90387C01E090383F0780D90FFFC7FCEB03F8272D78AB2D>I<02F8133FD907FEEBFFE090
3A0F0F83C0F0903A1C07C780F890393803CF03017013EE01E0EBFC07120101C013F80003
16F00180EC01C000074AC7FC13001407485C120EC7FC140F5DA3141F5DA3143F92C8FCA3
4AEB03C01780147EA202FEEB0700121E003F5D267F81FC130E6E5BD8FF83143CD903BE5B
26FE079E5B3A7C0F1F01E03A3C1E0F83C0271FF803FFC7FC3907E000FC2D2D7CAB2D>
120 D<137C48B414072603C780EB1F80380703C0000F7F000E153F001C1600130712385E
0078157EEA700F5C011F14FE00F0495B12E0EA003FEC00015E5B137E150301FE5C5BA215
0700015D5BA2150F00035D5BA2151F5EA2153F12014BC7FC6D5B00005BEB7C0390383E0F
7EEB1FFEEB03F090C712FE5DA214015D121F397F8003F0A24A5A4848485A5D48131F00F0
49C8FC0070137E007813F8383801F0381E07C06CB4C9FCEA01FC294078AB2F>I<027C13
0749B4130F49EB800E010F141E49EBC03CEDE03890393F03F07890397C00FDF00178EB3F
E00170EB03C001F0148049130790C7EA0F00151E5D5D5D4A5A4A5A4A5A4AC7FC141E5C5C
5C495A495A495A49C8FC011E14F04914E05B491301485A4848EB03C0D807B0130701FEEB
0F80390FCF801F3A1F07E07F00393E03FFFED83C015B486C5B00705C00F0EB7FC048011F
C7FC282D7BAB28>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fg ecss1200 12 21
/Fg 21 122 df<EB07FE90387FFFC00003B57E000F14F84880819038F803FFEB8001001E
C713800018147F0010EC3FC0C8FC16E0151FA8EC7FFF010FB5FC133F48B6FC5A000FEBE0
1F381FFE00EA3FF0EA7FC05B48C7FC5AA4153F7E6C6C137F9038C001FFEBF00F6CB6FC7E
15DF6C141F000313F8C60180C7FC232F7CAD2F>97 D<ECFFC0010713FC011F13FF4914C0
90B612E05A48EB003F01FCEB07C04848130148481300484814005B123F5BA248C9FCA412
FEAA127FA37F123FA26C6C14206D14606C6CEB01E06D13036C6C130F6CB4137F6C90B5FC
6C15C06D1400011F5B010713F001001380232F7CAD2B>99 D<ED03FCB3AAEB07F890381F
FF83017F13E390B512F34814FF5A481380390FFE003F01F8130F484813075B48481303A2
485AA290C7FCA25A5AAA7E7EA37F123F6D13076C7E150FD80FF8131F6D137F3907FF81FF
6C90B5FC6C14FB6C14E36D13C3011F1303D907F8C7FC264A7CC832>I<EB01FE903807FF
C0011F13F0017F7F90B57E488048EB03FF3907FC007F4848EB3F8049131F4848EB0FC05B
4848EB07E0A248C71203A2127EED01F0B7FCA600FCC9FCA27EA3127EA2127F7E7FA26C7E
6D14106C6C14706C6CEB01F0D803FE13079038FF803F6C90B5FC6C15E0013F14806DEBFE
00010713F8010013C0242F7DAD2B>I<EC1FF0EC7FFEEB01FF5B5B5B90381FF01E90383F
C002EC800049C7FCA213FEA31201B0B61280A6D801FEC7FCB3B3A21F4A7EC91E>I<D903
FCEB0FE0D90FFF13FF013F13C74990B512F090B7FC5A2603FE07EB80002707F801FEC7FC
EBF0004848137F497FA248486D7EA86C6C49C7FCA26D5B6C6C13FEEBF8013903FE07FC48
B55A5D485C01BF5BD81F8F90C8FCEB83FC90CAFC7FA37F7F90B512F86CECFF8016E06C15
F86C814881001F81A2273FC0000F13804848130090C8127F48ED3FC048151FA5007FED3F
806D147F6C6CECFF0001F813076CB4EB3FFE6C90B55A6C5D000115E06C6C1480011F49C7
FC010113E02C427DAC31>I<B4FCB3AAEC7FC0903801FFF801077F011F7F497F491480EB
FE03D9F80013C049137F49133F4914E0151F5BA390C7FCB3AC234979C832>I<EAFF80A9
C7FCB0EA7F80B3B3A809457AC417>I<12FFB3B3B3B3084979C817>108
D<DA7FC0EB0FF827FF01FFF8EB3FFF01076D90B51280011FD9FE0314C0496D4814E04902
8F14F0D9FE0390389FC07FD9F8009039FF001FF8496D48130F496D481307494A14FC031F
1403495CA390C75BB3AC3E2D79AC4D>I<EC7FC039FF01FFF801077F011F7F497F491480
EBFE03D9F80013C049137F49133F4914E0151F5BA390C7FCB3AC232D79AC32>I<EC7F80
903803FFF0010F13FC013F13FF498090B67E489038807FE03A03FE001FF0D807F8EB07F8
48486D7E49130148486D7EA24848147FA248C8EA3F80A3007E151F00FE16C0A96C153F6C
1680A36D147F003F16006D5C001F5D6D13016C6C495A6C6C495A01FE131F3A03FF807FF0
6C90B55A6C5D013F91C7FC6D5B010313F09038007F802A2F7DAD31>I<EC3FC039FF03FF
F0010F7F013F13FE497F90B6FCD9FE071380D9F00013C049137F49EB3FE049EB1FF090C7
120FA2ED07F8A21503A216FC1501AAED03F8A3150716F0150F151F6D14E06D133F6DEBFF
C06D481380EBFC0F90B612006D5B6D5B6D13F0010713C0010090C7FC91C8FCB2264079AC
32>I<141F00FE13FF13035B131F5B5BEBFFF0148038FFFE005B5B5B5B5BA25BA390C7FC
B3A8182D79AC21>114 D<EB3FF848B5FC4814C0000F14F04814F85AEBE00F397F8001F0
90C7127000FE14301500A57E7FEA7FE013FC383FFFE06C13FC14FF000714806C14E06C14
F06C7E010713F89038003FFC14071403EC01FEA21400A412400070EB01FC1278007E1303
39FFE01FF890B512F0A26C14E0001F14800003EBFE0038003FF01F2F7DAD25>I<EA01FE
ADB612F0A6D801FEC7FCB3AB7F150815386CEB81F8ECFFFC7FA26D13F06D138090380FF8
001E3A7EB823>I<B4EC1FE0B3AE153FA2157FA26D13FF1403387FE00F90B6FC6C14DF15
1F6C13FC000713F0000190C8FC232D79AB32>I<B415FFA27F007FEC01FEA27F003FEC03
FCA27F001FEC07F8A26C6C14F0150FA26C6CEB1FE0A36C6CEB3FC0A27F0001EC7F80A26C
6C14005DA26D5B1481A2013F5B14C114C3011F5B14E314E7010F5BA201075B14F7A26DB4
5AA36D5BA2282C7EAB2D>I<B46CD91FE0EB01FE007F6FEB03FCA2153F6C6C6EEB07F815
3D157D6C6C17F0DB7CFC130FA215FC6C6C6EEB1FE015F81401D807F8027E14C0047F133F
15F01403D803FC6E1480EF807F15E000010107160001FE141F715A15C00000010F5D01FF
140F17E1017F01805CA2021F1307D93F9FECF3F815001603A2D91F9E5D14BE1601010F5E
02FC14FF82A26D485DA23F2C7FAB42>I<D87FC0EC7FC06C6CECFF80001F16006D5B6C6C
495A6C6C495A6C6C5C00014A5A6C6C131F6E485AD97FC05B6D6C485A011F49C7FCEB0FF1
903807FBFEECFFFC6D5B6D5B7F6E5A5D6E5A4A7E4A7E81497F903803FBFCEB07F990380F
F0FE4A7E011F6D7E49486C7E49486C7EEBFF006F7E48486D7E48488000076E7E48481301
496D7E48481580003FED7FC04848EC3FE04848EC1FF02C2C80AB2D>I<B415FFA27F007F
EC01FE7F123FED03FC7F001FEC07F87F120FED0FF07F12076DEB1FE0120316C06C6C133F
A216806C6C137FA26D14006E5A5D133F14C1011F5BA2ECE1F8EB0FE3A201075B14F3A290
3803F7E0A201015BA2EB00FF5DA2147F92C7FCA2147E14FEA25C1301A25C13035C13075C
EA400F38781FC0EA7FFF5C91C8FC5B5BEA0FF028407EAB2D>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fh ecbx1200 12 3
/Fh 3 51 df<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F
788E1F>46 D<EC03C01407141F147FEB03FF133FB6FCA413C3EA0003B3B3ADB712FCA526
4177C038>49 D<ECFFE0010F13FE013F6D7E90B612E0000315F82607FC0313FE3A0FE000
7FFFD81F806D138048C7000F13C0488001C015E001F07F00FF6E13F07F17F881A46C5A6C
5A6C5AC9FC17F05DA217E05D17C04B13804B1300A2ED1FFC4B5A5E4B5A4B5A4A90C7FC4A
5A4A5AEC0FF04A5AEC3F804AC7127814FE495A494814F8D907E014F0495A495A49C8FC01
7C140149140348B7FC4816E05A5A5A5A5AB8FC17C0A42D417BC038>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fi ecbx1728 17.28 17
/Fi 17 118 df<B812FEA5D8000191C7FCB3B3B3B3B0B812FEA52F627BE139>73
D<B750B7FC70617061A3D800016E4FEC8000A202F76D4F7EA202F36D193EA302F16D197C
A202F06D19F8A26F6CF001F0A26F6DEF03E0A36F6DEF07C0A26F6DEF0F80A26F6DEF1F00
A36F6D173EA26F6D5FA26F6D5FA3706C4C5AA2706D4B5AA2706D4B5AA3706D4B5AA2706D
4BC7FCA2706D153EA2706D5DA3706D5DA2716C4A5AA2716D495AA3716D495AA2716D495A
A2716D49C8FCA3716D133EA2716D5BA2716D5BA2726C485AA372EB83E0A272EBC7C0A272
EBEF80A37201FFC9FCA2725BA2725BA3725BA2735A497ED91FFF705AB700E0063FB8FCA2
735AA2735A88627BE193>77 D<BA12E0F1FF801AF81AFF1BC0D8000191C7000114F0DE00
0F13FC070313FF070080083F7F747F747F747F747FA2747F88A28986A389A865A35091C8
FCA26462646462505B505B50138097B5C9FC070313FC070F5B4EB512C093B8CAFC1AF81A
C01AF893C7000713FE06006D7E073F7F7313F007077F737F87737F85888688A2747FAA88
A91F707614F8A286A2746D13011FF086746D13037614E0B800FE6EED07C0746CEBC00F75
9038F07F80090F90B5120009035CCF6C13F80A0313E06D647BE173>82
D<913803FFF0027F13FF0103B612E0010F15F890263FFC0013FED97FC090381FFF8049C7
6C7F4801C06D7F486D6D7F6E6D7F48836E7F84177F84A36C496E7FA26C5B6C5B013FC8FC
90C9FCA75F0307B6FC4AB7FC141F91B5EAF03F0103EBFE00010F13F0013F1380D9FFFEC7
FC485B485B485B485B485B485BA24890C8FC1A7CA2485AA35FA394B5FC7F6C5D6EEB03DF
6CDB07CFEBC0F86C6DEB0F8F6C6DD91F07EBF3F06C01F8017E14FF6C9027FE01FC0314E0
C690B5D8F00114C0013F9126C0007F1380010791C7383FFE009026003FF8EC07F846437B
C14D>97 D<903807FF80B6FCA5C6FC7F7FB3A9933801FFE0041F13FE047FEBFFC00381B6
12F0922687FC0113FC923A9FE0003FFEDBBF8090380FFF8003FEC76C7F4B6E7F4B6E7F4B
6E7F4B824B157F4B82737EA21B80851BC0A31BE085A41BF0AE1BE0A44F13C0A31B80A24F
1300A262197F6F5E6F4B5A4E5B6F4A5BDAFCF84A5BDAF87E4A5B4A6C4A90C7FC9126E01F
C0EB7FFC913BC00FF803FFF8DA8003B612E091C71580013E023F01FCC8FC90C800031380
4C657CE356>I<ED1FFF4AB512F8020F14FF027F15C0902701FFF80013F04901E0EB0FF8
010F0180EB03FC4990C7EA0FFE49484A7E49485C4948168048495C5A5C5A485BA2487013
005C48705A715AEF03F04893C8FC91CBFCA4B5FCAE7EA280A27EA36C7FF003E07E6E1507
6C18C06E150F6C18806C6D151F6C6DED3F006D6C157E6D6C15FE6D6D495A6D6D495A6D01
F0EB0FE0010101FEEB7FC06D6CB6C7FC021F14FC020314E09126001FFEC8FC3B437BC145
>I<953803FFC0057FB5FCA5EF007F8484B3A9ED1FFC0203B512C0021F14F0027F14FC90
3A01FFFC01FF01079039E0003FDF490180010FB5FC4990C7120349488049488049488148
49814849815A5C5AA2485BA25AA34890C9FCA4B5FCAE7EA4807EA37E807EA26C6D5D7E6E
5D6C94B5FC6C6D5C6D6C5C6D6C4A806D6CDA1FDF7F010701C0D97F1FEBFFF06D9038F803
FE010090B512F8023F14E0020714009126007FF84AC7FC4C657BE356>I<ED3FFE0203B5
12E0021F14FC027F14FF902701FFF80F13C00107D9C0037F4990C77F49486E7E49486E7E
49486E7E49486E7E5A48496E13805A4A16C0488219E0485B834818F0A34890C8FCA27113
F8A3B5FCA391B8FCA491CBFCA67EA4807EA27E19F8806C17016C18F0806C17036C6DED07
E06E16C06C170F6D6CED1F806D6CED3F006D6C6C14FE01076DEB03FC6D01F8EB0FF80100
01FFEB7FE0023F90B51280020F4AC7FC020114F8DA000F13803D437CC146>I<EEFFE003
1F13FC92B6FC02031580020F9038E03FC04A903800FFE091267FFE0113F04A485A494948
13F84913F04913E0A25B15C05B7013F04913807013E09338007F80EF1E0094C7FCB1B8FC
A5D8003F0180C8FCB3B3B2B712F8A535657CE42F>I<903807FF80B6FCA5C6FC7F7FB3B3
B3B3AFB712E0A523647CE32A>108 D<D90FFFDA3FF8ED07FFB649B56C023F13F0040F02
E049B512FC4C02F84914FFDC7F0001FE90260FE01F13C004F86D6C49C66C7FC6DA03F06D
027E7F6DD907C06DD980F86D7F6D4A6F48814BC76CD9C1E07F031EDCE3C0814BEEE780A2
4B6E01EFC8FC037004FE8215F04B5EA34B5EA34B5EB3B3A2B7D8E01FB6D8FC03B71280A5
79417BC082>I<D90FFFEC7FF8B60103B5FC040F14E0043F80DC7F0113FC922601F8007F
C6DA03E06D7E6D49487F6D49488193C77E031E825D153803788003708215F05DA35DA35D
B3B3A2B7D8E03FB612F8A54D417BC056>I<92381FFF804AB512F8020F14FF023F15C091
26FFFC0313F001039039E0007FFC490180EB1FFED91FFEC73807FF8049486E7F49486E7F
49486E7F48496F7EA248496F7E4884A248496F7EA2481980A24819C091C97EA24819E0A5
B518F0AD6C19E0A46C6D4B13C0A36C1980A26C6D4B1300A26C606E157F6C606C6D4B5A6C
606D6C4A5B6D6C4A5B6D6C4A5B6D6C6C011F90C7FC010301E0EB7FFC6D9039FC03FFF86D
6CB612E0020F92C8FC020114F8DA001F138044437CC14D>I<D90FFFEB07F8B6EB3FFF4C
13804BB512E0923903F83FF0923907E07FF8C691380F80FF6D020113FC6D131E153E153C
1578A21570DBF00013F8EF7FF04BEB3FE0EF0F8094C7FC5DA65DB3B1B712F8A536417DC0
3E>114 D<DA7FFC131C0107B5EAC03C011FECF0FC90B612FD489038C003FFD807FEC712
7FD80FF8143F49140F4848140748481403A248481401A2160012FFA26D157CA27F7F7F6D
92C7FCEBFF806C13F0ECFFC015FE6CECFFC016F86C15FE6C6F7E6C826C826C826C82013F
81010F81010181EB003F02011580EC000F1500041F13C000F88182826C8182A26C167FA3
7E18807F17FF6D16007F6D4A5A7F6D4A5A6DEC0FF86D6C495A3BFE1FF001FFE0486CB612
80D8F8034AC7FC48C614F048010F90C8FC32437BC13D>I<EC07C0A6140FA5141FA3143F
A2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512F8B8FCA4D8001F01C0C7FCB3B017
1FAD6D153E81A26D157C816D15F86D7F6D9038FC01F091397FFF07E06EEBFFC0020F1480
0203EBFE009138003FF8305C7DDA3C>I<902607FF80913801FFE0B6023FB5FCA5C6EE00
3F6D826D82B3B3A360A460A26D5EA295B5FC6FEB01EF6DED03CF6D0307806FD90F8F7F6D
6DD91F0FEBFFF86D01FC13FE6D6CB512F8021F14F0020714C09127003FFE0091C7FC4D42
7BC056>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fj ecrm1200 12 55
/Fj 55 160 df<B9FCA23002809B31>21 D<9239FFC001FC020F9038F80FFF913B3F803E
3F03C0913BFC00077E07E0D903F890390FFC0FF0494890383FF81F4948EB7FF0495A4948
14E049C7FCF00FE04991393FC0038049021F90C7FCAFB912F0A3C648C7D81FC0C7FCB3B2
486CEC3FF0007FD9FC0FB512E0A33C467EC539>27 D<121EEA7F8012FF13C0A213E0A312
7FEA1E601200A413E013C0A312011380120313005A1206120E5A5A5A12600B1D78C41B>
39 D<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F85B12015B
1203A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127CA3127EA4123E
A2123FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB03C01301
EB00E014701438141C140C166476CA26>I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C
7EA21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0A21301A214F8A4
1300A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80A3EB1F00A2131E
133E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A16647BCA26>I<121E
EA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120612
0E5A5A5A12600B1D78891B>44 D<B612C0A61A067F9721>I<121EEA7F80A2EAFFC0A4EA
7F80A2EA1E000A0A78891B>I<14FF010713E090381F81F890383E007C01FC133F4848EB
1F8049130F4848EB07C04848EB03E0A2000F15F0491301001F15F8A2003F15FCA390C8FC
4815FEA54815FFB3A46C15FEA56D1301003F15FCA3001F15F8A26C6CEB03F0A36C6CEB07
E0000315C06D130F6C6CEB1F806C6CEB3F00013E137C90381F81F8903807FFE0010090C7
FC28447CC131>48 D<143014F013011303131F13FFB5FC13E713071200B3B3B0497E497E
007FB6FCA3204278C131>I<EB03FE90381FFFC0017F13F03901F80FFC3903C001FE4848
6C7E000EC7EA7F8048EC3FC0ED1FE04815F00030140F007015F800601407126CB415FC7F
7F1503A46C4813076CC7FCC8FC16F8A2150F16F0151F16E0A2ED3FC0ED7F8016005D5D4A
5A4A5A4A5A5D4A5A4A5A4AC7FC147C5C5C495A495A495A49C7120C131E5B013814185B5B
485A4848143848C81230000E1570001FB612F0A25A5AB712E0A326427BC131>I<49B4FC
010F13E0013F13FC9038FE01FE3A01F0007F80D803C0EB3FC048C7EA1FE0120EED0FF0EA
0FE0486C14F8A215077F5BA26C48130FEA03C0C813F0A3ED1FE0A2ED3FC01680ED7F0015
FE4A5AEC03F0EC1FC0D90FFFC7FC15F090380001FCEC007FED3F80ED1FC0ED0FE016F0ED
07F816FC150316FEA2150116FFA3121EEA7F80487EA416FE491303A2007EC713FC007014
07003015F80038140F6C15F06CEC1FE06C6CEB3FC0D803E0EB7F803A01FE01FE0039007F
FFF8010F13E0010190C7FC28447CC131>I<ED0380A21507150FA2151F153FA2157F15FF
A25CEC03BF153F14071406140C141C141814301470146014C013011480EB03005B13065B
131C13185B1370136013E0485A5B120390C7FC1206120E120C5A123812305A12E0B812C0
A3C8383F8000ADEDFFE0027FEBFFC0A32A437DC231>I<000615C0D807C0130701FCEB7F
8090B612005D5D5D15E0158026063FFCC7FC90C9FCAE14FF010713C090381F01F0903838
00FC01F0137ED807C07F49EB1F8016C090C7120F000615E0C8EA07F0A316F81503A216FC
A5123E127F487EA416F890C712075A006015F0A20070140F003015E00038EC1FC07E001E
EC3F806CEC7F006C6C13FE6C6C485A3901F807F039007FFFE0011F90C7FCEB07F826447B
C131>I<EC07FCEC3FFF91B512C0903903FC03E0903907E000F0D91FC0133849C7125801
7EEB01FC01FE1303491307485A485AA24848EB03F8000FEC01F092C7FC485AA3485AA312
7FA29038007F80903801FFF090380780FC39FF0E003E49EB1F8049EB0FC049EB07E01360
01E0EB03F04914F8150116FC5BED00FEA390C812FFA47EA57F123FA216FE121F15016D14
FC120FED03F86C7EED07F06C6C14E06C6CEB0FC06C6CEB1F80017EEB3F0090383F80FE90
380FFFF8010313E00100138028447CC131>I<121CA2EA1F8090B712C0A3481680A21700
5E0038C8120C0030151C00705D0060153016705E5E4814014B5A4BC7FCC81206150E5D15
1815385D156015E04A5AA24A5A140792C8FC5CA25C141E143EA2147E147CA214FCA21301
A3495AA41307A6130FAA6D5AEB01C02A457BC231>I<14FF010713E0011F13F890387F00
FE01FC133FD801F0EB1F804848EB0FC049EB07E00007EC03F048481301A290C713F84814
00A47FA26D130116F07F6C6CEB03E013FC6C6CEB07C09039FF800F806C9038C01F006CEB
F03EECF87839007FFEF090383FFFC07F01077F6D13F8497F90381E7FFFD97C1F1380496C
13C02601E00313E048486C13F000079038007FF84848EB3FFC48C7120F003EEC07FE1501
48140016FF167F48153FA2161FA56C151E007C153EA2007E153C003E157C6C15F86DEB01
F06C6CEB03E06C6CEB07C0D803F8EB1F80C6B4EBFF0090383FFFFC010F13F00101138028
447CC131>I<14FF010713E0011F13F890387F80FC9038FC007E48487F4848EB1F804848
EB0FC0000FEC07E0485AED03F0485A16F8007F140190C713FCA25AA216FE1500A516FFA4
6C5CA36C7E5D121F7F000F5C6C6C1306150E6C6C5B6C6C5BD8007C5B90383F01E090390F
FF80FE903801FE0090C8FC150116FCA4ED03F8A216F0D80F801307486C14E0486C130F16
C0ED1F80A249EB3F0049137E001EC75A001C495A000F495A3907E01FE06CB51280C649C7
FCEB1FF028447CC131>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F
80A2EAFFC0A4EA7F80A2EA1E000A2B78AA1B>I<007FBAFCBB1280CEFCB2BB12806C1900
41167BA34C>61 D<12C012F0123CEA0F80EA03E0EA0078131EEB0780EB01F0EB007C140F
EC03C0EC00F0153EED0F80ED01E0ED0078161EEE07C0EE01F0EE003C170FEF03C0EF00F8
183EF00780F001E0A2F00780F03E0018F8EF03C0050FC7FC173CEE01F0EE07C0041EC8FC
1678ED01E0ED0F80033EC9FC15F0EC03C0020FCAFC147CEB01F0EB0780011ECBFC1378EA
03E0EA0F80003CCCFC12F012C03B3678B34C>I<B8FC17E017FC00019039C00003FF6C6C
4801007FEF3FC0717E717E717E84170384170184A760A21703601707604D5A4D5AEF7FC0
4DC7FCEE03FEEE3FF091B65A17FC0280C7B47EEF1FC0EF0FF0717E717E717E717E198018
7F19C0A2183F19E0A8F07FC0A2198018FF4D1300A24D5AEF0FFC4D5AEF7FE048486C9038
03FFC0B9C7FC17FC17C03B447CC345>66 D<B712FEEEFFE017F800019039C00007FE6C6C
48903800FF80EF3FC0EF0FF0717E717EEF00FE8484F03F80F01FC0A2F00FE019F0180719
F8A2180319FCA3F001FEA419FFAD19FEA3180319FCA319F8180719F0180F19E0A2F01FC0
F03F80A2F07F0018FE4D5A4D5AEF0FF0EF3FE0EFFF8048486C010790C7FCB812FC17E04C
C8FC40447CC34A>68 D<B612F0A3C6EBF0006D5A6D5AB3B3B3A4497E497EB612F0A31C44
7DC323>73 D<B56C933807FFFC6E5EA20001F1FE0026006FE0EE1BF8A3D967F01633A2D9
63F81663A3D961FC16C3A3D960FEED0183A2027FED0303A36E6C1406A36E6C140CA26E6C
1418A36E6C1430A36E6C1460A26E6C14C0A36E6CEB0180A3037FEB0300A292383F8006A3
6F6C5AA36F6C5AA26F6C5AA36F6C5AA36F6C5AA26FB45AA370C7FC13F0A2486C143ED80F
FFEF0FFEB500F0011C0107B512FCA34E447BC359>77 D<ED1FFC4AB512C0913907F007F0
91391F8000FC027EC7123FD901F8EC0FC049486E7E49486E7E49486E7E49486E7E49C912
7E017E8201FE834848707E4848707EA24848707EA2000F84491603001F84A24848707EA3
007F84A24982A300FF1980AD6C6C4C1300A4003F606D1603A2001F60A26C6C4C5AA26C6C
4C5AA20003606D161F6C6C4C5A000060017F4CC7FC6E5D013F5E6D6C4A5AD907E0EC03F0
6D6C4A5AD901FCEC1FC0D9007E4AC8FCDA1F8013FC913907F007F00201B512C09126001F
FCC9FC41487BC54C>79 D<B712E016FF17C000019039C0003FF86C6C48EB03FCEE00FF71
7E717E717E717E717EA284170384A760A21707604D5AA24D5A4D5A4DC8FCEE01FEEE07F8
EE3FE091B6C9FC16FC913980007F80EE0FE0707EEE03FC707E160083717EA2717EA784A7
1A6084171FA21AE0716C13C02601FFE002071301B600C01680943801FC03943900FE0700
CBEA3FFEF007F843467CC348>82 D<49B41303010FEBE007013F13F89039FE00FE0FD801
F8131FD807E0EB079F49EB03DF48486DB4FC48C8FC4881003E81127E82127C00FC81A282
A37E82A27EA26C6C91C7FC7F7FEA3FF813FE381FFFE06C13FE6CEBFFE06C14FC6C14FF6C
15C0013F14F0010F80010180D9001F7F14019138001FFF03031380816F13C0167F163F16
1F17E000C0150FA31607A37EA36C16C0160F7E17806C151F6C16006C5D6D147ED8FBC05C
D8F9F0495AD8F07C495A90393FC00FE0D8E00FB51280010149C7FC39C0003FF02B487BC5
36>I<003FB912F8A3903BF0001FF8001F01806D481303003EC7150048187C0078183CA2
0070181CA30060180CA5481806A5C81600B3B3A54B7EED7FFE49B77EA33F447DC346>I<
EB07FC90383FFF809038F80FE03903C003F048C66C7E000E6D7ED80FC0137E486C137F6D
6D7EA36F7EA26C5AEA0380C8FCA4EC0FFF49B5FC90380FFE1FEB3FC0EBFF00EA03FC485A
485A485A485A127F5B176048C7FCA3153FA36D137F007F14EF6D9038C7E0C0003F13013A
1FE00783F13B07F81E03FF802701FFFC0113003A001FE0007C2B2E7CAC31>97
D<EA01FC12FFA3120712031201B3EC03FC91380FFF8091383C07E091387001F89039FDE0
007E02807F01FFEC1F8091C713C049EC0FE049140717F0A2EE03F8A217FCA2160117FEAB
17FC1603A217F8A2EE07F0A26DEC0FE017C06D141F01FBEC3F80D9F380EB7E00D9E1C05B
9039E0F001F89039C03C07E09039801FFF80C7D803FCC7FC2F467DC436>I<EC7F809038
03FFF090380FC07C90383F000F01FCEB03804848EB01C00003140F4848EB1FE049133F12
0F485AA2485AED1FC0007FEC070092C7FCA290C9FC5AAB7E7FA2123F16307F001F15706C
6C146016E06C6C14C06C6C13010001EC03806C6CEB0700013F131E90381FC078903807FF
F001001380242E7DAC2B>I<167FED3FFFA315018182B3EC7F80903803FFF090380FC07C
90383F000E017E1307496D5AD803F87F48487F5B000F81485AA2485AA2127FA290C8FC5A
AB7E7FA2123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F01
1C13FE90380FC0F8903803FFE09026007F0013002F467DC436>I<EB01FE903807FFC090
381F03F090387E00FC49137E48487F485A4848EB1F80000F15C049130F121F484814E015
07A2007F15F090C7FCA25AA390B6FCA290C9FCA67EA27FA2123F16306C7E1670000F1560
6D14E06C6C14C0000314016C6CEB03806C6CEB0700013E131E90381F80F8903803FFE001
0090C7FC242E7DAC2B>I<EC0FE0EC7FF8903801F81E903803F03F90390FE07F8090381F
C0FF5C133F495AA2ED7F0001FE131C92C7FCAFB67EA3C648C8FCB3B2486C7E007F13FFA3
21467EC51E>I<EE0F80D901FCEB7FE0903A0FFF81F0F090393F07E3819039FC01FF033A
01F800FE014848017E13E00007027FC7FC497F000F8149131F001F81A9000F5D6D133F00
0792C7FC6D5B0003147E6C6C5B6D485A3903BF07E090380FFF80260701FCC8FC90CAFCA2
5AA37F6C7E7F90B512F86C14FF16E06C15F86C6C8048B67E3A07C0000FFF48481300003F
C8EA3F80003E151F48ED0FC0A2481507A56C150F007C1680007E151F003E16006C153E6C
6C5CD807E0495AD801F8EB07E0D8007FEB3F8090261FFFFEC7FC010113E02C427DAC31>
I<EA01FC12FFA3120712031201B3EC01FE913807FFC091381E07F091383801F802707FEC
E000D9FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA32F457DC4
36>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FCADEA01FC12FFA3120712031201B3B0
487EB512F8A315437DC21C>I<EA01FC12FFA3120712031201B3A292381FFFE0A36F1300
ED07F816E05E5E030EC7FC5D5D5D5D4A5A4A5A4AC8FC5CEC3F804A7E14FF9038FDCFE090
38FF8FF01407496C7E01FC7F14016E7E81816F7E82151F6F7E821507826F7E8282486C49
1380B5D8F81F13F8A32D457DC433>107 D<EA01FC12FFA3120712031201B3B3B3A5487E
B512F8A315457DC41C>I<D801FC01FFEC1FE000FF010701E0EBFFFC913B0F03F801E07F
913C3C01FC07803F800007903C7000FE0E001FC0000349D97E1C130F2601FDC0D97F3880
4A143001FFDA3FF06D7E91C75BA2495DA3495DB3A8486C4A6C497EB5D8F81FB50003B512
E0A34B2C7DAB52>I<3901FC01FE00FF903807FFC091381E07F091383801F8000701707F
0003EBE0002601FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA3
2F2C7DAB36>I<EC7F80903803FFF090380FC0FC90383E001F496D7E496D7E48486D7E48
486D7E48486D7E000F81A24848147E003F157FA290C87E481680A44816C0AA6C1680A26D
147F003F1600A2001F157E6D14FE000F5D6D130100075D6C6C495A6C6C495A6C6C495A01
3E49C7FC90381FC0FE903807FFF89038007F802A2E7DAC31>I<3901FC03FC00FF90380F
FF8091383C07E091387001F83A07FDE000FE00010180137F01FFEC3F8091C7EA1FC04915
E049140F17F0160717F8160317FCA3EE01FEABEE03FCA3EE07F8A217F0160F6D15E0EE1F
C06D143F17806EEB7E00D9FDC05B9039FCF003F891383C0FE091381FFF80DA03FCC7FC91
C9FCAE487EB512F8A32F3F7DAB36>I<3903F803F000FFEB1FFCEC3C3EEC707F0007EBE0
FF3803F9C000015B13FBEC007E153C01FF13005BA45BB3A748B4FCB512FEA3202C7DAB26
>114 D<90383FE0183901FFFC383907E01F78390F0003F8001E1301481300007C147812
7800F81438A21518A27EA27E6C6C13006C7E13FC383FFFE06C13FC6C13FF6C14C06C14E0
C614F0011F13F81300EC0FFC140300C0EB01FE1400157E7E153EA27EA36C143C6C147C15
786C14F86CEB01F039F38003E039F1F00F8039E07FFE0038C00FF01F2E7DAC26>I<1306
A5130EA4131EA3133E137EA213FE12011207001FB512F0B6FCA2C648C7FCB3A4150CAA01
7E131C017F1318A26D133890381F8030ECC070903807E0E0903801FFC09038007F001E3E
7EBC26>I<D801FC147F00FFEC3FFFA300071401000380000181B3A85EA35DA212006D5B
017E9038077F80017F010E13C06D011C13FE90380FC078903803FFF09026007F8013002F
2D7DAB36>I<B539F001FFFCA3000790C7EA7FE06C48EC1F8000011600160E1200160C01
7F5CA280013F5CA26E1370011F146080010F5CA2ECF00101075CA26D6C48C7FCA26E5A01
011306A26D6C5AA214FF6E5AA215B8EC3FB015F06E5AA36E5AA26E5AA36EC8FC2E2C7EAA
33>I<B500E0B539E03FFF80A30007903C000FFE000FFC00D803FCD903F8EB03F8F001E0
120103015D6D80000060A26D6E13036DD9037E91C7FCA20280017F5B013FD9063F1306A2
D91FC06E5AED0C1FA2D90FE06E5AED180FA2D907F06E5AED3007A2D903F86E5AED6003A2
902601FCE06D5AEDC00117FCD900FFECFD80ED800017FF027F92C8FC92C77EA26E147E02
3E143EA2021E143C021C141CA2412C7EAA46>I<B539F007FFFCA30003D9C00113C0C649
6C1300017F14FC013F5C6E13E06D7E010F495A6D6C485A02F890C7FC903803FC06010113
0E6E5A903800FF186E5AEC3FF05D141F140F6E7E81140FEC0DFCEC19FEEC38FF4A7E9138
603F8002C07F0101131F49486C7E02007F01066D7E010E1303496D7E013C80017C80D801
FC1580D80FFE4913C0B5D8800F13FFA3302B7FAA33>I<B539F001FFFCA3000790C7EA7F
E06C48EC1F8000011600160E0000150C6D141C6D1418A26E1338013F1430A26D6C5BA26E
13E0010F5CA26D6C485AA2ECF803010391C7FCA2903801FC06A2ECFE0E0100130CA2EC7F
18A215B8EC3FB0A2EC1FE0A36E5AA26E5AA36EC8FCA21406A35CA25CA2123C007E5BB4FC
5CA25CEAFE01387C0380D87007C9FCEA3C1EEA0FFCEA03F02E3F7EAA33>I<003FB612E0
A29038C0003F90C713C0003CEC7F800038ECFF00A20030495A0070495AA24A5A0060495A
A24A5A4A5AA2C7485A4AC7FC5B5C495A13075C495A131F4A1360495A495AA249C712C048
5AA2485A485A1501485A48481303A24848EB07804848131F00FF14FF90B6FCA2232B7DAA
2B>I<126012F0B3B3B3B3B3A81260046475CA1B>124 D<EB1FC0EBFFF03803E03C380780
0E48487E001EEB0380003EEB01C0003C130048EB01E01407140F5AA3EC07C0EC010091C7
FCA27EA2127C127E127F6C7E13E0EA1FF813FE6C6C7E6C13E06C7F6C7F8000077F380F0F
FFD81E031380130048EB3FC0007C131F0078EB0FE0140700F8130348EB01F0A21400A47E
A2007C1301007E14E0127F383F800301C013C0391FF0078013FC390FFF0F006C13FE6C13
F87E6C7F6D7EEB1FFF0107138013019038007FC0141FEC0FE014071403EC01F0A21400A2
1208123E127FA3EC01E0127E12780030EB03C0003813076C14806CEB0F006C131E3803C0
7C3800FFF0EB3F801C5A79C52B>159 D E
%EndDVIPSBitmapFont
end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4

%%EndSetup
%%Page: 1 1
1 0 bop 0 -230 a Fj(In)m(terface)34 b(for)e(mo)s(dule)f(Rbset)2281
b(\2371\025\2372)195 b(1)p 0 -208 3900 4 v 0 100 a Fi(In)l(terface)52
b(for)h(mo)t(dule)g(Rbset)0 394 y Fh(1.)98 b Fj(Sets)33
b(implemen)m(ted)e(as)i(Red-Blac)m(k)f(trees.)0 552 y
Fg(mo)s(dule)g(t)m(yp)s(e)h Ff(Or)-5 b(der)g(e)g(dT)e(yp)i(e)66
b Fe(=)98 672 y Fg(sig)195 792 y(t)m(yp)s(e)33 b Ff(t)195
913 y Fg(val)f Ff(c)-5 b(omp)g(ar)g(e)66 b Fe(:)61 b
Ff(t)70 b Fd(!)60 b Ff(t)70 b Fd(!)59 b Fc(int)98 1033
y Fg(end)0 1191 y(mo)s(dule)32 b(t)m(yp)s(e)h Ff(S)72
b Fe(=)98 1311 y Fg(sig)195 1432 y(t)m(yp)s(e)33 b Ff(elt)195
1552 y Fg(t)m(yp)s(e)g Ff(t)195 1673 y Fg(val)f Ff(empty)69
b Fe(:)60 b Ff(t)195 1793 y Fg(val)32 b Ff(is)p 428 1793
35 5 v 58 w(empty)68 b Fe(:)61 b Ff(t)70 b Fd(!)60 b
Fc(b)-5 b(o)g(ol)195 1913 y Fg(val)32 b Ff(mem)67 b Fe(:)60
b Ff(elt)70 b Fd(!)60 b Ff(t)70 b Fd(!)59 b Fc(b)-5 b(o)g(ol)195
2034 y Fg(val)32 b Ff(add)70 b Fe(:)60 b Ff(elt)70 b
Fd(!)60 b Ff(t)70 b Fd(!)59 b Ff(t)195 2154 y Fg(val)32
b Ff(singleton)67 b Fe(:)60 b Ff(elt)70 b Fd(!)59 b Ff(t)195
2274 y Fg(val)32 b Ff(r)-5 b(emove)67 b Fe(:)60 b Ff(elt)70
b Fd(!)59 b Ff(t)70 b Fd(!)60 b Ff(t)195 2395 y Fg(val)32
b Ff(union)67 b Fe(:)60 b Ff(t)70 b Fd(!)60 b Ff(t)70
b Fd(!)60 b Ff(t)195 2515 y Fg(val)32 b Ff(inter)71 b
Fe(:)60 b Ff(t)70 b Fd(!)60 b Ff(t)70 b Fd(!)60 b Ff(t)195
2636 y Fg(val)32 b Ff(di\013)80 b Fe(:)61 b Ff(t)70 b
Fd(!)60 b Ff(t)70 b Fd(!)59 b Ff(t)195 2756 y Fg(val)32
b Ff(c)-5 b(omp)g(ar)g(e)66 b Fe(:)61 b Ff(t)70 b Fd(!)60
b Ff(t)70 b Fd(!)59 b Fc(int)195 2876 y Fg(val)32 b Ff(e)-5
b(qual)70 b Fe(:)60 b Ff(t)70 b Fd(!)60 b Ff(t)70 b Fd(!)60
b Fc(b)-5 b(o)g(ol)195 2997 y Fg(val)32 b Ff(subset)70
b Fe(:)60 b Ff(t)70 b Fd(!)60 b Ff(t)70 b Fd(!)59 b Fc(b)-5
b(o)g(ol)195 3117 y Fg(val)32 b Ff(for)p 481 3117 V 60
w(al)5 b(l)38 b Fe(:)60 b(\()p Ff(elt)70 b Fd(!)59 b
Fc(b)-5 b(o)g(ol)10 b Fe(\))60 b Fd(!)g Ff(t)70 b Fd(!)60
b Fc(b)-5 b(o)g(ol)195 3237 y Fg(val)32 b Ff(exists)j
Fe(:)61 b(\()p Ff(elt)69 b Fd(!)60 b Fc(b)-5 b(o)g(ol)10
b Fe(\))60 b Fd(!)g Ff(t)70 b Fd(!)60 b Fc(b)-5 b(o)g(ol)195
3358 y Fg(val)32 b Ff(\014lter)38 b Fe(:)60 b(\()p Ff(elt)70
b Fd(!)60 b Fc(b)-5 b(o)g(ol)10 b Fe(\))60 b Fd(!)g Ff(t)70
b Fd(!)59 b Ff(t)195 3478 y Fg(val)32 b Ff(p)-5 b(artition)35
b Fe(:)60 b(\()p Ff(elt)70 b Fd(!)60 b Fc(b)-5 b(o)g(ol)10
b Fe(\))59 b Fd(!)h Ff(t)70 b Fd(!)60 b Ff(t)65 b Fd(\002)55
b Ff(t)195 3599 y Fg(val)32 b Ff(c)-5 b(ar)g(dinal)69
b Fe(:)61 b Ff(t)70 b Fd(!)59 b Fc(int)195 3719 y Fg(val)32
b Ff(elements)67 b Fe(:)61 b Ff(t)70 b Fd(!)59 b Ff(elt)43
b Fc(list)195 3839 y Fg(val)32 b Ff(min)p 522 3839 V
56 w(elt)70 b Fe(:)60 b Ff(t)70 b Fd(!)60 b Ff(elt)195
3960 y Fg(val)32 b Ff(max)p 536 3960 V 61 w(elt)70 b
Fe(:)60 b Ff(t)70 b Fd(!)60 b Ff(elt)195 4080 y Fg(val)32
b Ff(cho)-5 b(ose)66 b Fe(:)61 b Ff(t)70 b Fd(!)60 b
Ff(elt)195 4201 y Fg(val)32 b Ff(iter)71 b Fe(:)60 b(\()p
Ff(elt)70 b Fd(!)60 b Fc(unit)9 b Fe(\))61 b Fd(!)e Ff(t)70
b Fd(!)60 b Fc(unit)195 4321 y Fg(val)32 b Ff(fold)70
b Fe(:)60 b(\()p Ff(elt)70 b Fd(!)60 b Fb(\013)g Fd(!)g
Fb(\013)q Fe(\))g Fd(!)g Ff(t)70 b Fd(!)60 b Fb(\013)h
Fd(!)e Fb(\013)98 4441 y Fg(end)0 4599 y(mo)s(dule)32
b Ff(Make)8 b Fe(\()p Ff(Or)-5 b(d)70 b Fe(:)60 b Ff(Or)-5
b(der)g(e)g(dT)e(yp)i(e)6 b Fe(\))60 b(:)g(\()p Ff(S)45
b Fg(with)33 b(t)m(yp)s(e)f Ff(elt)70 b Fe(=)60 b Ff(Or)-5
b(d)10 b Fb(:)p Ff(t)g Fe(\))0 4926 y Fi(Mo)t(dule)53
b(Rbset)0 5220 y Fh(2.)98 b Fb(I)8 b(d)27 b Fe(:)h Fb(r)s(bset:ml)r(;)
17 b(v)t Fe(1)p Fb(:)p Fe(62003)p Fb(=)p Fe(06)p Fb(=)p
Fe(0612)25 b(:)j(16)f(:)h(06)p Fb(f)11 b(il)r(l)r(iatr)s(E)6
b(xp)0 5340 y Fj(Sets)33 b(implemen)m(ted)e(as)i(reb-blac)m(k)g(trees.)
p eop
%%Page: 2 2
2 1 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2967 b(\2372)195
b(2)p 0 -208 3900 4 v 0 100 a Fg(mo)s(dule)32 b(t)m(yp)s(e)h
Ff(Or)-5 b(der)g(e)g(dT)e(yp)i(e)66 b Fe(=)98 220 y Fg(sig)195
340 y(t)m(yp)s(e)33 b Ff(t)195 461 y Fg(val)f Ff(c)-5
b(omp)g(ar)g(e)66 b Fe(:)61 b Ff(t)70 b Fd(!)60 b Ff(t)70
b Fd(!)59 b Fc(int)98 581 y Fg(end)0 751 y(mo)s(dule)32
b(t)m(yp)s(e)h Ff(S)72 b Fe(=)98 872 y Fg(sig)195 992
y(t)m(yp)s(e)33 b Ff(elt)195 1112 y Fg(t)m(yp)s(e)g Ff(t)195
1233 y Fg(val)f Ff(empty)69 b Fe(:)60 b Ff(t)195 1353
y Fg(val)32 b Ff(is)p 428 1353 35 5 v 58 w(empty)68 b
Fe(:)61 b Ff(t)70 b Fd(!)60 b Fc(b)-5 b(o)g(ol)195 1474
y Fg(val)32 b Ff(mem)67 b Fe(:)60 b Ff(elt)70 b Fd(!)60
b Ff(t)70 b Fd(!)59 b Fc(b)-5 b(o)g(ol)195 1594 y Fg(val)32
b Ff(add)70 b Fe(:)60 b Ff(elt)70 b Fd(!)60 b Ff(t)70
b Fd(!)59 b Ff(t)195 1714 y Fg(val)32 b Ff(singleton)67
b Fe(:)60 b Ff(elt)70 b Fd(!)59 b Ff(t)195 1835 y Fg(val)32
b Ff(r)-5 b(emove)67 b Fe(:)60 b Ff(elt)70 b Fd(!)59
b Ff(t)70 b Fd(!)60 b Ff(t)195 1955 y Fg(val)32 b Ff(union)67
b Fe(:)60 b Ff(t)70 b Fd(!)60 b Ff(t)70 b Fd(!)60 b Ff(t)195
2076 y Fg(val)32 b Ff(inter)71 b Fe(:)60 b Ff(t)70 b
Fd(!)60 b Ff(t)70 b Fd(!)60 b Ff(t)195 2196 y Fg(val)32
b Ff(di\013)80 b Fe(:)61 b Ff(t)70 b Fd(!)60 b Ff(t)70
b Fd(!)59 b Ff(t)195 2316 y Fg(val)32 b Ff(c)-5 b(omp)g(ar)g(e)66
b Fe(:)61 b Ff(t)70 b Fd(!)60 b Ff(t)70 b Fd(!)59 b Fc(int)195
2437 y Fg(val)32 b Ff(e)-5 b(qual)70 b Fe(:)60 b Ff(t)70
b Fd(!)60 b Ff(t)70 b Fd(!)60 b Fc(b)-5 b(o)g(ol)195
2557 y Fg(val)32 b Ff(subset)70 b Fe(:)60 b Ff(t)70 b
Fd(!)60 b Ff(t)70 b Fd(!)59 b Fc(b)-5 b(o)g(ol)195 2677
y Fg(val)32 b Ff(for)p 481 2677 V 60 w(al)5 b(l)38 b
Fe(:)60 b(\()p Ff(elt)70 b Fd(!)59 b Fc(b)-5 b(o)g(ol)10
b Fe(\))60 b Fd(!)g Ff(t)70 b Fd(!)60 b Fc(b)-5 b(o)g(ol)195
2798 y Fg(val)32 b Ff(exists)j Fe(:)61 b(\()p Ff(elt)69
b Fd(!)60 b Fc(b)-5 b(o)g(ol)10 b Fe(\))60 b Fd(!)g Ff(t)70
b Fd(!)60 b Fc(b)-5 b(o)g(ol)195 2918 y Fg(val)32 b Ff(\014lter)38
b Fe(:)60 b(\()p Ff(elt)70 b Fd(!)60 b Fc(b)-5 b(o)g(ol)10
b Fe(\))60 b Fd(!)g Ff(t)70 b Fd(!)59 b Ff(t)195 3039
y Fg(val)32 b Ff(p)-5 b(artition)35 b Fe(:)60 b(\()p
Ff(elt)70 b Fd(!)60 b Fc(b)-5 b(o)g(ol)10 b Fe(\))59
b Fd(!)h Ff(t)70 b Fd(!)60 b Ff(t)65 b Fd(\002)55 b Ff(t)195
3159 y Fg(val)32 b Ff(c)-5 b(ar)g(dinal)69 b Fe(:)61
b Ff(t)70 b Fd(!)59 b Fc(int)195 3279 y Fg(val)32 b Ff(elements)67
b Fe(:)61 b Ff(t)70 b Fd(!)59 b Ff(elt)43 b Fc(list)195
3400 y Fg(val)32 b Ff(min)p 522 3400 V 56 w(elt)70 b
Fe(:)60 b Ff(t)70 b Fd(!)60 b Ff(elt)195 3520 y Fg(val)32
b Ff(max)p 536 3520 V 61 w(elt)70 b Fe(:)60 b Ff(t)70
b Fd(!)60 b Ff(elt)195 3641 y Fg(val)32 b Ff(cho)-5 b(ose)66
b Fe(:)61 b Ff(t)70 b Fd(!)60 b Ff(elt)195 3761 y Fg(val)32
b Ff(iter)71 b Fe(:)60 b(\()p Ff(elt)70 b Fd(!)60 b Fc(unit)9
b Fe(\))61 b Fd(!)e Ff(t)70 b Fd(!)60 b Fc(unit)195 3881
y Fg(val)32 b Ff(fold)70 b Fe(:)60 b(\()p Ff(elt)70 b
Fd(!)60 b Fb(\013)g Fd(!)g Fb(\013)q Fe(\))g Fd(!)g Ff(t)70
b Fd(!)60 b Fb(\013)h Fd(!)e Fb(\013)98 4002 y Fg(end)0
4172 y(mo)s(dule)32 b Ff(Make)8 b Fe(\()p Ff(Or)-5 b(d)70
b Fe(:)60 b Ff(Or)-5 b(der)g(e)g(dT)e(yp)i(e)6 b Fe(\))60
b(:)g(\()p Ff(S)45 b Fg(with)33 b(t)m(yp)s(e)f Ff(elt)70
b Fe(=)60 b Ff(Or)-5 b(d)10 b Fb(:)p Ff(t)g Fe(\))60
b(=)g Fg(struct)98 4342 y(t)m(yp)s(e)32 b Ff(elt)70 b
Fe(=)60 b Ff(Or)-5 b(d)10 b Fb(:)p Ff(t)98 4512 y Fg(t)m(yp)s(e)32
b Ff(t)70 b Fe(=)60 b Ff(Empty)42 b Fd(j)32 b Ff(Black)42
b Fg(of)d Ff(t)65 b Fd(\002)55 b Ff(elt)64 b Fd(\002)55
b Ff(t)43 b Fd(j)32 b Ff(R)-5 b(e)g(d)42 b Fg(of)d Ff(t)65
b Fd(\002)55 b Ff(elt)64 b Fd(\002)55 b Ff(t)98 4682
y Fj(in)m(v)-5 b(arian)m(ts:)40 b(\(1\))29 b(a)h(red)f(no)s(de)h(has)g
(no)f(red)h(son,)h(and)e(\(2\))g(an)m(y)h(path)g(from)e(the)i(ro)s(ot)e
(to)h(a)g(leaf)g(has)h(the)0 4803 y(same)i(n)m(um)m(b)s(er)h(of)f(blac)
m(k)h(no)s(des)98 4923 y(for)f(debug:)44 b(c)m(hec)m(ks)35
b(whether)f(a)e(tree)h(is)f(prop)s(erly)g(colored)98
5093 y Fg(exception)h Ff(Bad)98 5264 y(che)-5 b(ck)p
340 5264 V 59 w(aux)45 b(s)40 b Fj(c)m(hec)m(ks)35 b(in)m(v)-5
b(arian)m(ts)32 b(and)h(returns)g(the)g(blac)m(k)g(heigh)m(t)p
eop
%%Page: 3 3
3 2 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2967 b(\2372)195
b(3)p 0 -208 3900 4 v 98 100 a Fg(let)33 b(rec)g Ff(che)-5
b(ck)p 627 100 35 5 v 60 w(aux)72 b Fe(=)60 b Fg(function)195
220 y Fj(|)33 b Ff(Empty)69 b Fd(!)390 340 y Fj(0)195
461 y(|)33 b Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(R)-5 b(e)g(d)p
698 461 V 93 w Fb(;)p 824 461 V 98 w(;)p 949 461 V 99
w Fe(\))33 b Fd(j)f Ff(R)-5 b(e)g(d)43 b Fe(\()p 1367
461 V 49 w Fb(;)p 1492 461 V 99 w(;)49 b Ff(R)-5 b(e)g(d)p
1817 461 V 93 w Fe(\))60 b Fd(!)1365 581 y Ff(r)-5 b(aise)40
b(Bad)195 702 y Fj(|)33 b Ff(Black)42 b Fe(\()p Ff(l)10
b Fb(;)p 688 702 V 99 w(;)49 b Ff(r)11 b Fe(\))60 b Fd(!)390
822 y Fg(let)33 b Ff(h)68 b Fe(=)60 b Ff(che)-5 b(ck)p
1020 822 V 59 w(aux)45 b(l)d Fg(in)390 942 y(if)d Ff(che)-5
b(ck)p 725 942 V 60 w(aux)44 b(r)71 b Fd(6)p Fe(=)60
b Ff(h)40 b Fg(then)33 b Ff(r)-5 b(aise)40 b(Bad)9 b
Fe(;)390 1063 y Ff(suc)-5 b(c)38 b(h)195 1183 y Fj(|)33
b Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(l)10 b Fb(;)p 610 1183
V 99 w(;)50 b Ff(r)10 b Fe(\))61 b Fd(!)390 1303 y Fg(let)33
b Ff(h)68 b Fe(=)60 b Ff(che)-5 b(ck)p 1020 1303 V 59
w(aux)45 b(l)d Fg(in)390 1424 y(if)d Ff(che)-5 b(ck)p
725 1424 V 60 w(aux)44 b(r)71 b Fd(6)p Fe(=)60 b Ff(h)40
b Fg(then)33 b Ff(r)-5 b(aise)40 b(Bad)9 b Fe(;)390 1544
y Ff(h)98 1714 y Fg(let)33 b Ff(che)-5 b(ck)42 b(s)68
b Fe(=)60 b Fg(try)34 b Ff(ignor)-5 b(e)39 b Fe(\()p
Ff(che)-5 b(ck)p 1471 1714 V 60 w(aux)44 b(s)8 b Fe(\);)50
b Fg(true)33 b(with)g Ff(Bad)70 b Fd(!)59 b Fg(false)98
1885 y Fj(implemen)m(tation)29 b(of)j(the)h(set)g(op)s(erations)98
2055 y Fg(let)g Ff(empty)69 b Fe(=)60 b Ff(Empty)98 2225
y Fg(let)33 b Ff(is)p 318 2225 V 57 w(empty)69 b Fe(=)60
b Fg(function)33 b Ff(Empty)69 b Fd(!)60 b Fg(true)33
b Fj(|)p 1947 2225 V 143 w Fd(!)60 b Fg(false)98 2395
y(let)33 b(rec)g Ff(mem)39 b(x)72 b Fe(=)60 b Fg(function)195
2516 y Fj(|)33 b Ff(Empty)69 b Fd(!)60 b Fg(false)195
2636 y Fj(|)33 b Ff(Black)42 b Fe(\()p Ff(l)10 b Fb(;)49
b Ff(v)11 b Fb(;)49 b Ff(r)11 b Fe(\))32 b Fd(j)g Ff(R)-5
b(e)g(d)43 b Fe(\()p Ff(l)10 b Fb(;)49 b Ff(v)11 b Fb(;)49
b Ff(r)11 b Fe(\))60 b Fd(!)390 2756 y Fg(let)33 b Ff(c)66
b Fe(=)60 b Ff(Or)-5 b(d)10 b Fb(:)p Ff(c)-5 b(omp)g(ar)g(e)39
b(x)44 b(v)f Fg(in)390 2877 y Ff(c)66 b Fe(=)60 b(0)54
b Fd(_)h Ff(mem)40 b(x)k Fe(\()p Fg(if)39 b Ff(c)66 b
Fb(<)60 b Fe(0)32 b Fg(then)h Ff(l)43 b Fg(else)33 b
Ff(r)11 b Fe(\))98 3047 y Fj(insertion)98 3217 y Fg(let)33
b Ff(lb)-5 b(alanc)g(e)38 b(x1)46 b(x2)g(x3)73 b Fe(=)60
b Fg(match)33 b Ff(x1)13 b Fb(;)49 b Ff(x2)14 b Fb(;)49
b Ff(x3)d Fg(with)195 3337 y Fj(|)33 b Ff(R)-5 b(e)g(d)42
b Fe(\()p Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(a)7 b Fb(;)17
b Ff(x)11 b Fb(;)17 b Ff(b)6 b Fe(\))p Fb(;)49 b Ff(y)9
b Fb(;)50 b Ff(c)5 b Fe(\))p Fb(;)49 b Ff(z)12 b Fb(;)49
b Ff(d)71 b Fd(!)390 3458 y Ff(R)-5 b(e)g(d)43 b Fe(\()p
Ff(Black)f Fe(\()p Ff(a)7 b Fb(;)17 b Ff(x)12 b Fb(;)17
b Ff(b)5 b Fe(\))p Fb(;)49 b Ff(y)9 b Fb(;)50 b Ff(Black)42
b Fe(\()p Ff(c)5 b Fb(;)17 b Ff(z)12 b Fb(;)17 b Ff(d)10
b Fe(\)\))195 3578 y Fj(|)33 b Ff(R)-5 b(e)g(d)42 b Fe(\()p
Ff(a)7 b Fb(;)50 b Ff(x)11 b Fb(;)50 b Ff(R)-5 b(e)g(d)42
b Fe(\()p Ff(b)6 b Fb(;)17 b Ff(y)9 b Fb(;)17 b Ff(c)5
b Fe(\)\))p Fb(;)49 b Ff(z)12 b Fb(;)49 b Ff(d)71 b Fd(!)390
3699 y Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(Black)f Fe(\()p
Ff(a)7 b Fb(;)17 b Ff(x)12 b Fb(;)17 b Ff(b)5 b Fe(\))p
Fb(;)49 b Ff(y)9 b Fb(;)50 b Ff(Black)42 b Fe(\()p Ff(c)5
b Fb(;)17 b Ff(z)12 b Fb(;)17 b Ff(d)10 b Fe(\)\))195
3819 y Fj(|)33 b Ff(a)7 b Fb(;)17 b Ff(x)11 b Fb(;)17
b Ff(b)66 b Fd(!)390 3939 y Ff(Black)42 b Fe(\()p Ff(a)8
b Fb(;)17 b Ff(x)11 b Fb(;)17 b Ff(b)6 b Fe(\))98 4110
y Fg(let)33 b Ff(rb)-5 b(alanc)g(e)38 b(x1)46 b(x2)g(x3)73
b Fe(=)60 b Fg(match)33 b Ff(x1)13 b Fb(;)50 b Ff(x2)13
b Fb(;)49 b Ff(x3)d Fg(with)195 4230 y Fj(|)33 b Ff(a)7
b Fb(;)49 b Ff(x)12 b Fb(;)49 b Ff(R)-5 b(e)g(d)43 b
Fe(\()p Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(b)6 b Fb(;)17
b Ff(y)9 b Fb(;)17 b Ff(c)5 b Fe(\))p Fb(;)49 b Ff(z)12
b Fb(;)49 b Ff(d)11 b Fe(\))60 b Fd(!)390 4350 y Ff(R)-5
b(e)g(d)43 b Fe(\()p Ff(Black)f Fe(\()p Ff(a)7 b Fb(;)17
b Ff(x)12 b Fb(;)17 b Ff(b)5 b Fe(\))p Fb(;)49 b Ff(y)9
b Fb(;)50 b Ff(Black)42 b Fe(\()p Ff(c)5 b Fb(;)17 b
Ff(z)12 b Fb(;)17 b Ff(d)10 b Fe(\)\))195 4471 y Fj(|)33
b Ff(a)7 b Fb(;)49 b Ff(x)12 b Fb(;)49 b Ff(R)-5 b(e)g(d)43
b Fe(\()p Ff(b)6 b Fb(;)49 b Ff(y)9 b Fb(;)49 b Ff(R)-5
b(e)g(d)43 b Fe(\()p Ff(c)5 b Fb(;)17 b Ff(z)12 b Fb(;)17
b Ff(d)10 b Fe(\)\))60 b Fd(!)390 4591 y Ff(R)-5 b(e)g(d)43
b Fe(\()p Ff(Black)f Fe(\()p Ff(a)7 b Fb(;)17 b Ff(x)12
b Fb(;)17 b Ff(b)5 b Fe(\))p Fb(;)49 b Ff(y)9 b Fb(;)50
b Ff(Black)42 b Fe(\()p Ff(c)5 b Fb(;)17 b Ff(z)12 b
Fb(;)17 b Ff(d)10 b Fe(\)\))195 4711 y Fj(|)33 b Ff(a)7
b Fb(;)17 b Ff(x)11 b Fb(;)17 b Ff(b)66 b Fd(!)390 4832
y Ff(Black)42 b Fe(\()p Ff(a)8 b Fb(;)17 b Ff(x)11 b
Fb(;)17 b Ff(b)6 b Fe(\))p eop
%%Page: 4 4
4 3 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2967 b(\2372)195
b(4)p 0 -208 3900 4 v 98 100 a Fg(let)33 b Ff(add)42
b(x)i(s)68 b Fe(=)195 220 y Fg(let)33 b(rec)g Ff(ins)68
b Fe(=)60 b Fg(function)293 340 y Fj(|)32 b Ff(Empty)69
b Fd(!)488 461 y Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(Empty)9
b Fb(;)49 b Ff(x)12 b Fb(;)49 b Ff(Empty)9 b Fe(\))293
581 y Fj(|)32 b Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(a)7 b
Fb(;)49 b Ff(y)9 b Fb(;)49 b Ff(b)6 b Fe(\))33 b Fg(as)f
Ff(s)69 b Fd(!)488 702 y Fg(let)33 b Ff(c)65 b Fe(=)60
b Ff(Or)-5 b(d)10 b Fb(:)q Ff(c)-5 b(omp)g(ar)g(e)38
b(x)45 b(y)c Fg(in)488 822 y(if)e Ff(c)65 b Fb(<)60 b
Fe(0)33 b Fg(then)g Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(ins)f(a)7
b Fb(;)49 b Ff(y)9 b Fb(;)49 b Ff(b)6 b Fe(\))488 942
y Fg(else)33 b(if)39 b Ff(c)66 b Fb(>)60 b Fe(0)32 b
Fg(then)h Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(a)7 b Fb(;)49
b Ff(y)9 b Fb(;)50 b Ff(ins)40 b(b)6 b Fe(\))488 1063
y Fg(else)33 b Ff(s)293 1183 y Fj(|)f Ff(Black)42 b Fe(\()p
Ff(a)8 b Fb(;)49 b Ff(y)9 b Fb(;)49 b Ff(b)6 b Fe(\))32
b Fg(as)h Ff(s)68 b Fd(!)488 1303 y Fg(let)33 b Ff(c)65
b Fe(=)60 b Ff(Or)-5 b(d)10 b Fb(:)q Ff(c)-5 b(omp)g(ar)g(e)38
b(x)45 b(y)c Fg(in)488 1424 y(if)e Ff(c)65 b Fb(<)60
b Fe(0)33 b Fg(then)g Ff(lb)-5 b(alanc)g(e)39 b Fe(\()p
Ff(ins)h(a)7 b Fe(\))33 b Ff(y)41 b(b)488 1544 y Fg(else)33
b(if)39 b Ff(c)66 b Fb(>)60 b Fe(0)32 b Fg(then)h Ff(rb)-5
b(alanc)g(e)39 b(a)h(y)i Fe(\()p Ff(ins)e(b)6 b Fe(\))488
1665 y Fg(else)33 b Ff(s)195 1785 y Fg(in)195 1905 y(match)g
Ff(ins)40 b(s)h Fg(with)293 2026 y Fj(|)32 b Ff(Black)p
636 2026 35 5 v 125 w Fg(as)g Ff(s)68 b Fd(!)60 b Ff(s)293
2146 y Fj(|)32 b Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(a)7
b Fb(;)49 b Ff(y)9 b Fb(;)49 b Ff(b)6 b Fe(\))61 b Fd(!)e
Ff(Black)43 b Fe(\()p Ff(a)7 b Fb(;)49 b Ff(y)9 b Fb(;)49
b Ff(b)6 b Fe(\))293 2267 y Fj(|)32 b Ff(Empty)69 b Fd(!)60
b Fg(assert)34 b(false)98 2424 y(let)f Ff(singleton)39
b(x)72 b Fe(=)60 b Ff(Black)42 b Fe(\()p Ff(Empty)9 b
Fb(;)49 b Ff(x)12 b Fb(;)49 b Ff(Empty)9 b Fe(\))98 2581
y Fj(remo)m(v)-5 b(al)98 2701 y Ff(unb)g(alanc)g(e)g(d)p
571 2701 V 58 w(left)43 b Fj(repares)33 b(in)m(v)-5 b(arian)m(t)32
b(\(2\))g(when)i(the)f(blac)m(k)g(heigh)m(t)g(of)f(the)h(left)f(son)h
(exceeds)j(\(b)m(y)d(1\))0 2822 y(the)g(blac)m(k)g(heigh)m(t)f(of)g
(the)h(righ)m(t)f(son)98 2979 y Fg(let)h Ff(unb)-5 b(alanc)g(e)g(d)p
705 2979 V 58 w(left)70 b Fe(=)60 b Fg(function)195 3099
y Fj(|)33 b Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(Black)g Fe(\()p
Ff(t1)14 b Fb(;)49 b Ff(x1)13 b Fb(;)50 b Ff(t2)13 b
Fe(\))p Fb(;)50 b Ff(x2)13 b Fb(;)49 b Ff(t3)14 b Fe(\))60
b Fd(!)390 3220 y Ff(lb)-5 b(alanc)g(e)39 b Fe(\()p Ff(R)-5
b(e)g(d)42 b Fe(\()p Ff(t1)14 b Fb(;)49 b Ff(x1)13 b
Fb(;)50 b Ff(t2)13 b Fe(\)\))33 b Ff(x2)46 b(t3)13 b
Fb(;)50 b Fg(false)195 3340 y Fj(|)33 b Ff(Black)42 b
Fe(\()p Ff(Black)g Fe(\()p Ff(t1)14 b Fb(;)49 b Ff(x1)13
b Fb(;)49 b Ff(t2)14 b Fe(\))p Fb(;)49 b Ff(x2)13 b Fb(;)50
b Ff(t3)13 b Fe(\))61 b Fd(!)390 3461 y Ff(lb)-5 b(alanc)g(e)39
b Fe(\()p Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(t1)14 b Fb(;)49
b Ff(x1)13 b Fb(;)50 b Ff(t2)13 b Fe(\)\))33 b Ff(x2)46
b(t3)13 b Fb(;)50 b Fg(true)195 3581 y Fj(|)33 b Ff(Black)42
b Fe(\()p Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(t1)14 b Fb(;)49
b Ff(x1)13 b Fb(;)50 b Ff(Black)42 b Fe(\()p Ff(t2)14
b Fb(;)49 b Ff(x2)13 b Fb(;)49 b Ff(t3)14 b Fe(\)\))p
Fb(;)49 b Ff(x3)13 b Fb(;)49 b Ff(t4)14 b Fe(\))60 b
Fd(!)390 3701 y Ff(Black)42 b Fe(\()p Ff(t1)14 b Fb(;)49
b Ff(x1)13 b Fb(;)50 b Ff(lb)-5 b(alanc)g(e)38 b Fe(\()p
Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(t2)14 b Fb(;)49 b Ff(x2)13
b Fb(;)49 b Ff(t3)14 b Fe(\)\))32 b Ff(x3)46 b(t4)14
b Fe(\))p Fb(;)49 b Fg(false)195 3822 y Fj(|)p 262 3822
V 143 w Fd(!)390 3942 y Fg(assert)34 b(false)98 4099
y Ff(unb)-5 b(alanc)g(e)g(d)p 571 4099 V 58 w(right)42
b Fj(repares)33 b(in)m(v)-5 b(arian)m(t)30 b(\(2\))i(when)h(the)f(blac)
m(k)g(heigh)m(t)g(of)f(the)h(righ)m(t)f(son)i(exceeds)h(\(b)m(y)0
4220 y(1\))e(the)h(blac)m(k)g(heigh)m(t)f(of)g(the)h(left)f(son)98
4377 y Fg(let)h Ff(unb)-5 b(alanc)g(e)g(d)p 705 4377
V 58 w(right)70 b Fe(=)60 b Fg(function)195 4497 y Fj(|)33
b Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(t1)14 b Fb(;)49 b Ff(x1)13
b Fb(;)50 b Ff(Black)42 b Fe(\()p Ff(t2)13 b Fb(;)50
b Ff(x2)13 b Fb(;)49 b Ff(t3)14 b Fe(\)\))60 b Fd(!)390
4618 y Ff(rb)-5 b(alanc)g(e)39 b(t1)46 b(x1)g Fe(\()p
Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(t2)13 b Fb(;)49 b Ff(x2)14
b Fb(;)49 b Ff(t3)14 b Fe(\)\))p Fb(;)49 b Fg(false)195
4738 y Fj(|)33 b Ff(Black)42 b Fe(\()p Ff(t1)14 b Fb(;)49
b Ff(x1)13 b Fb(;)49 b Ff(Black)42 b Fe(\()p Ff(t2)14
b Fb(;)49 b Ff(x2)13 b Fb(;)50 b Ff(t3)13 b Fe(\)\))61
b Fd(!)390 4858 y Ff(rb)-5 b(alanc)g(e)39 b(t1)46 b(x1)g
Fe(\()p Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(t2)13 b Fb(;)49
b Ff(x2)14 b Fb(;)49 b Ff(t3)14 b Fe(\)\))p Fb(;)49 b
Fg(true)195 4979 y Fj(|)33 b Ff(Black)42 b Fe(\()p Ff(t1)14
b Fb(;)49 b Ff(x1)13 b Fb(;)49 b Ff(R)-5 b(e)g(d)43 b
Fe(\()p Ff(Black)f Fe(\()p Ff(t2)14 b Fb(;)49 b Ff(x2)13
b Fb(;)49 b Ff(t3)14 b Fe(\))p Fb(;)49 b Ff(x3)13 b Fb(;)50
b Ff(t4)13 b Fe(\)\))60 b Fd(!)390 5099 y Ff(Black)42
b Fe(\()p Ff(rb)-5 b(alanc)g(e)39 b(t1)46 b(x1)g Fe(\()p
Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(t2)13 b Fb(;)50 b Ff(x2)13
b Fb(;)49 b Ff(t3)14 b Fe(\)\))p Fb(;)49 b Ff(x3)13 b
Fb(;)49 b Ff(t4)14 b Fe(\))p Fb(;)49 b Fg(false)195 5220
y Fj(|)p 262 5220 V 143 w Fd(!)390 5340 y Fg(assert)34
b(false)p eop
%%Page: 5 5
5 4 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2967 b(\2372)195
b(5)p 0 -208 3900 4 v 98 100 a Ff(r)-5 b(emove)p 414
100 35 5 v 56 w(min)39 b(s)69 b Fe(=)61 b(\()p Ff(s)991
63 y Fa(0)1014 100 y Fb(;)17 b Ff(m)7 b Fb(;)17 b Ff(b)6
b Fe(\))32 b Fj(extracts)i(the)g(minim)m(um)29 b Ff(m)40
b Fj(of)32 b Ff(s)8 b Fj(,)33 b Ff(s)2674 63 y Fa(0)2730
100 y Fj(b)s(eing)f(the)i(resulting)d(set,)j(and)0 220
y(indicates)e(with)g Ff(b)38 b Fj(whether)c(the)f(blac)m(k)g(heigh)m(t)
f(has)h(decreased)98 386 y Fg(let)g(rec)g Ff(r)-5 b(emove)p
700 386 V 56 w(min)67 b Fe(=)60 b Fg(function)195 507
y Fj(|)33 b Ff(Empty)69 b Fd(!)390 627 y Fg(assert)34
b(false)195 748 y Fe(\()p Fd(\003)e Fj(minim)m(um)d(is)k(reac)m(hed)g
Fd(\003)p Fe(\))195 868 y Fj(|)g Ff(Black)42 b Fe(\()p
Ff(Empty)9 b Fb(;)49 b Ff(x)12 b Fb(;)49 b Ff(Empty)9
b Fe(\))60 b Fd(!)390 988 y Ff(Empty)9 b Fb(;)49 b Ff(x)12
b Fb(;)49 b Fg(true)195 1109 y Fj(|)33 b Ff(Black)42
b Fe(\()p Ff(Empty)9 b Fb(;)49 b Ff(x)12 b Fb(;)49 b
Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)10 b Fb(;)49 b Ff(y)9
b Fb(;)49 b Ff(r)11 b Fe(\)\))60 b Fd(!)390 1229 y Ff(Black)42
b Fe(\()p Ff(l)10 b Fb(;)50 b Ff(y)9 b Fb(;)49 b Ff(r)11
b Fe(\))p Fb(;)49 b Ff(x)12 b Fb(;)49 b Fg(false)195
1350 y Fj(|)33 b Ff(Black)42 b Fe(\()p Ff(Empty)9 b Fb(;)p
937 1350 V 99 w(;)49 b Ff(Black)p 1339 1350 V 92 w Fe(\))60
b Fd(!)390 1470 y Fg(assert)34 b(false)195 1590 y Fj(|)f
Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(Empty)9 b Fb(;)49 b Ff(x)12
b Fb(;)49 b Ff(r)11 b Fe(\))60 b Fd(!)390 1711 y Ff(r)11
b Fb(;)49 b Ff(x)12 b Fb(;)49 b Fg(false)195 1831 y Fe(\()p
Fd(\003)32 b Fj(minim)m(um)d(is)k(recursiv)m(ely)g(extracted)h(from)d
Ff(l)43 b Fd(\003)p Fe(\))195 1951 y Fj(|)33 b Ff(Black)42
b Fe(\()p Ff(l)10 b Fb(;)49 b Ff(x)12 b Fb(;)49 b Ff(r)11
b Fe(\))60 b Fd(!)390 2072 y Fg(let)33 b Ff(l)559 2036
y Fa(0)583 2072 y Fb(;)17 b Ff(m)7 b Fb(;)17 b Ff(d)70
b Fe(=)60 b Ff(r)-5 b(emove)p 1330 2072 V 56 w(min)39
b(l)k Fg(in)390 2192 y(let)33 b Ff(t)70 b Fe(=)60 b Ff(Black)42
b Fe(\()p Ff(l)1111 2156 y Fa(0)1135 2192 y Fb(;)49 b
Ff(x)12 b Fb(;)49 b Ff(r)11 b Fe(\))32 b Fg(in)390 2313
y(if)39 b Ff(d)k Fg(then)488 2433 y(let)33 b Ff(t)10
b Fb(;)17 b Ff(d)768 2397 y Fa(0)851 2433 y Fe(=)60 b
Ff(unb)-5 b(alanc)g(e)g(d)p 1461 2433 V 59 w(right)42
b(t)g Fg(in)33 b Ff(t)9 b Fb(;)17 b Ff(m)7 b Fb(;)17
b Ff(d)2199 2397 y Fa(0)390 2553 y Fg(else)488 2674 y
Ff(t)9 b Fb(;)50 b Ff(m)7 b Fb(;)49 b Fg(false)195 2794
y Fj(|)33 b Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(l)10 b Fb(;)50
b Ff(x)11 b Fb(;)50 b Ff(r)10 b Fe(\))61 b Fd(!)390 2914
y Fg(let)33 b Ff(l)559 2878 y Fa(0)583 2914 y Fb(;)17
b Ff(m)7 b Fb(;)17 b Ff(d)70 b Fe(=)60 b Ff(r)-5 b(emove)p
1330 2914 V 56 w(min)39 b(l)k Fg(in)390 3035 y(let)33
b Ff(t)70 b Fe(=)60 b Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)1034
2999 y Fa(0)1057 3035 y Fb(;)49 b Ff(x)12 b Fb(;)50 b
Ff(r)10 b Fe(\))33 b Fg(in)390 3155 y(if)39 b Ff(d)k
Fg(then)488 3276 y(let)33 b Ff(t)10 b Fb(;)17 b Ff(d)768
3239 y Fa(0)851 3276 y Fe(=)60 b Ff(unb)-5 b(alanc)g(e)g(d)p
1461 3276 V 59 w(right)42 b(t)g Fg(in)33 b Ff(t)9 b Fb(;)17
b Ff(m)7 b Fb(;)17 b Ff(d)2199 3239 y Fa(0)390 3396 y
Fg(else)488 3516 y Ff(t)9 b Fb(;)50 b Ff(m)7 b Fb(;)49
b Fg(false)98 3683 y(let)33 b Ff(blackify)68 b Fe(=)60
b Fg(function)195 3803 y Fj(|)33 b Ff(R)-5 b(e)g(d)42
b Fe(\()p Ff(l)10 b Fb(;)50 b Ff(x)11 b Fb(;)50 b Ff(r)10
b Fe(\))61 b Fd(!)e Ff(Black)43 b Fe(\()p Ff(l)10 b Fb(;)49
b Ff(x)12 b Fb(;)49 b Ff(r)11 b Fe(\))p Fb(;)49 b Fg(false)195
3924 y Fj(|)33 b Ff(s)68 b Fd(!)60 b Ff(s)8 b Fb(;)49
b Fg(true)98 4090 y Ff(r)-5 b(emove)p 414 4090 V 56 w(aux)39
b(x)g(s)62 b Fe(=)55 b(\()p Ff(s)1044 4054 y Fa(0)1067
4090 y Fb(;)17 b Ff(b)6 b Fe(\))27 b Fj(remo)m(v)m(es)h
Ff(x)39 b Fj(from)26 b Ff(s)35 b Fj(and)27 b(indicates)g(with)f
Ff(b)33 b Fj(whether)c(the)e(blac)m(k)g(heigh)m(t)0 4210
y(has)33 b(decreased)98 4377 y Fg(let)g Ff(r)-5 b(emove)39
b(x)44 b(s)68 b Fe(=)195 4497 y Fg(let)33 b(rec)g Ff(r)-5
b(emove)p 797 4497 V 57 w(aux)72 b Fe(=)60 b Fg(function)293
4618 y Fj(|)32 b Ff(Empty)69 b Fd(!)488 4738 y Ff(Empty)9
b Fb(;)49 b Fg(false)293 4858 y Fj(|)32 b Ff(Black)42
b Fe(\()p Ff(l)11 b Fb(;)49 b Ff(y)9 b Fb(;)49 b Ff(r)11
b Fe(\))60 b Fd(!)488 4979 y Fg(let)33 b Ff(c)65 b Fe(=)60
b Ff(Or)-5 b(d)10 b Fb(:)q Ff(c)-5 b(omp)g(ar)g(e)38
b(x)45 b(y)c Fg(in)488 5099 y(if)e Ff(c)65 b Fb(<)60
b Fe(0)33 b Fg(then)585 5220 y(let)g Ff(l)754 5183 y
Fa(0)778 5220 y Fb(;)17 b Ff(d)70 b Fe(=)60 b Ff(r)-5
b(emove)p 1394 5220 V 56 w(aux)45 b(l)d Fg(in)585 5340
y(let)33 b Ff(t)70 b Fe(=)60 b Ff(Black)42 b Fe(\()p
Ff(l)1306 5304 y Fa(0)1330 5340 y Fb(;)49 b Ff(y)9 b
Fb(;)49 b Ff(r)11 b Fe(\))33 b Fg(in)p eop
%%Page: 6 6
6 5 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2967 b(\2372)195
b(6)p 0 -208 3900 4 v 585 100 a Fg(if)39 b Ff(d)k Fg(then)33
b Ff(unb)-5 b(alanc)g(e)g(d)p 1455 100 35 5 v 59 w(right)42
b(t)g Fg(else)34 b Ff(t)10 b Fb(;)49 b Fg(false)488 220
y(else)33 b(if)39 b Ff(c)66 b Fb(>)60 b Fe(0)32 b Fg(then)585
340 y(let)h Ff(r)771 304 y Fa(0)794 340 y Fb(;)17 b Ff(d)70
b Fe(=)60 b Ff(r)-5 b(emove)p 1410 340 V 57 w(aux)44
b(r)f Fg(in)585 461 y(let)33 b Ff(t)70 b Fe(=)60 b Ff(Black)42
b Fe(\()p Ff(l)11 b Fb(;)49 b Ff(y)9 b Fb(;)49 b Ff(r)1567
425 y Fa(0)1590 461 y Fe(\))33 b Fg(in)585 581 y(if)39
b Ff(d)k Fg(then)33 b Ff(unb)-5 b(alanc)g(e)g(d)p 1455
581 V 59 w(left)42 b(t)g Fg(else)34 b Ff(t)10 b Fb(;)49
b Fg(false)488 702 y(else)33 b Fe(\()p Fd(\003)f Fj(x)h(=)g(y)g
Fd(\003)p Fe(\))585 822 y(\()p Fg(match)g Ff(r)43 b Fg(with)731
942 y Fj(|)33 b Ff(Empty)69 b Fd(!)927 1063 y Ff(blackify)40
b(l)731 1183 y Fj(|)p 799 1183 V 143 w Fd(!)927 1303
y Fg(let)33 b Ff(r)1113 1267 y Fa(0)1136 1303 y Fb(;)17
b Ff(m)6 b Fb(;)17 b Ff(d)71 b Fe(=)60 b Ff(r)-5 b(emove)p
1883 1303 V 56 w(min)39 b(r)44 b Fg(in)927 1424 y(let)33
b Ff(t)70 b Fe(=)60 b Ff(Black)42 b Fe(\()p Ff(l)10 b
Fb(;)49 b Ff(m)7 b Fb(;)50 b Ff(r)1940 1388 y Fa(0)1963
1424 y Fe(\))32 b Fg(in)927 1544 y(if)39 b Ff(d)j Fg(then)33
b Ff(unb)-5 b(alanc)g(e)g(d)p 1796 1544 V 59 w(left)42
b(t)h Fg(else)33 b Ff(t)10 b Fb(;)49 b Fg(false)p Fe(\))293
1665 y Fj(|)32 b Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)10
b Fb(;)49 b Ff(y)9 b Fb(;)49 b Ff(r)11 b Fe(\))60 b Fd(!)488
1785 y Fg(let)33 b Ff(c)65 b Fe(=)60 b Ff(Or)-5 b(d)10
b Fb(:)q Ff(c)-5 b(omp)g(ar)g(e)38 b(x)45 b(y)c Fg(in)488
1905 y(if)e Ff(c)65 b Fb(<)60 b Fe(0)33 b Fg(then)585
2026 y(let)g Ff(l)754 1990 y Fa(0)778 2026 y Fb(;)17
b Ff(d)70 b Fe(=)60 b Ff(r)-5 b(emove)p 1394 2026 V 56
w(aux)45 b(l)d Fg(in)585 2146 y(let)33 b Ff(t)70 b Fe(=)60
b Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)1229 2110 y Fa(0)1252
2146 y Fb(;)50 b Ff(y)9 b Fb(;)49 b Ff(r)11 b Fe(\))32
b Fg(in)585 2267 y(if)39 b Ff(d)k Fg(then)33 b Ff(unb)-5
b(alanc)g(e)g(d)p 1455 2267 V 59 w(right)42 b(t)g Fg(else)34
b Ff(t)10 b Fb(;)49 b Fg(false)488 2387 y(else)33 b(if)39
b Ff(c)66 b Fb(>)60 b Fe(0)32 b Fg(then)585 2507 y(let)h
Ff(r)771 2471 y Fa(0)794 2507 y Fb(;)17 b Ff(d)70 b Fe(=)60
b Ff(r)-5 b(emove)p 1410 2507 V 57 w(aux)44 b(r)f Fg(in)585
2628 y(let)33 b Ff(t)70 b Fe(=)60 b Ff(R)-5 b(e)g(d)43
b Fe(\()p Ff(l)10 b Fb(;)49 b Ff(y)9 b Fb(;)50 b Ff(r)1490
2591 y Fa(0)1513 2628 y Fe(\))32 b Fg(in)585 2748 y(if)39
b Ff(d)k Fg(then)33 b Ff(unb)-5 b(alanc)g(e)g(d)p 1455
2748 V 59 w(left)42 b(t)g Fg(else)34 b Ff(t)10 b Fb(;)49
b Fg(false)488 2868 y(else)33 b Fe(\()p Fd(\003)f Fj(x)h(=)g(y)g
Fd(\003)p Fe(\))585 2989 y(\()p Fg(match)g Ff(r)43 b
Fg(with)731 3109 y Fj(|)33 b Ff(Empty)69 b Fd(!)927 3230
y Ff(l)10 b Fb(;)49 b Fg(false)731 3350 y Fj(|)p 799
3350 V 143 w Fd(!)927 3470 y Fg(let)33 b Ff(r)1113 3434
y Fa(0)1136 3470 y Fb(;)17 b Ff(m)6 b Fb(;)17 b Ff(d)71
b Fe(=)60 b Ff(r)-5 b(emove)p 1883 3470 V 56 w(min)39
b(r)44 b Fg(in)927 3591 y(let)33 b Ff(t)70 b Fe(=)60
b Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(l)10 b Fb(;)50 b Ff(m)7
b Fb(;)49 b Ff(r)1862 3555 y Fa(0)1885 3591 y Fe(\))33
b Fg(in)927 3711 y(if)39 b Ff(d)j Fg(then)33 b Ff(unb)-5
b(alanc)g(e)g(d)p 1796 3711 V 59 w(left)42 b(t)h Fg(else)33
b Ff(t)10 b Fb(;)49 b Fg(false)p Fe(\))195 3831 y Fg(in)195
3952 y(let)33 b Ff(s)377 3916 y Fa(0)400 3952 y Fb(;)p
452 3952 V 127 w Fe(=)60 b Ff(r)-5 b(emove)p 1006 3952
V 56 w(aux)45 b(s)40 b Fg(in)33 b Ff(s)1473 3916 y Fa(0)98
4122 y Fj(buliding)d(a)i(red-blac)m(k)h(tree)g(from)e(a)h(sorted)h
(list)e(in)h(rev)m(erse)j(order)98 4292 y Fg(let)e Ff(lo)-5
b(g2)45 b(n)67 b Fe(=)60 b Ff(trunc)-5 b(ate)41 b Fe(\()p
Ff(lo)-5 b(g)41 b Fe(\()p Fc(\035o)-5 b(at)42 b Ff(n)7
b Fe(\))33 b Fb(=:)f Ff(lo)-5 b(g)41 b Fe(2)p Fb(:)p
Fe(\))98 4462 y Fg(let)33 b Ff(of)p 340 4462 V 70 w(list)42
b(sl)70 b Fe(=)195 4583 y Fg(let)33 b(rec)g Ff(build)43
b(sl)g(n)c(k)71 b Fe(=)293 4703 y Fg(if)39 b Ff(n)67
b Fe(=)60 b(0)32 b Fg(then)390 4824 y Ff(Empty)9 b Fb(;)49
b Ff(sl)293 4944 y Fg(else)33 b(match)g Ff(sl)43 b Fg(with)390
5064 y Fj(|)33 b Fe([)17 b(])60 b Fd(!)585 5185 y Fg(assert)34
b(false)390 5305 y Fj(|)f Ff(x)72 b Fe(::)60 b Ff(sl)43
b Fg(when)33 b Ff(n)67 b Fe(=)60 b(1)g Fd(!)p eop
%%Page: 7 7
7 6 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2967 b(\2372)195
b(7)p 0 -208 3900 4 v 585 100 a Fe(\()p Fg(if)39 b Ff(k)71
b Fe(=)60 b(0)32 b Fg(then)h Ff(R)-5 b(e)g(d)10 b Fe(\()p
Ff(Empty)f Fb(;)17 b Ff(x)12 b Fb(;)17 b Ff(Empty)9 b
Fe(\))32 b Fg(else)i Ff(Black)9 b Fe(\()p Ff(Empty)g
Fb(;)17 b Ff(x)12 b Fb(;)17 b Ff(Empty)9 b Fe(\)\))p
Fb(;)49 b Ff(sl)390 220 y Fj(|)p 458 220 35 5 v 143 w
Fd(!)585 340 y Fg(let)33 b Ff(n)781 304 y Fa(0)865 340
y Fe(=)60 b(\()p Ff(n)i Fd(\000)55 b Fe(1\))32 b Fb(=)g
Fe(2)h Fg(in)585 461 y(match)g Ff(build)43 b(sl)f(n)1284
425 y Fa(0)1340 461 y Fe(\()p Ff(k)65 b Fd(\000)56 b
Fe(1\))32 b Fg(with)683 581 y Fj(|)p 750 581 V 82 w Fb(;)49
b Fe([)17 b(])60 b Fd(!)878 702 y Fg(assert)33 b(false)683
822 y Fj(|)f Ff(l)11 b Fb(;)49 b Ff(x)72 b Fe(::)60 b
Ff(sl)70 b Fd(!)878 942 y Fg(let)33 b Ff(r)11 b Fb(;)49
b Ff(sl)70 b Fe(=)60 b Ff(build)43 b(sl)f Fe(\()p Ff(n)62
b Fd(\000)55 b Ff(n)2112 906 y Fa(0)2190 942 y Fd(\000)h
Fe(1\))32 b(\()p Ff(k)65 b Fd(\000)55 b Fe(1\))32 b Fg(in)878
1063 y Ff(Black)42 b Fe(\()p Ff(r)11 b Fb(;)49 b Ff(x)12
b Fb(;)49 b Ff(l)10 b Fe(\))p Fb(;)49 b Ff(sl)195 1183
y Fg(in)195 1303 y(let)33 b Ff(n)67 b Fe(=)61 b Ff(List)9
b Fb(:)p Ff(length)40 b(sl)i Fg(in)195 1424 y Ff(fst)g
Fe(\()p Ff(build)h(sl)f(n)e Fe(\()p Ff(lo)-5 b(g2)45
b(n)8 b Fe(\)\))98 1588 y Fg(let)33 b(rec)g Ff(elements)p
767 1588 V 57 w(aux)44 b(ac)-5 b(cu)68 b Fe(=)60 b Fg(function)195
1708 y Fj(|)33 b Ff(Empty)69 b Fd(!)390 1829 y Ff(ac)-5
b(cu)195 1949 y Fj(|)33 b Ff(Black)42 b Fe(\()p Ff(l)10
b Fb(;)49 b Ff(v)11 b Fb(;)49 b Ff(r)11 b Fe(\))32 b
Fd(j)g Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)10 b Fb(;)49
b Ff(v)11 b Fb(;)49 b Ff(r)11 b Fe(\))60 b Fd(!)390 2069
y Ff(elements)p 773 2069 V 57 w(aux)45 b Fe(\()p Ff(v)70
b Fe(::)61 b Ff(elements)p 1657 2069 V 57 w(aux)44 b(ac)-5
b(cu)40 b(r)11 b Fe(\))32 b Ff(l)98 2233 y Fg(let)h Ff(elements)39
b(s)69 b Fe(=)195 2354 y Ff(elements)p 578 2354 V 57
w(aux)45 b Fe([)17 b(])32 b Ff(s)98 2517 y Fj(merges)g(t)m(w)m(o)h
(sorted)g(lists,)f(in)m(to)g(a)g(sorted)h(list)e(in)h(rev)m(erse)j
(order)98 2681 y Fg(let)e Ff(union)p 489 2681 V 56 w(list)42
b(l1)k(l2)74 b Fe(=)195 2802 y Fg(let)33 b(rec)g Ff(mer)-5
b(ge)p 747 2802 V 57 w(aux)44 b(ac)-5 b(c)66 b Fe(=)60
b Fg(function)293 2922 y Fj(|)32 b Fe([)17 b(])p Fb(;)49
b Ff(l2)74 b Fd(!)488 3043 y Ff(List)9 b Fb(:)p Ff(r)-5
b(ev)p 832 3043 V 61 w(app)g(end)41 b(l2)46 b(ac)-5 b(c)293
3163 y Fj(|)32 b Ff(l1)13 b Fb(;)50 b Fe([)17 b(])60
b Fd(!)488 3283 y Ff(List)9 b Fb(:)p Ff(r)-5 b(ev)p 832
3283 V 61 w(app)g(end)41 b(l1)46 b(ac)-5 b(c)293 3404
y Fj(|)32 b Fe(\()p Ff(x1)74 b Fe(::)60 b Ff(r1)46 b
Fg(as)32 b Ff(l1)14 b Fe(\))p Fb(;)49 b Fe(\()p Ff(x2)73
b Fe(::)61 b Ff(r2)46 b Fg(as)32 b Ff(l2)13 b Fe(\))61
b Fd(!)488 3524 y Fg(let)33 b Ff(c)65 b Fe(=)60 b Ff(Or)-5
b(d)10 b Fb(:)q Ff(c)-5 b(omp)g(ar)g(e)38 b(x1)46 b(x2)g
Fg(in)488 3644 y(if)39 b Ff(c)65 b Fb(<)60 b Fe(0)33
b Fg(then)g Ff(mer)-5 b(ge)p 1385 3644 V 56 w(aux)45
b Fe(\()p Ff(x1)73 b Fe(::)61 b Ff(ac)-5 b(c)5 b Fe(\))32
b(\()p Ff(r1)14 b Fb(;)49 b Ff(l2)13 b Fe(\))488 3765
y Fg(else)33 b(if)39 b Ff(c)66 b Fb(>)60 b Fe(0)32 b
Fg(then)h Ff(mer)-5 b(ge)p 1564 3765 V 57 w(aux)44 b
Fe(\()p Ff(x2)74 b Fe(::)60 b Ff(ac)-5 b(c)5 b Fe(\))33
b(\()p Ff(l1)13 b Fb(;)49 b Ff(r2)14 b Fe(\))488 3885
y Fg(else)33 b Ff(mer)-5 b(ge)p 933 3885 V 57 w(aux)44
b Fe(\()p Ff(x1)73 b Fe(::)61 b Ff(ac)-5 b(c)5 b Fe(\))32
b(\()p Ff(r1)14 b Fb(;)49 b Ff(r2)14 b Fe(\))195 4006
y Fg(in)195 4126 y Ff(mer)-5 b(ge)p 461 4126 V 57 w(aux)44
b Fe([)17 b(])32 b(\()p Ff(l1)14 b Fb(;)49 b Ff(l2)13
b Fe(\))98 4290 y Fg(let)33 b Ff(union)39 b(s1)46 b(s2)73
b Fe(=)195 4410 y Ff(of)p 304 4410 V 71 w(list)42 b Fe(\()p
Ff(union)p 810 4410 V 56 w(list)g Fe(\()p Ff(elements)e(s1)13
b Fe(\))33 b(\()p Ff(elements)40 b(s2)13 b Fe(\)\))98
4574 y Fj(in)m(tersects)33 b(t)m(w)m(o)h(sorted)f(lists,)e(in)m(to)h(a)
g(sorted)i(list)d(in)g(rev)m(erse)k(order)98 4738 y Fg(let)e
Ff(inter)p 453 4738 V 60 w(list)42 b(l1)k(l2)73 b Fe(=)195
4858 y Fg(let)33 b(rec)g Ff(inter)p 703 4858 V 61 w(aux)44
b(ac)-5 b(c)66 b Fe(=)60 b Fg(function)293 4979 y Fj(|)32
b Fe([)17 b(])p Fb(;)p 507 4979 V 131 w Fd(j)p 649 4979
V 82 w Fb(;)50 b Fe([)17 b(])60 b Fd(!)488 5099 y Ff(ac)-5
b(c)293 5220 y Fj(|)32 b Fe(\()p Ff(x1)74 b Fe(::)60
b Ff(r1)46 b Fg(as)32 b Ff(l1)14 b Fe(\))p Fb(;)49 b
Fe(\()p Ff(x2)73 b Fe(::)61 b Ff(r2)46 b Fg(as)32 b Ff(l2)13
b Fe(\))61 b Fd(!)488 5340 y Fg(let)33 b Ff(c)65 b Fe(=)60
b Ff(Or)-5 b(d)10 b Fb(:)q Ff(c)-5 b(omp)g(ar)g(e)38
b(x1)46 b(x2)g Fg(in)p eop
%%Page: 8 8
8 7 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2967 b(\2372)195
b(8)p 0 -208 3900 4 v 488 100 a Fg(if)39 b Ff(c)65 b
Fe(=)60 b(0)33 b Fg(then)g Ff(inter)p 1340 100 35 5 v
60 w(aux)45 b Fe(\()p Ff(x1)73 b Fe(::)60 b Ff(ac)-5
b(c)6 b Fe(\))32 b(\()p Ff(r1)14 b Fb(;)49 b Ff(r2)13
b Fe(\))488 220 y Fg(else)33 b(if)39 b Ff(c)66 b Fb(<)60
b Fe(0)32 b Fg(then)h Ff(inter)p 1520 220 V 61 w(aux)44
b(ac)-5 b(c)38 b Fe(\()p Ff(r1)13 b Fb(;)50 b Ff(l2)13
b Fe(\))488 340 y Fg(else)33 b Fe(\()p Fd(\003)f Fj(c)h(>)g(0)f
Fd(\003)p Fe(\))g Ff(inter)p 1395 340 V 61 w(aux)44 b(ac)-5
b(c)38 b Fe(\()p Ff(l1)13 b Fb(;)49 b Ff(r2)14 b Fe(\))195
461 y Fg(in)195 581 y Ff(inter)p 417 581 V 61 w(aux)44
b Fe([)17 b(])32 b(\()p Ff(l1)13 b Fb(;)50 b Ff(l2)13
b Fe(\))98 751 y Fg(let)33 b Ff(inter)43 b(s1)i(s2)74
b Fe(=)195 872 y Ff(of)p 304 872 V 71 w(list)42 b Fe(\()p
Ff(inter)p 774 872 V 60 w(list)g Fe(\()p Ff(elements)e(s1)13
b Fe(\))32 b(\()p Ff(elements)40 b(s2)13 b Fe(\)\))98
1042 y Fj(di\033erence)33 b(of)f(t)m(w)m(o)h(sorted)g(lists,)f(in)m(to)
g(a)g(sorted)h(list)e(in)h(rev)m(erse)i(order)98 1212
y Fg(let)f Ff(di\013)p 400 1212 V 70 w(list)42 b(l1)k(l2)73
b Fe(=)195 1333 y Fg(let)33 b(rec)g Ff(di\013)p 650 1333
V 71 w(aux)44 b(ac)-5 b(c)66 b Fe(=)60 b Fg(function)293
1453 y Fj(|)32 b Fe([)17 b(])p Fb(;)p 507 1453 V 159
w Fd(!)488 1573 y Ff(ac)-5 b(c)293 1694 y Fj(|)32 b Ff(l1)13
b Fb(;)50 b Fe([)17 b(])60 b Fd(!)488 1814 y Ff(List)9
b Fb(:)p Ff(r)-5 b(ev)p 832 1814 V 61 w(app)g(end)41
b(l1)46 b(ac)-5 b(c)293 1934 y Fj(|)32 b Fe(\()p Ff(x1)74
b Fe(::)60 b Ff(r1)46 b Fg(as)32 b Ff(l1)14 b Fe(\))p
Fb(;)49 b Fe(\()p Ff(x2)73 b Fe(::)61 b Ff(r2)46 b Fg(as)32
b Ff(l2)13 b Fe(\))61 b Fd(!)488 2055 y Fg(let)33 b Ff(c)65
b Fe(=)60 b Ff(Or)-5 b(d)10 b Fb(:)q Ff(c)-5 b(omp)g(ar)g(e)38
b(x1)46 b(x2)g Fg(in)488 2175 y(if)39 b Ff(c)65 b Fe(=)60
b(0)33 b Fg(then)g Ff(di\013)p 1287 2175 V 70 w(aux)45
b(ac)-5 b(c)37 b Fe(\()p Ff(r1)14 b Fb(;)49 b Ff(r2)13
b Fe(\))488 2296 y Fg(else)33 b(if)39 b Ff(c)66 b Fb(<)60
b Fe(0)32 b Fg(then)h Ff(di\013)p 1467 2296 V 71 w(aux)44
b Fe(\()p Ff(x1)73 b Fe(::)61 b Ff(ac)-5 b(c)5 b Fe(\))32
b(\()p Ff(r1)14 b Fb(;)49 b Ff(l2)13 b Fe(\))488 2416
y Fg(else)33 b Fe(\()p Fd(\003)f Fj(c)h(>)g(0)f Fd(\003)p
Fe(\))g Ff(di\013)p 1341 2416 V 70 w(aux)45 b(ac)-5 b(c)38
b Fe(\()p Ff(l1)13 b Fb(;)49 b Ff(r2)13 b Fe(\))195 2536
y Fg(in)195 2657 y Ff(di\013)p 363 2657 V 70 w(aux)45
b Fe([)17 b(])32 b(\()p Ff(l1)13 b Fb(;)49 b Ff(l2)14
b Fe(\))98 2827 y Fg(let)33 b Ff(di\013)53 b(s1)45 b(s2)74
b Fe(=)195 2947 y Ff(of)p 304 2947 V 71 w(list)42 b Fe(\()p
Ff(di\013)p 721 2947 V 70 w(list)g Fe(\()p Ff(elements)e(s1)13
b Fe(\))32 b(\()p Ff(elements)40 b(s2)13 b Fe(\)\))98
3117 y Fj(TODO:)33 b(optimize)d(follo)m(wing)g(Ocaml's)h(sets)98
3288 y Fg(let)i(rec)g Ff(c)-5 b(omp)g(ar)g(e)p 745 3288
V 56 w(list)70 b Fe(=)60 b Fg(function)195 3408 y Fj(|)33
b Fe([)17 b(])p Fb(;)49 b Fe([)17 b(])60 b Fd(!)f Fe(0)195
3528 y Fj(|)33 b Fe([)17 b(])p Fb(;)p 409 3528 V 159
w Fd(!)82 b(\000)22 b Fe(1)195 3649 y Fj(|)p 262 3649
V 82 w Fb(;)50 b Fe([)17 b(])60 b Fd(!)f Fe(1)195 3769
y Fj(|)33 b Ff(x1)73 b Fe(::)60 b Ff(r1)14 b Fb(;)49
b Ff(x2)73 b Fe(::)61 b Ff(r2)74 b Fd(!)390 3890 y Fg(let)33
b Ff(c)66 b Fe(=)60 b Ff(Or)-5 b(d)10 b Fb(:)p Ff(c)-5
b(omp)g(ar)g(e)39 b(x1)46 b(x2)f Fg(in)390 4010 y(if)39
b Ff(c)66 b Fd(6)p Fe(=)60 b(0)32 b Fg(then)h Ff(c)38
b Fg(else)c Ff(c)-5 b(omp)g(ar)g(e)p 1645 4010 V 56 w(list)42
b Fe(\()p Ff(r1)14 b Fb(;)49 b Ff(r2)13 b Fe(\))98 4180
y Fg(let)33 b Ff(c)-5 b(omp)g(ar)g(e)38 b(s1)46 b(s2)74
b Fe(=)60 b Ff(c)-5 b(omp)g(ar)g(e)p 1413 4180 V 56 w(list)42
b Fe(\()p Ff(elements)e(s1)13 b Fb(;)49 b Ff(elements)40
b(s2)13 b Fe(\))98 4350 y Fg(let)33 b Ff(e)-5 b(qual)42
b(s1)k(s2)73 b Fe(=)60 b Ff(c)-5 b(omp)g(ar)g(e)39 b(s1)46
b(s2)73 b Fe(=)60 b(0)98 4521 y Fj(copied)32 b(from)f(Ocaml's)h(sets)98
4691 y Fg(let)h(rec)g Ff(subset)42 b(s1)k(s2)73 b Fe(=)60
b Fg(match)33 b Fe(\()p Ff(s1)13 b Fb(;)49 b Ff(s2)14
b Fe(\))32 b Fg(with)195 4811 y Fj(|)h Ff(Empty)9 b Fb(;)p
623 4811 V 159 w Fd(!)390 4932 y Fg(true)195 5052 y Fj(|)p
262 5052 V 82 w Fb(;)50 b Ff(Empty)69 b Fd(!)390 5172
y Fg(false)195 5293 y Fj(|)33 b Fe(\()p Ff(Black)42 b
Fe(\()p Ff(l1)13 b Fb(;)49 b Ff(v1)13 b Fb(;)50 b Ff(r1)13
b Fe(\))33 b Fd(j)f Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(l1)14
b Fb(;)49 b Ff(v1)13 b Fb(;)49 b Ff(r1)14 b Fe(\)\))p
Fb(;)p eop
%%Page: 9 9
9 8 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2967 b(\2372)195
b(9)p 0 -208 3900 4 v 293 100 a Fe(\()p Ff(Black)42 b
Fe(\()p Ff(l2)13 b Fb(;)49 b Ff(v2)13 b Fb(;)50 b Ff(r2)13
b Fe(\))32 b Fd(j)h Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(l2)13
b Fb(;)50 b Ff(v2)13 b Fb(;)49 b Ff(r2)14 b Fe(\))32
b Fg(as)h Ff(t2)13 b Fe(\))60 b Fd(!)390 220 y Fg(let)33
b Ff(c)66 b Fe(=)60 b Ff(Or)-5 b(d)10 b Fb(:)p Ff(c)-5
b(omp)g(ar)g(e)39 b(v1)46 b(v2)f Fg(in)390 340 y(if)39
b Ff(c)66 b Fe(=)60 b(0)32 b Fg(then)488 461 y Ff(subset)42
b(l1)j(l2)68 b Fd(^)55 b Ff(subset)42 b(r1)k(r2)390 581
y Fg(else)34 b(if)39 b Ff(c)65 b Fb(<)60 b Fe(0)33 b
Fg(then)488 702 y Ff(subset)42 b Fe(\()p Ff(Black)g Fe(\()p
Ff(l1)13 b Fb(;)49 b Ff(v1)13 b Fb(;)50 b Ff(Empty)9
b Fe(\)\))32 b Ff(l2)68 b Fd(^)55 b Ff(subset)42 b(r1)k(t2)390
822 y Fg(else)488 942 y Ff(subset)c Fe(\()p Ff(Black)g
Fe(\()p Ff(Empty)9 b Fb(;)49 b Ff(v1)13 b Fb(;)49 b Ff(r1)14
b Fe(\)\))32 b Ff(r2)68 b Fd(^)55 b Ff(subset)43 b(l1)i(t2)98
1110 y Fj(other)32 b(functions)98 1278 y Fg(let)h(rec)g
Ff(for)p 523 1278 35 5 v 60 w(al)5 b(l)43 b(p)66 b Fe(=)60
b Fg(function)195 1398 y Fj(|)33 b Ff(Empty)69 b Fd(!)60
b Fg(true)195 1518 y Fj(|)33 b Ff(Black)42 b Fe(\()p
Ff(l)10 b Fb(;)49 b Ff(v)11 b Fb(;)49 b Ff(r)11 b Fe(\))32
b Fd(j)g Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)10 b Fb(;)49
b Ff(v)11 b Fb(;)49 b Ff(r)11 b Fe(\))60 b Fd(!)g Ff(p)38
b(v)66 b Fd(^)55 b Ff(for)p 2243 1518 V 60 w(al)5 b(l)42
b(p)d(l)65 b Fd(^)55 b Ff(for)p 2871 1518 V 60 w(al)5
b(l)42 b(p)d(r)98 1686 y Fg(let)33 b(rec)g Ff(exists)40
b(p)66 b Fe(=)60 b Fg(function)195 1806 y Fj(|)33 b Ff(Empty)69
b Fd(!)60 b Fg(false)195 1927 y Fj(|)33 b Ff(Black)42
b Fe(\()p Ff(l)10 b Fb(;)49 b Ff(v)11 b Fb(;)49 b Ff(r)11
b Fe(\))32 b Fd(j)g Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)10
b Fb(;)49 b Ff(v)11 b Fb(;)49 b Ff(r)11 b Fe(\))60 b
Fd(!)g Ff(p)38 b(v)66 b Fd(_)55 b Ff(exists)40 b(p)e(l)65
b Fd(_)55 b Ff(exists)41 b(p)d(r)98 2094 y Fg(let)33
b Ff(\014lter)43 b(p)38 b(s)68 b Fe(=)195 2215 y Fg(let)33
b(rec)g Ff(\014lt)42 b(ac)-5 b(cu)68 b Fe(=)60 b Fg(function)293
2335 y Fj(|)32 b Ff(Empty)69 b Fd(!)60 b Ff(ac)-5 b(cu)293
2455 y Fj(|)32 b Ff(Black)42 b Fe(\()p Ff(l)11 b Fb(;)49
b Ff(v)10 b Fb(;)50 b Ff(r)10 b Fe(\))33 b Fd(j)f Ff(R)-5
b(e)g(d)43 b Fe(\()p Ff(l)10 b Fb(;)49 b Ff(v)11 b Fb(;)49
b Ff(r)11 b Fe(\))60 b Fd(!)488 2576 y Ff(\014lt)42 b
Fe(\()p Ff(\014lt)g Fe(\()p Fg(if)d Ff(p)f(v)43 b Fg(then)33
b Ff(add)43 b(v)g(ac)-5 b(cu)39 b Fg(else)34 b Ff(ac)-5
b(cu)7 b Fe(\))33 b Ff(l)10 b Fe(\))32 b Ff(r)195 2696
y Fg(in)195 2817 y Ff(\014lt)42 b(Empty)g(s)98 2984 y
Fg(let)33 b Ff(p)-5 b(artition)39 b(p)g(s)68 b Fe(=)195
3105 y Fg(let)33 b(rec)g Ff(p)-5 b(art)43 b Fe(\()p Ff(t)9
b Fb(;)50 b Ff(f)j Fg(as)33 b Ff(ac)-5 b(cu)7 b Fe(\))60
b(=)g Fg(function)293 3225 y Fj(|)32 b Ff(Empty)69 b
Fd(!)60 b Ff(ac)-5 b(cu)293 3345 y Fj(|)32 b Ff(Black)42
b Fe(\()p Ff(l)11 b Fb(;)49 b Ff(v)10 b Fb(;)50 b Ff(r)10
b Fe(\))33 b Fd(j)f Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)10
b Fb(;)49 b Ff(v)11 b Fb(;)49 b Ff(r)11 b Fe(\))60 b
Fd(!)488 3466 y Ff(p)-5 b(art)42 b Fe(\()p Ff(p)-5 b(art)42
b Fe(\()p Fg(if)d Ff(p)f(v)43 b Fg(then)33 b Fe(\()p
Ff(add)43 b(v)g(t)10 b Fb(;)49 b Ff(f)21 b Fe(\))32 b
Fg(else)i Fe(\()p Ff(t)9 b Fb(;)50 b Ff(add)42 b(v)h(f)21
b Fe(\)\))32 b Ff(l)11 b Fe(\))32 b Ff(r)195 3586 y Fg(in)195
3706 y Ff(p)-5 b(art)42 b Fe(\()p Ff(Empty)9 b Fb(;)49
b Ff(Empty)9 b Fe(\))33 b Ff(s)98 3874 y Fg(let)g(rec)g
Ff(c)-5 b(ar)g(dinal)69 b Fe(=)60 b Fg(function)195 3994
y Fj(|)33 b Ff(Empty)69 b Fd(!)60 b Fe(0)195 4115 y Fj(|)33
b Ff(Black)42 b Fe(\()p Ff(l)10 b Fb(;)p 688 4115 V 99
w(;)49 b Ff(r)11 b Fe(\))32 b Fd(j)h Ff(R)-5 b(e)g(d)42
b Fe(\()p Ff(l)10 b Fb(;)p 1344 4115 V 99 w(;)50 b Ff(r)10
b Fe(\))61 b Fd(!)e Ff(c)-5 b(ar)g(dinal)42 b(l)65 b
Fe(+)55 b(1)f(+)h Ff(c)-5 b(ar)g(dinal)41 b(r)98 4282
y Fg(let)33 b(rec)g Ff(min)p 564 4282 V 56 w(elt)70 b
Fe(=)60 b Fg(function)195 4403 y Fj(|)33 b Ff(Empty)69
b Fd(!)60 b Ff(r)-5 b(aise)39 b(Not)p 1171 4403 V 60
w(found)195 4523 y Fj(|)33 b Ff(Black)42 b Fe(\()p Ff(Empty)9
b Fb(;)49 b Ff(v)11 b Fb(;)p 1069 4523 V 99 w Fe(\))32
b Fd(j)g Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(Empty)9 b Fb(;)49
b Ff(v)11 b Fb(;)p 1978 4523 V 98 w Fe(\))61 b Fd(!)e
Ff(v)195 4644 y Fj(|)33 b Ff(Black)42 b Fe(\()p Ff(l)10
b Fb(;)p 688 4644 V 99 w(;)p 814 4644 V 99 w Fe(\))32
b Fd(j)h Ff(R)-5 b(e)g(d)42 b Fe(\()p Ff(l)10 b Fb(;)p
1342 4644 V 99 w(;)p 1468 4644 V 99 w Fe(\))60 b Fd(!)g
Ff(min)p 1948 4644 V 57 w(elt)42 b(l)98 4811 y Fg(let)33
b(rec)g Ff(max)p 578 4811 V 61 w(elt)70 b Fe(=)60 b Fg(function)195
4932 y Fj(|)33 b Ff(Empty)69 b Fd(!)60 b Ff(r)-5 b(aise)39
b(Not)p 1171 4932 V 60 w(found)195 5052 y Fj(|)33 b Ff(Black)42
b Fe(\()p 577 5052 V 50 w Fb(;)49 b Ff(v)10 b Fb(;)50
b Ff(Empty)9 b Fe(\))32 b Fd(j)g Ff(R)-5 b(e)g(d)43 b
Fe(\()p 1486 5052 V 49 w Fb(;)50 b Ff(v)10 b Fb(;)49
b Ff(Empty)9 b Fe(\))61 b Fd(!)e Ff(v)195 5172 y Fj(|)33
b Ff(Black)42 b Fe(\()p 577 5172 V 50 w Fb(;)p 703 5172
V 98 w(;)50 b Ff(r)11 b Fe(\))32 b Fd(j)g Ff(R)-5 b(e)g(d)43
b Fe(\()p 1248 5172 V 49 w Fb(;)p 1373 5172 V 99 w(;)50
b Ff(r)10 b Fe(\))61 b Fd(!)e Ff(max)p 1995 5172 V 61
w(elt)42 b(r)98 5340 y Fg(let)33 b Ff(cho)-5 b(ose)66
b Fe(=)60 b Ff(min)p 889 5340 V 57 w(elt)p eop
%%Page: 10 10
10 9 bop 0 -230 a Fj(Mo)s(dule)32 b(Rbset)2918 b(\2372)195
b(10)p 0 -208 3900 4 v 98 100 a Fg(let)33 b(rec)g Ff(iter)43
b(f)81 b Fe(=)60 b Fg(function)195 220 y Fj(|)33 b Ff(Empty)69
b Fd(!)60 b Fe(\(\))195 340 y Fj(|)33 b Ff(Black)42 b
Fe(\()p Ff(l)10 b Fb(;)49 b Ff(v)11 b Fb(;)49 b Ff(r)11
b Fe(\))32 b Fd(j)g Ff(R)-5 b(e)g(d)43 b Fe(\()p Ff(l)10
b Fb(;)49 b Ff(v)11 b Fb(;)49 b Ff(r)11 b Fe(\))60 b
Fd(!)g Ff(iter)43 b(f)54 b(l)10 b Fe(;)49 b Ff(f)54 b(v)10
b Fe(;)49 b Ff(iter)44 b(f)53 b(r)98 511 y Fg(let)33
b(rec)g Ff(fold)42 b(f)54 b(s)40 b(ac)-5 b(cu)68 b Fe(=)60
b Fg(match)33 b Ff(s)40 b Fg(with)195 631 y Fj(|)33 b
Ff(Empty)69 b Fd(!)60 b Ff(ac)-5 b(cu)195 751 y Fj(|)33
b Ff(Black)42 b Fe(\()p Ff(l)10 b Fb(;)49 b Ff(v)11 b
Fb(;)49 b Ff(r)11 b Fe(\))32 b Fd(j)g Ff(R)-5 b(e)g(d)43
b Fe(\()p Ff(l)10 b Fb(;)49 b Ff(v)11 b Fb(;)49 b Ff(r)11
b Fe(\))60 b Fd(!)g Ff(fold)42 b(f)54 b(l)42 b Fe(\()p
Ff(f)54 b(v)43 b Fe(\()p Ff(fold)f(f)53 b(r)44 b(ac)-5
b(cu)7 b Fe(\)\))0 922 y Fg(end)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF