-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmemory-fragmentation-solved.ps
More file actions
36252 lines (36245 loc) · 370 KB
/
memory-fragmentation-solved.ps
File metadata and controls
36252 lines (36245 loc) · 370 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%!PS-Adobe-2.0
%%Creator: dvipsk 5.66a Copyright 1986-97 Radical Eye Software (www.radicaleye.com)
%%Title: oopsla.dvi
%%Pages: 11
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: Times-Roman Times-Italic Courier
%%EndComments
%DVIPSCommandLine: dvips oopsla.dvi -o oopsla.ps
%DVIPSParameters: dpi=600
%DVIPSSource: TeX output 1998.08.06:2008
%%BeginProcSet: tex.pro
%!
/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{dup length product length le{dup 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 rulex ruley false RMat{BDot}
imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false
RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round
exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto
rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup
/delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{
-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B
/w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}
B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B
/bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: 8r.enc
% @@psencodingfile@{
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
% version = "0.6",
% date = "22 June 1996",
% filename = "8r.enc",
% email = "kb@@mail.tug.org",
% address = "135 Center Hill Rd. // Plymouth, MA 02360",
% codetable = "ISO/ASCII",
% checksum = "119 662 4424",
% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
% @}
%
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both ASCII and Windows.
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there down to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde
/.notdef % rubout; ASCII ends
% 0x80
/.notdef /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant
{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1
roll mul exch}def /ReEncodeFont{/Encoding exch def}def end
%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
true def end /@MacSetUp{userdict /md known{userdict /md get type
/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
clippath mark{transform{itransform moveto}}{transform{itransform lineto}
}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
maxlength dict begin /magscale true def normalscale currentpoint TR
/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
begin /SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
%%EndProcSet
TeXDict begin 40258431 52099146 1000 600 600 (oopsla.dvi)
@start /Fa 134[26 3[29 16 23 23 1[29 29 29 42 16 2[16
29 29 1[26 2[29 29 50[15 46[{TeXBase1Encoding ReEncodeFont}17
58.1154 /Times-Italic rf
%DVIPSBitmapFont: Fb cmmi6 6 1
/Fb 1 79 df<00FFF0007FFC00FFF0007FFC00FFF8007FFC0007F80007C0000FFC000700
000EFC000700000EFE000700000E7F000700001C7F000E00001C3F800E00001C3F800E00
001C1FC00E0000381FC01C0000380FE01C0000380FE01C00003807F01C00007007F03800
007003F83800007001F83800007001FC380000E000FC700000E000FE700000E0007E7000
00E0007F700001C0003FE00001C0003FE00001C0001FE00001C0001FE0000380000FC000
0380000FC00007C00007C0007FFC0007C000FFF800038000FFF8000380002E227DA130>
78 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fc cmr9 9 2
/Fc 2 52 df<003FC00000FFF00003FFFC000780FE000E003F001C001F8038001FC03800
0FE070000FE07C0007F0FF0007F0FF0007F8FF8007F8FF8003F8FF8003F87F0003F87F00
03F81C0007F8000007F8000007F0000007F0000007F000000FE000000FC000001FC00000
1F8000003F0000007E0000007C000000F8000001F0000003E0000007C00000078000000F
0000001E0000003C00000078003800F0003801E0003801C0007003800070070000700E00
00F01FFFFFF03FFFFFF07FFFFFF0FFFFFFE0FFFFFFE0FFFFFFE01D327CB126>50
D<001FE000007FFC0001FFFF0003E03F8007800FC00E000FE01C0007F01F0007F03F8007
F83FC003F83FC003F83FC003F83FC003F81F8007F80F0007F0000007F0000007F000000F
E000000FE000001FC000001F8000003F000001FE00007FF800007FE000007FFC0000003F
0000000F80000007E0000007F0000003F0000003F8000003FC000001FC000001FE000001
FE3E0001FE7F0001FEFF8001FEFF8001FEFF8001FEFF8001FCFF0003FC7E0003F8780003
F8380007F01C0007E00F000FC007E03F8003FFFF0000FFFC00001FE0001F347DB126>I
E
%EndDVIPSBitmapFont
/Fd 136[45 1[45 45 45 45 1[45 45 45 45 45 45 45 45 45
45 45 45 45 45 45 45 38[45 8[45 1[45 45 4[45 45 40[{
TeXBase1Encoding ReEncodeFont}27 74.7198 /Courier rf
%DVIPSBitmapFont: Fe cmr5 5 10
/Fe 10 58 df<01FC0007FF000F07801E03C03C01E03C01E07800F07800F07800F0F800
F8F800F8F800F8F800F8F800F8F800F8F800F8F800F8F800F8F800F8F800F87800F07800
F07800F03C01E03C01E01E03C00F078007FF0001FC00151D7D9B1C>48
D<00600001E0000FE000FFE000FFE000F1E00001E00001E00001E00001E00001E00001E0
0001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E0
0001E0007FFF807FFF807FFF80111C7B9B1C>I<03FC000FFF003FFFC0781FE07807F0FC
01F0FC01F8FC01F8FC00F87800F80001F80001F00001F00003E00007C0000F80001E0000
3C0000700001C0000380180700180C00183800387FFFF0FFFFF0FFFFF0FFFFF0151C7D9B
1C>I<03FC000FFF001FFFC03C07E07C03E07C03F07E01F07C03F03803F00003E00007C0
001F8003FE0003FC00000F800003C00003E00001F00001F83001F87801F8FC01F8FC01F8
FC03F07803E0780FE03FFF800FFF0003FC00151D7D9B1C>I<0001C00003C00007C0000F
C0001FC0003BC00073C00063C000C3C00183C00383C00703C00E03C01C03C03803C07003
C0E003C0FFFFFEFFFFFEFFFFFE0003C00003C00003C00003C00003C0007FFE007FFE007F
FE171C7E9B1C>I<1C00E01FFFE01FFFC01FFF801FFE001FF00018000018000018000018
000018FC001BFF001F07C01C01E01801F01800F00000F80000F80000F87000F8F800F8F8
00F8F800F0F801F06001E07C07C03FFF800FFF0003F800151D7D9B1C>I<003F8000FFC0
03FFE007C0F00F01F01E01F03C00E03C00007C000078100078FF00FBFF80FF03C0FE01E0
FC00F0FC00F0F800F8F800F8F800F8F800F87800F87800F87800F03C00F03C01E01F03C0
0FFF8007FF0001FC00151D7D9B1C>I<6000007FFFF87FFFF87FFFF87FFFF0E00060C000
C0C00180C00300000300000600000C0000180000380000300000700000700000F00000E0
0001E00001E00001E00003E00003E00003E00003E00003E00003E00001C000151D7C9B1C
>I<01FC0007FF801FFFC03C03E03000F07000707000707800707E00707F00E03FC1C01F
F7800FFE0003FF0007FF801F7FE03C1FE07007F07001F8E00078E00038E00038E00038F0
00307800703E01E01FFFC00FFF0001FC00151D7D9B1C>I<01FC0007FF000FFF801E07C0
3C01E07801E07800F0F800F0F800F0F800F8F800F8F800F8F800F87801F87801F83C03F8
1E07F80FFEF807F8F80040F00000F00001E03801E07C03C07C0780781F003FFE001FFC00
07F000151D7D9B1C>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff cmsy9 9 2
/Ff 2 16 df<000E0000001F0000001F0000001F0000001F0000001F0000001F0000700E
01C0F80E03E0FE0E0FE0FF0E1FE07F8E3FC01FEEFF0003FFF80000FFE000003F8000003F
800000FFE00003FFF8001FEEFF007F8E3FC0FF0E1FE0FE0E0FE0F80E03E0700E01C0001F
0000001F0000001F0000001F0000001F0000001F0000000E00001B207BA226>3
D<001FC00000FFF80003FFFE0007FFFF000FFFFF801FFFFFC03FFFFFE03FFFFFE07FFFFF
F07FFFFFF07FFFFFF0FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFF
F8FFFFFFF87FFFFFF07FFFFFF07FFFFFF03FFFFFE03FFFFFE01FFFFFC00FFFFF8007FFFF
0003FFFE0000FFF800001FC0001D1E7CA126>15 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fg cmr6 6 11
/Fg 11 58 df<0000380000000038000000003800000000380000000038000000003800
000000380000000038000000003800000000380000000038000000003800000000380000
00003800000000380000000038000000003800000000380000FFFFFFFFFEFFFFFFFFFEFF
FFFFFFFE0000380000000038000000003800000000380000000038000000003800000000
380000000038000000003800000000380000000038000000003800000000380000000038
0000000038000000003800000000380000000038000027277C9F2F>43
D<00FF0003FFC00781E00F00F01E00783C003C3C003C78001E78001E78001E78001EF800
1FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF800
1F78001E78001E7C003E3C003C3C003C1E00780F00F00781E003FFC000FF0018227DA01E
>48 D<00700000F00007F000FFF000FFF000F9F00001F00001F00001F00001F00001F000
01F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F000
01F00001F00001F00001F00001F00001F00001F000FFFFE0FFFFE0FFFFE013217AA01E>
I<01FC000FFF801FFFC03C0FE07003F07C01F8FE00F8FE00FCFE00FCFE007C7C007C3800
FC0000FC0000F80001F80001F00003E00007C0000780000F00001E0000380000700001E0
1C03801C0700380E00381C00383FFFF87FFFF8FFFFF0FFFFF0FFFFF016217CA01E>I<00
FE0003FFC007FFE00F03F01E00F83F00FC3F007C3F807C3F007C1F00FC0C00F80000F800
01F00003E0000FC001FF0001FF000003E00000F800007C00007E00003E00003F7C003F7C
003FFE003FFE003FFE007EFC007E7800FC3E01F81FFFF007FFC001FF0018227DA01E>I<
0000E00001E00003E00007E00007E0000FE0001FE0001FE0003BE00073E000E3E000E3E0
01C3E00383E00703E00703E00E03E01C03E01C03E03803E07003E0E003E0FFFFFFFFFFFF
FFFFFF0003E00003E00003E00003E00003E00003E0007FFF007FFF007FFF18227DA11E>
I<3000303E01F03FFFE03FFFC03FFF803FFE003FF0003800003800003800003800003800
0038FC003BFF803F07C03C01E03801F01000F80000F80000F80000FC0000FC7800FCFC00
FCFC00FCFC00FCFC00F8F801F87001F07803E03E0FC01FFF800FFF0003F80016227CA01E
>I<000FC0007FF001FFF803F07807C0FC0F00FC1E00FC1E00FC3C00783C00007C000078
0000787FC0F9FFE0FB80F0FE0038FE003CFC001EFC001EF8001FF8001FF8001FF8001F78
001F78001F78001F3C001E3C003E1C003C1E00780F80F007FFE001FFC0007F0018227DA0
1E>I<3800003C00003FFFFF3FFFFF3FFFFF7FFFFE7FFFFC7000387000707000E0E000E0
E001C0000380000700000F00000E00001C00003C00003C0000780000780000F80000F800
00F00001F00001F00001F00003F00003F00003F00003F00003F00003F00001E00000C000
18237CA11E>I<007E0001FFC007FFE00F81F01E00781C007C3C003C3C003C3C003C3E00
3C3F80781FE0781FF0F00FFDE007FF8003FFC001FFE007FFF80F1FFC1E07FC3C03FE7800
FEF0003FF0001FF0000FF0000FF0000FF8000E78001E3C003C1F80F80FFFF007FFC000FF
0018227DA01E>I<00FE0003FFC007FFE00F81F01E00783C00387C003C78003CF8001EF8
001EF8001EF8001FF8001FF8001FF8001F78003F78003F3C007F1C007F0F01DF07FF9F03
FE1E00001E00001E00003E1E003C3F00783F00783F00F03F01E01E07C01FFF800FFE0003
F80018227DA01E>I E
%EndDVIPSBitmapFont
/Fh 104[66 28[29 33 33 50 33 37 21 29 29 37 37 37 37
54 21 33 21 21 37 37 21 33 37 33 37 37 7[42 1[62 1[54
42 37 46 54 46 54 50 62 42 50 1[25 54 54 46 46 54 50
46 46 6[25 37 1[37 1[37 2[37 37 2[19 25 5[25 36[37 2[{
TeXBase1Encoding ReEncodeFont}59 74.7198 /Times-Italic
rf /Fi 104[58 28[26 29 29 42 29 29 16 23 19 29 29 29
29 45 16 29 16 16 29 29 19 26 29 26 29 26 3[19 1[19 36
1[42 55 42 42 36 32 39 1[32 42 42 52 36 42 23 19 42 42
32 1[42 39 39 42 6[16 29 29 1[29 29 29 29 29 29 29 1[15
19 15 2[19 19 19 36[32 2[{TeXBase1Encoding ReEncodeFont}69
58.1154 /Times-Roman rf
%DVIPSBitmapFont: Fj cmsy5 5 1
/Fj 1 4 df<00E00000E00000E00000E000F0E1E0F8E3E07EEFC01FFF0003F80003F800
1FFF007EEFC0F8E3E0F0E1E000E00000E00000E00000E00013127B921F>3
D E
%EndDVIPSBitmapFont
/Fk 104[75 37 1[33 33 24[33 37 37 54 37 37 21 29 25 37
37 37 37 58 21 37 21 21 37 37 25 33 37 33 37 33 3[25
1[25 46 54 54 71 54 54 46 42 50 1[42 54 54 66 46 54 29
25 54 54 42 46 54 50 50 54 1[33 3[21 21 37 37 37 37 37
37 37 37 37 37 1[19 25 19 42 1[25 25 25 58 62 1[37 31[42
42 2[{TeXBase1Encoding ReEncodeFont}82 74.7198 /Times-Roman
rf
%DVIPSBitmapFont: Fl cmssbx10 9 51
/Fl 51 123 df<0007F80FF0001FFE1FF8007FFE3FFC00FFFE3FFC01FFFE3FFC01FFFE3F
FC03FF8E3FFC03FF063FFC07FF063FFC07FF001FF807FF000FF007FF00000007FF000000
07FF00000007FF00000007FF00000007FF00000007FF00000007FF0000003FFFFC0FF87F
FFFE1FFCFFFFFE1FFCFFFFFE1FFCFFFFFE1FFC7FFFFC1FFC07FF001FFC07FF001FFC07FF
001FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF00
1FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF001F
FC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC07FF001FFC
07FF001FFC07FF001FFC03FF001FFC01FE000FF826357FB42C>12
D<FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE07FE00B0B7A8A17>46
D<0001E0000003F0000007F000001FF00000FFF0007FFFF000FFFFF000FFFFF000FFFFF0
00FFFFF0007FFFF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
00007FF000007FF000007FF0003FFFFFE07FFFFFF07FFFFFF07FFFFFF07FFFFFF03FFFFF
E01C367AB529>49 D<001FF0000000FFFE000001FFFF800007FFFFC0000FFFFFE0001FFF
FFF0001FFFFFF8003FFFFFFC007FF07FFE007FC01FFE00FF800FFF00FF000FFF007F0007
FF003E0007FF003E0007FF801C0007FF800C0003FF80040003FF80000003FF80000003FF
80000007FF80000007FF80000007FF00000007FF0000000FFE0000000FFE0000001FFC00
00001FF80000003FF00000007FF00000007FE0000000FFC0000001FF80000003FE000000
07FC0000000FF80000001FF00000001FE00000003FC00000007F80000000FF00000001FE
00000003FC00000007F80000000FF00000000FE00000001FFFFFFF003FFFFFFF807FFFFF
FF807FFFFFFF807FFFFFFF807FFFFFFF803FFFFFFF801FFFFFFF0021367DB529>I<000F
F8000000FFFF000003FFFFC00007FFFFE0000FFFFFF0003FFFFFF8007FFFFFF8007FF03F
FC003FC01FFC001F001FFE001E001FFE000C000FFE0000000FFE0000000FFE0000000FFE
0000001FFE0000001FFE0000001FFC0000001FFC0000003FF80000003FF80000007FF000
0001FFE000003FFFC000003FFF8000003FFF0000003FFFC000003FFFF000003FFFF80000
001FFC0000000FFE00000007FF00000007FF80000003FF80000003FF80000003FFC00000
03FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0200003
FFC0700007FF807C0007FF807F000FFF80FFE01FFF00FFFFFFFF00FFFFFFFE00FFFFFFFC
003FFFFFF8001FFFFFF00007FFFFE00001FFFF8000001FF8000022387DB529>I<00003F
F80000007FFC000000FFFC000000FFFC000001FFFC000001FFFC000003FFFC000003FFFC
000007EFFC000007EFFC00000FEFFC00000FEFFC00001FCFFC00003FCFFC00003FCFFC00
007F8FFC00007F8FFC0000FF0FFC0000FF0FFC0001FF0FFC0001FE0FFC0003FE0FFC0003
FC0FFC0007FC0FFC0007F80FFC000FF80FFC001FF00FFC001FF00FFC003FE00FFC003FE0
0FFC007FC00FFC007F800FFC00FF800FFC00FFFFFFFFE0FFFFFFFFF0FFFFFFFFF0FFFFFF
FFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE000000FFC0000000FFC0000000FFC
0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC00
000007F80024347EB329>I<07FFFFF8000FFFFFFC001FFFFFFC001FFFFFFC001FFFFFFC
001FFFFFFC001FFFFFFC001FFFFFF8001FFC0000001FFC0000001FFC0000001FFC000000
1FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFFFC00001F
FFFF80001FFFFFE0001FFFFFF0001FFFFFF8001FFFFFFC001FFE1FFC001FF80FFE001FF0
07FF001FF007FF000FE007FF0007C007FF00000007FF80000007FF80000007FF80000007
FF80000007FF80000007FF80000007FF80000007FF80080007FF80180007FF803C0007FF
803C0007FF007E000FFF007F000FFF00FF801FFE00FFE03FFE007FFFFFFC003FFFFFFC00
1FFFFFF8000FFFFFF00007FFFFE00003FFFF800000FFFE0000003FF0000021367DB329>
I<0000FF80000007FFC000001FFFF000007FFFF00000FFFFF00001FFFFF00003FFFFF000
07FFC0700007FF0030000FFC0000001FFC0000001FF80000003FF80000003FF00000003F
F00000007FF00000007FF00000007FE07F00007FE1FFC0007FE3FFF000FFE7FFF800FFEF
FFFC00FFFFFFFE00FFFE0FFE00FFFC03FF00FFF803FF00FFF003FF80FFF001FF80FFF001
FF80FFF001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FF
C0FFE001FFC0FFE001FFC07FE001FFC07FE001FFC07FE001FFC07FF001FFC07FF001FFC0
3FF001FF803FF003FF803FF803FF801FF803FF001FFE0FFF000FFFFFFE0007FFFFFE0007
FFFFFC0003FFFFF80001FFFFF000007FFFE000003FFF80000007FC000022387DB529>I<
7FFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07F
FFFFFF80000000FF00000001FF00000003FE00000007FC0000000FFC0000001FF8000000
1FF00000003FF00000007FE00000007FE0000000FFC0000001FFC0000001FF80000003FF
80000003FF80000007FF00000007FF0000000FFE0000000FFE0000001FFE0000001FFC00
00001FFC0000003FFC0000003FFC0000003FF80000007FF80000007FF80000007FF80000
007FF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000001FFE0000001
FFE0000001FFE0000001FFE0000001FFE0000001FFE0000001FFE0000001FFE0000001FF
E0000001FFE0000000FFC0000022357DB329>I<00007FFE00000000FFFF00000000FFFF
00000000FFFF00000001FFFF80000001FFFF80000001FFFF80000003FFFFC0000003FFFF
C0000003FFFFC0000007FEFFE0000007FEFFE0000007FCFFE000000FFCFFF000000FFC7F
F000001FFC7FF800001FF87FF800001FF87FF800003FF83FFC00003FF83FFC00003FF03F
FC00007FF03FFE00007FF01FFE00007FE01FFE0000FFE01FFF0000FFE00FFF0000FFE00F
FF0001FFC00FFF8001FFC007FF8001FFC007FF8003FF8007FFC003FF8003FFC003FF8003
FFC007FF0003FFE007FF0001FFE007FFFFFFFFE00FFFFFFFFFF00FFFFFFFFFF00FFFFFFF
FFF01FFFFFFFFFF81FFFFFFFFFF81FFFFFFFFFF83FF800007FFC3FF800007FFC3FF80000
3FFC7FF000003FFE7FF000003FFE7FF000001FFEFFE000001FFFFFE000001FFFFFE00000
0FFF7F80000007FE30347DB337>65 D<3FFFFFF000007FFFFFFF0000FFFFFFFFC000FFFF
FFFFE000FFFFFFFFF000FFFFFFFFF800FFFFFFFFFC00FFF000FFFE00FFF0003FFE00FFF0
001FFE00FFF0000FFF00FFF0000FFF00FFF00007FF00FFF00007FF00FFF00007FF00FFF0
0007FF00FFF0000FFF00FFF0000FFE00FFF0000FFE00FFF0001FFE00FFF0007FFC00FFF0
01FFF800FFFFFFFFF000FFFFFFFFC000FFFFFFFF0000FFFFFFFFE000FFFFFFFFF800FFFF
FFFFFC00FFF0007FFF00FFF0001FFF00FFF00007FF80FFF00003FFC0FFF00001FFC0FFF0
0001FFC0FFF00001FFE0FFF00001FFE0FFF00000FFE0FFF00000FFE0FFF00000FFE0FFF0
0001FFE0FFF00001FFE0FFF00003FFC0FFF00003FFC0FFF0000FFFC0FFF0003FFF80FFFF
FFFFFF80FFFFFFFFFF00FFFFFFFFFE00FFFFFFFFFC00FFFFFFFFF0007FFFFFFFC0003FFF
FFFC00002B3479B337>I<00000FFF80000000FFFFF8000007FFFFFF00000FFFFFFFC000
3FFFFFFFC0007FFFFFFFC000FFFFFFFFC001FFFFFFFF8003FFFC01FF8007FFF0003F800F
FFC0000F800FFF800007801FFF000003801FFE000001003FFE000000003FFC000000007F
FC000000007FF8000000007FF8000000007FF8000000007FF800000000FFF000000000FF
F000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FF
F000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FF
F0000000007FF8000000007FF8000000007FF8000000007FF8000000007FFC000000003F
FC000000003FFE000000001FFE000000001FFF000000C00FFF800001C00FFFC00003C007
FFF0000FC003FFFC007FC001FFFFFFFFE000FFFFFFFFE0007FFFFFFFE0003FFFFFFFE000
0FFFFFFF800007FFFFFE000000FFFFF80000000FFF80002B387BB535>I<3FFFFFF00000
7FFFFFFF0000FFFFFFFFE000FFFFFFFFF800FFFFFFFFFC00FFFFFFFFFF00FFFFFFFFFF80
FFF000FFFFC0FFF0000FFFC0FFF00007FFE0FFF00001FFF0FFF00000FFF0FFF00000FFF8
FFF000007FF8FFF000003FF8FFF000003FFCFFF000003FFCFFF000001FFCFFF000001FFC
FFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFE
FFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFE
FFF000001FFEFFF000001FFEFFF000001FFCFFF000001FFCFFF000003FFCFFF000003FFC
FFF000003FF8FFF000007FF8FFF000007FF8FFF00000FFF0FFF00001FFF0FFF00003FFE0
FFF0000FFFE0FFF0007FFFC0FFFFFFFFFF80FFFFFFFFFF00FFFFFFFFFE00FFFFFFFFF800
FFFFFFFFE0007FFFFFFF80003FFFFFF800002F3479B33B>I<3FFFFFFFE07FFFFFFFF0FF
FFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFE0FFF0000000FFF0
000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF000
0000FFF0000000FFF0000000FFF0000000FFF0000000FFFFFFFF00FFFFFFFF80FFFFFFFF
80FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF00FFF0000000FFF0000000
FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FF
F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFFFFFFFF0FFFFFFFFF8FFFF
FFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF83FFFFFFFF0253479
B330>I<3FFFFFFFC07FFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFF
FFFFE0FFFFFFFFC0FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF000
0000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF00000
00FFF0000000FFFFFFFC00FFFFFFFE00FFFFFFFE00FFFFFFFE00FFFFFFFE00FFFFFFFE00
FFFFFFFE00FFFFFFFC00FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FF
F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0
000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF000
00007FF00000003FE0000000233479B32E>I<3FE07FF0FFF0FFF0FFF0FFF0FFF0FFF0FF
F0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FF
F0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FF
F0FFF0FFF0FFF0FFF0FFF07FF03FE00C347AB319>73 D<3FE000007FF00000FFF00000FF
F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF
F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF
F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF
F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF
F00000FFF00000FFF00000FFF00000FFF00000FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFF7FFFFFFF3FFFFFFE203479B32B>76 D<3FF80000000FFF807FFC000000
1FFFC0FFFE0000003FFFC0FFFE0000003FFFC0FFFF0000007FFFC0FFFF0000007FFFC0FF
FF0000007FFFC0FFFF800000FFFFC0FFFF800000FFFFC0FFFFC00001FFFFC0FFDFC00001
FEFFC0FFDFC00001FEFFC0FFDFE00003FEFFC0FFDFE00003FEFFC0FFCFE00003FCFFC0FF
CFF00007FCFFC0FFCFF00007FCFFC0FFCFF8000FFCFFC0FFC7F8000FF8FFC0FFC7F8000F
F8FFC0FFC7FC001FF8FFC0FFC3FC001FF0FFC0FFC3FC001FF0FFC0FFC3FE003FF0FFC0FF
C1FE003FE0FFC0FFC1FF007FE0FFC0FFC1FF007FE0FFC0FFC0FF007FC0FFC0FFC0FF80FF
C0FFC0FFC0FF80FFC0FFC0FFC07F80FF80FFC0FFC07FC1FF80FFC0FFC07FC1FF80FFC0FF
C03FC1FF00FFC0FFC03FE3FF00FFC0FFC01FE3FE00FFC0FFC01FE3FE00FFC0FFC01FF7FE
00FFC0FFC00FF7FC00FFC0FFC00FF7FC00FFC0FFC00FFFFC00FFC0FFC007FFF800FFC0FF
C007FFF800FFC0FFC003FFF000FFC0FFC003FFF000FFC0FFC003FFF000FFC0FFC001FFE0
00FFC0FFC001FFE000FFC0FFC000FFC000FFC0FFC0007F8000FFC07FC000000000FFC03F
80000000007F803A3479B349>I<3FFC00001FE07FFF00003FF0FFFF00003FF0FFFF8000
3FF0FFFF80003FF0FFFFC0003FF0FFFFC0003FF0FFFFC0003FF0FFFFE0003FF0FFFFE000
3FF0FFDFF0003FF0FFDFF0003FF0FFCFF8003FF0FFCFF8003FF0FFCFFC003FF0FFC7FC00
3FF0FFC7FE003FF0FFC3FE003FF0FFC3FE003FF0FFC3FF003FF0FFC1FF003FF0FFC1FF80
3FF0FFC0FF803FF0FFC0FFC03FF0FFC07FC03FF0FFC07FE03FF0FFC07FE03FF0FFC03FE0
3FF0FFC03FF03FF0FFC01FF03FF0FFC01FF83FF0FFC00FF83FF0FFC00FFC3FF0FFC007FC
3FF0FFC007FC3FF0FFC007FE3FF0FFC003FE3FF0FFC003FF3FF0FFC001FF3FF0FFC001FF
3FF0FFC000FFBFF0FFC000FFBFF0FFC0007FFFF0FFC0007FFFF0FFC0003FFFF0FFC0003F
FFF0FFC0003FFFF0FFC0001FFFF0FFC0001FFFF0FFC0000FFFF07FC0000FFFF03F800003
FFE02C3479B33B>I<00001FFE0000000001FFFFE00000000FFFFFFC0000001FFFFFFE00
00007FFFFFFF800000FFFFFFFFC00001FFF807FFE00003FFE001FFF00007FF80007FF800
0FFF00003FFC000FFE00001FFC001FFE00001FFE001FFC00000FFE003FFC00000FFF003F
F8000007FF003FF8000007FF007FF8000007FF807FF8000007FF807FF0000003FF807FF0
000003FF807FF0000003FF80FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF000
0003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF00000
03FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003
FFC0FFF0000003FFC07FF8000007FF807FF8000007FF807FF8000007FF807FF8000007FF
803FFC00000FFF003FFC00000FFF003FFC00000FFF001FFE00001FFE001FFF00003FFE00
0FFF00003FFC000FFF80007FFC0007FFE001FFF80003FFF807FFF00001FFFFFFFFE00000
FFFFFFFFC000007FFFFFFF8000003FFFFFFF0000000FFFFFFC00000001FFFFE000000000
1FFE00000032387CB53B>I<3FFFFFF000007FFFFFFF0000FFFFFFFFC000FFFFFFFFE000
FFFFFFFFF800FFFFFFFFF800FFFFFFFFFC00FFF000FFFE00FFF0001FFE00FFF0000FFF00
FFF00007FF00FFF00007FF00FFF00007FF80FFF00007FF80FFF00003FF80FFF00003FF80
FFF00003FF80FFF00003FF80FFF00003FF80FFF00007FF80FFF00007FF80FFF00007FF00
FFF0000FFF00FFF0000FFF00FFF0003FFE00FFF000FFFE00FFFFFFFFFC00FFFFFFFFF800
FFFFFFFFF000FFFFFFFFE000FFFFFFFF8000FFFFFFFC0000FFF000000000FFF000000000
FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000
FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000
FFF000000000FFF000000000FFF000000000FFF0000000007FF0000000003FE000000000
293479B335>I<3FFFFFE000007FFFFFFE0000FFFFFFFFC000FFFFFFFFE000FFFFFFFFF8
00FFFFFFFFFC00FFFFFFFFFE00FFF0007FFE00FFF0001FFF00FFF0000FFF00FFF00007FF
00FFF00007FF80FFF00007FF80FFF00003FF80FFF00003FF80FFF00003FF80FFF00003FF
80FFF00007FF80FFF00007FF80FFF00007FF00FFF0000FFF00FFF0001FFE00FFF0007FFE
00FFFFFFFFFC00FFFFFFFFF800FFFFFFFFF000FFFFFFFFC000FFFFFFFF0000FFFFFFFC00
00FFF01FFC0000FFF01FFE0000FFF00FFE0000FFF00FFF0000FFF007FF8000FFF007FF80
00FFF003FFC000FFF003FFC000FFF001FFE000FFF000FFE000FFF000FFF000FFF0007FF0
00FFF0007FF800FFF0003FFC00FFF0003FFC00FFF0001FFE00FFF0001FFE00FFF0000FFF
00FFF00007FF00FFF00007FF80FFF00003FFC07FF00003FFC03FE00001FF802A3479B335
>82 D<0007FF0000007FFFF00001FFFFFC0003FFFFFF0007FFFFFFC00FFFFFFFC01FFFFF
FFC03FFFFFFFC03FFFFFFF807FFC01FF807FF0003F807FE0000F80FFC0000780FFC00003
80FFC0000100FFC0000000FFC0000000FFE0000000FFE0000000FFF80000007FFF000000
7FFFF000003FFFFF00003FFFFFE0001FFFFFF8000FFFFFFC0007FFFFFE0003FFFFFF0001
FFFFFF8000FFFFFFC0003FFFFFE00007FFFFE000007FFFF0000007FFF0000000FFF00000
007FF80000003FF80000003FF80000001FF80000001FF82000001FF87000001FF8780000
1FF87C00003FF87F00003FF07FC0007FF07FFC01FFF0FFFFFFFFE0FFFFFFFFE0FFFFFFFF
C0FFFFFFFF803FFFFFFF000FFFFFFE0003FFFFFC00007FFFF0000007FF000025387CB52E
>I<3FFFFFFFFFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF7FFFFFFFFFFE00003FFC000000003FFC000000003FFC000000003FFC
000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC
000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC
000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC
000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC
000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC
000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC000000003FFC
000000003FFC000000003FFC000000001FFC000000000FF8000030347DB337>I<FF0000
03FFE000007F80FF800007FFF00000FF80FFC0000FFFF00001FF80FFC0000FFFF80001FF
80FFC0000FFFF80001FF807FE0000FFFF80001FF007FE0001FFFF80003FF007FE0001FFF
FC0003FF007FE0001FFFFC0003FF003FF0001FFFFC0003FE003FF0003FF7FC0007FE003F
F0003FF7FE0007FE003FF0003FE7FE0007FE001FF8003FE7FE0007FC001FF8007FE3FE00
0FFC001FF8007FE3FF000FFC001FF8007FC3FF000FFC000FFC007FC3FF000FF8000FFC00
FFC1FF001FF8000FFC00FFC1FF801FF8000FFC00FF81FF801FF80007FE00FF81FF801FF0
0007FE00FF80FF803FF00007FE01FF80FFC03FF00007FE01FF00FFC03FF00003FF01FF00
FFC03FE00003FF01FF007FC07FE00003FF03FF007FC07FE00003FF03FE007FE07FE00001
FF03FE007FE07FC00001FF83FE003FE0FFC00001FF87FE003FE0FFC00001FF87FC003FF0
FFC00000FF87FC003FF0FF800000FFC7FC001FF0FF800000FFC7FC001FF1FF800000FFCF
F8001FF1FF8000007FCFF8001FF9FF0000007FCFF8000FF9FF0000007FCFF8000FF9FF00
00007FEFF0000FFBFF0000003FEFF0000FFBFE0000003FFFF00007FFFE0000003FFFF000
07FFFE0000003FFFE00007FFFE0000001FFFE00007FFFC0000001FFFE00003FFFC000000
1FFFE00003FFFC0000001FFFC00003FFFC0000000FFFC00003FFF80000000FFFC00001FF
F800000007FF800000FFF0000049347EB34E>87 D<001FFE0000FFFF8007FFFFE00FFFFF
F01FFFFFF81FFFFFFC1FE00FFE0F800FFE0F0007FF0E0007FF0C0007FF000007FF000007
FF000007FF00001FFF001FFFFF00FFFFFF03FFFFFF0FFFF7FF1FFF07FF3FF807FF7FF007
FF7FF007FFFFE007FFFFE007FFFFE007FFFFE007FFFFE00FFFFFE00FFF7FF01FFF7FF87F
FF3FFFFFFF1FFFF7FF0FFFE7FF07FFC7FF03FF83FE00FC000020257EA327>97
D<3FC00000007FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000
FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF
E0000000FFE0000000FFE0000000FFE07F8000FFE3FFE000FFEFFFF000FFFFFFF800FFFF
FFFC00FFFFFFFE00FFFC0FFF00FFE007FF00FFE003FF80FFE003FF80FFE003FF80FFE001
FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FF
C0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FF80FFE003FF80
FFE003FF80FFE003FF00FFF007FF00FFF81FFE00FFFFFFFE00FFFFFFFC00FFFFFFF8007F
EFFFF0003FC7FFC0000001FE000022357CB32A>I<000FFE00007FFFC001FFFFF003FFFF
FC07FFFFFC0FFFFFFC1FFE03FC1FF800F83FF000383FF000187FF000007FE000007FE000
00FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE000
00FFE00000FFE000007FE000007FE000007FF000047FF0001C3FF0003C3FF800FC1FFE07
FE0FFFFFFE07FFFFFE03FFFFFE01FFFFF8007FFFC0000FFE001F257DA325>I<000000FF
80000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0
000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC000
0001FFC0000001FFC0003FC1FFC000FFF9FFC003FFFDFFC007FFFFFFC00FFFFFFFC01FFF
FFFFC03FFE07FFC03FF801FFC07FF001FFC07FF001FFC07FF001FFC07FE001FFC0FFE001
FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FF
C0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC07FE001FFC07FF001FFC07FF001FFC0
7FF001FFC03FF803FFC03FFC0FFFC01FFFFFFFC00FFFFFFFC007FFFFFFC003FFFDFFC000
FFF0FF80003FC0000022357DB32A>I<000FFE0000007FFF800000FFFFE00003FFFFF000
07FFFFF8000FFFFFFC001FFE0FFE001FF803FE003FF003FF007FF001FF007FE001FF007F
E001FF807FE000FF80FFE000FF80FFE000FF80FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFF
FFFF80FFFFFFFF00FFC0000000FFE0000000FFE0000000FFE00000007FE00000007FE000
00007FF00000003FF00003003FF80007001FFC003F000FFF01FF0007FFFFFF0003FFFFFF
0001FFFFFF0000FFFFFC00003FFFF0000007FF000021257EA326>I<0003FE00001FFFC0
007FFFC000FFFFC001FFFFC003FFFFC007FF03C007FE01C007FE00C00FFE00000FFE0000
0FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00003FFFF800
7FFFFC00FFFFFC00FFFFFC00FFFFFC007FFFF8000FFE00000FFE00000FFE00000FFE0000
0FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE0000
0FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE0000
0FFE00000FFE00000FFE00000FFE000007FE000003FC00001A357FB419>I<000FFC00F8
007FFF87F801FFFFFFFC03FFFFFFFC07FFFFFFFC0FFC0FFC1C1FF807FE001FF003FE003F
F003FF003FF003FF003FF003FF003FF003FF003FF003FF003FF003FF003FF003FF003FF0
03FF001FF003FE001FF807FE000FFC0FFC0007FFFFF80003FFFFF00007FFFFE0000F7FFF
80000F0FFC00001F000000001F000000001F000000001F800000001FFFFFE0001FFFFFFE
001FFFFFFF800FFFFFFFC00FFFFFFFE007FFFFFFF00FFFFFFFF83FFFFFFFF87FFFFFFFF8
7FC0003FFCFF80000FFCFF800007FCFF800007FCFF800007FCFF800007FCFF800007FC7F
C0000FF87FE0001FF83FFC00FFF01FFFFFFFE00FFFFFFFC007FFFFFF8000FFFFFC00001F
FFE00026347FA229>I<3FC00000007FE0000000FFE0000000FFE0000000FFE0000000FF
E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0
000000FFE0000000FFE0000000FFE0000000FFE0000000FFE03FE000FFE0FFF800FFE3FF
FC00FFE7FFFE00FFEFFFFF00FFFFFFFF00FFFF07FF80FFFC03FF80FFF803FF80FFF003FF
80FFF003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80
FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FF
E003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE0
03FF80FFE003FF807FE003FF803FC001FF0021347CB32A>I<3FE07FF0FFF0FFF0FFF0FF
F0FFF0FFF0FFF0FFF07FE0000000000000000000000000000000001FE03FF07FF07FF07F
F07FF07FF07FF07FF07FF07FF07FF07FF07FF07FF07FF07FF07FF07FF07FF07FF07FF07F
F07FF07FF07FF07FF07FF07FF07FF07FF07FF03FF01FE00C357DB414>I<001FF8003FFC
003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC001FF8000000000000000000
000000000000000000000000000000000FF8001FFC001FFC001FFC001FFC001FFC001FFC
001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC
001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC
001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC201FFC703FF8
7FFFF8FFFFF0FFFFF07FFFE03FFFC00FFF8001FC00164585B415>I<3F800000007FC000
0000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC00000
00FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000
FFC0000000FFC0000000FFC007FE00FFC00FFE00FFC01FFE00FFC07FFC00FFC0FFF800FF
C1FFE000FFC3FFC000FFC7FF8000FFCFFF0000FFDFFE0000FFFFFC0000FFFFF80000FFFF
F00000FFFFE00000FFFFE00000FFFFF00000FFFFF80000FFFFFC0000FFFFFE0000FFFFFE
0000FFF7FF0000FFC3FF8000FFC1FFC000FFC0FFC000FFC0FFE000FFC07FF000FFC03FF8
00FFC01FF800FFC01FFC00FFC00FFE00FFC007FF00FFC003FF007FC003FF803F8001FF00
21347CB328>I<3FC07FE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FF
E0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FF
E0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE07F
E03FC00B347CB314>I<00001FF0003FE0003FC0FFFC01FFF8007FE1FFFE03FFFC00FFE7
FFFF0FFFFE00FFEFFFFF9FFFFF00FFFFFFFFBFFFFF00FFFF03FFFE07FF80FFFC01FFF803
FF80FFF801FFF003FF80FFF001FFE003FF80FFF001FFE003FF80FFE001FFC003FF80FFE0
01FFC003FF80FFE001FFC003FF80FFE001FFC003FF80FFE001FFC003FF80FFE001FFC003
FF80FFE001FFC003FF80FFE001FFC003FF80FFE001FFC003FF80FFE001FFC003FF80FFE0
01FFC003FF80FFE001FFC003FF80FFE001FFC003FF80FFE001FFC003FF80FFE001FFC003
FF80FFE001FFC003FF80FFE001FFC003FF80FFE001FFC003FF80FFE001FFC003FF80FFE0
01FFC003FF80FFE001FFC003FF80FFE001FFC003FF807FE000FFC001FF803FC0007F8000
FF0039237CA242>I<00003FE0003FC0FFF8007FE3FFFC00FFE7FFFE00FFEFFFFF00FFFF
FFFF00FFFF07FF80FFFC03FF80FFF803FF80FFF003FF80FFF003FF80FFE003FF80FFE003
FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF
80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80
FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF807FE003FF803F
C001FF0021237CA22A>I<0007FE0000007FFFE00001FFFFF80003FFFFFC0007FFFFFE00
0FFFFFFF001FFE07FF801FF801FF803FF801FFC03FF000FFC07FF000FFE07FE0007FE07F
E0007FE0FFE0007FF0FFE0007FF0FFE0007FF0FFE0007FF0FFE0007FF0FFE0007FF0FFE0
007FF0FFE0007FF0FFE0007FF0FFE0007FF0FFE0007FF0FFE0007FF07FE0007FE07FF000
FFE07FF000FFE03FF801FFC03FF801FFC01FFE07FF801FFFFFFF800FFFFFFF0003FFFFFC
0001FFFFF800007FFFE000000FFF000024257EA329>I<00007F80003FC3FFE0007FEFFF
F000FFFFFFF800FFFFFFFC00FFFFFFFE00FFFC1FFF00FFE007FF00FFE007FF80FFE003FF
80FFE003FF80FFE003FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0
FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FF
E003FF80FFE003FF80FFE003FF80FFE007FF00FFF00FFF00FFF81FFE00FFFFFFFE00FFFF
FFFC00FFFFFFF800FFEFFFF000FFE7FFC000FFE1FE0000FFE0000000FFE0000000FFE000
0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000
00FFE0000000FFE00000007FE00000003FC000000022327CA22A>I<001FC0FF8000FFF1
FFC001FFFDFFC007FFFFFFC00FFFFFFFC01FFFFFFFC01FFE0FFFC03FFC03FFC03FF801FF
C07FF001FFC07FF001FFC07FF001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0
FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FF
E001FFC07FF001FFC07FF001FFC07FF001FFC07FF801FFC03FF803FFC01FFE0FFFC01FFF
FFFFC00FFFFFFFC007FFFFFFC003FFFDFFC000FFF1FFC0003FC1FFC0000001FFC0000001
FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FF
C0000001FFC0000001FFC0000001FFC0000001FFC0000000FF8022327DA22A>I<00003C
3F80FC7FC3FCFFC7FCFFCFFCFFCFFCFFDFFCFFFFFCFFFFC0FFFE00FFFC00FFF800FFF000
FFF000FFE000FFE000FFE000FFE000FFE000FFE000FFE000FFE000FFE000FFE000FFE000
FFE000FFE000FFE000FFE000FFE000FFE000FFE000FFE0007FE0003FC00016237CA21C>
I<007FE00003FFFC0007FFFF000FFFFFC01FFFFFC03FFFFFC03FFFFFC07FC03F807F800F
807F8003807F8001007F8000007FE000007FFE00003FFFE0003FFFF8001FFFFC001FFFFE
000FFFFF0007FFFF8003FFFFC000FFFFC0001FFFE00000FFE000003FE020001FE070001F
E078001FE07E001FE07FC03FC0FFFFFFC0FFFFFFC0FFFFFF80FFFFFF003FFFFE0007FFFC
00007FE0001B257EA320>I<03FC000007FE00000FFE00000FFE00000FFE00000FFE0000
0FFE00000FFE00000FFE00000FFE00003FFFFE007FFFFF00FFFFFF00FFFFFF00FFFFFF00
7FFFFE000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE0000
0FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE00000FFE0000
0FFE00000FFE00000FFE00000FFE00800FFF038007FF0F8007FFFFC007FFFFC003FFFF80
01FFFF0000FFF800007F80001A2D7FAB1E>I<3FC001FF007FE003FF80FFE003FF80FFE0
03FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003
FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF
80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80FFE003FF80
FFE007FF80FFE007FF80FFE00FFF80FFE00FFF807FF03FFF807FFFFFFF803FFFFBFF801F
FFF3FF800FFFC1FF0001FF00000021237CA12A>I<FF8000FFFFC001FFFFC003FFFFC003
FFFFE003FF7FE007FE7FE007FE7FF007FE3FF00FFC3FF00FFC3FF00FFC1FF80FF81FF81F
F81FF81FF81FFC1FF80FFC3FF00FFC3FF00FFC3FF007FE3FE007FE7FE007FE7FE007FE7F
E003FF7FC003FFFFC003FFFFC001FFFF8001FFFF8001FFFF8000FFFF0000FFFF0000FFFF
0000FFFF00007FFE00003FFC0020227EA125>I<FF0003F8001FE0FFC007FC003FE0FFC0
0FFC007FE0FFC00FFC007FE0FFC00FFE007FE07FE00FFE00FFC07FE01FFE00FFC07FE01F
FE00FFC07FF01FFF00FFC03FF01FFF01FF803FF03FFF01FF803FF03EFF81FF803FF83EFF
81FF801FF83EFF83FF001FF87E7F83FF001FF87E7FC3FF000FFC7E7FC7FE000FFC7E7FC7
FE000FFCFC7FC7FE000FFCFC7FE7FE0007FCFC3FEFFC0007FEFC3FEFFC0007FEFC3FEFFC
0007FFF83FFFFC0003FFF81FFFF80003FFF81FFFF80003FFF81FFFF80001FFF01FFFF000
01FFF00FFFF00001FFF00FFFF00001FFF00FFFF00000FFE00FFFE00000FFE007FFE00000
7FC003FFC00033227EA138>I<FFC007FEFFE00FFEFFF00FFE7FF01FFC3FF83FF81FFC3F
F00FFC7FF00FFEFFE007FFFFC003FFFF8001FFFF8001FFFF0000FFFE00007FFC00003FFC
00001FF800001FF000003FF800003FFC00007FFE0000FFFE0001FFFF0001FFFF8003FEFF
C007FE7FE00FFC7FE00FFC3FF01FF81FF83FF01FFC7FF00FFC7FE007FEFFE007FFFFC003
FFFF8001FF20227EA125>I<7F8000FFFFC001FFFFE003FF7FE003FF7FF003FE7FF007FE
3FF007FE3FF807FE1FF80FFC1FFC0FFC0FFC0FFC0FFC0FF80FFE1FF807FE1FF807FE1FF0
03FF1FF003FF3FF003FF3FE001FF3FE001FF3FE000FFBFC000FFBFC0007FBFC0007FFF80
007FFF80003FFF80003FFF80001FFF00001FFF00000FFF00000FFE00000FFE000007FE00
0007FC000007FC000007FC000007F800000FF800000FF800000FF000001FF000403FF000
F07FE000FFFFC000FFFFC000FFFF8000FFFF00007FFE00007FF800001FE0000020327EA1
25>I<1FFFFFF83FFFFFFC7FFFFFFC7FFFFFFC7FFFFFFC3FFFFFF800003FF000007FF000
00FFE00001FFC00001FF800003FF800007FF00000FFE00000FFC00001FFC00003FF80000
7FF00000FFE00000FFC00001FFC00003FF800007FF000007FE00000FFE00001FFC00003F
F800003FF000007FFFFFFCFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE7FFFFFFC1F227EA124
>I E
%EndDVIPSBitmapFont
/Fm 134[45 45 66 45 45 25 35 30 2[45 45 71 25 45 25 25
45 45 30 40 45 40 1[40 9[86 1[66 56 51 61 1[51 2[81 2[35
5[66 61 1[66 84 17[23 1[23 44[{TeXBase1Encoding ReEncodeFont}36
90.9091 /Times-Roman rf
%DVIPSBitmapFont: Fn cmsy10 10 1
/Fn 1 4 df<000380000007C0000007C0000007C0000007C0000007C0000007C0000007
C0007803803CFC03807EFE0380FE7F8383FC3FC387F80FE38FE003FBBF8000FFFE00003F
F800000FE000000FE000003FF80000FFFE0003FBBF800FE38FE03FC387F87F8383FCFE03
80FEFC03807E7803803C0007C0000007C0000007C0000007C0000007C0000007C0000007
C000000380001F247BA62A>3 D E
%EndDVIPSBitmapFont
/Fo 134[60 2[60 1[33 1[40 2[60 60 93 33 2[33 60 60 1[53
60 1[60 53 12[73 66 2[66 2[106 6[66 6[53 4[33 58[{
TeXBase1Encoding ReEncodeFont}22 119.552 /Times-Roman
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%EndSetup
%%Page: 1 1
1 0 bop 798 231 a Fo(The)30 b(Memory)g(Fragmentation)g(Problem:)37
b(Solv)n(ed?)3041 188 y Fn(\003)839 456 y Fm(Mark)24
b(S.)e(Johnstone)475 569 y(The)h(Motorola)i(Somerset)f(Design)g(Center)
817 682 y(Austin,)g(T)-6 b(e)o(xas,)22 b(USA)814 795
y(johnstone@acm.or)n(g)2477 456 y(P)o(aul)h(R.)f(W)l(ilson)2137
569 y(The)h(Uni)n(v)o(ersity)i(of)f(T)-6 b(e)o(xas)23
b(at)g(Austin)2389 682 y(Austin,)h(T)-6 b(e)o(xas,)23
b(USA)2346 795 y(wilson@cs.ute)o(xas.edu)0 1528 y Fl(Abstract)0
1688 y Fk(W)-6 b(e)17 b(sho)n(w)i(that)e(for)h(8)g(real)f(and)h(v)n
(aried)h(C)e(and)i(C++)e(programs,)i(se)n(v-)0 1771 y(eral)31
b(con)m(v)o(entional)h(dynamic)g(storage)f(allocators)h(pro)o(vide)f
(near)o(-)0 1854 y(zero)f(fragmentation,)j(once)e(we)f(account)h(for)e
(o)o(v)o(erheads)j(due)e(to)0 1937 y(implementation)22
b(details)e(such)i(as)f(headers,)h(alignment,)g(etc.)29
b(This)0 2020 y(substantially)j(strengthens)h(our)f(pre)n(vious)h
(results)e(sho)n(wing)i(that)0 2103 y(the)23 b(memory)h(fragmentation)g
(problem)g(has)g(generally)g(been)g(mis-)0 2186 y(understood,)18
b(and)f(that)e(good)i(allocator)g(policies)f(can)g(pro)o(vide)h(good)0
2269 y(memory)24 b(usage)g(for)f(most)h(programs.)37
b(The)23 b(ne)n(w)h(results)f(indicate)0 2352 y(that)e(for)g(most)g
(programs,)i(e)o(xcellent)e(allocator)g(policies)h(are)f(read-)0
2435 y(ily)26 b(a)o(v)n(ailable,)i(and)f(ef)n(\002cienc)o(y)f(of)h
(implementation)g(is)f(the)g(major)0 2518 y(challenge.)e(While)17
b(we)h(belie)n(v)o(e)g(that)g(our)g(e)o(xperimental)g(results)g(are)0
2601 y(state-of-the-art)h(and)i(our)f(methodology)i(is)d(superior)i(to)
e(most)h(pre-)0 2684 y(vious)h(w)o(ork,)h(more)f(w)o(ork)g(should)h(be)
f(done)h(to)e(identify)h(and)g(study)0 2767 y(unusual)33
b(problematic)g(program)g(beha)o(viors)g(not)f(represented)h(in)0
2850 y(our)19 b(sample.)0 3050 y Fl(1)82 b(Intro)r(duction)0
3210 y Fk(Memory)29 b(allocation)g(has)f(been)h(an)g(acti)n(v)o(e)f
(area)g(of)g(research.)51 b(A)0 3293 y(lar)o(ge)23 b(number)h(of)e
(algorithms)i(ha)o(v)o(e)f(been)g(proposed)i(which)e(were)0
3376 y(at)e(least)g(partly)g(moti)n(v)n(ated)h(by)g(the)f(belief)g
(that)h(fragmentation)g(can)0 3459 y(be)28 b(a)g(se)n(v)o(ere)h
(problem)f(for)g(some)h(programs.)51 b(Other)28 b(algorithms)0
3542 y(ha)o(v)o(e)18 b(been)g(proposed)h(with)e(the)h(emphasis)g(on)g
(performance)h(rather)0 3625 y(than)25 b(fragmentation.)41
b(In)24 b(this)h(paper)m(,)h(we)e(sho)n(w)h(that)g(some)g(well-)0
3708 y(kno)n(wn)j(memory)f(allocation)g(algorithms,)h(which)f(can)g(be)
f(imple-)0 3791 y(mented)g(v)o(ery)g(ef)n(\002ciently)-5
b(,)26 b(ha)o(v)o(e)g(essentially)g(zero)f(fragmentation)0
3874 y(for)19 b(a)g(wide)g(v)n(ariety)g(of)g(programs.)100
3957 y(The)h(e)o(xtremely)h(lo)n(w)g(fragmentation)g(of)g(these)g
(algorithms)g(has)0 4040 y(gone)29 b(unnoticed)g(lar)o(gely)e(because)i
(the)e(o)o(v)o(erwhelming)i(majority)0 4123 y(of)e(memory)h(allocation)
f(studies)g(to)g(date)g(ha)o(v)o(e)g(been)h(based)g(on)f(a)0
4206 y(methodology)32 b(de)n(v)o(eloped)g(in)e(the)g(1960')l(s)h
([Col61],)h(which)f(uses)0 4289 y(synthetic)22 b(traces)g(intended)g
(to)g(model)g(\223typical\224)g(program)h(beha)o(v-)0
4372 y(ior)l(.)52 b(This)29 b(methodology)h(has)g(the)e(adv)n(antage)j
(that)e(it)f(is)g(easy)h(to)0 4455 y(implement,)21 b(and)g(allo)n(ws)f
(e)o(xperiments)i(to)e(a)o(v)o(oid)g(quirk)o(y)h(beha)o(vior)p
0 4513 729 4 v 70 4556 a Fj(\003)105 4581 y Fi(This)f(research)g(w)o
(as)h(sponsored)f(by)h(the)g(National)g(Science)f(F)o(oundation)i
(under)0 4648 y(grant)15 b(CCR-9410026)2020 1528 y Fk(speci\002c)k(to)h
(a)f(fe)n(w)h(programs.)26 b(Often)19 b(the)h(researchers)g(conducting)
2020 1611 y(these)i(studies)g(went)f(to)h(great)g(lengths)g(to)f
(ensure)i(that)e(their)h(traces)2020 1694 y(had)h(statistical)e
(properties)j(similar)e(to)g(real)g(programs.)35 b(Ho)n(we)n(v)o(er)m
(,)2020 1777 y(none)17 b(of)g(these)g(studies)g(sho)n(wed)h(the)e(v)n
(alidity)h(of)g(using)g(a)g(randomly)2020 1860 y(generated)23
b(trace)e(to)h(predict)g(performance)i(on)e(real)g(programs)g(\(no)2020
1943 y(matter)31 b(ho)n(w)h(well)f(the)h(randomly)h(generated)g(trace)f
(statistically)2020 2026 y(models)25 b(the)f(original)g(program\).)40
b(As)25 b(we)f(sho)n(wed)h(in)f([WJNB95,)2020 2109 y(Joh97)q(],)h(what)
f(all)g(of)g(this)g(pre)n(vious)h(w)o(ork)g(ignores)g(is)f(that)g(a)g
(ran-)2020 2192 y(domly)f(generated)g(trace)g(is)f Fh(not)h
Fk(v)n(alid)f(for)h(predicting)g(ho)n(w)g(well)f(a)2020
2275 y(particular)d(allocator)g(will)f(perform)h(on)g(a)g(real)g
(program.)2119 2358 y(W)-6 b(e)32 b(therefore)h(decided)g(to)f(perform)
h(simulation)g(studies)f(on)2020 2441 y(v)n(arious)21
b(memory)g(allocation)g Fh(policies)f Fk(using)h(memory)g(allocation)
2020 2524 y(traces)c(from)h(real)f(programs.)24 b(Using)18
b(a)f(lar)o(ge)h(set)f(of)h(tools)f(we)h(b)o(uilt,)2020
2607 y(we)e(measured)h(ho)n(w)g(well)f(these)g(allocation)h(algorithms)
g(performed)2020 2690 y(on)32 b(a)g(set)g(of)g(eight)g(real)g(traces.)
63 b(Our)32 b(results)g(con\002rm,)j(and)e(in)2020 2773
y(some)24 b(cases)h(e)o(xceed,)h(the)e(speculations)h(we)f(made)h(in)f
(our)g(surv)o(e)o(y)2020 2856 y(on)d(memory)h(allocation)g(research)f
([WJNB95].)29 b(In)21 b(particular)m(,)h(we)2020 2939
y(stated)d(that:)2206 3098 y(In)44 b(simulations)g(of)f(tw)o(o)g(of)h
(the)f(best)h(allocators)2206 3181 y(\(address-ordered)29
b(\002rst)d(\002t)g(and)i(best)f(\002t\),)g(eliminat-)2206
3264 y(ing)k(all)g(header)g(o)o(v)o(erhead)i(reduced)f(their)e(memory)
2206 3347 y(w)o(aste)21 b(to)g(about)h(14\045.)29 b(W)-6
b(e)21 b(suspect)g(that)g(using)g(one-)2206 3430 y(w)o(ord)28
b(alignment)g(and)f(a)g(smaller)g(minimum)h(object)2206
3513 y(size)f(could)g(reduce)g(this)f(by)g(se)n(v)o(eral)h(percent)g
(more.)2206 3597 y(This)19 b(suggests)h(the)f(\223real\224)g
(fragmentation)h(produced)2206 3680 y(by)29 b(these)g(policies\227as)g
(opposed)h(to)e(w)o(aste)h(caused)2206 3763 y(by)h(the)f
(implementation)h(mechanisms)g(we)f(used\227)2206 3846
y(may)20 b(be)f(less)g(than)g(10\045.)2020 4005 y(In)14
b(this)h(paper)m(,)h(we)e(sho)n(w)h(that)g(almost)g(none)g(of)g(the)g
(w)o(asted)g(memory)2020 4088 y(is)j(due)i(to)f(true)f(fragmentation.)
2119 4171 y(An)29 b(important)g(point)g(of)g(this)f(research)h(is)g
(the)f(separation)i(of)2020 4254 y Fh(policy)17 b Fk(from)h
Fh(mec)o(hanism)p Fk(.)23 b(W)-6 b(e)17 b(belie)n(v)o(e)h(that)g
(research)g(on)g(memory)2020 4337 y(allocation)24 b(should)h(\002rst)e
(focus)h(on)h(\002nding)f(good)h(policies.)38 b(Once)2020
4420 y(these)27 b(policies)h(are)g(identi\002ed,)h(it)e(is)g(relati)n
(v)o(ely)g(easy)h(to)f(de)n(v)o(elop)2020 4503 y(good)j
(implementations.)56 b(Unfortunately)-5 b(,)33 b(man)o(y)d(good)h
(policies)2020 4586 y(are)20 b(discounted)i(because)g(the)f(ob)o(vious)
h(implementation)f(is)f(inef)n(\002-)2020 4669 y(cient.)i(All)c(of)g
(the)g(measurements)h(presented)g(in)f(this)g(paper)h(are)f(for)2020
4752 y(the)25 b(memory)g(allocation)h Fh(policy)f Fk(under)h
(consideration,)i(indepen-)2020 4835 y(dent)19 b(of)g(an)o(y)g
(particular)g Fh(implementation)h Fk(of)f(that)g(polic)o(y)-5
b(.)p eop
%%Page: 2 2
2 1 bop 0 83 a Fl(2)82 b(Description)25 b(of)j(Allo)r(cato)n(rs)0
243 y Fk(In)21 b(this)h(section,)g(we)f(will)f(describe)j(the)e(memory)
h(allocation)g(poli-)0 326 y(cies)28 b(we)g(studied.)493
295 y Fg(1)579 326 y Fk(These)g(policies)h(f)o(all)e(into)i(three)f
(basic)g(cate-)0 409 y(gories:)111 569 y Ff(\017)38 b
Fh(Sequential)20 b(F)m(its)p Fk(,)d(including)j(\002rst)e(\002t,)g(ne)o
(xt)h(\002t,)f(and)h(best)g(\002t.)111 712 y Ff(\017)38
b Fh(Se)m(gr)m(e)m(gated)16 b(F)l(r)m(ee)f(Lists)p Fk(,)f(including)h
(simple)g(se)o(gre)o(gated)g(stor)o(-)187 795 y(age)k(and)h(se)o(gre)o
(gated)f(\002t.)111 937 y Ff(\017)38 b Fh(Buddy)15 b(Systems)p
Fk(,)h(including)f(con)m(v)o(entional)i(binary)e(and)g(dou-)187
1020 y(ble)k(b)o(uddies.)0 1213 y Fl(2.1)82 b(Sequential)26
b(\014t)h(algo)n(rithms)0 1346 y Fk(Se)n(v)o(eral)16
b(classic)f(allocator)h(algorithm)g Fh(implementations)h
Fk(are)e(based)0 1429 y(on)21 b(ha)o(ving)f(a)g(doubly-link)o(ed)j
(linear)d(\(or)g(circularly-link)o(ed\))h(list)e(of)0
1512 y(all)c(free)h(blocks)g(of)g(memory)-5 b(.)22 b(T)-6
b(ypically)h(,)17 b(sequential)f(\002t)f(algorithms)0
1595 y(use)20 b(Knuth')l(s)f Fh(boundary)j(ta)o(g)e Fk(technique)g(to)f
(support)i(coalescing)f(of)0 1678 y(all)29 b(adjacent)i(free)f(areas)g
([Knu73)r(].)56 b(The)30 b(list)f(of)h(free)g(blocks)h(is)0
1761 y(usually)f(maintained)h(in)e(either)h(FIFO,)e(LIFO,)g(or)h
(address)i(order)0 1844 y(\(A)l(O\).)21 b(Free)g(blocks)i(are)f
(allocated)g(from)g(this)f(list)g(in)h(one)g(of)g(three)0
1927 y(w)o(ays:)36 b(the)25 b(list)f(is)h(searched)h(from)f(the)g(be)o
(ginning,)i(returning)f(the)0 2010 y(\002rst)g(block)i(lar)o(ge)f
(enough)i(to)e(satisfy)h(the)f(request)h(\()p Fh(\002r)o(st)f(\002t)p
Fk(\);)k(the)0 2093 y(list)22 b(is)h(searched)h(from)f(the)g(place)h
(where)f(the)h(last)e(search)i(left)e(of)n(f,)0 2176
y(returning)27 b(the)f(ne)o(xt)h(block)f(lar)o(ge)g(enough)i(to)e
(satisfy)g(the)h(request)0 2259 y(\()p Fh(ne)o(xt)h(\002t)p
Fk(\);)33 b(or)28 b(the)g(list)g(is)g(searched)h(e)o(xhausti)n(v)o(ely)
-5 b(,)32 b(returning)d(the)0 2342 y(smallest)19 b(block)g(lar)o(ge)g
(enough)i(to)d(satisfy)h(the)g(request)h(\()p Fh(best)f(\002t)p
Fk(\).)100 2426 y(These)c Fh(implementations)h Fk(are)f(actually)h
(instances)f(of)h(allocation)0 2509 y Fh(policies)p Fk(.)24
b(The)19 b(\002rst-\002t)f(polic)o(y)h(is)g(to)g(search)h(some)g
(ordered)g(collec-)0 2592 y(tion)28 b(of)g(blocks,)i(returning)f(the)f
(\002rst)f(block)h(that)g(can)g(satisfy)g(the)0 2675
y(request.)e(The)20 b(ne)o(xt-\002t)f(polic)o(y)h(is)f(to)h(search)g
(some)g(ordered)h(collec-)0 2758 y(tion)e(of)g(blocks)h
Fh(starting)f(wher)m(e)h(the)f(last)g(sear)m(c)o(h)h(ended)p
Fk(,)f(returning)0 2841 y(the)e(ne)o(xt)h(block)f(that)g(can)h(satisfy)
f(the)g(request.)23 b(Finally)-5 b(,)17 b(the)g(best-\002t)0
2924 y(polic)o(y)g(is)g(to)g(e)o(xhausti)n(v)o(ely)h(search)g(some)f
(collection)h(of)f(blocks,)g(re-)0 3007 y(turning)k(the)f(best)g(\002t)
f(among)i(the)g(possible)f(choices,)h(and)g(breaking)0
3090 y(ties)i(using)i(some)f(ordering)g(criteria.)37
b(The)23 b(choice)i(of)f(ordering)g(of)0 3173 y(free)d(blocks)g(is)g
(also)g(a)f(polic)o(y)h(decision.)30 b(The)21 b(three)g(that)f(we)h
(men-)0 3256 y(tioned)30 b(abo)o(v)o(e)g(as)g(implementation)g(choices)
g(\(FIFO,)e(LIFO,)f(and)0 3339 y(address)20 b(ordered\))g(are)e(also)h
(polic)o(y)h(choices.)100 3422 y(What)c(is)g(important)h(is)f(that)g
(each)i(of)e(these)h(policies)g(has)g(se)n(v)o(eral)0
3505 y(dif)n(ferent)j(possible)g(implementations.)27
b(F)o(or)19 b(e)o(xample,)i(best)f(\002t)f(can)0 3588
y(also)d(be)g(implemented)g(using)g(a)g(tree)f(of)h(lists)e(of)i(same)g
(sized)g(objects)0 3671 y([Sta80],)k(and)h(address-ordered)i(\002rst)c
(\002t)h(can)h(be)g(implemented)g(us-)0 3754 y(ing)e(a)g(Cartesian)g
(tree)g([Ste83].)j(F)o(or)d(concreteness)h(and)g(simplicity)-5
b(,)0 3837 y(we)18 b(describe)h(the)f(sequential-\002t)h(algorithms')f
(well-kno)n(wn)h(imple-)0 3920 y(mentations,)f(b)o(ut)f(we)f(stress)h
(that)g(the)g(same)g(policies)h(can)f(be)g(imple-)0 4003
y(mented)j(more)f(ef)n(\002ciently)-5 b(.)0 4195 y Fl(2.1.1)82
b(First)26 b(Fit)0 4329 y Fk(A)14 b(\002rst-\002t)f(allocator)i(simply)
g(searches)g(the)g(list)f(of)g(free)h(blocks)g(from)0
4412 y(the)j(be)o(ginning,)i(and)f(uses)g(the)f(\002rst)g(block)h(lar)o
(ge)f(enough)i(to)e(satisfy)0 4495 y(the)f(request.)23
b(If)16 b(the)h(block)g(is)f(lar)o(ger)h(than)g(necessary)-5
b(,)18 b(it)e(is)g(split)g(and)0 4578 y(the)h(remainder)h(is)f(put)g
(on)g(the)g(free)g(list.)22 b(A)17 b(problem)h(with)e(\002rst)g(\002t)h
(is)0 4661 y(that)i(the)h(lar)o(ger)f(blocks)h(near)f(the)h(be)o
(ginning)h(of)e(the)g(list)g(tend)h(to)f(be)0 4744 y(split)e(\002rst,)g
(and)i(the)f(remaining)h(fragments)f(result)g(in)g(a)g(lot)f(of)h
(small)0 4827 y(free)h(blocks)h(near)f(the)g(be)o(ginning)h(of)f(the)g
(list.)p 0 4889 729 4 v 72 4937 a Fe(1)105 4962 y Fi(F)o(or)c(a)f(much)
h(more)g(e)o(xtensi)o(v)o(e)f(discussion)f(on)i(these)f(issues,)f(see)h
([WJNB95)o(])2020 83 y Fl(2.1.2)82 b(Next)28 b(Fit)2020
216 y Fk(A)15 b(common)i(\223optimization\224)g(of)f(\002rst)f(\002t)g
(is)h(to)f(use)i(a)e Fh(r)m(o)o(ving)i(pointer)2020 300
y Fk(for)k(allocation)g([Knu73)q(].)29 b(This)21 b(pointer)g(records)h
(the)f(point)g(where)2020 383 y(the)f(last)f(search)i(w)o(as)f
(satis\002ed,)g(and)h(the)f(ne)o(xt)g(search)h(be)o(gins)g(from)2020
466 y(there.)27 b(Successi)n(v)o(e)21 b(searches)h(c)o(ycle)e(through)i
(the)e(free)h(list,)e(so)i(that)2020 549 y(searches)27
b(do)g(not)f(al)o(w)o(ays)h(be)o(gin)g(in)g(the)f(same)h(place)g(and)g
(do)g(not)2020 632 y(result)15 b(in)h(an)g(accumulation)h(of)f(small)g
(unusable)h(blocks)g(in)e(one)i(part)2020 715 y(of)j(the)g(list.)25
b(As)20 b(we)g(will)f(sho)n(w)h(in)g(Section)g(6,)g(this)g
(\223optimization\224)2020 798 y(generally)f(increases)h
(fragmentation.)2020 990 y Fl(2.1.3)82 b(Best)27 b(Fit)2020
1123 y Fk(A)20 b(best-\002t)f(sequential-\002t)i(allocator)f(searches)h
(the)g(free)f(list)f(to)i(\002nd)2020 1206 y(the)e(smallest)g(free)g
(block)i(lar)o(ge)e(enough)i(to)e(satisfy)g(a)h(request.)25
b(The)2020 1289 y(basic)16 b(strate)o(gy)h(here)g(is)f(to)g(minimize)h
(the)f(amount)i(of)e(w)o(asted)h(space)2020 1372 y(by)27
b(ensuring)g(that)g(fragments)g(are)f(as)h(small)f(as)h(possible.)46
b(In)27 b(the)2020 1455 y(general)c(case,)h(a)f(best-\002t)f(search)i
(is)e(e)o(xhausti)n(v)o(e,)j(although)f(it)e(may)2020
1539 y(stop)15 b(when)h(a)g(perfect)f(\002t)g(is)g(found.)23
b(This)15 b(e)o(xhausti)n(v)o(e)h(search)g(means)2020
1622 y(that)25 b(a)g Fh(sequential)i Fk(best-\002t)e(search)h(does)g
(not)g(scale)g(well)f(to)g(lar)o(ge)2020 1705 y(heaps)19
b(with)g(man)o(y)h(free)e(blocks.)2119 1788 y(Because)33
b(of)e(the)h(time)g(costs)g(of)f(an)h(e)o(xhausti)n(v)o(e)h(search,)j
(the)2020 1871 y(best-\002t)23 b(polic)o(y)h(is)g(often)g
(unnecessarily)i(dismissed)e(as)g(being)h(im-)2020 1954
y(possible)33 b(to)g(implement)g(ef)n(\002ciently)-5
b(.)65 b(This)32 b(is)h(unfortunate)h(be-)2020 2037 y(cause,)e(as)d(we)
g(will)f(sho)n(w)i(in)f(Section)h(6,)h(best)e(\002t)g(is)g(one)g(of)h
(the)2020 2120 y(best)20 b(policies)h(in)f(terms)g(of)g(fragmentation.)
29 b(By)20 b(taking)h(adv)n(antage)2020 2203 y(of)g(the)g(observ)n
(ation)i(that)e(most)g(programs)h(use)g(a)f(lar)o(ge)g(number)h(of)2020
2286 y(objects)j(of)g(just)g(a)g(fe)n(w)f(sizes,)j(a)e(best-\002t)f
(polic)o(y)h(can)h(be)f(quite)g(ef-)2020 2369 y(\002ciently)e
(implemented)h(as)g(a)f(binary)i(tree)e(of)h(lists)e(of)i(same-sized)
2020 2452 y(objects.)h(In)20 b(addition,)g(se)o(gre)o(gated)g(\002t)f
(algorithms)h(\(Section)g(2.2.2\))2020 2535 y(can)i(be)g(a)g(v)o(ery)h
(good)g(approximation)h(of)e(best)g(\002t)f(and)h(are)g(easy)h(to)2020
2618 y(implement)c(ef)n(\002ciently)-5 b(.)2119 2701
y(In)25 b(this)f(paper)m(,)i(we)e(present)h(results)g(for)f(\002rst)f
(\002t,)i(ne)o(xt)g(\002t,)f(and)2020 2784 y(best)30
b(\002t,)h(each)g(with)e(LIFO,)g(FIFO,)f(and)j(address)g(ordered)f(\(A)
l(O\))2020 2867 y(free)e(lists.)49 b(Memory)29 b(is)f(requested)h(from)
f(the)g(operating)h(system)2020 2950 y(in)23 b(4K)g(blocks,)i(and)f
(all)f(free)g(blocks)h(are)f(immediately)h(coalesced)2020
3033 y(with)15 b(their)g(neighbors)h(when)g(possible.)23
b(T)-6 b(w)o(o)15 b(v)o(ersions:)22 b(\002rst)15 b(\002t)f(A)l(O)2020
3116 y(8K)24 b(and)h(best)g(\002t)e(A)l(O)h(8K,)g(request)h(memory)g