# ExiFilm -- Add film exposure metadata to EXIF tags of digital images # Copyright (C) 2009 James E. Blair # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . program = """%%!PS-Adobe-3.0 %%%%Pages: %(pages)s %%%%BoundingBox: 0 0 612 792 %%%%EndComments %% User servicable: /in { 72 mul } def /cellheight 12.75 def %%/plantop 9.75 in def %% 8.5 - .5 in at top %%/planleft 7 32 div in def /plantop 10.25 in def %% 8.5 - .5 in at top /planleft .75 in def /planwidth 3 in 15 16 div in add def %% 3 15/16 in wide %% 5 in high /bigfont {/Times-Roman 14 selectfont} def /normalfont {/Times-Roman 12 selectfont} def /smallfont {/Times-Roman 10 selectfont} def /baselineskip 12 def 1 setlinewidth %% Less so: /planheight 21 cellheight mul def /condtop plantop planheight sub def /condleft planleft def /condheight 11 cellheight mul def /cell {/cury curx cury wd cellht box def} def /cell1 {curx cury wd1 cellht box pop} def /cell2cr {/cury curx wd1 add cury wd2 cellht box def} def /cell3cr {/cury curx wd1 add wd2 add cury wd3 cellht box def} def /cell2 {curx wd1 add cury wd2 cellht box pop} def /cell3 {curx wd1 add wd2 add cury wd3 cellht box pop} def /triangle {newpath curx cury moveto 6 0 cellht 2 div sub rlineto -6 0 cellht 2 div sub rlineto closepath fill} def /toppic { 0 18 translate 0.8 -0.8 scale 0 0 0 setrgbcolor [] 0 setdash 1 setlinewidth 0 setlinejoin 0 setlinecap gsave [1 0 0 1 0 0] concat 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 17.465566 7.6270604 moveto 17.34201 7.4607341 17.023642 7.1667431 16.801411 7.0511098 curveto 16.503644 6.896187 16.307292 6.8516095 16.026569 6.7055509 curveto 15.791517 6.5832505 15.419851 6.5327667 15.14103 6.5327667 curveto 14.851109 6.5327667 14.510791 6.4751688 14.200137 6.4751688 curveto 13.906717 6.4751688 13.544314 6.6414571 13.314598 6.8207372 curveto 13.068846 7.0125432 12.874548 7.2361726 12.595099 7.4542762 curveto 12.344743 7.6496678 12.125565 7.8753705 11.930944 8.1454035 curveto 11.751845 8.3938944 11.61173 8.7253772 11.543518 9.0093151 curveto 11.483134 9.2606497 11.432821 9.6008921 11.432821 9.9308246 curveto 11.432821 10.284991 11.481859 10.646709 11.543518 10.96752 curveto 11.606347 11.294419 11.689348 11.459357 11.764903 11.773844 curveto 11.826229 12.029125 12.085382 12.337715 12.207673 12.464971 curveto 12.411225 12.676797 12.681981 12.913342 12.927172 13.040921 curveto 13.208038 13.187056 13.356056 13.321654 13.591326 13.444078 curveto 13.894704 13.60193 14.210656 13.770986 14.532219 13.904833 curveto 14.799874 14.016243 15.064115 14.020019 15.362414 14.020019 curveto 15.668037 14.020019 15.886968 14.041942 16.1926 13.962421 curveto 16.488636 13.885412 16.686938 13.733028 16.912108 13.674451 curveto 17.175607 13.605906 17.382184 13.372271 17.576263 13.271294 curveto 17.802565 13.15354 17.966257 13.038239 18.12972 12.868137 curveto 18.33059 12.659107 18.448373 12.636072 18.517146 12.349785 curveto 18.58201 12.07978 18.683187 12.005006 18.683187 11.658657 curveto 18.683187 11.370687 18.683187 11.082707 18.683187 10.794746 curveto 18.683187 10.482732 18.689036 10.243133 18.627843 9.9884225 curveto 18.56315 9.7191599 18.57249 9.4050915 18.57249 9.1245109 curveto 18.57249 8.8389752 18.46301 8.6086787 18.351105 8.3757857 curveto 18.246685 8.158462 18.001799 8.0698776 17.852991 7.9150309 curveto 17.675889 7.730729 17.748724 7.7007222 17.465566 7.6270604 curveto closepath stroke 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 18.908969 9.1187484 moveto 19.132586 9.2148318 19.670178 9.5204546 19.889559 9.6723899 curveto 20.225854 9.9053021 20.525329 9.9224118 20.835946 10.076851 curveto 21.210027 10.262847 21.490107 10.364636 21.849811 10.465301 curveto 22.38606 10.615383 21.920523 10.684453 21.563764 10.76915 curveto 21.276372 10.837386 20.927903 10.920113 20.619207 10.993399 curveto 20.270784 11.076118 19.970536 11.147404 19.607192 11.233666 curveto 19.449759 11.271042 19.292336 11.308417 19.134913 11.345791 curveto stroke 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 12.479003 7.3178906 moveto 12.297483 7.2051594 10.437915 6.743884 10.199405 6.6961819 curveto 9.9461844 6.6455378 8.2389814 6.412102 8.4897064 6.4371367 curveto 8.9210134 6.4802021 7.6023054 6.3853275 7.3499064 6.3853275 curveto 7.1865764 6.3853275 6.6748094 6.3424179 6.2101074 6.3853275 curveto 5.9802984 6.4065477 4.6730454 6.5580544 4.3967904 6.6961819 curveto 4.1597714 6.8146914 3.9322444 6.8766459 3.6714644 7.0070363 curveto 3.3812444 7.1521462 3.1878204 7.2920552 2.9461374 7.4733178 curveto 2.7386724 7.6289163 2.4671594 7.8455027 2.2726194 7.9914084 curveto 2.0299164 8.1734353 1.8916084 8.3206101 1.7027194 8.5094989 curveto 1.5052674 8.706951 1.4151344 8.8256235 1.2882464 9.0793985 curveto 1.1595274 9.3368386 1.0339524 9.4843697 0.92558337 9.7011073 curveto 0.78229837 9.9876779 0.64040737 10.116486 0.56292037 10.426434 curveto 0.50396737 10.662246 0.51591437 10.873501 0.45930237 11.099952 curveto 0.39136637 11.371693 0.56233537 11.565062 0.66653837 11.77347 curveto 0.76972037 11.979834 1.0569594 12.231766 1.1846294 12.395178 curveto 1.4171204 12.692756 1.6462124 12.974507 1.9099554 13.172314 curveto 2.2042814 13.393059 2.9527384 13.952751 3.2569914 14.104877 curveto 4.1361764 14.565305 4.7738594 14.88324 5.7438264 14.985631 curveto 6.1202154 15.079729 7.3525084 15.363749 8.8005604 15.192867 curveto 9.8815834 15.065298 10.824802 14.750645 11.494631 14.260304 curveto 12.29744 13.766723 12.403624 13.534597 12.789858 13.120505 curveto stroke grestore } def /sidepic { 0 18 translate 0.8 -0.8 scale 0 0 0 setrgbcolor [] 0 setdash 1 setlinewidth 0 setlinejoin 0 setlinecap gsave [1 0 0 1 0 0] concat 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 17.41745 3.3235764 moveto 17.28754 3.1486964 16.9528 2.8395864 16.71914 2.7180064 curveto 16.40606 2.5551164 16.19961 2.5082464 15.90445 2.3546764 curveto 15.65731 2.2260864 15.26653 2.1730064 14.97337 2.1730064 curveto 14.66854 2.1730064 14.31072 2.1124464 13.98409 2.1124464 curveto 13.67558 2.1124464 13.29454 2.2872864 13.05301 2.4757864 curveto 12.79462 2.6774564 12.59033 2.9125864 12.296511 3.1419064 curveto 12.033281 3.3473464 11.802831 3.5846564 11.598201 3.8685764 curveto 11.409891 4.1298464 11.262571 4.4783764 11.190851 4.7769164 curveto 11.127361 5.0411764 11.074461 5.3989164 11.074461 5.7458164 curveto 11.074461 6.1181964 11.126021 6.4985164 11.190851 6.8358264 curveto 11.256911 7.1795364 11.344181 7.3529564 11.423621 7.6836164 curveto 11.488101 7.9520264 11.760581 8.2764864 11.889161 8.4102864 curveto 12.103181 8.6330064 12.387861 8.8817164 12.64566 9.0158564 curveto 12.94097 9.1695064 13.0966 9.3110264 13.34397 9.4397464 curveto 13.66295 9.6057164 13.99515 9.7834664 14.33325 9.9241964 curveto 14.61467 10.041336 14.8925 10.045306 15.20614 10.045306 curveto 15.52748 10.045306 15.75767 10.068356 16.07902 9.9847464 curveto 16.39028 9.9037764 16.59878 9.7435564 16.83553 9.6819664 curveto 17.11258 9.6098964 17.32978 9.3642464 17.53384 9.2580764 curveto 17.77178 9.1342664 17.94389 9.0130364 18.11576 8.8341864 curveto 18.32696 8.6144064 18.4508 8.5901864 18.52311 8.2891764 curveto 18.59131 8.0052864 18.69769 7.9266664 18.69769 7.5625064 curveto 18.69769 7.2597264 18.69769 6.9569364 18.69769 6.6541664 curveto 18.69769 6.3261064 18.70384 6.0741864 18.6395 5.8063764 curveto 18.57148 5.5232664 18.5813 5.1930464 18.5813 4.8980364 curveto 18.5813 4.5978164 18.46619 4.3556764 18.34853 4.1108064 curveto 18.23874 3.8823064 17.98126 3.7891664 17.8248 3.6263564 curveto 17.63859 3.4325764 17.71517 3.4010264 17.41745 3.3235764 curveto closepath stroke 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 18.94656 5.9379964 moveto 19.1584 6.0815564 19.65288 6.5037464 19.84927 6.7041364 curveto 20.15032 7.0113264 20.45615 7.0883864 20.74625 7.3094564 curveto 21.09562 7.5756964 21.36463 7.7363464 21.716081 7.9116264 curveto 22.240021 8.1729464 21.745631 8.1519364 21.36046 8.1686364 curveto 21.05018 8.1820964 20.67396 8.1984064 20.34068 8.2128564 curveto 19.96451 8.2291664 19.64035 8.2432264 19.24807 8.2602364 curveto 19.0781 8.2676064 18.90814 8.2749764 18.73818 8.2823464 curveto stroke 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 11.058081 6.3609964 moveto 10.898991 6.3609964 10.297991 6.3609964 9.9236506 6.3609964 curveto 9.6528706 6.3609964 9.2296906 6.4606964 9.0019306 6.5275864 curveto 8.6792106 6.6223764 8.3901106 6.6031664 8.0802106 6.6941864 curveto 7.7549906 6.7896964 7.3425006 6.8692064 7.0875806 6.9440764 curveto 6.7203606 7.0519264 6.3784006 7.1731864 6.0240506 7.2772664 curveto 5.6876206 7.3760764 5.4495006 7.5314764 5.1732306 7.6937564 curveto 4.8089906 7.9077164 4.5570206 8.1390264 4.1806106 8.3601364 curveto 3.8315206 8.5651864 3.5054206 9.0700664 3.2588806 9.3597064 curveto 2.9162706 9.7622164 2.6772606 10.143226 2.4789706 10.609166 curveto 2.2757806 11.086586 2.1067606 11.567026 1.9117506 12.025216 curveto 1.7229306 12.468886 1.5183906 12.957456 1.4154406 13.441276 curveto 1.3145406 13.915446 1.0273606 14.353136 0.84822058 14.774036 curveto 0.65579058 15.226186 0.63552058 15.643266 0.63552058 15.773606 curveto stroke 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 14.33933 10.302876 moveto 14.20693 10.595156 14.14423 11.072806 13.90194 11.429396 curveto 13.70442 11.720106 13.37015 12.016406 13.17297 12.234056 curveto 12.88897 12.547546 12.59356 12.873636 12.298201 13.199656 curveto 12.020021 13.506716 11.823431 13.804186 11.496341 14.165246 curveto 11.169801 14.525686 10.912571 14.749106 10.548671 15.050376 curveto 10.232431 15.312176 9.7936806 15.426826 9.4552106 15.613636 curveto 9.1243106 15.796266 8.5739906 15.756236 8.2159606 15.855036 curveto 7.8258106 15.962696 7.3481706 15.832996 6.9767106 15.935496 curveto 6.5954506 16.040716 6.0587306 15.935496 5.6645506 15.935496 curveto 5.2171706 15.935496 4.8659706 16.015966 4.4253006 16.015966 curveto 4.0136906 16.015966 3.5635006 15.935496 3.1131506 15.935496 curveto 2.7207406 15.935496 2.2370206 15.733586 2.0196906 15.613636 curveto 1.7663706 15.473826 1.1338906 15.325916 1.0720306 15.291776 curveto stroke 0 0 0 setrgbcolor [] 0 setdash 0.63630593 setlinewidth 1 setlinejoin 1 setlinecap newpath 9.9264619 15.524615 moveto 9.601864 15.336485 9.9988871 16.363201 9.9988871 16.783897 curveto 9.9988871 17.343824 9.8991612 17.884929 9.9988871 18.462927 curveto 10.104136 19.072974 9.9702746 19.353219 10.288574 19.722199 curveto 10.538501 20.011916 10.948726 20.272725 11.157634 20.393812 curveto 11.29979 20.476203 11.505777 20.474522 11.519735 20.477757 curveto stroke 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 10.213238 19.68757 moveto 10.382008 19.78072 9.6081369 20.54456 9.4113669 20.65317 curveto 9.2846369 20.72311 9.1736069 20.82462 9.0468769 20.89457 curveto stroke 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 6.5393206 16.015966 moveto 6.2133206 16.195896 6.5393206 16.820626 6.5393206 17.222956 curveto 6.5393206 17.627916 6.5393206 17.996046 6.5393206 18.429956 curveto 6.5393206 18.885926 6.5393206 19.341896 6.5393206 19.797876 curveto 6.5393206 19.821846 7.2722806 20.242636 7.3411906 20.280676 curveto 7.3483106 20.418036 7.4383906 20.334316 7.4869906 20.361136 curveto stroke 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 6.5393206 19.797876 moveto 6.8774206 19.984476 6.0047406 20.387956 5.7374506 20.683006 curveto 5.6645606 20.763466 5.5916606 20.843936 5.5187606 20.924396 curveto stroke gsave 0 0 0 setrgbcolor newpath 16.59914 4.9921064 moveto 16.75393 5.5208564 16.53852 5.6023764 16.16176 5.3944364 curveto 15.78595 5.1870264 16.27681 4.8497864 16.59914 4.9921064 curveto closepath fill grestore 0 0 0 setrgbcolor [] 0 setdash 0.625 setlinewidth 1 setlinejoin 1 setlinecap newpath 16.59914 4.9921064 moveto 16.75393 5.5208564 16.53852 5.6023764 16.16176 5.3944364 curveto 15.78595 5.1870264 16.27681 4.8497864 16.59914 4.9921064 curveto closepath stroke grestore } def /cameraview { /crtilt exch def %%or swing /crrise exch def %%or shift /cftilt exch def %%or swing /cfrise exch def %%or shift 30 10 translate -4 0 moveto 28 0 rlineto stroke /ftopx -2.5 cftilt mul def /ftopy 5 cfrise mul 5 add def /fbotx 2.5 cftilt mul def /fboty 5 cfrise mul -5 add def /rtopx 20 -2.5 crtilt mul add def /rtopy 5 crrise mul 5 add def /rbotx 20 2.5 crtilt mul add def /rboty 5 crrise mul -5 add def ftopx ftopy moveto fbotx fboty lineto rbotx rboty lineto rtopx rtopy lineto ftopx ftopy lineto stroke } def /greybox { /height exch def /width exch def /top exch def /left exch def /bottom top height sub def .8 .8 .8 setrgbcolor left bottom width height rectfill 0 0 0 setrgbcolor left bottom width height rectstroke bottom } def /blackbox { /height exch def /width exch def /top exch def /left exch def /bottom top height sub def 0 0 0 setrgbcolor left bottom width height rectfill left bottom width height rectstroke bottom } def /box { /height exch def /width exch def /top exch def /left exch def /bottom top height sub def 0 0 0 setrgbcolor left bottom width height rectstroke bottom } def /writingline { /height exch def /width exch def /top exch def /left exch def /bottom top height sub def .125 setlinewidth left bottom moveto width 0 rlineto stroke 1 setlinewidth bottom } def /centertext { /s exch def /x2 exch def /x1 exch def /y exch def x2 x1 sub 2 div x1 add %% midpoint s stringwidth pop 2 div %% half the string width sub %% move left to start y baselineskip sub moveto s show y baselineskip sub } def /righttext { /s exch def /x2 exch def /x1 exch def /y exch def x2 s stringwidth pop sub 1 sub y baselineskip sub moveto s show y baselineskip sub } def /lefttext { /s exch def /x2 exch def /x1 exch def /y exch def x1 1 add y baselineskip sub moveto s show y baselineskip sub } def /picid { /cury exch def /curx exch def /wd 42 def /headht 1 cellheight mul def /cellht 2 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (ID) centertext pop /cury exch def %% add height change from box cell bigfont cury 20 add curx curx wd add idtext centertext pop smallfont xpos wd add } def /aperture { /cury exch def /curx exch def /wd 68 def /headht 1 cellheight mul def /cellht 2 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (Aperture (f/x)) centertext pop /cury exch def %% add height change from box cell bigfont cury 20 add curx curx wd add aperturetext centertext pop smallfont xpos wd add } def /shutter { /cury exch def /curx exch def /wd 68 def /headht 1 cellheight mul def /cellht 2 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (Shutter (sec)) centertext pop /cury exch def %% add height change from box cell bigfont cury 20 add curx curx wd add shuttertext centertext pop smallfont xpos wd add } def /geometry { /rrise exch def /rtilt exch def /rswing exch def /rshift exch def /frise exch def /ftilt exch def /fswing exch def /fshift exch def /cury exch def /curx exch def /wd 74 def /headht 1 cellheight mul def /cellht 2.5 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (Geometry) centertext pop /cury exch def %% add height change from box cell gsave curx 3 add cury 6 add translate toppic grestore gsave curx 3 add cury 6 add translate fshift fswing rshift rswing cameraview grestore cell gsave curx 3 add cury 6 add translate sidepic grestore gsave curx 3 add cury 6 add translate frise ftilt rrise rtilt cameraview grestore xpos wd add } def /film { /cury exch def /curx exch def /wd 52 def /headht 1 cellheight mul def /cellht 2 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (Film) centertext pop /cury exch def %% add height change from box cell bigfont cury 20 add curx curx wd add filmtext centertext pop smallfont xpos wd add } def /carrier { /cury exch def /curx exch def /wd 42 def /headht 1 cellheight mul def /cellht 2 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (Carrier) centertext pop /cury exch def %% add height change from box cell bigfont cury 20 add curx curx wd add carriertext centertext pop smallfont xpos wd add } def /lens { /cury exch def /curx exch def /wd 42 def /headht 1 cellheight mul def /cellht 2 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (Lens) centertext pop /cury exch def %% add height change from box cell bigfont cury 20 add curx curx wd add lenstext centertext pop smallfont xpos wd add } def /process { /cury exch def /curx exch def /wd 42 def /headht 1 cellheight mul def /cellht 2 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (Process) centertext pop /cury exch def %% add height change from box cell bigfont cury 20 add curx curx wd add processtext centertext pop smallfont xpos wd add } def /date { /cury exch def /curx exch def /wd 252 108 sub def /cellht 1.5 cellheight mul def curx cury wd 2 cellht mul box pop /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury cury 2 cellht mul add def /curx curx wd add def /wd 108 def /headht 1 cellheight mul def /cellht 2 cellheight mul def curx cury wd headht greybox cury 2 add curx curx wd add (Date) centertext pop /cury exch def %% add height change from box cell %% draw the writing lines xpos } def /notes { /cury exch def /curx exch def /wd 252 def %%/headht 1 cellheight mul def /cellht 1.5 cellheight mul def /boxht 4.5 in 6 cellheight mul sub def %% 5in - header so far %%curx cury wd headht greybox %%cury 2 add %%curx curx wd add (Process) centertext %%pop %%/cury exch def %% add height change from box curx cury wd boxht box pop %%/cury curx 10 add cury wd 20 sub cellht writingline def curx cury %% save for returning to print text /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def /cury curx cury wd cellht writingline def moveto %% saved starting point normalfont notelines { 0 0 cellht sub rmoveto currentpoint 2 2 rmoveto 3 -1 roll show moveto } forall smallfont xpos } def /record { /notelines exch def /rrise exch def /rtilt exch def /rswing exch def /rshift exch def /frise exch def /ftilt exch def /fswing exch def /fshift exch def /shuttertext exch def /aperturetext exch def /lenstext exch def /processtext exch def /carriertext exch def /filmtext exch def /idtext exch def /rtop exch def /rleft exch def /xpos rleft def /ypos rtop def smallfont /xpos xpos ypos picid def /xpos xpos ypos film def /xpos xpos ypos carrier def /xpos xpos ypos process def /xpos xpos ypos frise ftilt fswing fshift rrise rtilt rswing rshift geometry def /ypos ypos 3 cellheight mul sub def /xpos rleft def /xpos xpos ypos lens def /xpos xpos ypos aperture def /xpos xpos ypos shutter def /ypos ypos 3 cellheight mul sub def /xpos rleft def %%/xpos xpos ypos date def %%/ypos ypos 3 cellheight mul sub def %%/xpos rleft def /xpos xpos ypos notes def } def %(code)s /crop { gsave .2 setlinewidth .7 .7 .7 setrgbcolor /bottom plantop 8.5 72 mul sub 36 add def planleft 4.5 sub plantop 36 add moveto gsave 0 -8 rmoveto 0 16 rlineto stroke grestore -8 0 rmoveto 16 0 rlineto stroke planright 4.5 add plantop 36 add moveto gsave 0 -8 rmoveto 0 16 rlineto stroke grestore -8 0 rmoveto 16 0 rlineto stroke planleft 4.5 sub bottom moveto 0 -8 rmoveto 0 16 rlineto stroke planright 4.5 add bottom moveto 0 -8 rmoveto 0 16 rlineto stroke grestore } def %%crop %%%%EOF """