[diffoscope] 02/03: Add test for Postscript comparator

Reiner Herrmann reiner at reiner-h.de
Sat Feb 27 19:03:16 CET 2016


This is an automated email from the git hooks/post-receive script.

deki-guest pushed a commit to branch master
in repository diffoscope.

commit cf9f3cd03e276cbafa94796f739aaae20e8df4fa
Author: Reiner Herrmann <reiner at reiner-h.de>
Date:   Sat Feb 27 18:25:26 2016 +0100

    Add test for Postscript comparator
    
    Test files were created with a simple TeX document:
    
    \documentclass{article}
    \begin{document}
    Today's date: \today
    \end{document}
    
    latex file.tex && dvips file.dvi
---
 tests/comparators/test_ps.py         |  65 +++++
 tests/data/ps_internal_expected_diff | 188 +++++++++++++
 tests/data/ps_text_expected_diff     |   7 +
 tests/data/test1.ps                  | 519 +++++++++++++++++++++++++++++++++++
 tests/data/test2.ps                  | 517 ++++++++++++++++++++++++++++++++++
 5 files changed, 1296 insertions(+)

diff --git a/tests/comparators/test_ps.py b/tests/comparators/test_ps.py
new file mode 100644
index 0000000..d0d49ba
--- /dev/null
+++ b/tests/comparators/test_ps.py
@@ -0,0 +1,65 @@
+# -*- coding: utf-8 -*-
+#
+# diffoscope: in-depth comparison of files, archives, and directories
+#
+# Copyright © 2016 Reiner Herrmann <reiner at reiner-h.de>
+#
+# diffoscope 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.
+#
+# diffoscope 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 diffoscope.  If not, see <http://www.gnu.org/licenses/>.
+
+import os.path
+import pytest
+from diffoscope.comparators import specialize
+from diffoscope.comparators.binary import FilesystemFile, NonExistingFile
+from diffoscope.comparators.ps import PsFile
+from diffoscope.config import Config
+from conftest import tool_missing
+
+TEST_FILE1_PATH = os.path.join(os.path.dirname(__file__), '../data/test1.ps')
+TEST_FILE2_PATH = os.path.join(os.path.dirname(__file__), '../data/test2.ps')
+
+ at pytest.fixture
+def ps1():
+    return specialize(FilesystemFile(TEST_FILE1_PATH))
+
+ at pytest.fixture
+def ps2():
+    return specialize(FilesystemFile(TEST_FILE2_PATH))
+
+def test_identification(ps1):
+    assert isinstance(ps1, PsFile)
+
+def test_no_differences(ps1):
+    difference = ps1.compare(ps1)
+    assert difference is None
+
+ at pytest.fixture
+def differences(ps1, ps2):
+    return ps1.compare(ps2)
+
+ at pytest.mark.skipif(tool_missing('ps2ascii'), reason='missing ps2ascii')
+def test_internal_diff(differences):
+    expected_diff = open(os.path.join(os.path.dirname(__file__), '../data/ps_internal_expected_diff')).read()
+    assert differences.unified_diff == expected_diff
+
+ at pytest.mark.skipif(tool_missing('ps2ascii'), reason='missing ps2ascii')
+def test_text_diff(differences):
+    expected_diff = open(os.path.join(os.path.dirname(__file__), '../data/ps_text_expected_diff')).read()
+    assert differences.details[0].unified_diff == expected_diff
+
+ at pytest.mark.skipif(tool_missing('ps2ascii'), reason='missing ps2ascii')
+def test_compare_non_existing(monkeypatch, ps1):
+    monkeypatch.setattr(Config, 'new_file', True)
+    difference = ps1.compare(NonExistingFile('/nonexisting', ps1))
+    assert difference.source2 == '/nonexisting'
+    assert len(difference.details) > 0
diff --git a/tests/data/ps_internal_expected_diff b/tests/data/ps_internal_expected_diff
new file mode 100644
index 0000000..f0cf9c5
--- /dev/null
+++ b/tests/data/ps_internal_expected_diff
@@ -0,0 +1,188 @@
+@@ -1,21 +1,21 @@
+ %!PS-Adobe-2.0
+ %%Creator: dvips(k) 5.995 Copyright 2015 Radical Eye Software
+ %%Title: test.dvi
+-%%CreationDate: Sun Feb 28 06:58:43 2016
++%%CreationDate: Sat Feb 27 04:58:53 2016
+ %%Pages: 1
+ %%PageOrder: Ascend
+ %%BoundingBox: 0 0 612 792
+ %%DocumentFonts: CMR10
+ %%DocumentPaperSizes: Letter
+ %%EndComments
+ %DVIPSWebPage: (www.radicaleye.com)
+ %DVIPSCommandLine: dvips test.dvi
+ %DVIPSParameters: dpi=600
+-%DVIPSSource:  TeX output 2016.02.28:0658
++%DVIPSSource:  TeX output 2016.02.27:0458
+ %%BeginProcSet: tex.pro 0 0
+ %!
+ /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+ N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+ mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+ 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+@@ -113,15 +113,15 @@
+ 0 1 255 {1 index exch /.notdef put} for
+ dup 39 /quoteright put
+ dup 44 /comma put
+ dup 48 /zero put
+ dup 49 /one put
+ dup 50 /two put
+ dup 54 /six put
+-dup 56 /eight put
++dup 55 /seven put
+ dup 58 /colon put
+ dup 70 /F put
+ dup 84 /T put
+ dup 97 /a put
+ dup 98 /b put
+ dup 100 /d put
+ dup 101 /e put
+@@ -331,175 +331,173 @@
+ 40271861593E1DEBA8CADFE6720DA5752963AA712BF3474685253B3F4D7979DA
+ 1B1EF010A0EE7D54AD70089B1742F49E0D7F93A5550CD9DE2843D9D524D135E5
+ 50E0E9404E76C95651ED65838696FB3250F55A041447594422EEFFACCE6AF7CC
+ 9768F720AA8E19BE0B99F0EACAA52EC073331BABC2B016D44CDBADD60AA8F5B2
+ BE8C21D7344CD8E8A6C73664ABF250A68110AAADEF6E32B9C3CFE63C0B2AF359
+ 8ED02E0709BB4F4CEF95ABCE278D699E1655BAB4264C1102174DE4B34F7C05A1
+ E27832DAE605814D61DB4909A04A68D2590714984AE803D12E44C964C7ACDA74
+-4B25D6FDDD45956A89D116B2828606C553F95237CFF9E9FA18003C9FF7B92F42
+-EEE7AA3DE5F8C6C5D809F919A8D5D70128ECCAA924C19ED5885F7663F78A02CE
+-68E25AB472D8529A21FA398544373189135E0ABEBDFF1538E9B8032D1946A359
+-281C29D5AC0909EBB172DBA56056A429F54B372902B17D0C404105753FFC4DCB
+-5675F656CAF198F1073B7BFE06EA127BA3B1EDF47A2F45617BFC36D07E89110A
+-0E44CFA2460615EB10B2602D10372015A8CDA28AEDDE6E02E37ABF96D6709E49
+-8FA6BD5C2B6D5B95D16AA4BAE01BBBF1C500EA0ED5390E6ACE54B7E7A9CF3D32
+-E278603FDD8C754C61905468DA40C617C9258067536022B74C47E0081BDD47DD
+-89458DF1F326D4F23606C6B8FC607D92DA9CC624D48FD50D1EE2A9FEF854CD62
+-38126A0B323E6E84DA4AFD6391E81ACC544000E97C2E4598BC30968ABC4584F9
+-69E166E6A53CFAB75F75CC28A53483CF3154987E5325EA8D2985AF7B9F14EA2C
+-7C51096681B774B91359C32200E796531DE4EB663282065974F633ED91128C8B
+-11A8B9D7DC54F36AFA934E907162B395ABBCC3134C59FAE8DB8EFA707B43D3EB
+-A7D9183C5C6AED02B02A14F4AE5073FF6E47EB223C4A252260FB174575164E16
+-97AAFCCF124AF3AEFA50A02990447C267CF4B0D3480F00DFDC22CC8FC032E38B
+-815EC475EBBE73C378B8E75F654646CFCE05D5E5B6F035C55B26C8D829C4255C
+-893F7749C4E7B6796855E211E6751300FBB38725EE7FF097F769C017F16598B8
+-35A0B93A6CE310DE9062984F6951B5AA2EBC9853650192211080804BDCB55965
+-4D6768D9BC423D96AAC128596507D79667C83C55127A328FA7317EC07135B034
+-731659C69FEDB4D611F3D89F5AB05DA5C62E83934C1B77611B579498EFBBED42
+-E2BC6B5BE6D54F3A472DECB39319C2CCF5AF68E2540408A710ED0FE44D46DF19
+-6E1C9BD16E60FDCA96B4E7B2EAB24A22C1E20896BC8FC91E4831F001EEBBAD4B
+-BE90C916DF1C2D1749DC6345740997235F1CF73E2114F9BA7234F4F3E8BCD61C
+-D3D3BF8AE26C48F97876F35E0E6F37FC4E9EEC8EDC1A4916452575C7B3F07637
+-1F8B5C888DC44FBA5607435A619684F502CF65F8932186BB6D7ADA1E291A6751
+-7B5FFBE4A17FF7373AF18D463816578FF22B5CCE8F0121ABE5442488AAD347BD
+-58F0EC389FACAD28D0029DB1EF242E0949F1FF38A4940E34915091E6913B5581
+-A0EE53B4E6E5FA84C21560E71E1FC398B99ABC5901054B4214784BB16FFA8B26
+-4D7F0EE8BCD0103D072885013574F695CFBECB0DFF2F1F8E91CFB071B56D1647
+-7A4CCDCF78AA41A21669D4F969AB2868B391D4CCA21F5A74905ABE9530283E6B
+-C72AEB17EE83CF1C19B371BA0BA4C3FC5B8B10AC5362EFE6A4271F2B6F82C3BE
+-2298DFBEC78BC36F7746A67EBF2EC7FFFD489533EE84CEC0ED22BEB736BDEB0F
+-3BC878FC55C33F3FD43EA0AF466FA5B60AC4490AA5DB18A649C442A55FB06914
+-8683375E02AE84420BFCC53FE88134ACD87A1A5FEE14044962F0B4269F80FD7B
+-5E55DC55BA957D79FF3F279C52F72F03E439B6883552A1F042947999D34837B5
+-A08E55E6319BE14383542B9F6500CD2A6B2476F2CCA548F5131F2E9E392F4234
+-435AC61CF7312EEC50FDDCD73F2E287FE61B3AC6E94EF7B3A3BB133509FFA37B
+-6CC0AD35FCFDDBF7B4B6C2BE6916D5E3E1FD98697E21F7AD3CF2FB3897152B7E
+-9F7C4C3BBB939C42B4A5A20E344807E04623E5A083B06F5AFF9307DE6AF51E58
+-627D5E2622524F834B1740A14F9BC6DE00706D14F1142BE165D39AA88653E252
+-1BA57913CDD7960CD35C0A96694210CDE808E2FD04750B7DF2D04B3559655878
+-C28E022E0FD87B91B4892171B3175CF87EA8445F5749C2B09692BEADB30ADCA9
+-387FCAB2633938B25905ACFA3D838E3DCAE3BBEB48AA196A27F9677F726AE301
+-C65150264A4431884FB04840A1D641A983CA3BCD9382380CE27758778C768E5C
+-29F072380217311606744A28CF02BACB510FFA4E22B5A0CB4F43E79032D0513A
+-0364944090F265D9016C3AE50698C63E39056C159DDAB8844290677BE6AB51DC
+-370B95A56E0198911CF3E0CF8648D24473A7B6BFE9313BF8FB4E5B6340D9F40D
+-12C0D6DDD6E89A3BA6468B6322EF1ED480FC2C330B4F75B2FB0D5A087CE736B1
+-4E6BB73F418498D5F66A9DF2917F9F373AA2297896E42772AE3E18655C54F2B8
+-8C06C928783AE7E32CC7F03BDC4066D87357A596FA9B3C3E63A7C479F07E8EA3
+-[ 97 lines removed ]
++4B25D6FDDD45956A8ECAC7D4E624353575E13D49DD5AF366220D2AB92888B070
++2B8643F60A51A6ED31906F0AAE5F86D5AF28522D7DDE76E26C270701183E0047
++942C30D06D4F9BF3327B9AF9CAFBCA001B7C0328E4C7DB807BBDAD0771EC0FEF
++E058B9944292ADF21511621F53D54EA7B5C02B7FDABFE16EFDE6DC492539AAEB
++170FA7E02E3F0ED9A6A38BB39CA02A3504FEB9ECF4787CF3CEA0650E7E15D5EB
++486CD83D388C14987D638DEDB577132ED43AF5EE50405693B45BC96AF80597F9
++4E6857331548A348C48D19182D79249080AD244A961CCBDC765F3377789FDAFC
++843F9B3B635BC7871DBCF2B8BB3491ABB04CA2D32CDD53F0BB71EBEF1D3FAB9C
++EBFF003964E7B15772BF5D304E3DAE023DAF73D816CBD8BDB4B41E647DC94470
++C1B8DE914D79EF7E0F20E7056DB4F50EE635A4C8F7A3B6866F93CA641F3F2CC9
++3C7676EF634FA96FB94E96DC2D0E437E119950277E78B198E71A13607B8DF12A
++ABB2F4CCCFD8A87EC7D1C65D90655801BA3ABD21A88C7DCAC6BF7C344DD11ED9
++2D87922CD209224DD5987EC19F5BEFE9E93C8DF81D8A42742D2EC98BF1E4ED4C
++DF8DDA7799FF2A8AAF404BD596FA6A922B662575F23B53B7C6B245AFE9025C38
++9EAD4DF1F0DBB3869B74C2373223236E809ABE9557FBDC140AE17DE96263A6CA
++5338F0545FC28B0032851ABE597E0B54F69AC8457AD087A193B7BA06547EF0E3
++9534A987A1EEA442751DE48D1AE4276150B16A0EC3500A0906CF155F6226D2D3
++A8D65C27A6AE8EB875F44F24E156BCDA1FC61B7D9DEC00A3BE6337FC6C9BCC61
++82DF2D01C2788FCDB45C0778BCA0D421F53EFA66E1D2C6D26AB50221A3877CFE
++257E5227771A0C64C452C396385BFF862ACED7B03B922D623E3EDD7B4C069F98
++24945C031949593F3A1AFC77E8AF7E0627A3765FF790FF2EC2C2467E452671F8
++C38CA8468E6167FA14D5273CBE105279F4E8CE04CBB1A7C524CA9914237E4E76
++C17112E246336FE0F152908B4D4E14C0E76CEE3C5B8B6C82B12B9A84DAB00C9C
++40F7C6953CFF071E1637F543AD1A69E7906D5E1909ACBFEB34A00F3489D76F2C
++C2DF9EE7A1EBCF47432431CA34CC5C8B3EE785597F9D69CCC154219A606ADBFC
++E49F41D51311F3A94EF2B1A0E82AE55A71639496C411BC79646781C45410568B
++75004DC08552B28BB3FDB4E9208F5FC2A87DB2EC1E252407303B0736C72D509D
++C1888569215047633CF7343AB6B84F1824CE506B415221AF6B6BF51481C928B0
++FAC0F7A1B7A94085C657D1C6E7C61CECA3DEBEB081964C6150ABBD5B3A4B88B8
++F211F2FDBA6E4F0859AFD74E72167A3D3BD86F381ED2C22BBA7167A4E9931F28
++981F37461BD360D2D3A2CF418F22EEDC232CA6A04E928004BD90C2FCDFB6DD89
++5689BF9EAE16CD83AA19B621749E3F10736FACA7F6BB0D7D19F73EEE205A4778
++5EF3C453E6F77A08AE9F9607FA8E4CBD97E59325DF7370194220011D87AA5F02
++643B748585EEEFDEC03F78EE6AA916EF44A4C7131B25ED83336504E06A82A194
++C7BD042EE90B6808E2475C2617F9A50E224F50A0E9F15BC58735B72F30CF7592
++9BE05AFC9FF05811AB2D35F58A84542E9A95EBE84AEAD39029814C8BCE19DE1D
++6EAFE04776A6E23863A933078529238342C32A4B81788C31E62BA0614BAFC58C
++2F9B079ED3CF9C315BA95779D124604AA59F9EF1C88FF5E9C35B6BEEE4A4A628
++61ADA3FDD31E6400F34759914A793C6FDB2A0232D1BAF31F0D848176A53677E7
++150CB9237C857C44F0E8E481FB5C4AA7307B04956B86F9B706370100BACC55BC
++1063DB3004BFD2A272675641CBF0F91CEEE7F68B8A32F69822883FD8A0466C0F
++CE1D7CD5B7A0906CD92658754CECC5E75A1C8691B28E34FED92FA0586431588D
++2E791B4423EFC6B973A92078EE12F3552277D6EDA63B139CDE6005A9ED7835A5
++D11CB6A9E46A286EDA2662EA7D38726F2A1891BF6A36FAE59700A36C28182B05
++10F610DCE4F979767770F5AE6A3B2DE83040B16BFFBBEB73850E2199B8D101C5
++3133656C79DD1C174C26DD97D462B4323F33B410D07D2F6A320A79C6A1C23A69
++5A0C8B36CBEEC17D5A54A3FF834DFA815E1F3765392D2DB2F4AB03FD01A26A66
++83CD370CE208AAC25A0E32F30EADF2050B71A795EA13A4D07728245BAE9EAAED
++C600B0EF658DD1A4D02466F90AB4EA0F908B64D5B00832EE12C40DC0B0A5E893
++4FDB520A423CF5ECC910C11C01905E075CD64CDD83F0A08473FB9DBC1ECE9471
++[ 95 lines removed ]
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ cleartomark
+ {restore}if
+ %%EndFont 
+ TeXDict begin 40258431 52099146 1000 600 600 (test.dvi)
+ @start /Fa 134[44 3[46 32 33 33 2[42 9[37 46 1[46 42
+-12[60 13[54 11[23 1[42 1[42 3[42 42 42 3[23 4[23 39[{}20
++12[60 13[54 11[23 2[42 42 3[42 42 42 3[23 4[23 39[{}20
+ 83.022 /CMR10 rf end
+ %%EndProlog
+ %%BeginSetup
+ %%Feature: *Resolution 600dpi
+ TeXDict begin
+ %%BeginPaperSize: Letter
+ /setpagedevice where
+@@ -507,13 +505,13 @@
+ { /letter where { pop letter } if }
+ ifelse
+ %%EndPaperSize
+  end
+ %%EndSetup
+ %%Page: 1 1
+ TeXDict begin 1 0 bop 639 523 a Fa(T)-7 b(o)r(da)n(y's)27
+-b(date:)37 b(F)-7 b(ebruary)26 b(28,)h(2016)1926 5255
++b(date:)37 b(F)-7 b(ebruary)26 b(27,)h(2016)1926 5255
+ y(1)p eop end
+ %%Trailer
+ 
+ userdict /end-hook known{end-hook}if
+ %%EOF
diff --git a/tests/data/ps_text_expected_diff b/tests/data/ps_text_expected_diff
new file mode 100644
index 0000000..e50d498
--- /dev/null
+++ b/tests/data/ps_text_expected_diff
@@ -0,0 +1,7 @@
+@@ -1,5 +1,5 @@
+ 
+ 
+-Today's date: February 28, 2016
++Today's date: February 27, 2016
+ 
+ 1

diff --git a/tests/data/test1.ps b/tests/data/test1.ps
new file mode 100644
index 0000000..ba43821
--- /dev/null
+++ b/tests/data/test1.ps
@@ -0,0 +1,519 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.995 Copyright 2015 Radical Eye Software
+%%Title: test.dvi
+%%CreationDate: Sun Feb 28 06:58:43 2016
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%DocumentFonts: CMR10
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips test.dvi
+%DVIPSParameters: dpi=600
+%DVIPSSource:  TeX output 2016.02.28:0658
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.0: CMR10 003.002
+%%Title: CMR10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR10 def
+/FontBBox {-40 -250 1009 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 39 /quoteright put
+dup 44 /comma put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 54 /six put
+dup 56 /eight put
+dup 58 /colon put
+dup 70 /F put
+dup 84 /T put
+dup 97 /a put
+dup 98 /b put
+dup 100 /d put
+dup 101 /e put
+dup 111 /o put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 121 /y put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
+569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
+24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
+2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
+8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
+3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
+D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
+D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
+03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
+767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
+8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
+DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
+94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
+22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
+72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
+8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
+344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
+64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
+07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
+1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
+78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
+CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
+7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
+BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
+4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
+5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
+EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
+EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
+4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
+0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
+C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
+314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
+DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
+EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
+DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
+DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
+7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
+1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
+69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
+EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
+7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
+CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
+38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
+22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
+0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
+BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
+4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
+3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
+B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
+15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
+849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
+FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
+4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
+1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
+84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
+7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
+CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
+4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
+3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
+F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
+F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
+DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
+D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
+56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
+8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
+59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
+49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
+87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
+8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
+C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
+D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
+D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
+F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
+0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
+5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
+229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
+17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
+01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
+F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
+3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
+689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
+4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
+A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
+DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
+364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
+7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
+26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
+43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
+8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
+C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
+94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
+C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
+B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
+4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
+7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
+204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
+B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
+7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
+279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
+E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
+CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
+65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
+BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
+6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
+B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
+63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
+4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
+A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
+67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
+DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
+5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
+C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
+9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
+B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
+963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
+D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
+B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
+72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
+B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
+8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
+3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
+668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
+ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
+69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
+C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
+3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
+407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
+11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
+2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
+4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
+2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
+9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
+CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
+DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
+0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
+5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
+9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
+EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
+09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
+2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
+AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
+324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
+486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
+EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
+52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
+9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
+4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
+B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
+BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
+6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
+B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
+16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
+E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
+546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
+6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
+559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
+C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
+ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
+04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
+7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
+8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
+A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
+94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
+C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
+41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
+7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
+18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
+9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
+ED26ACBEEF581793D880A38BF73E8FF55CBB75B7341F06D8E3F7F3C8FE50FFEF
+2B463AAB9CF4F7DC51BC68EFAD6A875AF7C649CDD908D220C0A9F9B5290D7470
+5098D4582B05DD6D2ACFC90A1ED23A0804AA3A18E7D7C3A2511C0DDEB78D8CF4
+1DC6D30C3B8744042875AD434486947FD82698DC61A325BE0A37CEE64B8E798C
+B20E647845B567DE081A7A9EAC19523E6B184E1293F5E245E294E058F3B1FB5B
+86BC9EFD6A9182A687B43D5918B4EB2A1C95BF082A31E4D683FC1DCADA8C9F90
+CBA770F6B6A655DCB230001790770D058B9FB23098A309023373FF7541E4C1BE
+1E185A26488ED6138CF334D63A75CDA617B173A253C5266654D1AA1FDD19A246
+74F7A8D5A62C2EA6A396F42A330D1B6C3619E2C081F4DE7D2AD9C8E13DAB7E35
+2BE200322BBAF6DDD2628694612A779377EC684F397CAFF417D6C412A8F0B0A5
+0A868AE11D06B18FA624CFCB41C4AC208246C197114FDF5F688B068F1C02CCB3
+F652A2EDF25D95A9456C7098D09D500A57187ECFC0EDF5C1A83578340AE2AC05
+CDA985377414F95E3DD9CF7764E41BDFE03C71E686B96B4D4ACF97D100AF9BC1
+7825D62847A988EAFC7B4DADA774CD0421EED1BC8C0976DCD965F5FC4EE010D6
+ED3ECBC2B3B6E3656F1133D5AC86B8E622EC0CC46D04779B5FEE71762EE20D81
+B7386A394B9E0E22F31790506CB62229B014C1532DE7B7795242AB54725732E2
+B44E1C0FAEBC43190EE840144F9FF6C4DB91388EBC3DDF6E7005DE761AA566AB
+9E2950F96B3863A922E378FA49A32F7803B9200043E29A62AA6361AE5A39C14B
+151EF2A78E956C6EE3D3022BAC61A4C2DAEA03AF138AAE1CA452CE4ACD876F78
+425474FF7E82E9C5CE6600CD6DF428285B627BE31FE63E459BD143A0F07DD29F
+40271861593E1DEBA8CADFE6720DA5752963AA712BF3474685253B3F4D7979DA
+1B1EF010A0EE7D54AD70089B1742F49E0D7F93A5550CD9DE2843D9D524D135E5
+50E0E9404E76C95651ED65838696FB3250F55A041447594422EEFFACCE6AF7CC
+9768F720AA8E19BE0B99F0EACAA52EC073331BABC2B016D44CDBADD60AA8F5B2
+BE8C21D7344CD8E8A6C73664ABF250A68110AAADEF6E32B9C3CFE63C0B2AF359
+8ED02E0709BB4F4CEF95ABCE278D699E1655BAB4264C1102174DE4B34F7C05A1
+E27832DAE605814D61DB4909A04A68D2590714984AE803D12E44C964C7ACDA74
+4B25D6FDDD45956A89D116B2828606C553F95237CFF9E9FA18003C9FF7B92F42
+EEE7AA3DE5F8C6C5D809F919A8D5D70128ECCAA924C19ED5885F7663F78A02CE
+68E25AB472D8529A21FA398544373189135E0ABEBDFF1538E9B8032D1946A359
+281C29D5AC0909EBB172DBA56056A429F54B372902B17D0C404105753FFC4DCB
+5675F656CAF198F1073B7BFE06EA127BA3B1EDF47A2F45617BFC36D07E89110A
+0E44CFA2460615EB10B2602D10372015A8CDA28AEDDE6E02E37ABF96D6709E49
+8FA6BD5C2B6D5B95D16AA4BAE01BBBF1C500EA0ED5390E6ACE54B7E7A9CF3D32
+E278603FDD8C754C61905468DA40C617C9258067536022B74C47E0081BDD47DD
+89458DF1F326D4F23606C6B8FC607D92DA9CC624D48FD50D1EE2A9FEF854CD62
+38126A0B323E6E84DA4AFD6391E81ACC544000E97C2E4598BC30968ABC4584F9
+69E166E6A53CFAB75F75CC28A53483CF3154987E5325EA8D2985AF7B9F14EA2C
+7C51096681B774B91359C32200E796531DE4EB663282065974F633ED91128C8B
+11A8B9D7DC54F36AFA934E907162B395ABBCC3134C59FAE8DB8EFA707B43D3EB
+A7D9183C5C6AED02B02A14F4AE5073FF6E47EB223C4A252260FB174575164E16
+97AAFCCF124AF3AEFA50A02990447C267CF4B0D3480F00DFDC22CC8FC032E38B
+815EC475EBBE73C378B8E75F654646CFCE05D5E5B6F035C55B26C8D829C4255C
+893F7749C4E7B6796855E211E6751300FBB38725EE7FF097F769C017F16598B8
+35A0B93A6CE310DE9062984F6951B5AA2EBC9853650192211080804BDCB55965
+4D6768D9BC423D96AAC128596507D79667C83C55127A328FA7317EC07135B034
+731659C69FEDB4D611F3D89F5AB05DA5C62E83934C1B77611B579498EFBBED42
+E2BC6B5BE6D54F3A472DECB39319C2CCF5AF68E2540408A710ED0FE44D46DF19
+6E1C9BD16E60FDCA96B4E7B2EAB24A22C1E20896BC8FC91E4831F001EEBBAD4B
+BE90C916DF1C2D1749DC6345740997235F1CF73E2114F9BA7234F4F3E8BCD61C
+D3D3BF8AE26C48F97876F35E0E6F37FC4E9EEC8EDC1A4916452575C7B3F07637
+1F8B5C888DC44FBA5607435A619684F502CF65F8932186BB6D7ADA1E291A6751
+7B5FFBE4A17FF7373AF18D463816578FF22B5CCE8F0121ABE5442488AAD347BD
+58F0EC389FACAD28D0029DB1EF242E0949F1FF38A4940E34915091E6913B5581
+A0EE53B4E6E5FA84C21560E71E1FC398B99ABC5901054B4214784BB16FFA8B26
+4D7F0EE8BCD0103D072885013574F695CFBECB0DFF2F1F8E91CFB071B56D1647
+7A4CCDCF78AA41A21669D4F969AB2868B391D4CCA21F5A74905ABE9530283E6B
+C72AEB17EE83CF1C19B371BA0BA4C3FC5B8B10AC5362EFE6A4271F2B6F82C3BE
+2298DFBEC78BC36F7746A67EBF2EC7FFFD489533EE84CEC0ED22BEB736BDEB0F
+3BC878FC55C33F3FD43EA0AF466FA5B60AC4490AA5DB18A649C442A55FB06914
+8683375E02AE84420BFCC53FE88134ACD87A1A5FEE14044962F0B4269F80FD7B
+5E55DC55BA957D79FF3F279C52F72F03E439B6883552A1F042947999D34837B5
+A08E55E6319BE14383542B9F6500CD2A6B2476F2CCA548F5131F2E9E392F4234
+435AC61CF7312EEC50FDDCD73F2E287FE61B3AC6E94EF7B3A3BB133509FFA37B
+6CC0AD35FCFDDBF7B4B6C2BE6916D5E3E1FD98697E21F7AD3CF2FB3897152B7E
+9F7C4C3BBB939C42B4A5A20E344807E04623E5A083B06F5AFF9307DE6AF51E58
+627D5E2622524F834B1740A14F9BC6DE00706D14F1142BE165D39AA88653E252
+1BA57913CDD7960CD35C0A96694210CDE808E2FD04750B7DF2D04B3559655878
+C28E022E0FD87B91B4892171B3175CF87EA8445F5749C2B09692BEADB30ADCA9
+387FCAB2633938B25905ACFA3D838E3DCAE3BBEB48AA196A27F9677F726AE301
+C65150264A4431884FB04840A1D641A983CA3BCD9382380CE27758778C768E5C
+29F072380217311606744A28CF02BACB510FFA4E22B5A0CB4F43E79032D0513A
+0364944090F265D9016C3AE50698C63E39056C159DDAB8844290677BE6AB51DC
+370B95A56E0198911CF3E0CF8648D24473A7B6BFE9313BF8FB4E5B6340D9F40D
+12C0D6DDD6E89A3BA6468B6322EF1ED480FC2C330B4F75B2FB0D5A087CE736B1
+4E6BB73F418498D5F66A9DF2917F9F373AA2297896E42772AE3E18655C54F2B8
+8C06C928783AE7E32CC7F03BDC4066D87357A596FA9B3C3E63A7C479F07E8EA3
+E64470B60D44B75B84AAC49B9A6A90B0A4495B1941E759A7CA742F6AD10F9B59
+C3CDC8D90DAF8986077461DA65D90F77DC54EF0373067DE4140769C6465E94B1
+5A93BD1623C150EF1EE877962760F05FDC2EC3B6AD34DFD639D65782267E8E51
+3128B955D4FE716C9A261EEF9C1A0425B819E333CBA03E8D661CF115FB195E7C
+3DE00E3A29FCCAE10A43014D5BF8AC10D649329CCCC022E606A5A0A1C98CC87E
+8404F4926454C7DBC47FFF0AC85CC5CF0BDE09CAF9705983A587B32742316AED
+9FB7B3F3932C95DA1F517990FCB1B4367BCC520C3B289FCC7E35FAC7092AB97B
+20AA7D44F7766B8BB5A695A267912A438EDB2C736C7BA6755991D3219344B09A
+A7661BEA37D4837B15B1067B67999997E37D5BD59A5E8B912F8F30F5584EEF58
+4B46A5B574446C8334CD8BEBA270E9EF0E4F0D7B69C5ED963399EB3291F47F19
+6748FE7E05B02F79771611D5A3155F3C7701166C8EB0B6A9E9BF359679ECF605
+96666690AB674AA9346A60C985268D237FAEE252E83674BCDE538254FF6985BE
+B99D01AC96BEC46E11F65A68C934C671570A5D40B7F3B6A6238EA4EE091F0F64
+21A37026A09C6904308D106C37021E1141BFB960D819C0CC308C23E08B05AF93
+163F8C79ADCB215635D473B68803F5BFBA022867E12D1FC895CD7B5EC4B6E52A
+7491F83160DCC3D9D3277DD9077D5F9814C468D3637034D28CF748A7274C2EDC
+4EEB95F0EDAF77FE542075A2DF749043F3BBB98C15CB863D46647CAC9E960CB3
+9CE1ABF3C2425AA7F16E3E3CBFA7B3018334C8DF5FF541A89173AE31944A826E
+39ED576E7E792D7F9D36520C59DFCEB7C24F8AC9C2A3FFE9F393CC7AE1021180
+70054C243ADAB55FAD00EDF032E6E6E8B7C49F2CF28600D53EA5CA6B6423D92C
+9986D30BDC5198A5C3A0604326A47C5BB592E2E8DBF253366475897D14A97E86
+03912768935539A025637B3F3D941EAB629A97F530C7565657A0C457E350F758
+CAA0D914C88A74B792EB8BB5DC4904581FA7D87575A3A7CF327BD31EBD45EBFF
+BD84FA0BF8935D8D49BCFD7E7E0A23C7E7AF6ED4574AE0520EA3E52350A0E872
+CFFD9E8BD6C54A2B5AEDD65707959C94AC3790EEF76D3F3AC9C795B3ECE17740
+296FEE99988E871ABB9E905D3283709EA6FD6398A83D1D06B9BA0307C8C9FDBF
+600845E7463853A60C3FABBF623AAE7F0B3C60777EE935BF70BC156329719515
+6B1E4BA88A3D8F4BDE985E76372F039DEDB0C26A82C1287AF9CF4ED7AC771B30
+AE2A5B9C455B5BD57D20D44A808D678A5A5725E20047A0E073B31F0F5CB01928
+5B3897F78125A366B11B15F77CC4DCBAC194AA69864C3516469D1D7065F1C85F
+2FC836297170D8C292640F80FBF03EB2590D3A3C150F2C4A36A3F5E26CB86519
+DF021AA87A10252634CF4EED81FA707075814BCA50E5ED3DB845E4FEBF0884FF
+81C3E0F0FF74EA455ADD6E2CB74BDFE06A790950E13749FFECD3136903300768
+78623E5FD0113869FC30A301DBB9899B0980EEF27FF33ACBBE4F1FCD9DB9BF5F
+2F8D8B0AE7402EF0233CE106F07BA2FFE97C13FF25EE91FEEE3EAAA8DD70B4E5
+993274D3413EB273A9ED0BD78448C004DAA54B13D64B267422165DCAA8CE8C28
+5663F4329597EB39163239900E4BAD7DA863D621240BB9E1AD8BB4F87712B83A
+03E7B361A6BE76EA7E65F8637057B911BD3F8A7CE522C4F741FA3DCA9BEBD325
+8199920C5A77E117F8475C0158622044C14C8460A0D464B6A5F4290581959836
+F1EACB72EA9A5C96557C1DBD79110A1FDDC7A829E0918071BC8EE966E8C8132A
+399AFC5383B8A555A195DE676102B0B9E22A47E0FD79E2C90A6443EC9F49C41E
+26FA7EBD6D767A197D0D4DF43FE74B9807FF6930C302311C993EBC7D359EBC5C
+CC672A2E3269DC1588530888A81FA4688A01E64B9D449AB4D916EFA148F06381
+9927D2E7BE6A6EFA13D225EEB07D81FDB0C9F32CA5537A22EF942AB12F6C71DF
+B898B0F0045A6DA6E479D42F971B7240FB605F647B41BF8564820F5B568F5341
+ADFE18CE181F2BA5808C528191E1C8B2AD34B64EC3871D25F39C3E477F543893
+AC88C9E8E5CCC0403FD08BC1EAD90ACD7490C0A9BB68CBF46867C6475306E731
+C8D87447F9C2D9A7C482BD520A98175CBC2216D91E29C7CC3F5F15CA343EA6E2
+7B195DB92B7B0AC8D80D17A04F4745E74CAD0820680A3BF17CDFFDBB859C9B11
+370D45F29842CD1D54D828C926BC16A6051E2332E8B7A92B269688F11467D65A
+E4C9049F180AC2DDCFA405A4B74D846F019F8192AD6469A4511965178CC031BC
+C671E9A543A7967826FD4095A5EFB1DDA14667401768E8B67F4827DC032F69A5
+33A4B67EBBEA5C7C40DE44A743751A6D9D9D186483BBA665A933061E6D8424FA
+4D70905203E4AF7ADC2E0832686B7AEC505DCB8A85CBAE00AAF9EF20EAF4C269
+D872480779CB89F77592555A6ECD8CB98FCCA21BDBEE9F34C5070E89EB9D104E
+DFADD85269AE7C9F549C12E49641AC656CE39E0E2BDF3BEAD2AB9165670F5435
+4EDD4DFED6DBD462BD4A96AB063D847463013AC44C0EC3E06E79BB04E035C906
+21CE50314291838C458655DBFB86DB4C35E2A49B7071DF126CEAC58CBDCAC57D
+5A4F84266410D98D715EC7C6BEEE7CD453870383664A5DCBF68A2F9922C5657A
+C822491E464A658EF6FD519F8A7D9F7F373142C83DE8B7379DF7C38DD213FBEB
+B4FD42A70F5B9D6554AA30AEE1EF6D1A4EB99CE26C93D85975EE1046FC64B730
+4D5E3C794C801E591978FEBBEE0513909690F1943740FE73E511A02752E9F7BA
+419A22899376291AEC16C406B58BCAF3ED2316460BFE59B1948D1F6D68C99C22
+93CA2F47FE17E3295A2DAC9027A0CC40375D60509FF1912ECA1AAFDEF3DDBEAB
+3D07AEC239ABFC5FF282A8DFED095BCB1A5A205D4828648E9694E35EFBF5EA61
+8836280FA0E3D038166FF8AE4B869905F61719593DCA9EA78F0AD3F36BEF85F8
+634366C6A6E66F0B2CAF2BE9024A9F07A03830B7365E7E73BBA4A0E4BF8D96D5
+27F3FAE60E98699ACCDC3A4DB94FC6D9178F62A212F4354923A9FE165F0127B5
+EDF8D67EC6E45B4DCE0FF68D69EFB4AEF06AF51FFD8A5796F21C3F38BBE71D4A
+8624F7E50EE40183B27E7E8B18DFC06CC02DD8B136145BF9A0DE190978C151DE
+AF9EA9653101E2C59486869F2C0406FA114970533E7EBCA203B12F165F5C2FE3
+BAC5D8BD676A29B9B39093FECD6FE1359BC30EAF5BEE9E8E2CE6CB9B19A1972C
+2E0130639FA82166AB75BECDA0748F943BFBADB6C1D7892997735CFF53A96442
+E7D8C15C5F798DB39A6509A9070FA646AD1F6C6699B1DC2FB188DCF27841AF31
+E9B33E5512B18DAEA4C13009D1F92E19125993D8FF9644FCAB7414B9C12DF2FD
+2582BFECE2748197527C72887F1F99A69D53ADAB8B63A1A5E98108903E217EEA
+883238C475D5F614F12ED200366E4CB6B5F6AA0BB3DC7966C8F53BFF21269EA7
+3E4298CBBF5D26480B352CC4794FFC86B7BF44ED8428DAE123038AE9562EC04F
+6B0076BD8DBD24BC330AD9399972A4A946274DAD61A9CD621AD2D5FCB45F0E12
+31B3A19589BE6B9CEEC530FB1140513DE6235A1ABCE7E5A8800F0282C6C24986
+878404BE7530ED3C96AF4E6DA0D2CF1DE8465174D15F44D7862A7E3C3CF4FFFA
+35E934817E2B36D6FECEEB999B16EF4708A9847D91D9713AA964AB7D478E1279
+C271DBDAEAE17E25066F66DBB2E9E7365AA9BBCCB252B5A64FB861C354F67679
+0FABE7C1ED3AB761033816D6BB0CB3B1151B38E242B6DEDA236400CA5031FDF2
+6B5DC7199DB1F96936821C41833A3FDBCCEE2D9B8972EB0EC4EB3D96641AED5E
+DCA22A1289EE25829AD85161AE66B7FC93FAB4F34050643755FBFB7EFF6C973C
+F35E6E854758E20AEFFE435C8619AC965398791211854463046528B56391E346
+88F32602BB7FC9D49DC864D46D2C87BFA05D3879BEB4750E40B6D63D95BE26E2
+F15B297294F2D05191976FDEE7875AFB62B8A9440A89EFD07EDE787EE2FF7EA0
+AC68A183CBECFA1D4FBA38E56DC4706628BA076E777D4F0A008BA42216C6D764
+AC7049319ACADAFEFD29C2A6D33101A11A86C6C3D6C90E61AADD9BA9953AB485
+2E4D97980DE948833674441085011CCA763F0D567229AE757AF842B3B0D93E10
+1A3166A10A960A44D18F7A8A6C0E2CB2C0B8589F4E23256FA9B09291CDBC7DCB
+8E9E2BFB1B0973B9FE24E1C8E120B73F095111BA6DE38E87FF1C3260F551B086
+1C5BF9EB95B9AD45339406EFF08FDFA1844CD74AC4D4030821694A847954A0A7
+7D9BBA6F55CC1AB951A815739957D880AF37670B212503106815E2177E710C64
+829762B16BB57CD6AE5A668289CECFE1072F6D5900DAEEBCF093
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+TeXDict begin 40258431 52099146 1000 600 600 (test.dvi)
+ at start /Fa 134[44 3[46 32 33 33 2[42 9[37 46 1[46 42
+12[60 13[54 11[23 1[42 1[42 3[42 42 42 3[23 4[23 39[{}20
+83.022 /CMR10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+/setpagedevice where
+{ pop << /PageSize [612 792] >> setpagedevice }
+{ /letter where { pop letter } if }
+ifelse
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 639 523 a Fa(T)-7 b(o)r(da)n(y's)27
+b(date:)37 b(F)-7 b(ebruary)26 b(28,)h(2016)1926 5255
+y(1)p eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/tests/data/test2.ps b/tests/data/test2.ps
new file mode 100644
index 0000000..9d12ae3
--- /dev/null
+++ b/tests/data/test2.ps
@@ -0,0 +1,517 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.995 Copyright 2015 Radical Eye Software
+%%Title: test.dvi
+%%CreationDate: Sat Feb 27 04:58:53 2016
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%DocumentFonts: CMR10
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips test.dvi
+%DVIPSParameters: dpi=600
+%DVIPSSource:  TeX output 2016.02.27:0458
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.0: CMR10 003.002
+%%Title: CMR10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR10 def
+/FontBBox {-40 -250 1009 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 39 /quoteright put
+dup 44 /comma put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 54 /six put
+dup 55 /seven put
+dup 58 /colon put
+dup 70 /F put
+dup 84 /T put
+dup 97 /a put
+dup 98 /b put
+dup 100 /d put
+dup 101 /e put
+dup 111 /o put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 121 /y put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
+569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
+24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
+2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
+8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
+3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
+D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
+D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
+03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
+767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
+8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
+DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
+94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
+22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
+72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
+8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
+344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
+64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
+07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
+1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
+78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
+CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
+7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
+BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
+4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
+5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
+EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
+EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
+4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
+0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
+C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
+314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
+DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
+EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
+DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
+DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
+7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
+1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
+69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
+EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
+7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
+CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
+38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
+22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
+0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
+BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
+4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
+3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
+B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
+15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
+849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
+FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
+4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
+1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
+84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
+7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
+CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
+4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
+3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
+F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
+F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
+DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
+D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
+56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
+8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
+59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
+49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
+87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
+8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
+C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
+D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
+D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
+F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
+0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
+5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
+229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
+17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
+01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
+F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
+3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
+689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
+4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
+A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
+DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
+364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
+7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
+26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
+43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
+8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
+C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
+94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
+C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
+B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
+4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
+7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
+204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
+B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
+7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
+279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
+E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
+CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
+65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
+BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
+6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
+B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
+63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
+4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
+A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
+67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
+DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
+5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
+C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
+9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
+B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
+963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
+D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
+B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
+72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
+B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
+8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
+3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
+668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
+ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
+69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
+C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
+3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
+407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
+11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
+2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
+4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
+2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
+9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
+CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
+DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
+0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
+5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
+9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
+EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
+09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
+2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
+AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
+324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
+486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
+EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
+52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
+9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
+4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
+B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
+BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
+6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
+B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
+16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
+E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
+546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
+6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
+559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
+C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
+ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
+04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
+7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
+8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
+A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
+94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
+C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
+41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
+7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
+18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
+9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
+ED26ACBEEF581793D880A38BF73E8FF55CBB75B7341F06D8E3F7F3C8FE50FFEF
+2B463AAB9CF4F7DC51BC68EFAD6A875AF7C649CDD908D220C0A9F9B5290D7470
+5098D4582B05DD6D2ACFC90A1ED23A0804AA3A18E7D7C3A2511C0DDEB78D8CF4
+1DC6D30C3B8744042875AD434486947FD82698DC61A325BE0A37CEE64B8E798C
+B20E647845B567DE081A7A9EAC19523E6B184E1293F5E245E294E058F3B1FB5B
+86BC9EFD6A9182A687B43D5918B4EB2A1C95BF082A31E4D683FC1DCADA8C9F90
+CBA770F6B6A655DCB230001790770D058B9FB23098A309023373FF7541E4C1BE
+1E185A26488ED6138CF334D63A75CDA617B173A253C5266654D1AA1FDD19A246
+74F7A8D5A62C2EA6A396F42A330D1B6C3619E2C081F4DE7D2AD9C8E13DAB7E35
+2BE200322BBAF6DDD2628694612A779377EC684F397CAFF417D6C412A8F0B0A5
+0A868AE11D06B18FA624CFCB41C4AC208246C197114FDF5F688B068F1C02CCB3
+F652A2EDF25D95A9456C7098D09D500A57187ECFC0EDF5C1A83578340AE2AC05
+CDA985377414F95E3DD9CF7764E41BDFE03C71E686B96B4D4ACF97D100AF9BC1
+7825D62847A988EAFC7B4DADA774CD0421EED1BC8C0976DCD965F5FC4EE010D6
+ED3ECBC2B3B6E3656F1133D5AC86B8E622EC0CC46D04779B5FEE71762EE20D81
+B7386A394B9E0E22F31790506CB62229B014C1532DE7B7795242AB54725732E2
+B44E1C0FAEBC43190EE840144F9FF6C4DB91388EBC3DDF6E7005DE761AA566AB
+9E2950F96B3863A922E378FA49A32F7803B9200043E29A62AA6361AE5A39C14B
+151EF2A78E956C6EE3D3022BAC61A4C2DAEA03AF138AAE1CA452CE4ACD876F78
+425474FF7E82E9C5CE6600CD6DF428285B627BE31FE63E459BD143A0F07DD29F
+40271861593E1DEBA8CADFE6720DA5752963AA712BF3474685253B3F4D7979DA
+1B1EF010A0EE7D54AD70089B1742F49E0D7F93A5550CD9DE2843D9D524D135E5
+50E0E9404E76C95651ED65838696FB3250F55A041447594422EEFFACCE6AF7CC
+9768F720AA8E19BE0B99F0EACAA52EC073331BABC2B016D44CDBADD60AA8F5B2
+BE8C21D7344CD8E8A6C73664ABF250A68110AAADEF6E32B9C3CFE63C0B2AF359
+8ED02E0709BB4F4CEF95ABCE278D699E1655BAB4264C1102174DE4B34F7C05A1
+E27832DAE605814D61DB4909A04A68D2590714984AE803D12E44C964C7ACDA74
+4B25D6FDDD45956A8ECAC7D4E624353575E13D49DD5AF366220D2AB92888B070
+2B8643F60A51A6ED31906F0AAE5F86D5AF28522D7DDE76E26C270701183E0047
+942C30D06D4F9BF3327B9AF9CAFBCA001B7C0328E4C7DB807BBDAD0771EC0FEF
+E058B9944292ADF21511621F53D54EA7B5C02B7FDABFE16EFDE6DC492539AAEB
+170FA7E02E3F0ED9A6A38BB39CA02A3504FEB9ECF4787CF3CEA0650E7E15D5EB
+486CD83D388C14987D638DEDB577132ED43AF5EE50405693B45BC96AF80597F9
+4E6857331548A348C48D19182D79249080AD244A961CCBDC765F3377789FDAFC
+843F9B3B635BC7871DBCF2B8BB3491ABB04CA2D32CDD53F0BB71EBEF1D3FAB9C
+EBFF003964E7B15772BF5D304E3DAE023DAF73D816CBD8BDB4B41E647DC94470
+C1B8DE914D79EF7E0F20E7056DB4F50EE635A4C8F7A3B6866F93CA641F3F2CC9
+3C7676EF634FA96FB94E96DC2D0E437E119950277E78B198E71A13607B8DF12A
+ABB2F4CCCFD8A87EC7D1C65D90655801BA3ABD21A88C7DCAC6BF7C344DD11ED9
+2D87922CD209224DD5987EC19F5BEFE9E93C8DF81D8A42742D2EC98BF1E4ED4C
+DF8DDA7799FF2A8AAF404BD596FA6A922B662575F23B53B7C6B245AFE9025C38
+9EAD4DF1F0DBB3869B74C2373223236E809ABE9557FBDC140AE17DE96263A6CA
+5338F0545FC28B0032851ABE597E0B54F69AC8457AD087A193B7BA06547EF0E3
+9534A987A1EEA442751DE48D1AE4276150B16A0EC3500A0906CF155F6226D2D3
+A8D65C27A6AE8EB875F44F24E156BCDA1FC61B7D9DEC00A3BE6337FC6C9BCC61
+82DF2D01C2788FCDB45C0778BCA0D421F53EFA66E1D2C6D26AB50221A3877CFE
+257E5227771A0C64C452C396385BFF862ACED7B03B922D623E3EDD7B4C069F98
+24945C031949593F3A1AFC77E8AF7E0627A3765FF790FF2EC2C2467E452671F8
+C38CA8468E6167FA14D5273CBE105279F4E8CE04CBB1A7C524CA9914237E4E76
+C17112E246336FE0F152908B4D4E14C0E76CEE3C5B8B6C82B12B9A84DAB00C9C
+40F7C6953CFF071E1637F543AD1A69E7906D5E1909ACBFEB34A00F3489D76F2C
+C2DF9EE7A1EBCF47432431CA34CC5C8B3EE785597F9D69CCC154219A606ADBFC
+E49F41D51311F3A94EF2B1A0E82AE55A71639496C411BC79646781C45410568B
+75004DC08552B28BB3FDB4E9208F5FC2A87DB2EC1E252407303B0736C72D509D
+C1888569215047633CF7343AB6B84F1824CE506B415221AF6B6BF51481C928B0
+FAC0F7A1B7A94085C657D1C6E7C61CECA3DEBEB081964C6150ABBD5B3A4B88B8
+F211F2FDBA6E4F0859AFD74E72167A3D3BD86F381ED2C22BBA7167A4E9931F28
+981F37461BD360D2D3A2CF418F22EEDC232CA6A04E928004BD90C2FCDFB6DD89
+5689BF9EAE16CD83AA19B621749E3F10736FACA7F6BB0D7D19F73EEE205A4778
+5EF3C453E6F77A08AE9F9607FA8E4CBD97E59325DF7370194220011D87AA5F02
+643B748585EEEFDEC03F78EE6AA916EF44A4C7131B25ED83336504E06A82A194
+C7BD042EE90B6808E2475C2617F9A50E224F50A0E9F15BC58735B72F30CF7592
+9BE05AFC9FF05811AB2D35F58A84542E9A95EBE84AEAD39029814C8BCE19DE1D
+6EAFE04776A6E23863A933078529238342C32A4B81788C31E62BA0614BAFC58C
+2F9B079ED3CF9C315BA95779D124604AA59F9EF1C88FF5E9C35B6BEEE4A4A628
+61ADA3FDD31E6400F34759914A793C6FDB2A0232D1BAF31F0D848176A53677E7
+150CB9237C857C44F0E8E481FB5C4AA7307B04956B86F9B706370100BACC55BC
+1063DB3004BFD2A272675641CBF0F91CEEE7F68B8A32F69822883FD8A0466C0F
+CE1D7CD5B7A0906CD92658754CECC5E75A1C8691B28E34FED92FA0586431588D
+2E791B4423EFC6B973A92078EE12F3552277D6EDA63B139CDE6005A9ED7835A5
+D11CB6A9E46A286EDA2662EA7D38726F2A1891BF6A36FAE59700A36C28182B05
+10F610DCE4F979767770F5AE6A3B2DE83040B16BFFBBEB73850E2199B8D101C5
+3133656C79DD1C174C26DD97D462B4323F33B410D07D2F6A320A79C6A1C23A69
+5A0C8B36CBEEC17D5A54A3FF834DFA815E1F3765392D2DB2F4AB03FD01A26A66
+83CD370CE208AAC25A0E32F30EADF2050B71A795EA13A4D07728245BAE9EAAED
+C600B0EF658DD1A4D02466F90AB4EA0F908B64D5B00832EE12C40DC0B0A5E893
+4FDB520A423CF5ECC910C11C01905E075CD64CDD83F0A08473FB9DBC1ECE9471
+DE4399253D03E14A188BE5141A4062A50486D93EAEC19E116B4B8868053D57D0
+75935171EA1FDAD0E9501C46438C1763EFACA456CD55E427A4B35DDD5758CD18
+F678A95D1852957A849CE61DFCBC439708A42CD21CBCB198B7A370C52111D69B
+EF5C94E4D9D4A04FD82D259DD6DB7156CB5466B191EEE609E483D0012938367F
+3E568AAEFF333C21B11E27911E8A4A15C1DD1640104C322503F37A5A5ECF6980
+EA7317FE6AF1C31BA121A215078860FFF5548ECEC922E75955E8D643E8CE7C64
+24D33213B8D517AC827AE8F7075698E46D7BE31EB6A4CE7C16C4B3BA7A574D04
+3A76B249973D0B9E19C2D340CE23AA1E6D5D83072EB94F3358D7CACE85A35C05
+7F5C92141B37BE3DD8F4ABD4C6C2F2F4496FD3908090F860D09DB32951F54138
+43CC6664B2E25B48CA4AEFECF53BE8B30003C4ADC44AEC249D487AD6D0A02A67
+1001BC44508F84EB15F6BB2E774E3BD6EBCCF6ECB7D5DC0A521A02BD6044AD80
+4A571CEEB648BC7B6201FB42AA8EB8D88C032F6923692D4284A46F3FC0780000
+EC8E85C7D47557C950EA0CA5F1807D0292AB7441F18B999CEEA4EB2712C91D8C
+ADCCD80329CD494C0847D1F16CDE35A06301FFD26A3647271CEAFB80233112D6
+B33DFECEC2256D8744FEB8AD680C4C735A9B08AF8F7757A96B6D8207E75DF7C7
+665356FF04664D3F7F2453F488E11B5810B1EB019DC417AE160647EC43BCD4F1
+091E59E2D9A6DEA764D0D27EC86FFB089A9503D7553371571DBA06CBE97E9A49
+3027E3FEA2442566F2535BCAD5AAF50EEAE27373AF98EFD7ABFF7B8AA3866FB2
+47E94D79476064C6B40073A8076696CA9D12C1AB0579126883B8DD5AB04F805E
+878946C0808216311AB77A0C29FBBC15D8F35C647F3950DE2E0AE28C4B0147F5
+6AA18B3DBAA7CC79FB47976881358B2576FCEB0C9AE72E39865E404E77BC8229
+A810CED272DB3ED593F8A8390B7E572BC156EBDB449F156FD04C715A3040F33F
+F95CE5565495A5978375152F81E7215119A409D7F26568B22C4662A96B02D389
+4FDAE224F3A220F49F8F753BC676AF9517288610DF5FCF72C64977041CCAC8C8
+C110F1B0D5A33FBA3123F08CF4DEFC763916A6DB6D476420CE0E6992C7F0038F
+F519807D39C49D1590493A248E6F095517A2FCCC9DBB56EFEEFDD32C0FB8C9F2
+E4E11CEE209E5F7C13C7D4CF096EA47E012C3FCDF53F52F4F637D7BCEA2A6835
+B660CDFE9AE8E8FCF703BAA08D393AA0BA0A23A9B4D47A1CB2C78E9F8069449A
+723C38CD00FA7659B2409DA3F7C63A78A34E53649E3B1D7183F5780551B0B98F
+F73D42AA13C6FB7B5935A8938A0F5DBE18334BB631F2D5D02C5FA53F8BBC2D30
+7557FC7362F543411DCCA48A24EDFCC4C859D6330A63524DDB0B3CA4D345877D
+CE7EBA6C246542D253A89E1CAA482F2E48AA56435AA133FE758F4BD72875FA57
+09B56EA703211C2D6FB43BBFEEFD7AFB7EB6ACE1CE7CE8C9646142E4B244E66A
+85E4A21021E1BB294A2825E732E9D3531C871D1C63000CEC9C89A53C14764C3B
+E26C58207AAC906CD37142AF5339162727ED8C461C1F820BF97CC3ADD6B2A5D3
+5DEEA6755C401F422475FB6EB91EA078653744D8AB3417DD3F4D52F1B0DB5D68
+B20AE03459A0EF07659E7A90F3D5A1631807C9E9561F4BCFBD5BBF158F301224
+333D08BED33B43D781ED5C07699B9736D92D3B9407789360536D6D1231C4A3F3
+45CC27F8AB92E7A79B2C55DB06808BA42233BB7ABDECCE4958A02CFC4ECFD680
+54BC2D4F39FFF5B35CBD4DC37391A1457D59835B31633807D438D88141DEF145
+C773E93AE5D16E785D10C41EC26695E98A712AF908A0BE226DD0E61A199A22AB
+F47F0398A493991C57FBD364EE10D2D0DF7E2C602B088459F75F394542597F86
+776B8C31F710A1FFA1A8CA2B4877FBE1FC7B6E935403C68352BE2640537BDE9A
+191B86C353DB1793EFB4C3D5673133416041FFBE267A3B386BF7342CD03BC49A
+D9429952D2AF6D0208AEC4035D71CC153B2F53D88DD4933F95AA0ABBCA0769F0
+B85DBC79FB2936DF611E46519A5358FB08E21673F29578CA715F29CB22648A1D
+857741988E315FBE0C08871F4295CE738DE4A8572C9166CDDC3EC808A584DAB4
+664799A9AB516A9F0F51C7364CEDB5525E0CDA9F4B32B895976CC5F4A409D6B3
+E170526A37ADE42FF748B4F5702F0F061F83E586C14533C6AAFB75C42D534C1E
+CED0A6A9BFAA49F87CE3E65FDB0DDCE342F7BDA18B90CA794374BD32A0B5B7E6
+1EF0D2B8CD79CF8E4787795EECF348DC8E2DBD5876C15E3BBAB2532DF001BDA4
+CC4F54B3215D52D55FD27F24C524E7CFBF5E5D354F14104128369260BA6CF5AA
+8BE3EEE611C4FFC04DDCF340B8C7745F8D8AE1EA344644DD21335C0CBE551424
+67D8FA67C7C521FE3555BFFDCBBFB5E6EBF5ADDCCA45B1252FB2EC4FFE26A1AB
+03592F937209EDF01E64F413180CF3F6A668CB85D6A1FA413BA91FC2C9BDCBB3
+BC7C8267F87FE5C2B84FE0430838076C1F54585B7C572C12D87955C75D1914B1
+5EC0A95ED945831B14F54C5D99928275BF4A33646A3A99A65C55A2C49BCCF5D2
+E3F01A66364D4BFD3AD3572ED41BE2DAF80B16A4EA9C04AF731311328AC6EAAD
+D03886242C76AE8C01893B527D2CC609A71150EB44DAFF14731C0BA560A1C290
+0D93C77411BAB98C1236D9DF6F49943ABC69F0F2778731705AC3627C34215739
+8A3D9FCE819A2B2BE945A7DD7E2009B9E6ABF868AB6F2269079E4B12DB3A8FD6
+9783A34D2F9F6145899EA835B3F8B613B2B6AEB90975C2F94939839EBAFEAA16
+D06F80624ED16B812DF666BFE1348843EEE84E7B7833FED6D84E6F65F853E146
+0AE080B79ADC3E282B129B1A68A7A7A2012B57EFD3148EA7566DAB7C6138A6A4
+93EC15564B3836F70A1935FE73DFD34AC9ACAA60ED026535BC058784B5C7C82F
+9E0D241EF877621D168825E2CFDD136193E30C4EA3F9B0CBD698F88E6566D177
+942233D0EC0A9B60F193FAA528FD8D6B653D7F6DB241E5415CF34C15E337E74D
+D4AE2E27C086FBD5DE3A52A1D31FC251B4D1EA9993D0C03C57A1FCC39A1EC75F
+08C2845E7DA9F3689DBC97C0CFEE0546D007576F8218630FC25DB8035AFC68AA
+A22CCEF577FD4BFE4C1FF2A22D5042B2A916058F765CD6E5D30CD165F70F9F39
+953865DAD8A9442A230031D0A919EBF456FE031D6B1BE0C7D5D8F1399203B42E
+D7201D82660E309F53F510EB527235D8B1F80E822F08E7D32862FBB603738B27
+D1C0703BE4B32DBE38143CED975131E91B2D6D0913D08B55B5BFDFCA34E6BDDE
+6CE25F766F82E3EA7B986E40183C0ADEB410A40589139BCC2A3B58D6B5E4A21B
+70C4A984EE0B66CB421ADF5101D1095EC16768FF672742373C4F822579C56908
+3E083804BC25A9C1DD5E571BCAEF898990534F8CA68840D3080AB0DE80E1AA81
+8FD97803F7F67345EF73A609EA29CDACDDD10F89A049643310298E5A74812E55
+732E0921950D286C3BB8130B8383FFC74822BB8F46DFA4A8964D2C8A0E8D02E2
+EB73D4E7D5E677B9ED24D76003490B47D77CFCF27C502E134F9B0A58B1EFA344
+A73D5408A113935F894F330F2F62F52D774F81224C29A3219E39AE63151E691B
+D54556E17F89031AF131E6FB3AEBAEAC93DDFEDB8CDD87E9F56CF6249097306E
+15CF8C670B335D41F59317F44AC0AC460F38C9375A50F48E048D73A364C9A349
+9F2530D83F6621EF71106CF7DFFFDC29B337D843EF17D75C5A6D244BF52267A7
+CAF36A9DDCEE69D30447C349C5A6CF10C324DBA6675731B3312F2DCBCCA1FD1E
+609A4203B80E421BC1C440B64995392336AE538232C13966698914244AFE816C
+F04C80FBF6E052087D557D1585821545730623BCD485D1E8F0803EFCE197F62D
+DA58D11A9DCD7C536DF916C623F0AFA628461DE72BF61C8B564670E51D361F55
+B7B0D0728B3668576C1346890C27A2CC90111D5D6AFC8E06C9CF064EBE2E3253
+54BD68854E315F3D4A0FF29CEBF8A7D5E372882AFA43DD10F163E26DD283C77C
+E8B055992E1629C593EC28B5ECE0BDD42F6E1AABE45C6E160A700F3F75F11BA1
+F4D0F7E1EB7848B72FF625C9567BD588C022CAA2DC6606EA0CFE6F762FAF615E
+F4F8A205AC917CE938461057B47AD99CC2C66AF70B73C39A43EB686C8A803AE9
+3231F55087A56DE3A7DF0BA0DF74A64B324B0554EBD31C5318B59F987DC2D804
+B852838A5C06276A97D6D3AA747B38E7F7A8BA46D0E17DB201417C8355415E67
+C990413F049A21A5FE7E42035208DF556E253342802A0D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+TeXDict begin 40258431 52099146 1000 600 600 (test.dvi)
+ at start /Fa 134[44 3[46 32 33 33 2[42 9[37 46 1[46 42
+12[60 13[54 11[23 2[42 42 3[42 42 42 3[23 4[23 39[{}20
+83.022 /CMR10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+/setpagedevice where
+{ pop << /PageSize [612 792] >> setpagedevice }
+{ /letter where { pop letter } if }
+ifelse
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 639 523 a Fa(T)-7 b(o)r(da)n(y's)27
+b(date:)37 b(F)-7 b(ebruary)26 b(27,)h(2016)1926 5255
+y(1)p eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git


More information about the diffoscope mailing list