summaryrefslogtreecommitdiff
path: root/support/ps_view/ps_view.ps
blob: 9149569c00fe5a38c040b7213502440d1272339d (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
%!PS-Adobe-2.0
%%
%% PS_VIEW -- previewing utility for Ghostscript interpreter v. 2.6 and newer
%% Authors: P. Pianowski, B. Jackowski
%% Address: BOP s.c. Piastowska 70, 80-363 Gda\'nsk, Poland
%%          P.Pianowski@GUST.org.PL
%%          B.Jackowski@GUST.org.PL
%% History:
%% Creation date: Friday, January 15th, 1993
%% Version: 1.00, 28 III 1995
%% Version: 1.99, 29 IV 1998
%% Version: 2.01, 25 VI 1998
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% At the 8th EuroTeX Conference, Sobieszewo, Poland, 1994,
%% we released this ``viewer'' as a public-domain product.
%% People using this product are kindly requested to inform us about it
%% by mail or by e-mail. Any comments are welcome.
%%                                                  The authors.
%%                                           Gda\'nsk-Sobieszewo, 1994
%% In the meantime, the ``viewer'' has been enhanced with a new interface
%% as suggested by Wietse Dol and Erik Frambach. The interface is
%% implemented in the batch files `ansipre.bat' and `ansipost.bat'.
%% The interface requires `ansi.sys' to be loaded.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Commands for PostScript documents previewing:
%%
%%    (FILE_NAME) a   apply new picture
%%    (FILE_NAME) o   open new picture (equivalent to `a')
%%    (FILE_NAME) ap  apply new paged document
%%    (FILE_NAME) op  open new paged picture (equivalent to `ap')
%%                c   redraw current picture
%%                i   view picture with initial parameter settings
%%                w   view whole picture
%%         {PAGE} pn  go to the specified page
%%         {PAGE} np  equivalent to `pn'
%%                pf  go to the first page
%%                fp  equivalent to `pf'
%%                pl  go to the last page
%%                lp  equivalent to `pl'
%%         {INCR} n   go to the next page
%%         {INCR} p   go to the previous page
%%                g   draw local window-oriented coordinates grid
%%                gg  draw global coordinates grid (cm)
%%                ggg draw global coordinates grid (cm, mm)
%%    {HOR} {VER} igg initialize global grid origin to (HOR,VER)
%%                wgg initialize global grid origin to the window origin
%%                dgg initialize global grid origin to (0,0)
%%                gc  switch to global coordinates
%%                lc  switch to local window-oriented coordinates
%%          {MAG} m   set magnification factor
%%    {HOR} {VER} v   view magnified and shifted picture
%%    {HOR} {VER} vu  view magnified and shifted picture (equivalent to `v')
%%    {HOR} {VER} vd  view diminished and shifted picture (equivalent to `v'
%%                    with temporary scaling=1/MAG)
%%    {HOR} {VER} go  shift picture (``go to specified position''; equivalent
%%                    to `v' with temporary scaling=1)
%%        {SHIFT} s   set shift
%%        {SHIFT} l   shift picture left
%%        {SHIFT} r   shift picture right
%%        {SHIFT} u   shift picture up
%%        {SHIFT} d   shift picture down
%%         {STEP} ro  rotate picture counterclockwise by STEP*90
%%                    (i.e., clockwise for STEP<0)
%%                hf  flip picture horizontaly
%%                vf  flip picture verticaly
%%         {INCR} un  undo previous picture
%%         {INCR} re  redo undone picture
%%                bb  show document bounding box
%%                pg  show document page box (if it's set)
%%                fr  show frame (pritning area)
%%  {(FILE_NAME)} pr  print or send to a file the interior of the frame
%%    DEVICE_NAME prs select printer, to be used by `pr'
%%       (DEVICE) dev   select scrren device
%%                r1280 | (<--- under preparation)
%%                r1024 | set screen resolution -- for SVGA adapters
%%                r800  |
%%                r640  |
%%              rsc   reset screen (reset text cursor -- MSDOS orinted)
%%                e   attempt to recover from error
%%                q   quit saving the restart information
%%                x   exit without saving the restart information
%%  {(FILE_NAME)} wr  write the restart information
%%  {(FILE_NAME)} rr  read conditionally the restart information
%%             help   help
%%              ver   print PS_VIEW version
%%              rev   print Ghostscript revision
%%
%% { ... } means optional parameter
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PS_VIEW command line parameters:
%%
%%   -sINPUT=filename      document file
%%   -sLOCAL=filename      configuration file
%%   -dONEPAGE             view only one/first page
%%   -dSEQ                 sequential access (page by page)
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
/view_dict 200 dict def view_dict begin
/PS_VIEW (PS_VIEW 2.01 ) def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
userdict begin
  /HS 0 def /VS 0 def
  /get_page_size {userdict begin /VS exch def /HS exch def end} def
  /put_page_size {userdict begin HS VS end} def
  /ori_a4 /a4 load def
  /letter {612 792 get_page_size} def  /note /letter load def
  /legal {612 1008 get_page_size} def
  /a0 {2380 3368 get_page_size} def
  /a1 {1684 2380 get_page_size} def
  /a2 {1190 1684 get_page_size} def
  /a3 {842 1190 get_page_size} def
  /a4 {595 842 get_page_size} def
  /a5 {421 595 get_page_size} def
  /a6 {297 421 get_page_size} def
  /a7 {210 297 get_page_size} def
  /a8 {148 210 get_page_size} def
  /a9 {105 148 get_page_size} def
  /a10 {74 105 get_page_size} def
  /b0 {2836 4008 get_page_size} def
  /b1 {2004 2836 get_page_size} def
  /b2 {1418 2004 get_page_size} def
  /b3 {1002 1418 get_page_size} def
  /b4 {709 1002 get_page_size} def
  /b5 {501 709 get_page_size} def
  /flsa {612 936 get_page_size} def
  /flse {612 936 get_page_size} def
  /halfletter {396 612 get_page_size} def
  /11x17 {792 1224 get_page_size} def
  /ledger {1224 792 get_page_size} def
end
statusdict begin /setpageparams {exch pop 1 ne {exch} if get_page_size} def end
statusdict begin /setpage {1 ne {exch} if get_page_size} def end
%
/BD {bind def} def
/XD {exch def} def
/LD {load def} def
%
/BP {1 mul} def
/PT {72 72.27 div mul} def
/MM {72 25.4 div mul} def
/CM {72 2.54 div mul} def
/IN {72 mul} def
/DD {72 72.27 div 1238 mul 1157 div div mul} def
/CC {72 72.27 div 1238 mul 1157 div 12 mul div mul} def
%
/ht_rel_conv {window_ht grid_ht div magnification div y_unit div mul} def
/wd_rel_conv {window_wd grid_wd div magnification div x_unit div mul} def
%
/clear_dict_stack {cleardictstack view_dict begin} BD
/ori_setmatrix /setmatrix LD

/save_first_sit {userdict begin /SITUATION XD end
  view_dict begin
    opened_file fileposition /last_pos XD
  end
  SITUATION /sit_darr 100 array put
  SITUATION /sit_darr get dictstack
  SITUATION exch /sit_darr exch put  % dict. stack
  [ count 1 roll ]
  SITUATION exch /sit_oarr exch put  % op. stack
  SITUATION /sit_save save put       % save
  } BD
/save_sit {userdict begin /SITUATION XD end
  view_dict begin
    opened_file fileposition /last_pos XD
    page_begin
  end
  SITUATION /sit_darr 100 array put
  SITUATION /sit_darr get dictstack
  SITUATION exch /sit_darr exch put  % dict. stack
  [ count 1 roll ]
  SITUATION exch /sit_oarr exch put  % op. stack
  SITUATION /sit_save save put       % save
  } BD
/put_string {
  [ exch {} forall
  } BD
/get_string {
  counttomark 1 add 1 roll
  counttomark
  dup /new_string exch string def
  1 sub -1 0 {new_string exch 3 -1 roll put} for
  cleartomark
  new_string def
  } BD
/restore_sit {userdict begin /SITUATION XD end
  % save ps_view state on the op. stack
  NEXTPAGE
  pages_count
  curr_page
  [pages_array aload pop
  [run_matrix aload pop
  magnification
  orig_x     orig_y
  hflip      vflip
  current_output put_string
  print_buf put_string
  print_count
  local
  angle
  % restore the document state
  SITUATION /sit_save get restore    % restore
  SITUATION /sit_save save put       % rewrite sit_save
  % restore ps_view state from the op. stack
  view_dict begin
  /angle XD
  /local XD
  /print_count XD
  /print_buf get_string
  /current_output get_string
  /vflip XD       /hflip XD
  /orig_y XD      /orig_x XD
  /magnification XD
  ] /x_run_matrix XD
  ] /pages_array XD
  /curr_page XD
  /pages_count XD
  /NEXTPAGE XD
  end
  %
  clear SITUATION /sit_oarr get aload pop          % restore op. stack
  cleardictstack 3 1 SITUATION /sit_darr get length 1 sub {
    SITUATION /sit_darr get exch get begin} for    % restore dict. stack
} BD

/val_str 20 string def
/initials {/orig_x 0 def /orig_y 0 def /angle 0 def
  /hflip false def /vflip false def
  /curr_page 0 def /pages_count 0 def /curr_pos 0 def /overfull false def
  /document_dicts 0 def /polite false def /magnification 1 def} BD
/set_window_size{gsave
  revision 312 lt {initgraphics default_matrix ori_setmatrix} if
  clippath pathbbox 3 -1 roll
  sub /window_ht XD exch sub /window_wd XD
  grestore} BD
/set_device {count 0 eq {(vga)} if selectdevice
  /page_pH page_H def /page_pW page_W def
  /screen_dev currentdevice def get_screen
  mark
  /HWResolution screen_H page_pH 72 div div dup 2 array astore
  /PageSize [page_pW page_pH] currentdevice putdeviceprops setdevice
  /screen_dev currentdevice def get_screen} BD
/set_screen_resolution {exch pop
  page_H 72 div div dup 2 array astore
  mark exch /HWResolution exch
  /PageSize [page_W page_H]
  currentdevice putdeviceprops setdevice
  /screen_dev currentdevice def get_screen
  curs_up curs_down} BD
/G {currentdevice getdeviceprops] pstack pop} def
/As {abcdefghijklmnopqrstuvwxyz} def
/Ab {ABCDEFGHIJKLMNOPQRSTUVWXYZ} def
/screen_res_corr {screen_H page_H 72.0 div resolution_H mul div dup
  matrix scale default_matrix matrix concatmatrix /default_matrix XD} def
/get_screen {currentdevice getdeviceprops counttomark 2 idiv
  dup dict /screen_dict exch def
  screen_dict begin {def} repeat pop end
  gsave initgraphics /default_matrix matrix defaultmatrix def grestore
  /screen_name screen_dict /Name get def
  screen_dict /HWSize get aload pop
  /screen_H exch def /screen_W exch def
  screen_dict /PageSize get aload pop
  /page_H exch def /page_W exch def
  screen_dict /HWResolution get aload pop
  /resolution_H exch def pop
  screen_res_corr
  /screen_dev currentdevice def
  /font_size 11000 screen_H div def
  } BD

/ori_print /print LD
/ori_flush /flush LD
/curs_up {() ori_print ori_flush} def %% ANSI.SYS oriented
/curs_down {(\n\n) ori_print ori_flush} def
%/font_size 20 def
/print_buf 256 string def
/print_count 0 def
/clear_rect {
  gsave
    newpath
    0 window_ht font_size sub 0.2 font_size mul sub translate
    0 0 moveto window_wd 0 lineto window_wd font_size 1.2 mul lineto
    0 font_size 1.2 mul lineto
    closepath 0 0 0 0 setcmykcolor fill
  grestore} def
/psv_print {view_dict begin
  print_buf print_count 2 index putinterval
  length print_count add /print_count XD
  end} def
/psv_init_print {view_dict begin /print_count 0 def end} def
/psv_nl_print {} def
/flush {ori_flush view_dict begin print_count 0 gt {gsave 
  default_matrix ori_setmatrix
  font_size 1 mul window_ht font_size sub moveto
  clear_rect
  /QDSSXX-Normal findfont font_size scalefont setfont
  0 1 1 0 setcmykcolor
  print_buf 0 print_count getinterval show
  grestore} if end} def
/print_prompt {view_dict begin gsave 
  default_matrix ori_setmatrix
  0.2 font_size mul window_ht font_size sub moveto
  /QDSSXX-Normal findfont font_size scalefont setfont
  0 1 1 0 setcmykcolor
  (*) show
  grestore end} def

/prompt {flush psv_init_print print_prompt} BD
/handleerror {systemdict begin $error begin
  (Error: ) psv_print errorname 80 string cvs psv_print
  ( in ) psv_print /command load 80 string cvs psv_print
  psv_nl_print end end
  clear view_dict /clear_dict_stack get cvx exec
  } BD
/view_stopped {stopped {count 0 gt {dup
  (NOERROR) eq {pop}{handleerror} ifelse} {handleerror} ifelse} if} BD

/minimum {/x_2 XD /x_1 XD
  x_1 x_2 le {x_1}{x_2} ifelse} def

/page_begin {pages_count 0 ge pages_count max_pages lt and
  {/pages_count pages_count 1 add def
   pages_array pages_count last_pos put /overfull false def}
  {/overfull true def} ifelse} BD
/prolog_begin {view_dict /prolbeg_array known {prolbeg_array length 1 add
  array /curr_array XD curr_array 0 prolbeg_array putinterval}
  {1 array /curr_array XD} ifelse /prolbeg_array /curr_array LD
  prolbeg_array dup length 1 sub last_pos put} BD
/prolog_end {view_dict /prolend_array known {prolend_array length 1 add
  array /curr_array XD curr_array 0 prolend_array putinterval}
  {1 array /curr_array XD} ifelse /prolend_array /curr_array LD
  prolend_array dup length 1 sub last_pos put} BD

% <array of strings> look_for_pattern <boolean>
/look_for_pattern{false exch {/pattern XD inp_line 0 pattern length
  inp_line length minimum getinterval
  pattern eq {true exit} if} forall dup {exch pop} if} BD
/dl_x 0 def /dl_y 0 def
/ur_x 0 def /ur_y 0 def
/get_bb {
  inp_line pattern length dup inp_line length sub neg getinterval
  token {/dl_x XD token {/dl_y XD
  token {/ur_x XD token {/ur_y XD
  pop} if} if} if} if} def
/read_bb {view_dict begin
  file_name (r) file /opened_file XD
  opened_file 0 setfileposition {
    opened_file line readline {/inp_line XD
      bb_mark look_for_pattern {get_bb exit} if
    }{pop exit} ifelse} loop
  opened_file status {opened_file closefile} if
  end} def
/read_pages {gsave
  view_dict begin
  /in_prolog false def
  file_name (r) file /opened_file XD
  opened_file 0 setfileposition {
    opened_file dup fileposition /last_pos XD
    line readline {/inp_line XD
      in_prolog not {prolbeg_mark
        look_for_pattern {prolog_begin /in_prolog true def} if} if
      in_prolog {prolend_mark
        look_for_pattern {prolog_end /in_prolog false def} if} if
      pagebeg_mark look_for_pattern {page_begin} if
    }{pop exit} ifelse} loop
  opened_file status {opened_file closefile} if
  view_dict /prolbeg_array known
  view_dict /prolend_array known and {
    prolbeg_array length 1 eq
    prolend_array length 1 eq and {/polite true def} if} if
  overfull
  {(Too many pages, only first ) psv_print
  pages_count val_str cvs psv_print
  ( pages are accessible.) psv_print psv_nl_print}
  {(OK, ) psv_print
  pages_count val_str cvs psv_print
  pages_count 1 eq {( page is accessible.)}
  {( pages are accessible.)} ifelse psv_print psv_nl_print} ifelse grestore
  pages_count 0 gt {/ONEPAGE false def /SEQ false def}
    {/ONEPAGE true def /SEQ false def} ifelse
} def

% <first_addr> <last_addr> run_fragment --
/run_fragment {/file_pos_sentinel XD
  opened_file exch setfileposition {
    view_dict /opened_file get token {
      dup type [] type ne {
        dup cvlit /currentfile eq {pop opened_file} if
        exec} if
    opened_file fileposition file_pos_sentinel ge {exit} if}
    {exit} ifelse} loop} BD

/showpage {
  view_dict /SEQ get {
    view_dict /curr_SIT pre_SIT put
    view_dict /NEXTPAGE get {post_SIT save_sit} if
    view_dict /NEXTPAGE false put
  } if
  clear view_dict /clear_dict_stack get cvx exec
  (NOERROR) stop
  } BD

/view_transform {
  run_matrix ori_setmatrix
  magnification dup scale
  orig_x x_unit mul neg
  orig_y y_unit mul neg translate
  hflip {[-1 0 0 1 window_wd magnification div orig_x x_unit mul 2 mul add 0] concat} if
  vflip {[1 0 0 -1 0 window_ht magnification div orig_y y_unit mul 2 mul add] concat} if
  angle rotate
  angle   0 eq {0 0} if
  angle  90 eq {
                orig_y orig_x sub x_unit mul
                window_wd magnification div
                orig_x orig_y add y_unit mul add neg
                } if
  angle 180 eq {
                window_wd magnification div
                2 orig_x mul y_unit mul add neg
                window_ht magnification div
                2 orig_y mul y_unit mul add neg
                } if
  angle 270 eq {
                window_ht magnification div
                orig_x orig_y add x_unit mul add neg
                orig_x orig_y sub y_unit mul
                } if
  translate
  } BD

userdict begin
  /first_SIT 10 dict def
  /pre_SIT   10 dict def
  /post_SIT  10 dict def
end

/do_do_run_file {
    first_time polite and {
    view_dict /moveto {pop pop
      view_dict /document_dicts countdictstack array dictstack put
      (NOERROR) stop} put
    file_name (r) file /opened_file XD
    opened_file 0 setfileposition opened_file cvx view_stopped
    opened_file status {opened_file closefile} if
    clear clear_dict_stack
    view_dict /moveto undef
  } if
  curr_page 0 eq {/curr_page 1 def} if
  curr_page pages_count gt {/curr_page pages_count def} if
  curr_page 0 gt {pages_array curr_page get /curr_pos XD} if
  SEQ not {/view_save save def} if
  document_dicts dup type cvlit /arraytype eq {{begin} forall} {pop} ifelse
  initgraphics
  erasepage erasepage
  curs_up curs_down
  view_transform
  /view_matrix matrix currentmatrix def
  %
  /initgraphics {view_matrix ori_setmatrix} BD
  /initmatrix {view_matrix ori_setmatrix} BD
  /rectclip {} BD %!!!
  /bind {} def %!!!
%  /setmatrix {pop view_matrix ori_setmatrix} BD %!!!
  input_file_defined {
    opened_file status not {file_name (r) file /opened_file XD} if
    polite not {view_dict /prolbeg_array known
      view_dict /prolend_array known and {
      0 1 prolbeg_array length 1 sub {
        dup prolbeg_array exch get
        dup curr_pos lt {exch prolend_array exch get
        run_fragment} {pop pop exit} ifelse} for} if
    } if
    opened_file curr_pos setfileposition opened_file cvx view_stopped
    SEQ not {put_page_size view_dict /view_save get restore get_page_size} if
    clear clear_dict_stack
    } if
  } def
/do_run_file {/run_matrix XD
  clear_dict_stack
  SEQ {
  first_time {
    /first_time false def
    /curr_SIT pre_SIT def
    post_SIT save_sit
    pre_SIT begin post_SIT {def} forall end
    first_SIT save_first_sit
  }
  {
    pre_SIT begin post_SIT {def} forall end
    curr_SIT restore_sit
    pre_SIT begin post_SIT {def} forall end
  } ifelse
  } if
  do_do_run_file
  /first_time false def
  } BD
/run_file {default_matrix do_run_file} BD

/grid_x_color {1 1 0 0} def
/grid_y_color {0 1 1 0} def
/do_grid {/new_y_unit XD /new_x_unit XD
  /x_unit_frac x_unit new_x_unit div def
  /y_unit_frac y_unit new_y_unit div def
  gsave
  %
  view_transform
  %
  0 setlinewidth
  new_x_unit new_y_unit scale
  newpath clippath pathbbox
  /window_uy XD /window_ux XD /window_ly XD /window_lx XD
  /window_xx window_ux window_lx sub def
  /window_yy window_uy window_ly sub def
  %
  /grid_x_ori grid_x_ori_set grid_factor mul def
  /grid_y_ori grid_y_ori_set grid_factor mul def
  /grid_x_num grid_x_num_set grid_factor mul def
  /grid_y_num grid_y_num_set grid_factor mul def
  %
  grid_x_color setcmykcolor
  newpath grid_x_ori grid_factor sub dup window_xx add grid_factor add 1 exch
  {grid_y_ori grid_factor sub moveto 0 window_yy grid_factor add rlineto} for stroke
  %
  grid_y_color setcmykcolor
  newpath grid_y_ori grid_factor sub dup window_yy add grid_factor add 1 exch
  {grid_x_ori grid_factor sub exch moveto window_xx grid_factor add 0 rlineto} for stroke
  grestore
  } BD
/show_number {gsave
  run_matrix ori_setmatrix
  magnification dup scale
  new_x_unit new_y_unit scale
  currentpoint translate
  0 0 moveto
  dup stringwidth pop -0.5 mul -0.15 rmoveto
  gsave 0 0 0 0 setcmykcolor 0.2 setlinewidth 1 setlinejoin dup
  true charpath stroke grestore
  show grestore} def
/exchange {
  /aux_lite exch def
  /aux_body aux_lite load def
  dup aux_lite exch load def
  /aux_body load def
  } def
/do_numbers {/new_y_unit XD /new_x_unit XD
  /x_unit_frac x_unit new_x_unit div def
  /y_unit_frac y_unit new_y_unit div def
  %
  gsave
  view_transform
  gsave
  new_x_unit new_y_unit scale
  /FuturaCondLight
  findfont 0.5 scalefont setfont
  clippath pathbbox
  /window_uy XD /window_ux XD /window_ly XD /window_lx XD
  /window_xx window_ux window_lx sub def
  /window_yy window_uy window_ly sub def
  window_yy 2 ge {window_yy 40 le {
  %
  /grid_x_ori grid_x_ori_set grid_factor mul def
  /grid_y_ori grid_y_ori_set grid_factor mul def
  /grid_x_num grid_x_num_set grid_factor mul def
  /grid_y_num grid_y_num_set grid_factor mul def
  newpath
  gsave
  grid_x_ori grid_factor sub 1 sub grid_y_ori 0.5 add moveto
  grid_x_num grid_factor sub dup 1 exch window_xx ceiling add grid_factor add
  {cvi /num XD 1 0 rmoveto gsave
  grid_x_color setcmykcolor
    num 10 string cvs show_number
    grestore} for
  grestore
  gsave
  grid_x_ori 0.5 add grid_y_ori grid_factor sub 1 sub moveto
  grid_y_num grid_factor sub dup 1 exch window_yy ceiling add grid_factor add
  {cvi /num XD 0 1 rmoveto gsave
  grid_y_color setcmykcolor
    num 10 string cvs show_number
    grestore} for
  } if} if
  grestore
  %
  grestore} def
/gg {
  /grid_factor 1 def 1 CM dup dup dup do_grid do_numbers
  } def
/ggg {
  save
  /grid_x_color {0 1 0 0} def /grid_y_color {0 1 0 0} def
  /grid_factor 10 def 1 MM dup dup dup do_grid do_numbers
  restore
  gg
  } def
/igg {
  count 0 eq {0 0} if count 1 eq {dup} if
  /new_grid_y XD /new_grid_x XD
  /grid_x_update grid_x_update new_grid_x neg add def
  /grid_y_update grid_y_update new_grid_y neg add def
  /grid_x_ori_set {orig_x epsilon add floor grid_x_update neg dup epsilon add floor sub add} def
  /grid_y_ori_set {orig_y epsilon add floor grid_y_update neg dup epsilon add floor sub add} def
  /grid_x_num_set {orig_x epsilon add floor grid_x_update add epsilon sub ceiling} def
  /grid_y_num_set {orig_y epsilon add floor grid_y_update add epsilon sub ceiling} def
  run_file
  gg
  } def
/wgg {
  /grid_x_update 0 def
  /grid_y_update 0 def
  orig_x orig_y igg
  } def
/default_gg {
  /grid_x_color {1 1 0 0} def /grid_y_color {0 1 1 0} def
  /grid_x_update 0 def
  /grid_y_update 0 def
  /grid_x_ori_set {orig_x epsilon sub ceiling} def /grid_y_ori_set {orig_y epsilon sub ceiling} def
  /grid_x_num_set {orig_x epsilon sub ceiling} def /grid_y_num_set {orig_y epsilon sub ceiling} def
  } def
/dgg {
  default_gg
  c gg
  } def

/frame_squ{/vs XD /hs XD
  newpath
  0 0 moveto hs 0 lineto hs vs lineto 0 vs lineto
  closepath stroke} def

/do_frame {
  0 setlinewidth
  0 1 0 0 setcmykcolor
  %
  gsave 210 MM 297 MM frame_squ stroke grestore
  gsave 6 MM 6 MM translate 198 MM 285 MM frame_squ stroke grestore
  } BD

/sh_page {
  0 setlinewidth
  0 1 1 0 setcmykcolor
  %
  newpath
  0 0 moveto HS 0 lineto HS VS lineto 0 VS lineto
  closepath stroke
  } BD

/sh_bb {
  0 setlinewidth
  1 1 0 0 setcmykcolor
  %
  newpath
  dl_x dl_y moveto ur_x dl_y lineto ur_x ur_y lineto
  dl_x ur_y lineto closepath stroke
  } BD

/a {/file_name XD
  /curr_page 0 def /pages_count 0 def /curr_pos 0 def
  view_dict /prolbeg_array undef view_dict /prolend_array undef
  /document_dicts 0 def /polite false def
  file_name status
  {pop pop pop pop
   (OK) psv_print SEQ {(, SEQUENTIAL ACCESS) psv_print} if psv_nl_print
   /input_file_defined true store
   file_name (r) file /opened_file XD
   ONEPAGE true def}
  {(File not opened) psv_print psv_nl_print /input_file_defined false store} ifelse} BD
/o /a LD
/ap {/file_name XD
  /curr_page 0 def /pages_count 0 def /curr_pos 0 def
  view_dict /prolbeg_array undef view_dict /prolend_array undef
  /document_dicts 0 def /polite false def
  file_name status
  {pop pop pop pop read_pages /input_file_defined true store
   file_name (r) file /opened_file XD /first_time true def}
  {(File not opened) psv_print psv_nl_print /input_file_defined false store} ifelse} def
/op /ap LD
/rr {count 0 eq {/current_restart restart_name def}
  {/current_restart XD} ifelse
  current_restart findlibfile {closefile run} {pop} ifelse
  run_file} BD
/pn {count 0 eq
  {(page ) psv_print curr_page val_str cvs psv_print psv_nl_print}
  {SEQ not {
    round cvi /prop_page XD prop_page 0 gt prop_page pages_count le and
    {save_state /curr_page /prop_page LD pages_array curr_page get
      /curr_pos XD
      run_file} if} if} ifelse} BD
/np /pn LD
/pf {SEQ {
    /NEXTPAGE true def
    /pages_count 1 def
    /curr_page 1 def
    /curr_SIT first_SIT def run_file
  }
  {1 pn} ifelse} BD
/fp /pf LD
/n {count 0 eq SEQ or {count 0 gt {pop} if 1} if
  curr_page add round cvi /prop_page XD
  SEQ {/curr_SIT post_SIT def /NEXTPAGE true def} if
  prop_page 1 lt {1 /prop_page XD} if
  prop_page pages_count gt {pages_count /prop_page XD} if
  prop_page curr_page ne
  {save_state /curr_page /prop_page LD
  run_file} if} BD
/pl {SEQ not {10000 n} if} BD
/lp /pl LD
/p {count 0 eq {1} if curr_page exch sub round cvi /prop_page XD
  SEQ not {
  prop_page 1 lt {1 /prop_page XD} if
  prop_page pages_count gt {pages_count /prop_page XD} if
  prop_page curr_page ne {
  save_state /curr_page /prop_page LD pages_array curr_page get
  /curr_pos XD run_file} if} if} BD
/i {save_state
  /angle 0 def /hflip false def /vflip false def
  /orig_x 0 def /orig_y 0 def /magnification 1 def
  default_gg
  run_file} BD
/w {save_state
  /orig_x 0 def /orig_y 0 def /magnification 1 def
  run_file} BD
/g {save
  /grid_factor 1 def
  /orig_x 0 def /orig_y 0 def
  angle 0 eq angle 180 eq or
   {window_wd grid_wd div magnification div
    window_ht grid_ht div magnification div do_grid
    window_wd grid_wd div magnification div
    window_ht grid_ht div magnification div do_numbers}
   {window_ht grid_ht div magnification div
    window_wd grid_wd div magnification div do_grid
    window_ht grid_ht div magnification div
    window_wd grid_wd div magnification div do_numbers} ifelse
  restore} BD
/fr {gsave default_matrix ori_setmatrix do_frame grestore} BD
/pg {gsave default_matrix ori_setmatrix view_transform sh_page grestore} BD
/bb {gsave default_matrix ori_setmatrix
  view_transform read_bb sh_bb grestore} BD
/m {count 0 eq {(magnification ) psv_print magnification val_str cvs psv_print
  ( mag_factor ) psv_print mag_factor val_str cvs psv_print psv_nl_print}
  {/mag_factor XD} ifelse} BD
/s {count 0 eq {(shift ) psv_print shift val_str cvs psv_print psv_nl_print}
  {/shift XD} ifelse} BD
/gc {/ht_conv {} def /wd_conv {} def /local false def} BD
/lc {/ht_conv /ht_rel_conv LD /wd_conv /wd_rel_conv LD /local true def} BD
/vu {save_state
  count 0 eq {0 0} if count 1 eq {dup} if
  /new_y0 XD /new_x0 XD
  /new_y0 new_y0 ht_conv def
  /new_x0 new_x0 wd_conv def
  /magnification magnification mag_factor mul def
  local {/orig_x orig_x new_x0 add def /orig_y orig_y new_y0 add def}
        {/orig_x new_x0 def /orig_y new_y0 def} ifelse
  run_file} BD
/v /vu LD
/vd {save_state
  count 0 eq {0 0} if count 1 eq {dup} if
  /new_y0 XD /new_x0 XD
  /new_y0 new_y0 ht_conv def
  /new_x0 new_x0 wd_conv def
  /magnification magnification mag_factor div def
  local {/orig_x orig_x new_x0 add def /orig_y orig_y new_y0 add def}
        {/orig_x new_x0 def /orig_y new_y0 def} ifelse
  run_file} BD
/rot {save_state
  count 0 eq {1} if /angle_mul exch round cvi def
  /angle angle 90 angle_mul mul add def
  angle abs 360 ge {/angle angle dup 360 idiv 360 mul sub def} if
  angle 0 lt {/angle 360 angle add def} if} BD
/ro {rot run_file} BD
/hf {/hflip hflip not def run_file} BD
/vf {/vflip vflip not def run_file} BD
/l {save_state count 0 eq {shift} if
  wd_conv
  angle   0 eq {/orig_x exch hflip not {neg} if orig_x add def} if
  angle  90 eq {/orig_y exch hflip     {neg} if orig_y add def} if
  angle 180 eq {/orig_x exch hflip     {neg} if orig_x add def} if
  angle 270 eq {/orig_y exch hflip not {neg} if orig_y add def} if
  run_file} BD
/r {save_state count 0 eq {shift} if
  wd_conv
  angle   0 eq {/orig_x exch hflip     {neg} if orig_x add def} if
  angle  90 eq {/orig_y exch hflip not {neg} if orig_y add def} if
  angle 180 eq {/orig_x exch hflip not {neg} if orig_x add def} if
  angle 270 eq {/orig_y exch hflip     {neg} if orig_y add def} if
  run_file} BD
/u {save_state count 0 eq {shift} if
  ht_conv
  angle   0 eq {/orig_y exch vflip     {neg} if orig_y add def} if
  angle  90 eq {/orig_x exch vflip     {neg} if orig_x add def} if
  angle 180 eq {/orig_y exch vflip not {neg} if orig_y add def} if
  angle 270 eq {/orig_x exch vflip not {neg} if orig_x add def} if
  run_file} BD
/d {save_state count 0 eq {shift} if
  ht_conv
  angle   0 eq {/orig_y exch vflip not {neg} if orig_y add def} if
  angle  90 eq {/orig_x exch vflip not {neg} if orig_x add def} if
  angle 180 eq {/orig_y exch vflip     {neg} if orig_y add def} if
  angle 270 eq {/orig_x exch vflip     {neg} if orig_x add def} if
  run_file} BD
/go {save_state
  count 0 eq {0 0} if count 1 eq {dup} if
  /orig_y exch grid_y_update sub def
  /orig_x exch grid_x_update sub def
  run_file} BD
/c {run_file} BD
/pr {count 0 eq {user_printer begin /current_output printer_output store end}
  {/current_output XD} ifelse
  fr
  SEQ {
    clear_dict_stack
    pre_SIT begin post_SIT {def} forall end
    curr_SIT restore_sit
    pre_SIT begin post_SIT {def} forall end
    /NEXTPAGE false def
  }
  {/print_save save def} ifelse
  %
  user_printer begin
  printer_name selectdevice ori_a4
  printer_freq printer_angle {printer_spot} setscreen
  mark /OutputFile current_output
  /printer_xy_res where {/printer_xy_res get /HWResolution exch} if
  /Margins [printer_x_marg printer_y_marg]
  currentdevice putdeviceprops setdevice
    matrix defaultmatrix
    revision 312 lt
      {[1 0 0 1 printer_x_corr printer_y_corr] matrix concatmatrix} if
    end
  %
  SEQ {
    /run_matrix XD
    /showpage {
      clear view_dict /clear_dict_stack get cvx exec
      view_dict /NEXTPAGE false put
      (NOERROR) stop} BD
    do_do_run_file
  }
  {do_run_file} ifelse
  copypage
  SEQ not {print_save restore} if
  screen_dev setdevice run_file} BD
/prs {/user_printer XD} BD
/e {clear view_dict /clear_dict_stack get cvx exec
  view_dict /view_save known {view_save restore} if} BD
/x {quit} BD
/write_str {restart_file exch writestring} BD
/write_num {val_str cvs write_str} BD
/write_restart {count 0 eq {/current_restart restart_name def}
  {/current_restart XD} ifelse /restart_file current_restart (w) file def
  curr_page write_num ( /curr_page XD\15\12) write_str
  angle write_num ( /angle XD\15\12) write_str
  hflip {(true)}{(false)} ifelse write_str ( /hflip XD\15\12) write_str
  vflip {(true)}{(false)} ifelse write_str ( /vflip XD\15\12) write_str
  magnification write_num ( /magnification XD\15\12) write_str
  orig_x write_num ( /orig_x XD\15\12) write_str
  orig_y write_num ( /orig_y XD\15\12) write_str
  restart_file flushfile restart_file closefile} BD
/q {write_restart quit} BD
/dev   { set_device run_file curs_up curs_down} BD
/r640  { 640 480 set_screen_resolution run_file} BD
/r800  { 800 600 set_screen_resolution run_file} BD
/r1024 {1024 768 set_screen_resolution run_file} BD
/r1280 {1280 1024 set_screen_resolution run_file} BD
%/rsc {screen_W screen_H set_screen_resolution run_file} BD
/rsc {run_file curs_up curs_down} BD %% ANSI.SYS oriented
/hlp {/help_save save def
  /help_exit {clear clear_dict_stack
    help_save restore c} def
  /pagebeg_mark [(%%Page:)] def
  /prolbeg_mark [(%%BoundingBox)] def
  /prolend_mark pagebeg_mark def
  /undo_stack [] def /redo_stack [] def
  /print {pop} def /prompt {} def
  /x /help_exit LD /q /help_exit LD /hlp /help_exit LD /help /hlp LD
  /a {pop} def /o {pop} def /op {pop} def
  /rr {count 0 gt {pop} if} def /wr {count 0 gt {pop} if} def
%  /hf {} def /vf {} def /ro {count 0 gt {pop} if} def
  /r640 {} def /r800 {} def /r1024 {} def
  help_file findlibfile {closefile ap
  1 /curr_page XD
  0 /angle XD
  false /hflip XD
  false /vflip XD
  3.927 /magnification XD
  0.777499 /orig_x XD
  21.3539 /orig_y XD
  /ap {pop} def
  c} {pop help_exit} ifelse} BD
/help /hlp LD
/ver {PS_VIEW psv_print} def
/rev {(Ghostscript revision: ) psv_print revision val_str cvs psv_print} def

/undo_stack [] def
/redo_stack [] def
/prepare_state {% -- prepare_state <array>
  [curr_page angle hflip vflip magnification orig_x orig_y]} BD
/save_state {% -- save_state --
  prepare_state /undo_stack put_state} BD
/restore_state {% <array> restore_state --
  aload pop /orig_y XD /orig_x XD
  /magnification XD /vflip XD /hflip XD
  /angle XD /curr_page XD} BD
/put_state {% <array> <literal> put_state --
  /stack_name XD
  stack_name load aload length 1 add array astore
  stack_name XD} BD
/pop_state {% <literal> pop_state <array>
  /stack_name XD
  stack_name load aload length 1 sub array astore
  stack_name XD} BD
/un {count 0 eq {1} {dup 0 le {pop 1} if} ifelse
  round cvi /control_length XD undo_stack length 1 ge {
  1 1 control_length {pop undo_stack length 1 ge {prepare_state
  /redo_stack put_state /undo_stack pop_state restore_state} if} for
  run_file} if} BD
/re {count 0 eq {1} {dup 0 le {pop 1} if} ifelse
  round cvi /control_length XD redo_stack length 1 ge {
  1 1 control_length {pop redo_stack length 1 ge {prepare_state
  /undo_stack put_state /redo_stack pop_state restore_state} if} for
  run_file} if} BD
/wr /write_restart LD

%!PS-AdobeFont-1.0: FuturaCondLight
%%CreationDate: Fri Jan 05 15:33:46 1996
%%VMusage: 1024 5521
% Generated by Fontographer 3.5
%%EndComments
FontDirectory/FuturaCondLight known{/FuturaCondLight findfont dup/UniqueID known{dup
/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
17 dict begin
/FontInfo 13 dict dup begin
/version(1.000)readonly def
/FullName(FuturaCondLight)readonly def
/FamilyName(FuturaCondLight)readonly def
/Weight(Normal)readonly def
/isFixedPitch false def
/ItalicAngle 0 def
/UnderlinePosition 0 def
/UnderlineThickness 0 def
end readonly def
/FontName /FuturaCondLight def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/StrokeWidth 0 def
/FontMatrix[0.001 0 0 0.001 0 0]readonly def
/FontBBox{0 -17 338 697}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0525392EECAC163E584A9104D99AD0BC1B1F3F7121D1D0
F2C60DD206B0D3C8C450620B47320CA0AEB8937511E456AADE8E66B301B1E3E9DFE17E2F79ECFE
A709FF3DAE19B4C169DF6773EDA414D02915A6F0FAF8B24FBB0777C697BE8A37D63A390AD9DAE4
95BB7E626721FF2FD3FB147C80D22BEAC37C2624D818D58C8DF0209F5CE76ACDDE57A303D9042B
F0A674D095697F925F532D1814BEA8F8A5B1FD0737F362C88E00ACAED0FBD7C99D04538BF47AD1
AC0EEF6289D64A227208CC932D86BA91B06B84F1C78BC60A9042E6B985666F15684EB454AE6C29
DF8A9904192A40F725679F530DE4A953049751DEC70BCECE74A8E57026CEF2FDDBA1D1E7C8BF93
66D03DCBC7205454303EEC2146BD91606462E63CFD1AEED94B578C13A70F0B1C819D80E87F808C
E959EA32600B0E5998DA7D5A0A7C6E22F26F0BD55F3A0E290F09828D1E3EC3E119CE3000BF8D64
5C955811468EB0AC9F444BE51D60A4D3639C10FCE22DC86F074918566634F5268E3D697B17C102
93A68D53840037A9F547C817D763BDFC57E803DB51E5C398CBBA9DE9C16849F47364F2761B277D
053933406E2AD6150B572A36B5A2725918339601427E64A5E96D47C614D1424B7D1449B71D4BC7
20F615D287B9ACCB39A86126B419817F40C84FFECC431C92B995D8B1A04F16826F1B268B109BB4
155C5D073AD546ED7362BB261B26325BB60D366F9F3A05D56FD7E0ED81DEFFCBF433DF42A1661D
656C27C4864FF698228F64C9C22480EE51F809DBA2E131A6EF795F2F690DC37440B1AD9155E8A6
A949A75E449A46CC5716E1BDA9EE77AD3E44DC50C53E3D232999CF429D4E3BEFAD5341A8E0A19C
3A9D82BE797771FD3ADA7DEE0A77B08D7963706A14A40F26E417784B54ACB51E7CCAE759718414
51A704DAAF9429EED7CBB3F9F236403E4979D2A362C440766587F7C9E2E43707530FF446F58B37
C73CF528951E056AD6CA9054081804F5FD98DA373999C785F3E7A53037BD3215FC55E3BADB2725
A9452350EB3A9763E830B5230E8BC76CA1F1A93A06785600D9FF31D281E130F313448EA1FA882B
C224D1E38A99934913C792816130FD64FAD297A4A4941272C1818F6A1D30F81A5E6117720C4A8B
1DC035E199017D8F2CD5598146862D91E878A80952F60B9F21C4A97064D194734F71C6277C3B2A
9EAA8C7682A05FB4F5A96171389519ECE17464F3D605FFAF3420D956E6B1B3F2C988072C429719
6B8241FDDBE9E0C6FCBDE1AD2F8A011E072DD5D16C853B6C57E2D06608398DFE0AD5C5EFF54A9B
8CBB7C3E480ABD0E45FD188E5B47A9739A7FFA78D2CBA6C470F2DF7B5CE2A079814818A2A45343
74A43C71D704F10071741DBF268AD761BF8AB57AEC0D773273F0A29B9EB54A68FDED44E1341BB1
515B14377AA89B2E4A6C9911B1DA039D52C9C1CC35EE9D7011B8EA8A5706B696F924A59C6FDE05
F9201332C578776A653975695A79E6D3518EC573FB9532E3989C57BF5D1AFFFB0650F020F996BB
5B99BD8E5EF4A89A2578B90097EA29F2EB8FFECD25B7A82998B9D23228A4641D120E6303FE4FA1
BEFB8CEDD0043BD669855278AA8A3CAEFB33951CE56AA3CBADABC53867A764559F25F6F6C8B0D9
FBAC727A587B4B8EF9AAD2435F80B59DD7483CC787EF07FB837A380C4A6CD524FBD1CF5C1627B0
16CC1A385134D4867224FEA4DDF33E03F7515938060ED08AD14EDC9740EA97C8913D5327A65293
A939B4A33611EDBB246DF89113B2CC9A8936EF1294853EB13165286FD2A7C7713962F919E92A41
50BB5CFAC727FADDA19E7D1C5FCFDA42EBAA13B26662CD50D02C299BC18E9DAD3C1BD025838381
A9D1E3C93022B58A98889D18930DDEA6B0A42DBFF8845968259F2115206FFE94F83C2179C15B14
309ED6576F771B9679B7375C319E4F889BA6067127C194B5D1346E4A65AB1C7003B13894AA835E
E2A395FB6FE0A2D91AA73ECFCC29EC7A794FB3DEBEBE9E41D75CE873930153F444E815AB4B9A7C
28A9A8E24E51B36445589A15A42E96C98D31259A361A006376660DC7C62652B245F6228586C346
BA4C3C8F458531534DB349DF601BA97DB4A32EA47FDBC07FC337B8C5A3E2D975B2BDCE6E4F21BB
479973509945DD8056FB5C3398916C3363A0C19F2B5D90A7BCBD82F087090A43F2E1FA78203B48
455C02826682F8D7B285BA506E4E08908C11045262D0EAB75D738EF07D689A5A49A6A9CD1E2E5D
873FA7E816D9648171F4757A68343E5F4877681ED3F0A738AB26C19DB24FCFDC97126A0B0CEADA
C8D61402D2026819FECEC13C37256142EC3C64C0955D69D5000C761D25FACAE658BCF5CB00D80D
6B5C650CCA49E47167052C8E6B686268EC3901B63F9130B3E2AB9D941E62DBAE73A122437A02C1
F81C9CE111D676F5C57BF1CA67C40AD827BC8FD5F3FCC522D852435A563C724AEC6F6AE4ED3BE0
B3A3A8087EF6A4142BECE917E0E4D378B9645B68356E41FCD9DA2CC2C4104B8F07C05DA6EAF490
AC047E97E8EB9A41342142CD3EB2698A453A62E46945EB5630FAD396ADE7C3B3247C4110538AC8
8352EB2D48FA29D33167181F60BF36A9DC50E61FFC99F6CA1079FC8DCC1581AD9C05014267A11F
963F5C87A7689C6785B074F67DF1E66CCF7C81B201684FED66EDDF883964FD7239886C57DB4B04
DBCF8E7BC1BAA23EA2176152F856C36605C05126FAFB608F26779E23C9E436907D9D7E770C079F
9EAD9C9B0297E21B0A51DDFACCFB5E6E30292EF2F3D6312FD7647D67809C2A132166C3903C5A04
16B5233B6867B1C8F9DF091A1BCFC373D312F447CF0DE0026B57AE7E0CEA47D81B0536C8DA4123
B2CF44EF742A45D14EE771CCA5B3726BB9D19DE584DE547F8A8A51DA107219BDA245EDA31D066F
5DA701D33850D31386E81BFF44A13BC5CEE1535AB8671EFCEA31F1F07D7C5126C37B72F996AABE
3495088CEABFB13763FD71D9A04D43B9EBF18C06A4F245F561C25CA4E66DC7EB6996A507ED492E
6C115C9556C4A9644294309DEFB0BBD379743DEEDF68997D537FE04D9791550223D9666D6869A8
5E6615693B963FF4CE227C33C55F50548514BDCA24B1FD6D3FAEA95FD994A0A2E51A3FDE15ADBF
9435C0595AF7A95F60C8B4826AB66AD6B881B491E506EA1EB92FDB09C3C9E572731F95957AABED
36E18349F31CA1BDF4F1E2900E37923518D9DB78C4B3934C9B86BE3B893E7C358475AD3EA70995
7CE23D39B6B8D57E02F1C41F24646DAAF64CB656CE318DEC46380E788270FFD1691892E94A59E6
E7255215C9E410EE0F139A89FF2B2CBDC61A3889CBC27AD5536541D9FDA8E6E88AC6A428433616
AE4467AB4F275F79F9B71D8B38EFE172B297994EB2144D0CA7964169F40CF14453F17252AC38A6
7113123F86296D89D3114D7F1C84EAB1E9C02D68D5184C75DC92D89B07F0897FAF8AD89A1ADF8C
307477783CB97A6CAD3D53373373A0DAD19BBC4D23517B78E1BC5AEA479B28166FB78004EB24D1
FBCCC7E66605148120D6FBCE773F9D30F3D504163CC27517366A69CBB6362A9B87610EBF027EFD
D398DE0CD80A6FB4B9E2AB44EAAAD75B27249330C923DAA048D40BE4FA0D146F14364C318F794C
29C0F743BFE0A68E1B00D22086485BC80912BD515BDC4CAA6D12059F33DEECF9A0DE183A61F633
3796C1A41FB921A835B68F82A33F05FE9B5C70C21302ED112E1EBBFE8005041D56CE72CB67E59E
197BFB6D93A11744D0435B6ABD8C77A414FD723080825A9F9069EE4E93F489D29B1D16F3A6C869
820C7C9E774A16BE8F45314E91EDE29DD0412BB2E8F2F26421385AFE39F3445FA166EE2EBC7C35
2332074EFF0DDB3225817BAA2DA9BA9BF0EDE14CD70491485E465121B96C8F0FCF578A45B12352
976A4E810717FE4B142D4E7AF0774768E77C146390E1D028E44156E02EA2007FA0DF1A482459A6
8F4E038F4471209BA110D01C7EA427062A2C90EF7DCBD197F71D0971763F5AEF83C596FB661B1E
DADB0E91764CB4769C2E1A632E14B3D25F737FC829F11115837FC1481CF4F85903FE00618AE814
5B46569CAAFBB1417023107E679978B927759D339AF5
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
cleartomark{restore}if
end
%!PS-AdobeFont-1.0: QDSSXX-Normal 1.000
%%CreationDate: Tue Jun 16 10:45:12 1998
%%VMusage: 1024 22888     
% Generated by Fontographer 3.5
% Prepared in BOP (1998) basing on a modified CM sansserif font by D. E. Knuth.
% ADL: 797 203 0
%%EndComments
FontDirectory/QDSSXX-Normal known{/QDSSXX-Normal findfont dup/UniqueID known{dup
/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
17 dict begin
/FontInfo 13 dict dup begin
/version(1.000)readonly def
/Notice(Prepared in BOP (1998) basing on a modified CM sansserif font by D. E. Knuth.)readonly def
/FullName(QDSSXX-Normal)readonly def
/FamilyName(QDSSXX)readonly def
/Weight(Normal)readonly def
/isFixedPitch false def
/ItalicAngle 0 def
/UnderlinePosition -215 def
/UnderlineThickness 75 def
end readonly def
/FontName /QDSSXX-Normal def
/Encoding 256 array
dup 0/.notdef put dup 1/.notdef put dup 2/.notdef put dup 3/.notdef put 
dup 4/.notdef put dup 5/.notdef put dup 6/.notdef put dup 7/.notdef put 
dup 8/.notdef put dup 9/.notdef put dup 10/.notdef put dup 11/.notdef put 
dup 12/.notdef put dup 13/.notdef put dup 14/.notdef put dup 15/.notdef put 
dup 16/.notdef put dup 17/.notdef put dup 18/.notdef put dup 19/.notdef put 
dup 20/.notdef put dup 21/.notdef put dup 22/.notdef put dup 23/.notdef put 
dup 24/.notdef put dup 25/.notdef put dup 26/.notdef put dup 27/.notdef put 
dup 28/.notdef put dup 29/.notdef put dup 30/.notdef put dup 31/.notdef put 
dup 32/space put dup 33/exclam put dup 34/quotedbl put dup 35/numbersign put 
dup 36/dollar put dup 37/percent put dup 38/ampersand put dup 39/quotesingle put 
dup 40/parenleft put dup 41/parenright put dup 42/asterisk put dup 43/plus put 
dup 44/comma put dup 45/hyphen put dup 46/period put dup 47/slash put 
dup 48/zero put dup 49/one put dup 50/two put dup 51/three put 
dup 52/four put dup 53/five put dup 54/six put dup 55/seven put 
dup 56/eight put dup 57/nine put dup 58/colon put dup 59/semicolon put 
dup 60/less put dup 61/equal put dup 62/greater put dup 63/question put 
dup 64/at put dup 65/A put dup 66/B put dup 67/C put 
dup 68/D put dup 69/E put dup 70/F put dup 71/G put 
dup 72/H put dup 73/I put dup 74/J put dup 75/K put 
dup 76/L put dup 77/M put dup 78/N put dup 79/O put 
dup 80/P put dup 81/Q put dup 82/R put dup 83/S put 
dup 84/T put dup 85/U put dup 86/V put dup 87/W put 
dup 88/X put dup 89/Y put dup 90/Z put dup 91/bracketleft put 
dup 92/backslash put dup 93/bracketright put dup 94/asciicircum put dup 95/underscore put 
dup 96/grave put dup 97/a put dup 98/b put dup 99/c put 
dup 100/d put dup 101/e put dup 102/f put dup 103/g put 
dup 104/h put dup 105/i put dup 106/j put dup 107/k put 
dup 108/l put dup 109/m put dup 110/n put dup 111/o put 
dup 112/p put dup 113/q put dup 114/r put dup 115/s put 
dup 116/t put dup 117/u put dup 118/v put dup 119/w put 
dup 120/x put dup 121/y put dup 122/z put dup 123/braceleft put 
dup 124/bar put dup 125/braceright put dup 126/asciitilde put dup 127/.notdef put 
dup 128/arrowright put dup 129/arrowleft put dup 130/arrowup put dup 131/arrowdown put 
dup 132/quotedblbase put dup 133/.notdef put dup 134/.notdef put dup 135/.notdef put 
dup 136/.notdef put dup 137/.notdef put dup 138/.notdef put dup 139/.notdef put 
dup 140/Sacute put dup 141/.notdef put dup 142/.notdef put dup 143/Zacute put 
dup 144/.notdef put dup 145/quoteleft put dup 146/quoteright put dup 147/quotedblleft put 
dup 148/quotedblright put dup 149/bullet put dup 150/endash put dup 151/.notdef put 
dup 152/.notdef put dup 153/.notdef put dup 154/.notdef put dup 155/.notdef put 
dup 156/sacute put dup 157/.notdef put dup 158/.notdef put dup 159/zacute put 
dup 160/nbspace put dup 161/.notdef put dup 162/.notdef put dup 163/Lslash put 
dup 164/.notdef put dup 165/Aogonek put dup 166/.notdef put dup 167/.notdef put 
dup 168/.notdef put dup 169/copyright put dup 170/.notdef put dup 171/guillemotleft put 
dup 172/.notdef put dup 173/.notdef put dup 174/registered put dup 175/Zdotaccent put 
dup 176/.notdef put dup 177/.notdef put dup 178/.notdef put dup 179/lslash put 
dup 180/.notdef put dup 181/.notdef put dup 182/.notdef put dup 183/periodcentered put 
dup 184/.notdef put dup 185/aogonek put dup 186/.notdef put dup 187/guillemotright put 
dup 188/.notdef put dup 189/.notdef put dup 190/.notdef put dup 191/zdotaccent put 
dup 192/.notdef put dup 193/.notdef put dup 194/.notdef put dup 195/.notdef put 
dup 196/.notdef put dup 197/.notdef put dup 198/Cacute put dup 199/.notdef put 
dup 200/.notdef put dup 201/.notdef put dup 202/Eogonek put dup 203/.notdef put 
dup 204/.notdef put dup 205/.notdef put dup 206/.notdef put dup 207/.notdef put 
dup 208/.notdef put dup 209/Nacute put dup 210/.notdef put dup 211/Oacute put 
dup 212/.notdef put dup 213/.notdef put dup 214/.notdef put dup 215/multiply put 
dup 216/.notdef put dup 217/.notdef put dup 218/.notdef put dup 219/.notdef put 
dup 220/.notdef put dup 221/.notdef put dup 222/.notdef put dup 223/.notdef put 
dup 224/.notdef put dup 225/.notdef put dup 226/.notdef put dup 227/.notdef put 
dup 228/.notdef put dup 229/.notdef put dup 230/cacute put dup 231/.notdef put 
dup 232/.notdef put dup 233/.notdef put dup 234/eogonek put dup 235/.notdef put 
dup 236/.notdef put dup 237/.notdef put dup 238/.notdef put dup 239/.notdef put 
dup 240/.notdef put dup 241/nacute put dup 242/.notdef put dup 243/oacute put 
dup 244/.notdef put dup 245/.notdef put dup 246/.notdef put dup 247/divide put 
dup 248/.notdef put dup 249/.notdef put dup 250/.notdef put dup 251/.notdef put 
dup 252/.notdef put dup 253/.notdef put dup 254/.notdef put dup 255/.notdef put 
readonly def
/PaintType 0 def
/FontType 1 def
/StrokeWidth 0 def
/FontMatrix[0.001 0 0 0.001 0 0]readonly def
%/UniqueID 0 def
/FontBBox{-64 -203 1017 916}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0525392EECAC163E584A9104D99AD0BC1B1F3F7121D1D0
F2C60DD206B0D3C8C450620B47320CA0AEB8937511E456AADE8E66B301B1E3E9DFE17E2F79ECFE
A709FF3DAE19B4C169DF6773EDA414D02915A6F0FAF8B24FBB0777C697BE8A37D63A390AD9DAE4
95BB7E626721FF2FD3FB147C80D22BEAC37C2624D818D58C8DF0209F5CE76ACDDE57A303D9042B
F0A674D095697F925F532D1814BEA8F8A238428C7CFFA9AD00A69BE3AE10FA88522C2E1A6CC40C
D7959397445AFBBFCBB40946FF99F8D415BDA1754F23B302AECAA21F8455B9095C57D4F3D00D42
A5CB5086BB99D70142316407E4DA06B61DB9846C5ACBE2F8525E91712BF98D06C171A9987F93F3
B4BBE6DEF3743DBBFC311605E977BB1FE846F17252D4876C2D1CF74BF15546A31F2EE591C1EB35
DAD685E8ED96370EB4A41515D0EC44CB9A5C758033C09587FEA7504470B04FF86C54A2BDB3E79E
4398C68C6F613498DCCE2AC418F9CC9150D156406263F8E4D5D22AB67A60BA8D85C30643D0D870
9DB251E3FCC21DEB0221D63D909C7FF5AB89D7904E54831110ABB2D0B6618C561241FC4C817A0C
DC8A1D9EA1A242EE210C805C29C9483523035DF4B6A42CDF12FD97BD7BAD0516B13F57D5B88BB9
D233B5E4FB8A48544A73B77EF6811EBE41A6865032AEDFF3DADD1844BE36E421823CEEB14661CA
7607D185D1E5941E6545F9289EFF0E14490191020C4DA4077AD4F72DEF8134F99F47891532AD52
5190CA68D5739CF0DD5D89D8FDB3D2CCD3832F9D1B482062EAC842F209150B1CA6CCCF965BEA5B
78ED3CC37AFCF8CBD4F22FB2FBF6B0D58157E74F451CD1FE24BBE088A6DF3EE50851FEEA89C185
8F1F68111D921DD21A2D91C2C88736994B7237DDDD0AEB3AB19D0EFE83937474321B7E4C63295E
9F55E134A663980C768540A8BB14D390F350DA0BA503DCE487915D0A9226ABDCDA689F202F6083
1F7C96311F8EFB9B170587F9AD1CDFD668BC792A711875F4D86CA59CAF894036EBED2449863C38
560F4CF0596F68B7DB18C6D3F9FD0EF0E6C5EC7FAA3A62D68785283BFF0E6663AF5D860AB2AB27
BBC9E57C46B9B9A874B9224DCB5BABC9A05183869F677C8DC4C5D8616D5F643FFB8FC5DCBACDCB
3524BCA2E90F0FDCFFBB3135C9D739768AC424E16588749CFD0A11A36CA9AA396C4D7582CEC03E
A77B00040FCA30F6B96B335682C7CE2DE1E7356EC133B78480972CEE13C231951C50F259C97300
B555D389F0A4F019504987B4DB7095DA38E222722722D31BFD70B6B8F013078728EFC9F45C88DE
B19A25ADF996AC4F6405D127F77966BED35625930C42F2EE0EE1E463603884F05A1A7DF1BC22D2
8F45019B219187B9689A2488502B3EF8841651AD6A44FCD24A0B3CBC3DAE467D903BA3BAA014E2
28C132B2B51F33D1675BAECF5D83FC782EDF874A6D6E942EE2F98B11A727EDAE092D23A7EF6B94
2C8AD02D5168149E950F93A5F3B7F7E0DF87832B92C298DF2EC7709493E1EBC311C0A47764156C
7E7B5475EBB106355548A3A1A7B4E6525B8C3EFFB8162AAFE2C7C4FA75ACC3F852BE8FB9F9D587
027B6402BFBA54671F721AE8DA45ED57D011D9A2356B9D2CAB9F18D3EFE45D3E7026A2C7AF1A9F
B0475701DAF683695B0D466239A8092E6FABB11FE124ECE29D10DA5B77B2DA9C0AABE6AA417CFF
EE315840B9D687488053602966F43AF5016324E461FE79E0A845DEF0E8FFF6FF570B49526A75D1
0422EC1CEA8A4653081077E6A0982CC854C82DE326578E582AE46F714FE4B171E7AE87AD392B6D
0A6FBF280C60F36FAFF8244C1AA0AAF2057B0B504BEADB9CB961ECF19DE3DA5301A13DA3DC43A1
A21BC30DE9AF4E34BEA47E55D4F2FAD3DF397806782DE16DDEA0B8BAEE76CB05771D5B0EF33F0E
272066FB1B6D745DEFDBCA591FF08782AEB8DA95925A9DFA77049C3EED074B538725715120DDF2
218A5EEFEE97015A7AE6BF10D712280B8771B7BA9939D0F8E3F0C0C271A3D30FFEE6B4886E36B3
0ADD739EB3908857A605B09030ECB8FA721050A203A618F413D4DA675EA622DF5C6FF9E210843E
517ABB4DB23122EECAF722C4A3F681A48CCD669A58DEAFC742EFFC7D1AC2A463B51A68428B31BD
C19748C2E1C212360F47F84AC21A8E18F4C770687845A8FA3F5A96FD2FDF5112BAD02BFDA08821
C4BD13F7385E582673D961A43669B0888AD258014D43E45F4B992133C88C95A64C8E727AF4FBA0
65EEA30D110B08EE9405733AEA098DED6461CFBAD3724A09EBAB4EEF60DCA57C7EC7FEDEC5E1CB
22D66F1544582E214FB7521DA7D49058F1687BA617ACF2C1AF71F3D8DF06EDE28A451E8C3EA736
67C44123EC9036B2186E3481D32C4A0C3BB4B55288AA63F08A0C7C5A938076249375421A0FEEF6
09A42EA02E439F1A259DF7441491A08DF32C04F6EF0815EE6CDA24FEBA7D5AE1F0F68F9E0756F9
90FBE598CF87D59397DCBA5270B2DB64830F1D853388601E422F27804AA6E1903476C98E2B7D4B
57EFD4F3D36AF40F43D3ECC172F44FB80DC24AE1C30F930B93632F4D1C8CE802972CCA74FA58EB
360D5859029543969D72BA4FF1F962E9D37D8BA78F5CF1C4C4AE9AE67923DED97B5DDB9872E4FB
368398F74E1BA359FF34A207CE5845EFA89905F469A68DD4402FF3DB0427A95F74D6DBA367BA30
CDCCF4B5406FB158CF279B831931EC683D056A75F9ED586B40817A3460217A59EC5278B8E88DB0
C4E43B535395F953F58DED16EC64F0CF4968192835C1CA83B49E301548C661C97500E207CCB5FB
4007BE830927470C587EE12993A047FBA8030168305CFF6416EE1918EB9059939D9B7219087676
97FC7FAE660623E943DFA0932B65C1FF779C89CA7B7A546466B9C285E6F12E2660A785906B4D2D
1574111275DBC24EAFBEDECC50A9DF8403DF6E34217ED468A0C452F9B16CBE8C7A8DEFCF43E3A3
900291F14BA62172FFB10FA147508FA097A484D03E7415C80F01520FBAC0BAE68521AA3AE2C3EA
76E03D679FE01692A17701E3B4B82E8C019483A7AC9752DF76FC96B0A85D275DF95809D971C746
6081548CEFDAC6AA739D81342D24F2167A751BDC9B7CCD403FA99AD7A985E03B45448F55D000AD
DB02EC6D7A57C351B9E32A1E285F1F2C5DE0619A3E75E6D8D3B23BF30EAE7B1749B3D2A98B9624
2E1D9E4847FE0C98363EB6A6E91E246E4676A7A14ABC02EDD706AD8E97E3C5526FB56EBE59A497
7D52E073E8A59124223039C93B6AA04DB5DD4AFADDCFCEBF0EA0F1A73C9B0DA246BBB9A64FD893
91C048734F102B1F9E8919B73F34136F0DB2DE1B8027EDB8C512D2099E2FF8F52AE1FD26AEDBDD
E6211576B517B6EF450FC2DF1CD9A5B30DF76FCD9036DCBEFB6847D49942E292D4ABE5A6BF1A87
A9F2416D360934A0612CA3111694728DDF715343EE165CA171B928CD14780734821CA6B55AEC9B
745DF9566CE767E30A8C3AE5981FD113F31D2FDCCEDEB54384C4B51A3A7178739B3AFFF7DB5DA2
A15CA473EF99F8D5E5B23BD63D1DAD174CCD6AB678CA4407689EED1A61FDDFE526E616A33A26DC
DAAB0D3B794A897A222C646474C3EC5EDAB74AC0DCB1CE940C11AFD4748B1EB9E6F1E221F21956
7DDAED6DB33A0895B308E67FE7FFCD42495367A0742C699872CDCF4C4A160FCB7ED6BC1B3882D4
54A44456835F5FCAC86EEB25ADDAAB7084446DA3318004CC369F68B7EE0B47644B35454C7FA8DE
753181F5D177BC8AD5966D54EEBCC68A8A619885113AE52B63B482C3E52EF7B0B8DC46F0BD3A59
588874502A11734CC1F0E004A51B0AFF92F017F55E5B6D45EBBC84AB262005136A491CA2D3199A
4406404E459059BE2827D33398F8F0A81493872995DD88843B6DD0C82339CC8F4CE23019C39D17
6DD5D4BDA201D2ED9E4C082ED6EDE06109A714E9F2DC34B842C45CA7DAB4E6224119B88EA0B7ED
61B5E73EE3CD7A3577C159D23B4F1675AD54790EF0E08B196BC150A303EBA535D2B8A82881E711
1A7668EB5E94D8F37C3FE24D2446AC3F58EDC8952D0509C8119226C78FA7D283DDF3F7D80AB956
5FF5E82B36D694F34B067260E776FAA811F1148FD19D45831E8BD46C4D1CA5D4A21A63723A4FF7
600EC58DC7ACFB1EF18BE0BA780B3C04E33CDC88E4018E7526DAA765CEBFB30C5E40CC0046552A
F6A9A2D867C2E35D537C2AA649A923F40A33BB3331A257A3D1C15CC8CAC765CCFC3BF012052031
3B6F46C8372404BB692B7A9756C846DC86459C0B7CD06DD23F2DB4675065F649FE81E6B3005AB3
8B4DFA8938A9AC7FF921CC1B383A77822CDF82BAB3BC3397EE5DDA5E3CA792DAAF8ECD15E837E9
0C838A22A198FA4CBA57B925F4691C69337F4656C99E4BDF6D79729E231F66EC3D23E60B5EE133
0E359FB64729BDC3B399AC49D237A277655698DC7E5B11A744FB3DB0E27641274D9EBEB5243B61
DAE95BB1FA63DD6DCA2ED6A5AD022042645FFC7FDF18411758C92647B2855E9CBCB63186F831F4
1B3174D68456101522DEFC77A076A79CA24B4F153183391C8378567002FFECB3440BC2E69A7A36
521C33ABA6F3606491D8387A52A1B70FDC50B7E79EEB1F06E041FDCA28B186B2E50F0DBD628315
C749FDF2E66FCF09D1F9DA69D30E22C60EEAEF847D4ED48C9D656D83139769F56BFC50A7F356B9
DBEFFF954F92EAF28584441E8A9E3CD3B892CB3C02B09BF1CEF93DD1DF1D4C819C45F08F3ABFC1
422CCBADFCB84B8F0E461DD5EDC966AF46E1C31FCA2280FB55824DC0C790C4B03B622ED7D8DEB0
EAB12052725209A771883ADFCDCB6BF7470AD7CB69430BD5534BFDC40680D52F81BEEEA5482DB0
192CDECC59983E32C65384555ACD3765F34CCFA54911ACD0FFA79CC63DC801294D9312B83B26AC
B316AE8893D14B9DF9C0B8F2C7B96E0D9885522F558539A4AEFF1E77C13B5D98FBB9EFCC70C9F1
1D7131A5961CD341DFFFCE2D88D2A5EF01EFF598875FF7B06BF5139D098621D05F19645CC2D8CC
BBCB787E0EF3A3856F5AF4F07FFA267C4D8238A27357C4697E778635C742CE3ADACA8707900D43
3B0CFB0F762056EE5F71C73F6D0E1EE183F351542EFAAC59452435C736C010B44704F212141D29
8494649F5DFD9424E8CEEDFEFC4CA4D4FC7A3545F07E81764507E20F4E30C016D4F5FA9F027C4A
71C3A66A56E8D58FDF709A6D979CF8ADBB40D7BB9741EE701AEFBF68EF338A2045015F8D1A1F99
9F9B718D9E8D52B446E390FA5252CC634440BC1D08E083BA4D310E79E378FECBF0E2C140C81ED4
F9BC94F7A8178A62A8DD40EFDF6FB225D5DB71EC80423DF84110FDE1226CD5CF127F4651A52F36
B4279FA1740C13290DBB340BBB3BA5A7A8E1783C85FF022EF8E01CB106A26EE41050672C9FDEE5
98E86425FBC87794E0E26F28EF2B8B3DEB373B20C93A8875809BB5675D10BE5484E79135138B57
CA58E53E8676527601E75D832679B0B71B80B731691056957B98A653FF3BA10051DD62BD60B096
954EB69AEB5916A99717DB0DBB1641AD681A29E7CAC2F2CF60FB1D1ADFB1AE0DAFA5AC8ABDC9A1
BC38C497DE2C3E392B555C9C53E0DF258E3423B0C7801F6A3D3C5E8711A905F2B7E806C02E148D
01A02A315B3BDFE53A61F4160A54C3487B9E314D2B0D9FB95F028053657BE4BADBA11C5255BB7D
5114BE2559F0FC2A9F61F887CA4DADB073D78364955B41CEAE3D6A938F5697ED026C990501D2CA
77E992AA0F31C27349E6D9896C87AE53CF0720C7AB0CD67F7F2E2F12E4EDAFCE439540DA2946EA
EA3C19B40C3798C69DE3C2ECFCDD9D609B1FB9D839CC5ED5114845EEAAE5449ADC496A3B983167
B67FABE1B23935BF1BF0A9B4A03667A154B06C1B39AF204EDCAE6627DEF9AC9ECF898A8BB9E78C
451BE100A0FB7FE850FBEBF26D4DC3C9CCF288F40AD1D0C8B32CE1FB79D62CD7542820803344CB
7C63D20CB29A1F5E3BE1AFD388BD6E8CEB900432BC0D92AB5D15574BD1C96C19407E00B173F6C8
F0392EA18A1B89AA9661F288DF1AAFD503506D77732D57BB87C3D3A2E4204745D899317784C216
D192A31685D0C35D0A7DEE9FD65109F5438DABE0B77FA52FCF3813EBA087B1AF34DCFE07390D67
87E86464719934B4342C3BD98209C77B81F3B368567A3CC48D129E778B4055EE76765F53248E1E
1092282DF2CB0EB8610B5B8A727B1B1176F994C33D602DB0593AC3BBCD9D15DD5FDB31CF90E052
D230565551902429CE97ADEDD3A5EC3F5FF83CDD9EEF3FDFD0BB5E29ED4CD255A7929663B9C583
897864E59C1AF691D0800CC4150C0315E58DD537B671B8B38175C68E401A391EFBEF00AF8C2A17
DCFFDA72F8FD1BAAA0F544132EC9C838003D020713EA5ED5D2F39F92F9337B9CFD877AF7266981
E67A7A5004E38E54DC138276863890CD915ADB08F9DBB181E36E159190E3C9C3FA2851F6EED963
06D1701C50AA80E75885C4128D2EAB0C32ED4181EDFCC1B3CF02A8DA34695AD1AEA6749866F370
2300DCC80474A2482D6C4F07B21ABD8E85220EA75727839BD3A741A789AA585E1E1C5F4D2C469D
2D9ED2B01E3AA2574347A276C0BF5AD194E9193907267BC2A46E3D276BA050CDCF523158657F93
96FCDEB97E5BCB0F6043D813881ED3B1F31FF5648A9F24D82F2108F7AFB5F170F4816E738CDB25
C28C3360C6B4E2812187F15260C2F6570D9042849FD9BB9F3229C17DD3807DF03996EA2745BF09
6DE05F559A96A295B64BED481C467B50A303AB53ACCCD98E40BDEB3608925CC48C7900A7A1FF5A
B310B6D11024266291103465061F61F56D9D3A159A8C3AA2DDBE49BADF568FB736D0782E8EC6D0
9325B93565C0C0C981BFEE0B5C24BA8CB06F4FB5121A5B841A84978EAF97C690471CC280A4551E
001F2CE371BE3599CBADC9765A5C5995B3583654F891D0E7254ABF44BDC288E943F80607130084
87C3314685054DD5EE2782BAAD6BED2F4DEECCC89D58923B17266B7ED193065817387A2E09F21E
1A70EEE78B1235F126AC01B6CB52E60C3014DF1EF0AF8EC567BE19047A39CAAA108A022D4C4BC0
4EA151AF25872521D0994F70391F6C1D2EA555EA2AF398D5DE25BB57B67B770F4A333A5A1821C5
2EFC188FC9EBB19CC68793EB33E5597DAF624DFFCF13AA1A36ABB40333794A762BDC53420471EF
5EAA5E0DB41A65598FB87E93C74EAE6403AF5250185B741DB78D6655768F36DB89EBB4DB54D9B1
51A641CA5DEAF53F3E84183A26894890C4F3C6273E787E791FEF2D4734D3038DDCB66F53F91BC6
AF01773FF030E11372290031583FFF36F80E01D9462BD9F68121C111D73853D4D2004F7295D860
7CFA4075FDBBF2FC22C949DE3B0CB90BCE82E871E4435F3F6BC007F70A92272D266A718C22E387
5D8FF000CA83EA7C4071764305076560DB8926520B2285C1B8A9B38A8899F9547F2DF0C144EE66
C0C06299DB31E07F14D6923F3780785D19FC10E3D2C7805344050B6A4753FF177667E9F6FC8F47
B7EEFC26CFEB7A1DC6A7028A0A22971A5DA242C54FAEC048689B46D01A835189B5EF23DDBD2507
FD0C2010D481B0C850627B9B4AAE5AB81B12E28F48060D991E63462FD3E99D1EE269B85F8D6A6D
F98C77F2361BAA7B1F6FB4AEB5D6515D63233CB64586E88C1AA9BA741377A3D8166192385FB378
5AA87A41CE89C068941DF37927BDB15A77F8190B9A545B0675C38591D92359AFA0CD40048285CE
7E20A24E380A241F74BE1BAE53B14ADE03BDE69EB44FB2A1B57D8421E6654A64506F6482AE7952
7B5920A5861DBBAE6A1FA8B824D7CE422530151F185F56AF581F8C5B75B2D436AC7857A7B85E8A
B6D054BE329EFC3782D42F5E272CEABBDFA269347C3511E6FC41A6F817A1444B2D159634E5F1BC
D162B7B7912F08654A46FB21E76C1DCFE8E030C95FC247694B470A0CE09BD561B11A18F31C1307
EA1AA4518AA47609AC56FF77A856A9A87A47F6DDCCD2D587E9AFBBD93B27006FB440BAE861A875
90DF57C1659E5604D906C98649FA9DB56330B9547275C6C1FCB6D747CACE2E4137D4B3F221B21A
4C0B2725E71B2957F31B461FBBB38C21B87317AC222D65C592244E3F690F533F46AA7C48466118
EAD41CB91B7FCEDD2235C40DBB7BC9F3F7E84A44D0A2F9256EB27DAE9F069F37FC9ABA099ED765
1A99D87BF74447180CB93A30D4837F89EC207544060327CBD2A0A449B68ED1569BDDD6AF6324E5
6C8418C10043BE284CEA1955AD3D71516B19A96D1D48EE4A4D681B75DDD5E61A405E0B8BA11F88
093A3F2B7AE9CE94CAE4D20D31CD513E1131D7570CED27261C0BF5C8F6AC8C13F93C984393780F
075E01899A4B327CE435065895D08C933A2A880F51632EA733AB4EEB1C104668EDFACB51FA8025
54631B6697F6DDFE8358C5E8489C883DDA4AFA0CC643AE6528C24CF32E38399BF5C585AE6407A7
E1E9A4BAFC25EE5EBF8161481A981EFE9DEEB8610532DBAA05D529BB45865069040B2F17D479DC
3D60680ED40C14FAC2C91C4BADF8BB5AE4BB303215AB4CAD27D6776A05DE891966656568172121
8CF08BE66E1D497C6FF825ADBCE1D098D661AEF7A532F545E0A606F2F1D6324E96E45183EBC85B
99505F57452740968A386EA10E8506D7F2DE6934A710779C70C7DB82DFEA43922D574682F3E377
29EBCD6A543F5786F7F88F85D84329C6730D62E9EC2D9DBA36141D62EEF6A074DFBBAA10466B5F
D0DD37FFE57581E184C77ECAF0031313F92A306D1A7DD530A1B99498474AE7019A7D7BF5F3B14A
5BB04063D940770EA1500B9317E81C3BD2A448C7457FAC0B5C76C6E3973A03036879441F9AEDF2
4FAA5AE4B493B6A44955E44820D88ED4AD4CD6906EC092B0BB5ECE2B6E7D28F40362B6EDD4ECF2
9FAB42AE3E6B3B957B4C48339C3552A733D697DCE77FEA22420131C1DEA0C9AA83C5B5B2040F6F
EECEFB998B06D6D055FB50EA8DBE41055A508A313AB9EB6E491103124CDAA4143CD3E93D5CC1EC
4EA082BB9155D4E64F9A5907293DCB23478E478822318EEB966EA718433F700708F35BCAC3D41D
F0877A2C55685B6D6DAF2A063FE36F4A261C94884FA2D0541E4B22DC114802F8D8592A4FD36931
8926469DC1918E3421675B380BDA342E0CFCD889E46B1A4106A742CC956511D6F89B3F9D78E06E
4D69D61DB7C2993921BFC75559131B62B2D7DFCBAF38345CCA43F9AE90035F47B155D07E922E73
4C9370815F861D86DE46704F21333542A085921D8353F87E0B68368A407799D26D1995E6D3D4AA
C2C4EA61BAC8C932A6DF934D2F285941957748ECC62E4C11B835E3014BA0B82109A3826BD3EC47
0B4608727981E2E50B2FA2DE23739256947D7985BB37D0621D0E539B617A62E5266D5AF11CD0B0
DD78E18D815289C9796402E36887FCE5FA3436AA9E6FB5A47FF13ABD9CE8232484F66764A0D815
38F87F29F90C54E8178FA40C7097CFF2294448EF93015F84BAC6AF06E5C4BD5F7912F4AA4D3288
18561D69CCF8DA157891FB97FCA4D879AC2714D4167BC6F0485392A8C94E130C0C5A422045D333
51EC64107F2B9ACAA94950754B4EFF6078790D59FCE323C1B82D4AB559EB4BD9B394902B987A76
C6B2E0D118BD9247F8481466AB460A33234074823A4A275C8C30E0C11465052D0A2DCFCEEA7CB5
E01B4A3E629A5AB9C4D707F651958F5FB4AFD075C42BC5B527D9170F2F24C3A31964C5353DF5D9
9C2F493C21EA98C84CD89C87BF76EE6BAEA8FBB5FF9C10D9765BF6F130262A2DAE4C3705C8D849
E92FDFF8CF65FF6E39CBC716235407C1DCA40325331E5EEE8995C10BD0241442ECB330C4FD35C1
2F56EEE41A3E380F5B7DF3C977EE4B03A4C98BEEE658B0348CB8174AB87C48E19DDB47766A0481
F83F322B166F4CBD3D1D1AF6BE3D2ACB5DF8F1369B4892624565FC298B70D8C0D60AF1428CAD1A
3B5499F6F551F5DEB6749EC08D9B25CA3C814EAE8CE275AA107D2B3FE7940333765FC695D69446
19B8F6DD65BE8053E7D09A311B327DF81CE3C3EBA3848B174C4FBCAF835632882E6D13C1FA0A08
66F209A9ECA8725F5F61C05CCE44851589140722DFEC8A93FA0A50A883132F28DB7AF23FDDA8FD
C887FA543D7380FC3563D88A7B243A322F4835EA96FA1D9937E352D0E19B9DE2DABB7BDCB95B24
645CB40B7122CE2FCB811F47D02BBFF7FD7CF8EF2EAE02598AE06C27913E3DF26CCC1436F14CE4
12CDF0500B8EE2FD3799B56C53D535DB1F33C09C11A10C0B4C6B51EFE8B4A4D2353330B3A0D631
E601832C84CE4E3D1BE09915F816EED772DC48063612983C74999327F949FFCFA845B0BC578EA6
82B9D3DEDA9E31C282E63A43396E4FFE9AD516E3459359173CB76975767790702D941770331302
CE49D74F7DCF5FF11625260A1543F955EAC4A5E411014180C4D23345B4945849161881665D0823
2C5A8E6D6615E4067EA187AFF45E42C65B628E9A23BD87A5D76224F2A148B3D2CB34BA0B6430AA
5A65C36E29943239A8FD1942919D5936706FDEF405A68F5E15B6C6F47775CBD59ECA8CC352E5A8
73C7B43799389CFF8548048636D455EBE24397ACAEC6E4022B38793A061FB6A434729AF1FDA482
3E5B9B5D395CA6719EACB0A1321CFCDC9FFA40476AD6E7850D0EBA27F1D8AE8430FACB5F1EAD33
4FB4EAE2BD44FC96A98CE3840865DA289734EE141760F2FA6BDDE04BF80E9BFB22B12CF5694FC6
578352737A39094180813BD2E24B4AA9AF48879036A6AFCB34AABC59295D1121EFA702D368DB01
0AECC8AA31B6B44674C01AF150C97DEAB0894A7A3A645696311DD29FD363EE2B4ECC22D2A88454
AD179B8F5B8A59C4FE2765A276A303FB9B54B908E63963DF930D24F118B355F41707145E1C2FC6
6046F14A283090CA40AC9B21BD6D9D884843D9CA4ACF0C4D10BC83FCAD4BCDC4323C0A0AE69489
5AF0C57E93293F1D0D1EFF86A35BF3E722DFD1611B5CA368857C7C013561FC1E567689011EDD8B
6A5124FF3F3FF928C5A4CFE6F152052E40F261F88FDF06E99FC4A9F5B183E06D2D0480493F0F81
4DE0A41D2E565DCB72B2B828AA1A189B9B3488C8AA8371740771F0D7C33B34562A5AF7BB10952B
B036AA97CCA014B7F18CE622F4BBD3901DEF158F1715703BF4E07B5840DFDE996E037B5D180578
52EED2475B32BED7F5716531AC997CF174AA85BBC64A56B4A3980479BC5D3411976768A11EC3CC
11384A58EA668E771C836B493088F1A572BD1C4B878882B9BE98B27E4B617F5CD96755E4DA9AE0
1E09DC5C36CA0FE4A50388459C62C8980A136D9B99AF8B503A5C155166BA36E2A6FA87913A44AA
FA71222F1A90E144DBF221DED568233DA86A36D717B068A30F0828633BE0C567B212BB0EBBA9D9
F590F9D2F8FA71B084AA65BC76F01FC9221EDDB4996D777B88C8A1AE5F96AAA9157E60E7204136
15D451FB2507AE4F95AE248353C089CB74EC50AF335994D4A9C13C918598850E482022C947D51E
E39B062DFB3E66E23A1A3AFBE534F5022EAD863D7BC47A4FA41BBCE35BCE1E9B9D5BDF66E5B886
DE5C37868A4333998860EDE231640BAF32ACB1B31B8CF0FBBCB9427585C213198C8ED78E0C38DB
9D00A0B3AFBE03CFAF6204A41D5775208F5514E3DC69237C954C6D6226828B89ED66D573E8D33F
8EDDC83B161984D3257A071492F87622B68D391215B1A8027578109E5856FDDDB367620BC0E945
8EDF45DFD93440CBEA0D8C6DB9212701FFE13B68732F11C9D7DDDB3B4CD04D8246D27CAC0C4F89
B1463C20FE17694CB9FB125F0C400388225D7882A48CEF7D54540C21ED0A8ABFDE45D18CFD0E5D
B72F131597382084C40BB00E9712BA3EA15D3FEAFE1C023661F52B83B2771896F7C2783090497D
2B348960D4FACB004B1E5EE5F1FCEEC842BD70710EE5F16DE76F7DCB69132237BE4C753BFB7D8C
6EA19844F0707F8553B3580B7BED9F81638E19088BE87353E09A5DC20ECC57BD8EFCA710075ED0
35D6511E3683B8683DBAB621A4EC9FB144EDB28F26AF956C74BDA72FBCB07DD57F3AF40855CF04
CBBE004CDC32E01010CEEF07C3B7F8A8916F19DC5B9406913E49A841A8C10620BA97288221173D
E6D6C8811592225E83D9C92A0357E3141FECE531A950C00D79C5B9CE6073719B1D978272F661DB
4101C42138ED9EE35F31588B7EB0FA6EB42C0B05440FAC2C6A2A583AAE368D85A0C6699172441D
938BB00A5013E90F1F4D88318A44A6D661DEC328C1D5D410D0BBF309D7AD5D89CBE7A16C2B44C8
9589D2EC32B466D21C9B3AC0744B2F3752A1FF6FD700C6D76F997C728CC0DEAFD33B675C145D61
75B95BDDFF9F9640E3C66EE375994F01837B38D8F0800751CADD77EEE9BCE7302F4DCE3ED9C543
34347A339956D85119039AF08292E029199F01FEB17C82182FBB82604EAECC1F9CC32C40E73EB1
2B63DA1C7B3D8F2990597582184A0A9D4BC8C82D5662AC1D198AFB8E603DA0F32C5E4F26AB3355
EFE976AF2558393A1D83C761875D07B47590E903EB846DCCCFBE2532114BE43ADAD1230AD073B3
113F6A9386D2AD7DE020A411334434EC8823C55E62F0F9D977726D664705E5358FDC4D7F3D59E5
74A10FF03618490620440E8CDDBAA83F7F5FF77A057D1350183124A4EEC3FC6756195DF22315C9
6429DCFAEBFA465A54F1E2751701F0549AF666970B1F2993B25F0059410D9F9BF71652182797A2
87564970E198D1A625AE44F42F5A9AB7B2D8A601D341A030A6709379235D1CBE5327DBAFAE6BCB
5F4F3FCFCE928A3B7A62E15F43CC5502E0A13C16273A711045A454151A1E5BF01850DF3A0D79DD
24D767C8C1BA70011FCCE02A3BC5F7AC72A5832763629CB662D1850184552927EDB95B3F1B6505
C6D97BB7E043E1DD3A93412C820E6384A33B4DEF4143005AF5ECE6ECC9B38EF5D524E99E79982B
156086B2D3DC8575087B94DF858130B8BC92EFD289EBC7A965A3A8AC4DBF0377061C9103431479
96E3D1A4D70AC332DF024BDB0ED428DC142FB6060D11842DAAEBBB8006F0562526873D3EC79270
6E4B4DD0222AB2376544080135673B00E08A8A6176D3E593F45D9FD0FAF05C9DCA343FC31A6C44
9BB1A4E14E61228684349EB0A3AB81FA898240445E30E44DD774BE7250E289D5E95D7847798F82
CAEAFB5DBE478FEAB432EF59C454E167BA9876D4C9C7D4050A7116F098A1221FC9ADB3EB96C14F
418208D9FA72ABECBECFF2064769893B48B1CD8B717E2FF6CF0DF32F0A27B7EC89C31C5652E783
4F0ECBA2CC75007627664EC859B06A7791F95701E64067550B2F4DAA60AD6C5EF219086BA19E7E
559BF132BCAB712887B9C8D9B73CFE1CA214000AF80B507441B553653F5A2A984E0F9E20A084C2
C30ABA034D5F3C0203983538A40C43C085F6EA2AC3A5116289A5437D2EAFE6A870D2A6F7621C3B
86A8C3F56F1BE23D9AD3885E8EDFC2F67FDFFC3B66B5B89A40CBB09221339DA7D9AAAD83A63F3C
911430C4783C18FEF7F8453433350A86318750ABDF11FF1CA70EF03C9CD3043A856A2147B31A45
EA2503DD92A7F54E9B303039534655F1A27BCCD8B3067266CF9F0E6F6842D09D8380E96C8E898C
24856A05246E7CD800052A197429C33F75C8BD077272C65345F8BAF4B03F3D8C482018012621D4
19F45D01B13A011AE1826675A5F7CC816E19F23DCDE8EB537A582BBDF856452D3422C0A49FDA98
387565432867C1260BAC27B48222808C0CC6491FE4E650AB3687B5D945CC174B62605BC021B9D0
35A04A007175BBE4DD0DBD10B593EE9EE52F39E07DFFDBDAC32B1CA6A5D0BC839952614DA47AC6
2CB97FE17F3A2C8376A415EDCDEEA25E802F1379C701EC26F6EACAB439F441E2670D2E1C8F43DC
C32331D3F5C028ED991B1366C397A42BC1EBC0A62D61B47A29BF72EC6D6678AC219B66ACA8BD92
EE42CA7E42C6E45144FFF34440E202ECC5E5126D3E9AA508476A98B5C6C6A010FFDE519C38E487
856449477B95E55B5DF590B5238D125E1CE8F46EE2C89877E2A870BB11FF39C6739D6FB62BB432
8DBE9BAFCE60D73EA64CC2A3A8042FEF481A2706B97AF19FC8885EAD2CAB2693CBAE77261E43A0
6EDB624679AC8D96634854DF1A3D2B9F8C080FDF3D4DB376702C711C49BDDEF38070DC124E4E22
B4516C3B456601421678F154462F21E9A2F3C1BC18F1A784B0777536C01247C1DA885BCBD881B2
8F54F845133874340D5DCE9EE984EE355E117CDF9A2230AEBB13BC2B1B983B7553B3031D33FBDF
ED4930D9E1251B25CAEB69367510B6F45325D94CAD80C72EF7630E80F3EB9558BC3867FA664170
FCD1ADF65389219FC322B74980F8DFE4EEB537887EB9540081A77CC7F89DFC1B0249555B424907
8C0901416648B1EE12062938091111C8D628BA96DFE0E6E79F86DFBA815D1546A502889DFB617B
EB5975963E0C8A5E11683F81E67979A153D641EE83D24D59376006A51994E06434D2C65E540CC0
A1FF0C0225904BE1991AD2602951A149DCC3E9FCB4C32DC09886DC3CB5C1A4AC5CCCDB77B54E6B
23F23FDDA8FDEBC0D896974F2D0A93D2E6527073B238C9F9C935FACF476F10338CBC1DDB37B4EF
04B3FAFDE801A3CE34029C817F91480D188C5D2174B1A7B93731C0FD4C1EDD37F86AF1D27330C7
F1F60153BB0A1961E27D92E297C0478B69653E9CCA63C5056CB4EF66525E8F15F6A8FCA480B427
C0FF7DEEC7819D476E0994DE182BA040659FD91FD5F5D369BDFB7ECB41CB9EC0F6A9BB1D74B39E
707F653C0B4101CB1E5F4CC8301E4711E8A85E325EF6B46602283DFAD9FC4ACF4105A0821888FE
D1C52AC2FF53B2E7D2C866412A6DA1CC5C4C4EACE3AFDDCD930577D9062598AB0DAD02C9FB6182
A11CFA4E8B5B9C5CD0527C4C7CF431A0FF87D88F19CCDC0EBEEF7C4679C74BCEE1E98434548A8F
53CD70A089B16F1CAA62239D519E37F887A30BF5E3C507ECD221BFA73482667E9E81710064DD81
10E8DDA96DE7860FD8FA0ECCD8EF063ADA63F3358BE93D239615ABB64F27D4EF3452784C5931A0
110484481A2DEDA2DA7B540BA96C5A8E73938A2ED14F86631F0C96FEC991D0EE49FA4F2D0EF6CB
90BAC9C0D570DDDAF6D34F95249D4A610929F0329CA85035FF2F876B779DC3E8C5F13F55FBF8C3
119B1A0B98C6D81D162588351732EAD6697B2CA2BA681AB91E7A8A1372332E7549B3FD5FC8A008
6B7CB0B3D11CAEA3599E67B18C7FBDF422BC83B4B51DD1B23E0B51B258759E4640F6E83CF86D90
7E9098AB5D0AEC5FD0CF24EDC743A71E675555574BC61980BA0199BCC21EA72C9BFC1EF19A96C2
573B6737CA7CE023ED9577E2D2134F17DE4479336F5090608119641E649117A0FDFFCD2238FAFE
F7BB4B4FD24513C2B16E59080C81EF1E1C5706112563228ABD336F59AB155E55068D10B76867CA
D3BD184F0C98591E4E454282753FCD50FD461780040A473A854C0085CE15EC03DAD728D930F4EA
6DDA9DEF3201649D064891AD93335E954A1681A9F3D33F1E546E84D6A85A8601E5624051B05EA8
1E69A739C7432B185706A7CDD5C26F0C5DA88AAFEB9A0B0FC9012A45BE03BB9C7E437B08DE5958
C7D1141F82D2B5981D734499C0B710586D3E3D6DFD13662D38663EEA1D1F284C471500613D62E8
3B2402A72EC256B12B668B5E4BA5206CF17810013D7107E7AFA4D9BF3FCF384BCE21A749C789C7
5166227D590F9A349DBF283634B8BFFC4DEC6F5526359882D8E4FADE5E31677AC0C67D552DDE51
1AEAC26410761699DF26B5C4F542B65DB8D1A10B7059771240DF26316A821797D24C86F0EAFE48
EACA45BF173F2B304B6027476C2DC2A01F4A7322CF94A8BD4EA58F98F57A35F079A9B8DF2A3607
E18301B62A7BA04AA6A3E02C910B514DDD61B474F7F2981E783BAE9905CC4A08BD212760E01350
312A871126749C2149809F1C017C3D755492C0759239C72CBF2589080F911028087768E9033252
B66B4FDF37FC4C6C7E7C6BF963836458C05926EC336836DE05804591A71E81B2896DB75007C633
C515C3C26CAF458D701B060C0797825D7B54919C735A509827E6D167224348C93D5DE809E14D90
DE91ABFDF86E12B703F3F57C1537832DFD7F8D76C55FE5D511884A5590DB35893A23DE9DB9E5D8
43F2D3241E3F1FAEFBBB863AC123484E7B2216BB20E9E4D2ADDD1437B65867964DB9D97B93D033
B09EE55CA932E29B8936B39026B53CCE01B56A7B0F34B247FE68F779C18A51B400563BA6FC334D
617455B40C246F8880AF2B2735D4D433358C49064C9728498946CC69DE375201F25514C3837000
20DEE11651591F3D3D6B7C21D4C59386419D4CE4AA05D10F111932DC5BFFEAD87D9922B3EE9C4D
CFB8FED6DEE5CDE2A20675CF4C0B0DEA2D25B6D1557A1A4C89D42874B722DE4BEFA26B13143573
174D2F7F747336D2A8C7D859A2DD71C0BE4D2EA59CB314746134B22D1F0F9743398FCD8A231936
2AE49CD01A3E60A460B27AB7D61F5E3317E5B66083711F05418C5B677A11E72FC045C499769C98
7D05DFBA5FD257B8F63EE3E10B02879123A74F98A368D4451BC9B9DFFE0350BDC7582AAF097C90
07B1D66B703DF9094EDCFA74B1AE8D8FD27767696ABDAE507C3BF4C906B0A0DA5D9D2CDE896D7F
5007BAED283E12627663C895083D3D72A7AC9476E2AE18E6F896624F94AD5ECA7375F15747A76E
636D7795CFFD9C7E46DB4D9A515B8025BE8C8D9211CE4C3F21137710D98D28A7AA4EB784D7BFBF
38CDF100E5A4671FD610673D38A9DE644188C636A568987B6ED2B2C28694A04AAD05B847BD9E9F
AD7A24EA10CF6868F70FA1C2E33768FD2AB6A4D923451DC0BBFC094B4F699AE6CDCD5C71779A9B
69AFF54E05A7C6D565F0DD6B0EC10DA15C4E2421F37DCEF1684BCFBDB2D359C73EB3C12F3C82E0
53E35AEE44AF734322FA93589B80DEA844C25EEF7F6D2B6607164FC706474FB434DD253A91CC6A
15492D3AF9CB1238951645B545345B31D3752DE66CB29FE9EFC9B26D18AC9C08BF0DA2D984B3B3
C05BD0535885638502BDA5E7D32C03CB62EBC362765220F0786D46C48B5B27BF9633560FA4F56B
D6B2B654272BBE6336C39E925EF57AB45FF6B1DF1A527152E00B1AB7C340B358C8C60A866FFAD0
554FF408EC7289246D873B2F7BC17169EB1CAD2543E23090C3D471A84AC00739261D89DA3D4826
A0DE18B9D1CE541C103DB304DA1F3A120EDA98BE478BF08A0FD55EDC484E80D999AE030F55CE20
D224647BBCF94D85107C413BECA8CBFE1F62CADDC2C0D90A2B73C7860194EF688966D85DC3A0CB
4D3C33ABEE705A6714949D6160475BBD7B45065C5AF7538DE81B5BEAC58648C70BC5D31707A4E3
EE0DC6597236087027754BFCAF7FE0B06B278E328E32FA161813F07824A285CE0C7F3FF4ADB267
5D8E58E2B8E75D793F3D730E58167DA6CC88E5F42210A51C6A3FF3DAF70B91B540226332AFBC48
6DDD5498C8BB9BC9FC6E6F99432E6D0E33954C9362B7D718FE5AB48E242734F12B8F296A559B14
DC8F2ADD1C41CFD9C35EB4884C3C31663F67E742E4FF102B30EE758C0F1EF509FA26C4697D779C
15A617AD7F4234CC30CBA41351B749CA4B950A1A7197E48043A9D34C8DCFD395BAA9E8EE4BED28
7499EF1F9082A734BB205CE35DBD6B36E68C61BAF7BC9DE3696015B6A2FE9FC58A582D2908D123
C51A665B2DA20AF6EDA0B8CB5C5DD175A836C0B599C17484FB81307F5885B93EDA98E9A74F2D42
C0CF7A4927D8413543D5D1F0AEEFC50A98B36A3C989F189B0842BB68716751883874C20CEFDFD2
713240BD0B3AA6535A857A41D8EB7C0C21FE7EB0E8C53B2E5802C3D4FF15ED63EA26BD7266EC31
C93F44E9221B53023F907A0935303EC1823887A24A58F4055A8602709EF5768CA72A70462D19DF
18005C5CA20C1B4BB05A4FD95E807B5B6BC31DA5211303392669F795D11401FE70A542539AFDBF
2594D73DDE8158CFCFBD545ACA831D1E935482BD72F3B7CEC29160258E5D7A76BC0EF7815A80E5
CA9069888822D688C3C81A102E11767BACB5B70EDD6CA3CF1B9FC66229F4D0E8EF474C4BCE6933
4EDCA9ECF658E4B8381DD1DEAB850AACCD54DD6426FDA1BD21CBF89D61442BEDC36AE870695F0B
3D10B84455EFE1D55799B42B6F3C9FF671922428ABC646091B0231C98FC1C1DA83240BAEBA9253
2E9CFD458D338878A8381A0B2DD85F967071BF3C6C5218F475F047276CDCE1AAD34E9BB16B753A
A337600F88FFF2A4DFAC401E4E347A4969333E6F8EC225FCA37AFFF73AF88003E92B71752AB449
EDD7114A25550ECCBA7ACEB0AC3B241513B444CFCCADA9EB4A22E0E0D10418635B4F50FC85B392
FA58AFB0B0380A811BC41633574386D02C69B0F3111E35F464A6388FF507F8E41F197FCCD30A0C
C99E76A9663943E0DF73BC8C39941F762DEFD0AF79A8C45CB9326F0AD43F742A05C38593B67993
073F230E9B8AE837B7DDE865807BDC70EA18FBE6E2A6FD3F03DCA4E8F30A19ACEB398A1BE480BD
D285D7133BA3D14DB51EF25F05F55D77E76EBBC43D366292003DA1EC7F7634D7B831A2D00150B7
38AF7593F65FF2B285207B6429D490E01FAD17111AD9470547C71D4A597A89A990C5C725A04DFF
E07365E928AB34127268178A992B05D834FB060281FFE2DAC887480F1A5F1B48FC163AE63D4C8B
DA7EA1E3118D659FB0DABFFFE49686EFA4235A6011737B32B86C9F507AC005D915EC38D71A1A36
B82699C576F419327080DE3ED109DF6DDEA394B792A2598C3EA8AA33B343E77F423EA507E81DCE
7CD7076C724275F52AB661A53F22F14F0884EF6CDDD6CB98A1443FE8E3354D702A90143AE87573
655879070102955A6DAAC3C026178E5EE5039E1D145FBDE91D3287B77A9A6BA0578907A138231A
5E1C5CA4E6B1B7E27E73889102F9B47F7433BDBDAF1C7D8B1FF1A25FC0184EEC14EC17131B51E8
FE30509B29A2FFA4B939B0DD471E898B9240ABF72282D5C999D266D0E920329F4ADC43335133B1
8DE629DC27FFBF4BCD9DE710D2A9E76B6E098644E720644D1ADF60B8E3BD60E64D7EAC86095654
0F59178958D38A55E3F9EE918F0D04D56EA2CA24E020A0FDDC6B95B6EA71D42FE43E52547B7C2A
FA60F7A525192C6CD24CE9B780459E8BA2CD1D973E49B9EA463AB68BCEE8F769D05F4C0C558B9D
0EE27DC6D8E1B5C85ED0D2952660644E4C3EEF3561F1DC4A62013C0F6D20BE98DF7D20EE5C2C86
275379B808C7F637A160F893669019DD930264A89995901F15395A6420503FB1AF684AEE51AED7
149682C13D71AAD45184D4C2FFBE43C08D28FB6FB7BF248E80FFB56E9C0DE57AE14ABC19D9F62E
B9499A1307716A3C3964EDD15FA151816C247D40DCC3D4F53B7F7488D03ED6B921D7D385E0C506
C20EA931BDEDB72A646AD6913D469DE580F71BEEDD44E552AEE8030CC260B4C0AC0DBE1276640C
8FB29544D22847F5217ED08A4FF6DE50457BE1237B42E046D705967D50D704943748CE6754B5D9
73EF180C39B25D67E4FD49C7F9D4B83EA879C3F511D20E41E5F6B3D79DBCC7F31469FB3590B2DB
B4E4A3ED982DCE15FA803E7B379AAD25E6C7FC5E0F300C45DE57F5B4FF824D4080287FF17734C0
4F34D6E54556C32C889BFCAD3E893BFE262B066A2EC8ECDEF0D73F0A32641A4B3072FDD4C125A2
3AFD976C7F30D814AACB16B43BF85D8CDF41323AEA744785AB7AC861020E6EEF0F06B7AEFAD039
DDC78289573425C26ACF708A9518C0D0DB29A96C7493C8F5151257663BDCF72C31F7DB3DBE9BC7
6C4CAA6985197EA73AFEB44D50474290E2C94CCC44A38CF2824B6ED62534AF6222B9D4ED2B6C2D
C3648291C10DBD71108E2DE28361D2DC57F9B525BC757C9DC4BCE06E70E1C2312E5E6D0F9A99EE
F5BF71BEF695A81D9BE6B3BCEE2A6C456E8F5782A5AE75B04ED86FBAEE7AD5DF2AF741270B5836
02E14E4F8D33A65DA39DBAB820B1E280F24F752E3E47EAB0AEF8E7387B0B3AC759E3A980578555
1FDF5246B6F5D3587713CF623A4AD2FB7E0DD08759033184B7E004D9B1DB433910BB6F0CBC5144
791266B0615BF0C3BD5E50D78ACE20034A76674FBC34256C9C5578F008C30411612A4FBE2FB66F
0412E2BBE7EFB80B94AF4F5FAC48A010F452FD553886E7277AE980C26F392D8A34D76753469855
3928FB2BC28879C962CC8CC28DF8DBE84F006A70191EB119CDE1EA43EEDB9555EC43F8B34F5519
2FCA0D043711BBA440A398ED87F69E4B87B8D0C6DB10737A797D60B5FB1A68AA1215E68FE7E121
5DF1A057F35BDD7A37A9B7A33A4A26D493703C788691C20309FE28C168C776AF19AD26BB72A494
F370A732947719B17250549D1D7DEC494BE6D04E50FCD60BA0C9556FC7FB16C46D1161B0D27054
556B1CDDEE552EED1DD77F784481BFC8E6D3224829CDE96ABF7E926A1225AD8AFB7C224D4FC96C
8DE6A89D71835638546D5E4C7843935BD04AE04241EB57A564904E1EFD53B6349E639B01068CAE
31E4BAE050E2BFBC7950E10A17636AD60CA2F243BC032F051C1D4C116F14BFC751921176F43C10
F1336FBD019A9549EAA27A8212001BA6DE9ADC300F3DBA90F6F83B4EB5D4796E42070A2E126432
658CDB585D710BD453BDA400E7BA0165FD80D72B1811F8DAAF62AA057BCDF707D6C09D0B67879B
4FCF9B767F108929EE818747EE309363D0FD43D82A17CD46988DD59EEC3C7C9EAEB3D473487EB6
2A726236D12E2A602E28FE1CCB895503B5B4C32CF255EF9BA8DA91F206E9D8B10F2BAF61D98B62
2A69BA0B424714F4D4768989A15E59106ACFF2965A7084645905E151923B0154DD76C6466A9290
EBDA330BD604DDE15EABAD4F24E07A7A8F74F728A0880519B31796F02DD72C71685470F6FBBAC0
64ED66EE1CFB6204FC7C1FCA691508E01208419F746490FC8DF7A037E4E7C8D141E5454920DB8A
000FEEE46058AE270F82231D7812B420028B2B3E59A490724593F5848F23BC2AE8432CE5D97423
F17B63E67B6EBFE9345AAE08501D7EFDA518F0D2F4AC5B9DF01C1FCC1DDFEA712A5EAF9945BE40
32D14112FC92B75C08F3DD7BF5B483599FCF1BB0F5B24D9C0E7B162CD30BD08F04034DAE7C6163
E8D0AA810C50931E7A3B5C2AEFDC1C694BBDA5FB4CE355D34DF77A38168F14064D1459ACE6124C
6F09501807D1B2F4AC124E22F0419E324BF0918EBC97E3439F8D38CC2558781A02B9B677567BE8
39CE6761DF689738D509D0560E4A688B0376112BE48FE6BBA3D907788EA90F4867B92717EE8876
9C70311116CA41EDE1F85E36465CC79387D179DF7D32F4BD512F9612446A71BE49073B10519222
A1E01819B6E5739F35C4B14D645CC54E3B756764F7CC050C733FA651200EA68C0580D71F427940
11C9CC3D610691D534F35E80DB9A38D2F9D507CC03D72E17A7164A287A8C8C869C41FE42F2890F
08306371FA7381E8FA43C02F3B1682B64AE81D57EF00BB32CD0D4FCD8548AA6CE2CB03A5CBA053
0181A109B9DBE4ED2C35582810BCB95D6188C670F166F7D7F1FE3AD02F465EE98E07D94EAFFB97
16D4A4B17C956263FF0B9FFAA476BF9C2BAF11BEF1783C22E93EF6F210B974660961E05CE4476A
0A04C98FC58C5ED5C43FF35CF63A850C0C1CF74C6A3AD73EBF6202E30DCC4D06A82F2DC1043E00
193F4526AAE238D1C214837B9FAE2D16C78DB98208BCEEF5994AB1E932DE21AF37230BF1D9F12C
DFBEE1634B9D8C2BF17528100F3EF6E71D27A503F76B0294CE0E777CB6DF0CF7D0CC53A1B89DBE
781516416E6C344FB3F517D82A64F2EBB84790A91B79E1861F5D1DDF95247FE851E2E75B74C03A
067C36346D141C02D3CDF3C9CC367BAC62B7B0A1A5C9B0D6A2FE5EFE4B0AB34A651FAA4E511BAB
BDAFCD59089A9883D389CE
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
cleartomark{restore}if
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
view_dict begin
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Default settings
/pagebeg_mark                     % begin-of-page mark
  [(%%Page:) (%DVIPSSectionPage:)] def
/prolbeg_mark                     % begin-of-prolog mark
  [(%!PS) (%!PS) (%DVIPSBeginSection)] def
/prolend_mark pagebeg_mark def    % end-of-prolog mark
/bb_mark [(%%BoundingBox:)] def   % bounding box mark
/restart_name (!ps_rest.ps) def   % name of the default restart file
/help_file (ps_help.ps) def       % name of the help file
/mag_factor 1.4 def                 % MAG for the `m' command
/shift 10 def                     % SHIFT for the `l' `r' `u' `d' commands
/max_pages 1024 def               % maximal viewable pages number
/line_length 2048 def             % maximal document line length in the `ap' command
/dot_spot {dup mul exch dup mul add 1 exch sub 2 div} bind def
/gs_spot {1 add 180 mul cos 1 0.08 add mul exch
          1 add 180 mul cos 1 0.08 sub mul add 2 div} bind def
/user_printer 1 dict def          % dummy definition
/printer_name (laserjet) def      % Ghostscript device name
/printer_output (!ps_out.jep) def % printing to the file
/printer_x_corr 0 def             % printer horizontal offset correction
/printer_y_corr 0 def             % printer vertical offset correction
/printer_x_marg 0 def             % printer horizontal margin
/printer_y_marg 0 def             % printer vertical margin
/printer_freq 46 def              % screen frequency for printing
/printer_angle 45 def             % screen angle for printing
/printer_spot /gs_spot load def   % selected spot function
/epsilon 0.001 def
/grid_wd 10 def /grid_ht 10 def   % local grid resolution
/x_unit 1 CM def /y_unit 1 CM def % global grid units
/first_time true def              % first attempt to run document
/NEXTPAGE true def                % to read the next page if SEQ
default_gg                        % initialize the grid parameters
lc                                % set local window-oriented coordinates
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Command line parameters
systemdict /LOCAL known {/LOCAL LOCAL def} {/LOCAL () def} ifelse
  LOCAL findlibfile {closefile run} {pop} ifelse
systemdict /INPUT known {/INPUT INPUT def} {/INPUT () def} ifelse
systemdict /ONEPAGE known {/ONEPAGE true def} {/ONEPAGE false def} ifelse
systemdict /SEQ known {/SEQ true def /ONEPAGE true def /polite false def}
                      {/SEQ false def} ifelse
INPUT () eq {/INPUT (null) def} if
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Current settings
/current_restart /restart_name LD
/current_output /printer_output LD
/pages_array max_pages array def pages_array 0 0 put
/line line_length string def
/input_file_defined false def
get_screen
set_window_size
initials
prompt curs_up curs_down 
ver
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Open input file
ONEPAGE {INPUT o  input_file_defined {rr} if}
        {INPUT op input_file_defined {rr} if} ifelse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%EOF