summaryrefslogtreecommitdiff
path: root/doc/gperf.ps
blob: 57fac47b5398ed85d8f790e72a48204713263988 (plain)
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: ../../doc/gperf.dvi
%%Pages: 36
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D600 -o ../../doc/gperf.ps ../../doc/gperf.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 1998.05.02:1318
%%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 (../../doc/gperf.dvi)
@start
%DVIPSBitmapFont: Fa cmti10 10.95 1
/Fa 1 47 df<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fb cmbxti10 14.4 1
/Fb 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A
EA0FE0121271912B>46 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fc cmb10 10.95 2
/Fc 2 109 df<EB0FFE90387FFFC048B512F04814FC3907FC0FFE48486C7E6D6C7F486C
7E82A26E7FA36C5A6C5AEA01E0C8FC5C49B5FC131F90B6FC000313F84813C0481300EA1F
FC485A127F5B12FF5BA45CA26C6C5A16F83B3FF807BFFF80391FFC1F3F390FFFFE1F6C49
7E0001EBF80326003FE0C8FC292B7EA92C>97 D<13FFB5FCA512077EB3B3AFB512FCA516
3F7EBE19>108 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fd cmtt12 13.14 5
/Fd 5 118 df<EC3FFF49B512E0010714F8011F8049805B90B7FC48EBE001481300485A
EA0FF8496D5A4848147C93C7FC485A5B127F90CAFCA35A5AA97E7EA27F123F6D141F6DEC
3F80121F6C7E01FC147F6C6CECFF006C6C6C5A6C9038F00FFE91B55A6C6C5C6D5C6D5C01
071480010149C7FC9038003FF0293278B038>99 D<EEFFC0277FFFC00713F8B5D8E01F13
FC037F13FE92B5FC02E114FF14E36C01E713813A000FEFFC019139FFF000FE4B137C0380
130092C8FCA25C5CA25CA25CA45CB2007FB67EB77E82A35E6C5D30307CAF38>114
D<903907FF80F0017FEBF1F848B512FD000714FF5A5A5AEBFC00D87FE0131F0180130F48
C71207481403A5007FEC01F001C090C7FCEA3FF013FE381FFFF86CEBFFC0000314F8C614
FF013F1480010714E0D9003F13F0020013F8ED0FFC1503003CEC01FE007E140000FE15FF
167F7EA37F6D14FF16FE01F013036DEB07FC01FF137F91B512F816F016E04815C0D8FC3F
1400010F13FCD8780113E0283278B038>I<EB01E0497E1307AB003FB712804816C0B8FC
A46C1680260007F0C8FCB3A4EE03E0EE07F0A66E130F17E06D6C131F6EEB3FC0903901FF
81FF92B512806D15006E5B6E5B6E13F002075B020190C7FC2C3D7DBB38>I<D83FFE9038
03FFE0486C497FB55BA36C806C80C66CEB0007B3A9160FA2161F163F6E137F6D6C13FFDA
F007EBFFE091B712F06D16F87F6D14E76D02C713F00100020313E0DA3FF8C8FC35307FAE
38>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fe cmbx12 13.14 28
/Fe 28 122 df<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0
1010778F22>46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B200
7FB712E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090B612FC4881480101EBFF
802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15FC6D7F00
FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817F05D17E0
4B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B131FEC3F
804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC4816FC5A5A
5A5A5A5AB8FC17F8A430477AC63D>I<EC3FFE0103B512E0010F14FC013F14FF90267FE0
1F7F9026FF000713E0D801FC6D7FD803F07F486C6D7FD80FFE817F486D80167FA3805C16
FF7E91C75B6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7FCED3FFC4AB45A49B512
E0168016E016FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83A2701380A318C0EA07E0
EA1FF8487E487EA2B5FCA31880A25E491600127F494A5A6C485D01E05B001F4A5BD80FFC
495B2707FFC03F13C06C90B65AC64BC7FC013F14F8010714E09026007FFEC8FC32487BC6
3D>I<EE01F8A24C7EA34C7EA24C7EA34C7FA24C7FA34C7FA293B57EA34B8016F3030380
16E316E103078016C0030F805E83031F814C7E4B81153E83037E81037C7F03FC815D8302
01824B7F0203825D830207824B7F020F825D84021F8392B8FC4A83A34A83027CC8120F02
FC835C840101844A810103845C840107844A81010F845C85011F85496C82B600C091B712
F0A5544D7CCC5D>65 D<93261FFF80EB01C00307B500F81303033F02FE13074AB7EA800F
0207EEE01F021F903AFE007FF83F027F01E0903807FC7F91B5C73801FEFF010301FCEC00
7F4901F0814901C0150F4949814990C97E494882495A48498248197F5C48193F5C48191F
5C48190FA2485BA21A075AA391CDFCA2B5FCAD7EA280F207C0A27EA36C7F1A0F6C1A8080
6C191F6E18006C61806C197E6C6D177C6D6C17FC6D6C4C5A6D6D4B5A6D6D4B5A6D01F0ED
1FC06D01FC4B5A010001FF03FFC7FC6E01E0EB07FE021F01FEEB3FFC020790B612F00201
16C0DA003F92C8FC030714F8DB001F13804A4D79CB59>67 D<B912F0F0FF8019F019FC19
FFD8001F902680000114C0DD001F7F060713F806017F726C7E737E737F737F737F858773
7F8587A2747EA38786A21C80A51CC0A586A462A51C80A51C00A26263A2631AFF63616361
4F5B634F5B073F90C7FC4F5A4F5A06035B061F5B4DB512C0BBC8FC19FC19F0198006F0C9
FC524B7CCA5E>I<BB12C0A486D8000F01E0C77E18071801F0007F193F191F190F190786
1903A31901A3EF0F80A2737EA497C7FC171FA2173F177F17FF160392B6FCA5EDE0031600
177F173F171FA2050FEC0F80A3F21F00A494C8FC621A3EA21A7EA31AFE6219011903A219
07190FF13FF819FF1803183FBBFCA262A3494A7CC951>I<BBFCA41A80D8001F01C0C7FC
181F18038484197F193F191F1AC0190FA31907A4171FF103E0A496C7FCA25FA25F5F5E16
0792B6FCA5EDC0071601828383A283A794C9FCB1B8FCA5434A7CC94D>I<B712FEA5D800
0FEBE000B3B3B3ABB712FEA5274B7DCA2E>73 D<B700F8027FB512F0A5D8001F01C0C9EB
C00074C7FCF101FE4F5A4F5AF10FE04F5A4F5A4FC8FCF001FE4E5A4E5AF00FE04E5A4E5A
4EC9FCEF01FE4D5A4D5AEF0FE04D5A4D5A4DCAFCEE01FE16034C7E4C7F5E4C7F93B57E03
C18015C303C780DBCFE77FDBDFC37FEDFF8104017F4B6C804B7F4B6D7F03E0814B6D7F83
85717F717F83857180727F8486727F8486727F727F84867280737F8587737F87B700F801
0FB612FCA5564B7CCA60>75 D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFF27
03FC00077F486C6D7F486C6D7F6E7E83707EA3707E6C90C7FC6C5A6C5AC9FCA4ED1FFF02
1FB5FC49B6FC130F013FEBC03F9038FFFE00000313F04813C04890C7FC485A485AA2485A
A2485AA4167FA26D14FF007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C9038
E07F076C9038FFFE0300014A7ED8003F9038F0007F0103018090C7FC37337CB13C>97
D<91380FFF8091B512F8010314FF010F158090263FFE0013C0D97FF8EB1FE0D9FFE0EB3F
F04849EB7FF8484913FF4890C7FC5A5B121F5B003FED7FF0EE3FE0007FED1FC093C7FC5B
A212FFAC127F7FA2123FA26D153E121F6D157E6C167C6C6D14FC6C16F86C6D13036C01F0
EB07F0D97FFCEB1FE06DB4EBFFC0010F90B5120001035C010014F0020F13802F337CB137
>99 D<EF1FF0EE3FFFA51600177FB3A2EC0FFF91B512E0010314F8010F14FE013FEB01FF
903A7FF8003FFFD9FFE0130F48497F48497F4890C77E4881485AA2485AA3127F5BA212FF
AC127FA37F123FA2121F7F000F5D6C6C5C5E6C6D5B6C01E0497F6C6D017FEBFFE090393F
FE03FE6DB512F801075C010114C09027001FFC00EBC0003B4D7CCB44>I<EC0FFF91B512
F0010314FC010F14FF90263FFE077F90267FF0007F4948EB3FE04801806D7E48824890C7
6C7E4848140783485A003F6F7EA3485A701380A312FFA290B8FCA401F8CAFCA5127FA27F
A2123FA26C6CED0F80A2000F161F6C6C16006E5C6C6D147E6C6D5C6C6D495AD97FFCEB07
F0903A1FFF803FE06D90B55A010392C7FCD9007F13FC020713C031337DB138>I<ED7FE0
913807FFFC021F7F027F7F902601FFE0138049018113C0902607FE0113E049485A14F813
1FEB3FF0A26F13C0EB7FE06F1380EE3E0093C7FCADB77EA526007FF0C8FCB3B3A2003FB5
12F8A52B4D7DCC26>I<DA7FFCEB0FF00103B538807FF8011F9138F1FFFC4991B512FE90
267FF01F13F32701FFC007138348EB0001A248486DEBC1FC000FEEE0F849027F1300A200
1F82A8000F5EA26D14FF00075E6C6C495BA26CD9C00790C7FC6C9038F01FFC4890B55A5E
D803C314809026C07FFCC8FC000790CAFCA47FA27F13FC90B612FCEEFFC06C16F817FE6C
8218806C17C06D16E00003B812F0120FD81FFCC7000F13F8D83FF0140049153F4848ED1F
FC00FF160F491507A56D150F007F17F86D151F6C6CED3FF06C6CED7FE0D80FFE913801FF
C06C6C6C010713806C01F8017F1300C690B612FC013F15F001071580D9003F01F0C7FC37
487DB03D>I<13FCEA03FF487F487FA2487FA66C5BA26C5B6C90C7FCEA00FC90C8FCACEB
7FC0B5FCA512037EB3B3B61280A5194D7BCC22>105 D<EB7FC0B5FCA512037EB3B3B3AA
B61280A5194C7BCB22>108 D<90287FC001FFE0EC7FF8B5010F01FC0103B5FC033F6D01
0F804B6D6C4814E0DBFE079026C03F817F9126C3F0019138FC007F0003D9C7E0DAE1F880
6CDA8000D9F1E06D7E02CFC7EBF3C002DE91267FF780131F02FC03FFC77FA24A5DA24A5D
A34A5DB3A9B6D8C03FB5D8F00FB512FCA55E317BB067>I<903A7FC001FFC0B5010F13F8
033F13FE4B7F9126C1FE077F9126C3F0037F00039038C7C0016CD9CF8080150002DE7F02
FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B317BB044>I<913807FF80027F13F80103
B6FC010F15C090261FFE017F903A7FF0003FF8D9FFC0EB0FFC48496D7E4890C76C7E4817
804980000F17C048486E13E0A2003F17F049157FA2007F17F8A400FF17FCAB007F17F8A3
6C6CEDFFF0A3001F17E06D5C000F17C06C6C4A13806C17006C6D495A6C01E0EB1FFC6D6C
495A903A3FFE01FFF0010FB612C0010392C7FCD9007F13F80207138036337DB13D>I<90
39FF803FE0B5EBFFF8028113FE02837FDA87E11380EC8F830003D99F0713C06C139E14BC
A214F8A24A6C13806F13004A6C5A93C7FCA45CB3A7B612E0A52A317CB032>114
D<90390FFF8070017FEBF1F048B6FC1207380FFC01391FE0003F4848130F491307127F90
C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFFC015F06C14FC6C14FF6C15806C
15C06C15E0C615F0013F14F8010714FCEB007F14019138003FFE150F0078140700F81403
A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1FE001FFEBFFC091B51280D8FC7F
1400D8F81F13FCD8E00313C027337CB130>I<14F8A61301A41303A21307A2130FA2131F
133F137F13FF1203000F90B512F0B7FCA426007FF8C7FCB3A6167CAA013F14F880A29039
1FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C1300EC0FFC26467EC430>I<D9
7FE0EC3FF0B5EC7FFFA5000315016C81B3AB5EA25EA25E7E6EEB0F7F017F021E7F6E017C
EBFFE090393FFE01F86DB512F0010714E0010114C09027003FFE00EBC0003B327BB044>
I<B60081B500FC90387FFFF0A500019026E000030180903803FC006E715A6C6F5E6E6F13
03017F61A26E496D1307013F616E6F130F011F4A5EA26E6F131F6D4A93C7FCDD9FFC5B6D
D9801F153E170F03C06E137E6D023F157C93383E07FFDBE07E15FC6DDA7C035C03F01581
6D02FC5D4C7E03F815C3DA7FF95E9226FDF00013E7DA3FFF5E4C137F19FF6E5F4C7FA26E
496D90C8FCA26E5E93C7120FA26E486E5AA202015E4B1403A26E486E5A54317EAF59>
119 D<007FB500C090387FFFE0A5C601F0C73803F8006E5D017F5E6E1407013F5E6E140F
011F5E6E141FA26D6D91C7FC5F6D153E6F137E6D157C6F13FC6D5DEDF0016D5DEDF80302
7F5C15FC1607DA3FFE5B160F021F5CEDFF1F6E91C8FC16BF6E13BE16FE6E5BA36E5BA26E
5BA26F5AA26F5AA26F5AA393C9FC5D153E157E157CD81F8013FC486C5B387FE001D8FFF0
5B14035D14074A5A49485A007F49CAFCEBC07E383F81FC6CB45A6C5B6C13C0C648CBFC3B
467EAF41>121 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff cmtt12 14.4 5
/Ff 5 115 df<EC1FF891B57E010314E0010F14F84980017F8090B7FC48D9F80F1380DA
C00113C048496C13E04848C7123F4848EC1FF049140F484815F81607484815FCA2484814
03A24915FEA200FF1501A290B7FCA517FCA290CAFC7FA2127FA27F123F6D15FCA26C6CEC
01FE7F6C6C14036C6C14076DEC0FFC6C6D131F6C01E0EB7FF86C9039FC03FFF06DB612E0
6D15C06D158001071500010114FC6D6C13E0020790C7FC2F3679B43E>101
D<923801FFC0030F13F0033F13FC92B512FE5C4A14FF5C4A1303EC1FF89238F001FEEC3F
E09238C000FC027F14005DAA003FB712F05AB812F8A36C16F0A2C7D87F80C7FCB3B3003F
B7FCA2481680A36C1600A2304A7CC93E>I<DA0FF0EB1FF0DA7FFEEBFFFC49B5008313FE
010714EF4991B6FC5B5B90267FF81F13F19026FFE007EB00FEDA8001147C4890C7EB8000
49147F00038249143FA200078249141FA66D143F00035EA26D147F00015E6D14FF6C6D48
90C7FCECE00790397FF81FFE90B65A5E485D5E01F914802703F87FFEC8FCEC0FF091CAFC
A46C7EA213FF6C90B512F8EEFFC06D15F090B712FC4816FF4817804817C04848C7000F13
E0D81FF09138007FF04848ED1FF84915074848ED03FC90C91201A24817FE481600A56C16
01A26C6CED03FC6D15076C6CED0FF8D81FF8ED3FF001FE15FF6C6C6C010313E06C01FC01
7F13C06C90B71280C6EEFE006D5D011F15F0010715C001004AC7FC020713C038517DB33E
>I<ED07FC3B3FFF803FFF804891B512E0B500C314F802CF8002DF806C90B7FC6CDAF80F
1380D8003FD9C00113C092C713E04A143F4AEC1FF04A15F84A140F4AEC07FCA217034A15
FE1701A318FF83A95F18FEA280170318FC6E140718F86E140FEF1FF06E143F6EEC7FE06E
ECFFC0DBC0031380EDF01F92B6120002DF14FC02CF5C02C35C02C114C0DAC07F90C7FCED
0FF892C9FCB3003FB512C04880B67EA36C5C6C5C384F7FB33E>112
D<EE07FE263FFFF890387FFFC0484AB512E0B5D8FC0714F05D4B14F86C5C6C91387FFC0F
D80003EBFFC002FD90380007F0DAFFFEEB03E003F890C7FC5D5DA25D5DA292C9FCA25CA4
5CB3A3003FB612FC4881B7FCA37E6C5D35347CB33E>114 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fg cmtt12 17.28 5
/Fg 5 115 df<ED7FF00203B5FC021F14E0027F14F849B67E4915FF010F824982498249
EBC01F9027FFFE00037F4801F801007F48496E7E02C0143F48496E7E4890C8120F491507
001F8349815B003F18804981A2127F4917C08312FF90B9FCA71980190001C0CBFC7F127F
A37F123F7FA26C6C163F6DEE7F806C6CEEFFC0A26C6D5C14E06C6D4A13806C01FC5C6C6D
021F130090267FFFC05B6D9039F801FFFE6D90B65A6D5E6D5E6D5E01005E023F92C7FC02
0F14FC020114E09126001FFEC8FC3A4179BF4A>101 D<4CB47E041F13F093B512FC0303
80030F805D4B15805D92B7FC4AEBFC074A13F0DCC00313004A13804C6C5A4A48EB007895
C7FC5DAB003FB812F04883B97EA56C5F6C5FC7D80FFCC9FCB3B3A8001FB712FE48824883
A56C94C7FC6C5E39597BD84A>I<F00FF8912601FFC0EB7FFE020FD9F803B51280023FEB
FE0F91B6009F14C0010392B612E05B5B5B4916F84901809138C07FC09126FE003F1300D9
FFF8010F9038803F804A6DEC040048496D6DC7FC4A7F48496D7FA291C8127F4883A24915
3FA66D157FA26C5F6E14FFA26C6D495B6E5B6C6D495B6E5BD97FFE013F90C8FC6E6CB5FC
92B55A90B75A5F5F485E1780D9FE3F49C9FC020F13F8020113C091CCFCA47FA26C7F14E4
6DB612E017FF6D16F04916FC90B9FC000318C08548844801C0C7003F7F4848C812014992
38003FFCD83FF0EE0FFE4916074848707E84498200FF1980A290CB127FA56D17FFA26D5E
007F19006D5ED83FF8EE0FFE6D161F6CB4EE7FFC6C01C04A485A6C01F8020F5B9126FFC0
01B5FC000191B712C06C606D94C7FC011F16FC6D5E010316E0D9007F92C8FC020F14F8DA
007F90C9FC43627CBF4A>I<EE0FFC263FFFF090B57E48D9F80714E0DAFC1F14F8B54914
FE92B7FC02FD826C90B87E856CDBE01F7FD8000FEC000703FC01017F4B6D7F03E0143F4B
6E7E4B140F8592C87E4A6F1380A34A6F13C0A284A21AE0A2197FAA19FFA21AC0A26E5DA2
4E138080606F1600606F4A5A6F143F6F4A5A6F4A5A6F130303FF010F5BDCC03F5B93B65A
6102FD93C7FC02FC5D6F5C031F14F0030714C0030191C8FC9238003FF093CAFCB3A4003F
B6FC4881A2B77EA36C5DA26C92CAFC435F7FBE4A>112 D<EF0FFE003FB591B512C048DA
800314F0B6D8C00F14F8043F14FC93B6FC03C115FE15C36C14C76C02CFEBF80FC701DF13
C092B5380007FC04FCEB03F84CEB01F004E090C7FC5E5E93C9FC5DA25DA25DA25DA25DA4
5DB3A6003FB712F84882B8FC83A35F7E6C5E3F3F7BBE4A>114 D
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fh cmsl10 10.95 50
/Fh 50 123 df<EEFF80030F13F092383FC0789238FE001CDA03F8130E4A48133FDA1FE0
13FF4A5A4B5AEC7F005C5CEE00FE010115784A1400A513035CA4EE01FC0003B7FC17F8A2
3A0007F0000F1607A2130F4A14F0A4160F131F4A14E0A4161F133F4A14C0A4163F137F91
C71380A4167F5B491500A31201486C903801FF80B5D8F83F13FCA25D30407EBF33>12
D<39078003C0391FE00FF0003F131F01F013F8A6390F3007980000EB0018017013380160
1330A201E01370491360A2000114E039038001C001001380481303000EEB0700000C1306
001C130E485B485B485B4813601D1C75BE2D>34 D<EA0780EA1FE0123F13F0A6EA0F3012
0013701360A213E013C0A21201EA038013005A120E120C121C5A5A5A5A0C1C71BE19>39
D<007FB5FCA2B512FEA418067C961E>45 D<121EEA3F80EA7FC012FFA41380EA7F00123C
0A0A788919>I<13F0EA01FC1203EA07FEA313FCA2EA03F8EA01E0C7FCB3121EEA3F80EA
7FC012FFA41380EA7F00123C0F2778A619>58 D<000FB912FE5AA27ECDFCAE007FB912F0
BAFCA27E3F1679A147>61 D<17E016011603831607A2160FA2161F83163FA2167F167716
F7EEE7FCED01E316C3150316831507EE03FEED0F01150E151E151C153C03387FED780015
7015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0171F
5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF80EC
3FFEB500F00107B512FC19F85E3E417DC044>65 D<DCFFC01338030F01F01378037F01FC
13F0913A01FF803F01913A07FC000781DA1FE0EB03C3DA7FC0EB01E74AC812FF4948ED7F
E0D907FC153F495A4948151F495A4948150F494816C018074890C9FC485AA2485A000F18
80491603121FA248481607A295C7FC485AA412FF5BA75BA2181C183C1838A27F007F1778
187018F0003F5F6D150160001F16036C6C4B5A95C7FC6C6C5D6C6C151E6C6C5D6C6C15F8
6D6C495A6D6CEB07C0D91FF0EB1F80D907FE01FEC8FC0101B512F86D6C13E0DA07FEC9FC
3D4276BF42>67 D<013FB812F8A39026007FF0C7127F6E48140F18034B14011800A31978
147F4B1570A502FF147092C7FCA3190017F0495D4A1301A21607161F91B6FC495DA29138
FC003F160F1607160301075D5CA219E0180119C0010FEC07004A90C712031980A2180719
00011F5E5C181EA2183E183C013F167C4A15FC4D5A1707017F151F01FF4AB45AB9FCA260
3D3E7DBD3E>69 D<013FB812E0A3903A007FF000016E48EB003F180F4B14071803A31801
147F4B15C0A514FF92C71270A395C7FC17F0495D5C160116031607161F49B65AA39138FC
003F160F160701075D4A1303A5010F4AC8FC5C93C9FCA4131F5CA5133F5CA3137FEBFFF0
B612F8A33B3E7DBD3B>I<4BB46C1370031F01F013F0037F9038FC01E0913A03FF807E03
913A0FF8000F83DA1FE0EB07C7DA7F80EB01EF4AC812FFD903FE16C04948157F4948153F
495A4948151F495A4948168091C9120F5A485AA2485A000F18004982121FA248485EA295
C7FC485AA412FF5BA6043FB512E05BA29339001FFC00715AA2607F127FA2171F123F6D5E
A2121F7F000F163F6C7E6C6C4B5A7F6C6C15FF6C6DEB01EFD93FC0EB07C7D91FF0EB1F87
D907FE9038FE03800101B5EAF8016D6C01E0C8FCDA07FEC9FC3C4276BF47>I<013FB5D8
F807B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F4B5DA4181F
14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FCA45F130F4A
5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC6115C0483E
7DBD44>I<021FB512FCA3DA000713006F5AA25EA41507A25EA4150FA25EA4151FA25EA4
153FA25EA4157FA25EA415FFA293C7FCA45C121FD87F805BEAFFC0A214035D13804A5AEA
FE0000F8495A48495A00705C6C495A6C01FEC8FC380F81FC3803FFE0C690C9FC2E407ABD
2F>74 D<013FB512FEA25E9026007FF8C8FCEC3FE0A25DA5147F5DA514FF92C9FCA55B5C
A513035CA513075CA21838A21870130F5CA218E0A3011F15014A15C01703A21707EF0F80
013F151F4A143F177FEFFF00017F140301FF143FB9FC5FA2353E7DBD39>76
D<90263FFFF093381FFFF85013F0629026007FF8EFF000023F4D5AA2023B933801DFC0A2
DA39FCED039FA2F1073F14790271040E5BEC70FE191C19381A7F02F01670DAE07F94C7FC
19E0A2F001C06201016D6C495A02C05FF00700A2180E6F6C14010103161C028003385BA2
18706F7EF0E00313070200DA01C05BA2923907F00380A294380700075B010E902603F80E
5C5FA25F190F011E6D6C5A011C605FA2EEFDC0DB00FF141F013C5D013860013C92C7FC01
7C5C01FE027E143F2607FF80017C4A7EB500FC037FB512E004785E4A1338553E7CBD53>
I<90263FFFE0023FB5FC6F16FEA29026003FF8020313C0021F030013004A6C157C023B16
3C6F15381439810238167802787FDA707F157082153F82031F15F002F07FDAE00F5D8215
078203031401010180DAC0015D82811780047F1303010315C04A013F5C17E0161F17F004
0F1307010715F891C7000791C7FC17FC160317FE04015B4915FF010E6E130E188E177F18
CEEF3FDE011E16FE011C6F5AA2170FA21707133C01386F5A133C017C150113FE2607FF80
1400B512FC18705C483E7DBD44>I<923803FF80031F13F09238FE01FE913903F0003FDA
0FC0EB1FC0DA3F80EB07E0027EC76C7E49486E7E49488149486E7E4948157F495A013F17
804948ED3FC049C9FCA24848EE1FE012035B000718F05B120FA2485A19F8123F5BA2127F
A219F04848163FA5F07FE0A35BF0FFC0A219805F19007F4D5A127F4D5A60003F160F6D5E
001F4C5A4D5A6C6C4B5A95C7FC6C6C15FE00034B5A6C6C4A5A6C6C4A5A017FEC1FC06D6C
495AD90FE001FEC8FC903903F807F80100B512C0DA0FFCC9FC3D4276BF47>I<013FB612
FEEFFFE018F8903B007FF0000FFC6E48EB01FF7113804BEC7FC0183F19E0F01FF0A2147F
5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D5A4D5AEF0FF80103ED
3FE04A903801FF8091B648C7FC17F002FCCAFCA213075CA5130F5CA5131F5CA5133F5CA3
137F497EB612E0A25D3D3E7DBD3E>I<013FB612F017FF18E0903B007FF0003FF86E48EB
07FCEF01FE4B6D7EF07F8019C0183F19E0147F4B15F0A502FFED7FE092C8FCA219C0F0FF
80A2494B13004A5D4D5AEF0FF04D5AEF7F800103DA07FEC7FC91B612F017809139FC0007
E0EE03F8EE00FC0107814A147F717EA284A2130F5CA484011F157F5CA41902013F17075C
A2F0F00F017F170E496C143FB600E0011F131C94380FF83C4B01071378CA3801FFE09438
003F8040407DBD43>82 D<9238FF80070207EBE00F021FEBF81E91387F00FE02FCEB1F3E
D903F0EB0FFE49481307494813034AEB01FC49C7FC491400133E137E177C491578A57F17
70A26D1500808080EB7FFEECFFE06D13FEEDFFC06D14F06D14FC010380010080143F0203
1480DA003F13C015031500EE7FE0163F161FA2160F121CA31607160F003C16C0A3178000
3E151F1700007E5D007F153E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF87F803F
8027F01FFFFEC7FCD8E00713F839C0007FC030427BBF33>I<0007B912F0A33C0FFE000F
F8003F01F0160F01C04A13034848160190C7FC121EF000E048141F5E1238A21278127015
3F5E5AA3C81600157F5EA515FF93C9FCA55C5DA514035DA514075DA5140F5DA3141FEC7F
FC0003B7FCA33C3D76BC42>I<B600E090B512FC4B15F8A2000101C0C7000F13006C49EC
03FCEF01F091C9FC60A317015A495EA417031203495EA4170712074993C7FCA45F120F49
150EA4171E121F49151CA4173C123F491538A31778177017F05F001F15015F16036D4A5A
000F93C8FC5E6C6C141E6C6C5C000115F86C6C495A017FEB07C090393FC03F8090260FFF
FEC9FC010313F89038007FC03E4073BD44>I<B6017FB5D88007B512804A1A00A2000701
C0010101E0C713F06C90C80180EC3FC06C48735A99C7FC057F150E1B1E6D191C6C1A3C1B
3805FF15787214705E636EEB03BF017F4E5AEE073F505A040E7F051F4AC8FC161C6E170E
013F143862167804706D5BEEF00F04E05D90381FE00104C015F003035E0480140106F85B
9226070007130302F05F010F010E150797C9FC5D190E4BEB03FC616E5A01075F5D61DAF9
C014FE05015BECFB8002FF6F5A7F92C75CA24A93CAFC835C606D5A605C604A1578187059
4074BD5D>87 D<0118130C0138131C491338491370484813E039038001C0390700038000
061400000E5B48130E0018130C0038131C00301318A20070133800601330A300EFEB7780
39FFC07FE001E013F0A4397FC03FE0A2393F801FC0391E000F001E1C6CBE2D>92
D<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E82A248140782A26C5A13
7890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848
133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA2007F5B913903BF07009038
80073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97
D<EB3F80EA1FFFA3C6FC137FA291C9FCA55B5BA512015BA4EC07F80003EB3FFF9039F8F8
0FC09039FBE003E09039FF8001F891C77E5B4848147E49147F5B821780A2120F5B17C0A3
167F001F16805BA4EEFF00123F5B4B5AA24B5A5E007F4A5AA24B5A6D495A4BC7FCD87CE0
137E39F87001F839F03C07E039E00FFF80260003FCC8FC2A4077BE33>I<EC1FF0ECFFFE
903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F04848EB3FE0485AA2
4848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC0380150716006C6C
5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0FF0242A7AA828>
I<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0A491380FF03FECFF
FC902603F81F138090390FC007BF90391F8003FF90387E0001497F0001157F4848150048
5A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E1507A26C4A5A7F00
1F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE0FD90FF0EBE0002D
407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F000F80017E14C049EB
07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FCA2D8FF80C8FC90C9
FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B6C6C485A3900FC07
C0D93FFFC7FCEB07F8242A7BA828>I<ED07F0ED3FFCEDFC1E913803F03F4A48B4FC4A48
1380141FEC3F81DA7F0113008102FE137C93C7FCA213015CA513035CA50007B512F8A326
0007F0C8FCA3130F5CA5131F5CA5133F5CA5137F91C9FCA55B5BA4EA03FF007F13FEB5FC
A229407DBF1C>I<177C913907F803FE91393FFE0F8F9139FC0F9C3F903901F007F89039
07E003E0D90FC013F0011F903801F80C02801400133FD97F007FA315035B495CA3017E49
5A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038E07F8091C9FC485AA47F
A27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED80F801300003FC8127F00
3E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903
F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313017FA25CA513015CA513
035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0ECF70002FE14F049
5A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B4915
00A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14
FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F
1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<ED0780ED1FE0153F
16F0157FA216E0153F16C0ED0F0092C7FCACED7F80EC3FFF1600A2140180A35DA41401A2
5DA41403A25DA41407A25DA4140FA25DA4141FA25DA4143F5DA4121E267F807FC7FCA200
FF137E14FE5CEB01F8495A387C07E0383C0FC0D80FFFC8FCEA03F8245187BD1C>I<147F
EB3FFFA313017FA25CA513015CA513035CA501070103B5FC02F014FEA26F13F06F1380EE
FE00010F14F84A485AED03C04B5A031FC7FC153E011F13784A5AECC3E0ECC7F0ECCFF814
FF497F14F9ECE1FE14C04A7E4A7E4980017E133F82151F82150F01FE8049130782A20001
81486C49B4FCB5D8F03F13F04B13E0A2303F7EBE30>I<143FEB1FFF5BA213017FA214FE
A5130114FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5137F1400A5
5B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>I<902707F007F8EB03FCD803FFD91FFF90
380FFF80913CE0781FC03C0FE09126E1E00FEBF0073E001FE38007E1C003F090260FE700
EBE38002EEDAF70013F802FC14FE02D85C14F84A5CA24A5C011F020F14074A4A14F0A501
3F021F140F4A4A14E0A5017F023F141F91C74914C0A549027F143F4992C71380A300014B
147F486C496DEBFFC0B5D8F87FD9FC3F13FEA347287DA74C>I<903907F007F8D803FFEB
1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE70002EE14F014FC14D814F85C
A24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500A30001
5D486C491380B5D8F87F13FCA32E287DA733>I<EC0FF0ECFFFE903903F01F8090390FC0
07C049C66C7E013E6D7E01FC6D7E48488049147C0003157E485A000F157F5B121FA2485A
A2007F1680A2170048C85AA54B5AA25E5A6C4A5A7E4B5A5E6C140F6C6C5C4B5A6C6C013E
C7FC6C6C5B6C6C485A3900FC0FE090383FFF80D90FF8C8FC292A7BA82D>I<91387F01FE
903A7FFF0FFFC09139FE3E03F09238F801F8903A03FFE000FE6D49137F4B7F92C713804A
15C04A141FA218E0A20103150F5C18F0A3171F010716E05CA3173F18C0130F4A147F1880
A2EFFF004C5A011F5D16034C5A6E495AEE1FC06E495AD93FDC017EC7FC91388F01F89138
83FFE0028090C8FC92C9FC137FA291CAFCA45BA25BA31201487EB512F8A3343A81A733>
I<903907F01F80D803FFEB7FE09138E1E1F09138E387F839001FE707EB0FE614EE02FC13
F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA5137F91C8FCA55B5BA3120148
7EB512FEA325287EA724>114 D<9138FF81C0010713E390381F807F90397C003F804913
1F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F0
6C6C7F011F7F13079038007FFE1403140100381300157EA2123C153E157E007C147CA200
7E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>I<
EB0380A4130791C7FCA25BA25BA2133EA2137E13FE12011207001FB512C0B6FCA2D801FC
C7FCA312035BA512075BA5120F5BA41407001F130E13C0A4141E141C1380A26D5AA2000F
5B14F03807E1E03801FF80D8007EC7FC1A3978B723>I<01FE147F00FFEC7FFF4914FEA2
0007140300031401A34914FCA4150312074914F8A41507120F4914F0A4150F121F4914E0
A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE09138073FFF3803F01E3801FFF826
003FE01380282977A733>I<B539E007FFF05D17E02707FE000313006C48EB01FC6F5A5E
00014A5A5EA24B5A6D1307000092C7FC5D150E6D5B7F5DA25D1480013F5B14815D14C301
1F5B02C7C8FCA214CE14EEEB0FFCA25CA26D5A5CA25CA26D5A2C2878A630>I<B500C3B5
3803FFFCA204FE14F8290FFE003FE00013C0D807F86D48EB7F000003173E183C150F1838
6D5E0001141F705B153F4D5A15776D4B5A0000ECE7F04DC7FCEC01C3170E9038FF038301
7F5D91380703F85FEC0E01021E5CD93F9C14F002BC6D5A02B813FDDAF8005B4A13FF5F6D
5A94C8FC5C4A137E167C6DC7FC1678010E14383E2878A642>I<48B539C07FFFC0A33C00
0FFE003FF8006D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F5A91383F81
C0EDC380DA1FC7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7FEC383F0270
7FECE01F010180903803C00F49486C7ED90F007F491303017E80D801FE80D807FF497EB5
D8803F13F8A332277FA630>I<90B539E007FFF05E18E0902707FE000313006D48EB01FC
705A5F01014A5A5F16036E5C0100140794C7FC160E805E805E1678ED8070023F13F05EED
81C015C191381FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC
5C140E141E141C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA783CEA3FF0
EA0FC0343A80A630>I<017FB512FEA2ECC00190397E0003FC49EB07F849EB0FF049EB1F
E049EB3FC0ED7F8000011500495B4A5A4A5A4848485A4A5AC7485A4A5A5D147F4AC7FC49
5A495A49481370494813E0495A5C133F90387F8001D9FF0013C0485A48481303485A4848
EB078049130F4848131F003F143F397F8001FFB71200A227277EA628>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fi cmbx12 14.4 57
/Fi 57 122 df<922601FFFC903801FFE0033F9026FF801F13F84AB6D8E07F13FE020F03
F9B6FC023FD9C00FB500C0138091277FFC0003D9FE0113C0902601FFE049495A49494949
4813E04990C714F049484A13E0495A19C0495A7413C0017F17804A6E6E1380719138007E
007192C7FCAEBCFCA526007FF8C7000301C0C8FCB3B3A7007FB5D8F803B612F0A553547D
D34E>11 D<EEFFFC031FEBFF804AB612E0020781021F9038C00FF8913A7FFE0003FCDAFF
F0EB00FE4949EB03FF4901805B4990C7487F49485CA2495A4D7F013F6F5B5CA37190C7FC
715AEF01F894C9FCA90403B512C0BAFCA526003FFCC7120783B3B3A6003FB5D8FC03B612
C0A542547DD34B>I<B712F0AB240B7F9F2D>45 D<EA07F0487E487E487E487EB51280A7
6C13006C5A6C5A6C5A6C5A1111769025>I<157815FC14031407141F14FF130F0007B5FC
B6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>49
D<EC3FFE0103B512E0010F14FC013F14FF90B712C048D9C07F7F2703FE000F13F8D807F8
01037FD80FE06D7F48486D7F48488001F01680486C6E13C07F486C6E13E07FA27013F0A5
6C5AA26C5AEA0FF0EA03C0C914E05EA218C05E1880A24C13005F4C5A4B5B5F4B5B5F4B5B
4B90C7FC4B5A5E4B5AED7FE04B5A4A5B4A48C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC
02FEEC03E0495A495A495A495AD91F80140749C8FC013E150F017FB7FC90B812C05A5A5A
5A5A5A5AB9FC1880A4344E79CD43>I<91380FFFC091B512FC0107ECFF80011F15E09026
3FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D807FC8048B416C080486D15
E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C04B
5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113F89238007FFE707E701380
7013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8487E487E487EB57EA318FC
A25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A1380D80FF84A13006CB44A5A
6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F1380374F7ACD43>I<177C
17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D5DED1FBFED3F3F153E157C
15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C5C1301495A495A5C495A13
1F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E127E5ABA12C0A5C96C48C7
FCAF020FB712C0A53A4F7CCE43>I<D80380150ED807E0157E01FEEC03FED9FFF0137F91
B65A5F5F5F5F5F94C7FC5E5E16F016C093C8FC15F801E190C9FC01E0CAFCABEC0FFF027F
13F001E3B512FE01E76E7E9026FFF8077FDAC0017F49C713F8496E7E49143F4981496E7E
6C481680C9FC18C08218E0A418F0A3EA0FE0487E487E487E487EA418E0A35B6C484A13C0
5B491680003EC85A003F17006C6C4A5A6D5D6C6C4A5AD807F8495BD803FE01075B2701FF
C03F5B6C90B65A013F4AC7FC6D14F8010314C09026007FF8C8FC344F79CD43>I<ED0FFF
92B512E0020780021F14FC91397FFE03FE903A01FFF0007F4901C0EB3F804990C7121F49
48EC7FC0494814FF49484913E049485B01FF5C485BA2485B5AA2486F13C04A6D1380486F
1300177E94C7FC5AA291CAFC5AA21508913801FFF8020713FFB54814C04A14F04AC66C7E
023C6D7E4A6D7E4A6D7E7013804A15C0A24A15E07013F05C18F8A491C714FCA37EA67EA4
6C17F880A27E18F06C5D18E06C6D15C07E6E4913806C6D15006D6C495A6D6CEB7FFC6DB4
48485A6D90B55A010315C0010092C7FC023F13FC020713C0364F7ACD43>I<121F7F7FEB
FF8091B81280A45A1900606060A2606060485F0180C86CC7FC007EC95A4C5A007C4B5A5F
4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A150F4B5AA24B5AA24B5A15FF
A24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA314FFA55BAC6D5BA2EC3FC0
6E5A395279D043>I<913807FFC0027F13FC0103B67E010F15E090261FFC0113F8903A3F
E0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717C04980120F18E0177FA212
1F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313009238F007FE6C02F85B92
38FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D81010F15E06D81010115FC0107
81011F81491680EBFFE748018115C048D9007F14E04848011F14F048487F484813030300
14F8484880161F4848020713FC1601824848157F173FA2171FA2170FA218F8A27F007F17
F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C010313006C01E0EB0FFE6C
01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F13C0364F7ACD43>I<9138
0FFF8091B512F8010314FE010F6E7E4901037F90267FF8007F4948EB3FF048496D7E4849
80486F7E484980824817805A91C714C05A7013E0A218F0B5FCA318F8A618FCA46C5DA37E
A25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387FF803011FB512E36D14C301030283
13F89039007FFE03EC00401500A218F05EA3D801F816E0487E486C16C0487E486D491380
A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C48495BD803FC010F5B9027FF807FFE
C7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F0364F7ACD43>I<EA07F0487E487E
487E487EB51280A76C13006C5A6C5A6C5A6C5AC8FCB3EA07F0487E487E487E487EB51280
A76C13006C5A6C5A6C5A6C5A113576B425>I<171F4D7E4D7EA24D7EA34C7FA24C7FA34C
7FA34C7FA24C7FA34C8083047F80167E8304FE804C7E03018116F8830303814C7E030781
16E083030F814C7E031F81168083033F8293C77E4B82157E8403FE824B800201835D8402
03834B800207835D844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A8201
0185A24A820103854A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A5
5B547BD366>65 D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F
070F7F737F878587858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A0607
13F892B812E097C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F8773
7F747E1C807413C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F
5B19074F5B073F13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601
FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EB
C07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F8824949
824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3
485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A
1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C
5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF002
0091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FC
F1FF801AF01AFCD8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E74
7F747F86747F747F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80
A2631D00A3515AA2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B5
12C0060F91C8FCBB5A1AF01AC007FCC9FC19805B527CD167>I<BC1280A5D8000701F8C7
000114C0F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03A318F81BF01A01A4
97C7FC1701A317031707170F177F92B6FCA59238F8007F170F170717031701A317001B3E
A31B7CA395C8FCA21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F1A3FF27FE0F101FF
1907191F0603B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5D8000701F8C700077FF000
7F191F190785858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A3170317
07170F177F92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A51
7CD055>I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA
803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848
C9FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B48
1A3FA24849181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C700
3FEBC000A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5
FC6D13FF6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC0
7F033FEE001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B8D8C003B8
FCA5D8000701F8C9001FEBE000B3AE92BAFCA503F8C9121FB3B1B8D8C003B8FCA560527C
D169>I<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>I<B800C091B612F8
A5D8000701F8C90003EBF8009738007F8051C7FC505AF203F8F20FF0505A505A505A50C8
FCF101FCF107F84F5A4F5A4F5A4F5A07FEC9FCF003FC4E5A4E5A4E5A4E5A4E5ADD01FECA
FC4D5A4D5A4D5A4D7E173F4D7E4C487E4C7F5E4C804C804C80EEFF7F9226F9FE3F7FDBFB
FC809226FFF81F7F4C7EDCC0077F0480804C7E4B6D804B6D804B8284727F727F8684727F
727F8784728087737F85737F87737F85737F88857380747F888697B512FCB800C0013FEC
FFFEA55F527CD169>75 D<B812F8A5D8000701F8CAFCB3B3A91A7CA41AFC1AF8A51901A3
1903A219071AF0190FA2191F193F197F19FF180360183F4DB5FCBB12E0A546527CD151>
I<B600FC073FB512FE6F61A26F96B6FCA2D80007F5C00070EF01EFA202EF6DEF03CFA202
E76DEF078FA202E36DEF0F0FA202E16D171EA302E06D173CA26F6C1778A26F6C17F0A26F
6DED01E0A26F6DED03C0A36F6DED0780A26F6DED0F00A26F6D151EA26F6D5DA3706C5DA2
706C5DA2706D495AA2706D495AA2706D495AA3706D49C7FCA2706D131EA2706D5BA2716C
5BA3716C5BA271EB81E0A271EBC3C0A271EBE780A27101FFC8FCA3715BA2715BA2725AA2
725AA2D93FFC6F5AB74DB712FEA2725AA2725A77527CD180>I<B600FC93B7FC8181A282
D800076E9239003FFC0070EE07E08282A28202EF7F02E77F02E380A202E18002E0806F7F
6F7F6F7FA26F7F6F7F6F806F80A26F80707F707F707F707FA2707F708070807080858371
7F717F717F717FA27114807114C07114E07213F07213F8A27213FC7213FE7213FF721487
A27214C77214E77313F77313FF85A285858585A28586868686A286868686A2D93FFC187F
B7173F1B1F1B0F1B07755A60527CD169>I<93380FFFC00303B6FC031F15E092B712FC02
03D9FC0013FF020F01C0010F13C0023F90C7000313F0DA7FFC02007F494848ED7FFE4901
E0ED1FFF49496F7F49496F7F4990C96C7F49854948707F4948707FA24849717E48864A83
481B804A83481BC0A2481BE04A83A2481BF0A348497113F8A5B51AFCAF6C1BF86E5FA46C
1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B
6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0
011F13F0020F01FC90B512C0020390B7C8FC020016FC031F15E0030392C9FCDB001F13E0
565479D265>I<BAFC19F819FF1AE086D8000701F0C7001F13FC060113FF726C13807313
C0070F13E01BF0857313F81BFCA27313FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0
614F13C04F13004E485A061F5B92B812F01AC04FC7FC19E003F8CBFCB3AEB812C0A55052
7CD15C>I<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F060113FE727F737F
737F85737F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A06035B060F13F095
B512C092B8C9FC19F819E019F89226F0000313FE9439007FFF80727F727F727F727F727F
8684A28684A787A71D1C75133EA38575137E73157C7513FC731401B86C6D9038F803F807
039038FE07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164>82
D<91260FFF80130791B500F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801
E0EB0FFD4801800101B5FC4848C87E48488149150F001F824981123F4981007F82A28412
FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C
16FC6C16FF6C17C06C836C836D826D82010F821303010082021F16801400030F15C0ED00
7F040714E01600173F050F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0
A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0
486C90B65AD8FC0393C7FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<00
3FBC1280A59126C0003F9038C0007F49C71607D87FF8060113C001E08449197F49193F90
C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A55351
7BD05E>I<B800C00103B612FCA5D8000701F8CAEBF000F31F80B3B3B11B3FA26D97C7FC
81637F1B7E6D6D17FE505A6E7E505A6E6D15076E4D5A6E6D4B5A6E6D4B5A6E01F84B5A6E
6DDA03FFC8FC6E6CB46CEB0FFE6F9039F001FFF8030F90B65A030316C0DB007F92C9FC04
0F14F8DC007F13805E537CD167>I<B700FC017FB600FE91B612F0A5D8003F01C0C8001F
01E0C9EBF8006F71EE0FC06D7161876F1C1F6D7196C7FC6F8373606D1E3E6F836D716087
6F1CFC6D666F4B801F016D66704A806E525A88704A17076E059F5F70021F80080F160F6E
6570023F806EDC3E074CC8FC8870027E5F6EDC7C03163E7002FC804F6C167E6E1C7C7001
01814F6C16FC6E745B70010317016E4C6D5D060716C00580496D14036F63DDC00F16E04F
6D14076F07F05BDDE01F170F6F92C76C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C
6E5C6FF1FE3EDDFCFC177E6F4A6E147C1DFFDDFFF06E14FC6F62A24E816F62A270496F5B
A24E817061A295C97E7061A270487090CAFCA37048705AA24D1601040360A27048705A84
537DD18B>87 D<B8030FB61280A5D8000F01FCCA003F90C7FC6FEF07F86D6D606D4F5A82
6D6E4C5A6D4F5A826E6D4CC8FC6E18FE826E6D4B5A6E4D5A826E6D4B5A6E4D5A836E6E4A
5A6E4D5A836F6D4AC9FC6F5E715C6F6D495A6F1503715C6F6D495A6F150F06805B6F6E48
5A6F153F06E05B706D48CAFC705C725A70EBFDFC7013FF61705C82705C6182715B96CBFC
B3AA030FB712F8A561527ED166>89 D<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F
2703FE000113F0486C6D7F6EEB3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9
FCA6037FB5FC020FB6FC91B7FC01071487013FEBF0074913803901FFFC004813F0485B48
5B485B4890C7FC5A5BA2485AA45EA26D5C007F151D163D6C6C02797F6C6D01F113F86C90
26C003E1EBFFE06C9026F81FC014F06C90B5487EC6ED001F011F01FC010713E0010101E0
90C8FC3C387CB641>97 D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFF
C092B612F002F301017F913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A82
4A6E7FA2727EA285A28584A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F
495BDACFC04990C7FCDA87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FC
C8FC90C7000313C041547BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F90
38C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F1380
91C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E
6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B5
5A01001580023F49C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4
913801FFE0021F13FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC
49487F4849143F484980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C
7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D
90B5128F0101ECFE0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13
FC49B6FC010715C04901817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48
178048497F18C0488191C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA612
7FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D
6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034
387CB63D>I<ED3FFC0203B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB80
7F49903800FFFC495A495AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A52600
7FF8C8FCB3B3A7007FB512FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDA
FC1F13E0013FECFF7F90267FFC0F9038FF9FF09026FFE001EBF83F48496C13E048499038
7FF01F4890C7D83FF813E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C
6C4A5AA26C5E6C6D495A6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F0
2607C03F90C9FC91CBFCA2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C83
6D828448B9FC12074848C700031480D81FF8EC003F4848150748486F13C083485A83A56D
5D007F18806D5D003F18006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE
011F5B6C6CB71280010F03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5
FCA51203C6FCB3A4EE1FFC93B512C0030314F0030F8092391FE07FFC92393F001FFE037C
8003F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542
537BD24B>I<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB
3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I<EB3FF0B5FCA512017EB3B3B3B1B6
12F0A51C537BD225>108 D<D93FF0D91FFCEDFFE0B591B500C0010713FE030302F0011F
6D7E030F6E017F8092271FE07FFCD9FF037F922A3F001FFE01F8007F0003027C9126FF03
E080C602F06DD90780137FDAF1E0038FC77FDAF3C0159EDAF7806D01BC143F07FC8102FF
C75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB512FEA567367BB570>I<D93FF0EB1F
FCB591B512C0030314F0030F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1
E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>I<
913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C
7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880
A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B
6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC
020113E03A387CB643>I<903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F30101
7F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717F
A285187F85A4721380AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F49
90C7FC03F0EBFFFC9126FBFE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1
B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF891
39E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0F
F04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC
120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F01F091
C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15C0
1300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D14
1F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F80714
8048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F131F13
3F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015
806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF8913801
FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01E3
13F06D6CD907C3EBFFC0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091C7
FC42377BB54B>I<B600F00107B5FCA5000101F8C8EA7FE06C6DED3F00A2017F163E6E15
7E013F167C6E15FC6D5E6F13016D5E8117036D5E6F13076D5E6F130F6D5E6F131F6D93C7
FC815F6E6C133E177E023F147C6F13FC6E5C16816E5C16C3A26EEBE3E016E76E5C16FF6E
5CA26E91C8FCA26F5AA36F5AA26F5AA26F5AA26F5A6F5A40367DB447>I<B6D8E07FB5D8
C003B512C0A5000101F0C701F0C7381FF8006E027FED07E06C715DA26E023F150F017F70
5DA26E181F013F4B6C92C7FC6E606D70143E94B5FC6F177E6D4A6E137C03C001F315FC6D
715B160303E001E114016D020702E05B03F013C06D71485A160F03F8D9807F13076D05F8
5B93381F003F03FC160F027F4902FC5BDBFE3E011F131F023F04FE90C8FC167EDBFF7C01
0F5B6E01FCECFF3E4C6D137E6E5FA24C7F6E5F4C7F6E5FA24C7F6E5F4C147FA26E5F93C8
123F6F5EA2033E6FC9FC5A367DB461>I<007FB500F090387FFFFEA5C66C48C7000F90C7
FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE01
4C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B
7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F
02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A5
42357EB447>I<B600F00107B5FCA5C601F8C8EA7FE06EED3F00A26D6C153E187E013F16
7C6E15FC6D5E6F13016D5E6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B02
7F143E6F137E023F147C6F13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5CA2
6E91C8FCA36F5AA26F5AA26F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E48
6C137E486C137C486C13FC5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6C
B45A6C13F000035BC690CBFC404D7DB447>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fj cmbx12 17.28 47
/Fj 47 122 df<B812C0AD2A0D7EA636>45 D<16F04B7E1507151F153FEC01FF1407147F
010FB5FCB7FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49
D<913801FFF8021FEBFFC091B612F8010315FF010F16C0013F8290267FFC0114F89027FF
E0003F7F4890C7000F7F48486E7FD807F86E148048486E14C048486E14E048486F13F001
FC17F8486C816D17FC6E80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5D
EA01F0CA14FEA34D13FCA219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B
604C13804C90C7FC4C5A4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F
4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD9
0FC0150749B8FC5B5B90B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5
FC020F14F8023F14FF49B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F
49486D8049C86C7F484883486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B
6C5B6C495E011FC85A90C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F13809226
0FFFFEC8FC020FB512F817E094C9FC17F817FF91C7003F13E0040713F8040113FE707F71
7F7113E085717FA2717F85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A
80A34D14005C7E4A5E5F6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C491480
6C01F0010791C7FC6C9026FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14
F0020149C9FC426079DD51>I<F01F804E7E187F18FFA25F5F5F5FA25F5F5FA294B5FC5E
5E5EA25E5EEE3FBFEE7F3FA216FEED01FCED03F8ED07F0A2ED0FE0ED1FC0ED3F8016005D
15FE4A5A4A5AA24A5A4A5A4A5A4A5AA24AC7FC14FE495A5C1303495A495A495A5C133F49
C8FC13FE485AA2485A485A485A5B121F485A48C9FC12FEBCFCA6CA6CEBC000B1037FB8FC
A6485E7CDD51>I<01C0EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B712
8019006060606060606095C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFC
ADED3FFE0203B512F0020F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F8
01007F02E06EB4FC02806E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC
83A219FEA419FFA3EA03F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B
4917F8EA3FF001804B13F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B
6C6C6C01075B6C01E0011F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D900
3F1480020301F0C8FC406078DD51>I<EE1FFF0303B512E0031F14F892B612FE0203814A
D9FC037F021F9039C0007FC04A90C7EA1FE0DAFFFC6E7E494914074949EC7FF8494914FF
49495B4949497F4990C7FC495D5C13FF485BA25A4A6E5B5A715B48496E5B725A4894C8FC
A35AA35C48913801FFE0030F13FE033F6D7E4B14E092B612F89126E1FE037FB53AE3F000
7FFEDAE7E06D7EDAEFC06D7F4B6D7F02FFC76C7F4A82717F4A82A2854A8085A24A1780A5
4A17C0A37EA77EA47E6E1780A27EA21A007E4D5B7E6E5E7E6E5E6C4C5B6D7E013F4B5B6D
6C4A5B6D01C0495B6D6D90B5C7FC6DD9FC0713FC6D90B65A6D5E023F15C0020F92C8FC02
0114F8DA001F1380426079DD51>I<EA07E0120F7F13FCEBFFFC91B912F8A45AA21AF01A
E01AC01A801A00A248606161616101E0C9123F01804C5A48CA485A4D90C7FC60007E4C5A
17074D5A4D5A4D5A485F4D5A17FF4C90C8FCC9485A5F4C5A160F4C5A5F163F4C5A16FF5F
5D94C9FC5D5D5E150FA24B5AA2153FA24B5AA215FFA34A5BA25CA35CA44A5BA45CA65CAD
6E5BA26E5BDA03FECAFC6E5A456377E051>I<92383FFF800203B512FC021FECFF80027F
15E049B712F849D9F0077F010F90C76C7ED91FFCEC1FFFD93FF06E7F494802037F494882
717F484980854890C9127FA24884183FA25A80A380806E157F6E5E14FE6E7E6F4A5A6C14
F003FC495B03FF495B6C1580DCE0075B6CDBF80F90C7FC9338FE1FFE6C9238FF7FF84D5A
6D16C06D5E6D4BC8FC6D6F7E6D16E00101826D16FC023F814A8149B87E01078349839026
3FFE3F8190267FFC0F819026FFF003814849C6FC48496D804849131F4890C70007801601
48486E1580003F163F49150F007F7014C0491501717E8400FF835B8484A384A21A80A27F
007F1900607F003F606D160F001F606D4C5A6C6D153F6C6D4B5A6C01F04B5A6C01FC0203
5B6C01FF021F5B6D9027F001FFFEC7FC6D90B65A010F16F001035E010093C8FC020F14F8
DA007F90C9FC426079DD51>I<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D80A24D80
A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E04038217F80407
6D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E03016F7F
A24C800303845E03076F80A24C80030F845E031F6F80A24C81033F845E037F707F93B9FC
A292BA7EA24A85A203FCC912070203865D020771805D86020F864B82021F865D87023F86
4B83027F8692CBFC874A864A840101875C496C728090381FFFC0B700E092B812FEA66F64
7BE37A>65 D<BB12F0F2FF801BF81BFEF3FFC088D800010280C7000114F8DF003F7F080F
13FF74807480867480757FA2757FA28987A289A965A26365A2515BA298B55A505C505C50
91C7FC505B505B087F13F00703B512C096B6C8FC93B812F81BC01BF8F3FF801CE00480C8
001F13F8080713FE08016D7E7480757F757F757F89757F89871E80871EC0A41EE087A663
A21EC0A3631E80A2511400A2515B515B6398B55A505C08075C081F5C97B6C7FCBD5A1CF8
1CE099C8FC1BF898C9FC63627AE173>I<4DB5ED03C0057F02F014070407B600FE140F04
7FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A
02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B54882
490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84A24891
CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C
7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D
6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E
02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC03
0117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>I<BB12E0F2FF80
1BF01BFE757E1CF0D800010280C7000780DF007F13FE080F6D7E0801807480093F7F090F
13FC757F757F877580767F8A88767F8A888AA2767FA28A881F80A37614C0A41FE0A5881F
F0B05214E0A51FC0A4521480A31F006466A2525BA2525BA2525B666499B55A515C5191C7
FC515B515B515B097F5B50B512C008075C083F91C8FC0707B512FCBD12F01CC051C9FC1B
F81B8008E0CAFC6C627AE17C>I<BD12FCA488A2D8000102C0C71201F1000F1A01F2007F
1B3F1B0F1B07757EA28787A288A3F43F80A31C1FA3197EA3F40FC0A499C7FC19FEA31801
A218031807181F18FF93B6FCA6EEC000181F180718031801A21800A21D7E197EA21DFCA6
96C812011DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE01C7F1CFF63631B0F093F13C098
B5FC1A0797B6FCBEFCA31D80A35F617AE06A>I<4DB5ED03C0057F02F014070407B600FE
140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807
FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291
B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84
A24891CD127FA25A4A1A3F5AA348491A1FA44899C8FCA25CA3B5FCB07E071FB812F880A3
7EA296C70001ECC000A26C7FA37E807EA26C80A26C80A26C807F6D7F816D7F7F6D7F6D6D
5F6D14C06D6E5E6E7F6E01FC5E020F01FF5E6E02C0ED7FEF020102F8EDFFC76E02FF0207
1383033F02FC013F1301030F91B638FC007F03014D131F6F6C04E01307040704801301DC
007F02F8CAFC050191CBFC6D6677E37F>71 D<B96C90B91280A6D8000102C0C9000102C0
C7FCB3B3A293BBFCA604C0C91201B3B3A6B96C90B91280A671627AE17E>I<B912E0A6C7
02E0C7FCB3B3B3B3AEB912E0A633627CE13C>I<B96C020FB612FCA6D8000102C0CA003F
EBF0000A0390C7FC525A525AF41FF0525A525A525A090390C8FC515AF30FF8515A515A51
5A50485A5090C9FC505AF20FF8505A505A505A4F485A4F90CAFCF107FC4F5A4F5A4F5A4F
5A4E485A4E90CBFCF007FC4E5A4E7E4E7E18FF4D7F4D805F4D804D804D8094B6FC04C181
DCC3FE809326C7FC7F7F9338CFF83F9326DFF01F7FDCFFE0814D6C804D7EDCFE00814C6D
804C7F4C6D804C824C6E7F85737F8873808588738085738088747F86747F897480868974
8086748089757F87757F8A7580878A7580090F14FCB96C010FB8FCA670627AE17E>75
D<B912F8A6D8000102C0CBFCB3B3B1F307E0A5F30FC0A61B1FA31B3F1C80A21B7FA21BFF
A262A262625013006262624FB5FC1907191F4EB6FCBDFC63A553627AE161>I<B700E004
0FB7128082828282A2D800016EDC000101FCC7FC719338001FC08383A28302FD808302FC
80816F7F6F806F8084816F806F806F8084707F8270807080857080827080708085717F83
718071807180868371807180727F8672808472807280877280847280737F877314808573
14C07314E01CF07314F8857314FC7413FE7413FF1D9F867414DF7414FF86A286868787A2
87878787A28787888888A288888890261FFFC084B712F8881D7F1D3F1D1F775A71627AE1
7E>78 D<94381FFFE00407B67E043F15F04BB712FE030FEEFFC0033FD9FC0014F092B500
C0010F13FC020349C7000113FF4A01F86E6C7F021F496F13E04A01C0030F7F4A496F7F91
B5C96C7F0103497013FF494970804B834949717F49874949717F49874B8390B586484A71
7FA24891CB6C7FA2481D804A84481DC0A348497214E0A3481DF0A34A85481DF8A5B51CFC
B06C1DF8A36E96B5FCA36C1DF0A46C6D4E14E0A36C1DC06E606C1D80A26C6E4D1400A26C
6E4D5BA26C6E4D5BA26D6D4D5B6D636D6D4D5B6F94B5FC6D636D6D4C5C6D6D4C91C7FC6D
6E4B5B6D02E0031F5B023F6D4B13F06E01FC92B55A6E01FF02035C020302C0010F91C8FC
020002FC90B512FC033F90B712F0030F17C0030394C9FCDB007F15F804071580DC001F01
E0CAFC666677E379>I<BB7E1AFCF2FFC01BF81BFE757ED800010280C7001F80070114F0
736C7F081F7F747F747F7414807414C0A27414E0A21DF0A27513F8A41DFCA91DF8A498B5
12F0A21DE0A25014C01D8062501400505B505B087F5B4FB512E0071F5C93B9C7FC1BFC1B
F01B8008F0C8FC04C0CCFCB3B3A2B97EA65E627AE16E>I<BA12F8F1FFE01AFEF2FFC01B
F01BFED800010280C76C7F070714C0070014F0747F081F7F747F747F7480A2748089A374
80A389A865A3505CA265A2505C9AC9FC505B505B505B087F5B4FB55A0707148096B548CA
FC93B812F81BC050CBFC621AFF932680000314C0DE007F7F071F13F8737F737F737F7380
8885888688A2747FA688A688A676140FF71F80A374801F3F86771400745E746E5BB96E6E
5B746E485A75EBFE07091F90B55A090715E009015DCF003F91C7FC0A0013FC71647AE178
>82 D<DBFFFCEC01E0020FD9FFE01303027F02FC130749B7130F0107EEC01F011F16F049
D9C007EBF83F4948C7383FFE7FD9FFF8020FB5FC4801E014014849804849153F91C97E48
4882001F834982003F83845B007F187FA2193FA200FF181FA27F190FA27FA26D17078080
806C01F893C7FC80ECFF8015F86CECFFC016FC6CEDFFE017FE6CEEFFE018F86C17FE6C71
7E6C846C846D17F86D836D836D8313036D18806D6C17C0020F17E01401DA000F16F01500
040715F8EE007F1703050014FC183F84060713FE84A2007C8300FC83A2197FA3193F7EA3
1AFC7EA27F1AF86D177F7F1AF06D17FF6D18E06D5E01FF18C06E4B138002E04B130002F8
4B5A02FFED3FFC01CF01E0ECFFF8018301FF010F5B010191B65A6D6C5E48011F93C7FC48
010315FC48D9003F14E048020149C8FC476677E35A>I<001FBEFCA64849C79126E0000F
148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181F
A4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>I<B96C
023FB612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C01806570
170380525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC033F01E0
4B5A6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7C9FC04
1F5E040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<913803FFFE027FEBFF
F00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F486D6D7F
717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207
B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B4813F85A5C48
5B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FED90FE1
14FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302F001011400D9
001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF8004
7F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02
007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA4
4F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C49
5B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C700
1F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E
01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F90C7FC49484A
13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE
7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC
1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D
020F1580020102FCC7FCDA000F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3
A892380FFF804AB512F8020F14FE023FECFF8391B712E301039138807FF3499039F8000F
FB011F01E00103B5FC494913004990C87E49488148498148834A815A485BA2485BA25AA3
485BA4B5FCAE7EA46C7FA37EA26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D6C6C01
03806D6D49806D01F0D91FF7EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14
F8020314E09127003FFE00ECC0004F657BE35A>I<92380FFFC04AB512FC020FECFF8002
3F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F
49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA4
1A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17
016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D
6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>I<EE3FFC0307B51280
033F14C04AB612F0020715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF49
13F05B4913E0A24913C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6
D8001F01C0C8FCB3B3B0007FB612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8
F001B5FC027FDAFE03148049B7128F49DCDFFD13C0010FD9F00FEBFFC149D98001140149
90C7EBFC0349486E6C7E4948EC3FFF48496E018113800780130048F0C03E97C7FC48496E
7FA34884A96C60A36C6D4A5BA26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF0
0F5B4990B612C060D97C7F4AC9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F80
14F091B77E18FE6CEFFFC019F06D17FC19FF6D846D846D846D84013F8490BAFC00038548
01E0C712014890C9000F7F484816014848EE007F4848717E8512FF5B85A56D5F007F616D
173F003F616D177F6C6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D
01F8011F5B011F90B712F8010717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151
>I<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267F
E07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC
825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>I<EB0FE0EB3FF8497E48B5FC
A24880A24880A76C5CA26C91C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80007FB5
FCA6C6FC7F7FB3B3AEB712C0A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3B3B3B3
ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F00207EBFF8004
0702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F922781FE001F90
27E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C
6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA4
4B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1FFFB691B512F0
040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD9
8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A65141
7BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E010701F0
010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13804819C04A81
4819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FC
A36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D
495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715E00200
92C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612
FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F8
6E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA4
1BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0
017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC040313E093CB
FCB3A3B712F0A64F5D7BC05A>I<D90FFFEB0FFCB690383FFF8093B512E04B14F04B14F8
923907FC7FFC92390FE0FFFEC6EC1F806DD93F0113FF6D133E157E157C15F8A215F07013
FEA24BEB7FFCEF3FF8EF0FE04B90C7FCA55DB3B0B712F8A638417BC042>114
D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F
D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14
E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0
1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217
1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC
EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>I<EC07
E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FEB8FCA5
D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D5B6DEB
FF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FFC0ED3F
FEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D6D49
48806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F018002
F0C7FC51427BC05A>I<B700C00103B512FCA6C66C01C0C8381FFE006D6DED07F0A26D6D
5E190F6D6D5E191F6D606F153F6D95C7FC6F5DA26D6D157E19FE6D6E5C18016E5E701303
6E5E701307A26E6D5C180F6E6D5C181F6E6D5C183F6E93C8FC705BA26E6D13FEA26E6E5A
17816FEBC1F817C36F5C17E76F5C17FFA26F5CA26F5CA26F91C9FCA26F5BA36F5BA2705A
A2705AA2705AA2705A4E417DBF55>I<B70081B600FC0103B512FCA6C66C0180C701FCC8
381FFE006F6FED03F86D047F5F856F6E16076D646F70140F6D705F866F6E161F6D646F4A
6D143F6D99C7FC4E7F6F616D1B7E6F4A6D14FE6D6395B57E7001FC15016E62DCC0016E13
036EDBF87F5D05038004E0496C14076E62DCF007ED800F6E4B6C5D050F15C004F8496C14
1F6E62DCFC1FEDE03F6E4B6C92C8FC053F15F004FE496C5C6E197E7048EDF8FE6E027E6D
5C05FE15FC4D6D13FD6F601BFF6F496E5BA24D806F60A26F496E5BA24D806F60A26F496E
90C9FCA294C87E6F5FA26F486F5A047C6F5A6E417DBF75>I<B700C00103B512FCA6D800
3F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F6D6D5E193F6D95C7FC6F5D6D17
7E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E70130F6E5E70131FA26E6D495AA2
6E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEBE7F0A26FEBF7E017FF6F5CA26F
5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35FA25F163F94CAFC5E167E16FED8
07E05CD81FF81301487E486C495AA2B5495AA24B5A5E151F4B5A6C4849CBFC15FEEBFC01
393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB1FE04E5D7DBF55>121
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fk cmtt10 10.95 83
/Fk 83 126 df<00101304007C131F00FEEB3F80A26C137FA248133FB2007E1400007C7F
003C131E00101304191C75B830>34 D<903907C007C0A2496C487EA8011F131FA202C05B
A3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F90B512
FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA229387D
B730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFEFD13C0
9039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A36CEC03
F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F011F7F01
037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FCA35AA2
6CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C5C6C5C
C614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<D803C0EB01E0D80FF0
1303486C497E487E150F487ED87E7E495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D
387E7E01EA7FFED83FFC5B1403EA1FF86C48485AEA03C0C75B140FA25D141FA24A5AA25D
147FA292C8FC5CA2495AA25C1303A25C1307A290390FF001E0ED07F84A487E011F497EA2
4A487E133F163F90267F807F1380ED7E1F14005BA25B1201A24848EB7F3F033F13004914
FF12076F5A5B6F5A6C486D5A0001EC01E029477DBE30>I<EB07E0EB1FF8497E137F497E
803801FC7F497E810003131F13F0A6143F92C8FC91387F0FFF9026F87E1F1380000113FE
EBF9FC13FB4A6C1300D9FFF013C06C13E0151F02C05BEB7F809038FF003F4892C7FC485C
48EB807E5A15FE391FDFC0FC383F8FE014E1397F07F1F8EB03F300FEEBFBF0EB01FF5D7F
EDC006027F130F91393F801F8015C06C137F6CEBFFE049EBF83F018701FC1300263FFFFB
B5FC6C01F15B14E06C9038C03FFC00039038001FF8D801FCEB07E0293A7DB830>I<EA07
C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13FCA2120113F81203EA07F012
0FEA1FE0127FEAFFC013801300127C12380F1D70B730>I<141E147F14FF5BEB03FEEB07
FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA212
7F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80
EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812FE7E7F
6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A2
14FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1F
C0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30
>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9FF267F
FBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048B512F0
4880000F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD87E03EB
0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7FCA2B8
1280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA03E0EA0FF0EA1FF813FCEA3FFE
A213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFFE0EA7F80
1300123C1019708B30>I<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120FEA3FC0
EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A21507A2
ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA2
4A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FCA2
485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE30
>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB3F
C04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00FE
AD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB
3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC27
3A7CB830>I<EB03C0497EA2130FA2131FA2133F137F13FF1203123FB5FCA213EF138FEA
7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C14F81F3977B830>I<EB07FC9038
3FFFC090B512F00003804814FE4880261FF80F1380263FE00113C09038C0007F4848EB3F
E090C7121FED0FF04814075A6C15F81503A3127E1218C8FCA2150716F0150F16E0151F16
C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC495A495AEB0FF0
EB3FE0495A495A4890C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7FCA37E6C15F0
25397BB830>I<EB03FF013F13E090B512F84814FE4880481580260FFE0113C09038F000
7F4848EB1FE0150F16F01507A26C5A6C5AC8FC150F16E0A2151FED3FC0157FEDFF800207
1300903807FFFE495B5D8115FF6D1480D9000113C09138003FE0ED1FF0ED07F8150316FC
150116FE1500A21218127EB4FCA2150116FC4814036C15F86C6C13076DEB1FF0D83FF013
3F3A1FFE01FFE06CB612C06C15806CECFE00C65C013F13F001031380273A7CB830>I<EC
03FC4A7E140F141FA2143F147F157E14FEA2EB01FCEB03F8A2EB07F0A2EB0FE0EB1FC0A2
EB3F80A2EB7F0013FEA2485A485AA2485AA2485A485AA2485AA248C7FC12FEB8FC1780A4
6C1600C8007EC7FCAA91387FFFFE91B6FCA46E5B29397DB830>I<000FB612804815C05A
A316800180C8FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F0007FC04913
3F0180EB1FE06CC7120F000E15F0C81207A216F81503A31218127EA2B4FC150716F04814
0F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C6C14E0
6C6C1380D90FFCC7FC25397BB730>I<EC0FF8EC7FFF49B51280010714E0131F4914F090
387FF80F9039FFC007F84813803803FE005B485A4848EB03F0ED01E0484890C7FC5B123F
5BA2127FEB000C903803FFE0010F13F8D8FF3F13FE48B6FCB7128016C09039FE007FE001
F8EB1FF001E0130F49EB07F849EB03FCA290C7120116FE1500A37EA46C7E15016D14FC12
1F6D1303000FEC07F86D130F6C6CEB1FF06DEB3FE03A03FF81FFC06C90B512806C15006D
5B011F13F8010713E001011380273A7CB830>I<127CB712FC16FEA416FC48C7EA0FF816
F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7
FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830>I<49
B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A1FF8003FF049131FD8
3FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6CEB1FE0
D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F90B512FE48802607FE
0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC90C712014815FE4814
00A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B5
12C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13E0013F
13F890B57E4880488048010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0FF04848
1307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D133FD8
0FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190380060011400ED03F8A21507
16F0150F000F15E0486C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC90B55A
6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA
1FF8A2EA0FF0EA03C0C7FCAFEA03C0EA0FF0121F13F8123F13FCA3121FA2120F12031200
120113F8120313F01207EA1FE0123FEA7FC0EAFF80EA7F00127E12380E3470A630>59
D<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00ECFFF8495B0107
13C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7F
F87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91
381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB230>I<007FB7FC
A2B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>I<12
78127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313
E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C0207
13C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A4813E0
000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<EC1FE0ECFFF8
010313FE010F7F4914804914C090397FF03FE09038FF800F4890380007F0D803FC13033A
07F801FBF89038F007FF380FE01F4A13FCEA1FC0495A003FEBFF0F903800FE07903901FC
03FE007FEBF801EA7E03ECF000A2EAFE0700FC49137EAA00FE6D13FED87E0314FCA2ECF8
01D87F0114F8003FEBFC03903900FE07F0903880FF0F001F90387FFFE06D6C13C0EA0FE0
6E13803A07F007FE009038F801F86C6CC7127C6CB414FE6CEB800390387FF01F6DB512FC
6D14F86D14E0010314C00100EBFE00EC1FF0273A7CB830>64 D<147F4A7EA2497FA4497F
14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA449804913
3F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB5
1280A46C496C130029397DB830>I<007FB512F0B612FE6F7E82826C813A03F8001FF815
076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E08290
39F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FC
B75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C903903FFF03E49EBFC7E011F13
FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B48481303A2484813015B12
3F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C
14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14806D14
00010713FC6D13F09038007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C816C81
3A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC16
1F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93
C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7
FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C
16C02B387EB730>I<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5
153E157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387E
B730>I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F484813
3F4848131F49130F485A491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892
B5FC4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131F
A2D803FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC29
3A7DB830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803
F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C49
6C13F06C496C13E02D387FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A800
7FB6FCB71280A46C1500213879B730>I<49B512F04914F85BA27F6D14F090C7EAFE00B3
B3123C127EB4FCA24A5A1403EB8007397FF01FF86CB55A5D6C5C00075C000149C7FC3800
3FF025397AB730>I<D83FFF90380FFF80486D4813C0B56C5AA26C497E6C496C1380D803
F0903803F8004B5A4B5A151F4B5A5E4BC7FC15FE14014A5A5D4A5A4A5A141F5D4A5A4AC8
FC5C13F18101F37F13F790B57E14EFECC7F01483EC03F8140101FE7F496C7E5B157F497F
82151F82150F826F7EA26F7E1501821500D83FFF903803FFC0486D4813E0B56C5AA26C49
7E6C496C13C02B387FB730>I<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80
EE1FC0A9003FB7FC5AB8FCA27E6C16802A387EB730>I<D83FF8ECFFE0486C4913F0486C
4913F8A2007F16F06C6C4913E00007160001EF14BFEC800FA39039E7C01F3FA4ECE03F01
E3133EA2ECF07EA201E1137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3FE0A3EC1F
C0A2EC070091C7FCADD83FFC903801FFE0486C4913F0B54913F8A26C486D13F06C486D13
E02D387FB730>I<D83FFC90381FFF80486C4913C0B54913E0A26C6D6C13C06C6E138000
03913801F800EBF7C0A3EBF3E0A314F013F1A214F8A213F014FCA2147C147EA2143E143F
A2141FA21581A2140F15C1A2140715E1A2140315F1A21401A215F91400A3157DA3153FEA
3FFF481380B5EAC01FA26CEB800F6C496C5A2B387EB730>I<90383FFFE048B512FC0007
14FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F8481403
B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C
1500000114FCD8003F13E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8
003FED0FFCED03FE15016F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890
B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<003FB57E
4814F0B612FC15FF6C816C812603F8017F9138003FF0151F6F7E15071503821501A51503
5E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507
A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA
1F002E397FB730>82 D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F
383FE001497E4848137F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA
1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF01031480D9003F13C014019138007F
E0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC0
01FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003F
B712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91
C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B1
6D147F00011600A36C6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D
5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>I<D87FFE90380FFFC0B54913E06E5A
A24A7E6C486D13C0D807F0903801FC00A26D130300035DA46C6C495AA46C6C495AA46D13
1F6D5CA3EC803F013F5CA46D6C48C7FCA490380FE0FEA401075B14F1A301035BA314FB01
015BA314FFA26D5BA46E5A6E5A2B397EB730>I<D83FFC903801FFE0486C4913F000FF16
F8A2007F16F06C486D13E0D81FC09038001FC0000F1680A76D143F00071600A700039038
0F803E9039F01FC07EEC3FE0A3EC7FF0A2147D0001157CA29039F8FDF8FCA314F8A30000
5D01F913FCA2ECF07CA201FD137DA2017D5CECE03DA3017F133FA2ECC01FA2013F5CA2EC
800F6D486C5A2D397FB730>I<D87FFF90381FFFC0B56C4813E0A46C496C13C0D803F890
3803F8006D1307A26C6C495AA26C6C5C151F6D5CEC803F013F5CECC07F011F91C7FCA290
380FE0FEA214F101075BA2903803FBF8A201015B14FF6D5BA26E5AA36E5AB1903803FFF8
497F497FA26D5B6D5B2B387EB730>89 D<001FB612FC4815FE5AA490C7EA03FCED07F816
F0150FED1FE016C0153FED7F80003E1500C85A4A5A5D14034A5A5D140F4A5A5D143F4A5A
92C7FC5C495A5C1303495A5C130F495A5C133F495A91C8FC5B4848147C4914FE1203485A
5B120F485A5B123F485A90B6FCB7FCA46C15FC27387CB730>I<127CA212FEA27EA26C7E
A26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D
7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7E
A2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>92
D<007FB612F0A2B712F8A36C15F0A225077B7D30>95 D<1338137CEA01FE12031207EA0F
FC13F0EA1FE013C0EA3F8013005A127EA212FE5AA5EAFFC013E013F0127FA2123FA2EA1F
E0EA07C00F1D70BE30>I<EB7FF80003B5FC4814C04880488048809038E01FFC9038C003
FE14016E7E6C487F6CC77FC8123FA491B5FC130F137F48B6FC12075A48EB803F383FF800
EA7FE0138048C7FC5AA4157F7E6C6C13FFEBC003263FF01FEBFF8090B712C07E6C14EF00
0314876CD9FE01138026003FE0C8FC2A2A7BA830>I<EA3FFC487E12FFA2127F123F1200
AAEC03FE91381FFF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13804A137F
4AEB3FC091C7121F17E049140FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F80
6E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC90380003FC2C
3980B730>I<ECFFE0010713FC011F7F017F7F90B612804815C048EB807F3907FC003F48
5A485A49EB1F804848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC07C06DEB
0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B011F13F801
075B01011380232A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF87
4913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25A
A25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712
E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713
E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F
484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB
03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00
010713F8010013C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5FC491387
903803FE079138FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C15C02600
07F0C7FCB3A9003FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC13FF9026
1FFF8713C04913DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7FCA2497F
001F8149133FA56D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15C001DF5B
D9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE0001FFE0180
130148C8127F007E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01F013076C
B4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730>I<EA3F
FC487E12FFA2127F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA29138FE07
FCECF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500
FE14FEA26C01FC14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5AA2EB00E0
91C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C02339
7AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F04814F8A47E
EB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C14005C6C5B00
0F13F0000313C01D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14C017E0A2
17C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A5A01FD7F
90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E6F7E3B7F
FFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B57EA47EEA
0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8
FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC
01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C0107138032
2881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C9038FE07FC
C6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500
FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8497F90B5
7E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F
15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB
1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E00101
90C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B612FC6C81
6CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8
160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495C
6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A730>I<ED
07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238
801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A28
7EA730>114 D<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880
A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038
000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF
0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830>I<EB0780497E131FA9
003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814
F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF026337EB130>I<D83FFC
EB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A41501A2150315076D130F
903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF8010001C0C7FC2F2880A630
>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D13
0700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2EC
E0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3F
FFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157E
A56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3
017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81
FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8
EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380F
E3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80
B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0
B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151F
D91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9EC
FDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EB
C3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815
FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A
4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E4890C7127F485A485A48
5A485A485A48B7FCB8FCA46C15FE28277DA630>I<ED3FF0913803FFF8140F5C147F16F0
9138FFF00092C7FC495A5CB3A21303495A133F383FFFF0B55A5C91C8FC14C080003F7F38
003FF813076D7E1301B3A2806D7E15F091387FFFF016F8141F8014039138003FF025477B
BE30>I<EA7FE0EAFFFE6D7E8014F07EC66C7E13076D7E1301B3A2806D7E15E091387FFF
E06E13F8801407141F5C4A13E09138FFE00092C7FC495A5CB3A21303495A137F387FFFF0
B5FC14C05C49C8FCEA7FE025477BBE30>125 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fl cmsy10 10.95 2
/Fl 2 16 df<EE7FFE0307B512E0033F14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA
3FE0EC07FCDA7F80EC01FED901FEC9EA7F80D903F8EE1FC0D907E0EE07E04948707E4948
707E49CB7E017E187E498449844848F00F8000031AC04918074848F003E0A24848F001F0
A248CD12F8A2001E1A78003E1A7CA2003C1A3C007C1A3EA200781A1EA300F81A1FA2481A
0FAB6C1A1FA200781A1EA3007C1A3EA2003C1A3C003E1A7CA2001E1A78001F1AF8A26C6C
F001F0A26C6CF003E0A26C6CF007C06D180F00011A806C6CF01F006D60017E187E6D606D
6C4C5A6D6C4C5A6D6C4C5AD903F8EE1FC0D901FEEE7F809026007F80DA01FEC7FCDA3FE0
EC07FCDA0FFCEC3FF0913B03FFC003FFC0020090B6C8FC033F14FC030714E09226007FFE
C9FC50557BC05B>13 D<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580
A3B712C0AA6C1580A36C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA7
2D>15 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fm cmr10 10.95 86
/Fm 86 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
D<EC03FE91383FFF809138FE03E0903903F800F0D90FE013384948137C90393F8001FE90
387F00035B5BA2485A6F5AED007093C7FCAA16FEB7FCA33901FC000315011500B3AC486C
497EB5D8F87F13FCA32E407EBF33>I<EC03FF023F13EE9138FE01FEEB03F090380FE003
EB1FC0EB3F80EB7F005B5B150148481300AEB7FCA3D801FCC7FCB3AE486C497EB5D8F87F
13FCA32E407EBF33>I<DA03FE49B4FC91273FFF801F13C0913BFE03E07F01F0903C03F0
00F1FC0078D90FE0D97FF0131C49484948133E4948484913FF494848495A5B491500A248
485C03016E5A0300153896C7FCAA197FBBFCA3D801FCC738FE00018485B3AC486C496CEC
FF80B5D8F87FD9FC3F13FEA347407EBF4C>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00AC
121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33
D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013
00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E
0018130C0038131C003013181C1C7DBE2D>I<4B6C130C4B6C131EA20307143EA24C133C
A2030F147CA293C71278A24B14F8A2031E5CA2033E1301A2033C5CA3037C1303A203785C
A203F81307A24B5CA20201140F007FBAFCBB1280A26C1900C72707C0003EC8FC4B133CA3
020F147CA292C71278A24A14F8A2021E5CA3023E1301007FBAFCBB1280A26C1900C727F8
0007C0C8FC4A5CA20101140FA24A91C9FCA301035CA24A131EA20107143EA24A133CA201
0F147CA291C71278A34914F8A2011E5CA2013E1301A2013C5CA201186D5A41517BBE4C>
I<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8
1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092
C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303
01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC
158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280
D93FFEC7FCEB0FF8EB00E0A422497BC32D>I<013F1603D9FFC04B7E2601E0E0150F2607
C070151F48486C4BC7FC023E157E48486C15FE48D90FC0EB03FC003ED90EF0EB0FF8DA0F
3F13FD007E903A070FFFF1F0007C0200EB03E0160000FC6D6C495A170F604DC8FC5F173E
5F17FC5F4C5A1603007CD907005B4C5A007E150F003E495C020E49C9FC003F5D6C49133E
260F803C5B023813FC6C6C485B3A01E0E001F03800FFC090273F0003E0133F90C70007EC
FFC09339C001E0E0923A0F8007C070031F49487E0400143C033E90381F001C037E497F03
7C133E4B150F0201027E7F4B137C4A5A020702FCEB03805D4A5A141F92C7FC143E147E14
7C5CA2495A0103037CEB07005C4948147E010F033E5B4A160E49C8123F496F5B013E9238
0F803C49173801FC6F6C5A49923801E0E0496FB45A0160043FC7FC41497BC34C>I<EC0F
80EC7FE0ECF870903803E0380107133CECC01CEB0F80011F131E150EA2EB3F00A55D1480
A25D157815705D6D6C5A14C1ECC38002C7CAFC02EE91387FFFFCEB0FEC14FC4A020713C0
6D48913801FE006E5DEF00F06D7E01074B5A496C5D011D1503D939FF4A5A017093C7FC49
6D5B0001017F140E496C6C131E00036E131C2607801F143C000F6E5B001F6D6C1370263F
000714F0486E485ADA03FE5B913801FF03486D495A0487C8FCED7FCFED3FFE6F4814386D
5C150F007F6E6C14786D6D6C1470003F4A6C14F06D496C6C13E0001F91393E3FC0016C6C
903AFC1FF003C03D07FC07F007FC1F800001B5D8C001B512006C6C90C7EA7FFCD90FF8EC
0FF03E437CC047>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312
011380120313005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB0380
1307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3
123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F
12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E
12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0
A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA213
7813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<EB03C0A2805C
A600F0140F00FC143F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FDBF
00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39FF
03C0FF00FE147F00FC143F00F0140F00001400A6805CA220277AC32D>I<121EEA7F8012
FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A12181238
12300B1C798919>44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2EA
1E000A0A798919>I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C157C
A2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147CA2
147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA2137813
F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA2127812
F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03F090387C00F849137C48487F
48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3
A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C
6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C013031307131F
137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC9038
3FFF8090B512E03903F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC05A
ED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF1600
4A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E133C
5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC90
383FFF809038F80FE03901E003F839078001FCD80F007F000E6D7E001E1580D81F80137F
486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7FC
EB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A2120C
123F487E487EA316E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC39
03F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE14
01A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA2
5B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FC
A3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3F
E090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C7138000
06141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012
780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7
FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E01
7EEB1FC049133F4848137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA3485A
A214FE903887FF8039FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914C0
A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C6C
137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<123812
3C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E151C
153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303
A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF8090
387C07E09038F001F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A412
3FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEBFF
806C91C7FC133F6D13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F80
0313C048487E489038007FE0003E143F007E141F007CEC0FF01507481403A31501A46C15
E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86CB5
12E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F04848
6C7E48486C7E4848137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0A5
16F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F90387E
0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A
5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F7C
BC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F
80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127F
EAFF80A213C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230A2
0A3979A619>I<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A29138
0381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FC
A249819138800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA2
017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65
D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0A2EF
1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE7FE0
91B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC1707
A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C90380FFE00B85A
17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E913A3FF007
E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749481403495A
91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E127FA3491600
12FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C1678000117
706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E902600
FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42>I<B712FCEE
FF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E717E170184
717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA24D5A
6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD45>
I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870A418381638
A41800A21678A216F81501150791B5FCA3EC8007150115001678A21638A2180EA3181C93
C7FCA4183C1838A21878A318F8EF01F0A21707170F173F48486CEB03FFB912E0A3373E7D
BD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A21703A31701A4EF
00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115001678A21638A693
C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038FF80
3C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE0141F4948140F49
48140701FF15034890C8FC491501485A000716005B000F177C5B001F173CA2485AA2181C
127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123FA27F121FA26C
7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C902600
FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C427BBF47>I<B6
D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3A9
2601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3B3B2
EBFFF0B612F0A31C3E7EBD21>I<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F
80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07EC7FC
3800FFF8EB3FC026407CBD2F>I<B600C090387FFFFCA3000101E0C7000F138026007F80
913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E5E5E4B5A
4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC878791388F03FE91389E
01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E707EA2707F717E84173F
717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3403E7DBD47>I<B612F8A3
000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C13
3FB8FCA3313E7DBD39>I<B500C093B512C0A300016D4BEBE000D8007F1880D977F0ED03
BFA3D973F8ED073FA3D971FC150EA2D970FE151CA3027F1538A36E6C1470A36E6C14E0A2
6E6CEB01C0A36E6CEB0380A36E6CEB0700A26E6C130EA36E6C5BA3037F5BA26F6C5AA36F
6C5AA392380FE1C0A3923807F380A26FB4C7FCA36F5AA213F8486C6D5AD807FFEFFFE0B5
00F80178017FEBFFC0A34A3E7CBD53>I<B56C91B512F88080D8007F030713006EEC01FC
6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E7E
6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE0F
F8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487ED807
FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E00
07E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E000183
49150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E049163FA3
00FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A0003
5F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03F8
D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EEFF
8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A218
F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9FC
B3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F000F
E0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248486F7E49
150300038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249163FA200
FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F805B
6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F81903806
1FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE007E0
91271FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF0318
FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FCEEFF8000
01D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017FF
95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC0707E
707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB600C0
EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC13189039
1FFF8038017FEBE0783901FC03F83A03F0007CF8D807C0133F4848130F001F140748C7FC
003E1403007E1401A2007C140012FC1678A46C1538A27EA26C6C14007F7FEA3FF8EBFF80
6C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F020713F89138
007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C157C6C15
FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE00D8E007
13F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393FC0003F48
C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107
B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80EC01FC71
5A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D6C5C6D6C
141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF03D407DBD
44>I<B691380FFFFEA3000301E0020113E06C01809138007F806CEF3F00017F163E181C
6E153C013F1638A26E1578011F1670A26D6C5DA26E140101075EA26E140301035EA26D6C
4AC7FCA2806D150EA26F131E027F141CA26F133C023F1438A26E6C5BA26F13F0020F5CA2
EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A6E130EA2ED7F9CA216DCED3FF8
A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE017FB5D88007B5FCA3000301C001
0101E0C713F86C90C849EC3FE07148EC0F807E7215006E143F017F190E84A26D6C60A24D
7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F001076104037F6E028114010103610407
7F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C016
1E023F171C047814F0DBE070010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB
03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B
81037C153EA20378151E0338151C58407EBD5D>I<007FB5D8C003B512E0A3C649C7EBFC
00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13F0
4C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A91
3801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801C07F
0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F130149
486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512FE
A33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8006C6C48ED3FC0725A013F041E
C7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D1303606E6C49C8FC6E6C5B17
0E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E13016EEB83C05FED7FC7DB3FE7
C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>I<EAFFFCA4EAF0
00B3B3B3B3ABEAFFFCA40E5B77C319>91 D<486C13C00003130101001380481303000EEB
070048130E0018130C0038131C003013180070133800601330A300E01370481360A400CF
EB678039FFC07FE001E013F0A3007F133FA2003F131F01C013E0390F0007801C1C73BE2D
>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>I<EA0180120313005A120E5A12
181238123012701260A312E05AA412CFEAFFC013E0A3127FA2123F13C0EA0F000B1C7ABE
19>96 D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF07F6E7EA3
157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8EA0FE048
5A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC00E13CF3A
07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01FC12FFA3120712031201
B1EC03FC91381FFF8091387C07E09039FDE001F09039FFC000FC4A137E91C77E49158049
141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C
6E13FE9039F3C001F89039F1E003F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE
33>I<49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B12
1FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316806C
6C13076C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC222A
7DA828>I<ED01FC15FFA3150715031501B114FF010713E190381F80F990387E003D4913
1FD803F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C
7E000F14037F000714076C6C497E6C6C497ED8007C017913F890383F01F190380FFFC190
3A01FE01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01F848486C7E48
48137E48487F000F158049131F001F15C04848130FA2127F16E090C7FCA25AA290B6FCA2
90C9FCA67EA27F123F16E06C7E1501000F15C06C6C13036DEB07806C6C1400C66C131E01
7E5B90381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C90
3807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6FCA3C648C7FC
B3AE487E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F8090397E0FDE
1F9038F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D
13FE00075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3
120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E14
0048157E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800
FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA3120712031201B1EC01
FE913807FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D7E91C7FCA25B
A25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA
01E0C8FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01
FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38FF
807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>I<
EA01FC12FFA3120712031201B292B51280A392383FFC0016E0168093C7FC153C5D5D4A5A
EC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E14
01816E7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC
12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F801FE14FF00FF9027
07FFC00313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9C0
6D487F000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80
B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E09138
7803F000079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C49
7EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F48
48EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA44815
FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F
80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF
90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F49EC3F805B
EE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE91
38C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A
7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848
EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E1507
6C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E
92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381
EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0
603901FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E
6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001F
EC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F
0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001F
B512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700
EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA3000714030003140100011400B3
A51501A31503120015076DEB06FF017E010E13806D4913FC90381FC078903807FFE00100
903880FE002E297DA733>I<B539E00FFFE0A32707FE000313006C48EB00FC5E00015D7F
00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA290380FE00EA2ECF01E010713
1CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B28
7EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48EB3F806C4817006D01
0F141E00016F131C15076D163C00004A6C1338A2017F5E4B7E151DD93F805DED3DFC1538
D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701070387C7FC9138F1C0
1F02F9148F010315CE9138FB800F02FF14DE6D15FCED00076D5DA24A1303027E5CA2027C
1301023C5C023813003D287EA642>I<B539F01FFFE0A30003D9C00F1300C690388007F8
D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5A
EB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF01037F49486C7ED90F
007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB539803FFFF8A32D277FA630>
I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00005DA2017F495AA2EC
8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01031338A26D6C5AA2EC
FEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C1438A214780018137012
7EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E02B3A7EA630>I<001F
B61280A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D
4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B4848130712
07491400485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>I<BE12C0A2
5A0280985B>124 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fn cmbx12 20.736 20
/Fn 20 122 df<13FF000313E0487F001F13FC487F805A1580B612C0A315E0A315F0A37E
A27EA27E000713F36C13E3C61383EB00031407A215E0A3140FA215C0141FA2EC3F80A214
7F15005C5C1301495A5C1307495A495A133F495A495A4890C7FC485A485A485A5B6C5AEA
01801C3A72F736>39 D<C0FCA48BA4C7003F0280C8120FF3007F1C0F1C030A00801D3F89
89898989A2898B1E7FA21E3FA31E1FA28BA21E0FF207F8A5787EA4080F92C8FCA31A1FA2
1A3FA21A7FF101FF1907193F94B7FCA8943880003F19071901F1007F1A3FA21A1FA21A0F
A2F71FE01A07A2F73FC0A61F7F97CA1380A41FFFA3541300A366A266671E0FA21E1FA21E
3F1E7F545A65651D0F1D3F9AB5FC1C030A3F5C0907B6FCC0FCA567A373757AF47F>69
D<BF12FCA48AA4C7003F0280C8123F1B01F3003F1C07767F1C008989898989A2891F8089
A289A31E7FA21FC0A21E3FA3F20FF0A3F61FE0A49BC7FCA21A1FA31A3FA21A7FA21AFF19
03190F197F94B7FCA8943880007F190F190319001A7FA21A3FA21A1FA31A0FA997CBFCB3
A9BBFCA86B757AF47A>I<96267FFFE01670063FB6ED01F80503B700F01403053F04FC14
074CB96C130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03C090
39003FFF814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA121F4A
02F8834A02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A8549
5C8A4991CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2
795A489BC9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA36C80
A36C80A27E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E02F0
5F6E806E02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F138703
039226FF8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC003F4C
C71201050304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>I<B800C005
07B812C083838383A28383C7003F6F93C7001F01F0C7FC72060190C8FC84A284848403EF
8015E703E3808503E18103E0817080827080857080708070818286708171807180837180
867180718171818372808772807280728084877281728172818573808873807380738085
738189738174807480868974807480741580867415C01EE07514F07514F87514FC877514
FE1EFF7515817515C1877614E11FF17614F97614FD7691B5FC8888A28888898989A28989
8989A2898A8A8A8AA28A8A8A8A8B903803FFFEB800F8858B8B8BA28B8B795A8A767AF597
>78 D<BC12FCF3FFF01CFF1DE01DFC1DFF1EC08AC7003F91C8000115F8E0000F80090180
756C6D7E76801C0F76808B7680888B7680A28BA2892080A420C0AB2080A49AB61200A267
A2676467525C64670A1F5C525C5291C7FC51B55A090F14F850B65A94BA12C09BC8FC1DFC
1DF09AC9FC1CF809FCCAFC0580CEFCB3B3A8BA12E0A872767AF584>80
D<BC7E1BFF1CF01CFF1DC01DF81DFE777EC7003F91C8000715E0E0003F80090714FC0901
80756C7F7680768076807680A276808B888BA37680A38CAA9DC8FCA3525CA267A2525C67
6467525C525C5291C9FC99B512FC515C090F5C097F14C0080FB6CAFC94B912FC1DE09ACB
FC1CF81CFE767E94C8003F14E0080780080114FC746C7F757F7580758075807580A27580
8A87A28A888AA78BA78BA779147E22FFA288A28B765E22FE76802103766E14FCBA00C06E
6E1307766EEB0FF876ED801F779138E07FF00B1F91B512E00B0716C00B011680E3003FEC
FE00D1000714F8E4000F13E088787AF590>82 D<BA00E0030FB8FCA8C7003F0280CC003F
EBC000E503FCC7FCB3B3B3B3A46E1C0768A2836E1C0F68A26E1C1F7162A26E1C3F714F5A
806E525A71606F6D97C8FC6F505A7118076F6D4E5A6F6EEF3FF86F6E4D5A6F6EEE01FF6F
02F84C5B6F02FE041F5B043F6D6C037F90C9FC7002F0913807FFFE0407DAFF8090B55A04
0192B712F07061051F188005074DCAFC050017F0061F16C0060103FCCBFCDE000391CCFC
88787AF595>85 D<97380FFFE00607B6FCA8F00003190086B3AD93383FFF800307B512F8
033F14FF4AB712C0020716F0021F16FC027F9039FE007FFE91B500F0EB0FFF0103028001
0190B5FC4949C87E49498149498149498149498190B548814884484A8192CAFC5AA2485B
A25A5C5AA35A5CA4B5FCAF7EA4807EA37EA2807EA26C7F616C6E5D6C606C80616D6D5D6D
6D5D6D6D92B67E6D6D4A15FC010301FF0207EDFFFE6D02C0EB3FFE6D6C9039FC01FFF86E
90B65A020F16C002031600DA007F14FC030F14E09226007FFEC749C7FC5F797AF76C>
100 D<93387FFF80030FB512FC037FECFF804AB712E0020716F8021F16FE027FD9F8077F
49B5D8C000804991C7003F13E04901FC020F7F49496E7F49498049496E7F49496E7F90B5
5A48727E92C914804884485B1BC048841BE0485BA27313F05AA25C5AA21BF885A2B5FCA3
91BAFCA41BF002F8CCFCA67EA3807EA47E806CF103F0F207F86C7F1A0F6C6E17F06C191F
6F17E06C6E163F6D6DEE7FC06D6D16FF6D6D4B13806D6D4B13006D6D6CEC0FFE6D02E0EC
3FFC6D02F8ECFFF86D9126FFC00F5B023F91B65A020F178002034CC7FC020016F8031F15
E0030392C8FCDB000F13E04D507BCE58>I<EF7FFE040FB512C093B612F0030715FC031F
814B8192B5D8F01F13800203DA803F13C04A9026FC007F13E04A4990B5FC4A5B4A494814
F04A13C091B51280A2491400A2495BA27114E05B4B6E13C0721380721300F007FC95C8FC
B3B912C0A8D8000749CAFCB3B3B3A7007FB712FCA844797AF83B>I<903801FFFCB6FCA8
C67E131F7FB3AD95380FFFE095B512FE05036E7E050F15E0053F15F84D81932701FFF01F
7F4CD900077FDC07FC6D80DC0FF06D80DC1FC07F4C48824CC8FC047E6F7F5EEDFDF85E03
FF707F5EA25EA25EA293C9FCA45DB3B3A6B8D8E003B81280A8617879F76C>104
D<EB01FCEB07FF011F13C0497F497F90B57EA24880A24880A76C5CA26C5CA26D5B6D5B6D
5B010790C8FCEB01FC90CAFCB2903801FFFC007FB5FCA8C67E131F7FB3B3B3A5B81280A8
297979F835>I<903801FFFCB6FCA8C67E131F7FB3B3B3B3B3ABB812C0A82A7879F735>
108 D<93381FFFE00303B6FC031F15E092B712FC020316FF020F17C0023FD9FC0014F091
B500C0010F13FC4991C700037F4901FC02007F010F496F13C049496F7F49496F7F4B8149
496F7F90B5C96C7F4886A24849707F481B80A248497014C0A2481BE0A348497113F0A348
1BF8A5B51AFCAE6C1BF8A46C1BF06E94B5FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B
006C6E4B5BA26C6E4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0
010F91C7FC010002FC90B512FC6E90B75A021F17E00207178002014CC8FCDA003F15F003
0392C9FCDB001F13E056507BCE61>111 D<902601FFF8EB07FEB691383FFFC094B512F0
0403804C14FE4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114
E06DEBF9FC16F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E0
95C8FCA25DA65DB3B3A2B812F8A8434E7ACD4F>114 D<912603FFFCEB0780027F9039FF
E00FC00103B6EAF83F010FEDFEFF013F92B5FC49EB000F2601FFF01300480180143F4890
C8120F4848814848814981123F83485A187FA212FF6D163FA37F7F6DEE1F8002C092C7FC
14F014FEECFFF06CECFF8016FEEEFFE06C16FC6C16FF18C06C836C17F86C836C836C8301
3F17806D17C0010717E0010117F0EB003F020716F8EC001F030015FC1607EE007F051F13
FE1707007E82B482836D167FA2183F7F181FA27F19FC7FA26D163F6D17F86D167F19F06D
16FF6E4A13E002E04A13C06E4A138002FE023F1300913AFFC003FFFE01E790B65A01C316
F0018016C026FE003F92C7FC48010714F80070D9007F90C8FC3F507ACE4C>I<15FFA75C
A55CA45CA25CA25CA25CA25C91B5FCA25B5B5B131F5B90B9FC120FBAFCA6D8000791C9FC
B3B3A3F01FE0AE183F7014C07F187F7014806D16FF826D4B13006E6D485AEEFE0F6E90B5
5A020F5D6E5D020115C06E6C5C031F49C7FC030113F03B6E7CEC4B>I<DAFFFE933803FF
F8B60303B6FCA8C66CEE0001011F717E6D84B3B3A862A497B5FCA261A2616D5F1ADF6F15
0F6DEF1F9F073F806D6EDA7F1F13FF6D6ED901FEEDFF8070EB07FC023F01FEEB3FF86E90
B612F06E16C0020316800200EDFE00031F14F80300028003C0C7FC614F79CD6C>I<B892
B612F8A8D8001F49C90003EBF0006D6D04001380A26D6E94C7FC626D6E5E1A03A26D6E4B
5AA26D6E4B5AA26E6D5E1A1F6E6D5E1A3F6E6070157FA26E6D4B5AA26E6E4990C8FCA26E
6E5C19036E6E5C1907A26E6E495AA26F6D495AA26F6D5C193F6F6D5C197F6F5E7113FFA2
6F028190C9FCA26FECC3FEA26FECE3FC18E76FECF7F818FFA2705CA2705CA2705CA2705C
A37091CAFCA2705BA2705BA2705BA2715AA3715AA24D5AA26017FF95CBFC5EA24C5AEA03
F8D80FFE4A5A487E486D495A487F5FB56C131F5F163F4C5AA24C5A4B90CCFC6C49485A4B
5AEC800F6C9038003FF849EBFFF0261FFC0713C06CB65A6C92CDFC6C14FCC614F0013F13
C0D907FCCEFC5D6F7CCC66>121 D E
%EndDVIPSBitmapFont
end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: a4
a4
%%EndPaperSize

