%! % @(#)ucseal.ps 1.1 (Berkeley) 04/15/88 % Postscript version of University of California seal % Conrad Huang, UCSF Computer Graphics Lab, 1986 0.1 setflat /showsym { dup type /stringtype ne {( ) cvs} if show currentpoint exch pop 72 exch 16 sub moveto } def /showstack { /Times-Roman findfont 12 scalefont setfont 72 720 moveto /showstack count dup 1 add copy {showsym} repeat pop pop } def /pathtextdict 26 dict def /pathtext { pathtextdict begin /offset exch def /str exch def /pathdist 0 def /setdist offset def /charcount 0 def gsave flattenpath {movetoproc} {linetoproc} {curvetoproc} {closepathproc} pathforall grestore newpath end } def pathtextdict begin /movetoproc { /newy exch def /newx exch def /firstx newx def /firsty newy def /ovr 0 def newx newy transform /cpy exch def /cpx exch def } def /linetoproc { /oldx newx def /oldy newy def /newy exch def /newx exch def /dx newx oldx sub def /dy newy oldy sub def /dist dx dup mul dy dup mul add sqrt def /dsx dx dist div ovr mul def /dsy dy dist div ovr mul def oldx dsx add oldy dsy add transform /cpy exch def /cpx exch def /pathdist pathdist dist add def { setdist pathdist le { charcount str length lt {setchar} {exit} ifelse } { /ovr setdist pathdist sub def exit } ifelse } loop } def /curvetoproc { (ERROR: No curveto's after flattenpath!) print } def /closepathproc { firstx firsty linetoproc firstx firsty movetoproc } def /setchar { /char str charcount 1 getinterval def /charcount charcount 1 add def /charwidth char stringwidth pop 1.2 mul def %space things out CH gsave cpx cpy itransform translate dy dx atan rotate 0 0 moveto char show currentpoint transform /cpy exch def /cpx exch def grestore /setdist setdist charwidth add def } def end % Circular text /outsidecircletext { $circtextdict begin /spacing exch def /radius exch def /centerangle exch def /ptsize exch def /str exch def /xradius radius ptsize 4 div add def gsave centerangle str findhalfangle add rotate str { /charcode exch def ( ) dup 0 charcode put outsideshowcharandrotate } forall grestore end } def /insidecircletext { $circtextdict begin /spacing exch def /radius exch def /centerangle exch def /ptsize exch def /str exch def /xradius radius ptsize 3 div sub def gsave centerangle str findhalfangle sub rotate str { /charcode exch def ( ) dup 0 charcode put insideshowcharandrotate } forall grestore end } def /$circtextdict 16 dict def $circtextdict begin /findhalfangle { stringwidth pop 2 div spacing mul % space things out a bit CH 2 xradius mul pi mul div 360 mul } def /outsideshowcharandrotate { /char exch def /halfangle char findhalfangle def gsave halfangle neg rotate radius 0 translate -90 rotate char stringwidth pop 2 div neg 0 moveto char show grestore halfangle 2 mul neg rotate } def /insideshowcharandrotate { /char exch def /halfangle char findhalfangle def gsave halfangle rotate radius 0 translate 90 rotate char stringwidth pop 2 div neg 0 moveto char show grestore halfangle 2 mul rotate } def /pi 3.1415923 def end /randomdash { [ 1 1 rand 3 mod 2 add { pop rand 40 mod 5 add 5 } for ] 0 setdash } def /ucsealdict 30 dict def ucsealdict begin /border { 0 setgray largesize { 160 } { 106 } ifelse 0 1 2 index { 360 mul 1 index div dup cos 500 mul exch sin 500 mul 2 copy moveto 8 0 360 arc closepath fill } for pop } def % border /background { 0 setgray largesize { 3 } { 1 } ifelse setlinewidth [ 6 21 38 60 115 133 158 175 188 201 216 227 237 259 270 285 313 327 339 350 ] { 0 320 moveto dup cos 359 mul exch sin 359 mul lineto } forall 0 320 moveto -132.19 -296.902 lineto 0 320 moveto 157.562 -284.252 lineto stroke 1 setgray largesize { 9 } { 18 } ifelse setlinewidth 0 390 moveto 20 340 lineto 80 335 lineto 40 305 lineto 50 255 lineto 0 280 lineto -50 255 lineto -40 305 lineto -80 335 lineto -20 340 lineto 0 390 lineto closepath stroke 0 setgray 5 setlinewidth 0 0 460 295 245 arc stroke 0 0 460 250 290 arc stroke 0 0 360 295 245 arc stroke 0 0 360 250 290 arc stroke 0 0 430 246 249 arc stroke 0 0 430 291 294 arc stroke 194.403 -416.902 moveto 157.327 -432.259 179.999 -311.77 152.141 -326.271 curveto stroke -194.406 -416.901 moveto -157.331 -432.258 -180.001 -311.768 -152.144 -326.27 curveto stroke -157.331 -432.258 moveto -194.406 -416.901 -93.1762 -347.733 -123.129 -338.289 curveto stroke 157.327 -432.259 moveto 194.403 -416.902 93.1734 -347.734 123.126 -338.29 curveto stroke 152.141 -326.271 moveto 236.88 -236.882 -0.00133343 -335 123.126 -338.29 curveto 179.999 -311.77 moveto 169.499 -293.583 lineto 93.1734 -347.734 moveto 87.7383 -327.449 lineto stroke -123.129 -338.289 moveto -0.00133343 -335 -236.882 -236.88 -152.144 -326.27 curveto -93.1762 -347.733 moveto -87.7409 -327.449 lineto -180.001 -311.768 moveto -169.501 -293.582 lineto stroke } def % background /star { 2 setlinewidth 1 setgray 0 320 moveto 20 340 lineto 80 335 lineto closepath fill 1 setgray 0 320 moveto 55 317 lineto 40 305 lineto closepath fill 1 setgray 0 320 moveto 50 255 lineto 0 280 lineto closepath fill 1 setgray 0 320 moveto -50 255 lineto -40 305 lineto closepath fill 1 setgray 0 320 moveto -40 305 lineto -80 335 lineto closepath fill 1 setgray 0 320 moveto 0 390 lineto -20 340 lineto closepath fill 0 setgray 0 320 moveto 0 390 lineto 20 340 lineto closepath fill 0 setgray 0 320 moveto 80 335 lineto 55 317 lineto closepath fill 0 setgray 0 320 moveto 40 305 lineto 50 255 lineto closepath fill 0 setgray 0 320 moveto 0 280 lineto -50 255 lineto closepath fill 0 setgray 0 320 moveto -80 335 lineto -20 340 lineto closepath fill 0 setgray 0 390 moveto 20 340 lineto 80 335 lineto 40 305 lineto 50 255 lineto 0 280 lineto -50 255 lineto -40 305 lineto -80 335 lineto -20 340 lineto 0 390 lineto closepath stroke } def % star /book { 1 setlinewidth 1 setgray 25 210 moveto 230 230 lineto 230 -200 lineto 25 -200 lineto closepath fill -25 210 moveto -230 230 lineto -230 -200 lineto -25 -200 lineto closepath fill 3 setlinewidth 0 setgray 25 210 moveto 230 230 lineto 230 -200 lineto 25 -200 lineto closepath stroke -25 210 moveto -230 230 lineto -230 -200 lineto -25 -200 lineto closepath stroke -25 -200 moveto -15 -210 15 -210 25 -200 curveto 0 -210 30 30 150 arc closepath gsave 1 setgray fill grestore 0 setgray stroke /pi 3.141592 def /leftangle [ 140 130 115 100 90] def /topleftcornerx [ -215 -205 -195 -185 -175] def /topleftcornery [ 222 222 222 222 222] def /bottomleftcornerx [ -215 -205 -195 -185 -175] def /bottomleftcornery [ -190 -180 -170 -160 -150] def 0 1 4 { dup /i exch def 2 mod 0 eq largesize or { leftangle i get dup cos 30 mul /x exch def sin 30 mul /y exch def x y 170 add 2 copy moveto 60 add exch 0 add exch topleftcornerx i get 40 add topleftcornery i get 0 add topleftcornerx i get topleftcornery i get curveto bottomleftcornerx i get bottomleftcornery i get 2 copy lineto 0 add exch 60 add exch x 0 add y 210 sub 30 add x y 210 sub curveto gsave 1 setgray fill grestore 0 setgray stroke } if } for /rightangle [ 45 55 70 80 90] def /toprightcornerx [ 220 210 200 190 180] def /toprightcornery [ 222 222 222 222 222] def /bottomrightcornerx [ 220 210 200 190 180] def /bottomrightcornery [ -185 -175 -165 -155 -145] def 0 1 4 { dup /i exch def 2 mod 0 eq largesize or { rightangle i get dup cos 30 mul /x exch def sin 30 mul /y exch def x y 170 add 2 copy moveto 60 add exch 0 add exch toprightcornerx i get -40 add toprightcornery i get 0 add toprightcornerx i get toprightcornery i get curveto bottomrightcornerx i get bottomrightcornery i get 2 copy lineto 0 add exch -60 add exch x 0 add y 210 sub 30 add x y 210 sub curveto gsave 1 setgray fill grestore 0 setgray stroke } if } for 0 200 moveto 0 -180 lineto stroke 0 1 23 { dup /y exch 15 mul 140 sub def 2 mod 0 eq largesize or { newpath -155 y 10 add moveto -155 60 add y 10 add 0 add -20 0 add y 30 add -20 y curveto randomdash stroke } if } for 0 1 23 { dup /y exch 15 mul 140 sub def 2 mod 0 eq largesize or { newpath 20 y moveto 20 0 add y 30 add 160 -60 add y 10 add 160 y 10 add 0 add curveto randomdash stroke } if } for [] 0 setdash 1 setgray -155 150 moveto -120 150 lineto -120 200 lineto -155 200 lineto closepath fill 0 setgray -155 150 moveto -120 150 lineto -120 200 lineto -155 200 lineto closepath stroke largesize { /Helvetica-Bold } { /Helvetica } ifelse findfont 40 scalefont setfont -152 162 moveto (A) show } def % book /ribbon { 1 setgray -260 -130 moveto -200 -150 -120 -250 -100 -270 curveto -60 -360 200 -310 90 -200 curveto 90 -270 -20 -245 -50 -225 curveto -120 -190 -150 -60 -230 -90 curveto -250 -130 -240 -100 -260 -130 curveto fill 80 -170 moveto 50 -140 0 -200 90 -200 curveto 70 -170 70 -180 80 -170 curveto fill 80 -170 moveto 250 -240 360 -110 260 -60 curveto 300 -200 100 -90 50 -130 curveto 55 -140 55 -150 50 -160 curveto fill 260 -60 moveto 230 -30 150 -120 140 -30 curveto 180 -90 220 30 295 -90 curveto fill -250 -130 moveto -270 -150 -250 -180 -233 -180 curveto -280 -190 -300 -190 -260 -130 curveto fill -220 -200 moveto -220 -225 lineto -220 -225 moveto -200 -240 -230 -260 -200 -275 curveto -200 -290 -190 -290 -180 -290 curveto -200 -260 -200 -260 -190 -245 curveto -190 -250 -170 -260 -160 -260 curveto -160 -230 -200 -260 -185 -200 curveto -160 -260 moveto -160 -270 -130 -280 -150 -260 curveto fill 140 -30 moveto 140 50 210 60 210 0 curveto 210 20 150 20 150 -40 curveto fill 210 0 moveto 250 -40 350 0 290 60 curveto 285 30 310 50 280 10 curveto 270 80 225 70 235 70 curveto 245 40 310 0 210 0 curveto fill 0 setgray 3 setlinewidth -260 -130 moveto -200 -150 -120 -250 -100 -270 curveto -60 -360 200 -310 90 -200 curveto 90 -270 -20 -245 -50 -225 curveto -120 -190 -150 -60 -230 -90 curveto -250 -130 -240 -100 -260 -130 curveto stroke 80 -170 moveto 50 -140 0 -200 90 -200 curveto 70 -170 70 -180 80 -170 curveto stroke 80 -170 moveto 250 -240 360 -110 260 -60 curveto 300 -200 100 -90 50 -130 curveto 55 -140 55 -150 50 -160 curveto stroke 260 -60 moveto 230 -30 150 -120 140 -30 curveto 180 -90 220 30 295 -90 curveto stroke -250 -130 moveto -270 -150 -250 -180 -233 -180 curveto -280 -190 -300 -190 -260 -130 curveto stroke -220 -200 moveto -220 -225 lineto -220 -225 moveto -200 -240 -230 -260 -200 -275 curveto -200 -290 -190 -290 -180 -290 curveto -200 -260 -200 -260 -190 -245 curveto -190 -250 -170 -260 -160 -260 curveto -160 -230 -200 -260 -185 -200 curveto -160 -260 moveto -160 -270 -130 -280 -150 -260 curveto stroke 140 -30 moveto 140 50 210 60 210 0 curveto 210 20 150 20 150 -40 curveto stroke 210 0 moveto 250 -40 350 0 290 60 curveto 285 30 310 50 280 10 curveto 270 80 225 70 235 70 curveto 245 40 310 0 210 0 curveto stroke } def % ribbon /text { /Helvetica-Bold findfont 80 scalefont setfont newpath (\267THE\267UNIVERSITY\267OF\267CALIFORNIA\267) 90 90 380 1.5 outsidecircletext /Helvetica-Bold findfont 80 scalefont setfont newpath (\2671868\267) 40 270 440 1.2 insidecircletext largesize { /Helvetica-Bold } { /Helvetica } ifelse findfont 45 scalefont setfont newpath -210 -130 moveto -100 -250 -50 -340 100 -270 curveto (LET THERE BE) 0 pathtext newpath 90 -160 moveto 250 -220 360 -100 260 -90 curveto (LIGHT) 0 pathtext } def % text end /ucseal { ucsealdict begin /largesize exch def border background star book ribbon text end } def