You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by ss...@apache.org on 2025/02/05 13:41:11 UTC
(xmlgraphics-fop-pdf-images) branch main updated: FOP-3234: Use unique value for glyph index for font merging
This is an automated email from the ASF dual-hosted git repository.
ssteiner pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/xmlgraphics-fop-pdf-images.git
The following commit(s) were added to refs/heads/main by this push:
new 509ee61 FOP-3234: Use unique value for glyph index for font merging
509ee61 is described below
commit 509ee6106037d1a3dd8bb95f4ac32011bdded954
Author: Simon Steiner <ss...@apache.org>
AuthorDate: Wed Feb 5 13:40:57 2025 +0000
FOP-3234: Use unique value for glyph index for font merging
---
.../fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java | 8 +-
.../pdfbox/FOPPDFSingleMultiByteFontTestCase.java | 12 +
.../render/pdf/pdfbox/PDFBoxAdapterTestCase.java | 2 +-
.../apache/fop/render/pdf/pdfbox/ttsubset11.pdf | Bin 0 -> 210025 bytes
.../apache/fop/render/pdf/pdfbox/ttsubset12.pdf | 2475 ++++++++++++++++++++
.../apache/fop/render/pdf/pdfbox/ttsubset13.pdf | 2405 +++++++++++++++++++
6 files changed, 4899 insertions(+), 3 deletions(-)
diff --git a/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java b/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java
index e2fa17b..130fcbe 100644
--- a/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java
+++ b/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java
@@ -172,8 +172,12 @@ public class FOPPDFMultiByteFont extends MultiByteFont implements FOPPDFFont {
}
boolean addToEnd = charMapGlobal.containsValue(key);
if (addToEnd) {
- addPrivateUseMapping(c, charMapGlobal.size() + 1);
- charMapGlobal.put(mappedChar, charMapGlobal.size() + 1);
+ int glyphIndex = charMapGlobal.size() + 1;
+ while (charMapGlobal.values().contains(glyphIndex)) {
+ glyphIndex++;
+ }
+ addPrivateUseMapping(c, glyphIndex);
+ charMapGlobal.put(mappedChar, glyphIndex);
} else {
addPrivateUseMapping(c, key);
charMapGlobal.put(mappedChar, key);
diff --git a/test/java/org/apache/fop/render/pdf/pdfbox/FOPPDFSingleMultiByteFontTestCase.java b/test/java/org/apache/fop/render/pdf/pdfbox/FOPPDFSingleMultiByteFontTestCase.java
index f38e1a7..a608203 100644
--- a/test/java/org/apache/fop/render/pdf/pdfbox/FOPPDFSingleMultiByteFontTestCase.java
+++ b/test/java/org/apache/fop/render/pdf/pdfbox/FOPPDFSingleMultiByteFontTestCase.java
@@ -48,6 +48,8 @@ import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.font.PDCIDFontType2;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
+import org.apache.fop.fonts.FontInfo;
+
public class FOPPDFSingleMultiByteFontTestCase {
private COSDictionary getFont(PDDocument doc, String internalname) {
PDPage page = doc.getPage(0);
@@ -250,4 +252,14 @@ public class FOPPDFSingleMultiByteFontTestCase {
Assert.assertEquals(dis.readShort(), (short)0xFFFF);
doc.close();
}
+
+ @Test
+ public void testTTSubsetUniqueGlyphIndex() throws Exception {
+ FontInfo fontInfo = new FontInfo();
+ PDFBoxAdapterTestCase.writeText(fontInfo, "ttsubset11.pdf");
+ PDFBoxAdapterTestCase.writeText(fontInfo, "ttsubset12.pdf");
+ PDFBoxAdapterTestCase.writeText(fontInfo, "ttsubset13.pdf");
+ FOPPDFMultiByteFont font = (FOPPDFMultiByteFont) fontInfo.getFonts().get("CIDFont+F3_Type0f3");
+ Assert.assertEquals(font.getUsedGlyphs().size(), 34);
+ }
}
diff --git a/test/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapterTestCase.java b/test/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapterTestCase.java
index 4317e67..6f4cbc1 100644
--- a/test/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapterTestCase.java
+++ b/test/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapterTestCase.java
@@ -252,7 +252,7 @@ public class PDFBoxAdapterTestCase {
}
}
- private String writeText(FontInfo fi, String pdf) throws IOException {
+ protected static String writeText(FontInfo fi, String pdf) throws IOException {
PDDocument doc = load(pdf);
PDPage page = doc.getPage(0);
AffineTransform pageAdjust = new AffineTransform();
diff --git a/test/resources/org/apache/fop/render/pdf/pdfbox/ttsubset11.pdf b/test/resources/org/apache/fop/render/pdf/pdfbox/ttsubset11.pdf
new file mode 100755
index 0000000..7b84ceb
Binary files /dev/null and b/test/resources/org/apache/fop/render/pdf/pdfbox/ttsubset11.pdf differ
diff --git a/test/resources/org/apache/fop/render/pdf/pdfbox/ttsubset12.pdf b/test/resources/org/apache/fop/render/pdf/pdfbox/ttsubset12.pdf
new file mode 100755
index 0000000..ea91430
--- /dev/null
+++ b/test/resources/org/apache/fop/render/pdf/pdfbox/ttsubset12.pdf
@@ -0,0 +1,2475 @@
+%PDF-1.4
+%����
+1 0 obj
+<<
+/Type /Catalog
+/Version /1.4
+/Pages 2 0 R
+>>
+endobj
+3 0 obj
+<<
+/Author (THoskins)
+/CreationDate (D:20220718105033-05'00')
+/ModDate (D:20220718105033-05'00')
+/Producer (Microsoft: Print To PDF)
+/Title (Microsoft Word - HSC4402 Amended Aggregate Per Project)
+>>
+endobj
+2 0 obj
+<<
+/Type /Pages
+/Kids [4 0 R]
+/Count 1
+>>
+endobj
+4 0 obj
+<<
+/Contents 5 0 R
+/CropBox [0.0 0.0 612.0 792.0]
+/MediaBox [0.0 0.0 612.0 792.0]
+/Parent 2 0 R
+/Resources 6 0 R
+/Rotate 0
+/Type /Page
+>>
+endobj
+5 0 obj
+<<
+/Length 7 0 R
+>>
+stream
+0.750000 0.000000 0.000000 -0.750000 0.000000 792.000000 cm
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F1 13.810600 Tf
+1 0 0.000000 -1 168.000000 93.279999 Tm
+[<0003>-0.074219] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F1 13.810600 Tf
+1 0 0.000000 -1 735.520020 106.400002 Tm
+[<0003>-0.074219] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F1 13.810600 Tf
+1 0 0.000000 -1 79.680000 123.199997 Tm
+[<0003>-0.074219] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 735.520020 960.320007 Tm
+[<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 671.200012 975.679993 Tm
+[<00A7><018A><01D0><01B5><0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F3 12.459600 Tf
+1 0 0.000000 -1 707.039978 975.679993 Tm
+[<05C1>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 712.000000 975.679993 Tm
+[<0003><020C>7.000000<01CF>-11.000000<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F3 12.459600 Tf
+1 0 0.000000 -1 730.559998 975.679993 Tm
+[<05C1>-8.000000<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 79.680000 990.880005 Tm
+[<0052>-7.000000<00B2><0021><05C4>-9.000000<05C4>-9.000000<05C0>12.000000<05C2>-12.000000<0003><0640><05C0>12.000000<05C6>-11.000000<0634>-15.000000<05C2>8.000000<05C2>-12.000000<0641><0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 79.680000 1007.359985 Tm
+[<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 13.810600 Tf
+1 0 0.000000 -1 372.959991 1007.359985 Tm
+[<0003>] TJ
+ET
+Q
+q
+79.680000 44.480000 m
+167.360001 44.480000 l
+167.360001 92.639999 l
+79.680000 92.639999 l
+h
+W* n
+q
+87.680000 0.000000 0.000000 -48.160000 79.680000 92.639999 cm
+/Image1 Do
+Q
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F3 13.810600 Tf
+1 0 0.000000 -1 139.520004 140.320007 Tm
+[<00C0>-12.000000<0052>18.000000<0058><00B2>-12.000000<0003><0030>-9.000000<0079>8.000000<0028>6.000000<0084>14.000000<00AA>-15.000000<00B2>8.000000<0030><0077>5.000000<0030><0079>8.000000<00C0><0003>-7.000000<0021><0052>18.000000<0004>-14.000000<0079>8.000000<004A><0030>11.000000<00B2>-12.000000<0003><00C0><0052>8.000000<0030><0003><00A7>12.000000<0084><006D><0058><0021><00E6>16.000000<062E><0003>-7.000000<00A7><006D>14.000000<0030>-9.000000<0004>6.000000<00B2><0030><0003>-7.000000<00AA [...]
+ET
+Q
+q
+0.000000 0.709804 0.678431 rg
+79.680000 160.000000 m
+735.039978 160.000000 l
+735.039978 193.440002 l
+79.680000 193.440002 l
+h
+f*
+Q
+q
+1.000000 1.000000 1.000000 rg
+BT
+0 Tr
+/F3 15.011500 Tf
+1 0 0.000000 -1 257.440002 182.080002 Tm
+[<0004><0077>-15.000000<0030><0079><0028><0030>11.000000<0028>-14.000000<0003>13.000000<0004>-14.000000<004A><004A>11.000000<00AA>-15.000000<0030>11.000000<004A><0004><00C0><0030>-9.000000<0003>13.000000<00A7>-8.000000<0030><00AA>5.000000<0003>-7.000000<00A7><00AA><0084>4.000000<0068>-9.000000<0030><0021><00C0>-12.000000<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 79.680000 220.639999 Tm
+[<00C0><01D8><01DE>9.000000<023A>-11.000000<0003>32.000000<01B5>-16.000000<0201>7.000000<01AE><020C>-13.000000<0232><023A><01B5>4.000000<01FF>-19.000000<01B5>4.000000<0201><0248><0003>12.000000<01FF><020C><01AE>-12.000000<01DE>19.000000<01CF>-21.000000<01DE>9.000000<01B5>4.000000<023A>-11.000000<0003>12.000000<01DE>19.000000<0201>-13.000000<023A>-11.000000<0250>13.000000<0232>-19.000000<018A><0201><01A7><01B5><0003>22.000000<022F>8.000000<0232>-9.000000<020C><0268>-8.000000<01DE><01AE><0 [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 79.680000 251.039993 Tm
+[<0021><0084>-11.000000<0077>5.000000<0077><0030><00AA>-7.000000<0021><0058>-8.000000<0004><006D><0003>-8.000000<004A><0030>-11.000000<0079>-7.000000<0030><00AA>-7.000000<0004><006D><0003>-8.000000<006D><0058><0004><0020><0058><006D><0058>-8.000000<00C0><00E6><0003>-18.000000<0021><0084><00DF><0030>-11.000000<00AA><0004>-13.000000<004A><0030><0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 79.680000 281.279999 Tm
+[<0058>-8.000000<0248>6.000000<0003>-8.000000<01DE><023A>9.000000<0003>-8.000000<0250>-7.000000<0201>7.000000<01AE><01B5>-16.000000<0232><023A>9.000000<0248>-14.000000<020C>7.000000<020C><01AE>-12.000000<0003>-8.000000<018A>-10.000000<0201>7.000000<01AE><0003><018A>-10.000000<01D0><0232>-9.000000<01B5><01B5><01AE><0003><0248><01D8><018A><0248><0003>-18.000000<0248><01D8><01B5><0003>-8.000000<01CF>9.000000<020C><01F6>-21.000000<01F6>19.000000<020C><0269>-21.000000<01DE>9.000000<0201><01D0 [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F3 12.459600 Tf
+1 0 0.000000 -1 371.679993 311.679993 Tm
+[<00B2>8.000000<0021>-7.000000<0052><0030><0028><00C7><006D>4.000000<0030>-29.000000<0003>] TJ
+ET
+Q
+q
+86.720001 328.480011 m
+257.600006 328.480011 l
+257.600006 345.600006 l
+86.720001 345.600006 l
+h
+W* n
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 86.720001 342.399994 Tm
+[<0077>5.000000<018A>-10.000000<026E><01DE>-11.000000<01FF>11.000000<0250>-17.000000<01FF>-9.000000<0003><0004>-13.000000<01D0>6.000000<01D0><0232><01B5>4.000000<01D0>-14.000000<018A><0248><01B5>4.000000<0003>-8.000000<006D><01DE>-21.000000<01FF>11.000000<01DE><0248>] TJ
+ET
+Q
+q
+257.600006 328.480011 m
+260.320007 328.480011 l
+260.320007 345.600006 l
+257.600006 345.600006 l
+h
+W* n
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 257.600006 342.399994 Tm
+[<0628>] TJ
+ET
+Q
+q
+260.320007 328.480011 m
+269.119995 328.480011 l
+269.119995 345.600006 l
+260.320007 345.600006 l
+h
+W* n
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 260.320007 342.399994 Tm
+[<0003>] TJ
+ET
+Q
+q
+283.839996 328.480011 m
+291.519989 328.480011 l
+291.519989 345.600006 l
+283.839996 345.600006 l
+h
+W* n
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 283.839996 342.399994 Tm
+[<067D>] TJ
+ET
+Q
+q
+291.519989 328.480011 m
+300.320007 328.480011 l
+300.320007 345.600006 l
+291.519989 345.600006 l
+h
+W* n
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 291.519989 342.399994 Tm
+[<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+79.680000 322.239990 m
+735.039978 322.239990 l
+735.039978 322.880005 l
+79.680000 322.880005 l
+h
+f*
+Q
+q
+0.000000 0.000000 0.000000 rg
+735.039978 322.239990 m
+735.520020 322.239990 l
+735.520020 322.880005 l
+735.039978 322.880005 l
+h
+f
+Q
+q
+0.000000 0.000000 0.000000 rg
+79.680000 322.880005 m
+80.320000 322.880005 l
+80.320000 346.399994 l
+79.680000 346.399994 l
+h
+f*
+Q
+q
+0.000000 0.000000 0.000000 rg
+79.680000 345.760010 m
+276.799988 345.760010 l
+276.799988 346.399994 l
+79.680000 346.399994 l
+h
+f*
+Q
+q
+0.000000 0.000000 0.000000 rg
+276.799988 322.880005 m
+277.440002 322.880005 l
+277.440002 346.399994 l
+276.799988 346.399994 l
+h
+f*
+Q
+q
+0.000000 0.000000 0.000000 rg
+277.440002 345.760010 m
+735.039978 345.760010 l
+735.039978 346.399994 l
+277.440002 346.399994 l
+h
+f
+Q
+q
+0.000000 0.000000 0.000000 rg
+735.039978 322.880005 m
+735.520020 322.880005 l
+735.520020 346.399994 l
+735.039978 346.399994 l
+h
+f*
+Q
+q
+0.000000 0.000000 0.000000 rg
+735.039978 345.760010 m
+735.520020 345.760010 l
+735.520020 346.399994 l
+735.039978 346.399994 l
+h
+f
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F3 12.459600 Tf
+1 0 0.000000 -1 79.680000 373.600006 Tm
+[<00B2><0030><0021>-7.000000<00C0><0058>8.000000<0084>-16.000000<0079><0003><0058><0058><0058><0003>-7.000000<0649>-10.000000<0003><006D>4.000000<0058>-12.000000<0077><0058>8.000000<00C0><00B2><0003>-7.000000<0084>-16.000000<0049>-11.000000<0003><0058><0079><00B2>-12.000000<00C7>8.000000<00AA>5.000000<0004>-24.000000<0079>8.000000<0021>-17.000000<0030>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 314.880005 373.600006 Tm
+[<0003>-8.000000<01DE><023A><0003>-8.000000<018A><01FF><01B5>4.000000<0201><01AE>-22.000000<01B5>-16.000000<01AE>18.000000<0003>-8.000000<0269>-11.000000<01DE>9.000000<0248><01D8><0003>-8.000000<0248><01D8>-13.000000<01B5>4.000000<0003>-8.000000<018A><01AE><01AE><01DE><0248><01DE>-11.000000<020C><0201><0003>-8.000000<020C>7.000000<01CF><0003><0248><01D8>-13.000000<01B5><0003>-8.000000<01CF><020C><01F6><01F6><020C><0269>-11.000000<01DE><0201><01D0>6.000000<0628>-18.000000<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 102.239998 403.839996 Tm
+[<00C0><01D8><01B5><0003><004A>-7.000000<01B5>-16.000000<0201>7.000000<01B5>4.000000<0232>-9.000000<018A><01F6><0003>-8.000000<0004><01D0><01D0><0232>-9.000000<01B5>4.000000<01D0>-14.000000<018A><0248><01B5>4.000000<0003>-8.000000<006D>-11.000000<01DE>9.000000<01FF>-9.000000<01DE>9.000000<0248><0003>-8.000000<018A>-10.000000<022F>-12.000000<022F><01F6><01DE><01B5>4.000000<023A><0003>-8.000000<023A><01B5><022F>-12.000000<018A><0232><018A>10.000000<0248>-14.000000<01B5><01F6>-11.000000<026 [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 102.239998 434.079987 Tm
+[<0079>-7.000000<020C><0248><0269><01DE><0248><01D8><023A><0248>-14.000000<018A><0201><01AE><01DE><0201><01D0>6.000000<0003>-8.000000<0248>-14.000000<01D8>-13.000000<01B5>4.000000<0003><018A>10.000000<022F>-22.000000<022F><01F6>9.000000<01DE><01A7><018A><0248>-14.000000<01DE><020C><0201>7.000000<0003>-8.000000<020C>-13.000000<01CF>9.000000<0003>-8.000000<0248>-14.000000<01D8>17.000000<01B5><0003>-8.000000<004A>-7.000000<01B5><0201><01B5>-16.000000<0232><018A><01F6>19.000000<0003>-28.0000 [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 102.239998 449.440002 Tm
+[<0058>-8.000000<0201>7.000000<023A>-11.000000<0250>13.000000<0232><01B5>-16.000000<01AE><0629>-8.000000<0003>-8.000000<0250>13.000000<0201><01AE>-12.000000<01B5>4.000000<0232><0003>-8.000000<0201><020C><0003><01A7>-7.000000<01DE><0232><01A7><0250>-17.000000<01FF>-9.000000<023A><0248><018A><0201><01A7>-7.000000<01B5>4.000000<023A>-11.000000<0003><0269><01DE><01F6><01F6><0003><0269><01B5><0003>-18.000000<022F>8.000000<018A><026F>-8.000000<0003><01FF>-19.000000<020C><0232><01B5>4.000000<00 [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F3 12.459600 Tf
+1 0 0.000000 -1 102.239998 464.799988 Tm
+[<00B2><0021><0052><0030>-9.000000<0028>-14.000000<00C7>8.000000<006D>4.000000<0030><0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 177.600006 464.799988 Tm
+[<018A>-10.000000<01A6><020C>7.000000<0268>-8.000000<01B5><0003><01CF>-21.000000<020C>7.000000<0232><0003><018A><01F6>-11.000000<01F6>-11.000000<0003><01A7><01F6><018A><01DE>9.000000<01FF>-9.000000<023A><0003>-8.000000<018A><0232>-9.000000<01DE><023A><01DE><0201><01D0><0003>-18.000000<020C>7.000000<0250><0248><0003>-8.000000<020C><01CF><0003>-8.000000<018A><01F6><01F6><0003>-18.000000<0657><022F>8.000000<0232><020C><01EF>-6.000000<01B5>4.000000<01A7>-7.000000<0248><023A>-11.000000<0658>- [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F3 12.459600 Tf
+1 0 0.000000 -1 79.680000 495.040009 Tm
+[<00B2><0030><0021>-7.000000<00C0><0058>8.000000<0084>-16.000000<0079><0003><00DF>-14.000000<0003><0649>-10.000000<0003><0028><0030>-19.000000<0049><0058>8.000000<0079><0058>8.000000<00C0><0058><0084><0079><00B2>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 249.600006 495.040009 Tm
+[<0629>-8.000000<0003>-8.000000<01DE>19.000000<023A>-21.000000<0003>-8.000000<018A><01FF>11.000000<01B5>4.000000<0201>-13.000000<01AE>-12.000000<01B5><01AE>8.000000<0003>-8.000000<01A6><026F><0003>-8.000000<018A>-20.000000<01AE>18.000000<01AE>-22.000000<01DE><0201><01D0><0003><0248><01D8><01B5><0003>-8.000000<01CF><020C>-13.000000<01F6>9.000000<01F6><020C>-13.000000<0269>-11.000000<01DE>9.000000<0201>-13.000000<01D0>6.000000<0628><0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 102.239998 525.280029 Tm
+[<0657>-8.000000<00A7>-12.000000<0232><020C>17.000000<01EF>-6.000000<01B5><01A7>-7.000000<0248><0658>-8.000000<0003><01FF>-9.000000<01B5>4.000000<018A><0201>7.000000<023A>-11.000000<0003>-8.000000<018A><01F6><01F6><0003>-8.000000<0269>9.000000<020C>-13.000000<0232><01F2>-19.000000<0003>-8.000000<01AE>18.000000<020C><0201>-13.000000<01B5>4.000000<0003>-8.000000<01A6><026F><0003>-8.000000<026F><020C>7.000000<0250>-7.000000<0003>-8.000000<020C><0232><0003>-8.000000<020C><0201><0003><026F>-8 [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 102.239998 540.479980 Tm
+[<0248><020C><0003>-8.000000<01A7>-7.000000<020C><01FF>11.000000<022F><01F6>-21.000000<01B5>4.000000<0248><01B5><0003><018A><0201><0003>-18.000000<01DE>9.000000<0201>-13.000000<01AE>8.000000<01DE><0268>-8.000000<01DE><01AE><0250>-17.000000<018A><01F6>9.000000<0003>-8.000000<01A6>8.000000<01DE>-11.000000<01AE><0003><020C><0232><0003>-18.000000<0201>7.000000<01B5>4.000000<01D0><020C>-13.000000<0248>-14.000000<01DE>9.000000<018A>-10.000000<0248>6.000000<01B5>4.000000<01AE><0003>-8.000000<01 [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 102.239998 555.840027 Tm
+[<0248><01DE><01FF><01B5>4.000000<062E>-8.000000<0003>-8.000000<0077>5.000000<0250>-17.000000<01F6>9.000000<0248><01DE><022F>-12.000000<01F6>9.000000<01B5>4.000000<0003>-8.000000<01EF>-16.000000<020C>-13.000000<01A6>8.000000<023A>-11.000000<0629>-8.000000<0003>12.000000<0269>-11.000000<020C><0232><01F2>-9.000000<0003><020C><0232><01AE>8.000000<01B5>-16.000000<0232><023A><0629><0003>-8.000000<022F><0250><0232>11.000000<01A7>-17.000000<01D8><018A><023A>-11.000000<01B5><0003><020C><0232>-9. [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 102.239998 571.200012 Tm
+[<0250>-7.000000<0201>7.000000<01AE><01B5>-16.000000<0232>11.000000<0003>-8.000000<020C>7.000000<0201>-13.000000<01B5><0003>-8.000000<01A7>-7.000000<020C><0201>7.000000<0248><0232><018A><01A7>-7.000000<0248><0003><018A>-20.000000<0232>11.000000<01B5><0003>-18.000000<0201>-13.000000<020C>17.000000<0248><0003>-18.000000<023A>-11.000000<01B5>4.000000<022F>8.000000<018A>-10.000000<0232><018A><0248><01B5>4.000000<0003>-8.000000<0657>-8.000000<022F><0232>-9.000000<020C><01EF><01B5>4.000000<01A [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 102.239998 601.440002 Tm
+[<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 79.680000 631.840027 Tm
+[<0003>] TJ
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F2 12.459600 Tf
+1 0 0.000000 -1 213.440002 662.239990 Tm
+[<0004><01F6><01F6>9.000000<0003>12.000000<020C><0248>-14.000000<01D8><01B5>-16.000000<0232>11.000000<0003>12.000000<0248><01B5><0232>-9.000000<01FF>-9.000000<023A>-11.000000<0629>12.000000<0003><01A7><020C><0201><01AE><01DE><0248><01DE>-11.000000<020C>-13.000000<0201>7.000000<023A>-11.000000<0003>12.000000<018A>-20.000000<0201>7.000000<01AE><0003>12.000000<01B5>-16.000000<026E>4.000000<01A7><01F6><0250><023A><01DE><020C><0201><023A>-21.000000<0003>12.000000<0232><01B5>-16.000000<01FF><0 [...]
+ET
+Q
+q
+0.000000 0.000000 0.000000 rg
+BT
+0 Tr
+/F4 12.459600 Tf
+1 0 0.000000 -1 601.760010 662.239990 Tm
+[<0003>] TJ
+ET
+Q
+
+
+endstream
+endobj
+6 0 obj
+<<
+/Font <<
+/F1 8 0 R
+/F2 9 0 R
+/F3 10 0 R
+/F4 11 0 R
+>>
+/XObject <<
+/Image1 12 0 R
+>>
+>>
+endobj
+7 0 obj
+19889
+endobj
+8 0 obj
+<<
+/BaseFont /CIDFont+F1
+/DescendantFonts [13 0 R]
+/Encoding /Identity-H
+/Subtype /Type0
+/ToUnicode 14 0 R
+/Type /Font
+>>
+endobj
+9 0 obj
+<<
+/BaseFont /CIDFont+F2
+/DescendantFonts [15 0 R]
+/Encoding /Identity-H
+/Subtype /Type0
+/ToUnicode 16 0 R
+/Type /Font
+>>
+endobj
+10 0 obj
+<<
+/BaseFont /CIDFont+F3
+/DescendantFonts [17 0 R]
+/Encoding /Identity-H
+/Subtype /Type0
+/ToUnicode 18 0 R
+/Type /Font
+>>
+endobj
+11 0 obj
+<<
+/BaseFont /CIDFont+F4
+/DescendantFonts [19 0 R]
+/Encoding /Identity-H
+/Subtype /Type0
+/ToUnicode 20 0 R
+/Type /Font
+>>
+endobj
+12 0 obj
+<<
+/BitsPerComponent 8
+/ColorSpace /DeviceRGB
+/Filter /DCTDecode
+/Height 509
+/Length 23669
+/Subtype /Image
+/Type /XObject
+/Width 925
+>>
+stream
+���� JFIF ` ` �� C
+
+ !(!0*21/*.-4;K@48G9-.BYBGNPTUT3?]c\RbKSTQ�� C''Q6.6QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ�� ��"