blob: 0318f3556eda077e81a51031f172435eb74537e0 (
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
|
%!PS-Adobe-2.0 EPSF-2.0
%%Title: /home/fred/TeX/STYLES/Prosper/img/yellow-bullet-on-blue.ps
%%Creator: XV Version 3.10a+FLmask Rev: 12/29/94 - by John Bradley
%%BoundingBox: 276 376 336 416
%%Pages: 1
%%DocumentFonts:
%%EndComments
%%EndProlog
%%Page: 1 1
% remember original state
/origstate save def
% build a temporary dictionary
20 dict begin
% define space for color conversions
/grays 60 string def % space for gray scale line
/npixls 0 def
/rgbindx 0 def
% lower left corner
276 376 translate
% size of image (on paper, in 1/72inch coords)
59.97600 40.03200 scale
% define 'colorimage' if it isn't defined
% ('colortogray' and 'mergeprocs' come from xwd2ps
% via xgrab)
/colorimage where % do we know about 'colorimage'?
{ pop } % yes: pop off the 'dict' returned
{ % no: define one
/colortogray { % define an RGB->I function
/rgbdata exch store % call input 'rgbdata'
rgbdata length 3 idiv
/npixls exch store
/rgbindx 0 store
0 1 npixls 1 sub {
grays exch
rgbdata rgbindx get 20 mul % Red
rgbdata rgbindx 1 add get 32 mul % Green
rgbdata rgbindx 2 add get 12 mul % Blue
add add 64 idiv % I = .5G + .31R + .18B
put
/rgbindx rgbindx 3 add store
} for
grays 0 npixls getinterval
} bind def
% Utility procedure for colorimage operator.
% This procedure takes two procedures off the
% stack and merges them into a single procedure.
/mergeprocs { % def
dup length
3 -1 roll
dup
length
dup
5 1 roll
3 -1 roll
add
array cvx
dup
3 -1 roll
0 exch
putinterval
dup
4 2 roll
putinterval
} bind def
/colorimage { % def
pop pop % remove 'false 3' operands
{colortogray} mergeprocs
image
} bind def
} ifelse % end of 'false' case
% define the colormap
/cmap 759 string def
% load up the colormap
currentfile cmap readhexstring
040e29 748614 444a0c 2c4b81 acc214 212a11 306aa4 3451b7 6b6c0b a49e0c
0c2e5c d4e407 9aa406 445993 245ec4 74720b 343111 ccc409 6f864c 3c4a58
0c1644 303c70 abaf06 8c8a07 2f5aac 1f3c71 0c1a24 5b5c0b 3e54c1 5c6a44
3a4036 354c8b 3c5fba ccd306 909705 747c04 acba64 bdb508 c4d408 ece40c
496385 1c2c3e 3c400e 1c2d5e 1c1e1e 315ad6 dcd408 4c4a34 b0c734 6c7a0c
315ece 546248 a6a508 64620d 857e0e 244492 3d56d1 14141f 2b4da2 4758a0
0f244d acba04 909009 f2f309 3f4527 849208 54510e 24360c 3259b9 626b30
354da5 b4aa07 607644 0b1223 c1c405 84a24c 345ec3 234380 9c9907 1c1a2c
a9aa07 7c9b4f 2c458e b4af07 515d31 3c5fd4 4c460f 1f3481 345ac8 2c2c13
dfe407 d2db08 bebc06 76741e cecd07 3e516e 2c64a8 787e1e 486298 243834
44460d 112561 9c8f19 748634 6c7304 143261 373810 213c7e 3d5abe a5a517
c2cc07 5c6210 3f66bc 1e3462 2b53a5 445ea1 081430 4c5211 788878 304270
3c5d92 14243c 516d67 788204 bcd33c 44410d 232419 dfde08 4a606a 687a84
9cb040 4c6a84 9cb020 7f8f54 7c9238 243234 84967c 6c8034 161b46 485448
444654 bcce34 94aa54 687438 617967 b4bc08 84860d efeb09 4c5224 e2ec04
344050 fcf809 5c6f6c 282a54 74924c 3a5490 3454a6 1f2536 141d27 3c4674
74827c a49a20 b4b51f cce224 b4c84c 4c461c ccbe11 dcce14 546294 bcce24
9aae56 2c5294 24320c 9caa14 475e81 acb604 5c7244 c4da14 2c3e0c 546224
1c3e44 748e64 849a24 a4ba1e 4c4e54 3c62ac 3c5ca9 9c9e07 2c321b 9cb634
848e04 2c66bc 78760d 384640 3466dc 65660a 85820e 3c5ace 55560e 647e54
415674 7c8e2c 647e5c 2b4c91 222c22 696d16 94a61c acae19 8d8815 0b1b38
585b17 c1d517 182c50 687c24 181430 929016 bcc218 e4e21c ccde1c 1c364c
343922 1d3572 2f4582 e4dc18 445458 efeb19 495339 0b1e4a 949e07 2c324c
546a58 2c3624 3466b4 b4b607 485e92 243e24 1c2a74 546559 84961c 9c981a
2c459f 14336e 94a66c 0c0e22 7c8709 4c4c0d b4c306 142b62 2c60c0 d4c614
4460b8 d4d508 7c7b0b
pop pop % lose return values from readhexstring
% rlecmapimage expects to have 'w h bits matrix' on stack
/rlecmapimage {
/buffer 1 string def
/rgbval 3 string def
/block 384 string def
% proc to read a block from file, and return RGB data
{ currentfile buffer readhexstring pop
/bcount exch 0 get store
bcount 128 ge
{ % it's a non-run block
0 1 bcount 128 sub
{ currentfile buffer readhexstring pop pop
% look up value in color map
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
% and put it in position i*3 in block
block exch 3 mul rgbval putinterval
} for
block 0 bcount 127 sub 3 mul getinterval
}
{ % else it's a run block
currentfile buffer readhexstring pop pop
% look up value in colormap
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
0 1 bcount { block exch 3 mul rgbval putinterval } for
block 0 bcount 1 add 3 mul getinterval
} ifelse
} % end of proc
false 3 colorimage
} bind def
60 40 8 % dimensions of data
[60 0 0 -40 0 40] % mapping matrix
rlecmapimage
84c56c586c5883584c584c054c815838013881584c014c81bff881f83283320e32f885f8
4c182d4c0681066083600e32f883f84c58c58cc5584c584c584c584c584c584c
886c58c5584c6c4c444c024c88f84cf8326c38581c4c014c82320e3202328d4c3220706c
444c18f860bf0e32f881f84c834c584c588a584c584c584c584c584c58
8458c5586c5883584c584c024c81444c054c0158862d582d58c5581c041c85bab932582d
328132f885f84ce818204c014c89584c584c584c584c584c
836c586c5885586c4c584c5881584c864c58f84cf8604c834cc5581c011c813b628562ea
28ae623b813b2882281c3883382df84c014c8218e84c014c8a584c584c584c584c584c58
0358812058025884444c58f8588158f88ef860f8324c6c3b28801d488967c9858b85b576
907a289b1cc538444c824c32f88df84cf8584c58f8584c58f8584c58
83205820580258854c58325832588558324c0ef84c894cba7828ed48d50141e483e4ad6d
aa87aa8e4b8581280d6c816c5881582d012d85f8584c584c588258f85883584c584c
86584c58326c32580558863258f858f8e8788e7880338f61923e22e40c50163d04300130
8782857aea1cc5382d882d0e32f858f8584c5885584c584c58f8
84444c584c588758c53258c558325884584c584c189018aec833455dfcc41722bb3416af
3d914a894aa9d330aaeda81c382d842d0e32f85883584c584c854c58f8584c58
024c0158814c588258c558905832c54c584cfaeac8e05445cdc036d06681666d876da291
4a266e5e218921268d24a00d076c70f801f884584c58f85882584c5882584c58
824c444c814c580258812d5891586c4c584cba0dc8e0e2b3cdc0fc36d066a186a1cfa24a
6e5efb8afb5b0b5b268daa810dbae885e8184c584c5881584c854c4458f8584c
024c81584c834c5855588f5832584c6c4c73c8b8e2d26f08c0fcd09ed0660950e9f66e5e
fb2e7fdfd95a5bda8df29878ba20f858f8584c584c584c814c5881584c
81f84c014c825832580258835520444c894cba8c2f94c6c30ffc36863666a134163d6e85
6e212e7fd9e196e1935a0ba3a4b528ba204c44584c584c58f8584c584c58
014c83f8584c58035897204420ba189b1ea542c6c368c036d066a10953914a26215a825a
e1978f97e1935a5b7caa819c1c55584c58f8580158844c58f8584c
87f84c584c584c32588358204c448c44b9189f1ef5421bc368fcc43e893eef6d165c4a5e
5b5a9381939701978993955bb1a4882846c55883584c584c834c584c5882584c58
844cf84cf858835832584c834c6c44b997b9721940a5421bc36823f4be22bb345325a65e
a70b953f9701979493277fd37c8e903bc5584c584c5844f8584c584c58
894cf84c58322d4c32e84c9c4c4420b903db40a5426fc36823f4be3e0c345325a6d8a75b
5a9593979390937f5e6ea9bd12621c44584c58f8584c588358f8584c
81f83282322d328132f802f88e2d556cbab4eb2a6442c66f6823fc3e8b3e4e3416255c11
fb2e7f5a950195897fdfa75ef6bd5178444c874c584c584c584c5882584c58
8af80e320e2d32f80ebff82d892d1c7363b22a6442c6c389c3c0fc923e220950e95c815c
5e825efb0b010b955a7fa7f9115cb75183444c584c584c584c58f84c584c
83f832582d822d32f899f8bff82dc5380d63436a7df5c61bc368fcc4173e093416e95c11
84115efb215b925b21f9a65c91b74b8344584c58f8584c584c5882584c58
024c0258014c94604c2d381c3b87acdc7df5c61bc30823fcd03e2234863416255ca64a6e
026e825e1125892516b74b626c44584c58015881f8588358f8584c
014c84584c2d584c964ce84c58381c3b29056a2aa542d235080f61c4d0d74e3482341625
81254a814ad881d84a894aa65325cf845162384c824c584c814c5882584c5882584c58
81444c854c586cc5444c014c9407381c3b297edc6a64f542d2cd08c0fcc43ed74e348534
1653af91a282a25c2581254786470cce9a621c5882584c588458f84c584c824c584c
854cf84458c55885584ce84c583896383b2b9dbc6a7da5751b35c35dc061c4d022ef0934
50168116cf81cf53825350348a34e4b6120dc56c4c58f8580158844c58f8584c
8232584c814c580158014c98442dc5386c2b79bc102a02f5421bc3080ffcc4d0174e2234
0c810c6d016d0134010986bb2286caea6c5882584c5881584c014c8344584c58
013281f8580158823258f89ef8325838faded1cc59102a0275c66fc3085dc03692d03e22
e44ee4efbb094e8d4e3e22ee12983b6c2058f8584c588558f8584c584c
8232f84c824c325882584cf881f85895581c6c1fd47e59dc2a64f575c635c3080ffc3617
be228122d781d72283223e663e893e41c9c783786c584c58015886f84c584c584c58
013283f84c44588258f8188f180e72076c1f719e7ebc6a2a6402c61b871bc3080fc0fc7b
f481f49281923e813e178c17c4920189e628ba6c444c584c814c5885584c58f8584c
820e581886184458074418729072183a9c9b779e2c7ebc6a2a027542c6358535c3080f23
7b827b61c401c401368161d583d54828ba8aba20444c584c584c584c5882584c58
832d44189c819c3a013a8172ab88ab3a373a1f9f9d2c7e847ebc6a2af58cf542c61b35c3
080f68315dc0fc81fcc086c05d8fb0e6786c816c4c014c8958f8584c58f8584c584c
8507189cab46f081f0378637f1194d6b57158315e59d2c872c59106a2a7df54281421b83
1b35c3cd01cd8b080fc008cd451ded28ba584c014c82584c588258f85884584c584c58
84073a46de6b816b578257f10a850af10a652b9982999d4f814f058205106a846a7d56f5
4286421bc66fb36fc302c38735d2ed80786c58328532584c584c5886584c444c58f858
01f084de6b57ec6581650a810a3c833ce3148a828a4fd686d62c397e59106a826a7d5683
56f542c601c6841b351b35d292d28b80eaba6c2d322df858f8584c584c584c5881584c
8b465257dd2b658ae314741a748174f301f383d6f3d63983392c7e598359106a7d817d56
8256f54201428c75942f8b5faeeaba446c582d580258874c58f8584c58f8580058
89524d57f78ae314741a4901498200f300010002f30239017e015986106a2a7d64566486
6440c1135f9bba87ba4c6c32586c584c834c584c5884584c584c5881584c
875237ddf765e3d174017408008cf30049392c057eacbc59bce7dc01dc871e96135f78b9
ba4c034c8b324c584c58f8584c58f8584c814c58
863a376bf1f765e381e3d186d17414740014008100740274011a8379d13c790179022901
96845fc8ea78b981b94c014c01f88958f84cf84c584c444c5882584c5881584c
88723a376b57f1f7653c813ce384e38ae314e302e3013c810af786f7711977de1f9b889b
0d9b0dea73b920448144f884f832f832f882f84c588a584c584c58f858444cf858
81723a813a3785376b1971dd2b012b01f78565ecf70a69f102f1026b833752469c8c9c6c
3bba204c445832f82d0e3201328af84cf858f8584c584c584c814c5881584c
834418723a813acb83cb4dde6b036b81576b026b014d0237883a72074407445844580258
82442dc281c232023281f84c024c015886f8584c584c584c814c58
824c58188618729cab9bcb1f011f01de0152014d03cb863a723a074407588658c558c532
552d822d0e2d882d0e2d0e58f84cf84c834c584c588758f8584c58f8584c
%
% Compression made this file 37.18% of the uncompressed size.
%
showpage
% stop using temporary dictionary
end
% restore original state
origstate restore
%%Trailer
|