%%EndSetup
%%Page: 1 1
1 0 bop 1401 1386 a Fn(User's)66 b(Guide)1665 1760 y(for)e(the)1041
2133 y(GNU)h(GPERF)h(Utilit)-5 b(y)1553 2756 y Fm(Douglas)30
b(C.)h(Sc)m(hmidt)1417 3254 y(last)f(up)s(dated)f(14)i(April)d(1998)
1668 3503 y(for)i(v)m(ersion)g(2.7)p eop
%%Page: 2 2
2 1 bop 0 3629 a Fm(Cop)m(yrigh)m(t)452 3626 y(c)427
3629 y Fl(\015)30 b Fm(1989-1998)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)
-8 b(oundation,)31 b(Inc.)0 3903 y(P)m(ermission)23 b(is)h(gran)m(ted)h
(to)h(mak)m(e)g(and)e(distribute)e(v)m(erbatim)j(copies)f(of)h(this)f
(man)m(ual)g(pro)m(vided)g(the)h(cop)m(yrigh)m(t)0 4027
y(notice)31 b(and)e(this)h(p)s(ermission)d(notice)k(are)f(preserv)m(ed)
g(on)h(all)e(copies.)0 4301 y(P)m(ermission)d(is)h(gran)m(ted)i(to)g
(cop)m(y)f(and)g(distribute)d(mo)s(di\014ed)h(v)m(ersions)h(of)i(this)d
(man)m(ual)i(under)e(the)i(conditions)0 4426 y(for)21
b(v)m(erbatim)g(cop)m(ying,)i(pro)m(vided)c(also)j(that)f(the)g
(section)h(en)m(titled)e(\\GNU)i Fk(gperf)e Fm(General)h(Public)e
(License")i(is)0 4550 y(included)f(exactly)k(as)g(in)e(the)h(original,)
g(and)g(pro)m(vided)f(that)h(the)h(en)m(tire)f(resulting)e(deriv)m(ed)h
(w)m(ork)i(is)e(distributed)0 4675 y(under)29 b(the)h(terms)h(of)f(a)h
(p)s(ermission)c(notice)k(iden)m(tical)e(to)i(this)e(one.)0
4949 y(P)m(ermission)37 b(is)h(gran)m(ted)i(to)g(cop)m(y)g(and)f
(distribute)d(translations)i(of)h(this)f(man)m(ual)h(in)m(to)g(another)
g(language,)0 5073 y(under)f(the)h(ab)s(o)m(v)m(e)i(conditions)c(for)i
(mo)s(di\014ed)e(v)m(ersions,)k(except)g(that)f(the)f(section)g(en)m
(titled)g(\\GNU)h Fk(gperf)0 5198 y Fm(General)28 b(Public)e(License")j
(ma)m(y)g(b)s(e)e(included)f(in)h(a)i(translation)e(appro)m(v)m(ed)i(b)
m(y)f(the)g(author)h(instead)e(of)i(in)e(the)0 5322 y(original)i
(English.)p eop
%%Page: 1 3
1 2 bop 0 -116 a Fm(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2352
b(1)0 366 y Fj(GNU)30 b(GENERAL)h(PUBLIC)f(LICENSE)1453
615 y Fm(V)-8 b(ersion)30 b(1,)h(F)-8 b(ebruary)30 b(1989)240
874 y(Cop)m(yrigh)m(t)692 871 y(c)667 874 y Fl(\015)g
Fm(1989)i(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation,)31
b(Inc.)240 978 y(675)h(Mass)e(Av)m(e,)i(Cam)m(bridge,)e(MA)h(02139,)h
(USA)240 1185 y(Ev)m(ery)m(one)f(is)f(p)s(ermitted)f(to)i(cop)m(y)g
(and)f(distribute)e(v)m(erbatim)i(copies)240 1289 y(of)h(this)e
(license)g(do)s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m
(w)m(ed.)0 1792 y Fi(Pream)l(ble)125 2072 y Fm(The)40
b(license)g(agreemen)m(ts)j(of)e(most)g(soft)m(w)m(are)h(companies)f
(try)g(to)h(k)m(eep)f(users)f(at)i(the)f(mercy)g(of)g(those)0
2196 y(companies.)e(By)26 b(con)m(trast,)i(our)d(General)g(Public)e
(License)j(is)e(in)m(tended)h(to)h(guaran)m(tee)h(y)m(our)e(freedom)h
(to)g(share)0 2321 y(and)34 b(c)m(hange)i(free)e(soft)m(w)m(are|to)j
(mak)m(e)e(sure)f(the)h(soft)m(w)m(are)h(is)d(free)i(for)f(all)g(its)g
(users.)52 b(The)34 b(General)g(Public)0 2446 y(License)24
b(applies)e(to)j(the)f(F)-8 b(ree)25 b(Soft)m(w)m(are)g(F)-8
b(oundation's)24 b(soft)m(w)m(are)i(and)d(to)i(an)m(y)f(other)h
(program)e(whose)h(authors)0 2570 y(commit)30 b(to)h(using)e(it.)41
b(Y)-8 b(ou)30 b(can)h(use)f(it)g(for)g(y)m(our)h(programs,)f(to)s(o.)
125 2850 y(When)c(w)m(e)h(sp)s(eak)g(of)g(free)g(soft)m(w)m(are,)i(w)m
(e)e(are)g(referring)f(to)h(freedom,)h(not)f(price.)38
b(Sp)s(eci\014cally)-8 b(,)26 b(the)h(General)0 2975
y(Public)32 b(License)j(is)e(designed)h(to)h(mak)m(e)h(sure)e(that)h(y)
m(ou)h(ha)m(v)m(e)f(the)g(freedom)g(to)g(giv)m(e)h(a)m(w)m(a)m(y)g(or)f
(sell)e(copies)i(of)0 3099 y(free)h(soft)m(w)m(are,)k(that)c(y)m(ou)h
(receiv)m(e)g(source)f(co)s(de)g(or)h(can)f(get)h(it)f(if)f(y)m(ou)h(w)
m(an)m(t)h(it,)h(that)f(y)m(ou)f(can)g(c)m(hange)i(the)0
3224 y(soft)m(w)m(are)32 b(or)e(use)g(pieces)g(of)h(it)f(in)f(new)h
(free)g(programs;)h(and)e(that)i(y)m(ou)g(kno)m(w)f(y)m(ou)h(can)g(do)f
(these)h(things.)125 3504 y(T)-8 b(o)27 b(protect)h(y)m(our)f(righ)m
(ts,)h(w)m(e)f(need)g(to)h(mak)m(e)g(restrictions)e(that)h(forbid)f(an)
m(y)m(one)i(to)g(den)m(y)f(y)m(ou)g(these)g(righ)m(ts)0
3628 y(or)g(to)i(ask)e(y)m(ou)h(to)g(surrender)e(the)h(righ)m(ts.)39
b(These)28 b(restrictions)e(translate)h(to)i(certain)e(resp)s
(onsibilities)22 b(for)28 b(y)m(ou)0 3753 y(if)h(y)m(ou)i(distribute)d
(copies)i(of)h(the)f(soft)m(w)m(are,)i(or)f(if)e(y)m(ou)i(mo)s(dify)d
(it.)125 4033 y(F)-8 b(or)30 b(example,)f(if)g(y)m(ou)h(distribute)d
(copies)i(of)h(a)f(suc)m(h)h(a)f(program,)h(whether)f(gratis)g(or)h
(for)f(a)h(fee,)g(y)m(ou)g(m)m(ust)0 4157 y(giv)m(e)h(the)g(recipien)m
(ts)f(all)f(the)i(righ)m(ts)f(that)h(y)m(ou)g(ha)m(v)m(e.)43
b(Y)-8 b(ou)31 b(m)m(ust)g(mak)m(e)g(sure)f(that)h(they)-8
b(,)32 b(to)s(o,)g(receiv)m(e)f(or)g(can)0 4282 y(get)h(the)e(source)h
(co)s(de.)41 b(And)29 b(y)m(ou)i(m)m(ust)f(tell)g(them)g(their)f(righ)m
(ts.)125 4562 y(W)-8 b(e)30 b(protect)g(y)m(our)e(righ)m(ts)h(with)e(t)
m(w)m(o)k(steps:)40 b(\(1\))30 b(cop)m(yrigh)m(t)f(the)g(soft)m(w)m
(are,)i(and)d(\(2\))i(o\013er)g(y)m(ou)f(this)f(license)0
4686 y(whic)m(h)h(giv)m(es)i(y)m(ou)g(legal)f(p)s(ermission)d(to)k(cop)
m(y)-8 b(,)32 b(distribute)c(and/or)i(mo)s(dify)f(the)h(soft)m(w)m
(are.)125 4966 y(Also,)d(for)g(eac)m(h)h(author's)f(protection)g(and)f
(ours,)h(w)m(e)h(w)m(an)m(t)f(to)h(mak)m(e)g(certain)f(that)g(ev)m(ery)
m(one)i(understands)0 5091 y(that)37 b(there)f(is)f(no)h(w)m(arran)m(t)
m(y)h(for)f(this)f(free)i(soft)m(w)m(are.)59 b(If)36
b(the)g(soft)m(w)m(are)i(is)d(mo)s(di\014ed)f(b)m(y)i(someone)h(else)f
(and)0 5215 y(passed)j(on,)j(w)m(e)e(w)m(an)m(t)g(its)f(recipien)m(ts)g
(to)h(kno)m(w)f(that)i(what)e(they)h(ha)m(v)m(e)g(is)f(not)h(the)f
(original,)i(so)e(that)i(an)m(y)0 5340 y(problems)29
b(in)m(tro)s(duced)f(b)m(y)j(others)f(will)e(not)j(re\015ect)g(on)f
(the)g(original)f(authors')h(reputations.)p eop
%%Page: 2 4
2 3 bop 0 -116 a Fm(2)2965 b(User's)31 b(Guide)e(to)i
Fk(gperf)125 366 y Fm(The)e(precise)h(terms)g(and)g(conditions)f(for)h
(cop)m(ying,)h(distribution)26 b(and)k(mo)s(di\014cation)f(follo)m(w.)0
911 y Fi(TERMS)h(AND)g(CONDITIONS)49 1195 y Fm(1.)61
b(This)28 b(License)i(Agreemen)m(t)i(applies)c(to)j(an)m(y)g(program)f
(or)g(other)h(w)m(ork)f(whic)m(h)f(con)m(tains)h(a)h(notice)f(placed)
180 1320 y(b)m(y)k(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying)h(it)g
(ma)m(y)h(b)s(e)f(distributed)d(under)i(the)i(terms)f(of)h(this)e
(General)h(Public)180 1444 y(License.)53 b(The)34 b(\\Program",)k(b)s
(elo)m(w,)d(refers)f(to)i(an)m(y)f(suc)m(h)f(program)g(or)h(w)m(ork,)h
(and)e(a)h(\\w)m(ork)h(based)e(on)180 1569 y(the)d(Program")h(means)f
(either)g(the)h(Program)f(or)g(an)m(y)h(w)m(ork)f(con)m(taining)g(the)h
(Program)f(or)g(a)h(p)s(ortion)e(of)180 1693 y(it,)g(either)g(v)m
(erbatim)g(or)g(with)g(mo)s(di\014cations.)38 b(Eac)m(h)31
b(licensee)f(is)g(addressed)f(as)i(\\y)m(ou".)49 1853
y(2.)61 b(Y)-8 b(ou)41 b(ma)m(y)g(cop)m(y)h(and)e(distribute)e(v)m
(erbatim)i(copies)h(of)g(the)g(Program's)f(source)h(co)s(de)g(as)g(y)m
(ou)g(receiv)m(e)180 1978 y(it,)36 b(in)e(an)m(y)h(medium,)g(pro)m
(vided)f(that)h(y)m(ou)h(conspicuously)d(and)h(appropriately)g(publish)
d(on)k(eac)m(h)h(cop)m(y)180 2102 y(an)h(appropriate)g(cop)m(yrigh)m(t)
g(notice)h(and)f(disclaimer)e(of)i(w)m(arran)m(t)m(y;)42
b(k)m(eep)c(in)m(tact)g(all)e(the)i(notices)f(that)180
2227 y(refer)d(to)i(this)e(General)g(Public)f(License)h(and)g(to)i(the)
f(absence)g(of)g(an)m(y)g(w)m(arran)m(t)m(y;)j(and)c(giv)m(e)i(an)m(y)f
(other)180 2351 y(recipien)m(ts)29 b(of)h(the)g(Program)g(a)g(cop)m(y)g
(of)g(this)f(General)h(Public)d(License)i(along)h(with)f(the)h
(Program.)40 b(Y)-8 b(ou)180 2476 y(ma)m(y)31 b(c)m(harge)h(a)e(fee)h
(for)f(the)h(ph)m(ysical)e(act)i(of)g(transferring)e(a)h(cop)m(y)-8
b(.)49 2636 y(3.)61 b(Y)-8 b(ou)45 b(ma)m(y)f(mo)s(dify)f(y)m(our)h
(cop)m(y)h(or)f(copies)g(of)g(the)g(Program)g(or)g(an)m(y)h(p)s(ortion)
e(of)h(it,)j(and)d(cop)m(y)h(and)180 2761 y(distribute)24
b(suc)m(h)i(mo)s(di\014cations)f(under)g(the)i(terms)f(of)h(P)m
(aragraph)g(1)g(ab)s(o)m(v)m(e,)h(pro)m(vided)e(that)h(y)m(ou)g(also)f
(do)180 2885 y(the)31 b(follo)m(wing:)255 3045 y Fl(\017)60
b Fm(cause)30 b(the)g(mo)s(di\014ed)e(\014les)h(to)h(carry)g(prominen)m
(t)e(notices)i(stating)g(that)g(y)m(ou)h(c)m(hanged)f(the)g(\014les)f
(and)360 3170 y(the)i(date)g(of)f(an)m(y)h(c)m(hange;)h(and)255
3330 y Fl(\017)60 b Fm(cause)43 b(the)g(whole)f(of)h(an)m(y)g(w)m(ork)g
(that)h(y)m(ou)f(distribute)d(or)j(publish,)f(that)h(in)f(whole)g(or)h
(in)e(part)360 3454 y(con)m(tains)g(the)f(Program)h(or)g(an)m(y)f(part)
h(thereof,)j(either)c(with)f(or)h(without)g(mo)s(di\014cations,)h(to)h
(b)s(e)360 3579 y(licensed)32 b(at)j(no)f(c)m(harge)h(to)g(all)d(third)
h(parties)g(under)f(the)i(terms)g(of)g(this)f(General)h(Public)d
(License)360 3703 y(\(except)g(that)f(y)m(ou)g(ma)m(y)g(c)m(ho)s(ose)g
(to)g(gran)m(t)g(w)m(arran)m(t)m(y)h(protection)f(to)g(some)g(or)f(all)
f(third)g(parties,)h(at)360 3828 y(y)m(our)h(option\).)255
3988 y Fl(\017)60 b Fm(If)24 b(the)g(mo)s(di\014ed)e(program)i
(normally)f(reads)h(commands)g(in)m(teractiv)m(ely)g(when)f(run,)i(y)m
(ou)f(m)m(ust)g(cause)360 4113 y(it,)34 b(when)f(started)i(running)c
(for)i(suc)m(h)h(in)m(teractiv)m(e)g(use)g(in)e(the)i(simplest)e(and)h
(most)i(usual)d(w)m(a)m(y)-8 b(,)36 b(to)360 4237 y(prin)m(t)29
b(or)h(displa)m(y)e(an)i(announcemen)m(t)g(including)c(an)k
(appropriate)f(cop)m(yrigh)m(t)i(notice)f(and)f(a)i(notice)360
4362 y(that)c(there)f(is)f(no)g(w)m(arran)m(t)m(y)i(\(or)f(else,)h(sa)m
(ying)f(that)h(y)m(ou)f(pro)m(vide)f(a)h(w)m(arran)m(t)m(y\))h(and)f
(that)g(users)f(ma)m(y)360 4486 y(redistribute)j(the)j(program)g(under)
e(these)i(conditions,)f(and)g(telling)f(the)i(user)g(ho)m(w)f(to)i
(view)e(a)h(cop)m(y)360 4611 y(of)g(this)e(General)h(Public)e(License.)
255 4771 y Fl(\017)60 b Fm(Y)-8 b(ou)38 b(ma)m(y)g(c)m(harge)h(a)f(fee)
g(for)f(the)h(ph)m(ysical)e(act)j(of)e(transferring)f(a)i(cop)m(y)-8
b(,)41 b(and)c(y)m(ou)h(ma)m(y)g(at)g(y)m(our)360 4895
y(option)30 b(o\013er)h(w)m(arran)m(t)m(y)g(protection)g(in)e(exc)m
(hange)j(for)e(a)g(fee.)180 5091 y(Mere)22 b(aggregation)h(of)f
(another)g(indep)s(enden)m(t)d(w)m(ork)j(with)e(the)h(Program)h(\(or)g
(its)f(deriv)-5 b(ativ)m(e\))21 b(on)g(a)h(v)m(olume)180
5215 y(of)36 b(a)g(storage)h(or)f(distribution)c(medium)h(do)s(es)j
(not)g(bring)e(the)h(other)h(w)m(ork)g(under)e(the)i(scop)s(e)g(of)f
(these)180 5340 y(terms.)p eop
%%Page: 3 5
3 4 bop 0 -116 a Fm(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2352
b(3)49 366 y(4.)61 b(Y)-8 b(ou)33 b(ma)m(y)h(cop)m(y)f(and)g
(distribute)d(the)j(Program)g(\(or)g(a)g(p)s(ortion)f(or)h(deriv)-5
b(ativ)m(e)32 b(of)h(it,)g(under)f(P)m(aragraph)180 491
y(2\))j(in)e(ob)5 b(ject)36 b(co)s(de)e(or)h(executable)g(form)e(under)
g(the)i(terms)f(of)h(P)m(aragraphs)f(1)h(and)f(2)h(ab)s(o)m(v)m(e)g
(pro)m(vided)180 616 y(that)c(y)m(ou)g(also)f(do)g(one)h(of)f(the)h
(follo)m(wing:)255 762 y Fl(\017)60 b Fm(accompan)m(y)28
b(it)d(with)g(the)i(complete)f(corresp)s(onding)e(mac)m(hine-readable)i
(source)h(co)s(de,)g(whic)m(h)e(m)m(ust)360 887 y(b)s(e)30
b(distributed)d(under)i(the)i(terms)f(of)g(P)m(aragraphs)h(1)g(and)e(2)
i(ab)s(o)m(v)m(e;)h(or,)255 1033 y Fl(\017)60 b Fm(accompan)m(y)36
b(it)d(with)g(a)i(written)f(o\013er,)i(v)-5 b(alid)32
b(for)i(at)h(least)g(three)f(y)m(ears,)j(to)e(giv)m(e)g(an)m(y)f(third)
f(part)m(y)360 1158 y(free)25 b(\(except)h(for)f(a)g(nominal)e(c)m
(harge)j(for)f(the)g(cost)h(of)f(distribution\))d(a)j(complete)g(mac)m
(hine-readable)360 1282 y(cop)m(y)k(of)g(the)f(corresp)s(onding)f
(source)i(co)s(de,)g(to)g(b)s(e)f(distributed)d(under)i(the)i(terms)f
(of)h(P)m(aragraphs)g(1)360 1407 y(and)h(2)h(ab)s(o)m(v)m(e;)g(or,)255
1553 y Fl(\017)60 b Fm(accompan)m(y)25 b(it)f(with)f(the)h(information)
e(y)m(ou)j(receiv)m(ed)f(as)h(to)g(where)e(the)h(corresp)s(onding)e
(source)j(co)s(de)360 1678 y(ma)m(y)38 b(b)s(e)f(obtained.)61
b(\(This)36 b(alternativ)m(e)h(is)g(allo)m(w)m(ed)g(only)f(for)h
(noncommercial)g(distribution)d(and)360 1802 y(only)29
b(if)h(y)m(ou)h(receiv)m(ed)f(the)h(program)f(in)f(ob)5
b(ject)31 b(co)s(de)g(or)f(executable)h(form)f(alone.\))180
1971 y(Source)41 b(co)s(de)g(for)g(a)h(w)m(ork)f(means)g(the)g
(preferred)f(form)h(of)g(the)g(w)m(ork)h(for)e(making)h(mo)s
(di\014cations)e(to)180 2095 y(it.)54 b(F)-8 b(or)35
b(an)g(executable)h(\014le,)f(complete)g(source)g(co)s(de)g(means)g
(all)f(the)h(source)g(co)s(de)g(for)g(all)e(mo)s(dules)g(it)180
2220 y(con)m(tains;)39 b(but,)e(as)f(a)g(sp)s(ecial)f(exception,)i(it)f
(need)f(not)h(include)e(source)i(co)s(de)g(for)g(mo)s(dules)e(whic)m(h)
h(are)180 2344 y(standard)c(libraries)d(that)k(accompan)m(y)h(the)f(op)
s(erating)e(system)i(on)f(whic)m(h)f(the)i(executable)g(\014le)f(runs,)
f(or)180 2469 y(for)g(standard)g(header)g(\014les)f(or)i(de\014nitions)
c(\014les)j(that)h(accompan)m(y)g(that)g(op)s(erating)f(system.)49
2615 y(5.)61 b(Y)-8 b(ou)32 b(ma)m(y)h(not)f(cop)m(y)-8
b(,)33 b(mo)s(dify)-8 b(,)31 b(sublicense,)f(distribute)g(or)h
(transfer)h(the)g(Program)f(except)i(as)f(expressly)180
2740 y(pro)m(vided)20 b(under)g(this)g(General)h(Public)e(License.)37
b(An)m(y)21 b(attempt)i(otherwise)d(to)i(cop)m(y)-8 b(,)25
b(mo)s(dify)-8 b(,)22 b(sublicense,)180 2864 y(distribute)k(or)j
(transfer)e(the)i(Program)g(is)e(v)m(oid,)i(and)f(will)e(automatically)
i(terminate)h(y)m(our)f(righ)m(ts)g(to)h(use)180 2989
y(the)34 b(Program)g(under)f(this)f(License.)51 b(Ho)m(w)m(ev)m(er,)37
b(parties)d(who)f(ha)m(v)m(e)i(receiv)m(ed)f(copies,)h(or)f(righ)m(ts)g
(to)g(use)180 3113 y(copies,)f(from)f(y)m(ou)h(under)e(this)g(General)i
(Public)d(License)i(will)e(not)j(ha)m(v)m(e)h(their)d(licenses)h
(terminated)g(so)180 3238 y(long)e(as)h(suc)m(h)f(parties)f(remain)h
(in)f(full)f(compliance.)49 3384 y(6.)61 b(By)32 b(cop)m(ying,)h
(distributing)28 b(or)k(mo)s(difying)e(the)i(Program)g(\(or)h(an)m(y)f
(w)m(ork)g(based)g(on)g(the)g(Program\))h(y)m(ou)180
3509 y(indicate)c(y)m(our)i(acceptance)h(of)f(this)e(license)h(to)h(do)
f(so,)h(and)f(all)f(its)h(terms)g(and)g(conditions.)49
3655 y(7.)61 b(Eac)m(h)37 b(time)f(y)m(ou)g(redistribute)e(the)i
(Program)g(\(or)h(an)m(y)f(w)m(ork)g(based)g(on)g(the)g(Program\),)j
(the)d(recipien)m(t)180 3780 y(automatically)j(receiv)m(es)i(a)e
(license)g(from)g(the)g(original)f(licensor)g(to)i(cop)m(y)-8
b(,)44 b(distribute)37 b(or)i(mo)s(dify)f(the)180 3904
y(Program)31 b(sub)5 b(ject)32 b(to)g(these)f(terms)h(and)e
(conditions.)42 b(Y)-8 b(ou)32 b(ma)m(y)g(not)f(imp)s(ose)f(an)m(y)i
(further)e(restrictions)180 4029 y(on)g(the)h(recipien)m(ts')e
(exercise)i(of)g(the)f(righ)m(ts)g(gran)m(ted)h(herein.)49
4175 y(8.)61 b(The)28 b(F)-8 b(ree)29 b(Soft)m(w)m(are)g(F)-8
b(oundation)28 b(ma)m(y)h(publish)c(revised)i(and/or)h(new)g(v)m
(ersions)f(of)i(the)f(General)g(Public)180 4300 y(License)33
b(from)f(time)h(to)g(time.)49 b(Suc)m(h)32 b(new)h(v)m(ersions)f(will)e
(b)s(e)j(similar)d(in)i(spirit)e(to)k(the)f(presen)m(t)g(v)m(ersion,)
180 4424 y(but)d(ma)m(y)h(di\013er)e(in)g(detail)g(to)i(address)f(new)g
(problems)e(or)j(concerns.)180 4571 y(Eac)m(h)44 b(v)m(ersion)f(is)f
(giv)m(en)h(a)h(distinguishing)39 b(v)m(ersion)k(n)m(um)m(b)s(er.)78
b(If)43 b(the)g(Program)h(sp)s(eci\014es)e(a)h(v)m(ersion)180
4695 y(n)m(um)m(b)s(er)e(of)i(the)f(license)g(whic)m(h)f(applies)f(to)j
(it)f(and)g(\\an)m(y)h(later)g(v)m(ersion",)i(y)m(ou)e(ha)m(v)m(e)g
(the)g(option)f(of)180 4820 y(follo)m(wing)31 b(the)i(terms)g(and)f
(conditions)f(either)h(of)h(that)g(v)m(ersion)f(or)h(of)f(an)m(y)h
(later)g(v)m(ersion)f(published)d(b)m(y)180 4944 y(the)c(F)-8
b(ree)27 b(Soft)m(w)m(are)f(F)-8 b(oundation.)39 b(If)25
b(the)g(Program)h(do)s(es)f(not)g(sp)s(ecify)f(a)i(v)m(ersion)f(n)m(um)
m(b)s(er)f(of)h(the)h(license,)180 5069 y(y)m(ou)31 b(ma)m(y)g(c)m(ho)s
(ose)g(an)m(y)g(v)m(ersion)f(ev)m(er)h(published)26 b(b)m(y)31
b(the)f(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation.)49
5215 y(9.)61 b(If)34 b(y)m(ou)h(wish)d(to)k(incorp)s(orate)e(parts)g
(of)g(the)h(Program)g(in)m(to)f(other)h(free)f(programs)g(whose)h
(distribution)180 5340 y(conditions)42 b(are)i(di\013eren)m(t,)j(write)
c(to)h(the)g(author)g(to)g(ask)g(for)f(p)s(ermission.)78
b(F)-8 b(or)44 b(soft)m(w)m(are)h(whic)m(h)e(is)p eop
%%Page: 4 6
4 5 bop 0 -116 a Fm(4)2965 b(User's)31 b(Guide)e(to)i
Fk(gperf)180 366 y Fm(cop)m(yrigh)m(ted)45 b(b)m(y)g(the)h(F)-8
b(ree)46 b(Soft)m(w)m(are)g(F)-8 b(oundation,)49 b(write)44
b(to)i(the)g(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8 b(oundation;)52
b(w)m(e)180 491 y(sometimes)26 b(mak)m(e)h(exceptions)f(for)f(this.)38
b(Our)25 b(decision)f(will)g(b)s(e)h(guided)f(b)m(y)i(the)g(t)m(w)m(o)h
(goals)f(of)g(preserving)180 616 y(the)i(free)h(status)f(of)g(all)f
(deriv)-5 b(ativ)m(es)28 b(of)g(our)g(free)g(soft)m(w)m(are)i(and)d(of)
i(promoting)e(the)i(sharing)d(and)i(reuse)g(of)180 740
y(soft)m(w)m(are)k(generally)-8 b(.)180 1064 y Fi(NO)30
b(W)-15 b(ARRANTY)4 1271 y Fm(10.)61 b(BECA)m(USE)41
b(THE)f(PR)m(OGRAM)i(IS)e(LICENSED)g(FREE)h(OF)g(CHAR)m(GE,)g(THERE)f
(IS)h(NO)f(W)-10 b(AR-)180 1396 y(RANTY)22 b(F)m(OR)h(THE)f(PR)m
(OGRAM,)i(TO)d(THE)h(EXTENT)g(PERMITTED)g(BY)h(APPLICABLE)e(LA)-10
b(W.)180 1520 y(EX)m(CEPT)46 b(WHEN)i(OTHER)-10 b(WISE)45
b(ST)-8 b(A)g(TED)47 b(IN)g(WRITING)g(THE)f(COPYRIGHT)h(HOLDERS)180
1645 y(AND/OR)21 b(OTHER)f(P)-8 b(AR)g(TIES)20 b(PR)m(O)m(VIDE)h(THE)f
(PR)m(OGRAM)h(\\AS)f(IS")g(WITHOUT)g(W)-10 b(ARRANTY)180
1770 y(OF)28 b(ANY)h(KIND,)g(EITHER)e(EXPRESSED)h(OR)f(IMPLIED,)i
(INCLUDING,)g(BUT)f(NOT)g(LIMITED)180 1894 y(TO,)46 b(THE)g(IMPLIED)g
(W)-10 b(ARRANTIES)46 b(OF)h(MER)m(CHANT)-8 b(ABILITY)47
b(AND)g(FITNESS)e(F)m(OR)i(A)180 2019 y(P)-8 b(AR)g(TICULAR)37
b(PURPOSE.)f(THE)h(ENTIRE)f(RISK)g(AS)h(TO)f(THE)h(QUALITY)g(AND)h
(PERF)m(OR-)180 2143 y(MANCE)i(OF)f(THE)g(PR)m(OGRAM)h(IS)e(WITH)i
(YOU.)f(SHOULD)h(THE)f(PR)m(OGRAM)h(PR)m(O)m(VE)f(DE-)180
2268 y(FECTIVE,)c(YOU)g(ASSUME)g(THE)g(COST)f(OF)i(ALL)f(NECESSAR)-8
b(Y)34 b(SER)-10 b(VICING,)35 b(REP)-8 b(AIR)35 b(OR)180
2392 y(CORRECTION.)4 2542 y(11.)61 b(IN)25 b(NO)g(EVENT)f(UNLESS)g
(REQUIRED)h(BY)g(APPLICABLE)g(LA)-10 b(W)25 b(OR)g(A)m(GREED)h(TO)e(IN)
h(WRIT-)180 2666 y(ING)i(WILL)g(ANY)g(COPYRIGHT)f(HOLDER,)h(OR)f(ANY)h
(OTHER)f(P)-8 b(AR)g(TY)27 b(WHO)g(MA)-8 b(Y)28 b(MODIFY)180
2791 y(AND/OR)34 b(REDISTRIBUTE)d(THE)i(PR)m(OGRAM)g(AS)f(PERMITTED)g
(ABO)m(VE,)i(BE)f(LIABLE)g(TO)180 2915 y(YOU)26 b(F)m(OR)g(D)m(AMA)m
(GES,)h(INCLUDING)f(ANY)g(GENERAL,)g(SPECIAL,)e(INCIDENT)-8
b(AL)26 b(OR)f(CON-)180 3040 y(SEQUENTIAL)36 b(D)m(AMA)m(GES)i(ARISING)
f(OUT)f(OF)h(THE)g(USE)f(OR)h(INABILITY)g(TO)f(USE)g(THE)180
3164 y(PR)m(OGRAM)j(\(INCLUDING)g(BUT)f(NOT)g(LIMITED)g(TO)g(LOSS)e(OF)
j(D)m(A)-8 b(T)g(A)40 b(OR)d(D)m(A)-8 b(T)g(A)40 b(BEING)180
3289 y(RENDERED)k(INA)m(CCURA)-8 b(TE)44 b(OR)f(LOSSES)f(SUST)-8
b(AINED)43 b(BY)i(YOU)e(OR)h(THIRD)f(P)-8 b(AR)g(TIES)180
3413 y(OR)28 b(A)h(F)-10 b(AILURE)29 b(OF)g(THE)f(PR)m(OGRAM)i(TO)e
(OPERA)-8 b(TE)28 b(WITH)h(ANY)g(OTHER)f(PR)m(OGRAMS\),)180
3538 y(EVEN)38 b(IF)f(SUCH)h(HOLDER)f(OR)g(OTHER)g(P)-8
b(AR)g(TY)38 b(HAS)g(BEEN)g(AD)m(VISED)g(OF)g(THE)f(POSSI-)180
3662 y(BILITY)30 b(OF)g(SUCH)g(D)m(AMA)m(GES.)0 4111
y Fi(END)h(OF)f(TERMS)f(AND)i(CONDITIONS)p eop
%%Page: 5 7
5 6 bop 0 -116 a Fm(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2352
b(5)0 366 y Fi(App)t(endix:)45 b(Ho)l(w)31 b(to)g(Apply)e(These)i(T)-11
b(erms)30 b(to)h(Y)-11 b(our)29 b(New)i(Programs)125
692 y Fm(If)g(y)m(ou)h(dev)m(elop)g(a)g(new)g(program,)g(and)f(y)m(ou)h
(w)m(an)m(t)h(it)f(to)g(b)s(e)g(of)g(the)g(greatest)h(p)s(ossible)d
(use)h(to)i(h)m(umanit)m(y)-8 b(,)0 816 y(the)28 b(b)s(est)g(w)m(a)m(y)
h(to)f(ac)m(hiev)m(e)i(this)d(is)g(to)h(mak)m(e)h(it)f(free)g(soft)m(w)
m(are)h(whic)m(h)e(ev)m(ery)m(one)j(can)e(redistribute)d(and)j(c)m
(hange)0 941 y(under)h(these)i(terms.)125 1266 y(T)-8
b(o)28 b(do)h(so,)g(attac)m(h)h(the)f(follo)m(wing)e(notices)h(to)h
(the)g(program.)40 b(It)28 b(is)f(safest)i(to)h(attac)m(h)g(them)e(to)h
(the)g(start)g(of)0 1390 y(eac)m(h)34 b(source)g(\014le)e(to)i(most)f
(e\013ectiv)m(ely)h(con)m(v)m(ey)h(the)f(exclusion)d(of)j(w)m(arran)m
(t)m(y;)h(and)e(eac)m(h)h(\014le)f(should)e(ha)m(v)m(e)j(at)0
1515 y(least)d(the)f(\\cop)m(yrigh)m(t")i(line)d(and)g(a)i(p)s(oin)m
(ter)e(to)j(where)d(the)i(full)d(notice)j(is)e(found.)240
1819 y Fh(one)i(line)d(to)j(giv)m(e)g(the)g(program's)f(name)h(and)e(a)
i(brief)e(idea)h(of)g(what)h(it)f(do)s(es.)240 1923 y
Fk(Copyright)45 b(\(C\))i(19)p Fh(yy)103 b(name)30 b(of)h(author)240
2130 y Fk(This)47 b(program)e(is)j(free)e(software;)g(you)g(can)h
(redistribute)e(it)i(and/or)f(modify)240 2234 y(it)h(under)g(the)f
(terms)h(of)g(the)g(GNU)g(General)f(Public)g(License)g(as)h(published)e
(by)240 2338 y(the)i(Free)g(Software)e(Foundation;)g(either)h(version)g
(1,)h(or)g(\(at)g(your)g(option\))240 2442 y(any)g(later)f(version.)240
2649 y(This)h(program)e(is)j(distributed)c(in)k(the)e(hope)h(that)g(it)
g(will)g(be)g(useful,)240 2753 y(but)g(WITHOUT)f(ANY)h(WARRANTY;)e
(without)h(even)g(the)h(implied)f(warranty)g(of)240 2857
y(MERCHANTABILITY)e(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e(PURPOSE.)93
b(See)47 b(the)240 2961 y(GNU)g(General)f(Public)g(License)g(for)h
(more)f(details.)240 3168 y(You)h(should)f(have)h(received)e(a)j(copy)e
(of)h(the)g(GNU)g(General)f(Public)g(License)240 3272
y(along)g(with)h(this)g(program;)e(if)i(not,)g(write)f(to)i(the)e(Free)
h(Software)240 3376 y(Foundation,)e(Inc.,)h(59)h(Temple)f(Place)h(-)g
(Suite)g(330,)f(Boston,)g(MA)h(02111-1307,)e(USA.)125
3701 y Fm(Also)30 b(add)f(information)g(on)h(ho)m(w)h(to)g(con)m(tact)i
(y)m(ou)d(b)m(y)g(electronic)h(and)f(pap)s(er)f(mail.)125
4026 y(If)19 b(the)i(program)f(is)g(in)m(teractiv)m(e,)j(mak)m(e)e(it)f
(output)g(a)h(short)f(notice)h(lik)m(e)e(this)h(when)f(it)h(starts)h
(in)e(an)h(in)m(teractiv)m(e)0 4150 y(mo)s(de:)240 4455
y Fk(Gnomovision)45 b(version)h(69,)g(Copyright)g(\(C\))h(19)p
Fh(yy)55 b(name)30 b(of)g(author)240 4558 y Fk(Gnomovision)45
b(comes)h(with)h(ABSOLUTELY)e(NO)i(WARRANTY;)e(for)i(details)f(type)h
(`show)f(w'.)240 4662 y(This)h(is)g(free)f(software,)g(and)h(you)g(are)
f(welcome)g(to)h(redistribute)e(it)240 4766 y(under)h(certain)g
(conditions;)f(type)i(`show)f(c')h(for)g(details.)125
5091 y Fm(The)36 b(h)m(yp)s(othetical)h(commands)g(`sho)m(w)g(w')h(and)
e(`sho)m(w)i(c')g(should)d(sho)m(w)i(the)h(appropriate)e(parts)h(of)h
(the)0 5215 y(General)21 b(Public)e(License.)37 b(Of)21
b(course,)i(the)f(commands)f(y)m(ou)g(use)g(ma)m(y)h(b)s(e)e(called)h
(something)f(other)i(than)f(`sho)m(w)0 5340 y(w')30 b(and)g(`sho)m(w)g
(c';)i(they)e(could)g(ev)m(en)h(b)s(e)e(mouse-clic)m(ks)i(or)f(men)m(u)
g(items|whatev)m(er)h(suits)e(y)m(our)h(program.)p eop
%%Page: 6 8
6 7 bop 0 -116 a Fm(6)2965 b(User's)31 b(Guide)e(to)i
Fk(gperf)125 366 y Fm(Y)-8 b(ou)28 b(should)f(also)h(get)h(y)m(our)f
(emplo)m(y)m(er)h(\(if)e(y)m(ou)i(w)m(ork)f(as)h(a)g(programmer\))f(or)
g(y)m(our)g(sc)m(ho)s(ol,)h(if)e(an)m(y)-8 b(,)30 b(to)f(sign)0
491 y(a)i(\\cop)m(yrigh)m(t)g(disclaimer")d(for)j(the)f(program,)h(if)e
(necessary)-8 b(.)41 b(Here)31 b(a)g(sample;)f(alter)g(the)h(names:)240
744 y Fk(Yoyodyne,)45 b(Inc.,)i(hereby)f(disclaims)f(all)i(copyright)e
(interest)h(in)h(the)240 848 y(program)f(`Gnomovision')e(\(a)j(program)
f(to)h(direct)f(compilers)g(to)h(make)f(passes)240 952
y(at)h(assemblers\))e(written)h(by)h(James)f(Hacker.)240
1159 y Fh(signature)30 b(of)g(T)m(y)h(Co)s(on)p Fk(,)47
b(1)g(April)g(1989)240 1263 y(Ty)g(Coon,)g(President)e(of)i(Vice)125
1537 y Fm(That's)30 b(all)f(there)i(is)e(to)i(it!)p eop
%%Page: 7 9
7 8 bop 0 -116 a Fm(Con)m(tributors)29 b(to)i(GNU)g Fk(gperf)e
Fm(Utilit)m(y)2437 b(7)0 366 y Fj(Con)l(tributors)28
b(to)h(GNU)i Fg(gperf)e Fj(Utilit)l(y)75 740 y Fl(\017)60
b Fm(The)36 b(GNU)h Fk(gperf)e Fm(p)s(erfect)h(hash)f(function)g
(generator)j(utilit)m(y)c(w)m(as)j(originally)d(written)h(in)g(GNU)i(C)
p Fk(++)180 865 y Fm(b)m(y)h(Douglas)h(C.)f(Sc)m(hmidt.)62
b(It)39 b(is)e(no)m(w)h(also)g(a)m(v)-5 b(ailable)38
b(in)f(a)h(highly-p)s(ortable)e(\\old-st)m(yle")i(C)g(v)m(ersion.)180
989 y(The)g(general)h(idea)g(for)f(the)h(p)s(erfect)g(hash)f(function)g
(generator)i(w)m(as)f(inspired)d(b)m(y)i(Keith)g(Bostic's)i(al-)180
1114 y(gorithm)e(written)g(in)g(C,)g(and)h(distributed)c(to)40
b(net.sources)f(around)f(1984.)68 b(The)39 b(curren)m(t)f(program)h(is)
180 1238 y(a)34 b(hea)m(vily)f(mo)s(di\014ed,)f(enhanced,)i(and)f
(extended)g(implemen)m(tation)f(of)i(Keith's)f(basic)g(idea,)h(created)
g(at)180 1363 y(the)41 b(Univ)m(ersit)m(y)g(of)g(California,)h(Irvine.)
72 b(Bugs,)45 b(patc)m(hes,)g(and)c(suggestions)g(should)e(b)s(e)i(rep)
s(orted)f(to)180 1487 y Fk(<bug-gnu-utils@gnu.org>)24
b Fm(and)30 b Fk(<schmidt@ics.uci.edu>)p Fm(.)75 1637
y Fl(\017)60 b Fm(Sp)s(ecial)24 b(thanks)i(is)f(extended)i(to)g(Mic)m
(hael)f(Tiemann)e(and)i(Doug)h(Lea,)h(for)e(pro)m(viding)e(a)j(useful)d
(compiler,)180 1761 y(and)30 b(for)g(giving)f(me)i(a)f(forum)g(to)h
(exhibit)d(m)m(y)j(creation.)180 1911 y(In)23 b(addition,)h(Adam)f(de)h
(Bo)s(or)g(and)f(Nels)h(Olson)e(pro)m(vided)g(man)m(y)i(tips)f(and)g
(insigh)m(ts)f(that)j(greatly)f(help)s(ed)180 2035 y(impro)m(v)m(e)30
b(the)h(qualit)m(y)e(and)h(functionalit)m(y)f(of)h Fk(gperf)p
Fm(.)p eop
%%Page: 8 10
8 9 bop 0 -116 a Fm(8)2965 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 9 11
9 10 bop 0 -116 a Fm(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2891
b(9)0 366 y Fj(1)80 b(In)l(tro)t(duction)125 740 y Fk(gperf)36
b Fm(is)g(a)j(p)s(erfect)e(hash)g(function)f(generator)j(written)e(in)f
(C)p Fk(++)p Fm(.)62 b(It)38 b(transforms)f(an)g Fh(n)g
Fm(elemen)m(t)h(user-)0 865 y(sp)s(eci\014ed)28 b(k)m(eyw)m(ord)h(set)h
Fh(W)41 b Fm(in)m(to)29 b(a)h(p)s(erfect)f(hash)g(function)f
Fh(F)p Fm(.)h Fh(F)36 b Fm(uniquely)27 b(maps)i(k)m(eyw)m(ords)g(in)f
Fh(W)41 b Fm(on)m(to)31 b(the)0 989 y(range)i(0..)p Fh(k)p
Fm(,)h(where)d Fh(k)i Fk(>)p Fh(=)e(n)p Fm(.)46 b(If)32
b Fh(k)g(=)g(n)g Fm(then)g Fh(F)39 b Fm(is)31 b(a)i Fh(minimal)g
Fm(p)s(erfect)f(hash)g(function.)45 b Fk(gperf)31 b Fm(generates)j(a)0
1114 y(0..)p Fh(k)41 b Fm(elemen)m(t)35 b(static)g(lo)s(okup)e(table)i
(and)f(a)h(pair)e(of)i(C)f(functions.)52 b(These)34 b(functions)f
(determine)h(whether)g(a)0 1238 y(giv)m(en)c(c)m(haracter)i(string)e
Fh(s)k Fm(o)s(ccurs)c(in)f Fh(W)p Fm(,)i(using)e(at)i(most)f(one)h
(prob)s(e)e(in)m(to)i(the)f(lo)s(okup)f(table.)125 1512
y Fk(gperf)i Fm(curren)m(tly)i(generates)h(the)g(reserv)m(ed)f(k)m(eyw)
m(ord)h(recognizer)f(for)g(lexical)g(analyzers)g(in)f(sev)m(eral)h
(pro-)0 1637 y(duction)28 b(and)g(researc)m(h)i(compilers)e(and)g
(language)i(pro)s(cessing)d(to)s(ols,)j(including)25
b(GNU)30 b(C,)f(GNU)h(C)p Fk(++)p Fm(,)e(GNU)0 1761 y(P)m(ascal,)39
b(GNU)e(Mo)s(dula)f(3,)j(and)d(GNU)h(inden)m(t.)58 b(Complete)37
b(C)p Fk(++)e Fm(source)i(co)s(de)g(for)f Fk(gperf)g
Fm(is)f(a)m(v)-5 b(ailable)36 b(via)0 1886 y(anon)m(ymous)d(ftp)h(from)
f Fk(ics.uci.edu)d Fm(and)j Fk(ftp.santafe.edu)p Fm(.)46
b Fk(gperf)33 b Fm(w)m(as)g(also)h(distributed)d(along)i(with)0
2010 y(the)h(GNU)g(libg)p Fk(++)d Fm(library)h(for)h(sev)m(eral)h(y)m
(ears.)51 b(A)34 b(highly)d(p)s(ortable,)j(functionally)d(equiv)-5
b(alen)m(t)33 b(K&R)g(C)g(v)m(er-)0 2135 y(sion)39 b(of)h
Fk(gperf)e Fm(is)h(arc)m(hiv)m(ed)h(in)f(comp.sources.unix,)i(v)m
(olume)f(20.)70 b(Finally)-8 b(,)41 b(a)f(pap)s(er)f(describing)e
Fk(gperf)p Fm('s)0 2259 y(design)f(and)g(implemen)m(tation)g(in)f
(greater)j(detail)e(is)g(a)m(v)-5 b(ailable)36 b(in)g(the)h(Second)f
(USENIX)h(C)p Fk(++)f Fm(Conference)0 2384 y(pro)s(ceedings.)p
eop
%%Page: 10 12
10 11 bop 0 -116 a Fm(10)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 11 13
11 12 bop 0 -116 a Fm(Chapter)30 b(2:)41 b(Static)31
b(searc)m(h)g(structures)e(and)h(GNU)h Fk(gperf)1725
b Fm(11)0 366 y Fj(2)80 b(Static)31 b(searc)l(h)e(structures)e(and)k
(GNU)f Fg(gperf)125 768 y Fm(A)j Fh(static)h(searc)m(h)f(structure)38
b Fm(is)32 b(an)i(Abstract)f(Data)i(T)m(yp)s(e)e(with)f(certain)h
(fundamen)m(tal)f(op)s(erations,)h(e.g.,)0 892 y Fh(initialize)p
Fm(,)c Fh(insert)p Fm(,)h(and)g Fh(retriev)m(e)p Fm(.)43
b(Conceptually)-8 b(,)30 b(all)g(insertions)f(o)s(ccur)i(b)s(efore)f
(an)m(y)i(retriev)-5 b(als.)41 b(In)30 b(practice,)0
1017 y Fk(gperf)44 b Fm(generates)i(a)f Fk(static)f Fm(arra)m(y)h(con)m
(taining)g(searc)m(h)g(set)h(k)m(eyw)m(ords)f(and)g(an)m(y)g(asso)s
(ciated)g(attributes)0 1142 y(sp)s(eci\014ed)38 b(b)m(y)i(the)f(user.)
68 b(Th)m(us,)42 b(there)d(is)g(essen)m(tially)g(no)g(execution-time)h
(cost)h(for)f(the)f(insertions.)67 b(It)40 b(is)0 1266
y(a)e(useful)d(data)j(structure)f(for)g(represen)m(ting)f
Fh(static)i(searc)m(h)g(sets)p Fm(.)62 b(Static)37 b(searc)m(h)h(sets)g
(o)s(ccur)f(frequen)m(tly)f(in)0 1391 y(soft)m(w)m(are)28
b(system)g(applications.)37 b(T)m(ypical)26 b(static)i(searc)m(h)f
(sets)h(include)c(compiler)i(reserv)m(ed)h(w)m(ords,)g(assem)m(bler)0
1515 y(instruction)22 b(op)s(co)s(des,)j(and)e(built-in)e(shell)h(in)m
(terpreter)h(commands.)38 b(Searc)m(h)24 b(set)h(mem)m(b)s(ers,)f
(called)f Fh(k)m(eyw)m(ords)p Fm(,)0 1640 y(are)f(inserted)e(in)m(to)h
(the)g(structure)g(only)g(once,)j(usually)19 b(during)g(program)i
(initialization,)f(and)h(are)g(not)h(generally)0 1764
y(mo)s(di\014ed)28 b(at)j(run-time.)125 2044 y(Numerous)e(static)i
(searc)m(h)g(structure)f(implemen)m(tations)f(exist,)i(e.g.,)h(arra)m
(ys,)f(link)m(ed)d(lists,)i(binary)e(searc)m(h)0 2168
y(trees,)45 b(digital)c(searc)m(h)h(tries,)i(and)e(hash)f(tables.)74
b(Di\013eren)m(t)43 b(approac)m(hes)f(o\013er)g(trade-o\013s)h(b)s(et)m
(w)m(een)f(space)0 2293 y(utilization)36 b(and)h(searc)m(h)i(time)e
(e\016ciency)-8 b(.)64 b(F)-8 b(or)39 b(example,)h(an)e
Fh(n)f Fm(elemen)m(t)h(sorted)g(arra)m(y)h(is)e(space)h(e\016cien)m(t,)
0 2417 y(though)24 b(the)g(a)m(v)m(erage-case)k(time)c(complexit)m(y)g
(for)g(retriev)-5 b(al)24 b(op)s(erations)f(using)g(binary)f(searc)m(h)
j(is)e(prop)s(ortional)0 2542 y(to)34 b(log)f Fh(n)p
Fm(.)48 b(Con)m(v)m(ersely)-8 b(,)34 b(hash)f(table)g(implemen)m
(tations)e(often)j(lo)s(cate)f(a)h(table)f(en)m(try)g(in)f(constan)m(t)
i(time,)g(but)0 2666 y(t)m(ypically)29 b(imp)s(ose)g(additional)g
(memory)h(o)m(v)m(erhead)h(and)f(exhibit)f(p)s(o)s(or)g(w)m(orst)i
(case)g(p)s(erformance.)125 2946 y Fh(Minimal)23 b(p)s(erfect)i(hash)g
(functions)i Fm(pro)m(vide)e(an)g(optimal)g(solution)f(for)h(a)h
(particular)d(class)j(of)f(static)h(searc)m(h)0 3071
y(sets.)41 b(A)31 b(minimal)c(p)s(erfect)j(hash)g(function)f(is)h
(de\014ned)f(b)m(y)h(t)m(w)m(o)i(prop)s(erties:)75 3350
y Fl(\017)60 b Fm(It)25 b(allo)m(ws)e(k)m(eyw)m(ord)i(recognition)f(in)
g(a)g(static)i(searc)m(h)f(set)g(using)e(at)i(most)g
Fh(one)30 b Fm(prob)s(e)23 b(in)m(to)h(the)h(hash)f(table.)180
3475 y(This)29 b(represen)m(ts)h(the)g(\\p)s(erfect")i(prop)s(ert)m(y)
-8 b(.)75 3630 y Fl(\017)60 b Fm(The)31 b(actual)h(memory)f(allo)s
(cated)g(to)h(store)g(the)g(k)m(eyw)m(ords)g(is)e(precisely)g(large)i
(enough)f(for)g(the)g(k)m(eyw)m(ord)180 3754 y(set,)g(and)f
Fh(no)g(larger)p Fm(.)41 b(This)28 b(is)i(the)g(\\minimal")f(prop)s
(ert)m(y)-8 b(.)125 4064 y(F)g(or)22 b(most)g(applications)e(it)i(is)e
(far)i(easier)g(to)g(generate)h Fh(p)s(erfect)h Fm(hash)d(functions)g
(than)g Fh(minimal)e(p)s(erfect)24 b Fm(hash)0 4189 y(functions.)56
b(Moreo)m(v)m(er,)40 b(non-minimal)33 b(p)s(erfect)j(hash)f(functions)f
(frequen)m(tly)h(execute)j(faster)e(than)g(minimal)0
4313 y(ones)43 b(in)e(practice.)77 b(This)41 b(phenomena)h(o)s(ccurs)g
(since)g(searc)m(hing)g(a)h(sparse)f(k)m(eyw)m(ord)h(table)g(increases)
f(the)0 4438 y(probabilit)m(y)19 b(of)i(lo)s(cating)g(a)h(\\n)m(ull")e
(en)m(try)-8 b(,)25 b(thereb)m(y)c(reducing)f(string)g(comparisons.)37
b Fk(gperf)p Fm('s)20 b(default)h(b)s(eha)m(vior)0 4562
y(generates)38 b Fh(near-minimal)g Fm(p)s(erfect)f(hash)f(functions)f
(for)i(k)m(eyw)m(ord)g(sets.)60 b(Ho)m(w)m(ev)m(er,)41
b Fk(gperf)35 b Fm(pro)m(vides)h(man)m(y)0 4687 y(options)30
b(that)h(p)s(ermit)d(user)i(con)m(trol)h(o)m(v)m(er)h(the)e(degree)h
(of)g(minimalit)m(y)c(and)j(p)s(erfection.)125 4966 y(Static)23
b(searc)m(h)g(sets)h(often)f(exhibit)e(relativ)m(e)i(stabilit)m(y)f(o)m
(v)m(er)i(time.)38 b(F)-8 b(or)24 b(example,)g(Ada's)f(63)h(reserv)m
(ed)f(w)m(ords)0 5091 y(ha)m(v)m(e)35 b(remained)d(constan)m(t)j(for)e
(nearly)f(a)i(decade.)51 b(It)33 b(is)g(therefore)g(frequen)m(tly)g(w)m
(orth)m(while)f(to)i(exp)s(end)e(con-)0 5215 y(certed)23
b(e\013ort)g(building)18 b(an)k(optimal)f(searc)m(h)h(structure)g
Fh(once)p Fm(,)j(if)c(it)g(subsequen)m(tly)g(receiv)m(es)i(hea)m(vy)f
(use)g(m)m(ultiple)0 5340 y(times.)55 b Fk(gperf)34 b
Fm(remo)m(v)m(es)i(the)g(drudgery)d(asso)s(ciated)j(with)e
(constructing)h(time-)g(and)g(space-e\016cien)m(t)h(searc)m(h)p
eop
%%Page: 12 14
12 13 bop 0 -116 a Fm(12)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)0 366 y Fm(structures)37 b(b)m(y)h(hand.)61
b(It)38 b(has)f(pro)m(v)m(en)h(a)g(useful)e(and)h(practical)g(to)s(ol)h
(for)f(serious)g(programming)f(pro)5 b(jects.)0 491 y(Output)27
b(from)i Fk(gperf)e Fm(is)g(curren)m(tly)h(used)g(in)f(sev)m(eral)i
(pro)s(duction)d(and)i(researc)m(h)i(compilers,)d(including)e(GNU)0
616 y(C,)39 b(GNU)h(C)p Fk(++)p Fm(,)h(GNU)f(P)m(ascal,)i(and)d(GNU)h
(Mo)s(dula)e(3.)68 b(The)38 b(latter)i(t)m(w)m(o)g(compilers)e(are)i
(not)f(y)m(et)i(part)e(of)0 740 y(the)28 b(o\016cial)g(GNU)g
(distribution.)36 b(Eac)m(h)29 b(compiler)d(utilizes)g
Fk(gperf)h Fm(to)i(automatically)e(generate)j(static)e(searc)m(h)0
865 y(structures)i(that)h(e\016cien)m(tly)f(iden)m(tify)f(their)g(resp)
s(ectiv)m(e)i(reserv)m(ed)f(k)m(eyw)m(ords.)p eop
%%Page: 13 15
13 14 bop 0 -116 a Fm(Chapter)30 b(3:)41 b(High-Lev)m(el)30
b(Description)g(of)g(GNU)h Fk(gperf)1820 b Fm(13)0 366
y Fj(3)80 b(High-Lev)l(el)31 b(Description)e(of)h(GNU)h
Fg(gperf)125 849 y Fm(The)k(p)s(erfect)i(hash)e(function)h(generator)h
Fk(gperf)e Fm(reads)h(a)h(set)g(of)g(\\k)m(eyw)m(ords")g(from)f(a)h
Fh(k)m(ey\014le)42 b Fm(\(or)36 b(from)0 974 y(the)g(standard)g(input)e
(b)m(y)i(default\).)57 b(It)36 b(attempts)h(to)g(deriv)m(e)f(a)g(p)s
(erfect)g(hashing)f(function)g(that)h(recognizes)0 1099
y(a)g(mem)m(b)s(er)f(of)h(the)g Fh(static)h(k)m(eyw)m(ord)f(set)i
Fm(with)d(at)h(most)h(a)f(single)e(prob)s(e)h(in)m(to)h(the)g(lo)s
(okup)e(table.)57 b(If)35 b Fk(gperf)0 1223 y Fm(succeeds)g(in)e
(generating)h(suc)m(h)h(a)f(function)f(it)h(pro)s(duces)f(a)i(pair)e
(of)i(C)f(source)g(co)s(de)h(routines)e(that)i(p)s(erform)0
1348 y(hashing)h(and)g(table)h(lo)s(okup)f(recognition.)61
b(All)36 b(generated)i(C)f(co)s(de)g(is)g(directed)f(to)i(the)g
(standard)e(output.)0 1472 y(Command-line)24 b(options)i(describ)s(ed)e
(b)s(elo)m(w)h(allo)m(w)h(y)m(ou)h(to)g(mo)s(dify)d(the)j(input)d(and)i
(output)f(format)i(to)g Fk(gperf)p Fm(.)125 1768 y(By)h(default,)g
Fk(gperf)f Fm(attempts)j(to)f(pro)s(duce)e(time-e\016cien)m(t)i(co)s
(de,)g(with)e(less)g(emphasis)g(on)i(e\016cien)m(t)f(space)0
1892 y(utilization.)38 b(Ho)m(w)m(ev)m(er,)32 b(sev)m(eral)e(options)e
(exist)h(that)h(p)s(ermit)d(trading-o\013)i(execution)h(time)f(for)g
(storage)h(space)0 2017 y(and)23 b(vice)h(v)m(ersa.)39
b(In)23 b(particular,)g(expanding)g(the)g(generated)i(table)f(size)f
(pro)s(duces)g(a)h(sparse)f(searc)m(h)h(structure,)0
2142 y(generally)g(yielding)e(faster)k(searc)m(hes.)39
b(Con)m(v)m(ersely)-8 b(,)27 b(y)m(ou)e(can)g(direct)f
Fk(gperf)g Fm(to)h(utilize)e(a)j(C)e Fk(switch)f Fm(statemen)m(t)0
2266 y(sc)m(heme)28 b(that)f(minimizes)d(data)k(space)f(storage)i
(size.)39 b(F)-8 b(urthermore,)28 b(using)d(a)i(C)g Fk(switch)e
Fm(ma)m(y)i(actually)g(sp)s(eed)0 2391 y(up)i(the)i(k)m(eyw)m(ord)g
(retriev)-5 b(al)29 b(time)h(somewhat.)41 b(Actual)31
b(results)e(dep)s(end)g(on)h(y)m(our)g(C)g(compiler,)f(of)i(course.)125
2686 y(In)c(general,)h Fk(gperf)f Fm(assigns)g(v)-5 b(alues)27
b(to)h(the)g(c)m(haracters)i(it)d(is)g(using)f(for)i(hashing)e(un)m
(til)g(some)i(set)h(of)f(v)-5 b(alues)0 2811 y(giv)m(es)31
b(eac)m(h)g(k)m(eyw)m(ord)g(a)f(unique)f(v)-5 b(alue.)40
b(A)30 b(helpful)d(heuristic)i(is)g(that)i(the)f(larger)g(the)h(hash)e
(v)-5 b(alue)30 b(range,)h(the)0 2936 y(easier)i(it)g(is)f(for)g
Fk(gperf)g Fm(to)i(\014nd)d(and)i(generate)h(a)g(p)s(erfect)f(hash)f
(function.)47 b(Exp)s(erimen)m(tation)32 b(is)g(the)h(k)m(ey)h(to)0
3060 y(getting)d(the)g(most)f(from)g Fk(gperf)p Fm(.)0
3705 y Fi(3.1)68 b(Input)30 b(F)-11 b(ormat)31 b(to)f
Ff(gperf)125 4001 y Fm(Y)-8 b(ou)28 b(can)g(con)m(trol)g(the)g(input)d
(k)m(ey\014le)j(format)g(b)m(y)f(v)-5 b(arying)27 b(certain)h
(command-line)e(argumen)m(ts,)j(in)d(partic-)0 4126 y(ular)h(the)i(`)p
Fk(-t)p Fm(')g(option.)40 b(The)28 b(input's)f(app)s(earance)i(is)e
(similar)g(to)i(GNU)g(utilities)e Fk(flex)g Fm(and)h
Fk(bison)g Fm(\(or)h(UNIX)0 4250 y(utilities)f Fk(lex)h
Fm(and)h Fk(yacc)p Fm(\).)40 b(Here's)31 b(an)f(outline)f(of)i(the)f
(general)h(format:)240 4525 y Fk(declarations)240 4629
y(\045\045)240 4733 y(keywords)240 4837 y(\045\045)240
4940 y(functions)125 5215 y Fh(Unlik)m(e)f Fk(flex)25
b Fm(or)h Fk(bison)p Fm(,)g(all)f(sections)h(of)g Fk(gperf)p
Fm('s)f(input)f(are)j(optional.)38 b(The)26 b(follo)m(wing)e(sections)j
(describ)s(e)0 5340 y(the)k(input)d(format)j(for)f(eac)m(h)h(section.)p
eop
%%Page: 14 16
14 15 bop 0 -116 a Fm(14)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)0 366 y Fe(3.1.1)63 b Fd(struct)31 b Fe(Declarations)f(and)g
(C)g(Co)s(de)h(Inclusion)125 876 y Fm(The)f(k)m(eyw)m(ord)i(input)d
(\014le)h(optionally)g(con)m(tains)h(a)h(section)f(for)g(including)c
(arbitrary)j(C)h(declarations)g(and)0 1000 y(de\014nitions,)25
b(as)i(w)m(ell)f(as)h(pro)m(visions)e(for)h(pro)m(viding)f(a)i
(user-supplied)c Fk(struct)p Fm(.)38 b(If)26 b(the)h(`)p
Fk(-t)p Fm(')g(option)f Fh(is)k Fm(enabled,)0 1125 y(y)m(ou)39
b Fh(m)m(ust)h Fm(pro)m(vide)d(a)i(C)f Fk(struct)e Fm(as)j(the)f(last)g
(comp)s(onen)m(t)h(in)e(the)h(declaration)g(section)h(from)f(the)g(k)m
(ey\014le)0 1249 y(\014le.)50 b(The)34 b(\014rst)f(\014eld)f(in)h(this)
g(struct)g(m)m(ust)h(b)s(e)f(a)i Fk(char)29 b(*)k Fm(iden)m(ti\014er)f
(called)h(`)p Fk(name)p Fm(',)i(although)e(it)g(is)g(p)s(ossible)0
1374 y(to)e(mo)s(dify)e(this)g(\014eld's)g(name)h(with)g(the)g(`)p
Fk(-K)p Fm(')g(option)g(describ)s(ed)e(b)s(elo)m(w.)125
1883 y(Here)i(is)g(simple)e(example,)i(using)f(mon)m(ths)i(of)f(the)h
(y)m(ear)g(and)f(their)f(attributes)h(as)h(input:)240
2371 y Fk(struct)46 b(months)g({)i(char)e(*name;)g(int)h(number;)f(int)
h(days;)f(int)h(leap_days;)e(};)240 2475 y(\045\045)240
2578 y(january,)141 b(1,)47 b(31,)g(31)240 2682 y(february,)93
b(2,)47 b(28,)g(29)240 2786 y(march,)237 b(3,)47 b(31,)g(31)240
2890 y(april,)237 b(4,)47 b(30,)g(30)240 2994 y(may,)333
b(5,)47 b(31,)g(31)240 3097 y(june,)285 b(6,)47 b(30,)g(30)240
3201 y(july,)285 b(7,)47 b(31,)g(31)240 3305 y(august,)189
b(8,)47 b(31,)g(31)240 3409 y(september,)e(9,)i(30,)g(30)240
3512 y(october,)93 b(10,)47 b(31,)g(31)240 3616 y(november,)e(11,)i
(30,)g(30)240 3720 y(december,)e(12,)i(31,)g(31)125 4208
y Fm(Separating)41 b(the)i Fk(struct)d Fm(declaration)i(from)g(the)g
(list)f(of)i(k)m(ey)g(w)m(ords)f(and)f(other)i(\014elds)d(are)j(a)g
(pair)e(of)0 4333 y(consecutiv)m(e)c(p)s(ercen)m(t)f(signs,)h
Fk(\045\045)p Fm(,)g(app)s(earing)e(left)h(justi\014ed)e(in)h(the)h
(\014rst)g(column,)h(as)f(in)f(the)h(UNIX)h(utilit)m(y)0
4457 y Fk(lex)p Fm(.)125 4966 y(Using)21 b(a)h(syn)m(tax)h(similar)c
(to)k(GNU)g(utilities)c Fk(flex)i Fm(and)h Fk(bison)p
Fm(,)g(it)g(is)f(p)s(ossible)f(to)i(directly)f(include)f(C)i(source)0
5091 y(text)31 b(and)e(commen)m(ts)h(v)m(erbatim)g(in)m(to)f(the)h
(generated)h(output)e(\014le.)40 b(This)27 b(is)i(accomplished)g(b)m(y)
g(enclosing)g(the)0 5215 y(region)23 b(inside)d(left-justi\014ed)h
(surrounding)f Fk(\045{)p Fm(,)k Fk(\045})f Fm(pairs.)37
b(Here)23 b(is)f(an)h(input)e(fragmen)m(t)j(based)e(on)h(the)g
(previous)0 5340 y(example)30 b(that)h(illustrates)d(this)i(feature:)p
eop
%%Page: 15 17
15 16 bop 0 -116 a Fm(Chapter)30 b(3:)41 b(High-Lev)m(el)30
b(Description)g(of)g(GNU)h Fk(gperf)1820 b Fm(15)240
366 y Fk(\045{)240 470 y(#include)46 b(<assert.h>)240
574 y(/*)h(This)g(section)f(of)h(code)f(is)i(inserted)d(directly)h
(into)g(the)h(output.)f(*/)240 678 y(int)h(return_month_days)c
(\(struct)j(months)g(*months,)f(int)i(is_leap_year\);)240
782 y(\045})240 885 y(struct)f(months)g({)i(char)e(*name;)g(int)h
(number;)f(int)h(days;)f(int)h(leap_days;)e(};)240 989
y(\045\045)240 1093 y(january,)141 b(1,)47 b(31,)g(31)240
1197 y(february,)93 b(2,)47 b(28,)g(29)240 1300 y(march,)237
b(3,)47 b(31,)g(31)240 1404 y(...)125 1659 y Fm(It)25
b(is)g(p)s(ossible)e(to)j(omit)f(the)h(declaration)f(section)h(en)m
(tirely)-8 b(.)38 b(In)25 b(this)f(case)j(the)f(k)m(ey\014le)f(b)s
(egins)f(directly)g(with)0 1784 y(the)31 b(\014rst)e(k)m(eyw)m(ord)i
(line,)e(e.g.:)240 2039 y Fk(january,)141 b(1,)47 b(31,)g(31)240
2142 y(february,)93 b(2,)47 b(28,)g(29)240 2246 y(march,)237
b(3,)47 b(31,)g(31)240 2350 y(april,)237 b(4,)47 b(30,)g(30)240
2454 y(...)0 2876 y Fe(3.1.2)63 b(F)-10 b(ormat)29 b(for)h(Keyw)m(ord)g
(En)m(tries)125 3152 y Fm(The)g(second)h(k)m(ey\014le)h(format)f
(section)g(con)m(tains)h(lines)d(of)j(k)m(eyw)m(ords)f(and)g(an)m(y)g
(asso)s(ciated)h(attributes)f(y)m(ou)0 3276 y(migh)m(t)i(supply)-8
b(.)47 b(A)33 b(line)f(b)s(eginning)e(with)i(`)p Fk(#)p
Fm(')h(in)f(the)h(\014rst)g(column)f(is)g(considered)g(a)i(commen)m(t.)
50 b(Ev)m(erything)0 3401 y(follo)m(wing)29 b(the)h(`)p
Fk(#)p Fm(')h(is)e(ignored,)h(up)f(to)j(and)d(including)e(the)k(follo)m
(wing)e(newline.)125 3677 y(The)h(\014rst)g(\014eld)f(of)i(eac)m(h)h
(non-commen)m(t)g(line)d(is)h(alw)m(a)m(ys)h(the)g(k)m(ey)h(itself.)41
b(It)31 b(should)e(b)s(e)h(giv)m(en)h(as)g(a)g(simple)0
3801 y(name,)g(i.e.,)f(without)g(surrounding)c(string)k(quotation)g
(marks,)g(and)g(b)s(e)g(left-justi\014ed)e(\015ush)h(against)h(the)h
(\014rst)0 3926 y(column.)51 b(In)34 b(this)f(con)m(text,)k(a)e
(\\\014eld")f(is)f(considered)g(to)i(extend)f(up)g(to,)i(but)d(not)i
(include,)e(the)i(\014rst)e(blank,)0 4050 y(comma,)e(or)g(newline.)38
b(Here)31 b(is)f(a)g(simple)f(example)h(tak)m(en)h(from)f(a)h(partial)e
(list)g(of)i(C)f(reserv)m(ed)g(w)m(ords:)240 4305 y Fk(#)47
b(These)g(are)g(a)g(few)g(C)h(reserved)d(words,)h(see)h(the)g(c.gperf)f
(file)240 4409 y(#)h(for)g(a)h(complete)d(list)i(of)g(ANSI)g(C)g
(reserved)f(words.)240 4513 y(unsigned)240 4616 y(sizeof)240
4720 y(switch)240 4824 y(signed)240 4928 y(if)240 5032
y(default)240 5135 y(for)240 5239 y(while)240 5343 y(return)p
eop
%%Page: 16 18
16 17 bop 0 -116 a Fm(16)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)125 366 y Fm(Note)j(that)g(unlik)m(e)e Fk(flex)h
Fm(or)g Fk(bison)f Fm(the)i(\014rst)f Fk(\045\045)g Fm(mark)m(er)g(ma)m
(y)h(b)s(e)f(elided)f(if)g(the)i(declaration)f(section)h(is)0
491 y(empt)m(y)-8 b(.)125 772 y(Additional)39 b(\014elds)h(ma)m(y)i
(optionally)e(follo)m(w)g(the)i(leading)e(k)m(eyw)m(ord.)75
b(Fields)40 b(should)f(b)s(e)i(separated)h(b)m(y)0 896
y(commas,)h(and)c(terminate)h(at)h(the)f(end)f(of)h(line.)68
b(What)40 b(these)h(\014elds)d(mean)i(is)f(en)m(tirely)g(up)g(to)i(y)m
(ou;)k(they)0 1021 y(are)36 b(used)e(to)j(initialize)32
b(the)k(elemen)m(ts)g(of)f(the)h(user-de\014ned)e Fk(struct)g
Fm(pro)m(vided)g(b)m(y)h(y)m(ou)h(in)e(the)h(declaration)0
1145 y(section.)61 b(If)36 b(the)i(`)p Fk(-t)p Fm(')f(option)f(is)g
Fh(not)j Fm(enabled)d(these)i(\014elds)d(are)j(simply)c(ignored.)60
b(All)36 b(previous)f(examples)0 1270 y(except)c(the)g(last)f(one)h
(con)m(tain)g(k)m(eyw)m(ord)f(attributes.)0 1746 y Fe(3.1.3)63
b(Including)30 b(Additional)h(C)f(F)-10 b(unctions)125
2027 y Fm(The)30 b(optional)h(third)e(section)i(also)h(corresp)s(onds)e
(closely)g(with)g(con)m(v)m(en)m(tions)j(found)c(in)h
Fk(flex)g Fm(and)h Fk(bison)p Fm(.)0 2151 y(All)23 b(text)i(in)f(this)f
(section,)j(starting)e(at)h(the)g(\014nal)e Fk(\045\045)h
Fm(and)f(extending)h(to)h(the)g(end)f(of)g(the)h(input)d(\014le,)j(is)f
(included)0 2276 y(v)m(erbatim)k(in)m(to)h(the)g(generated)h(output)e
(\014le.)40 b(Naturally)-8 b(,)28 b(it)h(is)e(y)m(our)i(resp)s
(onsibilit)m(y)c(to)k(ensure)f(that)i(the)f(co)s(de)0
2400 y(con)m(tained)i(in)e(this)g(section)h(is)g(v)-5
b(alid)29 b(C.)0 2909 y Fi(3.2)68 b(Output)30 b(F)-11
b(ormat)31 b(for)f(Generated)i(C)e(Co)t(de)g(with)h Ff(gperf)125
3190 y Fm(Sev)m(eral)40 b(options)h(con)m(trol)g(ho)m(w)g(the)g
(generated)h(C)f(co)s(de)g(app)s(ears)f(on)h(the)g(standard)f(output.)
72 b(Tw)m(o)41 b(C)0 3315 y(function)d(are)i(generated.)70
b(They)39 b(are)h(called)e Fk(hash)h Fm(and)g Fk(in_word_set)p
Fm(,)g(although)g(y)m(ou)h(ma)m(y)g(mo)s(dify)e(the)0
3439 y(name)k(for)g Fk(in_word_set)d Fm(with)i(a)h(command-line)f
(option.)75 b(Both)43 b(functions)e(require)g(t)m(w)m(o)i(argumen)m
(ts,)j(a)0 3564 y(string,)g Fk(char)29 b(*)43 b Fh(str)p
Fm(,)j(and)c(a)i(length)f(parameter,)k Fk(int)42 b Fh(len)p
Fm(.)78 b(Their)41 b(default)i(function)f(protot)m(yp)s(es)h(are)h(as)0
3688 y(follo)m(ws:)240 3948 y Fk(static)i(int)h(hash)g(\(char)f(*str,)g
(int)h(len\);)240 4052 y(int)g(in_word_set)e(\(char)h(*str,)g(int)h
(len\);)125 4312 y Fm(By)e(default,)j(the)d(generated)h
Fk(hash)e Fm(function)f(returns)h(an)h(in)m(teger)g(v)-5
b(alue)45 b(created)h(b)m(y)f(adding)e Fh(len)h Fm(to)0
4437 y(sev)m(eral)c(user-sp)s(eci\014ed)e Fh(str)46 b
Fm(k)m(ey)40 b(p)s(ositions)e(indexed)g(in)m(to)i(an)g
Fh(asso)s(ciated)g(v)-5 b(alues)43 b Fm(table)c(stored)h(in)f(a)h(lo)s
(cal)0 4561 y(static)e(arra)m(y)-8 b(.)63 b(The)37 b(asso)s(ciated)h(v)
-5 b(alues)37 b(table)g(is)g(constructed)g(in)m(ternally)f(b)m(y)h
Fk(gperf)f Fm(and)h(later)h(output)f(as)0 4686 y(a)44
b(static)h(lo)s(cal)e(C)h(arra)m(y)g(called)f Fh(hash)p
1399 4686 28 4 v 32 w(table)5 b Fm(;)51 b(its)44 b(meaning)f(and)g
(prop)s(erties)g(are)h(describ)s(ed)e(b)s(elo)m(w.)81
b(See)0 4810 y(Chapter)32 b(7)h([Implemen)m(tation],)h(page)f(29.)49
b(The)33 b(relev)-5 b(an)m(t)33 b(k)m(ey)g(p)s(ositions)e(are)i(sp)s
(eci\014ed)e(via)i(the)g(`)p Fk(-k)p Fm(')f(option)0
4935 y(when)d(running)f Fk(gperf)p Fm(,)h(as)i(detailed)e(in)g(the)i
Fh(Options)i Fm(section)d(b)s(elo)m(w.)40 b(See)31 b(Chapter)e(4)i
([Options],)f(page)h(19.)125 5215 y(Tw)m(o)39 b(options,)i(`)p
Fk(-g)p Fm(')f(\(assume)f(y)m(ou)h(are)g(compiling)d(with)h(GNU)i(C)g
(and)e(its)h Fk(inline)f Fm(feature\))i(and)f(`)p Fk(-a)p
Fm(')0 5340 y(\(assume)30 b(ANSI)g(C-st)m(yle)h(function)e(protot)m(yp)
s(es\),)j(alter)e(the)g(con)m(ten)m(t)j(of)d(b)s(oth)g(the)g(generated)
i Fk(hash)d Fm(and)h Fk(in_)p eop
%%Page: 17 19
17 18 bop 0 -116 a Fm(Chapter)30 b(3:)41 b(High-Lev)m(el)30
b(Description)g(of)g(GNU)h Fk(gperf)1820 b Fm(17)0 366
y Fk(word_set)24 b Fm(routines.)38 b(Ho)m(w)m(ev)m(er,)29
b(function)24 b Fk(in_word_set)f Fm(ma)m(y)j(b)s(e)g(mo)s(di\014ed)d
(more)j(extensiv)m(ely)-8 b(,)27 b(in)e(resp)s(onse)0
491 y(to)31 b(y)m(our)f(option)g(settings.)41 b(The)30
b(options)g(that)g(a\013ect)i(the)f Fk(in_word_set)c
Fm(structure)j(are:)180 790 y(`)p Fk(-t)p Fm(')334 b(Mak)m(e)32
b(use)e(of)h(the)f(user-de\014ned)f Fk(struct)p Fm(.)180
964 y(`)p Fk(-S)h Fh(total)h(switc)m(h)f(statemen)m(ts)t
Fm(')660 1089 y(Generate)h(1)g(or)f(more)g(C)g Fk(switch)e
Fm(statemen)m(t)k(rather)e(than)g(use)g(a)g(large,)g(\(and)g(p)s(oten)m
(tially)660 1213 y(sparse\))j(static)g(arra)m(y)-8 b(.)50
b(Although)32 b(the)h(exact)i(time)d(and)g(space)i(sa)m(vings)f(of)g
(this)f(approac)m(h)660 1338 y(v)-5 b(ary)42 b(according)g(to)i(y)m
(our)e(C)g(compiler's)f(degree)i(of)f(optimization,)j(this)c(metho)s(d)
h(often)660 1462 y(results)29 b(in)g(smaller)g(and)h(faster)h(co)s(de.)
125 1761 y(If)20 b(the)h(`)p Fk(-t)p Fm(')f(and)h(`)p
Fk(-S)p Fm(')f(options)g(are)i(omitted,)h(the)e(default)f(action)h(is)e
(to)j(generate)g(a)f Fk(char)30 b(*)20 b Fm(arra)m(y)h(con)m(taining)0
1886 y(the)32 b(k)m(eys,)g(together)h(with)e(additional)e(n)m(ull)h
(strings)g(used)h(for)g(padding)f(the)h(arra)m(y)-8 b(.)46
b(By)31 b(exp)s(erimen)m(ting)f(with)0 2010 y(the)e(v)-5
b(arious)27 b(input)f(and)h(output)g(options,)h(and)g(timing)e(the)i
(resulting)e(C)h(co)s(de,)i(y)m(ou)f(can)g(determine)f(the)h(b)s(est)0
2135 y(option)i(c)m(hoices)h(for)f(di\013eren)m(t)g(k)m(eyw)m(ord)h
(set)g(c)m(haracteristics.)p eop
%%Page: 18 20
18 19 bop 0 -116 a Fm(18)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 19 21
19 20 bop 0 -116 a Fm(Chapter)30 b(4:)41 b(Options)29
b(to)i(the)g Fk(gperf)d Fm(Utilit)m(y)2203 b(19)0 366
y Fj(4)80 b(Options)30 b(to)g(the)f Fg(gperf)h Fj(Utilit)l(y)125
739 y Fm(There)38 b(are)i Fh(man)m(y)47 b Fm(options)39
b(to)h Fk(gperf)p Fm(.)66 b(They)39 b(w)m(ere)h(added)e(to)i(mak)m(e)h
(the)e(program)g(more)h(con)m(v)m(enien)m(t)0 863 y(for)34
b(use)f(with)g(real)g(applications.)49 b(\\On-line")33
b(help)f(is)h(readily)g(a)m(v)-5 b(ailable)33 b(via)g(the)h(`)p
Fk(-h)p Fm(')g(option.)51 b(Here)34 b(is)f(the)0 988
y(complete)e(list)e(of)h(options.)0 1435 y Fi(4.1)68
b(Options)31 b(that)g(a\013ect)g(In)l(terpretation)i(of)d(the)h(Input)f
(File)180 1733 y Fm(`)p Fk(-e)g Fh(k)m(eyw)m(ord)h(delimiter)d(list)r
Fm(')660 1858 y(Allo)m(ws)23 b(the)h(user)g(to)h(pro)m(vide)e(a)h
(string)f(con)m(taining)h(delimiters)d(used)j(to)h(separate)g(k)m(eyw)m
(ords)660 1982 y(from)j(their)g(attributes.)40 b(The)29
b(default)f(is)g Fk(")p Fm(,)p Fk(\\)p Fm(n)p Fk(")p
Fm(.)39 b(This)27 b(option)i(is)f(essen)m(tial)g(if)g(y)m(ou)h(w)m(an)m
(t)h(to)660 2107 y(use)g(k)m(eyw)m(ords)h(that)f(ha)m(v)m(e)i(em)m(b)s
(edded)d(commas)i(or)f(newlines.)38 b(One)30 b(useful)f(tric)m(k)h(is)f
(to)i(use)660 2232 y(-e'T)-8 b(AB',)32 b(where)e(T)-8
b(AB)31 b(is)f(the)g(literal)f(tab)i(c)m(haracter.)180
2405 y(`)p Fk(-t)p Fm(')334 b(Allo)m(ws)39 b(y)m(ou)h(to)g(include)e(a)
i Fk(struct)e Fm(t)m(yp)s(e)i(declaration)g(for)f(generated)i(co)s(de.)
69 b(An)m(y)40 b(text)660 2530 y(b)s(efore)h(a)h(pair)e(of)i
(consecutiv)m(e)g(\045\045)f(is)g(consider)f(part)h(of)h(the)g(t)m(yp)s
(e)f(declaration.)74 b(Key)660 2654 y(w)m(ords)32 b(and)g(additional)e
(\014elds)h(ma)m(y)j(follo)m(w)d(this,)i(one)f(group)g(of)h(\014elds)e
(p)s(er)h(line.)45 b(A)33 b(set)g(of)660 2779 y(examples)i(for)h
(generating)g(p)s(erfect)g(hash)f(tables)h(and)f(functions)g(for)g
(Ada,)j(C,)e(and)f(G)p Fk(++)p Fm(,)660 2903 y(P)m(ascal,)c(and)f(Mo)s
(dula)f(2)i(and)f(3)h(reserv)m(ed)f(w)m(ords)g(are)h(distributed)c
(with)i(this)h(release.)0 3350 y Fi(4.2)68 b(Options)31
b(to)g(sp)t(ecify)f(the)h(Language)g(for)f(the)h(Output)f(Co)t(de)180
3649 y Fm(`)p Fk(-L)g Fh(generated)h(language)g(name)5
b Fm(')660 3773 y(Instructs)35 b Fk(gperf)f Fm(to)i(generate)h(co)s(de)
f(in)e(the)i(language)g(sp)s(eci\014ed)d(b)m(y)j(the)g(option's)f
(argu-)660 3898 y(men)m(t.)41 b(Languages)31 b(handled)e(are)i(curren)m
(tly:)840 4072 y(`)p Fk(KR-C)p Fm(')238 b(Old-st)m(yle)43
b(K&R)g(C.)h(This)e(language)i(is)f(understo)s(o)s(d)f(b)m(y)i(old-st)m
(yle)f(C)1320 4196 y(compilers)25 b(and)i(ANSI)f(C)h(compilers,)f(but)g
(ANSI)h(C)g(compilers)e(ma)m(y)j(\015ag)1320 4321 y(w)m(arnings)h(\(or)
i(ev)m(en)g(errors\))f(b)s(ecause)g(of)h(lac)m(king)f(`)p
Fk(const)p Fm('.)840 4494 y(`)p Fk(C)p Fm(')382 b(Common)35
b(C.)g(This)f(language)h(is)g(understo)s(o)s(d)e(b)m(y)i(ANSI)g(C)g
(compilers,)1320 4619 y(and)44 b(also)g(b)m(y)g(old-st)m(yle)g(C)f
(compilers,)k(pro)m(vided)c(that)h(y)m(ou)h Fk(#define)1320
4744 y(const)33 b Fm(to)i(empt)m(y)g(for)g(compilers)e(whic)m(h)g
(don't)i(kno)m(w)f(ab)s(out)g(this)g(k)m(ey-)1320 4868
y(w)m(ord.)840 5042 y(`)p Fk(ANSI-C)p Fm(')142 b(ANSI)33
b(C.)h(This)d(language)j(is)f(understo)s(o)s(d)f(b)m(y)h(ANSI)g(C)h
(compilers)e(and)1320 5166 y(C)p Fk(++)d Fm(compilers.)840
5340 y(`)p Fk(C++)p Fm(')286 b(C)p Fk(++)p Fm(.)40 b(This)28
b(language)j(is)f(understo)s(o)s(d)e(b)m(y)i(C)p Fk(++)g
Fm(compilers.)p eop
%%Page: 20 22
20 21 bop 0 -116 a Fm(20)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)660 366 y Fm(The)f(default)f(is)h(C.)180 548
y(`)p Fk(-a)p Fm(')334 b(This)25 b(option)h(is)f(supp)s(orted)g(for)h
(compatibilit)m(y)f(with)g(previous)g(releases)i(of)g
Fk(gperf)p Fm(.)38 b(It)26 b(do)s(es)660 672 y(not)31
b(do)f(an)m(ything.)180 853 y(`)p Fk(-g)p Fm(')334 b(This)25
b(option)h(is)f(supp)s(orted)g(for)h(compatibilit)m(y)f(with)g
(previous)g(releases)i(of)g Fk(gperf)p Fm(.)38 b(It)26
b(do)s(es)660 978 y(not)31 b(do)f(an)m(ything.)0 1457
y Fi(4.3)68 b(Options)31 b(for)f(\014ne)g(tuning)h(Details)h(in)e(the)h
(Output)f(Co)t(de)180 1762 y Fm(`)p Fk(-K)g Fh(k)m(ey)h(name)5
b Fm(')660 1887 y(This)20 b(option)h(is)g(only)g(useful)f(when)h
(option)h(`)p Fk(-t)p Fm(')f(has)h(b)s(een)f(giv)m(en.)38
b(By)22 b(default,)h(the)f(program)660 2012 y(assumes)28
b(the)i(structure)e(comp)s(onen)m(t)h(iden)m(ti\014er)e(for)i(the)g(k)m
(eyw)m(ord)g(is)f(`)p Fk(name)p Fm('.)39 b(This)27 b(option)660
2136 y(allo)m(ws)34 b(an)h(arbitrary)e(c)m(hoice)i(of)g(iden)m
(ti\014er)e(for)h(this)g(comp)s(onen)m(t,)i(although)e(it)h(still)d(m)m
(ust)660 2261 y(o)s(ccur)e(as)h(the)f(\014rst)g(\014eld)f(in)g(y)m(our)
h(supplied)d Fk(struct)p Fm(.)180 2442 y(`)p Fk(-H)j
Fh(hash)g(function)f(name)5 b Fm(')660 2566 y(Allo)m(ws)31
b(y)m(ou)h(to)h(sp)s(ecify)d(the)i(name)g(for)f(the)h(generated)h(hash)
e(function.)44 b(Default)32 b(name)g(is)660 2691 y(`)p
Fk(hash)p Fm('.)40 b(This)29 b(option)g(p)s(ermits)g(the)i(use)f(of)g
(t)m(w)m(o)i(hash)e(tables)g(in)f(the)h(same)h(\014le.)180
2872 y(`)p Fk(-N)f Fh(lo)s(okup)f(function)g(name)5 b
Fm(')660 2996 y(Allo)m(ws)31 b(y)m(ou)i(to)g(sp)s(ecify)e(the)i(name)f
(for)g(the)h(generated)g(lo)s(okup)e(function.)45 b(Default)33
b(name)660 3121 y(is)27 b(`)p Fk(in_word_set)p Fm('.)37
b(This)26 b(option)h(p)s(ermits)f(completely)h(automatic)i(generation)f
(of)g(p)s(erfect)660 3246 y(hash)h(functions,)g(esp)s(ecially)g(when)g
(m)m(ultiple)e(generated)k(hash)f(functions)e(are)j(used)e(in)g(the)660
3370 y(same)i(application.)180 3551 y(`)p Fk(-Z)f Fh(class)g(name)5
b Fm(')660 3676 y(This)32 b(option)i(is)e(only)i(useful)e(when)h
(option)g(`)p Fk(-L)d(C++)p Fm(')j(has)h(b)s(een)f(giv)m(en.)52
b(It)34 b(allo)m(ws)f(y)m(ou)h(to)660 3800 y(sp)s(ecify)29
b(the)i(name)f(of)h(generated)g(C)p Fk(++)e Fm(class.)41
b(Default)30 b(name)h(is)e Fk(Perfect_Hash)p Fm(.)180
3981 y(`)p Fk(-7)p Fm(')334 b(This)29 b(option)i(sp)s(eci\014es)f(that)
h(all)f(strings)g(that)i(will)c(b)s(e)j(passed)f(as)i(argumen)m(ts)f
(to)h(the)f(gen-)660 4106 y(erated)e(hash)f(function)g(and)g(the)h
(generated)g(lo)s(okup)f(function)f(will)f(solely)i(consist)g(of)h
(7-bit)660 4231 y(ASCI)s(I)k(c)m(haracters)j(\(c)m(haracters)g(in)e
(the)g(range)h(0..127\).)56 b(\(Note)36 b(that)f(the)g(ANSI)f(C)h
(func-)660 4355 y(tions)k Fk(isalnum)e Fm(and)i Fk(isgraph)f
Fm(do)h Fh(not)j Fm(guaran)m(tee)e(that)h(a)e(c)m(haracter)i(is)e(in)f
(this)g(range.)660 4480 y(Only)e(an)h(explicit)f(test)i(lik)m(e)f(`)p
Fk(c)30 b(>=)g('A')f(&&)h(c)g(<=)g('Z')p Fm(')37 b(guaran)m(tees)h
(this.\))61 b(This)36 b(w)m(as)i(the)660 4604 y(default)29
b(in)g(earlier)g(v)m(ersions)g(of)h Fk(gperf)p Fm(;)f(no)m(w)h(the)g
(default)f(is)g(to)i(assume)e(8-bit)h(c)m(haracters.)180
4785 y(`)p Fk(-c)p Fm(')334 b(Generates)33 b(C)f(co)s(de)g(that)g(uses)
g(the)g Fk(strncmp)e Fm(function)h(to)h(p)s(erform)f(string)g
(comparisons.)660 4910 y(The)f(default)f(action)i(is)f(to)h(use)f
Fk(strcmp)p Fm(.)180 5091 y(`)p Fk(-C)p Fm(')334 b(Mak)m(es)27
b(the)f(con)m(ten)m(ts)h(of)f(all)e(generated)j(lo)s(okup)d(tables)h
(constan)m(t,)j(i.e.,)f(\\readonly".)39 b(Man)m(y)660
5215 y(compilers)21 b(can)i(generate)h(more)f(e\016cien)m(t)g(co)s(de)g
(for)f(this)f(b)m(y)i(putting)e(the)i(tables)g(in)e(readonly)660
5340 y(memory)-8 b(.)p eop
%%Page: 21 23
21 22 bop 0 -116 a Fm(Chapter)30 b(4:)41 b(Options)29
b(to)i(the)g Fk(gperf)d Fm(Utilit)m(y)2203 b(21)180 366
y(`)p Fk(-E)p Fm(')334 b(De\014ne)24 b(constan)m(t)h(v)-5
b(alues)23 b(using)f(an)i(en)m(um)f(lo)s(cal)g(to)i(the)e(lo)s(okup)g
(function)f(rather)i(than)f(with)660 491 y(#de\014nes.)46
b(This)31 b(also)i(means)f(that)h(di\013eren)m(t)g(lo)s(okup)e
(functions)g(can)i(reside)e(in)h(the)h(same)660 616 y(\014le.)40
b(Thanks)29 b(to)i(James)g(Clark)e Fk(<jjc@ai.mit.edu>)p
Fm(.)180 781 y(`)p Fk(-I)p Fm(')334 b(Include)40 b(the)h(necessary)h
(system)g(include)d(\014le,)k Fk(<string.h>)p Fm(,)f(at)g(the)g(b)s
(eginning)c(of)k(the)660 905 y(co)s(de.)52 b(By)35 b(default,)f(this)f
(is)h(not)g(done;)i(the)e(user)g(m)m(ust)g(include)e(this)h(header)h
(\014le)f(himself)660 1030 y(to)e(allo)m(w)f(compilation)f(of)h(the)h
(co)s(de.)180 1195 y(`)p Fk(-G)p Fm(')334 b(Generate)25
b(the)g(static)f(table)g(of)g(k)m(eyw)m(ords)g(as)h(a)f(static)g
(global)g(v)-5 b(ariable,)24 b(rather)g(than)g(hiding)660
1320 y(it)30 b(inside)e(of)j(the)f(lo)s(okup)f(function)g(\(whic)m(h)h
(is)f(the)i(default)e(b)s(eha)m(vior\).)180 1485 y(`)p
Fk(-W)h Fh(hash)g(table)g(arra)m(y)h(name)5 b Fm(')660
1609 y(Allo)m(ws)28 b(y)m(ou)h(to)h(sp)s(ecify)e(the)h(name)g(for)g
(the)g(generated)h(arra)m(y)g(con)m(taining)e(the)i(hash)e(table.)660
1734 y(Default)g(name)g(is)e(`)p Fk(wordlist)p Fm('.)38
b(This)26 b(option)i(p)s(ermits)e(the)h(use)h(of)g(t)m(w)m(o)h(hash)e
(tables)g(in)g(the)660 1858 y(same)k(\014le,)e(ev)m(en)j(when)d(the)i
(option)e(`)p Fk(-G)p Fm(')i(is)e(giv)m(en.)180 2023
y(`)p Fk(-S)h Fh(total)h(switc)m(h)f(statemen)m(ts)t
Fm(')660 2148 y(Causes)45 b(the)h(generated)g(C)f(co)s(de)h(to)g(use)g
(a)f Fk(switch)f Fm(statemen)m(t)k(sc)m(heme,)i(rather)45
b(than)660 2273 y(an)g(arra)m(y)h(lo)s(okup)e(table.)86
b(This)44 b(can)h(lead)g(to)h(a)g(reduction)f(in)f(b)s(oth)g(time)i
(and)e(space)660 2397 y(requiremen)m(ts)24 b(for)i(some)f(k)m
(ey\014les.)39 b(The)25 b(argumen)m(t)h(to)g(this)e(option)h
(determines)f(ho)m(w)i(man)m(y)660 2522 y Fk(switch)k
Fm(statemen)m(ts)k(are)e(generated.)46 b(A)32 b(v)-5
b(alue)32 b(of)g(1)g(generates)h(1)f Fk(switch)f Fm(con)m(taining)g
(all)660 2646 y(the)26 b(elemen)m(ts,)h(a)g(v)-5 b(alue)25
b(of)h(2)g(generates)i(2)e(tables)g(with)e(1/2)j(the)g(elemen)m(ts)f
(in)e(eac)m(h)j Fk(switch)p Fm(,)660 2771 y(etc.)40 b(This)25
b(is)g(useful)f(since)i(man)m(y)g(C)g(compilers)f(cannot)h(correctly)h
(generate)h(co)s(de)e(for)g(large)660 2895 y Fk(switch)j
Fm(statemen)m(ts.)44 b(This)29 b(option)h(w)m(as)h(inspired)d(in)h
(part)i(b)m(y)g(Keith)f(Bostic's)h(original)e(C)660 3020
y(program.)180 3185 y(`)p Fk(-T)p Fm(')334 b(Prev)m(en)m(ts)31
b(the)g(transfer)f(of)h(the)g(t)m(yp)s(e)g(declaration)f(to)h(the)g
(output)f(\014le.)40 b(Use)31 b(this)f(option)g(if)660
3309 y(the)h(t)m(yp)s(e)f(is)g(already)f(de\014ned)h(elsewhere.)180
3475 y(`)p Fk(-p)p Fm(')334 b(This)25 b(option)h(is)f(supp)s(orted)g
(for)h(compatibilit)m(y)f(with)g(previous)g(releases)i(of)g
Fk(gperf)p Fm(.)38 b(It)26 b(do)s(es)660 3599 y(not)31
b(do)f(an)m(ything.)0 4029 y Fi(4.4)68 b(Options)31 b(for)f(c)l
(hanging)h(the)g(Algorithms)g(emplo)l(y)l(ed)h(b)l(y)e
Ff(gperf)180 4323 y Fm(`)p Fk(-k)g Fh(k)m(eys)t Fm(')131
b(Allo)m(ws)23 b(selection)g(of)h(the)g(c)m(haracter)h(k)m(ey)g(p)s
(ositions)d(used)g(in)h(the)h(k)m(eyw)m(ords')g(hash)f(function.)660
4448 y(The)28 b(allo)m(w)m(able)g(c)m(hoices)h(range)g(b)s(et)m(w)m
(een)g(1-126,)i(inclusiv)m(e.)38 b(The)27 b(p)s(ositions)g(are)h
(separated)660 4572 y(b)m(y)d(commas,)j(e.g.,)g(`)p Fk(-k)i(9,4,13,14)p
Fm(';)25 b(ranges)h(ma)m(y)g(b)s(e)e(used,)i(e.g.,)i(`)p
Fk(-k)i(2-7)p Fm(';)d(and)e(p)s(ositions)660 4697 y(ma)m(y)j(o)s(ccur)f
(in)f(an)m(y)h(order.)39 b(F)-8 b(urthermore,)28 b(the)g(meta-c)m
(haracter)i('*')e(causes)g(the)f(generated)660 4822 y(hash)i(function)g
(to)h(consider)f Fc(all)i Fm(c)m(haracter)g(p)s(ositions)d(in)g(eac)m
(h)j(k)m(ey)-8 b(,)32 b(whereas)e('$')g(instructs)660
4946 y(the)f(hash)f(function)g(to)h(use)g(the)g(\\\014nal)f(c)m
(haracter")j(of)e(a)g(k)m(ey)h(\(this)e(is)g(the)h(only)f(w)m(a)m(y)i
(to)f(use)660 5071 y(a)i(c)m(haracter)h(p)s(osition)c(greater)k(than)e
(126,)i(inciden)m(tally\).)660 5215 y(F)-8 b(or)29 b(instance,)f(the)g
(option)f(`)p Fk(-k)j(1,2,4,6-10,'$')p Fm(')25 b(generates)k(a)f(hash)f
(function)g(that)h(con-)660 5340 y(siders)38 b(p)s(ositions)g
(1,2,4,6,7,8,9,10,)49 b(plus)38 b(the)i(last)f(c)m(haracter)j(in)d(eac)
m(h)i(k)m(ey)f(\(whic)m(h)f(ma)m(y)p eop
%%Page: 22 24
22 23 bop 0 -116 a Fm(22)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)660 366 y Fm(di\013er)j(for)h(eac)m(h)h(k)m(ey)-8
b(,)38 b(ob)m(viously\).)54 b(Keys)35 b(with)f(length)h(less)f(than)h
(the)h(indicated)d(k)m(ey)j(p)s(o-)660 491 y(sitions)j(w)m(ork)h(prop)s
(erly)-8 b(,)42 b(since)d(selected)i(k)m(ey)g(p)s(ositions)e(exceeding)
h(the)h(k)m(ey)g(length)f(are)660 616 y(simply)28 b(not)j(referenced)f
(in)f(the)h(hash)g(function.)180 843 y(`)p Fk(-l)p Fm(')334
b(Compare)32 b(k)m(ey)g(lengths)f(b)s(efore)g(trying)g(a)h(string)f
(comparison.)44 b(This)30 b(migh)m(t)i(cut)g(do)m(wn)f(on)660
967 y(the)23 b(n)m(um)m(b)s(er)e(of)h(string)f(comparisons)h(made)g
(during)e(the)j(lo)s(okup,)g(since)e(k)m(eys)i(with)e(di\013eren)m(t)
660 1092 y(lengths)i(are)h(nev)m(er)g(compared)f(via)g
Fk(strcmp)p Fm(.)37 b(Ho)m(w)m(ev)m(er,)27 b(using)22
b(`)p Fk(-l)p Fm(')i(migh)m(t)f(greatly)h(increase)660
1216 y(the)33 b(size)f(of)g(the)h(generated)h(C)e(co)s(de)g(if)g(the)g
(lo)s(okup)f(table)h(range)h(is)f(large)g(\(whic)m(h)g(implies)660
1341 y(that)26 b(the)f(switc)m(h)g(option)g(`)p Fk(-S)p
Fm(')g(is)f(not)i(enabled\),)g(since)e(the)i(length)f(table)g(con)m
(tains)g(as)h(man)m(y)660 1465 y(elemen)m(ts)31 b(as)f(there)h(are)g
(en)m(tries)f(in)f(the)h(lo)s(okup)f(table.)180 1692
y(`)p Fk(-D)p Fm(')334 b(Handle)26 b(k)m(eyw)m(ords)g(whose)h(k)m(ey)g
(p)s(osition)d(sets)j(hash)f(to)h(duplicate)e(v)-5 b(alues.)39
b(Duplicate)26 b(hash)660 1817 y(v)-5 b(alues)30 b(o)s(ccur)g(for)g(t)m
(w)m(o)i(reasons:)735 1993 y Fl(\017)60 b Fm(Since)33
b Fk(gperf)f Fm(do)s(es)h(not)h(bac)m(ktrac)m(k)h(it)e(is)g(p)s
(ossible)e(for)i(it)h(to)g(pro)s(cess)f(all)f(y)m(our)i(input)840
2117 y(k)m(eyw)m(ords)43 b(without)e(\014nding)g(a)i(unique)d(mapping)h
(for)h(eac)m(h)i(w)m(ord.)77 b(Ho)m(w)m(ev)m(er,)48 b(fre-)840
2242 y(quen)m(tly)39 b(only)f(a)i(v)m(ery)f(small)f(n)m(um)m(b)s(er)g
(of)h(duplicates)f(o)s(ccur,)j(and)e(the)g(ma)5 b(jorit)m(y)40
b(of)840 2366 y(k)m(eys)31 b(still)d(require)h(one)i(prob)s(e)e(in)m
(to)i(the)f(table.)735 2542 y Fl(\017)60 b Fm(Sometimes)45
b(a)g(set)h(of)g(k)m(eys)f(ma)m(y)h(ha)m(v)m(e)h(the)e(same)g(names,)50
b(but)44 b(p)s(ossess)g(di\013eren)m(t)840 2666 y(attributes.)39
b(With)24 b(the)i(-D)g(option)f Fk(gperf)f Fm(treats)i(all)e(these)i(k)
m(eys)g(as)g(part)f(of)g(an)h(equiv-)840 2791 y(alence)31
b(class)f(and)g(generates)i(a)e(p)s(erfect)h(hash)f(function)f(with)g
(m)m(ultiple)f(comparisons)840 2916 y(for)c(duplicate)e(k)m(eys.)39
b(It)24 b(is)f(up)f(to)j(y)m(ou)f(to)h(completely)e(disam)m(biguate)g
(the)h(k)m(eyw)m(ords)g(b)m(y)840 3040 y(mo)s(difying)g(the)i
(generated)i(C)e(co)s(de.)39 b(Ho)m(w)m(ev)m(er,)30 b
Fk(gperf)24 b Fm(helps)h(y)m(ou)i(out)f(b)m(y)h(organizing)840
3165 y(the)k(output.)660 3392 y(Option)26 b(`)p Fk(-D)p
Fm(')h(is)g(extremely)g(useful)f(for)h(certain)g(large)h(or)f(highly)e
(redundan)m(t)h(k)m(eyw)m(ord)i(sets,)660 3516 y(e.g.,)49
b(assem)m(bler)44 b(instruction)e(op)s(co)s(des.)81 b(Using)43
b(this)g(option)g(usually)f(means)i(that)h(the)660 3641
y(generated)29 b(hash)e(function)f(is)h(no)h(longer)f(p)s(erfect.)40
b(On)27 b(the)h(other)g(hand,)f(it)g(p)s(ermits)f Fk(gperf)660
3765 y Fm(to)31 b(w)m(ork)g(on)f(k)m(eyw)m(ord)h(sets)f(that)h(it)f
(otherwise)g(could)g(not)g(handle.)180 3992 y(`)p Fk(-f)g
Fh(iteration)g(amoun)m(t)r Fm(')660 4117 y(Generate)38
b(the)e(p)s(erfect)h(hash)e(function)g(\\fast".)61 b(This)34
b(decreases)j Fk(gperf)p Fm('s)f(running)d(time)660 4241
y(at)38 b(the)f(cost)h(of)f(minimizing)c(generated)38
b(table-size.)60 b(The)36 b(iteration)h(amoun)m(t)g(represen)m(ts)660
4366 y(the)29 b(n)m(um)m(b)s(er)f(of)h(times)g(to)g(iterate)h(when)e
(resolving)g(a)h(collision.)38 b(`0')30 b(means)f(iterate)h(b)m(y)f
(the)660 4490 y(n)m(um)m(b)s(er)22 b(of)h(k)m(eyw)m(ords.)38
b(This)21 b(option)i(is)f(probably)f(most)i(useful)e(when)h(used)g(in)g
(conjunction)660 4615 y(with)29 b(options)h(`)p Fk(-D)p
Fm(')g(and/or)g(`)p Fk(-S)p Fm(')h(for)f Fh(large)35
b Fm(k)m(eyw)m(ord)c(sets.)180 4842 y(`)p Fk(-i)f Fh(initial)e(v)-5
b(alue)5 b Fm(')660 4966 y(Pro)m(vides)36 b(an)g(initial)e
Fh(v)-5 b(alue)41 b Fm(for)36 b(the)h(asso)s(ciate)g(v)-5
b(alues)36 b(arra)m(y)-8 b(.)59 b(Default)37 b(is)e(0.)60
b(Increasing)660 5091 y(the)39 b(initial)d(v)-5 b(alue)39
b(helps)e(in\015ate)i(the)g(\014nal)e(table)i(size,)j(p)s(ossibly)36
b(leading)h(to)j(more)f(time)660 5215 y(e\016cien)m(t)e(k)m(eyw)m(ord)h
(lo)s(okups.)59 b(Note)38 b(that)g(this)e(option)g(is)g(not)h
(particularly)e(useful)g(when)660 5340 y(`)p Fk(-S)p
Fm(')30 b(is)g(used.)40 b(Also,)30 b(`)p Fk(-i)p Fm(')g(is)g(o)m(v)m
(erriden)g(when)f(the)h(`)p Fk(-r)p Fm(')h(option)f(is)f(used.)p
eop
%%Page: 23 25
23 24 bop 0 -116 a Fm(Chapter)30 b(4:)41 b(Options)29
b(to)i(the)g Fk(gperf)d Fm(Utilit)m(y)2203 b(23)180 366
y(`)p Fk(-j)30 b Fh(jump)f(v)-5 b(alue)5 b Fm(')660 491
y(A\013ects)35 b(the)f(\\jump)f(v)-5 b(alue",)36 b(i.e.,)f(ho)m(w)f
(far)g(to)g(adv)-5 b(ance)35 b(the)f(asso)s(ciated)h(c)m(haracter)g(v)
-5 b(alue)660 616 y(up)s(on)30 b(collisions.)41 b Fh(Jump)30
b(v)-5 b(alue)36 b Fm(is)31 b(rounded)f(up)g(to)j(an)e(o)s(dd)f(n)m(um)
m(b)s(er,)h(the)h(default)e(is)h(5.)44 b(If)660 740 y(the)31
b Fh(jump)d(v)-5 b(alue)35 b Fm(is)30 b(0)h Fk(gperf)d
Fm(jumps)h(b)m(y)h(random)g(amoun)m(ts.)180 908 y(`)p
Fk(-n)p Fm(')334 b(Instructs)36 b(the)i(generator)g(not)f(to)h(include)
d(the)j(length)e(of)h(a)h(k)m(eyw)m(ord)g(when)e(computing)660
1033 y(its)27 b(hash)g(v)-5 b(alue.)39 b(This)26 b(ma)m(y)i(sa)m(v)m(e)
h(a)f(few)f(assem)m(bly)g(instructions)f(in)g(the)i(generated)g(lo)s
(okup)660 1158 y(table.)180 1326 y(`)p Fk(-o)p Fm(')334
b(Reorders)38 b(the)h(k)m(eyw)m(ords)f(b)m(y)h(sorting)e(the)i(k)m(eyw)
m(ords)g(so)f(that)h(frequen)m(tly)f(o)s(ccuring)f(k)m(ey)660
1450 y(p)s(osition)h(set)j(comp)s(onen)m(ts)f(app)s(ear)f(\014rst.)69
b(A)40 b(second)h(reordering)d(pass)i(follo)m(ws)f(so)h(that)660
1575 y(k)m(eys)29 b(with)f(\\already)h(determined)e(v)-5
b(alues")29 b(are)g(placed)g(to)m(w)m(ards)g(the)g(fron)m(t)g(of)g(the)
g(k)m(eylist.)660 1700 y(This)e(ma)m(y)i(decrease)h(the)e(time)h
(required)d(to)k(generate)g(a)f(p)s(erfect)f(hash)g(function)f(for)i
(man)m(y)660 1824 y(k)m(eyw)m(ord)i(sets,)h(and)f(also)g(pro)s(duce)f
(more)h(minimal)d(p)s(erfect)j(hash)f(functions.)41 b(The)31
b(reason)660 1949 y(for)h(this)g(is)f(that)i(the)g(reordering)e(helps)g
(prune)g(the)h(searc)m(h)h(time)g(b)m(y)f(handling)e(inevitable)660
2073 y(collisions)20 b(early)j(in)f(the)h(searc)m(h)g(pro)s(cess.)38
b(On)22 b(the)h(other)g(hand,)h(if)e(the)h(n)m(um)m(b)s(er)f(of)h(k)m
(eyw)m(ords)660 2198 y(is)33 b Fh(v)m(ery)42 b Fm(large)33
b(using)f(`)p Fk(-o)p Fm(')i(ma)m(y)g Fh(increase)39
b Fk(gperf)p Fm('s)32 b(execution)i(time,)g(since)f(collisions)f(will)
660 2322 y(b)s(egin)h(earlier)g(and)h(con)m(tin)m(ue)h(throughout)f
(the)g(remainder)f(of)h(k)m(eyw)m(ord)h(pro)s(cessing.)52
b(See)660 2447 y(Cic)m(helli's)28 b(pap)s(er)h(from)h(the)h(Jan)m(uary)
f(1980)i(Comm)m(unications)d(of)h(the)h(A)m(CM)g(for)f(details.)180
2615 y(`)p Fk(-r)p Fm(')334 b(Utilizes)22 b(randomness)h(to)h
(initialize)d(the)i(asso)s(ciated)h(v)-5 b(alues)23 b(table.)38
b(This)22 b(frequen)m(tly)g(gener-)660 2740 y(ates)27
b(solutions)e(faster)i(than)f(using)e(deterministic)h(initialization)e
(\(whic)m(h)i(starts)i(all)e(asso)s(ci-)660 2864 y(ated)g(v)-5
b(alues)23 b(at)i(0\).)39 b(F)-8 b(urthermore,)26 b(using)c(the)j
(randomization)d(option)i(generally)f(increases)660 2989
y(the)32 b(size)f(of)g(the)h(table.)43 b(If)31 b Fk(gperf)f
Fm(has)h(di\016cultly)e(with)h(a)h(certain)h(k)m(eyw)m(ord)f(set)h(try)
f(using)660 3113 y(`)p Fk(-r)p Fm(')f(or)h(`)p Fk(-D)p
Fm('.)180 3282 y(`)p Fk(-s)f Fh(size-m)m(ultiple)5 b
Fm(')660 3406 y(A\013ects)27 b(the)g(size)f(of)g(the)h(generated)g
(hash)f(table.)39 b(The)26 b(n)m(umeric)f(argumen)m(t)h(for)g(this)f
(option)660 3531 y(indicates)f(\\ho)m(w)h(man)m(y)g(times)g(larger)g
(or)g(smaller")f(the)h(maxim)m(um)f(asso)s(ciated)h(v)-5
b(alue)25 b(range)660 3655 y(should)32 b(b)s(e,)k(in)d(relationship)f
(to)j(the)g(n)m(um)m(b)s(er)e(of)h(k)m(eys.)54 b(If)34
b(the)h Fh(size-m)m(ultiple)i Fm(is)d(negativ)m(e)660
3780 y(the)g(maxim)m(um)e(asso)s(ciated)i(v)-5 b(alue)32
b(is)h(calculated)g(b)m(y)g Fh(dividing)38 b Fm(it)33
b(in)m(to)h(the)f(total)h(n)m(um)m(b)s(er)660 3904 y(of)29
b(k)m(eys.)41 b(F)-8 b(or)29 b(example,)g(a)g(v)-5 b(alue)29
b(of)g(3)g(means)f(\\allo)m(w)h(the)g(maxim)m(um)f(asso)s(ciated)h(v)-5
b(alue)28 b(to)660 4029 y(b)s(e)i(ab)s(out)g(3)h(times)f(larger)g(than)
g(the)g(n)m(um)m(b)s(er)f(of)i(input)d(k)m(eys".)660
4175 y(Con)m(v)m(ersely)-8 b(,)29 b(a)g(v)-5 b(alue)27
b(of)h(-3)h(means)f(\\allo)m(w)g(the)g(maxim)m(um)f(asso)s(ciated)i(v)
-5 b(alue)27 b(to)i(b)s(e)e(ab)s(out)660 4300 y(3)38
b(times)g(smaller)e(than)i(the)g(n)m(um)m(b)s(er)e(of)i(input)e(k)m
(eys".)65 b(Negativ)m(e)40 b(v)-5 b(alues)37 b(are)h(useful)e(for)660
4424 y(limiting)27 b(the)j(o)m(v)m(erall)h(size)f(of)g(the)g(generated)
h(hash)e(table,)i(though)e(this)g(usually)f(increases)660
4549 y(the)j(n)m(um)m(b)s(er)e(of)h(duplicate)f(hash)h(v)-5
b(alues.)660 4695 y(If)44 b(`generate)j(switc)m(h')e(option)f(`)p
Fk(-S)p Fm(')h(is)f Fh(not)j Fm(enabled,)g(the)e(maxim)m(um)f(asso)s
(ciated)h(v)-5 b(alue)660 4820 y(in\015uences)32 b(the)h(static)h(arra)
m(y)g(table)f(size,)h(and)f(a)h(larger)f(table)g(should)e(decrease)k
(the)e(time)660 4944 y(required)c(for)h(an)g(unsuccessful)e(searc)m(h,)
j(at)g(the)g(exp)s(ense)f(of)g(extra)i(table)e(space.)660
5091 y(The)c(default)g(v)-5 b(alue)26 b(is)g(1,)i(th)m(us)e(the)h
(default)f(maxim)m(um)f(asso)s(ciated)i(v)-5 b(alue)26
b(ab)s(out)h(the)g(same)660 5215 y(size)i(as)g(the)g(n)m(um)m(b)s(er)f
(of)h(k)m(eys)g(\(for)g(e\016ciency)-8 b(,)30 b(the)f(maxim)m(um)f
(asso)s(ciated)h(v)-5 b(alue)28 b(is)g(alw)m(a)m(ys)660
5340 y(rounded)f(up)h(to)h(a)g(p)s(o)m(w)m(er)f(of)h(2\).)41
b(The)28 b(actual)h(table)f(size)h(ma)m(y)g(v)-5 b(ary)29
b(somewhat,)g(since)f(this)p eop
%%Page: 24 26
24 25 bop 0 -116 a Fm(24)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)660 366 y Fm(tec)m(hnique)e(is)f(essen)m(tially)h(a)g
(heuristic.)39 b(In)28 b(particular,)g(setting)i(this)e(v)-5
b(alue)29 b(to)s(o)h(high)d(slo)m(ws)660 491 y(do)m(wn)f
Fk(gperf)p Fm('s)f(run)m(time,)i(since)f(it)g(m)m(ust)g(searc)m(h)i
(through)e(a)h(m)m(uc)m(h)f(larger)h(range)g(of)f(v)-5
b(alues.)660 616 y(Judicious)28 b(use)i(of)g(the)h(`)p
Fk(-f)p Fm(')f(option)g(helps)f(alleviate)h(this)f(o)m(v)m(erhead,)j
(ho)m(w)m(ev)m(er.)0 1064 y Fi(4.5)68 b(Informativ)l(e)32
b(Output)180 1363 y Fm(`)p Fk(-h)p Fm(')334 b(Prin)m(ts)32
b(a)i(short)g(summary)e(on)i(the)g(meaning)e(of)i(eac)m(h)h(program)e
(option.)50 b(Ab)s(orts)33 b(further)660 1487 y(program)d(execution.)
180 1662 y(`)p Fk(-v)p Fm(')334 b(Prin)m(ts)29 b(out)i(the)f(curren)m
(t)h(v)m(ersion)e(n)m(um)m(b)s(er.)180 1836 y(`)p Fk(-d)p
Fm(')334 b(Enables)39 b(the)g(debugging)g(option.)68
b(This)38 b(pro)s(duces)h(v)m(erb)s(ose)h(diagnostics)f(to)h
(\\standard)660 1961 y(error")27 b(when)f Fk(gperf)g
Fm(is)g(executing.)39 b(It)27 b(is)f(useful)g(b)s(oth)g(for)h(main)m
(taining)e(the)i(program)g(and)660 2085 y(for)32 b(determining)f
(whether)g(a)i(giv)m(en)g(set)g(of)f(options)g(is)f(actually)h(sp)s
(eeding)f(up)h(the)g(searc)m(h)660 2210 y(for)25 b(a)h(solution.)38
b(Some)26 b(useful)e(information)g(is)g(dump)s(ed)g(at)i(the)g(end)f
(of)h(the)g(program)f(when)660 2334 y(the)31 b(`)p Fk(-d)p
Fm(')f(option)g(is)f(enabled.)p eop
%%Page: 25 27
25 26 bop 0 -116 a Fm(Chapter)30 b(5:)41 b(Kno)m(wn)30
b(Bugs)g(and)g(Limitations)e(with)h Fk(gperf)1697 b Fm(25)0
366 y Fj(5)80 b(Kno)l(wn)29 b(Bugs)g(and)h(Limitations)i(with)e
Fg(gperf)125 740 y Fm(The)f(follo)m(wing)g(are)i(some)g(limitations)d
(with)h(the)h(curren)m(t)h(release)f(of)h Fk(gperf)p
Fm(:)75 1014 y Fl(\017)60 b Fm(The)26 b Fk(gperf)f Fm(utilit)m(y)g(is)h
(tuned)g(to)h(execute)h(quic)m(kly)-8 b(,)27 b(and)f(w)m(orks)h(quic)m
(kly)e(for)h(small)g(to)h(medium)e(size)h(data)180 1139
y(sets)k(\(around)f(1000)j(k)m(eyw)m(ords\).)41 b(It)30
b(is)f(extremely)h(useful)e(for)h(main)m(taining)f(p)s(erfect)i(hash)f
(functions)f(for)180 1263 y(compiler)j(k)m(eyw)m(ord)i(sets.)48
b(Sev)m(eral)33 b(recen)m(t)h(enhancemen)m(ts)f(no)m(w)f(enable)g
Fk(gperf)g Fm(to)h(w)m(ork)g(e\016cien)m(tly)f(on)180
1388 y(m)m(uc)m(h)26 b(larger)g(k)m(eyw)m(ord)h(sets)g(\(o)m(v)m(er)g
(15,000)i(k)m(eyw)m(ords\).)40 b(When)26 b(pro)s(cessing)f(large)h(k)m
(eyw)m(ord)h(sets)g(it)e(helps)180 1512 y(greatly)31
b(to)g(ha)m(v)m(e)h(o)m(v)m(er)f(8)g(megs)g(of)f(RAM.)180
1662 y(Ho)m(w)m(ev)m(er,)45 b(since)39 b Fk(gperf)g Fm(do)s(es)g(not)i
(bac)m(ktrac)m(k)h(no)e(guaran)m(teed)h(solution)d(o)s(ccurs)i(on)g(ev)
m(ery)h(run.)68 b(On)180 1786 y(the)35 b(other)h(hand,)f(it)g(is)f
(usually)f(easy)j(to)g(obtain)f(a)g(solution)f(b)m(y)h(v)-5
b(arying)34 b(the)i(option)e(parameters.)56 b(In)180
1911 y(particular,)37 b(try)g(the)g(`)p Fk(-r)p Fm(')f(option,)j(and)d
(also)h(try)f(c)m(hanging)h(the)g(default)f(argumen)m(ts)h(to)h(the)f
(`)p Fk(-s)p Fm(')g(and)180 2035 y(`)p Fk(-j)p Fm(')31
b(options.)41 b(T)-8 b(o)31 b Fh(guaran)m(tee)37 b Fm(a)31
b(solution,)f(use)g(the)h(`)p Fk(-D)p Fm(')g(and)f(`)p
Fk(-S)p Fm(')g(options,)h(although)f(the)h(\014nal)e(results)180
2160 y(are)j(not)h(lik)m(ely)d(to)j(b)s(e)e(a)i Fh(p)s(erfect)g
Fm(hash)f(function)e(an)m(ymore!)47 b(Finally)-8 b(,)31
b(use)g(the)h(`)p Fk(-f)p Fm(')g(option)g(if)f(y)m(ou)h(w)m(an)m(t)180
2284 y Fk(gperf)d Fm(to)i(generate)h(the)f(p)s(erfect)f(hash)f
(function)g Fh(fast)p Fm(,)i(with)f(less)f(emphasis)g(on)h(making)g(it)
g(minimal.)75 2434 y Fl(\017)60 b Fm(The)28 b(size)g(of)g(the)h
(generate)h(static)f(k)m(eyw)m(ord)f(arra)m(y)h(can)g(get)g
Fh(extremely)37 b Fm(large)28 b(if)f(the)i(input)d(k)m(eyw)m(ord)j
(\014le)180 2558 y(is)k(large)g(or)h(if)f(the)g(k)m(eyw)m(ords)h(are)g
(quite)f(similar.)48 b(This)32 b(tends)h(to)i(slo)m(w)e(do)m(wn)g(the)h
(compilation)e(of)i(the)180 2683 y(generated)g(C)f(co)s(de,)h(and)e
Fh(greatly)42 b Fm(in\015ates)32 b(the)h(ob)5 b(ject)34
b(co)s(de)f(size.)49 b(If)32 b(this)g(situation)g(o)s(ccurs,)i
(consider)180 2807 y(using)i(the)i(`)p Fk(-S)p Fm(')g(option)g(to)g
(reduce)g(data)g(size,)i(p)s(oten)m(tially)d(increasing)f(k)m(eyw)m
(ord)j(recognition)e(time)h(a)180 2932 y(negligible)32
b(amoun)m(t.)52 b(Since)34 b(man)m(y)g(C)g(compilers)e(cannot)j
(correctly)g(generated)g(co)s(de)f(for)g(large)g(switc)m(h)180
3056 y(statemen)m(ts)j(it)e(is)g(imp)s(ortan)m(t)f(to)i(qualify)e(the)h
Fh(-S)41 b Fm(option)35 b(with)f(an)h(appropriate)g(n)m(umerical)e
(argumen)m(t)180 3181 y(that)e(con)m(trols)g(the)f(n)m(um)m(b)s(er)f
(of)i(switc)m(h)f(statemen)m(ts)i(generated.)75 3330
y Fl(\017)60 b Fm(The)31 b(maxim)m(um)f(n)m(um)m(b)s(er)g(of)h(k)m(ey)h
(p)s(ositions)e(selected)h(for)h(a)f(giv)m(en)h(k)m(ey)g(has)f(an)g
(arbitrary)f(limit)f(of)i(126.)180 3455 y(This)h(restriction)i(should)e
(b)s(e)h(remo)m(v)m(ed,)k(and)d(if)f(an)m(y)m(one)i(considers)e(this)g
(a)i(problem)e(write)g(me)h(and)g(let)180 3579 y(me)c(kno)m(w)h(so)f(I)
h(can)f(remo)m(v)m(e)i(the)f(constrain)m(t.)p eop
%%Page: 26 28
26 27 bop 0 -116 a Fm(26)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 27 29
27 28 bop 0 -116 a Fm(Chapter)30 b(6:)41 b(Things)28
b(Still)g(Left)j(to)g(Do)2433 b(27)0 366 y Fj(6)80 b(Things)30
b(Still)j(Left)d(to)f(Do)125 740 y Fm(It)40 b(should)f(b)s(e)h
(\\relativ)m(ely")i(easy)f(to)h(replace)e(the)h(curren)m(t)g(p)s
(erfect)g(hash)f(function)f(algorithm)h(with)g(a)0 865
y(more)35 b(exhaustiv)m(e)h(approac)m(h;)i(the)d(p)s(erfect)g(hash)g
(mo)s(dule)e(is)h(essen)m(tial)h(indep)s(enden)m(t)e(from)i(other)g
(program)0 989 y(mo)s(dules.)k(Additional)28 b(w)m(orth)m(while)h
(impro)m(v)m(emen)m(ts)h(include:)75 1263 y Fl(\017)60
b Fm(Mak)m(e)33 b(the)e(algorithm)f(more)h(robust.)42
b(A)m(t)32 b(presen)m(t,)f(the)h(program)e(halts)h(with)e(an)i(error)g
(diagnostic)f(if)g(it)180 1388 y(can't)j(\014nd)e(a)i(direct)f
(solution)f(and)h(the)h(`)p Fk(-D)p Fm(')f(option)g(is)g(not)g
(enabled.)46 b(A)33 b(more)g(comprehensiv)m(e,)f(alb)s(eit)180
1512 y(computationally)26 b(exp)s(ensiv)m(e,)h(approac)m(h)g(w)m(ould)e
(emplo)m(y)i(bac)m(ktrac)m(king)h(or)e(enable)g(alternativ)m(e)i
(options)180 1637 y(and)d(retry)-8 b(.)40 b(It's)26 b(not)h(clear)f(ho)
m(w)g(helpful)d(this)i(w)m(ould)g(b)s(e,)i(in)d(general,)k(since)d
(most)h(searc)m(h)h(sets)g(are)f(rather)180 1761 y(small)j(in)g
(practice.)75 1911 y Fl(\017)60 b Fm(Another)31 b(useful)e(extension)i
(in)m(v)m(olv)m(es)g(mo)s(difying)d(the)k(program)e(to)i(generate)h
(\\minimal")c(p)s(erfect)i(hash)180 2035 y(functions)i(\(under)h
(certain)g(circumstances,)i(the)e(curren)m(t)h(v)m(ersion)f(can)h(b)s
(e)f(rather)g(extra)m(v)-5 b(agan)m(t)37 b(in)d(the)180
2160 y(generated)i(table)f(size\).)55 b(Again,)36 b(this)e(is)g(mostly)
g(of)h(theoretical)h(in)m(terest,)g(since)f(a)g(sparse)g(table)g(often)
180 2284 y(pro)s(duces)29 b(faster)i(lo)s(okups,)f(and)g(use)g(of)h
(the)g(`)p Fk(-S)p Fm(')f Fk(switch)f Fm(option)h(can)h(minimize)d(the)
j(data)h(size,)e(at)i(the)180 2409 y(exp)s(ense)j(of)g(sligh)m(tly)f
(longer)h(lo)s(okups)f(\(note)j(that)f(the)f(gcc)i(compiler)d
(generally)g(pro)s(duces)g(go)s(o)s(d)i(co)s(de)180 2533
y(for)30 b Fk(switch)f Fm(statemen)m(ts,)j(reducing)d(the)i(need)f(for)
g(more)g(complex)g(sc)m(hemes\).)75 2683 y Fl(\017)60
b Fm(In)27 b(addition)f(to)j(impro)m(ving)d(the)i(algorithm,)f(it)h(w)m
(ould)e(also)i(b)s(e)f(useful)f(to)j(generate)g(a)g(C)p
Fk(++)d Fm(class)i(or)g(Ada)180 2807 y(pac)m(k)-5 b(age)32
b(as)f(the)g(co)s(de)f(output,)g(in)f(addition)g(to)i(the)g(curren)m(t)
f(C)g(routines.)p eop
%%Page: 28 30
28 29 bop 0 -116 a Fm(28)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 29 31
29 30 bop 0 -116 a Fm(Chapter)30 b(7:)41 b(Implemen)m(tation)29
b(Details)i(of)f(GNU)h Fk(gperf)1799 b Fm(29)0 366 y
Fj(7)80 b(Implemen)l(tation)29 b(Details)i(of)f(GNU)h
Fg(gperf)125 740 y Fm(A)42 b(pap)s(er)f(describing)e(the)k(high-lev)m
(el)e(description)f(of)i(the)g(data)h(structures)e(and)h(algorithms)f
(used)g(to)0 865 y(implemen)m(t)c Fk(gperf)f Fm(will)f(so)s(on)j(b)s(e)
f(a)m(v)-5 b(ailable.)63 b(This)36 b(pap)s(er)h(is)g(useful)f(not)i
(only)f(from)h(a)g(main)m(tenance)h(and)0 989 y(enhancemen)m(t)23
b(p)s(ersp)s(ectiv)m(e,)h(but)e(also)g(b)s(ecause)h(they)f(demonstrate)
h(sev)m(eral)g(clev)m(er)g(and)f(useful)f(programming)0
1114 y(tec)m(hniques,)31 b(e.g.,)i(`Iteration)f(Num)m(b)s(er')e(b)s(o)s
(olean)g(arra)m(ys,)i(double)e(hashing,)g(a)i(\\safe")g(and)f
(e\016cien)m(t)g(metho)s(d)0 1238 y(for)f(reading)g(arbitrarily)d(long)
j(input)f(from)h(a)g(\014le,)g(and)g(a)h(pro)m(v)-5 b(ably)29
b(optimal)h(algorithm)f(for)h(sim)m(ultaneously)0 1363
y(determining)e(b)s(oth)i(the)h(minim)m(um)c(and)j(maxim)m(um)f(elemen)
m(ts)i(in)e(a)i(list.)p eop
%%Page: 30 32
30 31 bop 0 -116 a Fm(30)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 31 33
31 32 bop 0 -116 a Fm(Chapter)30 b(8:)41 b(Bibliograph)m(y)2833
b(31)0 366 y Fj(8)80 b(Bibliograph)l(y)125 808 y Fm([1])27
b(Chang,)h(C.C.:)38 b Fh(A)27 b(Sc)m(heme)h(for)e(Constructing)g
(Ordered)g(Minimal)e(P)m(erfect)k(Hashing)e(F)-8 b(unctions)31
b Fm(Infor-)0 932 y(mation)f(Sciences)g(39\(1986\),)k(187-195.)125
1220 y([2])39 b(Cic)m(helli,)e(Ric)m(hard)h(J.)g Fh(Author's)g(Resp)s
(onse)f(to)i(\\On)f(Cic)m(helli's)e(Minimal)g(P)m(erfect)j(Hash)f(F)-8
b(unctions)0 1344 y(Metho)s(d")31 b Fm(Comm)m(unications)e(of)h(the)h
(A)m(CM,)g(23,)h(12\(Decem)m(b)s(er)g(1980\),)h(729.)125
1632 y([3])j(Cic)m(helli,)e(Ric)m(hard)g(J.)h Fh(Minimal)e(P)m(erfect)j
(Hash)f(F)-8 b(unctions)35 b(Made)h(Simple)i Fm(Comm)m(unications)33
b(of)j(the)0 1756 y(A)m(CM,)31 b(23,)h(1\(Jan)m(uary)e(1980\),)j
(17-19.)125 2044 y([4])45 b(Co)s(ok,)i(C.)d(R.)h(and)e(Oldeho)s(eft,)k
(R.R.)d Fh(A)g(Letter)h(Orien)m(ted)f(Minimal)e(P)m(erfect)j(Hashing)e
(F)-8 b(unction)0 2168 y Fm(SIGPLAN)30 b(Notices,)h(17,)h(9\(Septem)m
(b)s(er)f(1982\),)h(18-27.)125 2456 y([5])43 b(Cormac)m(k,)k(G.)c(V.)g
(and)f(Horsp)s(o)s(ol,)j(R.)e(N.)g(S.)g(and)f(Kaiserw)m(erth,)j(M.)e
Fh(Practical)g(P)m(erfect)h(Hashing)0 2580 y Fm(Computer)30
b(Journal,)f(28,)i(1\(Jan)m(uary)g(1985\),)i(54-58.)125
2868 y([6])d(Jaesc)m(hk)m(e,)i(G.)f Fh(Recipro)s(cal)e(Hashing:)40
b(A)30 b(Metho)s(d)g(for)g(Generating)g(Minimal)e(P)m(erfect)j(Hashing)
f(F)-8 b(unc-)0 2992 y(tions)33 b Fm(Comm)m(unications)c(of)i(the)g(A)m
(CM,)g(24,)g(12\(Decem)m(b)s(er)i(1981\),)f(829-833.)125
3280 y([7])27 b(Jaesc)m(hk)m(e,)i(G.)e(and)f(Osterburg,)g(G.)h
Fh(On)f(Cic)m(helli's)e(Minimal)g(P)m(erfect)j(Hash)g(F)-8
b(unctions)26 b(Metho)s(d)k Fm(Com-)0 3404 y(m)m(unications)f(of)i(the)
f(A)m(CM,)h(23,)h(12\(Decem)m(b)s(er)g(1980\),)h(728-729.)125
3692 y([8])e(Sager,)h(Thomas)e(J.)h Fh(A)g(P)m(olynomial)e(Time)h
(Generator)i(for)e(Minimal)f(P)m(erfect)j(Hash)f(F)-8
b(unctions)34 b Fm(Com-)0 3816 y(m)m(unications)29 b(of)i(the)f(A)m
(CM,)h(28,)h(5\(Decem)m(b)s(er)g(1985\),)h(523-532)125
4104 y([9])40 b(Sc)m(hmidt,)i(Douglas)e(C.)g Fh(GPERF:)g(A)g(P)m
(erfect)i(Hash)d(F)-8 b(unction)40 b(Generator)48 b Fm(Second)39
b(USENIX)h(C)p Fk(++)0 4228 y Fm(Conference)30 b(Pro)s(ceedings,)g
(April)e(1990.)125 4516 y([10])k(Seb)s(esta,)f(R.W.)h(and)e(T)-8
b(a)m(ylor,)32 b(M.A.)f Fh(Minimal)e(P)m(erfect)j(Hash)f(F)-8
b(unctions)31 b(for)f(Reserv)m(ed)i(W)-8 b(ord)31 b(Lists)0
4640 y Fm(SIGPLAN)f(Notices,)h(20,)h(12\(Septem)m(b)s(er)f(1985\),)i
(47-53.)125 4928 y([11])28 b(Sprugnoli,)c(R.)j Fh(P)m(erfect)h(Hashing)
e(F)-8 b(unctions:)39 b(A)27 b(Single)e(Prob)s(e)h(Retrieving)g(Metho)s
(d)g(for)h(Static)g(Sets)0 5053 y Fm(Comm)m(unications)i(of)h(the)h(A)m
(CM,)g(20)g(11\(No)m(v)m(em)m(b)s(er)i(1977\),)g(841-850.)125
5340 y([12])e(Stallman,)e(Ric)m(hard)h(M.)h Fh(Using)e(and)h(P)m
(orting)g(GNU)h(CC)38 b Fm(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
b(oundation,)30 b(1988.)p eop
%%Page: 32 34
32 33 bop 0 -116 a Fm(32)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)125 366 y Fm([13])g(Stroustrup,)e(Bjarne)i Fh(The)e(C)p
Fk(++)h Fh(Programming)f(Language.)42 b Fm(Addison-W)-8
b(esley)g(,)30 b(1986.)125 640 y([14])h(Tiemann,)e(Mic)m(hael)i(D.)g
Fh(User's)f(Guide)f(to)j(GNU)f(C)p Fk(++)e Fm(F)-8 b(ree)32
b(Soft)m(w)m(are)f(F)-8 b(oundation,)30 b(1989.)p eop
%%Page: -1 35
-1 34 bop 3875 -116 a Fm(i)0 366 y Fj(T)-13 b(able)31
b(of)f(Con)l(ten)l(ts)0 715 y Fi(GNU)45 b(GENERAL)g(PUBLIC)g(LICENSE)25
b Fb(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)69
b Fi(1)299 871 y Fm(Pream)m(ble)15 b Fa(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45
b Fm(1)299 995 y(TERMS)29 b(AND)j(CONDITIONS)15 b Fa(.)f(.)h(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
45 b Fm(2)299 1120 y(App)s(endix:)38 b(Ho)m(w)31 b(to)g(Apply)e(These)h
(T)-8 b(erms)30 b(to)h(Y)-8 b(our)31 b(New)f(Programs)d
Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fm(5)0 1369
y Fi(Con)l(tributors)46 b(to)f(GNU)g Ff(gperf)e Fi(Utilit)l(y)g
Fb(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
(.)85 b Fi(7)0 1649 y(1)135 b(In)l(tro)t(duction)40 b
Fb(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
f(.)85 b Fi(9)0 1929 y(2)135 b(Static)45 b(searc)l(h)h(structures)f
(and)f(GNU)h Ff(gperf)38 b Fb(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)85
b Fi(11)0 2210 y(3)135 b(High-Lev)l(el)46 b(Description)g(of)f(GNU)g
Ff(gperf)15 b Fb(.)i(.)i(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)59
b Fi(13)299 2365 y Fm(3.1)92 b(Input)29 b(F)-8 b(ormat)32
b(to)f Fk(gperf)22 b Fa(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)53 b Fm(13)598
2490 y(3.1.1)93 b Fk(struct)28 b Fm(Declarations)j(and)f(C)g(Co)s(de)g
(Inclusion)24 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)56 b Fm(14)598 2614 y(3.1.2)93 b(F)-8 b(ormat)31 b(for)f(Keyw)m(ord)
g(En)m(tries)16 b Fa(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)45
b Fm(15)598 2739 y(3.1.3)93 b(Including)27 b(Additional)h(C)i(F)-8
b(unctions)19 b Fa(.)14 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Fm(16)299
2863 y(3.2)92 b(Output)29 b(F)-8 b(ormat)32 b(for)e(Generated)h(C)f(Co)
s(de)g(with)f Fk(gperf)22 b Fa(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)52 b Fm(16)0 3112 y Fi(4)135 b(Options)45
b(to)g(the)h Ff(gperf)c Fi(Utilit)l(y)24 b Fb(.)e(.)d(.)g(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)69
b Fi(19)299 3268 y Fm(4.1)92 b(Options)29 b(that)i(a\013ect)h(In)m
(terpretation)e(of)h(the)f(Input)f(File)d Fa(.)15 b(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fm(19)299 3393 y(4.2)92
b(Options)29 b(to)i(sp)s(ecify)e(the)i(Language)g(for)f(the)h(Output)e
(Co)s(de)13 b Fa(.)h(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42
b Fm(19)299 3517 y(4.3)92 b(Options)29 b(for)h(\014ne)g(tuning)f
(Details)h(in)f(the)i(Output)e(Co)s(de)23 b Fa(.)14 b(.)h(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 b Fm(20)299 3642
y(4.4)92 b(Options)29 b(for)h(c)m(hanging)g(the)h(Algorithms)e(emplo)m
(y)m(ed)h(b)m(y)h Fk(gperf)21 b Fa(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g
(.)50 b Fm(21)299 3766 y(4.5)92 b(Informativ)m(e)30 b(Output)d
Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Fm(24)0 4015
y Fi(5)135 b(Kno)l(wn)45 b(Bugs)f(and)h(Limitations)i(with)e
Ff(gperf)28 b Fb(.)17 b(.)i(.)h(.)f(.)h(.)f(.)h(.)72
b Fi(25)0 4296 y(6)135 b(Things)44 b(Still)i(Left)g(to)f(Do)17
b Fb(.)j(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)62 b Fi(27)0 4576 y(7)135
b(Implemen)l(tation)47 b(Details)g(of)e(GNU)g Ff(gperf)30
b Fb(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)78 b Fi(29)0
4856 y(8)135 b(Bibliograph)l(y)32 b Fb(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)76 b Fi(31)p eop
%%Page: -2 36
-2 35 bop 0 -116 a Fm(ii)2958 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF