pax_global_header00006660000000000000000000000064141577064530014526gustar00rootroot0000000000000052 comment=2d1241cbbc318896c870b49ac9e3c53b8cc90e1a pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/000077500000000000000000000000001415770645300215005ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/.github/000077500000000000000000000000001415770645300230405ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/.github/workflows/000077500000000000000000000000001415770645300250755ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/.github/workflows/codeql-analysis.yml000066400000000000000000000044751415770645300307220ustar00rootroot00000000000000# For most projects, this workflow file will not need changing; you simply need # to commit it to your repository. # # You may wish to alter this file to override the set of languages analyzed, # or to provide custom queries or build logic. # # ******** NOTE ******** # We have attempted to detect the languages in your repository. Please check # the `language` matrix defined below to confirm you have the correct set of # supported CodeQL languages. # name: "CodeQL" on: push: branches: [ master, pdfbox-3.0.0 ] pull_request: # The branches below must be a subset of the branches above branches: [ master, pdfbox-3.0.0 ] schedule: - cron: '25 20 * * 4' jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: [ 'java' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # Learn more about CodeQL language support at https://git.io/codeql-language-support steps: - name: Checkout repository uses: actions/checkout@v2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@v1 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # and modify them (or add more) to build your code if your project # uses a compiled language #- run: | # make bootstrap # make release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/.github/workflows/maven.yml000066400000000000000000000013321415770645300267250ustar00rootroot00000000000000# This workflow will build a Java project with Maven # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven name: Java CI with Maven on: push: branches: [ master, pdfbox-3.0.0 ] pull_request: branches: [ master, pdfbox-3.0.0 ] jobs: build: runs-on: ubuntu-latest strategy: matrix: java: ['8','11'] steps: - uses: actions/checkout@v2 - name: Set up JDK ${{matrix.java}} uses: actions/setup-java@v2 with: distribution: 'zulu' java-version: ${{matrix.java}} - name: Maven -v run: mvn -v - name: Build with Maven run: mvn -B package --file pom.xml pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/.gitignore000066400000000000000000000001501415770645300234640ustar00rootroot00000000000000target .idea graphics2d.iml /parent.iml /extended-tests/extended-tests.iml /pdfboxgraphics2d-parent.iml pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/.travis.yml000066400000000000000000000001521415770645300236070ustar00rootroot00000000000000language: java install: mvn install -DskipTests -Dgpg.skip jdk: - openjdk8 - openjdk11 - openjdk17 pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/LICENSE-2.0.txt000066400000000000000000000261361415770645300236300ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/README.md000066400000000000000000000467011415770645300227670ustar00rootroot00000000000000[![Build Status](https://api.travis-ci.org/rototor/pdfbox-graphics2d.svg?branch=master)](https://travis-ci.org/rototor/pdfbox-graphics2d) # pdfbox-graphics2d Graphics2D Bridge for Apache PDFBox ## Intro Using this library you can use any Graphics2D API based SVG / graph / chart library to embed those graphics as vector drawing in a PDF. In combination with PDFBox PDFRenderer/PageDrawer you can also "rerender" PDF pages and change certain aspects ( e.g. [change the color mapping and perform an overfill](graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/PdfRerenderTest.java)) . The following features are supported: - Drawing any shape using ```draw...()``` and ```fill...()``` methods from Graphics2D. - Drawing images. The default is to always lossless compress them. You could plugin your own ```Image``` -> ```PDImageXObject``` conversion if you want to encode the images as jpeg. - All ```BasicStroke``` attributes. - ```Paint```: - ```Color```. You can specify your own color mapping implementation to special map the (RGB) colors to ```PDColor```. Beside using CMYK colors you can also use spot colors. - ```GradientPaint```, ```LinearGradientPaint``` and ```RadialGradientPaint```. There are some restrictions: - ```GradientPaint``` always generates acyclic gradients. - ```TexturePaint```. - Drawing text. By default all text is drawn as vector shapes, so no fonts are embedded. RTL languages are supported. It's possible to use fonts, but this loses some features (especially RTL support) and you must provide the TTF files of the fonts if the default PDF fonts are not enough. The following features are not supported (yet): - ```(Alpha-)Composite``` with a rule different then ```AlphaComposite.SRC_OVER```. - ```copyArea()```. This is not possible to implement. - ```hit()```. Why would you want to use that? - ```setXORMode()```. Their is no blend mode in PDF which would allow to emulate this, so this is not possible to be implemeted. ## Download This library is available through Maven: ```xml de.rototor.pdfbox graphics2d 0.34 ``` This library targets Java 1.6 and should work with Java 1.6. But at the moment it is only tested with Java 8 and Java 11. ## Example Usage ```java public class PDFGraphics2DSample { public static main(String[] argv) { PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); /* * Creates the Graphics and sets a size in pixel. This size is used for the BBox of the XForm. * So everything drawn outside (0x0)-(width,height) will be clipped. */ PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); /* * Now do your drawing. By default all texts are rendered as vector shapes */ /* ... */ /* * Dispose when finished */ pdfBoxGraphics2D.dispose(); /* * After dispose() of the graphics object we can get the XForm. */ PDFormXObject xform = pdfBoxGraphics2D.getXFormObject(); /* * Build a matrix to place the form */ Matrix matrix = new Matrix(); /* * Note: As PDF coordinates start at the bottom left corner, we move up from there. */ matrix.translate(0, 20); PDPageContentStream contentStream = new PDPageContentStream(document, page); contentStream.transform(matrix); /* * Now finally draw the form. As we not do any scaling, the form drawn has a size of 5,5 x 5,5 inches, * because PDF uses 72 DPI for its lengths by default. If you want to scale, skew or rotate the form you can * of course do this. And you can also draw the form more then once. Think of the XForm as a stamper. */ contentStream.drawForm(xform); contentStream.close(); document.save(new File("mysample.pdf")); document.close(); } } ``` See also [manual drawing](graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/PdfBoxGraphics2dTest.java) and [drawing SVGs](graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/RenderSVGsTest.java). The testdrivers are only smoke tests, i.e. they don't explicit test the result, they just run and test if the their are crashes. You have to manually compare the PDF result of the testdriver with the also generated PNG compare image. ## Rendering text using fonts vs vectors When rendering a text in a PDF file you can choose two methods: - Render the text using a font as text. - Render the text using TextLayout as vector graphics. Rendering a text using a font is the normal and preferred way to display a text: - The text can be copied and is searchable. - Usually it takes less space then when using vector shapes. - When printing in PrePress (Digital / Offset Print) the RIP usually handles text special to ensure the best possible reading experience. E.g. RGB Black is usually mapped to a black with some cyan. This gives a "deeper" black, especially if you have a large black area. But if you use a RGB black to render text it is usually mapped to pure black to avoid any printing registration mismatches, which would be very bad for reading the text. - Note: When rendering a text using a font you should always embed the needed subset of the font into the PDF. Otherwise not every (=most) PDF viewers will be able to display the text correctly, if they don't have the font or have a different version of the font, which can happen across different OS and OS versions. - Note: Not all PDF viewer can handle all fonts correctly. E.g. PDFBox 1.8 was not able to handle fonts right. But nowadays all PDF viewers should be able to handle fonts fine. - Note: ```TextAttribute.LIGATURES``` is currently not supported. - Note: ```TextAttribute.BACKGROUND``` is currently not supported. - Note: There is no Bidi support at the moment. See the [problems](https://issues.apache.org/jira/browse/PDFBOX-3550) PDFBox has with rendering RTL languages at the moment. On the other site rendering a text using vector shapes has the following properties: - The text is always displayed the same. They will be no differences between the PDF viewers. - The text is not searchable and can not be copied. - Note: Vector shapes take more space than a embedded font. - Note: You may want to manually alter the color mapping to e.g. ensure a black text is printed using pure CMYK black. If you do not plan to print the PDF in offset or digital print you can ignore that. This will make no difference for your normal desktop printer. - Note: When using Apache Batik to draw SVGs the text will always be drawn as vector shape. Batik always converts texts to vector shapes first and then applies the transforms on it (if there are any). So PdfBoxGraphics2D never even gets a chance to draw the text using a PDF font. In theory, this could be solved by installing an appropriate text painter on the Batik bridge context. But no one has created such a text painter yet. If you want to get a 1:1 mapping of your ```Graphics2D``` drawing in the PDF you should use the vector mode. If you want to have the text searchable and only use LTR languanges (i.e. latin-based) you may try the text mode. For this mode to work you need the font files (.ttf / .ttc) of the fonts you want to use and must register it with this library. Using the normal Java font API it is not possible to access the underlying font file. So a manual mapping of Font to PDFont is needed. ### Example how to use the font mapping The font mapping is done using the ```PdfBoxGraphics2DFontTextDrawer``` class. There you register the fonts you have. By default the mapping tries to only use fonts when all features used by the drawn text are supported. If your text uses a features which is not supported (e.g. RTL text) then it falls back to using vectorized text. If you always want to force the use of fonts you can use the class ```PdfBoxGraphics2DFontTextForcedDrawer```. But this is unsafe and not recommend, because if some text can not be rendered using the given fonts it will not be drawn at all (e.g. if a font misses a needed glyph). If you want to use the default PDF fonts as much as possible to have no embedded fonts you can use the class ```PdfBoxGraphics2DFontTextDrawerDefaultFonts```. This class will always use a default PDF font, but you can also register additional fonts. ```java public class PDFGraphics2DSample { public static main(String[] argv) { /* * Document creation and init as in the example above */ // ... /* * Register your fonts */ PdfBoxGraphics2DFontTextDrawer fontTextDrawer = new PdfBoxGraphics2DFontTextDrawer(); try { /* * Register the font using a file */ fontTextDrawer.registerFont(new File("..path..to../DejaVuSerifCondensed.ttf")); /* * Or register the font using a stream */ fontTextDrawer.registerFont( PDFGraphics2DSample.class.getResourceAsStream("DejaVuSerifCondensed.ttf")); /* * You already have a PDFont in the document? Then make it known to the library. */ fontTextDrawer.registerFont("My Custom Font", pdMyCustomFont); /* * Create the graphics */ PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); /* * Set the fontTextDrawer on the Graphics2D. Note: * You can and should reuse the PdfBoxGraphics2DFontTextDrawer * within the same PDDocument if you use multiple PdfBoxGraphics2D. */ pdfBoxGraphics2D.setFontTextDrawer(fontTextDrawer); /* Do you're drawing */ /* * Dispose when finished */ pdfBoxGraphics2D.dispose(); /* * Use the result as above */ // ... } finally { /* * If you register a font using a stream then a tempfile * will be created in the background. * Close the PdfBoxGraphics2DFontTextDrawer to free any * tempfiles created for the fonts. */ fontTextDrawer.close(); } } } ``` You can also complete customize the font mapping if you derive from ```PdfBoxGraphics2DFontTextDrawer```: ```java class MyPdfBoxGraphics2DFontTextDrawer extends PdfBoxGraphics2DFontTextDrawer { @Override protected PDFont mapFont(Font font, IFontTextDrawerEnv env) throws IOException, FontFormatException { // Using the font, especially the font.getFontName() or font.getFamily() to determine which // font to use... return null if the font can not be mapped. You can also call registerFont() here. // Default lookup in the registered fonts return super.mapFont(font, env); } } ``` This allows you to load the fonts on demand. ## Compression By default the content stream data is compressed using the zlib default level 6. If you want to get the maximum compression out of PDFBox you should set a system property before generating your PDF: ```java System.setProperty(Filter.SYSPROP_DEFLATELEVEL,"9"); ``` ## Creating PDF reports If you want to create complex PDF reports with text and graphs mixed it is recommend to not use PDFBox and this library directly, as both are very low level. Instead you should use [OpenHtmlToPdf](https://github.com/danfickle/openhtmltopdf). OpenHtmlToPdf allows you to build your reports using HTML ( which you can generate with any template engine you like, e.g. Apache FreeMarker) and place custom graphs (which are draw using Graphics2D using this library) with <object> HTML tags. ## Changes Version 0.34: - Per default specify the rendering hint ```RenderingHints.KEY_FRACTIONALMETRICS=RenderingHints.VALUE_FRACTIONALMETRICS_ON```. We always render into a vector space, so we don't have to round to ints while drawing text. Thanks to @paatero for bringing this up ([#32](https://github.com/rototor/pdfbox-graphics2d/issues/32)). - Upgrade to PDFBox 2.0.25 - It is not allowed to make state changes after defining a path and before clipping / drawing, at least acording to the PDF specification [PDFBOX-5322](https://issues.apache.org/jira/browse/PDFBOX-5322). Fixed the ordering here. Version 0.33: - Don't crash when drawString() is called with an empty string [#31](https://github.com/rototor/pdfbox-graphics2d/issues/31). Thanks @Kischloren for the report. Version 0.32: - It is now possible to draw within a marked content sequence. PdfBoxGraphics2D got a new drawInMarkedContentSequence() method for this. This is usefull if you want to mark some parts of a drawing so that you can later do some special processing on it. Or if you simply want to provide accesibility information for the content you draw. See also e.g. https://www.w3.org/TR/WCAG20-TECHS/PDF21.html or the section 14.8.4.3.3 in the PDF specification. - Upgrade to PDFBox 2.0.24 Version 0.31: - Support for colors with overprint. - New PdfBoxGraphics2DColor class to allow using any kind of color. E.g. PDSeperation based colors. Version 0.30: - Clip invalid miter limit values [#29](https://github.com/rototor/pdfbox-graphics2d/issues/29). Thanks to @kiwiwings for reporting this. - Added a new module for extended-tests. This module will contain tests with 3rdparty library which by themself depend on pdfbox-graphics2d. It also now contains a new class DebugCodeGeneratingGraphics2d (by @kiwiwings) which helps creating isolated testcases. - Upgrade to PDFBox 2.0.22 Version 0.29: - Fix a bug where the AlphaComposite alpha value would be mixed with a color alpha value when drawing images. When setting a transparent color this had resulted in a invisible image. Thanks to @kiwiwings for reporting this. - Initial support for ```TextAttribute.UNDERLINE``` and ```Textattribute.STRIKETHROUGH``` when using a font to render a text. Version 0.28: - Fix handling of AttributedString (off-by-one error). Thanks for @kiwiwings for pointing out the error and providing a fix [#27](https://github.com/rototor/pdfbox-graphics2d/issues/27). - Upgrade to PDFBox 2.0.21 - Respect that default fonts may not allow to be embedded. (PDFBox 2.0.21 now respects the flags within a TTF font, so we also must do this) - When painting an image with an AlphaComposite the alpha is now respected correctly. Version 0.27: - Internal API breakage to implement getFontMetrics().stringWidth() correctly in the case a PDFont is used to draw the text [#16](https://github.com/rototor/pdfbox-graphics2d/issues/16). Thanks to @megri for reporting this problem. - Reverted back to PDFBox 2.0.19 because of rendering issues [PDFBOX-4886](https://issues.apache.org/jira/browse/PDFBOX-4886). Version 0.26: - Added a [CMYK color mapper](graphics2d/src/main/java/de/rototor/pdfbox/graphics2d/RGBtoCMYKColorMapper.java), which converts the paint colors to CMYK using an ICC Profile. Thanks to @larrylynn-wf for providing this feature [#22](https://github.com/rototor/pdfbox-graphics2d/issues/22). - Upgrade to PDFBox 2.0.20 - Initial support for [Apache PDFBox TilingPaint](https://github.com/rototor/pdfbox-graphics2d/pull/25). Thanks to @p1xel. Currently this is not clean and also not correct in many cases. Version 0.25: - Upgrade to PDFBox 2.0.17 - Correctly handle GradientPaint fractions. - Correctly handle SVG LinearGradientPaint's in ObjectBoundingBox mode [#19](https://github.com/rototor/pdfbox-graphics2d/issues/19). Thanks to @larrylynn-wf for the report and the idea how to fix it. - Internal API breakage to support non quadratic SVG gradients correctly [#19](https://github.com/rototor/pdfbox-graphics2d/issues/19). Version 0.24: - Upgrade to PDFBox 2.0.16 Version 0.23: - Correctly handle even odd winding rules when clipping and filling shapes. Version 0.22: - Upgrade the PDFBox version to 2.0.15 Version 0.21: - Provide the current XORMode color in the IPaintEnv. And document that XORMode is not working as it's not possible to emulate. Thanks @gredler for pointing this out [#14](https://github.com/rototor/pdfbox-graphics2d/issues/14). But you can do whatever you want with that information in your IPdfBoxGraphics2DPaintAplier subclass. - Upgrade the PDFBox version to 2.0.14 - Handle PDFBox ShadingPaint's. Version 0.20: - Handle null transforms in drawImage() correctly. I.e. dont throw a NullPointerException, just ignore the not existing transform. - Cache the different environments for the mapper/drawer/applier. This is a minor memory saving. Version 0.19: - You can now influence the shape fill/draw operations by setting a custom IPdfBoxGraphics2DDrawControl. This allows to do different things like e.g. draw an overfill for shapes (i.e. make shapes have a additional border). This can be useful if you need to preprocess a PDF for pre-press. Version 0.18: - setPaint(null) will cause the following fillXXX() and drawXXX() operations to be ignored. This allows in combination with PDFRenderer/PageDrawer to extract parts of a PDF page. E.g. you can draw only certain seperation colors into the resulting PDF if you filter the paints in PageDrawer.getPaint() and extract a seperation color from a PDF in that way. - New class PdfBoxGraphics2DCMYKColor() which derives from java.awt.Color to be able to specify a CMYK color when painting. - The default PdfBoxGraphics2DColorMapper now also supports mapping of "legacy" old iText 2 CMYKColor's. Version 0.17: - Upgrade the PDFBox version to 2.0.12 Versoin 0.16: - Added new method ```disposeDanglingChildGraphics()``` to cleanup all dangling child graphics. This allows to use this graphics adapter with old legacy code which does not correctly call ```dispose()``` on the graphics it used. Version 0.15: - Upgrade the PDFBox version to 2.0.11 Version 0.14: - Don't write invalid path commands into the stream, as this will break rendering in Acrobat Reader. Thanks @FabioVassallo [#12](https://github.com/rototor/pdfbox-graphics2d/pull/12) Version 0.13: - Ugraded the PDFBox version to 2.0.9 Version 0.12: - Don't share resources between XForm's, as Acrobat Reader does not like that. Version 0.11: - Support Batik SVG PatternPaint. Thanks @vipcxj for [pointing this out and providing a testfile](https://github.com/danfickle/openhtmltopdf/issues/170#issuecomment-362294830) . - Compress embedded image ICC Profile Data Version 0.10: - Don't export the same extended graphics state over and over again. Same for shadings. [#8](https://github.com/rototor/pdfbox-graphics2d/issues/8) Version 0.9: - Compress the content stream generated for the XForm. - When drawing the same image multiple times, it is only encoded once now. Version 0.8: - Implemented ```PdfBoxGraphics2DFontTextDrawerDefaultFonts``` to allow preferring default PDF fonts over vectorized text [#5](https://github.com/rototor/pdfbox-graphics2d/issues/5). Version 0.7: - Bugfixes on the font based text support. Now also gradients can be used to paint text. Version 0.6: - Implemented basic support for using fonts to render texts. Version 0.5: - Fixed ```getClip()``` and ```clip(Shape)``` handling. Both did not correctly handle transforms. This bug was exposed by Batik 1.9 and found by @ketanmpandya. Thanks @ketanmpandya [#2](https://github.com/rototor/pdfbox-graphics2d/pull/2), OpenHtmlToPdf [#99](https://github.com/danfickle/openhtmltopdf/issues/99) Version 0.4: - Initial support for basic ```AlphaComposite```. Thanks @FabioVassallo [#1](https://github.com/rototor/pdfbox-graphics2d/pull/1) - When drawing a shape with a zero or negative size don't use ```PDShadings```, as they won't work.Thanks @FabioVassallo [#1](https://github.com/rototor/pdfbox-graphics2d/pull/1) Version 0.3: - Fix for a NPE when calling ```setClip()``` with null. - Upgrade to PDFBox 2.0.5, replacing the usage of ```appendRawCommands()``` with ```setMiterLimit()```. Version 0.2: - The paint applier (Mapping of ```java.awt.Paint``` to PDF) can be customized, so you can map special paints if needed. - Support for ```TexturePaint``` ## Licence Licenced using the Apache Licence 2.0. pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/000077500000000000000000000000001415770645300244405ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/pom.xml000066400000000000000000000027471415770645300257670ustar00rootroot00000000000000 4.0.0 PDFBox-Graphics2d - Extended Tests Graphics2D Bridge for Apache PDFBox - Extended Tests Module extended-tests jar de.rototor.pdfbox pdfboxgraphics2d-parent 0.34 de.rototor.pdfbox graphics2d 0.34 org.apache.poi poi ${poi.version} org.apache.poi poi-ooxml ${poi.version} jakarta.xml.bind jakarta.xml.bind-api 2.3.2 org.glassfish.jaxb jaxb-runtime 2.3.2 UTF-8 4.1.2 pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/000077500000000000000000000000001415770645300252275ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/000077500000000000000000000000001415770645300261535ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/java/000077500000000000000000000000001415770645300270745ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/java/.keep000066400000000000000000000000001415770645300300070ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/java/de/000077500000000000000000000000001415770645300274645ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/java/de/rototor/000077500000000000000000000000001415770645300311745ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/java/de/rototor/pdfbox/000077500000000000000000000000001415770645300324565ustar00rootroot00000000000000graphics2d/000077500000000000000000000000001415770645300344255ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/java/de/rototor/pdfboxextendedtests/000077500000000000000000000000001415770645300373105ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/java/de/rototor/pdfbox/graphics2dDebugCodeGeneratingGraphics2d.java000066400000000000000000001152361415770645300457170ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/java/de/rototor/pdfbox/graphics2d/extendedtests/* ==================================================================== Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ==================================================================== */ package de.rototor.pdfbox.graphics2d.extendedtests; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.font.TextAttribute; import java.awt.geom.AffineTransform; import java.awt.geom.Path2D; import java.awt.geom.PathIterator; import java.awt.image.BufferedImage; import java.awt.image.BufferedImageOp; import java.awt.image.ImageObserver; import java.awt.image.RenderedImage; import java.awt.image.renderable.RenderableImage; import java.io.PrintStream; import java.text.AttributedCharacterIterator; import java.text.AttributedCharacterIterator.Attribute; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; public class DebugCodeGeneratingGraphics2d extends Graphics2D { private BufferedImage bufimg; private final Graphics2D g2D; private final PrintStream log; public DebugCodeGeneratingGraphics2d() { this(System.out); } public DebugCodeGeneratingGraphics2d(PrintStream log) { bufimg = new BufferedImage(1000, 1000, 2); g2D = (Graphics2D) bufimg.getGraphics(); this.log = log; } public DebugCodeGeneratingGraphics2d(PrintStream log, Graphics2D g2D) { this.g2D = g2D; this.log = log; } public void addRenderingHints(Map hints) { String l = "addRenderingHinds(Map):" + "\n hints = " + hints; log.println(l); for (Map.Entry entry : hints.entrySet()) { System.out.println(" map.put(" + entry.getKey() + ", " + entry.getValue()); } g2D.addRenderingHints(hints); } public void clip(Shape s) { String l = "clip(Shape):" + "\n s = " + s; log.println(l); g2D.clip(s); } private void pathToString(StringBuilder sb, Path2D p) { sb.append("Path2D p = new Path2D.Double(" + p.getWindingRule() + ");\n"); double[] coords = new double[6]; for (PathIterator pi = p.getPathIterator(null); !pi.isDone(); pi.next()) { // The type will be SEG_LINETO, SEG_MOVETO, or SEG_CLOSE // Because the Area is composed of straight lines switch (pi.currentSegment(coords)) { case PathIterator.SEG_MOVETO: sb.append("p.moveTo(" + coords[0] + "," + coords[1] + ");\n"); break; case PathIterator.SEG_LINETO: sb.append("p.lineTo(" + coords[0] + "," + coords[1] + ");\n"); break; case PathIterator.SEG_QUADTO: sb.append("p.quadTo(" + coords[0] + "," + coords[1] + "," + coords[2] + "," + coords[3] + ");\n"); break; case PathIterator.SEG_CUBICTO: sb.append("p.curveTo(" + coords[0] + "," + coords[1] + "," + coords[2] + "," + coords[3] + "," + coords[4] + "," + coords[5] + ");\n"); break; case PathIterator.SEG_CLOSE: sb.append("p.closePath();\n"); break; } } } public void draw(Shape s) { if (s instanceof Path2D) { StringBuilder sb = new StringBuilder(); pathToString(sb, (Path2D) s); sb.append("g.draw(p);"); log.println(sb.toString()); } else { log.println("g.draw(" + s + ")"); } g2D.draw(s); } public void drawGlyphVector(GlyphVector g, float x, float y) { String l = "drawGlyphVector(GlyphVector, float, float):" + "\n g = " + g + "\n x = " + x + "\n y = " + y; log.println(l); g2D.drawGlyphVector(g, x, y); } public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) { String l = "drawImage(BufferedImage, BufferedImageOp, x, y):" + "\n img = " + img + "\n op = " + op + "\n x = " + x + "\n y = " + y; log.println(l); g2D.drawImage(img, op, x, y); } public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) { String l = "drawImage(Image,AfflineTransform,ImageObserver):" + "\n img = " + img + "\n xform = " + xform + "\n obs = " + obs; log.println(l); return g2D.drawImage(img, xform, obs); } public void drawRenderableImage(RenderableImage img, AffineTransform xform) { String l = "drawRenderableImage(RenderableImage, AfflineTransform):" + "\n img = " + img + "\n xform = " + xform; log.println(l); g2D.drawRenderableImage(img, xform); } public void drawRenderedImage(RenderedImage img, AffineTransform xform) { String l = "drawRenderedImage(RenderedImage, AffineTransform):" + "\n img = " + img + "\n xform = " + xform; log.println(l); g2D.drawRenderedImage(img, xform); } public void drawString(String s, float x, float y) { String l = "drawString(s,x,y):" + "\n s = " + s + "\n x = " + x + "\n y = " + y; log.println(l); g2D.drawString(s, x, y); } public void fill(Shape s) { if (s instanceof Path2D) { StringBuilder sb = new StringBuilder(); pathToString(sb, (Path2D) s); sb.append("g.fill(p);"); log.println(sb.toString()); } else { log.println("g.fill(" + s + ")"); } g2D.fill(s); } public Color getBackground() { log.println("getBackground():"); return g2D.getBackground(); } public Composite getComposite() { log.println("getComposite():"); return g2D.getComposite(); } public GraphicsConfiguration getDeviceConfiguration() { log.println("getDeviceConfiguration():"); return g2D.getDeviceConfiguration(); } public FontRenderContext getFontRenderContext() { log.println("getFontRenderContext():"); return g2D.getFontRenderContext(); } public Paint getPaint() { log.println("getPaint():"); return g2D.getPaint(); } public Object getRenderingHint(RenderingHints.Key hintKey) { log.println("getRenderingHint(\"" + hintKey + "\")"); return g2D.getRenderingHint(hintKey); } public RenderingHints getRenderingHints() { log.println("getRenderingHints():"); return g2D.getRenderingHints(); } public Stroke getStroke() { log.println("getStroke():"); return g2D.getStroke(); } public AffineTransform getTransform() { log.println("getTransform():"); return g2D.getTransform(); } public boolean hit(Rectangle rect, Shape s, boolean onStroke) { String l = "hit(Rectangle, Shape, onStroke):" + "\n rect = " + rect + "\n s = " + s + "\n onStroke = " + onStroke; log.println(l); return g2D.hit(rect, s, onStroke); } public void rotate(double theta) { String l = "rotate(theta):" + "\n theta = " + theta; log.println(l); g2D.rotate(theta); } public void rotate(double theta, double x, double y) { String l = "rotate(double,double,double):" + "\n theta = " + theta + "\n x = " + x + "\n y = " + y; log.println(l); g2D.rotate(theta, x, y); } public void scale(double sx, double sy) { log.println("g.scale(" + sx + "," + sy + ");"); g2D.scale(sx, sy); } public void setBackground(Color color) { log.println(String.format(Locale.ROOT, "setBackground(new Color(0x%08X))", color.getRGB())); g2D.setBackground(color); } private static final String[] COMPOSITE_RULES = { "CLEAR", "SRC", "SRC_OVER", "DST_OVER", "SRC_IN", "DST_IN", "SRC_OUT", "DST_OUT", "DST", "SRC_ATOP", "DST_ATOP", "XOR" }; public void setComposite(Composite comp) { String l = "g.setComposite("; if (comp instanceof AlphaComposite) { AlphaComposite ac = (AlphaComposite) comp; l += "AlphaComposite.getInstance(AlphaComposite." + COMPOSITE_RULES[Math.max(0, Math.min(COMPOSITE_RULES.length - 1, ac.getRule()))] + ", " + ac.getAlpha() + "f));"; } else { l += comp.toString() + ");"; } log.println(l); g2D.setComposite(comp); } public void setPaint(Paint paint) { String l = "g.setPaint("; if (paint instanceof Color) { l += String.format(Locale.ROOT, "new Color(0x%08X));", ((Color) paint).getRGB()); } else { l += paint.toString() + ");"; } log.println(l); g2D.setPaint(paint); } public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) { log.println("g.setRenderingHint(" + mapHint(hintKey) + ", " + mapHint(hintValue) + ");"); g2D.setRenderingHint(hintKey, hintValue); } private static String mapHint(Object hint) { if (hint == null) { return "null"; } if (hint instanceof AffineTransform) { return mapTransform((AffineTransform) hint); } for (int i = 0; i < HINTS.length; i += 2) { if (hint == HINTS[i]) { return (String) HINTS[i + 1]; } } return "\"" + hint.toString() + "\""; } public void setRenderingHints(Map hints) { String l = "setRenderingHints(Map):" + "\n hints = " + hints; log.println(l); g2D.setRenderingHints(hints); } public void setStroke(Stroke s) { String l; if (s instanceof BasicStroke) { BasicStroke bs = (BasicStroke) s; String cap = new String[] { "BUTT", "ROUND", "SQUARE" }[bs.getEndCap()]; String join = new String[] { "MITER", "ROUND", "BEVEL" }[bs.getLineJoin()]; l = "g.setStroke(new BasicStroke(" + bs.getLineWidth() + "f, BasicStroke.CAP_" + cap + ", BasicStroke.JOIN_" + join + ", " + bs.getMiterLimit() + "f, " + Arrays.toString(bs.getDashArray()) + ", " + bs.getDashPhase() + "f));"; } else { l = "g.setStroke(" + s + ");"; } log.println(l); g2D.setStroke(s); } private static String mapTransform(AffineTransform tx) { return tx.isIdentity() ? "new AffineTransform()" : "new AffineTransform(" + tx.getScaleX() + "f," + tx.getShearY() + "f," + tx.getShearX() + "f," + tx.getScaleY() + "f," + tx.getTranslateX() + "f," + tx.getTranslateY() + "f)"; } public void setTransform(AffineTransform Tx) { log.println("g.setTransform(" + mapTransform(Tx) + ");"); g2D.setTransform(Tx); } public void shear(double shx, double shy) { String l = "shear(shx, dhy):" + "\n shx = " + shx + "\n shy = " + shy; log.println(l); g2D.shear(shx, shy); } public void transform(AffineTransform Tx) { String l = "transform(AffineTransform):" + "\n Tx = " + Tx; log.println(l); g2D.transform(Tx); } public void translate(double tx, double ty) { String l = "translate(double, double):" + "\n tx = " + tx + "\n ty = " + ty; log.println(l); g2D.translate(tx, ty); } public void clearRect(int x, int y, int width, int height) { String l = "clearRect(int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height; log.println(l); g2D.clearRect(x, y, width, height); } public void clipRect(int x, int y, int width, int height) { String l = "clipRect(int, int, int, int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "height = " + height; log.println(l); g2D.clipRect(x, y, width, height); } public void copyArea(int x, int y, int width, int height, int dx, int dy) { String l = "copyArea(int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height; log.println(l); g2D.copyArea(x, y, width, height, dx, dy); } public Graphics create() { log.println("create():"); return g2D.create(); } public Graphics create(int x, int y, int width, int height) { String l = "create(int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height; log.println(l); return g2D.create(x, y, width, height); } public BufferedImage getDebugImage() { return bufimg; } public void dispose() { log.println("dispose():"); g2D.dispose(); } public void draw3DRect(int x, int y, int width, int height, boolean raised) { String l = "draw3DRect(int,int,int,int,boolean):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height + "\n raised = " + raised; log.println(l); g2D.draw3DRect(x, y, width, height, raised); } public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) { String l = "drawArc(int,int,int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height + "\n startAngle = " + startAngle + "\n arcAngle = " + arcAngle; log.println(l); g2D.drawArc(x, y, width, height, startAngle, arcAngle); } public void drawBytes(byte[] data, int offset, int length, int x, int y) { String l = "drawBytes(byte[],int,int,int,int):" + "\n data = " + Arrays.toString(data) + "\n offset = " + offset + "\n length = " + length + "\n x = " + x + "\n y = " + y; log.println(l); g2D.drawBytes(data, offset, length, x, y); } public void drawChars(char[] data, int offset, int length, int x, int y) { String l = "drawChars(data,int,int,int,int):" + "\n data = " + Arrays.toString(data) + "\n offset = " + offset + "\n length = " + length + "\n x = " + x + "\n y = " + y; log.println(l); g2D.drawChars(data, offset, length, x, y); } public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { String l = "drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver):" + "\n img = " + img + "\n dx1 = " + dx1 + "\n dy1 = " + dy1 + "\n dx2 = " + dx2 + "\n dy2 = " + dy2 + "\n sx1 = " + sx1 + "\n sy1 = " + sy1 + "\n sx2 = " + sx2 + "\n sy2 = " + sy2 + "\n observer = " + observer; log.println(l); return g2D.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer); } public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer) { String l = "drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver):" + "\n img = " + img + "\n dx1 = " + dx1 + "\n dy1 = " + dy1 + "\n dx2 = " + dx2 + "\n dy2 = " + dy2 + "\n sx1 = " + sx1 + "\n sy1 = " + sy1 + "\n sx2 = " + sx2 + "\n sy2 = " + sy2 + "\n bgcolor = " + bgcolor + "\n observer = " + observer; log.println(l); return g2D.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer); } public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) { String l = "drawImage(Image,int,int,Color,ImageObserver):" + "\n img = " + img + "\n x = " + x + "\n y = " + y + "\n bgcolor = " + bgcolor + "\n observer = " + observer; log.println(l); return g2D.drawImage(img, x, y, bgcolor, observer); } public boolean drawImage(Image img, int x, int y, ImageObserver observer) { String l = "drawImage(Image,int,int,observer):" + "\n img = " + img + "\n x = " + x + "\n y = " + y + "\n observer = " + observer; log.println(l); return g2D.drawImage(img, x, y, observer); } public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) { String l = "drawImage(Image,int,int,int,int,Color,ImageObserver):" + "\n img = " + img + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height + "\n bgcolor = " + bgcolor + "\n observer = " + observer; log.println(l); return g2D.drawImage(img, x, y, width, height, bgcolor, observer); } public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { String l = "drawImage(Image,int,int,width,height,observer):" + "\n img = " + img + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height + "\n observer = " + observer; log.println(l); return g2D.drawImage(img, x, y, width, height, observer); } public void drawLine(int x1, int y1, int x2, int y2) { String l = "drawLine(int,int,int,int):" + "\n x1 = " + x1 + "\n y1 = " + y1 + "\n x2 = " + x2 + "\n y2 = " + y2; log.println(l); g2D.drawLine(x1, y1, x2, y2); } public void drawOval(int x, int y, int width, int height) { String l = "drawOval(int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height; log.println(l); g2D.drawOval(x, y, width, height); } public void drawPolygon(Polygon p) { String l = "drawPolygon(Polygon):" + "\n p = " + p; log.println(l); g2D.drawPolygon(p); } public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) { String l = "drawPolygon(int[],int[],int):" + "\n xPoints = " + Arrays.toString(xPoints) + "\n yPoints = " + Arrays.toString(yPoints) + "\n nPoints = " + nPoints; log.println(l); g2D.drawPolygon(xPoints, yPoints, nPoints); } public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) { String l = "drawPolyline(int[],int[],int):" + "\n xPoints = " + Arrays.toString(xPoints) + "\n yPoints = " + Arrays.toString(yPoints) + "\n nPoints = " + nPoints; log.println(l); g2D.drawPolyline(xPoints, yPoints, nPoints); } public void drawRect(int x, int y, int width, int height) { String l = "drawRect(int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height; log.println(l); g2D.drawRect(x, y, width, height); } public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { String l = "drawRoundRect(int,int,int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height + "\n arcWidth = " + arcWidth + "\n arcHeight = " + arcHeight; log.println(l); g2D.drawRoundRect(x, y, width, height, arcWidth, arcHeight); } private static String mapAttribute(Object attr) { if (attr == null) { return "null"; } if (attr instanceof Font) { Font f = (Font) attr; final String[] STYLE = { "Font.PLAIN", "Font.BOLD", "Font.ITALIC", "Font.BOLD | Font.ITALIC" }; return "new Font(\"" + f.getFamily(Locale.ROOT) + "\"," + STYLE[f.getStyle()] + "," + f.getSize() + ")"; } if (attr instanceof Color) { return String.format(Locale.ROOT, "new Color(0x%08X)", ((Color) attr).getRGB()); } for (int i = 0; i < ATTRS.length; i += 2) { if (attr == ATTRS[i]) { return (String) ATTRS[i + 1]; } } return "\"" + attr.toString() + "\""; } public void drawString(AttributedCharacterIterator iterator, float x, float y) { final int startIdx = iterator.getIndex(); final Map> attMap = new HashMap>(); StringBuilder sb = new StringBuilder(); for (char ch = iterator.current(); ch != AttributedCharacterIterator.DONE; ch = iterator.next()) { sb.append(ch); for (Map.Entry e : iterator.getAttributes().entrySet()) { Attribute k = e.getKey(); Object v = e.getValue(); Map positionMap = attMap.get(k); if (positionMap == null) { positionMap = new LinkedHashMap(); attMap.put(k, positionMap); } positionMap.put(iterator.getIndex(), v); } } String l = "AttributedString as = new AttributedString(\"" + sb + "\");\n"; sb.setLength(0); sb.append(l); for (Map.Entry> me : attMap.entrySet()) { int startPos = -2, lastPos = -2; Object lastObj = null; for (Map.Entry mo : me.getValue().entrySet()) { int pos = mo.getKey(); Object obj = mo.getValue(); if (lastPos < pos - 1 || obj != lastObj) { if (startPos >= 0) { Attribute at = me.getKey(); sb.append( "as.addAttribute(" + mapAttribute(me.getKey()) + "," + mapAttribute( lastObj) + "," + startPos + "," + (lastPos + 1) + ");\n"); } startPos = pos; } lastPos = pos; lastObj = obj; } if (lastObj != null) { sb.append( "as.addAttribute(" + mapAttribute(me.getKey()) + "," + mapAttribute(lastObj) + "," + startPos + "," + (lastPos + 1) + ");\n"); } } sb.append("g.drawString(as.getIterator()," + x + "f," + y + "f);"); log.println(sb.toString()); iterator.setIndex(startIdx); g2D.drawString(iterator, x, y); } public void drawString(AttributedCharacterIterator iterator, int x, int y) { drawString(iterator, (float) x, (float) y); } public void drawString(String str, int x, int y) { String l = "drawString(str,int,int):" + "\n str = " + str + "\n x = " + x + "\n y = " + y; log.println(l); g2D.drawString(str, x, y); } public void fill3DRect(int x, int y, int width, int height, boolean raised) { String l = "fill3DRect(int,int,int,int,boolean):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height + "\n raised = " + raised; log.println(l); g2D.fill3DRect(x, y, width, height, raised); } public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) { String l = "fillArc(int,int,int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height + "\n startAngle = " + startAngle + "\n arcAngle = " + arcAngle; log.println(l); g2D.fillArc(x, y, width, height, startAngle, arcAngle); } public void fillOval(int x, int y, int width, int height) { String l = "fillOval(int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height; log.println(l); g2D.fillOval(x, y, width, height); } public void fillPolygon(Polygon p) { String l = "fillPolygon(Polygon):" + "\n p = " + p; log.println(l); g2D.fillPolygon(p); } public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) { String l = "fillPolygon(int[],int[],int):" + "\n xPoints = " + Arrays.toString(xPoints) + "\n yPoints = " + Arrays.toString(yPoints) + "\n nPoints = " + nPoints; log.println(l); g2D.fillPolygon(xPoints, yPoints, nPoints); } public void fillRect(int x, int y, int width, int height) { log.println("g.fillRect(" + x + "," + y + "," + width + "," + height + ");"); g2D.fillRect(x, y, width, height); } public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { log.println( "fillRoundRect(" + x + "," + y + "," + width + "," + height + "," + arcWidth + "," + arcHeight + ")"); g2D.fillRoundRect(x, y, width, height, arcWidth, arcHeight); } // FIXME: should be protected // FindBugs, category MALICIOUS_CODE, FI_PUBLIC_SHOULD_BE_PROTECTED // A class's finalize() method should have protected access, not public @Override public final void finalize() { log.println("finalize():"); g2D.dispose(); dispose(); } public Shape getClip() { log.println("getClip():"); return g2D.getClip(); } public Rectangle getClipBounds() { log.println("getClipBounds():"); return g2D.getClipBounds(); } public Rectangle getClipBounds(Rectangle r) { String l = "getClipBounds(Rectangle):" + "\n r = " + r; log.println(l); return g2D.getClipBounds(r); } public Color getColor() { log.println("getColor():"); return g2D.getColor(); } public Font getFont() { log.println("getFont():"); return g2D.getFont(); } public FontMetrics getFontMetrics() { log.println("getFontMetrics():"); return g2D.getFontMetrics(); } public FontMetrics getFontMetrics(Font f) { log.println("getFontMetrics():"); return g2D.getFontMetrics(f); } public boolean hitClip(int x, int y, int width, int height) { String l = "hitClip(int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height; log.println(l); return g2D.hitClip(x, y, width, height); } public void setClip(Shape clip) { String l = "setClip(Shape):" + "\n clip = " + clip; PathIterator pathIterator = clip.getPathIterator(null); double[] vals = new double[6]; StringBuilder key = new StringBuilder(); while (!pathIterator.isDone()) { int type = pathIterator.currentSegment(vals); switch (type) { case PathIterator.SEG_CUBICTO: key.append("C"); key.append(vals[0]).append(":").append(vals[1]).append(":").append(vals[2]) .append(":").append(vals[3]).append(":").append(vals[4]).append(":") .append(vals[5]); break; case PathIterator.SEG_LINETO: key.append("L"); key.append(vals[0]).append(":").append(vals[1]).append(":"); break; case PathIterator.SEG_MOVETO: key.append("M"); key.append(vals[0]).append(":").append(vals[1]).append(":"); break; case PathIterator.SEG_QUADTO: key.append("Q"); key.append(vals[0]).append(":").append(vals[1]).append(":").append(vals[2]) .append(":").append(vals[3]); break; case PathIterator.SEG_CLOSE: key.append("cp"); break; default: break; } pathIterator.next(); } log.println(l + " " + key.toString()); g2D.setClip(clip); } public void setClip(int x, int y, int width, int height) { String l = "setClip(int,int,int,int):" + "\n x = " + x + "\n y = " + y + "\n width = " + width + "\n height = " + height; log.println(l); g2D.setClip(x, y, width, height); } public void setColor(Color c) { log.printf(Locale.ROOT, "g.setColor(new Color(0x%08X));%n", c.getRGB()); g2D.setColor(c); } public void setFont(Font font) { String l = "setFont(Font):" + "\n font = " + font; log.println(l); g2D.setFont(font); } public void setPaintMode() { log.println("setPaintMode():"); g2D.setPaintMode(); } public void setXORMode(Color c1) { String l = "setXORMode(Color):" + "\n c1 = " + c1; log.println(l); g2D.setXORMode(c1); } public String toString() { log.println("toString():"); return g2D.toString(); } public void translate(int x, int y) { String l = "translate(int,int):" + "\n x = " + x + "\n y = " + y; log.println(l); g2D.translate(x, y); } private static final Object[] HINTS = { RenderingHints.KEY_ANTIALIASING, "RenderingHints.KEY_ANTIALIASING", RenderingHints.VALUE_ANTIALIAS_ON, "RenderingHints.VALUE_ANTIALIAS_ON", RenderingHints.VALUE_ANTIALIAS_OFF, "RenderingHints.VALUE_ANTIALIAS_OFF", RenderingHints.VALUE_ANTIALIAS_DEFAULT, "RenderingHints.VALUE_ANTIALIAS_DEFAULT", RenderingHints.KEY_RENDERING, "RenderingHints.KEY_RENDERING", RenderingHints.VALUE_RENDER_SPEED, "RenderingHints.VALUE_RENDER_SPEED", RenderingHints.VALUE_RENDER_QUALITY, "RenderingHints.VALUE_RENDER_QUALITY", RenderingHints.VALUE_RENDER_DEFAULT, "RenderingHints.VALUE_RENDER_DEFAULT", RenderingHints.KEY_DITHERING, "RenderingHints.KEY_DITHERING", RenderingHints.VALUE_DITHER_DISABLE, "RenderingHints.VALUE_DITHER_DISABLE", RenderingHints.VALUE_DITHER_ENABLE, "RenderingHints.VALUE_DITHER_ENABLE", RenderingHints.VALUE_DITHER_DEFAULT, "RenderingHints.VALUE_DITHER_DEFAULT", RenderingHints.KEY_TEXT_ANTIALIASING, "RenderingHints.KEY_TEXT_ANTIALIASING", RenderingHints.VALUE_TEXT_ANTIALIAS_ON, "RenderingHints.VALUE_TEXT_ANTIALIAS_ON", RenderingHints.VALUE_TEXT_ANTIALIAS_OFF, "RenderingHints.VALUE_TEXT_ANTIALIAS_OFF", RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT, "RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT", RenderingHints.VALUE_TEXT_ANTIALIAS_GASP, "RenderingHints.VALUE_TEXT_ANTIALIAS_GASP", RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB, "RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB", RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HBGR, "RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HBGR", RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VRGB, "RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VRGB", RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VBGR, "RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VBGR", RenderingHints.KEY_TEXT_LCD_CONTRAST, "RenderingHints.KEY_TEXT_LCD_CONTRAST", RenderingHints.KEY_FRACTIONALMETRICS, "RenderingHints.KEY_FRACTIONALMETRICS", RenderingHints.VALUE_FRACTIONALMETRICS_OFF, "RenderingHints.VALUE_FRACTIONALMETRICS_OFF", RenderingHints.VALUE_FRACTIONALMETRICS_ON, "RenderingHints.VALUE_FRACTIONALMETRICS_ON", RenderingHints.VALUE_FRACTIONALMETRICS_DEFAULT, "RenderingHints.VALUE_FRACTIONALMETRICS_DEFAULT", RenderingHints.KEY_INTERPOLATION, "RenderingHints.KEY_INTERPOLATION", RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR, "RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR", RenderingHints.VALUE_INTERPOLATION_BILINEAR, "RenderingHints.VALUE_INTERPOLATION_BILINEAR", RenderingHints.VALUE_INTERPOLATION_BICUBIC, "RenderingHints.VALUE_INTERPOLATION_BICUBIC", RenderingHints.KEY_ALPHA_INTERPOLATION, "RenderingHints.KEY_ALPHA_INTERPOLATION", RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED, "RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED", RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY, "RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY", RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT, "RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT", RenderingHints.KEY_COLOR_RENDERING, "RenderingHints.KEY_COLOR_RENDERING", RenderingHints.VALUE_COLOR_RENDER_SPEED, "RenderingHints.VALUE_COLOR_RENDER_SPEED", RenderingHints.VALUE_COLOR_RENDER_QUALITY, "RenderingHints.VALUE_COLOR_RENDER_QUALITY", RenderingHints.VALUE_COLOR_RENDER_DEFAULT, "RenderingHints.VALUE_COLOR_RENDER_DEFAULT", RenderingHints.KEY_STROKE_CONTROL, "RenderingHints.KEY_STROKE_CONTROL", RenderingHints.VALUE_STROKE_DEFAULT, "RenderingHints.VALUE_STROKE_DEFAULT", RenderingHints.VALUE_STROKE_NORMALIZE, "RenderingHints.VALUE_STROKE_NORMALIZE", RenderingHints.VALUE_STROKE_PURE, "RenderingHints.VALUE_STROKE_PURE" }; private static final Object[] ATTRS = { TextAttribute.FAMILY, "TextAttribute.FAMILY", TextAttribute.WEIGHT, "TextAttribute.WEIGHT", TextAttribute.WEIGHT_EXTRA_LIGHT, "TextAttribute.WEIGHT_EXTRA_LIGHT", TextAttribute.WEIGHT_LIGHT, "TextAttribute.WEIGHT_LIGHT", TextAttribute.WEIGHT_DEMILIGHT, "TextAttribute.WEIGHT_DEMILIGHT", TextAttribute.WEIGHT_REGULAR, "TextAttribute.WEIGHT_REGULAR", TextAttribute.WEIGHT_SEMIBOLD, "TextAttribute.WEIGHT_SEMIBOLD", TextAttribute.WEIGHT_MEDIUM, "TextAttribute.WEIGHT_MEDIUM", TextAttribute.WEIGHT_DEMIBOLD, "TextAttribute.WEIGHT_DEMIBOLD", TextAttribute.WEIGHT_BOLD, "TextAttribute.WEIGHT_BOLD", TextAttribute.WEIGHT_HEAVY, "TextAttribute.WEIGHT_HEAVY", TextAttribute.WEIGHT_EXTRABOLD, "TextAttribute.WEIGHT_EXTRABOLD", TextAttribute.WEIGHT_ULTRABOLD, "TextAttribute.WEIGHT_ULTRABOLD", TextAttribute.WIDTH, "TextAttribute.WIDTH", TextAttribute.WIDTH_CONDENSED, "TextAttribute.WIDTH_CONDENSED", TextAttribute.WIDTH_SEMI_CONDENSED, "TextAttribute.WIDTH_SEMI_CONDENSED", TextAttribute.WIDTH_REGULAR, "TextAttribute.WIDTH_REGULAR", TextAttribute.WIDTH_SEMI_EXTENDED, "TextAttribute.WIDTH_SEMI_EXTENDED", TextAttribute.WIDTH_EXTENDED, "TextAttribute.WIDTH_EXTENDED", TextAttribute.POSTURE, "TextAttribute.POSTURE", TextAttribute.POSTURE_REGULAR, "TextAttribute.POSTURE_REGULAR", TextAttribute.POSTURE_OBLIQUE, "TextAttribute.POSTURE_OBLIQUE", TextAttribute.SIZE, "TextAttribute.SIZE", TextAttribute.TRANSFORM, "TextAttribute.TRANSFORM", TextAttribute.SUPERSCRIPT, "TextAttribute.SUPERSCRIPT", TextAttribute.SUPERSCRIPT_SUPER, "TextAttribute.SUPERSCRIPT_SUPER", TextAttribute.SUPERSCRIPT_SUB, "TextAttribute.SUPERSCRIPT_SUB", TextAttribute.FONT, "TextAttribute.FONT", TextAttribute.CHAR_REPLACEMENT, "TextAttribute.CHAR_REPLACEMENT", TextAttribute.FOREGROUND, "TextAttribute.FOREGROUND", TextAttribute.BACKGROUND, "TextAttribute.BACKGROUND", TextAttribute.UNDERLINE, "TextAttribute.UNDERLINE", TextAttribute.UNDERLINE_ON, "TextAttribute.UNDERLINE_ON", TextAttribute.STRIKETHROUGH, "TextAttribute.STRIKETHROUGH", TextAttribute.STRIKETHROUGH_ON, "TextAttribute.STRIKETHROUGH_ON", TextAttribute.RUN_DIRECTION, "TextAttribute.RUN_DIRECTION", TextAttribute.RUN_DIRECTION_LTR, "TextAttribute.RUN_DIRECTION_LTR", TextAttribute.RUN_DIRECTION_RTL, "TextAttribute.RUN_DIRECTION_RTL", TextAttribute.BIDI_EMBEDDING, "TextAttribute.BIDI_EMBEDDING", TextAttribute.JUSTIFICATION, "TextAttribute.JUSTIFICATION", TextAttribute.JUSTIFICATION_FULL, "TextAttribute.JUSTIFICATION_FULL", TextAttribute.JUSTIFICATION_NONE, "TextAttribute.JUSTIFICATION_NONE", TextAttribute.INPUT_METHOD_HIGHLIGHT, "TextAttribute.INPUT_METHOD_HIGHLIGHT", TextAttribute.INPUT_METHOD_UNDERLINE, "TextAttribute.INPUT_METHOD_UNDERLINE", TextAttribute.UNDERLINE_LOW_ONE_PIXEL, "TextAttribute.UNDERLINE_LOW_ONE_PIXEL", TextAttribute.UNDERLINE_LOW_TWO_PIXEL, "TextAttribute.UNDERLINE_LOW_TWO_PIXEL", TextAttribute.UNDERLINE_LOW_DOTTED, "TextAttribute.UNDERLINE_LOW_DOTTED", TextAttribute.UNDERLINE_LOW_GRAY, "TextAttribute.UNDERLINE_LOW_GRAY", TextAttribute.UNDERLINE_LOW_DASHED, "TextAttribute.UNDERLINE_LOW_DASHED", TextAttribute.SWAP_COLORS, "TextAttribute.SWAP_COLORS", TextAttribute.SWAP_COLORS_ON, "TextAttribute.SWAP_COLORS_ON", TextAttribute.NUMERIC_SHAPING, "TextAttribute.NUMERIC_SHAPING", TextAttribute.KERNING, "TextAttribute.KERNING", TextAttribute.KERNING_ON, "TextAttribute.KERNING_ON", TextAttribute.LIGATURES, "TextAttribute.LIGATURES", TextAttribute.LIGATURES_ON, "TextAttribute.LIGATURES_ON", TextAttribute.TRACKING, "TextAttribute.TRACKING", TextAttribute.TRACKING_TIGHT, "TextAttribute.TRACKING_TIGHT", TextAttribute.TRACKING_LOOSE, "TextAttribute.TRACKING_LOOSE" }; } pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/resources/000077500000000000000000000000001415770645300301655ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/main/resources/.keep000066400000000000000000000000001415770645300311000ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/000077500000000000000000000000001415770645300262065ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/000077500000000000000000000000001415770645300271275ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/de/000077500000000000000000000000001415770645300275175ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/de/rototor/000077500000000000000000000000001415770645300312275ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/de/rototor/pdfbox/000077500000000000000000000000001415770645300325115ustar00rootroot00000000000000graphics2d/000077500000000000000000000000001415770645300344605ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/de/rototor/pdfboxextendedtests/000077500000000000000000000000001415770645300373435ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/de/rototor/pdfbox/graphics2dTestGraphicsFillBug.java000066400000000000000000000055271415770645300440640ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/de/rototor/pdfbox/graphics2d/extendedtestspackage de.rototor.pdfbox.graphics2d.extendedtests; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.PDFRenderer; import org.junit.Test; import javax.imageio.ImageIO; import java.awt.*; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.awt.geom.Path2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import static java.awt.image.BufferedImage.TYPE_INT_ARGB; public class TestGraphicsFillBug { @Test public void testGraphicsFillBug() throws IOException { InputStream resourceAsStream = TestGraphicsFillBug.class.getResourceAsStream( "PDFBOX-5322_reduced.pdf"); PDDocument doc = PDDocument.load(resourceAsStream); PDFRenderer pdfRenderer = new PDFRenderer(doc); DebugCodeGeneratingGraphics2d gfx = new DebugCodeGeneratingGraphics2d(); gfx.setBackground(Color.WHITE); gfx.clearRect(0, 0, 1000, 1000); pdfRenderer.renderPageToGraphics(0, gfx); ImageIO.write(gfx.getDebugImage(), "PNG", new File("target/test/graphisfillbug_debug.png")); new File("target/test/").mkdirs(); ImageIO.write(pdfRenderer.renderImage(0, 1f), "PNG", new File("target/test/graphisfillbug.png")); } @Test public void testAntialiasingPathDrawBug() throws IOException { BufferedImage image = new BufferedImage(500, 300, TYPE_INT_ARGB); Graphics2D g = image.createGraphics(); g.setBackground(new Color(0xFFFFFFFF)); g.clearRect(0, 0, 1000, 1000); Map hints = new HashMap(); // When not setting Antialiasing the bug is gone. hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.addRenderingHints(hints); g.translate(0, 311.0); g.scale(1.0, -1.0); g.setPaint(new Color(0xFF000000)); g.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, null, 0.0f)); GeneralPath p = new GeneralPath(Path2D.WIND_NON_ZERO); p.moveTo(438.531494140625, 261.2290954589844); p.curveTo(437.89190673828125, 265.30859375, 437.6903076171875, 265.33380126953125, 437.6903076171875, 265.33380126953125); p.curveTo(437.5043029785156, 265.3570861816406, 437.3822021484375, 265.2620849609375, 437.3822021484375, 265.2620849609375); g.setPaint(Color.BLACK); g.draw(p); // Just for Orientation: Where is the Path p drown? g.setPaint(Color.RED); g.draw(new Ellipse2D.Float(428, 255, 20, 20)); g.dispose(); new File("target/test/").mkdirs(); ImageIO.write(image, "PNG", new File("target/test/buggy.png")); } } pptx/000077500000000000000000000000001415770645300403365ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/de/rototor/pdfbox/graphics2d/extendedtestsTestPPTXRendering.java000066400000000000000000000033371415770645300445000ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/java/de/rototor/pdfbox/graphics2d/extendedtests/pptxpackage de.rototor.pdfbox.graphics2d.extendedtests.pptx; import de.rototor.pdfbox.graphics2d.PdfBoxGraphics2D; import de.rototor.pdfbox.graphics2d.extendedtests.DebugCodeGeneratingGraphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.util.Matrix; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.xslf.usermodel.XMLSlideShow; import org.apache.poi.xslf.usermodel.XSLFSlide; import org.junit.Test; import java.io.File; import java.io.IOException; import java.io.InputStream; import static org.junit.Assert.assertNotNull; public class TestPPTXRendering { @Test public void testPPTXRendering() throws IOException, InvalidFormatException { File parentDir = new File("target/test/pptx"); parentDir.mkdirs(); InputStream inputStream = TestPPTXRendering.class.getResourceAsStream("test.mod.pptx"); assertNotNull(inputStream); XMLSlideShow ppt = new XMLSlideShow(OPCPackage.open(inputStream)); PDDocument document = new PDDocument(); for (XSLFSlide slide : ppt.getSlides()) { PDPage page = new PDPage(); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 1000, 1000); slide.draw(pdfBoxGraphics2D); slide.draw(new DebugCodeGeneratingGraphics2d()); pdfBoxGraphics2D.dispose(); contentStream.transform(Matrix.getScaleInstance(0.2f, 0.2f)); contentStream.drawForm(pdfBoxGraphics2D.getXFormObject()); contentStream.close(); document.addPage(page); } document.save(new File(parentDir, "test.mod.pdf")); } } pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/000077500000000000000000000000001415770645300302205ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/de/000077500000000000000000000000001415770645300306105ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/de/rototor/000077500000000000000000000000001415770645300323205ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/de/rototor/pdfbox/000077500000000000000000000000001415770645300336025ustar00rootroot00000000000000graphics2d/000077500000000000000000000000001415770645300355515ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/de/rototor/pdfboxextendedtests/000077500000000000000000000000001415770645300404345ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/de/rototor/pdfbox/graphics2dPDFBOX-5322_reduced.pdf000066400000000000000000000011401415770645300441710ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/de/rototor/pdfbox/graphics2d/extendedtests%PDF-1.4 % 1 0 obj << /Type /Catalog /Version /1.5 /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [3 0 R] /Count 1 >> endobj 3 0 obj << /Type /Page /MediaBox [0.0 0.0 623 311] /Parent 2 0 R /Contents 4 0 R >> endobj 4 0 obj << /Length 98 >> stream 438.5315 261.2291 m 437.8919 265.3086 437.6903 265.3338 y 437.5043 265.3571 437.3822 265.2621 y S endstream endobj xref 0 5 0000000000 65535 f 0000000015 00000 n 0000000078 00000 n 0000000135 00000 n 0000000226 00000 n trailer << /Root 1 0 R /ID [ ] /Size 5 >> startxref 376 %%EOF pptx/000077500000000000000000000000001415770645300414275ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/de/rototor/pdfbox/graphics2d/extendedteststest.mod.pptx000066400000000000000000000605171415770645300441120ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/extended-tests/src/test/resources/de/rototor/pdfbox/graphics2d/extendedtests/pptxPK!G$ [Content_Types].xml (̗N0EHC-j5ecţ&mBIҢJ[h+4̽DZL:壘F4:e8aRSt:eGsNilGT}s >64ƕ)t}nE*gF#hla+(PatNʳIR&U2H|o.CLuH(z4N{QRu੮΍+A5E!3M6,$+՗0.IݼigfWblcAUsmO-`$m+Gh/B-Q(xızFzw+f=ى_d:0@d: 4@IP!:ʩnv{i\U, C#HkO<У)׶odPK!Eч _rels/.rels (MK1!̽;*"^DMdC2A7$Si Pz' YovT]ˢN{3e* 9Cw\lۛ$)CH*S\ OIl)>7$c:UY>`̀zT[SAܚ;P1%l߶gy E?ʐQ Ŏk.'WbNhyM?6!)O9k }o)󭄓YPK!c\#7 ppt/slides/_rels/slide1.xml.relsϽj0=wW;,e)C>!mQ[:o1tx_?],(AC+lt>~n_'\08c 1\ۡҌ0JhA1Q!K-_I}4QgӐ{ׂm^0xKѮ O;-G*|ZY#@N5PK!g0 =ppt/slides/slide1.xmlQN0#ԁBQNJ-`ٓE 3ٔzų7mg kc]Wg׍ u|{,&4AOvs{y4\N)BDUq8Lb%4bF]bjL%݅^U^q6T,ĢTa[ epPK!A! ppt/presentation.xmln O; NZqf]I504V1InI} p|j0L[^`ÈjXa$a->P_̺TRSnIJurK"/ڎrmZSV%nCj}%i]{'2֝mw)aUTTn:[AuU( 4Hz$>v3?ǽ8YXw=FaD~Qy S?#zmvt];kX=3CxFsO_aWJnBa⣡X>'@= (ʂd?T,dPK!_-!ppt/slideMasters/slideMaster1.xmlZn6w~-وS$iH NwOKv Mva6`Ы=J}Ȓ$h%l@~<%"hߴw,4NA+4##Q7/pa>ݼW *8fAS^]DSb'1qRM1C/SPSg7iIf,ŔN&4ɋ& Ѝld/XGu=f{Wd$ !MFsD@~nqď .ʮdA\ cQoX>E- t~̌$TL/ZM>ҹ,4E;Twy/ĵ-M;FQ%VFG+ڠbVʸ r>gprl$Icyd5AhN,]+dձkky&>S\X1r Bm%i_4O<"))Ĥ':,1}˶Ilh$h>MhƤbnyd'i7|Lϗ^3 M3'L٘88Vz,P,Dd:#Gtq`m1f\!U0 .Ĵ|\=Eg2͆<-[Y,BK|W2jQ=&o7޿|G靊?8š㟟'd q#sՉLjsIZ/# pIO'w S蘒p48^C'wN{X`Q-; [^ n׷]?ry͂e:K娛?!~CD__{w$c\ҵJ.9J(6bMN[uENla lb Bb(,}:P_ h|c1<:"HBrІ hC[ySvu6{r\ A?R|2G!6GKRqK[JRSJ: f$n1ȷJPTh!]d38"K± NDZNku;5]gnP nnXvkf]-vM7آt-nME׫c!% ֑%t"E ?,%̉]%Ob18k{ќHv3$GB~HxF#^22R juU͞fT%}R%gmcTX7ɤ_/ZH#}.TDezU*V~.4נH;Yy5*NKA !} @#h9=_X&y£ y[$R7߽IIk[Ot]8u@7,:r32 5nm{<4r;YC x ䷃ܾ.p֐Tn\! mlo YC r< w=G8s\! N}L!8zTe^Ƨ-@czvFjW:$HW@?_NhT`8hPZ8h͉MA7646$i񃆤wͥKCWe{_PK!ђ7,ppt/slideLayouts/_rels/slideLayout9.xml.relsϽ 0]&4uE$ۛт}\MxRbZV ț`5ܮgIÛr\h\xpEQM.M dN(c_VPK!!Lh!ppt/slideLayouts/slideLayout2.xmlUn w@ܷ:UnRFs*ij;ݴ[Uڴݘ}˫eR8>`e-v9_ߜ12p)X{fK^.I/A a2ZEk9 8J [JMBGdr5x/mM;I 6ь Vf^Mif ~^FF`ӂHr ^֌9IZjvQ]'oE(ƭr ջot%=hiuwĖVXGcIR*348%(~7mRX"@wF]8¡I~,Es|R8 [_C@g`DMLuL7:7~i$uDk.ҳY']3u#O/t o ?uz4[zc)-PK!{w!ppt/slideLayouts/slideLayout3.xmlUmo0-mmMt *q0Ƕl/zdݠ@%>y윝IZa]UAJ⺬ժwWcJgdR+QЍp|ՙɝ,l<嬠&O+0wPpԶav}؍L$iXhoe;| bdwUm\X L~^@_) FN7˒(րR!ZyNBkkffvfI]bΙ&Ag BY^W` 7AX{£oa˫;>A$) 'xfqARX2|חT{GXBDhj}vv0ۚv2L$B=BOsxЁNqOX篅n csYکѴ7 ERLouA\ E/0+ Ͻ IxHx  HJES3fL up7K^HVz$^qHWB6,5I @<951ߘ(dH sN Z+xpLK3qDXmW44\OܴtxAe7u|k1PK!z!ppt/slideLayouts/slideLayout4.xmlV]o0}G?X~fGMcTXE:nؖe-k;Y7`R{|p2mj) 1AeYuoWG%$\ V-3S^NV[9I+kUEV!X*&l%uC,ŤC1? 3G3$88qv2C*y +s2YD&]kbOjb8 ?_^~\" 2}|@t#߹wPK!P$9!ppt/slideLayouts/slideLayout5.xmlTr0}LAwbLi=130|D4+|}WHC^ius{l$iZWcJ⺬վь*J߿1uP6g3yX^+m½9}RLa}<%^v5_5?4BdUmͼ%a1M~ݒ ubdGIBΔΑ=_˒(֠cQ$5[}6+ @=,6?dq_Q r,(Y翉#<:˫,]@'C䬨gN |Vq]RI_ m[W!|AD~5չ=.nEAI:ˮ#ՏOxlܓLfGSgn7 ;]X$4[1;~e[\Q!C  `0+ן;E;8}_b&![N@DŽ`rbpg~=q :zP:PdBp(T8jAfT! 1%?dp$df68N2(9GfPK!X C!ppt/slideLayouts/slideLayout6.xmlTr0wѝ&OL&M30<v#Kpq+!k߷ZIZ֪UJP\y8QbS%Zvһw&\N欠s&O+0{Phih_'%ߘ8MIjExxKj.>k~hr1 o!yK6b}ޒ _K%;J#,b *0Q8`fBxIO`f!GR>GKл_!/|?,?'Ařux6AxTW r; $bsh%_,з5 _,Qqy"Wݟ'`M]=.40=gLgs@ um9Rt&lkԵfYb}\ʹ}=Ө.]6څ7?:L7KݸBC9IU/>xG]QR*'~4ㄲ/L]WQ$$r4UuőEoe$II> Xz4ɳ$nQ$wޏ^0 gX3Kd}ilp\|Q5:@*gvEgA+ Zuzgy& 7vny8 +6M~n&np8jod!ނE |$߆%4&%i!{2%O2sHƑ_qXz"$ǓpsOIy ޜNo D1E5b<}S3"SE*` C߮gKʵ`\#jKeO)xj߹7PK!-^1 !ppt/slideLayouts/slideLayout8.xmlVn!}@'{V6Q6i%j08vIe)y203a٦hʹ(prce-V_02p)XӏNrB"!̘VЊ5K-n^E&Qǃ!y}y\֔}a† qb~St!єfK[h\y{5'3^"AXז3t!pBi7F5c+fj}Fu"pnn~*ވ8L2,uFm mܺo"nV{|iew%$uBq{ДʾJ^2Gt]FM$3HHh0=v7mu\~a2(l~NNYot;Xicl3 u%c\;_T(E,s#PĿ ;cDJV$F[yYB$-gHAJ(D.9qw_2{; Yș`E9C*)·a M- oIeDx:䞌IfO2KHƑ_qXz&$ƣp,O_S2[dyN&!o@}轢(A0U􆹿^xQU"{Y?UªCxJ>wD]}ԳL_%OͶ;{PK!p !ppt/slideLayouts/slideLayout9.xmlV]O0}`y, &Zppl6ݯߵP*IK|c_{ϹljN6 G-Ӧ#&,k.`DK e}srK7A arRZGky/!^:*5 8F 엫UMGIo&l'7ULM=%@aIv)`u >蜗H&Jљ"" {lB3,^h5W3c|kgեQйWz#m7IYƍuͱE4L,{|iiw'%uBq{ēЌ>K^%n.%6HHh0<v7oc $MƓazII64O}$W &kF]wINKck n>r<0E0a7A$ jOb鍕u(Dr عr(E`rF4w8Y,s>{ f-<"|V]@gGdxd!G?)f$(:'h|>8o7St(Q}bȆWU<*}^ħb4fWQ(nRp +Q֗w=Rp:sq1/PK!٢"ppt/slideLayouts/slideLayout10.xmlVQo0~G?X~K[-`iЊv?u&̱- -F%@쁗r>&ۚiSITXnqad,RׯUfxqKvrc .UYZ5Q7](OT1jUQNM̈́ I4B鲩c) 񧟶dw )bCuO= RcQYޠ+),$CNt>ԨfYjfg4 ̈́v Fuglҵ[1p~#c[hpҽ| : D:Tp4ㄲ@Iۨ[I p9̇ݭl'bm\ƾI<)9I<~:IFc;ɔ69#ǚQ7]څB+*۷ع%@(gvegAK Zuj Ln;;<kM]l&zwss<8K_X]BνEssRpM K]ޒ t=d?!Go)&Mc3Iƞ'-duNEn (!t0Lo/oZ?p?5m|BL_yv@PK!-i "ppt/slideLayouts/slideLayout11.xmlWN0}\e(--.|q6)mt_߱PE-R/K<3s[ɶaAKQ|r"sts}~0C6 Ns~u$3͊K@ 3&m>rX+jW A솅IMuc }'Ȧ 2l~]RcIE5qdvЖbV_QU S1:dɊ&k 7̭ky(o/\ʅr> ԅ mGaйW:#i7q-UcG#ڶѭ $YR] w'%|qpIh0+ ;t}Z^ r.ü( Egd$N|ⱎ)!9I;}D /F>X1/U(2tjbbR£^D&!vͣ$&~r>( C̈́ A4BfY)FS43~Y(@;Dc &z)/ 5LVw(GRX׍Ռ9K۾&U lQиGFEkzk7h]`hFn-ang×.?vxGmYR*'y4ᄲOLn%7HHh0<v7en¢7Eu2 Gyؗ$Qu G9v2V+&kkF]wɘ /*v^9(⟅ Э1k "R V$F?XyY5B$ g?LQN&\rN2GwS8ɏ2{{ Yȩ`F9C*8·aM-oHfDxZ䞌I&L7$#ŤI ۢ琦C4v[/I.P;?Ϝrܕ߆lS!]-*QKdeLYIv4uLښl-ZFV1i+J)נPK!ђ7,ppt/slideLayouts/_rels/slideLayout1.xml.relsϽ 0]&4uE$ۛт}\MxRbZV ț`5ܮgIÛr\h\xpEQk)4n,> ے[?/ۡɦ b<[}܎> (BO-mr4U6@n=\.g -zrQI?^|- =l8 7p1]N:x Jy&nm} n]ᦐK JqeܨS+vޑv#ux7!3 *6hl3Wʚ K\+TLq:DY/NW)HZDyՉ"e ^ݶndBqgQj,"ǒ޿,t#BkZvy/}h'`J|8:j",6qw cy#R)̟HhvDئG63j_v!NUS4dv'Z5)-V%S"xM@+&e88pJ_Jݪޑ8>1qxTM h-nY4SWi&Wi@6N^m*gJc >&v|Πe &U[NɈ7'uGI"u1F-:6QԼ?lnvmubݾG{BSԴGՇPln VQK Qc_PK!d#k2ppt/presProps.xmlQo I068i 1H۩s*4t twp'=%ye{3P=\1b2󧍭^A%+QcBG_+x6E[w@=cP3仏qT?8qrZ$f?RwmlR>>\Vɩ;J?PK!ppt/tableStyles.xml I0@Ὁwh}-CQ$ +w*!@he/?JXd45ݤ{c@qqi` yߥS0Rhk`FOmuࣂ@P„=n"ThDa`C/l] l܀ŇxZK#A޸^fc[QiXqVB㴈Y K.U|t'eh ؽsZU"E|*o#YsDV P_>6x#6‹NDl'8#FHe9EVV.%:ȶ0Gx-t >F(x{*ZO0;G0$]/HVd!V{f¬UTNRE ߏHAuo0C;sz^yeQ^' ]׿9׸%n1+:}Q{ع>{vKmƒĵ''u[??\'|̿/>=vٺ PK!$;bdocProps/custom.xml (_o0';  !D@E &}$V%gHIO]0Fw9mV1c (/D*˹=҄`GKnDOՌ*Hpr8XӆfmCY+GT+h&r Nhly{FVEWzYKwU518|(Bwfa` hBa HI)#yi6e|QoA1/3x֌*&|E=!DTVG˳>˥ȈWO=zN\8Zhmϔ}2]dz]waQbun([Iۅ5 u9V?PK!*DdocProps/core.xml (|ak0۲5Qv-0HBǾbKF~d5qQ^;7&/༶f,Oi6,YxF% m!ζP'ABdzF,&$kOWVȭ6B LA19J*9H;WG%)ЀAOYnA̜C @n??ߗ6W^*Y-==Q|A֠&N! mv[x9Lɣ6vX/wOA"AK=$;Ȗ}L&V~[8t)Ϻ !P7dvIϫxtWxE еKA}9c*Io(L'qW Ac=e}G9$ͯWSX1wwQ&[(O(eՈOOђZj6Ih7_PK-!G$ [Content_Types].xmlPK-!Eч _rels/.relsPK-!c\#7 ppt/slides/_rels/slide1.xml.relsPK-!g0 =ppt/slides/slide1.xmlPK-!A! k ppt/presentation.xmlPK-!.5  ppt/_rels/presentation.xml.relsPK-!_-!pppt/slideMasters/slideMaster1.xmlPK-!ђ7,Sppt/slideLayouts/_rels/slideLayout9.xml.relsPK-!ђ7-Yppt/slideLayouts/_rels/slideLayout10.xml.relsPK-!ђ7-`ppt/slideLayouts/_rels/slideLayout11.xml.relsPK-!ђ7-gppt/slideLayouts/_rels/slideLayout12.xml.relsPK-!տAv!nppt/slideLayouts/slideLayout1.xmlPK-!!Lh!ppt/slideLayouts/slideLayout2.xmlPK-!{w!ppt/slideLayouts/slideLayout3.xmlPK-!z!K ppt/slideLayouts/slideLayout4.xmlPK-!P$9! #ppt/slideLayouts/slideLayout5.xmlPK-!X C!%ppt/slideLayouts/slideLayout6.xmlPK-!Y !(ppt/slideLayouts/slideLayout7.xmlPK-!-^1 !+ppt/slideLayouts/slideLayout8.xmlPK-!p ! .ppt/slideLayouts/slideLayout9.xmlPK-!٢"1ppt/slideLayouts/slideLayout10.xmlPK-!-i "3ppt/slideLayouts/slideLayout11.xmlPK-!X7("6ppt/slideLayouts/slideLayout12.xmlPK-! c,9ppt/slideMasters/_rels/slideMaster1.xml.relsPK-!ђ7,G;ppt/slideLayouts/_rels/slideLayout1.xml.relsPK-!ђ7,M<ppt/slideLayouts/_rels/slideLayout2.xml.relsPK-!ђ7,S=ppt/slideLayouts/_rels/slideLayout3.xml.relsPK-!ђ7,Y>ppt/slideLayouts/_rels/slideLayout4.xml.relsPK-!ђ7,_?ppt/slideLayouts/_rels/slideLayout5.xml.relsPK-!ђ7,e@ppt/slideLayouts/_rels/slideLayout6.xml.relsPK-!ђ7,kAppt/slideLayouts/_rels/slideLayout7.xml.relsPK-!ђ7,qBppt/slideLayouts/_rels/slideLayout8.xml.relsPK-!:g<wCppt/theme/theme1.xmlPK-!d#k2Gppt/presProps.xmlPK-!ڿqeIppt/viewProps.xmlPK-!Kppt/tableStyles.xmlPK-!ugKdocProps/app.xmlPK-!$;bOdocProps/custom.xmlPK-!*DRdocProps/core.xmlPK'' EUpdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/000077500000000000000000000000001415770645300235265ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/pom.xml000066400000000000000000000012641415770645300250460ustar00rootroot00000000000000 4.0.0 PDFBox-Graphics2d Graphics2D Bridge for Apache PDFBox graphics2d jar de.rototor.pdfbox pdfboxgraphics2d-parent 0.34 UTF-8 pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/000077500000000000000000000000001415770645300243155ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/000077500000000000000000000000001415770645300252415ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/000077500000000000000000000000001415770645300261625ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/000077500000000000000000000000001415770645300265525ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/000077500000000000000000000000001415770645300302625ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/000077500000000000000000000000001415770645300315445ustar00rootroot00000000000000graphics2d/000077500000000000000000000000001415770645300335135ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfboxIPdfBoxGraphics2DColor.java000066400000000000000000000006131415770645300405170ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; /** * Common interface for all our PDColor carrying classes. */ public interface IPdfBoxGraphics2DColor { /** * @return the PDColor represented by this color object */ PDColor toPDColor(); /** * @return true if this color should be applied with overprint */ boolean isOverprint(); } IPdfBoxGraphics2DColorMapper.java000066400000000000000000000021171415770645300416650ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import java.awt.*; /** * Map Color to PDColor */ public interface IPdfBoxGraphics2DColorMapper { /** * Map the given Color to a PDColor * * @param contentStream * the content stream * @param color * the color to map * @return the mapped color */ PDColor mapColor(PDPageContentStream contentStream, Color color); } IPdfBoxGraphics2DDrawControl.java000066400000000000000000000046141415770645300417040ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import java.awt.*; /** * Allows you to influence the fill and draw operations. You can alter the shape * to draw/fill, you can even filter out the complete draw/fill operation. * * And you can draw additional stuff after the draw/fill operation, e.g. to * implement overfill. */ public interface IPdfBoxGraphics2DDrawControl { /** * You may optional change the shape that is going to be filled. You can also do * other stuff here like drawing an overfill before the real shape. * * @param shape * the shape that will be drawn * @param env * Environment * @return the shape to be filled. If you return null, nothing will be filled */ Shape transformShapeBeforeFill(Shape shape, IDrawControlEnv env); /** * You may optional change the shape that is going to be drawn. You can also do * other stuff here like drawing an overfill before the real shape. * * @param shape * the shape that will be drawn * @param env * Environment * @return the shape to be filled. If you return null, nothing will be drawn */ Shape transformShapeBeforeDraw(Shape shape, IDrawControlEnv env); /** * Called after shape was filled. This method is always called, even if * {@link #transformShapeBeforeFill(java.awt.Shape, IDrawControlEnv)} returns * null. * * @param shape * the shape that was filled. This is the original shape, not the one * transformed by * {@link #transformShapeBeforeFill(java.awt.Shape, IDrawControlEnv)}. * @param env * Environment */ void afterShapeFill(Shape shape, IDrawControlEnv env); /** * Called after shape was drawn. This method is always called, even if * {@link #transformShapeBeforeDraw(java.awt.Shape, IDrawControlEnv)} returns * null. * * @param shape * the shape that was drawn. This is the original shape, not the one * transformed by * {@link #transformShapeBeforeDraw(java.awt.Shape, IDrawControlEnv)}. * @param env * Environment */ void afterShapeDraw(Shape shape, IDrawControlEnv env); /** * The environment of the draw operation */ interface IDrawControlEnv { /** * * @return the current paint set on the graphics. */ Paint getPaint(); /** * @return the graphics currently drawn on */ PdfBoxGraphics2D getGraphics(); } } IPdfBoxGraphics2DFontTextDrawer.java000066400000000000000000000105431415770645300423640ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.common.PDRectangle; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.geom.AffineTransform; import java.io.IOException; import java.text.AttributedCharacterIterator; /** * Draw text using Fonts */ public interface IPdfBoxGraphics2DFontTextDrawer { /** * Enviroment for font based drawing of text */ interface IFontTextDrawerEnv { /** * @return the document we are writing to */ PDDocument getDocument(); /** * @return the content stream */ PDPageContentStream getContentStream(); /** * @return the current font set on the graphics. This is the "default" font to * use when no other font is set on the * {@link AttributedCharacterIterator}. */ Font getFont(); /** * @return the current paint set on the graphics. This is the "default" paint * when no other paint is set on on the * {@link AttributedCharacterIterator}. */ Paint getPaint(); /** * Apply the given paint on the current content stream * * @param paint Paint to apply * @param shapeToDraw the shape to draw of the text, if known. This is needed to * calculate correct gradients. * @throws IOException if an IO error occurs when writing the paint to the content * stream. */ void applyPaint(Paint paint, Shape shapeToDraw) throws IOException; /** * @return the {@link Graphics2D} {@link FontRenderContext} */ FontRenderContext getFontRenderContext(); /** * @return the bbox of the {@link PdfBoxGraphics2D} */ PDRectangle getGraphicsBBox(); /** * @return the resource of the content stream */ PDResources getResources(); /** * @return the default calcuation BufferedImage based graphics. */ Graphics2D getCalculationGraphics(); /** * Apply this stroke on the current content stream * * @param stroke the stroke to apply */ void applyStroke(Stroke stroke) throws IOException; /** * @return the current transform active to draw on this stream */ AffineTransform getCurrentEffectiveTransform(); } /** * @param iterator Has the text and all its properties * @param env Environment * @return true when the given text can be fully drawn using fonts. return false * to have the text drawn as vector shapes * @throws IOException when a font can not be loaded or a paint can't be applied. * @throws FontFormatException when the font file can not be loaded */ boolean canDrawText(AttributedCharacterIterator iterator, IFontTextDrawerEnv env) throws IOException, FontFormatException; /** * @param iterator The text with all properties * @param env Environment * @throws IOException when a font can not be loaded or a paint can't be applied. * @throws FontFormatException when the font file can not be loaded */ void drawText(AttributedCharacterIterator iterator, IFontTextDrawerEnv env) throws IOException, FontFormatException; /** * @param font the Font * @param env the Environment * @return the resulting font metrics */ FontMetrics getFontMetrics(Font font, IFontTextDrawerEnv env) throws IOException, FontFormatException; } IPdfBoxGraphics2DImageEncoder.java000066400000000000000000000024211415770645300417620ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import java.awt.*; /** * Encode and compress an image as PDImageXObject */ public interface IPdfBoxGraphics2DImageEncoder { /** * Encode the given image into the a PDImageXObject * * @param document * the PDF document * @param contentStream * the content stream of the page * @param image * the image to encode * @return the encoded image */ PDImageXObject encodeImage(PDDocument document, PDPageContentStream contentStream, Image image); } IPdfBoxGraphics2DMarkedContentDrawer.java000066400000000000000000000007131415770645300433450ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import java.io.IOException; /** * Functional Interface to allow draw within a marked content sequence */ public interface IPdfBoxGraphics2DMarkedContentDrawer { /** * Draw within a marked content. All state changes on the given gfx will not have any effect * after returning from this call * @param gfx the graphics to draw on. Do NOT dispose this. */ void draw(PdfBoxGraphics2D gfx) throws IOException; } IPdfBoxGraphics2DPaintApplier.java000066400000000000000000000057031415770645300420360ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.graphics.shading.PDShading; import java.awt.*; import java.awt.geom.AffineTransform; import java.io.IOException; /** * Apply the given paint on the Content Stream. */ public interface IPdfBoxGraphics2DPaintApplier { /** * Apply the paint on the ContentStream * * @param paint the paint which should be applied * @param contentStream the content stream to apply the paint on * @param currentTransform the current transform of the Graphics2D relative to the * contentStream default coordinate space. This is always a copy of the * current transform, so we can modify it. * @param env Environment for mapping the paint. * @return null or a PDShading which should be used to fill a shape. * @throws IOException if its not possible to write the paint into the contentStream */ PDShading applyPaint(Paint paint, PDPageContentStream contentStream, AffineTransform currentTransform, IPaintEnv env) throws IOException; /** * The different mappers used by the paint applier. This interface is * implemented internally by {@link PdfBoxGraphics2D} */ interface IPaintEnv { /** * @return the color mapper */ IPdfBoxGraphics2DColorMapper getColorMapper(); /** * @return the image encoder */ IPdfBoxGraphics2DImageEncoder getImageEncoder(); /** * @return the document */ PDDocument getDocument(); /** * @return the resource of the content stream */ PDResources getResources(); /** * @return the {@link Graphics2D} {@link Composite} */ Composite getComposite(); /** * @return The PdfBoxGraphics2D */ PdfBoxGraphics2D getGraphics2D(); /** * @return the {@link Graphics2D} XOR Mode {@link Color} or null if paint mode * is active. */ @SuppressWarnings("unused") Color getXORMode(); /** * The shape information is need to be able to correctly render grandients. * * @return get the shape which will be drawn or filled with this paint. Null is * returned if no shape is known. */ Shape getShapeToDraw(); /** * Call this to ensure that the current shape has been walked on the content stream. You are * not allowed to do any graphics state changes after this, as this would be illegal in PDF. * (But most PDF reader render this fine anyway...)
* This mostly only needed for ShadedFills */ void ensureShapeIsWalked() throws IOException; } } PdfBoxGraphics2D.java000066400000000000000000001471441415770645300374220ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import de.rototor.pdfbox.graphics2d.IPdfBoxGraphics2DDrawControl.IDrawControlEnv; import de.rototor.pdfbox.graphics2d.IPdfBoxGraphics2DFontTextDrawer.IFontTextDrawerEnv; import de.rototor.pdfbox.graphics2d.IPdfBoxGraphics2DPaintApplier.IPaintEnv; import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.cos.COSStream; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDPropertyList; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace; import org.apache.pdfbox.pdmodel.graphics.color.PDPattern; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import org.apache.pdfbox.pdmodel.graphics.pattern.PDTilingPattern; import org.apache.pdfbox.pdmodel.graphics.shading.PDShading; import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceStream; import org.apache.pdfbox.util.Matrix; import java.awt.*; import java.awt.RenderingHints.Key; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.font.TextAttribute; import java.awt.font.TextLayout; import java.awt.geom.AffineTransform; import java.awt.geom.Arc2D; import java.awt.geom.Area; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.Path2D; import java.awt.geom.PathIterator; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.awt.image.BufferedImageOp; import java.awt.image.ImageObserver; import java.awt.image.RenderedImage; import java.awt.image.WritableRaster; import java.awt.image.renderable.RenderableImage; import java.io.IOException; import java.text.AttributedCharacterIterator; import java.text.AttributedString; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Graphics 2D Adapter for PDFBox. */ public class PdfBoxGraphics2D extends Graphics2D { private final PDFormXObject xFormObject; private final Graphics2D calcGfx; private final PDPageContentStream contentStream; private BufferedImage calcImage; private PDDocument document; private final AffineTransform baseTransform; private AffineTransform transform = new AffineTransform(); private IPdfBoxGraphics2DImageEncoder imageEncoder = new PdfBoxGraphics2DLosslessImageEncoder(); private IPdfBoxGraphics2DColorMapper colorMapper = new PdfBoxGraphics2DColorMapper(); private IPdfBoxGraphics2DPaintApplier paintApplier = new PdfBoxGraphics2DPaintApplier(); private IPdfBoxGraphics2DFontTextDrawer fontTextDrawer = new PdfBoxGraphics2DFontTextDrawer(); private IPdfBoxGraphics2DDrawControl drawControl = PdfBoxGraphics2DDrawControlDefault.INSTANCE; private Paint paint; private Stroke stroke; private Color xorColor; private Font font; private Composite composite; private Shape clipShape; private Color backgroundColor; private final CopyInfo copyInfo; private final PDRectangle bbox; /** * Set a new color mapper. * * @param colorMapper the color mapper which maps Color to PDColor. */ @SuppressWarnings({ "unused" }) public void setColorMapper(IPdfBoxGraphics2DColorMapper colorMapper) { this.colorMapper = colorMapper; } /** * Set a new image encoder * * @param imageEncoder the image encoder, which encodes a image as PDImageXForm. */ @SuppressWarnings({ "unused" }) public void setImageEncoder(IPdfBoxGraphics2DImageEncoder imageEncoder) { this.imageEncoder = imageEncoder; } /** * Set a new paint applier. You should always derive your custom paint applier * from the {@link IPdfBoxGraphics2DPaintApplier} and just extend the paint * mapping for custom paint. *

* If the paint you map is a paint from a standard library and you can implement * the mapping using reflection please feel free to send a pull request to * extend the default paint mapper. * * @param paintApplier the paint applier responsible for mapping the paint correctly */ @SuppressWarnings("unused") public void setPaintApplier(IPdfBoxGraphics2DPaintApplier paintApplier) { this.paintApplier = paintApplier; } /** * Set a new draw control. This allows you to influence fill() and draw() * operations. drawString() is only influence if the text is drawn as vector * shape. * * @param drawControl the draw control */ @SuppressWarnings({ "unused", "WeakerAccess" }) public void setDrawControl(IPdfBoxGraphics2DDrawControl drawControl) { this.drawControl = drawControl; } /** * Create a PDfBox Graphics2D. This size is used for the BBox of the XForm. So * everything drawn outside the rectangle (0x0)-(pixelWidth,pixelHeight) will be * clipped. *

* Note: pixelWidth and pixelHeight only define the size of the coordinate space * within this Graphics2D. They do not affect how big the XForm is finally * displayed in the PDF. * * @param document The document the graphics should be used to create a XForm in. * @param pixelWidth the width in pixel of the drawing area. * @param pixelHeight the height in pixel of the drawing area. * @throws IOException if something goes wrong with writing into the content stream of * the {@link PDDocument}. */ public PdfBoxGraphics2D(PDDocument document, int pixelWidth, int pixelHeight) throws IOException { this(document, new PDRectangle(pixelWidth, pixelHeight)); } /** * Create a PDfBox Graphics2D. This size is used for the BBox of the XForm. So * everything drawn outside the rectangle (0x0)-(pixelWidth,pixelHeight) will be * clipped. *

* Note: pixelWidth and pixelHeight only define the size of the coordinate space * within this Graphics2D. They do not affect how big the XForm is finally * displayed in the PDF. * * @param document The document the graphics should be used to create a XForm in. * @param pixelWidth the width in pixel of the drawing area. * @param pixelHeight the height in pixel of the drawing area. * @throws IOException if something goes wrong with writing into the content stream of * the {@link PDDocument}. */ public PdfBoxGraphics2D(PDDocument document, float pixelWidth, float pixelHeight) throws IOException { this(document, new PDRectangle(pixelWidth, pixelHeight)); } /** * Set an optional text drawer. By default, all text is vectorized and drawn * using vector shapes. To embed fonts into a PDF file it is necessary to have * the underlying TTF file. The java.awt.Font class does not provide that. The * FontTextDrawer must perform the java.awt.Font <=> PDFont mapping and * also must perform the text layout. If it can not map the text or font * correctly, the font drawing falls back to vectoring the text. * * @param fontTextDrawer The text drawer, which can draw text using fonts */ @SuppressWarnings("WeakerAccess") public void setFontTextDrawer(IPdfBoxGraphics2DFontTextDrawer fontTextDrawer) { this.fontTextDrawer = fontTextDrawer; } private int saveCounter = 0; private final List copyList = new ArrayList(); private static class CopyInfo { PdfBoxGraphics2D sourceGfx; PdfBoxGraphics2D copy; String creatingContextInfo; @Override public String toString() { return "CopyInfo{creatingContextInfo='" + creatingContextInfo + '\'' + '}'; } } /** * @param document The document the graphics should be used to create a XForm in. * @param bbox Bounding Box of the graphics * @throws IOException when something goes wrong with writing into the content stream of * the {@link PDDocument}. */ public PdfBoxGraphics2D(PDDocument document, PDRectangle bbox) throws IOException { this(document, bbox, null); } /* * @internal */ PdfBoxGraphics2D(PDDocument document, PDRectangle bbox, PdfBoxGraphics2D parentGfx) throws IOException { this.document = document; this.bbox = bbox; renderingHints = new HashMap(); renderingHints.put(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); PDAppearanceStream appearance = new PDAppearanceStream(document); xFormObject = appearance; xFormObject.setResources(new PDResources()); xFormObject.setBBox(bbox); contentStream = new PDPageContentStream(document, appearance, xFormObject.getStream().createOutputStream(COSName.FLATE_DECODE)); contentStreamSaveState(); if (parentGfx != null) { this.colorMapper = parentGfx.colorMapper; this.fontTextDrawer = parentGfx.fontTextDrawer; this.imageEncoder = parentGfx.imageEncoder; this.paintApplier = parentGfx.paintApplier; } baseTransform = new AffineTransform(); baseTransform.translate(0, bbox.getHeight()); baseTransform.scale(1, -1); calcImage = new BufferedImage(100, 100, BufferedImage.TYPE_4BYTE_ABGR); calcGfx = calcImage.createGraphics(); font = calcGfx.getFont(); copyInfo = null; } /** * @return the PDAppearanceStream which resulted in this graphics */ @SuppressWarnings("WeakerAccess") public PDFormXObject getXFormObject() { if (document != null) throw new IllegalStateException( "You can only get the XformObject after you disposed the Graphics2D!"); if (copyInfo != null) throw new IllegalStateException("You can not get the Xform stream from the copy"); return xFormObject; } private PdfBoxGraphics2D(PdfBoxGraphics2D gfx) throws IOException { CopyInfo info = new CopyInfo(); info.creatingContextInfo = gatherContext(); info.copy = this; info.sourceGfx = gfx; gfx.copyList.add(info); this.copyInfo = info; this.hasPathOnStream = false; this.document = gfx.document; this.bbox = gfx.bbox; this.xFormObject = gfx.xFormObject; this.contentStream = gfx.contentStream; this.baseTransform = gfx.baseTransform; this.transform = (AffineTransform) gfx.transform.clone(); this.calcGfx = gfx.calcGfx; this.calcImage = gfx.calcImage; this.font = gfx.font; this.stroke = gfx.stroke; this.paint = gfx.paint; this.clipShape = gfx.clipShape; this.backgroundColor = gfx.backgroundColor; this.colorMapper = gfx.colorMapper; this.fontTextDrawer = gfx.fontTextDrawer; this.imageEncoder = gfx.imageEncoder; this.paintApplier = gfx.paintApplier; this.drawControl = gfx.drawControl; this.composite = gfx.composite; this.renderingHints = new HashMap(gfx.renderingHints); this.xorColor = gfx.xorColor; this.saveCounter = 0; contentStreamSaveState(); } /** * Global Flag: If set to true the Callstack when creating a * context is recorded. *

* Note: Setting this to true will slow down the library. Use this only for * debugging. */ public static boolean ENABLE_CHILD_CREATING_DEBUG = false; private String gatherContext() { if (!ENABLE_CHILD_CREATING_DEBUG) return null; StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); StringBuilder sb = new StringBuilder(); for (StackTraceElement stackTraceElement : stackTrace) { if (stackTraceElement.getClassName().startsWith("de.rototor.pdfbox")) continue; if (stackTraceElement.getClassName().startsWith("org.junit")) continue; if (stackTraceElement.getClassName().startsWith("com.intellij.rt")) continue; if (stackTraceElement.getClassName().startsWith("java.lang")) continue; sb.append(" at ").append(stackTraceElement.getClassName()).append(".") .append(stackTraceElement.getMethodName()).append("(") .append(stackTraceElement.getFileName()).append(":") .append(stackTraceElement.getLineNumber()).append(")").append("\n"); } return sb.toString(); } /** * Sometimes the users of {@link #create()} don't correctly {@link #dispose()} * the child graphics they create. And you may not always be able to fix this * uses, as it may be in some 3rdparty library. In this case this method can * help you. It will cleanup all dangling child graphics. The child graphics can * not be used after that. This method is a workaround for a buggy old code. You * should only use it if you have to.
*

* Note: You can only call this method on the "main" graphics, not on a child * created with {@link #create()} */ @SuppressWarnings("WeakerAccess") public void disposeDanglingChildGraphics() { if (copyInfo != null) throw new IllegalStateException( "Don't call disposeDanglingChildGraphics() on a child!"); disposeCopies(copyList); } private static void disposeCopies(List cl) { while (cl.size() > 0) { CopyInfo copyInfo = cl.get(0); disposeCopies(copyInfo.copy.copyList); copyInfo.copy.dispose(); } } public void dispose() { if (copyInfo != null) { copyInfo.sourceGfx.copyList.remove(copyInfo); try { contentStreamRestoreState(); } catch (IOException e) { throwException(e); } if (this.saveCounter != 0) throw new IllegalStateException( "Copy - SaveCounter should be 0, but is " + this.saveCounter); return; } if (copyList.size() > 0) /* * When not all copies created by create() are disposed(), the resulting PDF * content stream will be invalid, as the save/restore context commands (q/Q) * are not balanced. You should always dispose() a graphics context when you are * done with it. */ throw new IllegalStateException( "Not all PdfGraphics2D copies were destroyed! Please ensure that all create() calls get a matching dispose() on the returned copies. Also consider using disposeDanglingChildGraphics()"); try { contentStreamRestoreState(); contentStream.close(); } catch (IOException e) { throwException(e); } if (this.saveCounter != 0) throw new IllegalStateException("SaveCounter should be 0, but is " + this.saveCounter); document = null; calcGfx.dispose(); calcImage.flush(); calcImage = null; } private final IDrawControlEnv drawControlEnv = new IDrawControlEnv() { @Override public Paint getPaint() { return paint; } @Override public PdfBoxGraphics2D getGraphics() { return PdfBoxGraphics2D.this; } }; public void draw(Shape s) { checkNoCopyActive(); /* * Don't try to draw with no paint, just ignore that. */ if (paint == null) return; try { contentStreamSaveState(); Shape shapeToDraw = drawControl.transformShapeBeforeDraw(s, drawControlEnv); if (shapeToDraw != null) { PaintApplyResult result = applyPaint(shapeToDraw); applyStroke(stroke); if (result.shading != null) applyShadingAsColor(result.shading); if (!result.hasShapeBeenWalked) walkShape(shapeToDraw); contentStream.stroke(); hasPathOnStream = false; } drawControl.afterShapeDraw(s, drawControlEnv); contentStreamRestoreState(); } catch (IOException e) { throwException(e); } } /** * Interal debugflag to see if a unkown stroke is mapped */ private final static boolean ENABLE_DEBUG_UNKOWN_STROKE = false; /** * Internal usage only! * * @param strokeToApply the stroke we should apply on the stream */ private void applyStroke(Stroke strokeToApply) throws IOException { if (strokeToApply instanceof BasicStroke) { BasicStroke basicStroke = (BasicStroke) strokeToApply; // Cap Style maps 1:1 between Java and PDF Spec contentStream.setLineCapStyle(basicStroke.getEndCap()); // Line Join Style maps 1:1 between Java and PDF Spec contentStream.setLineJoinStyle(basicStroke.getLineJoin()); float miterLimit = basicStroke.getMiterLimit(); if (miterLimit > 0) { /* * Also Miter maps 1:1 between Java and PDF Spec * The miter-limit must have a minimum value of 1f. This is spec'd in * BasicStroke constructor, and Acrobat Reader also requires this. */ contentStream.setMiterLimit(Math.max(1f, miterLimit)); } AffineTransform tf = getCurrentEffectiveTransform(); double scaleX = tf.getScaleX(); contentStream.setLineWidth((float) Math.abs(basicStroke.getLineWidth() * scaleX)); float[] dashArray = basicStroke.getDashArray(); if (dashArray != null) { for (int i = 0; i < dashArray.length; i++) dashArray[i] = (float) Math.abs(dashArray[i] * scaleX); contentStream.setLineDashPattern(dashArray, (float) Math.abs(basicStroke.getDashPhase() * scaleX)); } } else if (strokeToApply != null) { if (ENABLE_DEBUG_UNKOWN_STROKE) System.out.println("PDFBoxGraphics2D: Can't handle Stroke " + strokeToApply); } } private AffineTransform getCurrentEffectiveTransform() { AffineTransform tf = new AffineTransform(); tf.concatenate(baseTransform); tf.concatenate(transform); return tf; } public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) { BufferedImage img1 = op.filter(img, null); drawImage(img1, new AffineTransform(1f, 0f, 0f, 1f, x, y), null); } public void drawRenderedImage(RenderedImage img, AffineTransform xform) { WritableRaster data = img.copyData(null); drawImage(new BufferedImage(img.getColorModel(), data, false, null), xform, null); } public void drawRenderableImage(RenderableImage img, AffineTransform xform) { drawRenderedImage(img.createDefaultRendering(), xform); } public void drawString(String str, int x, int y) { drawString(str, (float) x, (float) y); } public void drawString(String str, float x, float y) { /* * Ignore empty strings, they can't be attributed. And are invisible anyway. */ if (str.isEmpty()) return; AttributedString attributedString = new AttributedString(str); attributedString.addAttribute(TextAttribute.FONT, font); drawString(attributedString.getIterator(), x, y); } public void drawString(AttributedCharacterIterator iterator, int x, int y) { drawString(iterator, (float) x, (float) y); } public boolean drawImage(Image img, int x, int y, ImageObserver observer) { return drawImage(img, x, y, img.getWidth(observer), img.getHeight(observer), observer); } public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { AffineTransform tf = new AffineTransform(); tf.translate(x, y); tf.scale((float) width / img.getWidth(null), (float) height / img.getHeight(null)); return drawImage(img, tf, observer); } public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) { return drawImage(img, x, y, img.getWidth(observer), img.getHeight(observer), bgcolor, observer); } public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) { try { if (bgcolor != null) { contentStream.setNonStrokingColor(colorMapper.mapColor(contentStream, bgcolor)); walkShape(new Rectangle(x, y, width, height)); contentStream.fill(); } return drawImage(img, x, y, img.getWidth(observer), img.getHeight(observer), observer); } catch (IOException e) { throwException(e); return false; } } public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy2, sx2, sy2, null, observer); } public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) { checkNoCopyActive(); AffineTransform tf = getCurrentEffectiveTransform(); // Sometimes the xform can be null if (xform != null) tf.concatenate((AffineTransform) xform.clone()); PDImageXObject pdImage = imageEncoder.encodeImage(document, contentStream, img); try { contentStreamSaveState(); int imgHeight = img.getHeight(obs); tf.translate(0, imgHeight); tf.scale(1, -1); contentStream.transform(new Matrix(tf)); Object keyInterpolation = renderingHints.get(RenderingHints.KEY_INTERPOLATION); if (RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR.equals(keyInterpolation)) pdImage.setInterpolate(false); if (composite != null) { // We got an AlphaComposite, we must set the extended graphics dictionary correctly. // The PaintApplyer will do this for us. So we just apply a paint (without alpha) // so that the graphics dictionary is set correctly. applyPaint(Color.WHITE, null); } contentStream.drawImage(pdImage, 0, 0, img.getWidth(obs), imgHeight); contentStreamRestoreState(); } catch (IOException e) { throwException(e); } return true; } public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer) { try { contentStreamSaveState(); int width = dx2 - dx1; int height = dy2 - dy1; /* * Set the clipping */ walkShape(new Rectangle2D.Double(dx1, dy1, width, height)); contentStream.clip(); /* * Maybe fill the background color */ if (bgcolor != null) { contentStream.setNonStrokingColor(colorMapper.mapColor(contentStream, bgcolor)); walkShape(new Rectangle(dx1, dy1, width, height)); contentStream.fill(); } /* * Build the transform for the image */ AffineTransform tf = new AffineTransform(); tf.translate(dx1, dy1); float imgWidth = img.getWidth(observer); float imgHeight = img.getHeight(observer); tf.scale((float) width / imgWidth, (float) height / imgHeight); tf.translate(-sx1, -sy1); tf.scale((sx2 - sx1) / imgWidth, (sy2 - sy1) / imgHeight); drawImage(img, tf, observer); contentStreamRestoreState(); return true; } catch (IOException e) { throwException(e); return false; } } private void drawStringUsingShapes(AttributedCharacterIterator iterator, float x, float y) { Stroke originalStroke = stroke; Paint originalPaint = paint; TextLayout textLayout = new TextLayout(iterator, getFontRenderContext()); textLayout.draw(this, x, y); paint = originalPaint; stroke = originalStroke; } public void drawString(AttributedCharacterIterator iterator, float x, float y) { /* * Don't try to draw with no paint, just ignore that. */ if (paint == null) return; try { contentStreamSaveState(); /* * If we can draw the text using fonts, we do this */ if (fontTextDrawer.canDrawText((AttributedCharacterIterator) iterator.clone(), fontDrawerEnv)) { drawStringUsingText(iterator, x, y); } else { /* * Otherwise we fall back to draw using shapes. This works always */ drawStringUsingShapes(iterator, x, y); } contentStreamRestoreState(); } catch (IOException e) { throwException(e); } catch (FontFormatException e) { throwException(e); } } private void drawStringUsingText(AttributedCharacterIterator iterator, float x, float y) throws IOException, FontFormatException { contentStreamSaveState(); AffineTransform tf = new AffineTransform(baseTransform); tf.concatenate(transform); tf.translate(x, y); contentStream.transform(new Matrix(tf)); fontTextDrawer.drawText(iterator, fontDrawerEnv); contentStreamRestoreState(); } private void contentStreamSaveState() throws IOException { saveCounter++; contentStream.saveGraphicsState(); } private void contentStreamRestoreState() throws IOException { if (saveCounter == 0) throw new IllegalStateException( "Internal save/restore state error. Should never happen."); saveCounter--; contentStream.restoreGraphicsState(); } private final IFontTextDrawerEnv fontDrawerEnv = new IPdfBoxGraphics2DFontTextDrawer.IFontTextDrawerEnv() { @Override public PDDocument getDocument() { return document; } @Override public PDPageContentStream getContentStream() { return contentStream; } @Override public Font getFont() { return font; } @Override public Paint getPaint() { return paint; } @Override public void applyPaint(Paint paint, Shape shapeToDraw) throws IOException { PaintApplyResult result = PdfBoxGraphics2D.this.applyPaint(paint, shapeToDraw); if (result.shading != null) applyShadingAsColor(result.shading); } @Override public FontRenderContext getFontRenderContext() { return PdfBoxGraphics2D.this.getFontRenderContext(); } @Override public PDRectangle getGraphicsBBox() { return bbox; } @Override public PDResources getResources() { return xFormObject.getResources(); } @Override public Graphics2D getCalculationGraphics() { calcGfx.addRenderingHints(renderingHints); return calcGfx; } @Override public void applyStroke(Stroke stroke) throws IOException { PdfBoxGraphics2D.this.applyStroke(stroke); } @Override public AffineTransform getCurrentEffectiveTransform() { return PdfBoxGraphics2D.this.getCurrentEffectiveTransform(); } }; public void drawGlyphVector(GlyphVector g, float x, float y) { checkNoCopyActive(); AffineTransform transformOrig = (AffineTransform) transform.clone(); transform.translate(x, y); fill(g.getOutline()); transform = transformOrig; } public void fill(Shape s) { checkNoCopyActive(); /* * Don't try to draw with no paint, just ignore that. */ if (paint == null) return; try { contentStreamSaveState(); Shape shapeToFill = drawControl.transformShapeBeforeFill(s, drawControlEnv); if (shapeToFill != null) { PaintApplyResult result = applyPaint(shapeToFill); if (result.shading != null) { /* * NB: the shading fill doesn't work with shapes with zero or negative * dimensions (width and/or height): in these cases a normal fill is used */ Rectangle2D r2d = s.getBounds2D(); if ((r2d.getWidth() <= 0) || (r2d.getHeight() <= 0)) { /* * But we apply the shading as color, we usually want to avoid that because it * creates another nested XForm for that ... */ applyShadingAsColor(result.shading); walkAndFillFromApplyPaintResult(shapeToFill, result); } else { boolean useEvenOdd = result.hasShapeBeenWalked ? result.useEvenOdd : walkShape( shapeToFill); internalClip(useEvenOdd); contentStream.shadingFill(result.shading); } } else { walkAndFillFromApplyPaintResult(shapeToFill, result); } hasPathOnStream = false; } drawControl.afterShapeFill(s, drawControlEnv); contentStreamRestoreState(); } catch (IOException e) { throwException(e); } } private void walkAndFillFromApplyPaintResult(Shape shapeToFill, PaintApplyResult result) throws IOException { if (result.hasShapeBeenWalked) fill(result.useEvenOdd); else walkAndFillShape(shapeToFill); } private void walkAndFillShape(Shape shapeToFill) throws IOException { boolean useEvenOdd = walkShape(shapeToFill); fill(useEvenOdd); } private void fill(boolean useEvenOdd) throws IOException { if (useEvenOdd) contentStream.fillEvenOdd(); else contentStream.fill(); } private void applyShadingAsColor(PDShading shading) throws IOException { /* * If the paint has a shading we must create a tiling pattern and set that as * stroke color... */ PDTilingPattern pattern = new PDTilingPattern(); pattern.setPaintType(PDTilingPattern.PAINT_COLORED); pattern.setTilingType(PDTilingPattern.TILING_CONSTANT_SPACING_FASTER_TILING); PDRectangle anchorRect = bbox; pattern.setBBox(anchorRect); pattern.setXStep(anchorRect.getWidth()); pattern.setYStep(anchorRect.getHeight()); PDAppearanceStream appearance = new PDAppearanceStream(this.document); appearance.setResources(pattern.getResources()); appearance.setBBox(pattern.getBBox()); PDPageContentStream imageContentStream = new PDPageContentStream(document, appearance, ((COSStream) pattern.getCOSObject()).createOutputStream()); imageContentStream.addRect(0, 0, anchorRect.getWidth(), anchorRect.getHeight()); imageContentStream.clip(); imageContentStream.shadingFill(shading); imageContentStream.close(); PDColorSpace patternCS1 = new PDPattern(null); COSName tilingPatternName = xFormObject.getResources().add(pattern); PDColor patternColor = new PDColor(tilingPatternName, patternCS1); contentStream.setNonStrokingColor(patternColor); contentStream.setStrokingColor(patternColor); } private PaintApplyResult applyPaint(Shape shapeToDraw) throws IOException { return applyPaint(paint, shapeToDraw); } private final PaintEnvImpl paintEnv = new PaintEnvImpl(); private static class PaintApplyResult { PDShading shading; boolean hasShapeBeenWalked; boolean useEvenOdd; } private final PaintApplyResult paintApplyResult = new PaintApplyResult(); private PaintApplyResult applyPaint(Paint paintToApply, Shape shapeToDraw) throws IOException { AffineTransform tf = new AffineTransform(baseTransform); tf.concatenate(transform); paintEnv.shapeToDraw = shapeToDraw; paintEnv.hasShapeBeenWalked = false; paintApplyResult.shading = paintApplier.applyPaint(paintToApply, contentStream, tf, paintEnv); paintApplyResult.hasShapeBeenWalked = paintEnv.hasShapeBeenWalked; paintApplyResult.useEvenOdd = paintEnv.useEvenOdd; return paintApplyResult; } public boolean hit(Rectangle rect, Shape s, boolean onStroke) { return false; } public GraphicsConfiguration getDeviceConfiguration() { return null; } public void setComposite(Composite comp) { composite = comp; } public void setPaint(Paint paint) { this.paint = paint; } public void setStroke(Stroke stroke) { this.stroke = stroke; } private final Map renderingHints; public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) { renderingHints.put(hintKey, hintValue); } public Object getRenderingHint(RenderingHints.Key hintKey) { return renderingHints.get(hintKey); } public void setRenderingHints(Map hints) { hints.clear(); addRenderingHints(hints); } @SuppressWarnings("unchecked") public void addRenderingHints(Map hints) { renderingHints.putAll((Map) hints); } public RenderingHints getRenderingHints() { return new RenderingHints(renderingHints); } /** * Creates a copy of this graphics object. Please call {@link #dispose()} always * on the copy after you have finished drawing with it.
*
* Never draw both in this copy and its parent graphics at the same time, as * they all write to the same content stream. This will create a broken PDF * content stream. You should get an {@link java.lang.IllegalStateException} if * you do so, but better just don't try.
*
* The copy allows you to have different transforms, paints, etc. than the * parent graphics context without affecting the parent. You may also call * create() on a copy, but always remember to call {@link #dispose()} in reverse * order. * * @return a copy of this Graphics. */ public PdfBoxGraphics2D create() { try { return new PdfBoxGraphics2D(this); } catch (IOException e) { throwException(e); return null; } } /** * Draw on the Graphics2D and enclose the drawing command with a BMC/EMC content * marking pair. See the PDF Spec about "Marked Content" for details. * * @param tagName A COSName for to tag the marked content * @param drawer is called with a (child) graphics to draw on. Please do *not* * dispose() this graphics. Just draw on it. Any state changes on the given graphics will be reset after the * drawing is finished */ public void drawInMarkedContentSequence(COSName tagName, IPdfBoxGraphics2DMarkedContentDrawer drawer) { try { contentStream.beginMarkedContent(tagName); PdfBoxGraphics2D child = create(); drawer.draw(child); child.dispose(); contentStream.endMarkedContent(); } catch (IOException e) { throwException(e); } } /** * Draw on the Graphics2D and enclose the drawing command with a BDC/EMC content * marking pair. See the PDF Spec about "Marked Content" for details. * * @param tagName A COSName for to tag the marked content * @param properties The properties to put by the marked sequence * @param drawer is called with a (child) graphics to draw on. Please do *not* * dispose() this graphics. Just draw on it. Any state changes on the * given graphics will be reset after the drawing is finished */ public void drawInMarkedContentSequence(COSName tagName, PDPropertyList properties, IPdfBoxGraphics2DMarkedContentDrawer drawer) { try { contentStream.beginMarkedContent(tagName, properties); PdfBoxGraphics2D child = create(); drawer.draw(child); child.dispose(); contentStream.endMarkedContent(); } catch (IOException e) { throwException(e); } } public PdfBoxGraphics2D create(int x, int y, int width, int height) { return (PdfBoxGraphics2D) super.create(x, y, width, height); } public void translate(int x, int y) { transform.translate(x, y); } public Color getColor() { if (paint instanceof Color) return (Color) paint; return null; } public void setColor(Color color) { this.paint = color; } public void setPaintMode() { xorColor = null; } /** * XOR Mode is currently not implemented as it's not possible in PDF. This mode * is ignored. * * @param c1 the XORMode Color */ public void setXORMode(Color c1) { xorColor = c1; } public Font getFont() { return font; } public void setFont(Font font) { this.font = font; } public FontMetrics getFontMetrics(Font f) { try { return fontTextDrawer.getFontMetrics(f, fontDrawerEnv); } catch (IOException e) { return throwException(e); } catch (FontFormatException e) { return throwException(e); } } public Rectangle getClipBounds() { Shape clip = getClip(); if (clip != null) return clip.getBounds(); return null; } public void clipRect(int x, int y, int width, int height) { Rectangle2D rect = new Rectangle2D.Double(x, y, width, height); clip(rect); } public void setClip(int x, int y, int width, int height) { setClip(new Rectangle(x, y, width, height)); } public Shape getClip() { try { return transform.createInverse().createTransformedShape(clipShape); } catch (NoninvertibleTransformException e) { return null; } } public void setClip(Shape clip) { checkNoCopyActive(); this.clipShape = transform.createTransformedShape(clip); /* * Clip on the content stream */ try { contentStreamRestoreState(); contentStreamSaveState(); /* * clip can be null, only set a clipping if not null */ if (clip != null) { internalClip(walkShape(clip)); } } catch (IOException e) { throwException(e); } } /** * Internal Debug flag. */ private final static boolean ENABLE_DEBUG_INTERNAL_CLIP = false; /** * Perform a clip, but only if we really have an active clipping path * * @param useEvenOdd true when we should use the evenOdd rule. */ void internalClip(boolean useEvenOdd) throws IOException { if (hasPathOnStream) { if (useEvenOdd) contentStream.clipEvenOdd(); else contentStream.clip(); hasPathOnStream = false; } else { if (ENABLE_DEBUG_INTERNAL_CLIP) { System.out.println("No Clip to fill: " + useEvenOdd); } } } /** * Float#isFinite() is JDK 8+. We just copied the trivial implementation here. * When we require JDK 8+ we can just drop this method and replace it bei * Float#isFinite() */ private static boolean isFinite(float f) { return Math.abs(f) <= Float.MAX_VALUE; } /** * @return true when all required values are finite */ private static boolean isFinite(float[] coords, int count) { for (int i = 0; i < count; i++) if (!isFinite(coords[i])) return false; return true; } /** * Do we currently have an active path on the content stream, which has not been * closed? *

* We need this flag to avoid to clip twice if both the plaint applyer needs to * clip and we have some clipping. If at the end we try to clip with an empty * path, then Acrobat Reader does not like that and draws nothing. */ private boolean hasPathOnStream = false; /** * Set an internal flag that some path - which may be added from the paint * applyer to the content stream or by walkShape() - is on the content stream. * We can then safely clip() if there is a path on the content stream. */ void markPathIsOnStream() { hasPathOnStream = true; } /** * Walk the path and return true if we need to use the even odd winding rule. * * @return true if we need to use the even odd winding rule */ private boolean walkShape(Shape clip) throws IOException { checkNoCopyActive(); AffineTransform tf = new AffineTransform(baseTransform); tf.concatenate(transform); PathIterator pi = clip.getPathIterator(tf); float[] coords = new float[6]; while (!pi.isDone()) { int segment = pi.currentSegment(coords); switch (segment) { case PathIterator.SEG_MOVETO: if (isFinite(coords, 2)) contentStream.moveTo(coords[0], coords[1]); break; case PathIterator.SEG_LINETO: if (isFinite(coords, 2)) contentStream.lineTo(coords[0], coords[1]); break; case PathIterator.SEG_QUADTO: if (isFinite(coords, 4)) contentStream.curveTo1(coords[0], coords[1], coords[2], coords[3]); break; case PathIterator.SEG_CUBICTO: if (isFinite(coords, 6)) contentStream.curveTo(coords[0], coords[1], coords[2], coords[3], coords[4], coords[5]); break; case PathIterator.SEG_CLOSE: contentStream.closePath(); break; } pi.next(); } markPathIsOnStream(); return pi.getWindingRule() == PathIterator.WIND_EVEN_ODD; } private void checkNoCopyActive() { /* * As long as a copy is in use you are not allowed to do anything here */ if (copyList.size() > 0) throw new IllegalStateException( "Don't use the main context as long as a copy is active! Child context is missing a .dispose() call. \n" + gatherDebugCopyInfo(this)); } private static String gatherDebugCopyInfo(PdfBoxGraphics2D gfx) { StringBuilder sb = new StringBuilder(); if (!gfx.copyList.isEmpty()) { for (CopyInfo copyInfo : gfx.copyList) { sb.append("# Dangling Child").append(copyInfo.toString()).append("\n"); } } while (gfx != null) { if (gfx.copyList.isEmpty()) { sb.append("* Last Child\n"); } else { sb.append("- Parent with ").append(gfx.copyList.size()).append(" childs.\n"); } if (gfx.copyInfo == null) break; gfx = gfx.copyInfo.sourceGfx; } return sb.toString(); } /** * Internal helper function * * @param e exception to rethrow */ static T throwException(Exception e) { throw new RuntimeException(e); } public void copyArea(int x, int y, int width, int height, int dx, int dy) { /* * Sorry, cant do that :( */ throw new IllegalStateException("copyArea() not possible!"); } public void drawLine(int x1, int y1, int x2, int y2) { draw(new Line2D.Double(x1, y1, x2, y2)); } public void fillRect(int x, int y, int width, int height) { fill(new Rectangle(x, y, width, height)); } public void clearRect(int x, int y, int width, int height) { Paint p = paint; paint = backgroundColor; fillRect(x, y, width, height); paint = p; } public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { draw(new RoundRectangle2D.Double(x, y, width, height, arcWidth, arcHeight)); } public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { fill(new RoundRectangle2D.Double(x, y, width, height, arcWidth, arcHeight)); } public void drawOval(int x, int y, int width, int height) { draw(new Ellipse2D.Double(x, y, width, height)); } public void fillOval(int x, int y, int width, int height) { fill(new Ellipse2D.Double(x, y, width, height)); } public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) { draw(new Arc2D.Double(x, y, width, height, startAngle, arcAngle, Arc2D.OPEN)); } public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) { fill(new Arc2D.Double(x, y, width, height, startAngle, arcAngle, Arc2D.PIE)); } public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) { Path2D.Double path = new Path2D.Double(); path.moveTo(xPoints[0], yPoints[0]); for (int i = 1; i < nPoints; i++) path.lineTo(xPoints[i], yPoints[i]); draw(path); } public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) { draw(new Polygon(xPoints, yPoints, nPoints)); } public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) { fill(new Polygon(xPoints, yPoints, nPoints)); } public void translate(double tx, double ty) { checkNoCopyActive(); transform.translate(tx, ty); } public void rotate(double theta) { checkNoCopyActive(); transform.rotate(theta); } public void rotate(double theta, double x, double y) { checkNoCopyActive(); transform.rotate(theta, x, y); } public void scale(double sx, double sy) { checkNoCopyActive(); transform.scale(sx, sy); } public void shear(double shx, double shy) { checkNoCopyActive(); transform.shear(shx, shy); } public void transform(AffineTransform Tx) { checkNoCopyActive(); transform.concatenate(Tx); } public void setTransform(AffineTransform Tx) { checkNoCopyActive(); transform = new AffineTransform(); transform.concatenate(Tx); } public AffineTransform getTransform() { return (AffineTransform) transform.clone(); } public Paint getPaint() { return paint; } public Composite getComposite() { return composite; } public void setBackground(Color color) { backgroundColor = color; } public Color getBackground() { return backgroundColor; } public Stroke getStroke() { return stroke; } public void clip(Shape shape) { Shape clip = getClip(); if (clip == null) setClip(shape); else { Area area = new Area(clip); area.intersect(new Area(shape)); setClip(area); } } public FontRenderContext getFontRenderContext() { calcGfx.addRenderingHints(renderingHints); return calcGfx.getFontRenderContext(); } private class PaintEnvImpl implements IPaintEnv { private Shape shapeToDraw; private boolean hasShapeBeenWalked; private boolean useEvenOdd; @Override public Shape getShapeToDraw() { return shapeToDraw; } @Override public void ensureShapeIsWalked() throws IOException { if (shapeToDraw == null) return; if (hasShapeBeenWalked) return; hasShapeBeenWalked = true; useEvenOdd = walkShape(shapeToDraw); } @Override public IPdfBoxGraphics2DColorMapper getColorMapper() { return colorMapper; } @Override public IPdfBoxGraphics2DImageEncoder getImageEncoder() { return imageEncoder; } @Override public PDDocument getDocument() { return document; } @Override public PDResources getResources() { return xFormObject.getResources(); } @Override public Composite getComposite() { return PdfBoxGraphics2D.this.getComposite(); } @Override public PdfBoxGraphics2D getGraphics2D() { return PdfBoxGraphics2D.this; } @Override public Color getXORMode() { return xorColor; } } } PdfBoxGraphics2DCMYKColor.java000066400000000000000000000033001415770645300410660ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace; import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK; /** * This color class represents a CMYK Color. You can use this class if you want to paint with DeviceCMYK Colors */ public class PdfBoxGraphics2DCMYKColor extends PdfBoxGraphics2DColor { private final float c, m, y, k; public PdfBoxGraphics2DCMYKColor(int c, int m, int y, int k, int alpha) { this(c / 255f, m / 255f, y / 255f, k / 255f, alpha); } public PdfBoxGraphics2DCMYKColor(int c, int m, int y, int k) { this(c / 255f, m / 255f, y / 255f, k / 255f); } public PdfBoxGraphics2DCMYKColor(float c, float m, float y, float k) { this(c, m, y, k, 255); } public PdfBoxGraphics2DCMYKColor(float c, float m, float y, float k, int alpha) { this(c, m, y, k, alpha, PDDeviceCMYK.INSTANCE); } public PdfBoxGraphics2DCMYKColor(float c, float m, float y, float k, int alpha, PDColorSpace colorSpace) { this(c, m, y, k, alpha, colorSpace, false); } public PdfBoxGraphics2DCMYKColor(float c, float m, float y, float k, int alpha, PDColorSpace colorSpace, boolean overprint) { super(new PDColor(new float[] { c, m, y, k }, colorSpace), alpha, overprint); this.c = c; this.m = m; this.y = y; this.k = k; } public float getC() { return c; } public float getM() { return m; } public float getY() { return y; } public float getK() { return k; } } PdfBoxGraphics2DColor.java000066400000000000000000000025661415770645300404170ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import java.awt.*; import java.io.IOException; /** * Universal PDColor Carrying class. It does not assume any specific colorspace. * Useful for e.g. speration colors */ public class PdfBoxGraphics2DColor extends Color implements IPdfBoxGraphics2DColor { private final PDColor color; private final int alpha; private final boolean overprint; /** * @param color the PDColor */ public PdfBoxGraphics2DColor(PDColor color) { this(color, 255); } /** * @param color the PDColor * @param alpha the alpha to use */ public PdfBoxGraphics2DColor(PDColor color, int alpha) { this(color, alpha, false); } /** * * @param color the PDColor * @param alpha the alpha to use * @param overprint determine if overprint should be used */ public PdfBoxGraphics2DColor(PDColor color, int alpha, boolean overprint) { super(toRGBValue(color, alpha)); this.color = color; this.alpha = alpha; this.overprint = overprint; } private static int toRGBValue(PDColor color, int alpha) { try { return (color.toRGB() & 0xFFFFFF) | alpha << 24; } catch (IOException e) { throw new RuntimeException(e); } } @Override public int getAlpha() { return alpha; } public boolean isOverprint() { return overprint; } public PDColor toPDColor(){ return color; } } PdfBoxGraphics2DColorMapper.java000066400000000000000000000036651415770645300415650ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK; import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB; import java.awt.*; public class PdfBoxGraphics2DColorMapper implements IPdfBoxGraphics2DColorMapper { @Override public PDColor mapColor(PDPageContentStream contentStream, Color color) { if (color == null) return new PDColor(new float[] { 1f, 1f, 1f }, PDDeviceRGB.INSTANCE); // Support for legacy iText 2 CMYK Color Class if (color.getClass().getSimpleName().equals("CMYKColor")) { float c = PdfBoxGraphics2DPaintApplier.getPropertyValue(color, "getCyan"); float m = PdfBoxGraphics2DPaintApplier.getPropertyValue(color, "getMagenta"); float y = PdfBoxGraphics2DPaintApplier.getPropertyValue(color, "getYellow"); float k = PdfBoxGraphics2DPaintApplier.getPropertyValue(color, "getBlack"); return new PDColor(new float[] { c, m, y, k }, PDDeviceCMYK.INSTANCE); } // Our universial color carrier. if (color instanceof IPdfBoxGraphics2DColor) return ((IPdfBoxGraphics2DColor) color).toPDColor(); float[] components = new float[] { color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f }; return new PDColor(components, PDDeviceRGB.INSTANCE); } } PdfBoxGraphics2DDrawControlDefault.java000066400000000000000000000014401415770645300430720ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import java.awt.*; /** * Default implementation which does nothing. You can derive from it to only * override the needed methods */ public class PdfBoxGraphics2DDrawControlDefault implements IPdfBoxGraphics2DDrawControl { public static final PdfBoxGraphics2DDrawControlDefault INSTANCE = new PdfBoxGraphics2DDrawControlDefault(); protected PdfBoxGraphics2DDrawControlDefault() { } @Override public Shape transformShapeBeforeFill(Shape shape, IDrawControlEnv env) { return shape; } @Override public Shape transformShapeBeforeDraw(Shape shape, IDrawControlEnv env) { return shape; } @Override public void afterShapeFill(Shape shape, IDrawControlEnv env) { } @Override public void afterShapeDraw(Shape shape, IDrawControlEnv env) { } } PdfBoxGraphics2DFontTextDrawer.java000066400000000000000000000713561415770645300422640ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import org.apache.fontbox.ttf.TrueTypeCollection; import org.apache.fontbox.ttf.TrueTypeFont; import org.apache.pdfbox.io.IOUtils; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDType0Font; import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.apache.pdfbox.util.Matrix; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.font.LineMetrics; import java.awt.font.TextAttribute; import java.awt.geom.Rectangle2D; import java.io.*; import java.text.AttributedCharacterIterator; import java.text.CharacterIterator; import java.util.List; import java.util.*; /** * Default implementation to draw fonts. You can reuse instances of this class * within a PDDocument for more then one {@link PdfBoxGraphics2D}. *

* Just ensure that you call close after you closed the PDDocument to free any * temporary files. */ public class PdfBoxGraphics2DFontTextDrawer implements IPdfBoxGraphics2DFontTextDrawer, Closeable { /** * Close / delete all resources associated with this drawer. This mainly means * deleting all temporary files. You can not use this object after a call to * close. *

* Calling close multiple times does nothing. */ @SuppressWarnings("ResultOfMethodCallIgnored") @Override public void close() { for (File tempFile : tempFiles) tempFile.delete(); tempFiles.clear(); fontFiles.clear(); fontMap.clear(); } private static class FontEntry { String overrideName; File file; } private final List fontFiles = new ArrayList(); private final List tempFiles = new ArrayList(); private final Map fontMap = new HashMap(); /** * Register a font. If possible, try to use a font file, i.e. * {@link #registerFont(String, File)}. This method will lead to the creation of * a temporary file which stores the font data. * * @param fontName the name of the font to use. If null, the name is taken from the * font. * @param fontStream the input stream of the font. This file must be a ttf/otf file! * You have to close the stream outside, this method will not close * the stream. * @throws IOException when something goes wrong with reading the font or writing the * font to the content stream of the PDF: */ @SuppressWarnings("WeakerAccess") public void registerFont(String fontName, InputStream fontStream) throws IOException { File fontFile = File.createTempFile("pdfboxgfx2dfont", ".ttf"); FileOutputStream out = new FileOutputStream(fontFile); try { IOUtils.copy(fontStream, out); } finally { out.close(); } fontFile.deleteOnExit(); tempFiles.add(fontFile); registerFont(fontName, fontFile); } /** * Register a font. * * @param fontName the name of the font to use. If null, the name is taken from the * font. * @param fontFile the font file. This file must exist for the live time of this * object, as the font data will be read lazy on demand */ @SuppressWarnings("WeakerAccess") public void registerFont(String fontName, File fontFile) { if (!fontFile.exists()) throw new IllegalArgumentException("Font " + fontFile + " does not exist!"); FontEntry entry = new FontEntry(); entry.overrideName = fontName; entry.file = fontFile; fontFiles.add(entry); } /** * Override for registerFont(null,fontFile) * * @param fontFile the font file */ @SuppressWarnings("WeakerAccess") public void registerFont(File fontFile) { registerFont(null, fontFile); } /** * Override for registerFont(null,fontStream) * * @param fontStream the font file * @throws IOException when something goes wrong with reading the font or writing the * font to the content stream of the PDF: */ @SuppressWarnings("WeakerAccess") public void registerFont(InputStream fontStream) throws IOException { registerFont(null, fontStream); } /** * Register a font which is already associated with the PDDocument * * @param name the name of the font as returned by * {@link java.awt.Font#getFontName()}. This name is used for the * mapping the java.awt.Font to this PDFont. * @param font the PDFont to use. This font must be loaded in the current * document. */ @SuppressWarnings("WeakerAccess") public void registerFont(String name, PDFont font) { fontMap.put(name, font); } /** * @return true if the font mapping is populated on demand. This is usually only * the case if this class has been derived. The default implementation * just checks for this. */ @SuppressWarnings("WeakerAccess") protected boolean hasDynamicFontMapping() { return getClass() != PdfBoxGraphics2DFontTextDrawer.class; } /** * Internal Testflag ot test the not yet working text decoration code. */ private final static boolean ENABLE_EXPERIMENTAL_TEXT_DECORATION = true; @Override public boolean canDrawText(AttributedCharacterIterator iterator, IFontTextDrawerEnv env) throws IOException, FontFormatException { /* * When no font is registered we can not display the text using a font... */ if (fontMap.size() == 0 && fontFiles.size() == 0 && !hasDynamicFontMapping()) return false; boolean run = true; StringBuilder sb = new StringBuilder(); while (run) { Font attributeFont = (Font) iterator.getAttribute(TextAttribute.FONT); if (attributeFont == null) attributeFont = env.getFont(); if (mapFont(attributeFont, env) == null) return false; /* * We can not do a Background on the text currently. */ if (iterator.getAttribute(TextAttribute.BACKGROUND) != null) return false; boolean isStrikeThrough = TextAttribute.STRIKETHROUGH_ON .equals(iterator.getAttribute(TextAttribute.STRIKETHROUGH)); boolean isUnderline = TextAttribute.UNDERLINE_ON .equals(iterator.getAttribute(TextAttribute.UNDERLINE)); boolean isLigatures = TextAttribute.LIGATURES_ON .equals(iterator.getAttribute(TextAttribute.LIGATURES)); if (((isStrikeThrough || isUnderline) && !ENABLE_EXPERIMENTAL_TEXT_DECORATION) || isLigatures) return false; run = iterateRun(iterator, sb); String s = sb.toString(); int l = s.length(); for (int i = 0; i < l; ) { int codePoint = s.codePointAt(i); switch (Character.getDirectionality(codePoint)) { /* * We can handle normal LTR. */ case Character.DIRECTIONALITY_LEFT_TO_RIGHT: case Character.DIRECTIONALITY_EUROPEAN_NUMBER: case Character.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR: case Character.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR: case Character.DIRECTIONALITY_WHITESPACE: case Character.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR: case Character.DIRECTIONALITY_NONSPACING_MARK: case Character.DIRECTIONALITY_BOUNDARY_NEUTRAL: case Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR: case Character.DIRECTIONALITY_SEGMENT_SEPARATOR: case Character.DIRECTIONALITY_OTHER_NEUTRALS: case Character.DIRECTIONALITY_ARABIC_NUMBER: break; case Character.DIRECTIONALITY_RIGHT_TO_LEFT: case Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC: case Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING: case Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE: case Character.DIRECTIONALITY_POP_DIRECTIONAL_FORMAT: /* * We can not handle this */ return false; default: /* * Default: We can not handle this */ return false; } if (!attributeFont.canDisplay(codePoint)) return false; i += Character.charCount(codePoint); } } return true; } private interface ITextDecorationDrawer { void draw(PDPageContentStream stream) throws IOException; } private static class DrawTextDecorationState { public float x; final List drawers = new ArrayList(); } @Override public void drawText(AttributedCharacterIterator iterator, IFontTextDrawerEnv env) throws IOException, FontFormatException { PDPageContentStream contentStream = env.getContentStream(); DrawTextDecorationState drawState = new DrawTextDecorationState(); if (ENABLE_EXPERIMENTAL_TEXT_DECORATION) contentStream.saveGraphicsState(); contentStream.beginText(); Matrix textMatrix = new Matrix(); textMatrix.scale(1, -1); contentStream.setTextMatrix(textMatrix); StringBuilder sb = new StringBuilder(); boolean run = true; while (run) { Font attributeFont = (Font) iterator.getAttribute(TextAttribute.FONT); if (attributeFont == null) attributeFont = env.getFont(); Number fontSize = ((Number) iterator.getAttribute(TextAttribute.SIZE)); if (fontSize != null) attributeFont = attributeFont.deriveFont(fontSize.floatValue()); PDFont font = applyFont(attributeFont, env); Paint paint = (Paint) iterator.getAttribute(TextAttribute.FOREGROUND); if (paint == null) paint = env.getPaint(); boolean isStrikeThrough = TextAttribute.STRIKETHROUGH_ON .equals(iterator.getAttribute(TextAttribute.STRIKETHROUGH)); boolean isUnderline = TextAttribute.UNDERLINE_ON .equals(iterator.getAttribute(TextAttribute.UNDERLINE)); boolean isLigatures = TextAttribute.LIGATURES_ON .equals(iterator.getAttribute(TextAttribute.LIGATURES)); run = iterateRun(iterator, sb); String text = sb.toString(); /* * Apply the paint */ env.applyPaint(paint, null); /* * If we force the text write we may encounter situations where the font can not * display the characters. PDFBox will throw an exception in this case. We will * just silently ignore the text and not display it instead. */ try { showTextOnStream(env, contentStream, attributeFont, font, isStrikeThrough, isUnderline, isLigatures, drawState, paint, text); } catch (IllegalArgumentException e) { if (font instanceof PDType1Font && !font.isEmbedded()) { /* * We tried to use a builtin default font, but it does not have the needed * characters. So we use a embedded font as fallback. */ try { if (fallbackFontUnknownEncodings == null) fallbackFontUnknownEncodings = findFallbackFont(env); if (fallbackFontUnknownEncodings != null) { env.getContentStream().setFont(fallbackFontUnknownEncodings, attributeFont.getSize2D()); showTextOnStream(env, contentStream, attributeFont, fallbackFontUnknownEncodings, isStrikeThrough, isUnderline, isLigatures, drawState, paint, text); e = null; } } catch (IllegalArgumentException e1) { e = e1; } } if (e != null) System.err.println("PDFBoxGraphics: Can not map text " + text + " with font " + attributeFont.getFontName() + ": " + e.getMessage()); } } contentStream.endText(); if (ENABLE_EXPERIMENTAL_TEXT_DECORATION) contentStream.restoreGraphicsState(); if (!drawState.drawers.isEmpty()) { contentStream.saveGraphicsState(); contentStream.transform(textMatrix); for (ITextDecorationDrawer drawer : drawState.drawers) { drawer.draw(contentStream); } contentStream.restoreGraphicsState(); } } @Override public FontMetrics getFontMetrics(final Font f, IFontTextDrawerEnv env) throws IOException, FontFormatException { final FontMetrics defaultMetrics = env.getCalculationGraphics().getFontMetrics(f); final PDFont pdFont = mapFont(f, env); /* * By default we delegate to the buffered image based calculation. This is wrong * as soon as we use the native PDF Box font, as those have sometimes different widths. * * But it is correct and fine as long as we use vector shapes. */ if (pdFont == null) return defaultMetrics; return new FontMetrics(f) { public int getDescent() { return defaultMetrics.getDescent(); } public int getHeight() { return defaultMetrics.getHeight(); } public int getMaxAscent() { return defaultMetrics.getMaxAscent(); } public int getMaxDescent() { return defaultMetrics.getMaxDescent(); } public boolean hasUniformLineMetrics() { return defaultMetrics.hasUniformLineMetrics(); } public LineMetrics getLineMetrics(String str, Graphics context) { return defaultMetrics.getLineMetrics(str, context); } public LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context) { return defaultMetrics.getLineMetrics(str, beginIndex, limit, context); } public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context) { return defaultMetrics.getLineMetrics(chars, beginIndex, limit, context); } public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context) { return defaultMetrics.getLineMetrics(ci, beginIndex, limit, context); } public Rectangle2D getStringBounds(String str, Graphics context) { return defaultMetrics.getStringBounds(str, context); } public Rectangle2D getStringBounds(String str, int beginIndex, int limit, Graphics context) { return defaultMetrics.getStringBounds(str, beginIndex, limit, context); } public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, Graphics context) { return defaultMetrics.getStringBounds(chars, beginIndex, limit, context); } public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, Graphics context) { return defaultMetrics.getStringBounds(ci, beginIndex, limit, context); } public Rectangle2D getMaxCharBounds(Graphics context) { return defaultMetrics.getMaxCharBounds(context); } @Override public int getAscent() { return defaultMetrics.getAscent(); } @Override public int getMaxAdvance() { return defaultMetrics.getMaxAdvance(); } @Override public int getLeading() { return defaultMetrics.getLeading(); } @Override public FontRenderContext getFontRenderContext() { return defaultMetrics.getFontRenderContext(); } @Override public int charWidth(char ch) { char[] chars = { ch }; return charsWidth(chars, 0, chars.length); } @Override public int charWidth(int codePoint) { char[] data = Character.toChars(codePoint); return charsWidth(data, 0, data.length); } @Override public int charsWidth(char[] data, int off, int len) { return stringWidth(new String(data, off, len)); } @Override public int stringWidth(String str) { try { return (int) (pdFont.getStringWidth(str) / 1000 * f.getSize2D()); } catch (IOException e) { throw new RuntimeException(e); } catch (IllegalArgumentException e) { /* * We let unknown chars be handled with */ return defaultMetrics.stringWidth(str); } } @Override public int[] getWidths() { try { int[] first256Widths = new int[256]; for (int i = 0; i < first256Widths.length; i++) first256Widths[i] = (int) (pdFont.getWidth(i) / 1000 * f.getSize()); return first256Widths; } catch (IOException e) { throw new RuntimeException(e); } } }; } private PDFont fallbackFontUnknownEncodings; private PDFont findFallbackFont(IFontTextDrawerEnv env) throws IOException { /* * We search for the right font in the system folders... We try to use * LucidaSansRegular and if not found Arial, because this fonts often exists. We * use the Java default font as fallback. * * Normally this method is only used and called if a default font misses some * special characters, e.g. Hebrew or Arabic characters. */ String javaHome = System.getProperty("java.home", "."); String javaFontDir = javaHome + "/lib/fonts"; String windir = System.getenv("WINDIR"); if (windir == null) windir = javaFontDir; File[] paths = new File[] { new File(new File(windir), "fonts"), new File(System.getProperty("user.dir", ".")), // Mac Fonts new File("/Library/Fonts"), new File("/System/Library/Fonts/Supplemental/"), // Unix Fonts new File("/usr/share/fonts/truetype"), new File("/usr/share/fonts/truetype/dejavu"), new File("/usr/share/fonts/truetype/liberation"), new File("/usr/share/fonts/truetype/noto"), new File(javaFontDir) }; for (String fontFileName : new String[] { "LucidaSansRegular.ttf", "arial.ttf", "Arial.ttf", "DejaVuSans.ttf", "LiberationMono-Regular.ttf", "NotoSerif-Regular.ttf", "Arial Unicode.ttf", "Tahoma.ttf" }) { for (File path : paths) { File arialFile = new File(path, fontFileName); if (arialFile.exists()) { // We try to use the first font we can find and use. PDType0Font pdType0Font = tryToLoadFont(env, arialFile); if (pdType0Font != null) return pdType0Font; } } } return null; } private PDType0Font tryToLoadFont(IFontTextDrawerEnv env, File foundFontFile) throws IOException { try { return PDType0Font.load(env.getDocument(), foundFontFile); } catch (IOException e) { // The font may be have a embed restriction. return null; } } private static final boolean DEBUG_BOX = false; private void showTextOnStream(final IFontTextDrawerEnv env, final PDPageContentStream contentStream, final Font attributeFont, final PDFont font, final boolean isStrikeThrough, final boolean isUnderline, boolean isLigatures, DrawTextDecorationState drawState, final Paint paint, String text) throws IOException { // noinspection StatementWithEmptyBody if (isLigatures) { /* * No idea how to map this ... */ } contentStream.showText(text); final float stringWidth = (font.getStringWidth(text) / 1000f) * attributeFont.getSize2D(); if ((isStrikeThrough || isUnderline) && ENABLE_EXPERIMENTAL_TEXT_DECORATION) { final LineMetrics lineMetrics = attributeFont .getLineMetrics(text, env.getFontRenderContext()); final float ourX = drawState.x; drawState.drawers.add(new ITextDecorationDrawer() { @Override public void draw(PDPageContentStream stream) throws IOException { float height = lineMetrics.getHeight(); float pdFontHeight = font.getBoundingBox().getHeight() / 1000 * attributeFont.getSize2D(); float scale = pdFontHeight / height; float decent = lineMetrics.getDescent(); if (DEBUG_BOX) { env.applyStroke(new BasicStroke(1)); env.applyPaint(new Color(0x5F2F13F2), new Rectangle.Float(ourX, -decent * scale, stringWidth, height * scale)); contentStream.addRect(ourX, -decent * scale, stringWidth, height / scale); contentStream.stroke(); } env.applyPaint(paint, new Rectangle.Float(ourX, -decent * scale, stringWidth, height * scale)); float baseline = lineMetrics.getBaselineOffsets()[lineMetrics .getBaselineIndex()]; if (isStrikeThrough) { env.applyStroke(new BasicStroke( getSensibleThickness(lineMetrics.getStrikethroughThickness(), attributeFont))); float strikethroughOffset = scale * (baseline + lineMetrics.getStrikethroughOffset()); contentStream.moveTo(ourX, -strikethroughOffset); contentStream.lineTo(ourX + stringWidth, -strikethroughOffset); contentStream.stroke(); } if (isUnderline) { env.applyStroke(new BasicStroke( getSensibleThickness(lineMetrics.getUnderlineThickness(), attributeFont))); float underlineOffset = scale * (baseline + lineMetrics.getUnderlineOffset()); contentStream.moveTo(ourX, -underlineOffset); contentStream.lineTo(ourX + stringWidth, -underlineOffset); contentStream.stroke(); } } }); } drawState.x += stringWidth; } private float getSensibleThickness(float thickness, Font font) { if (thickness < 0.00001f) return .04f * font.getSize2D(); return thickness; } private PDFont applyFont(Font font, IFontTextDrawerEnv env) throws IOException, FontFormatException { PDFont fontToUse = mapFont(font, env); if (fontToUse == null) { /* * If we have no font but are forced to apply a font, we just use the default * builtin PDF font... */ fontToUse = PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingHelvetica(font); } env.getContentStream().setFont(fontToUse, font.getSize2D()); return fontToUse; } /** * Try to map the java.awt.Font to a PDFont. * * @param font the java.awt.Font for which a mapping should be found * @param env environment of the font mapper * @return the PDFont or null if none can be found. * @throws IOException when the font can not be loaded * @throws FontFormatException when the font file can not be loaded */ @SuppressWarnings("WeakerAccess") protected PDFont mapFont(final Font font, final IFontTextDrawerEnv env) throws IOException, FontFormatException { /* * If we have any font registering's, we must perform them now */ for (final FontEntry fontEntry : fontFiles) { if (fontEntry.overrideName == null) { Font javaFont = Font.createFont(Font.TRUETYPE_FONT, fontEntry.file); fontEntry.overrideName = javaFont.getFontName(); } if (fontEntry.file.getName().toLowerCase(Locale.US).endsWith(".ttc")) { TrueTypeCollection collection = new TrueTypeCollection(fontEntry.file); collection.processAllFonts(new TrueTypeCollection.TrueTypeFontProcessor() { @Override public void process(TrueTypeFont ttf) throws IOException { PDFont pdFont = PDType0Font.load(env.getDocument(), ttf, true); fontMap.put(fontEntry.overrideName, pdFont); fontMap.put(pdFont.getName(), pdFont); } }); } else { /* * We load the font using the file. */ PDFont pdFont = PDType0Font.load(env.getDocument(), fontEntry.file); fontMap.put(fontEntry.overrideName, pdFont); } } fontFiles.clear(); return fontMap.get(font.getFontName()); } private boolean iterateRun(AttributedCharacterIterator iterator, StringBuilder sb) { sb.setLength(0); int charCount = iterator.getRunLimit() - iterator.getRunStart(); while (charCount-- > 0) { char c = iterator.current(); iterator.next(); if (c == AttributedCharacterIterator.DONE) { return false; } else { sb.append(c); } } return (iterator.getIndex() < iterator.getRunLimit()); } } PdfBoxGraphics2DFontTextDrawerDefaultFonts.java000066400000000000000000000100651415770645300445710ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDType1Font; import java.awt.*; import java.io.IOException; /** * Like {@link PdfBoxGraphics2DFontTextDrawer}, but tries to use default fonts * whenever possible. Default fonts are not embedded. You can register * additional font files. If no font mapping is found, Helvetica is used. * * This will fallback to vectorized text if any kind of RTL text is rendered * and/or any other not supported feature is used. */ public class PdfBoxGraphics2DFontTextDrawerDefaultFonts extends PdfBoxGraphics2DFontTextDrawer { @Override protected PDFont mapFont(Font font, IFontTextDrawerEnv env) throws IOException, FontFormatException { PDFont pdFont = mapDefaultFonts(font); if (pdFont != null) return pdFont; /* * Do we have a manual registered mapping with a font file? */ pdFont = super.mapFont(font, env); if (pdFont != null) return pdFont; return chooseMatchingHelvetica(font); } /** * Find a PDFont for the given font object, which does not need to be embedded. * * @param font * font for which to find a suitable default font * @return null if no default font is found or a default font which does not * need to be embedded. */ public static PDFont mapDefaultFonts(Font font) { /* * Map default font names to the matching families. */ if (fontNameEqualsAnyOf(font, Font.SANS_SERIF, Font.DIALOG, Font.DIALOG_INPUT, "Arial", "Helvetica")) return chooseMatchingHelvetica(font); if (fontNameEqualsAnyOf(font, Font.MONOSPACED, "courier", "courier new")) return chooseMatchingCourier(font); if (fontNameEqualsAnyOf(font, Font.SERIF, "Times", "Times New Roman", "Times Roman")) return chooseMatchingTimes(font); if (fontNameEqualsAnyOf(font, "Symbol")) return PDType1Font.SYMBOL; if (fontNameEqualsAnyOf(font, "ZapfDingbats", "Dingbats")) return PDType1Font.ZAPF_DINGBATS; return null; } private static boolean fontNameEqualsAnyOf(Font font, String... names) { String name = font.getName(); for (String fontName : names) { if (fontName.equalsIgnoreCase(name)) return true; } return false; } /** * Get a PDType1Font.TIMES-variant, which matches the given font * * @param font * Font to get the styles from * @return a PDFont Times variant which matches the style in the given Font * object. */ public static PDFont chooseMatchingTimes(Font font) { if ((font.getStyle() & (Font.ITALIC | Font.BOLD)) == (Font.ITALIC | Font.BOLD)) return PDType1Font.TIMES_BOLD_ITALIC; if ((font.getStyle() & Font.ITALIC) == Font.ITALIC) return PDType1Font.TIMES_ITALIC; if ((font.getStyle() & Font.BOLD) == Font.BOLD) return PDType1Font.TIMES_BOLD; return PDType1Font.TIMES_ROMAN; } /** * Get a PDType1Font.COURIER-variant, which matches the given font * * @param font * Font to get the styles from * @return a PDFont Courier variant which matches the style in the given Font * object. */ public static PDFont chooseMatchingCourier(Font font) { if ((font.getStyle() & (Font.ITALIC | Font.BOLD)) == (Font.ITALIC | Font.BOLD)) return PDType1Font.COURIER_BOLD_OBLIQUE; if ((font.getStyle() & Font.ITALIC) == Font.ITALIC) return PDType1Font.COURIER_OBLIQUE; if ((font.getStyle() & Font.BOLD) == Font.BOLD) return PDType1Font.COURIER_BOLD; return PDType1Font.COURIER; } /** * Get a PDType1Font.HELVETICA-variant, which matches the given font * * @param font * Font to get the styles from * @return a PDFont Helvetica variant which matches the style in the given Font * object. */ public static PDFont chooseMatchingHelvetica(Font font) { if ((font.getStyle() & (Font.ITALIC | Font.BOLD)) == (Font.ITALIC | Font.BOLD)) return PDType1Font.HELVETICA_BOLD_OBLIQUE; if ((font.getStyle() & Font.ITALIC) == Font.ITALIC) return PDType1Font.HELVETICA_OBLIQUE; if ((font.getStyle() & Font.BOLD) == Font.BOLD) return PDType1Font.HELVETICA_BOLD; return PDType1Font.HELVETICA; } } PdfBoxGraphics2DFontTextForcedDrawer.java000066400000000000000000000006201415770645300433710ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import java.text.AttributedCharacterIterator; /** * Always draw using text, even if we know that we can not map the text correct */ public class PdfBoxGraphics2DFontTextForcedDrawer extends PdfBoxGraphics2DFontTextDrawerDefaultFonts { @Override public boolean canDrawText(AttributedCharacterIterator iterator, IFontTextDrawerEnv env) { return true; } } PdfBoxGraphics2DLosslessImageEncoder.java000066400000000000000000000124261415770645300434070ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace; import org.apache.pdfbox.pdmodel.graphics.color.PDICCBased; import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import java.awt.*; import java.awt.color.ColorSpace; import java.awt.color.ICC_ColorSpace; import java.awt.color.ICC_Profile; import java.awt.image.BufferedImage; import java.io.IOException; import java.lang.ref.SoftReference; import java.util.HashMap; import java.util.Map; /** * Encodes all images using lossless compression. Tries to reuse images as much * as possible. You can share an instance of this class with multiple * PdfBoxGraphics2D objects. */ public class PdfBoxGraphics2DLosslessImageEncoder implements IPdfBoxGraphics2DImageEncoder { private Map> imageMap = new HashMap>(); private Map> profileMap = new HashMap>(); private SoftReference doc; @Override public PDImageXObject encodeImage(PDDocument document, PDPageContentStream contentStream, Image image) { final BufferedImage bi; if (image instanceof BufferedImage) { bi = (BufferedImage) image; } else { int width = image.getWidth(null); int height = image.getHeight(null); bi = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); Graphics graphics = bi.getGraphics(); if (!graphics.drawImage(image, 0, 0, null, null)) throw new IllegalStateException("Not fully loaded images are not supported."); graphics.dispose(); } try { if (doc == null || doc.get() != document) { imageMap = new HashMap>(); profileMap = new HashMap>(); doc = new SoftReference(document); } SoftReference pdImageXObjectSoftReference = imageMap.get(new ImageSoftReference(image)); PDImageXObject imageXObject = pdImageXObjectSoftReference == null ? null : pdImageXObjectSoftReference.get(); if (imageXObject == null) { imageXObject = LosslessFactory.createFromImage(document, bi); /* * Do we have a color profile we need to embed? */ if (bi.getColorModel().getColorSpace() instanceof ICC_ColorSpace) { ICC_Profile profile = ((ICC_ColorSpace) bi.getColorModel().getColorSpace()).getProfile(); /* * Only tag a profile if it is not the default sRGB profile. */ if (((ICC_ColorSpace) bi.getColorModel().getColorSpace()).getProfile() != ICC_Profile .getInstance(ColorSpace.CS_sRGB)) { SoftReference pdProfileRef = profileMap.get(new ProfileSoftReference(profile)); /* * We try to reduce the copies of the same ICC profile in the PDF file. If the * image already has a profile, it will be the right one. Otherwise we must * assume that the image is now in sRGB. */ PDColorSpace pdProfile = pdProfileRef == null ? null : pdProfileRef.get(); if (pdProfile == null) { pdProfile = imageXObject.getColorSpace(); if (pdProfile instanceof PDICCBased) { profileMap.put(new ProfileSoftReference(profile), new SoftReference(pdProfile)); } } imageXObject.setColorSpace(pdProfile); } } imageMap.put(new ImageSoftReference(image), new SoftReference(imageXObject)); } return imageXObject; } catch (IOException e) { throw new RuntimeException("Could not encode Image", e); } } private static class ImageSoftReference extends SoftReference { ImageSoftReference(Image referent) { super(referent); } @Override public boolean equals(Object obj) { if (obj == null) return false; assert obj instanceof ImageSoftReference; return ((ImageSoftReference) obj).get() == get(); } @Override public int hashCode() { Image image = get(); if (image == null) return 0; return image.hashCode(); } } private static class ProfileSoftReference extends SoftReference { ProfileSoftReference(ICC_Profile referent) { super(referent); } @Override public boolean equals(Object obj) { if (obj == null) return false; assert obj instanceof ProfileSoftReference; return ((ProfileSoftReference) obj).get() == get(); } @Override public int hashCode() { ICC_Profile image = get(); if (image == null) return 0; return image.hashCode(); } } } PdfBoxGraphics2DPaintApplier.java000066400000000000000000001154531415770645300417310ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.cos.*; import org.apache.pdfbox.multipdf.PDFCloneUtility; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.common.COSObjectable; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.common.function.PDFunctionType3; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace; import org.apache.pdfbox.pdmodel.graphics.color.PDPattern; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import org.apache.pdfbox.pdmodel.graphics.pattern.PDTilingPattern; import org.apache.pdfbox.pdmodel.graphics.shading.PDShading; import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType3; import org.apache.pdfbox.pdmodel.graphics.shading.ShadingPaint; import org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState; import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceStream; import org.apache.pdfbox.util.Matrix; import java.awt.*; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.lang.reflect.Method; import java.util.List; import java.util.*; /** * Default paint mapper. *

* NOTE: Objects of this class are stateful and *not* thread safe! */ public class PdfBoxGraphics2DPaintApplier implements IPdfBoxGraphics2DPaintApplier { @SuppressWarnings("WeakerAccess") protected static class PaintApplierState { protected PDDocument document; protected PDPageContentStream contentStream; @SuppressWarnings("WeakerAccess") protected IPdfBoxGraphics2DColorMapper colorMapper; @SuppressWarnings("WeakerAccess") protected IPdfBoxGraphics2DImageEncoder imageEncoder; @SuppressWarnings("WeakerAccess") protected PDResources resources; @SuppressWarnings("WeakerAccess") protected PDExtendedGraphicsState pdExtendedGraphicsState; @SuppressWarnings("WeakerAccess") protected Composite composite; private COSDictionary dictExtendedState; private IPaintEnv env; public AffineTransform tf; /** * This transform is only set, when we apply a nested * paint (e.g. a TilingPattern's paint) */ protected AffineTransform nestedTransform; private void ensureExtendedState() { if (pdExtendedGraphicsState == null) { this.dictExtendedState = new COSDictionary(); this.dictExtendedState.setItem(COSName.TYPE, COSName.EXT_G_STATE); pdExtendedGraphicsState = new PDExtendedGraphicsState(this.dictExtendedState); } assert pdExtendedGraphicsState != null; } } private final ExtGStateCache extGStateCache = new ExtGStateCache(); private final PDShadingCache shadingCache = new PDShadingCache(); @Override public PDShading applyPaint(Paint paint, PDPageContentStream contentStream, AffineTransform tf, IPaintEnv env) throws IOException { PaintApplierState state = new PaintApplierState(); state.document = env.getDocument(); state.resources = env.getResources(); state.contentStream = contentStream; state.colorMapper = env.getColorMapper(); state.imageEncoder = env.getImageEncoder(); state.composite = env.getComposite(); state.pdExtendedGraphicsState = null; state.env = env; state.tf = tf; state.nestedTransform = null; PDShading shading = applyPaint(paint, state); if (state.pdExtendedGraphicsState != null) contentStream.setGraphicsStateParameters( extGStateCache.makeUnqiue(state.pdExtendedGraphicsState)); return shading; } @SuppressWarnings("WeakerAccess") protected void applyAsStrokingColor(Color color, PaintApplierState state) throws IOException { PDPageContentStream contentStream = state.contentStream; IPdfBoxGraphics2DColorMapper colorMapper = state.colorMapper; contentStream.setStrokingColor(colorMapper.mapColor(contentStream, color)); contentStream.setNonStrokingColor(colorMapper.mapColor(contentStream, color)); int alpha = color.getAlpha(); if (alpha < 255) { /* * This is semitransparent */ state.ensureExtendedState(); Float strokingAlphaConstant = state.pdExtendedGraphicsState.getStrokingAlphaConstant(); if (strokingAlphaConstant == null) strokingAlphaConstant = 1f; state.pdExtendedGraphicsState .setStrokingAlphaConstant(strokingAlphaConstant * (alpha / 255f)); Float nonStrokingAlphaConstant = state.pdExtendedGraphicsState .getNonStrokingAlphaConstant(); if (nonStrokingAlphaConstant == null) nonStrokingAlphaConstant = 1f; state.pdExtendedGraphicsState .setNonStrokingAlphaConstant(nonStrokingAlphaConstant * (alpha / 255f)); } if (color instanceof IPdfBoxGraphics2DColor) { if (((IPdfBoxGraphics2DColor) color).isOverprint()) { state.ensureExtendedState(); state.pdExtendedGraphicsState.setOverprintMode(1.0f); state.pdExtendedGraphicsState.setNonStrokingOverprintControl(true); state.pdExtendedGraphicsState.setStrokingOverprintControl(true); } } } private PDShading applyPaint(Paint paint, PaintApplierState state) throws IOException { applyComposite(state); /* * We can not apply not existing paints */ if (paint == null) return null; String simpleName = paint.getClass().getSimpleName(); if (paint instanceof Color) { applyAsStrokingColor((Color) paint, state); } else if (simpleName.equals("LinearGradientPaint")) { return shadingCache.makeUnqiue(buildLinearGradientShading(paint, state)); } else if (simpleName.equals("RadialGradientPaint")) { return shadingCache.makeUnqiue(buildRadialGradientShading(paint, state)); } else if (simpleName.equals("PatternPaint")) { applyPatternPaint(paint, state); } else if (simpleName.equals("TilingPaint")) { applyPdfBoxTilingPaint(paint, state); } else if (paint instanceof GradientPaint) { return shadingCache.makeUnqiue(buildGradientShading((GradientPaint) paint, state)); } else if (paint instanceof TexturePaint) { applyTexturePaint((TexturePaint) paint, state); } else if (paint instanceof ShadingPaint) { // PDFBox paint, we can import the shading directly return shadingCache .makeUnqiue(importPDFBoxShadingPaint((ShadingPaint) paint, state)); } else { System.err.printf("Don't know paint %s" , paint.getClass().getName()); } return null; } private PDShading importPDFBoxShadingPaint(ShadingPaint paint, PaintApplierState state) throws IOException { /* * Before cloning the shading paint we must ensure that we have already walked the shape */ state.env.ensureShapeIsWalked(); PDFCloneUtility pdfCloneUtility = new PDFCloneUtility(state.document); Matrix matrix = paint.getMatrix(); PDShading shading = paint.getShading(); state.contentStream.transform(matrix); return PDShading.create((COSDictionary) pdfCloneUtility .cloneForNewDocument(shading.getCOSObject())); } /* * Batik SVG Pattern Paint */ private void applyPatternPaint(Paint paint, PaintApplierState state) throws IOException { Rectangle2D anchorRect = getPropertyValue(paint, "getPatternRect"); AffineTransform paintPatternTransform = getPropertyValue(paint, "getPatternTransform"); PDTilingPattern pattern = new PDTilingPattern(); pattern.setPaintType(PDTilingPattern.PAINT_COLORED); pattern.setTilingType(PDTilingPattern.TILING_CONSTANT_SPACING_FASTER_TILING); pattern.setBBox(new PDRectangle((float) anchorRect.getX(), (float) anchorRect.getY(), (float) anchorRect.getWidth(), (float) anchorRect.getHeight())); pattern.setXStep((float) anchorRect.getWidth()); pattern.setYStep((float) anchorRect.getHeight()); AffineTransform patternTransform = new AffineTransform(); if (paintPatternTransform != null) { paintPatternTransform = new AffineTransform(paintPatternTransform); paintPatternTransform.preConcatenate(state.tf); patternTransform.concatenate(paintPatternTransform); } else patternTransform.concatenate(state.tf); patternTransform.scale(1f, -1f); pattern.setMatrix(patternTransform); PDAppearanceStream appearance = new PDAppearanceStream(state.document); appearance.setResources(pattern.getResources()); appearance.setBBox(pattern.getBBox()); Object graphicsNode = getPropertyValue(paint, "getGraphicsNode"); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(state.document, pattern.getBBox(), state.env.getGraphics2D()); try { Method paintMethod = graphicsNode.getClass().getMethod("paint", Graphics2D.class); paintMethod.invoke(graphicsNode, pdfBoxGraphics2D); } catch (Exception e) { System.err .printf("PdfBoxGraphics2DPaintApplier error while drawing Batik PatternPaint %s", e.getMessage()); return; } pdfBoxGraphics2D.dispose(); PDFormXObject xFormObject = pdfBoxGraphics2D.getXFormObject(); PDPageContentStream imageContentStream = new PDPageContentStream(state.document, appearance, ((COSStream) pattern.getCOSObject()).createOutputStream()); imageContentStream.drawForm(xFormObject); imageContentStream.close(); PDColorSpace patternCS1 = new PDPattern(null); COSName tilingPatternName = state.resources.add(pattern); PDColor patternColor = new PDColor(tilingPatternName, patternCS1); state.contentStream.setNonStrokingColor(patternColor); state.contentStream.setStrokingColor(patternColor); } /* * Apache PDFBox Tiling Paint */ private void applyPdfBoxTilingPaint(Paint paint, PaintApplierState state) { try { Paint tilingPaint = PrivateFieldAccessor.getPrivateField(paint, "paint"); Matrix patternMatrix = PrivateFieldAccessor.getPrivateField(paint, "patternMatrix"); state.nestedTransform = patternMatrix.createAffineTransform(); applyPaint(tilingPaint, state); } catch (Exception e) { System.err.printf("PdfBoxGraphics2DPaintApplier error while drawing Tiling Paint %s", e.getMessage()); } } private void applyComposite(PaintApplierState state) { /* * If we don't have a composite we don't need to do any mapping */ if (state.composite == null) return; // Possibly set the alpha constant float alpha = 1; COSName blendMode = COSName.COMPATIBLE; int rule = AlphaComposite.SRC; if (state.composite instanceof AlphaComposite) { AlphaComposite composite = (AlphaComposite) state.composite; alpha = composite.getAlpha(); rule = composite.getRule(); } else if (state.composite.getClass().getSimpleName().equals("SVGComposite")) { /* * Batik Composite */ alpha = getPropertyValue(state.composite, "alpha"); rule = getPropertyValue(state.composite, "rule"); } else { System.err.printf("Unknown composite %s", state.composite.getClass().getSimpleName()); } state.ensureExtendedState(); if (alpha < 1) { assert state.pdExtendedGraphicsState != null; state.pdExtendedGraphicsState.setStrokingAlphaConstant(alpha); state.pdExtendedGraphicsState.setNonStrokingAlphaConstant(alpha); } /* * Try to map the alpha rule into blend modes */ switch (rule) { case AlphaComposite.CLEAR: break; case AlphaComposite.SRC: blendMode = COSName.NORMAL; break; case AlphaComposite.SRC_OVER: blendMode = COSName.COMPATIBLE; break; case AlphaComposite.XOR: blendMode = COSName.EXCLUSION; break; case AlphaComposite.DST: break; case AlphaComposite.DST_ATOP: break; case AlphaComposite.SRC_ATOP: blendMode = COSName.COMPATIBLE; break; case AlphaComposite.DST_IN: break; case AlphaComposite.DST_OUT: break; case AlphaComposite.SRC_IN: break; case AlphaComposite.SRC_OUT: break; case AlphaComposite.DST_OVER: break; } state.dictExtendedState.setItem(COSName.BM, blendMode); } private Point2D clonePoint(Point2D point2D) { return new Point2D.Double(point2D.getX(), point2D.getY()); } /** * Very small number, everything smaller than this is zero for us. */ private static final double EPSILON = 0.00001; private PDShading buildLinearGradientShading(Paint paint, PaintApplierState state) throws IOException { /* * Batik has a copy of RadialGradientPaint, but it has the same structure as the AWT RadialGradientPaint. So we use * Reflection to access the fields of both these classes. */ boolean isBatikGradient = paint.getClass().getPackage().getName() .equals("org.apache.batik.ext.awt"); boolean isObjectBoundingBox = false; if (isBatikGradient) { AffineTransform gradientTransform = getPropertyValue(paint, "getTransform"); if (!gradientTransform.isIdentity()) { /* * If the scale is not square, we need to use the object bounding box logic */ if (Math.abs(gradientTransform.getScaleX() - gradientTransform.getScaleY()) > EPSILON) isObjectBoundingBox = true; } } /* * When doing a shading paint, we need to always walk the shape first. */ state.env.ensureShapeIsWalked(); if (isObjectBoundingBox) { return linearGradientObjectBoundingBoxShading(paint, state); } else { return linearGradientUserSpaceOnUseShading(paint, state); } } private PDShading linearGradientObjectBoundingBoxShading(Paint paint, PaintApplierState state) throws IOException { /* * I found this Stack Overflow question to be useful: https://stackoverflow.com/questions/50617275/svg-linear-gradients- * objectboundingbox-vs-userspaceonuse SVG has 2 different gradient display modes objectBoundingBox & userSpaceOnUse The * default is objectBoundingBox. PDF Axial gradients seem to be capable of displaying in any manner, but the default is * the normal rendered at a 90 degree angle from the gradient vector. This looks like an SVG in userSpaceOnUse mode. So * the task becomes how can we map the default of one format to a non-default mode in another so that the PDF an axial * gradient looks like an SVG with a linear gradient. * * The approach I've used is as follows: Draw the axial gradient on a 1x1 box. A perfect square is a special case where * the PDF defaults display matches the SVG default display. Then, use the gradient transform attached to the paint to * warp the space containing the box & distort it to a larger rectangle (which may, or may not, still be a square). This * makes the gradient in the PDF look like the gradient in an SVG if the SVG is using the objectBoundingBox mode. * * Note: there is some trickery with shape inversion because SVGs lay out from the top down & PDFs lay out from the * bottom up. */ PDShadingType3 shading = setupBasicLinearShading(paint, state); Point2D startPoint = clonePoint((Point2D.Double) getPropertyValue(paint, "getStartPoint")); Point2D endPoint = clonePoint((Point2D.Double) getPropertyValue(paint, "getEndPoint")); AffineTransform gradientTransform = getPropertyValue(paint, "getTransform"); state.tf.concatenate(gradientTransform); // noinspection unused MultipleGradientPaint.CycleMethod cycleMethod = getCycleMethod(paint); // noinspection unused MultipleGradientPaint.ColorSpaceType colorSpaceType = getColorSpaceType(paint); // Note: all of the start and end points I've seen for linear gradients // that use the objectBoundingBox mode define a 1x1 box. I don't know if // this can be guaranteed. setupShadingCoords(shading, startPoint, endPoint); // We need the rectangle here so that the call to clip(useEvenOdd) // in PdfBoxGraphics2D.java clips to the right frame of reference // // Note: tricky stuff follows . . . // We're deliberately creating a bounding box with a negative height. // Why? Because that contentsStream.transform() is going to invert it // so that it has a positive height. It will always invert because // SVGs & PDFs have opposite layout directions. // If we started with a positive height, then inverted to a negative height // we end up with a negative height clipping box in the output PDF // and some PDF viewers cannot handle that. // e.g. Adobe acrobat will display the PDF one way & Mac Preview // will display it another. float calculatedX = (float) Math.min(startPoint.getX(), endPoint.getX()); float calculatedY = (float) Math.max(1.0f, Math.max(startPoint.getY(), endPoint.getY())); float calculatedWidth = Math .max(1.0f, Math.abs((float) (endPoint.getX() - startPoint.getX()))); float negativeHeight = -1.0f * Math.max(1.0f, Math.abs((float) (endPoint.getY() - startPoint.getY()))); state.contentStream.addRect(calculatedX, calculatedY, calculatedWidth, negativeHeight); state.env.getGraphics2D().markPathIsOnStream(); state.env.getGraphics2D().internalClip(false); // Warp the 1x1 box containing the gradient to fill a larger rectangular space state.contentStream.transform(new Matrix(state.tf)); return shading; } private void setupShadingCoords(PDShadingType3 shading, Point2D startPoint, Point2D endPoint) { COSArray coords = new COSArray(); coords.add(new COSFloat((float) startPoint.getX())); coords.add(new COSFloat((float) startPoint.getY())); coords.add(new COSFloat((float) endPoint.getX())); coords.add(new COSFloat((float) endPoint.getY())); shading.setCoords(coords); } /** * This is the default gradient mode for both SVG and java.awt gradients. */ private PDShading linearGradientUserSpaceOnUseShading(Paint paint, PaintApplierState state) throws IOException { PDShadingType3 shading = setupBasicLinearShading(paint, state); Point2D startPoint = clonePoint((Point2D.Double) getPropertyValue(paint, "getStartPoint")); Point2D endPoint = clonePoint((Point2D.Double) getPropertyValue(paint, "getEndPoint")); AffineTransform gradientTransform = getPropertyValue(paint, "getTransform"); state.tf.concatenate(gradientTransform); // noinspection unused MultipleGradientPaint.CycleMethod cycleMethod = getCycleMethod(paint); // noinspection unused MultipleGradientPaint.ColorSpaceType colorSpaceType = getColorSpaceType(paint); state.tf.transform(startPoint, startPoint); state.tf.transform(endPoint, endPoint); setupShadingCoords(shading, startPoint, endPoint); return shading; } private PDShadingType3 setupBasicLinearShading(Paint paint, PaintApplierState state) throws IOException { PDShadingType3 shading = new PDShadingType3(new COSDictionary()); Color[] colors = getPropertyValue(paint, "getColors"); Color firstColor = colors[0]; PDColor firstColorMapped = state.colorMapper.mapColor(state.contentStream, firstColor); applyAsStrokingColor(firstColor, state); float[] fractions = getPropertyValue(paint, "getFractions"); PDFunctionType3 type3 = buildType3Function(colors, fractions, state); shading.setAntiAlias(true); shading.setShadingType(PDShading.SHADING_TYPE2); shading.setColorSpace(firstColorMapped.getColorSpace()); shading.setFunction(type3); shading.setExtend(setupExtends()); return shading; } private COSArray setupExtends() { COSArray extend = new COSArray(); /* * We need to always extend the gradient */ extend.add(COSBoolean.TRUE); extend.add(COSBoolean.TRUE); return extend; } /** * Map the cycleMethod of the GradientPaint to the java.awt.MultipleGradientPaint.CycleMethod enum. * * @param paint the paint to get the cycleMethod from (if not in any other way possible using reflection) * @return the CycleMethod */ private MultipleGradientPaint.CycleMethod getCycleMethod(Paint paint) { if (paint instanceof java.awt.MultipleGradientPaint) return ((MultipleGradientPaint) paint).getCycleMethod(); if (paint.getClass().getPackage().getName().equals("org.apache.batik.ext.awt")) { setupBatikReflectionAccess(paint); Object cycleMethod = getPropertyValue(paint, "getCycleMethod"); if (cycleMethod == BATIK_GRADIENT_NO_CYCLE) return MultipleGradientPaint.CycleMethod.NO_CYCLE; if (cycleMethod == BATIK_GRADIENT_REFLECT) return MultipleGradientPaint.CycleMethod.REFLECT; if (cycleMethod == BATIK_GRADIENT_REPEAT) return MultipleGradientPaint.CycleMethod.REPEAT; } return MultipleGradientPaint.CycleMethod.NO_CYCLE; } private MultipleGradientPaint.ColorSpaceType getColorSpaceType(Paint paint) { if (paint instanceof java.awt.MultipleGradientPaint) return ((MultipleGradientPaint) paint).getColorSpace(); if (paint.getClass().getPackage().getName().equals("org.apache.batik.ext.awt")) { setupBatikReflectionAccess(paint); Object cycleMethod = getPropertyValue(paint, "getColorSpace"); if (cycleMethod == BATIK_COLORSPACE_SRGB) return MultipleGradientPaint.ColorSpaceType.SRGB; if (cycleMethod == BATIK_COLORSPACE_LINEAR_RGB) return MultipleGradientPaint.ColorSpaceType.LINEAR_RGB; } return MultipleGradientPaint.ColorSpaceType.SRGB; } private Object BATIK_GRADIENT_NO_CYCLE; private Object BATIK_GRADIENT_REFLECT; private Object BATIK_GRADIENT_REPEAT; private Object BATIK_COLORSPACE_SRGB; private Object BATIK_COLORSPACE_LINEAR_RGB; private void setupBatikReflectionAccess(Paint paint) { /* * As we don't have Batik on our class path we need to access it by reflection if the user application is using Batik */ if (BATIK_GRADIENT_NO_CYCLE != null) return; try { Class cls = paint.getClass(); if (cls.getSimpleName().equals("MultipleGradientPaint")) { BATIK_GRADIENT_NO_CYCLE = cls.getDeclaredField("NO_CYCLE"); BATIK_GRADIENT_REFLECT = cls.getDeclaredField("REFLECT"); BATIK_GRADIENT_REPEAT = cls.getDeclaredField("REPEAT"); BATIK_COLORSPACE_SRGB = cls.getDeclaredField("SRGB"); BATIK_COLORSPACE_LINEAR_RGB = cls.getDeclaredField("LINEAR_RGB"); } } catch (NoSuchFieldException ignored) { /* * Can not detect Batik CycleMethods :( */ } } private PDShading buildRadialGradientShading(Paint paint, PaintApplierState state) throws IOException { /* * Batik has a copy of RadialGradientPaint, but it has the same structure as the AWT RadialGradientPaint. So we use * Reflection to access the fields of both these classes. */ Color[] colors = getPropertyValue(paint, "getColors"); Color firstColor = colors[0]; PDColor firstColorMapped = state.colorMapper.mapColor(state.contentStream, firstColor); applyAsStrokingColor(firstColor, state); /* * When doing a shading paint, we need to always walk the shape first. */ state.env.ensureShapeIsWalked(); PDShadingType3 shading = new PDShadingType3(new COSDictionary()); shading.setAntiAlias(true); shading.setShadingType(PDShading.SHADING_TYPE3); shading.setColorSpace(firstColorMapped.getColorSpace()); float[] fractions = getPropertyValue(paint, "getFractions"); Point2D centerPoint = clonePoint((Point2D) getPropertyValue(paint, "getCenterPoint")); Point2D focusPoint = clonePoint((Point2D) getPropertyValue(paint, "getFocusPoint")); AffineTransform gradientTransform = getPropertyValue(paint, "getTransform"); state.tf.concatenate(gradientTransform); state.tf.transform(centerPoint, centerPoint); state.tf.transform(focusPoint, focusPoint); float radius = getPropertyValue(paint, "getRadius"); radius = (float) Math.abs(radius * state.tf.getScaleX()); COSArray coords = new COSArray(); coords.add(new COSFloat((float) centerPoint.getX())); coords.add(new COSFloat((float) centerPoint.getY())); coords.add(new COSFloat(0)); coords.add(new COSFloat((float) focusPoint.getX())); coords.add(new COSFloat((float) focusPoint.getY())); coords.add(new COSFloat(radius)); shading.setCoords(coords); PDFunctionType3 type3 = buildType3Function(colors, fractions, state); shading.setFunction(type3); shading.setExtend(setupExtends()); return shading; } private PDShading buildGradientShading(GradientPaint gradientPaint, PaintApplierState state) throws IOException { Color[] colors = new Color[] { gradientPaint.getColor1(), gradientPaint.getColor2() }; Color firstColor = colors[0]; PDColor firstColorMapped = state.colorMapper.mapColor(state.contentStream, firstColor); applyAsStrokingColor(firstColor, state); /* * When doing a shading paint, we need to always walk the shape first. */ state.env.ensureShapeIsWalked(); PDShadingType3 shading = new PDShadingType3(new COSDictionary()); shading.setShadingType(PDShading.SHADING_TYPE2); shading.setColorSpace(firstColorMapped.getColorSpace()); float[] fractions = new float[] { 0, 1 }; PDFunctionType3 type3 = buildType3Function(colors, fractions, state); Point2D startPoint = gradientPaint.getPoint1(); Point2D endPoint = gradientPaint.getPoint2(); state.tf.transform(startPoint, startPoint); state.tf.transform(endPoint, endPoint); setupShadingCoords(shading, startPoint, endPoint); shading.setFunction(type3); shading.setExtend(setupExtends()); return shading; } private void applyTexturePaint(TexturePaint texturePaint, PaintApplierState state) throws IOException { Rectangle2D anchorRect = texturePaint.getAnchorRect(); PDTilingPattern pattern = new PDTilingPattern(); pattern.setPaintType(PDTilingPattern.PAINT_COLORED); pattern.setTilingType(PDTilingPattern.TILING_CONSTANT_SPACING_FASTER_TILING); pattern.setBBox(new PDRectangle((float) anchorRect.getX(), (float) anchorRect.getY(), (float) anchorRect.getWidth(), (float) anchorRect.getHeight())); pattern.setXStep((float) anchorRect.getWidth()); pattern.setYStep((float) anchorRect.getHeight()); AffineTransform patternTransform = new AffineTransform(); patternTransform.translate(0, anchorRect.getHeight()); patternTransform.scale(1f, -1f); pattern.setMatrix(patternTransform); PDAppearanceStream appearance = new PDAppearanceStream(state.document); appearance.setResources(pattern.getResources()); appearance.setBBox(pattern.getBBox()); PDPageContentStream imageContentStream = new PDPageContentStream(state.document, appearance, ((COSStream) pattern.getCOSObject()).createOutputStream()); BufferedImage texturePaintImage = texturePaint.getImage(); PDImageXObject imageXObject = state.imageEncoder .encodeImage(state.document, imageContentStream, texturePaintImage); float ratioW = (float) ((anchorRect.getWidth()) / texturePaintImage.getWidth()); float ratioH = (float) ((anchorRect.getHeight()) / texturePaintImage.getHeight()); float paintHeight = (texturePaintImage.getHeight()) * ratioH; if (state.nestedTransform != null) { imageContentStream.transform(new Matrix(state.nestedTransform)); } imageContentStream.drawImage(imageXObject, (float) anchorRect.getX(), (float) (paintHeight + anchorRect.getY()), texturePaintImage.getWidth() * ratioW, -paintHeight); imageContentStream.close(); PDColorSpace patternCS1 = new PDPattern(null, imageXObject.getColorSpace()); COSName tilingPatternName = state.resources.add(pattern); PDColor patternColor = new PDColor(tilingPatternName, patternCS1); state.contentStream.setNonStrokingColor(patternColor); state.contentStream.setStrokingColor(patternColor); } /** * Encode a color gradient as a type3 function * * @param colors The colors to encode * @param fractions the fractions for encoding * @param state our state, this is needed for color mapping * @return the type3 function */ private PDFunctionType3 buildType3Function(Color[] colors, float[] fractions, PaintApplierState state) { COSDictionary function = new COSDictionary(); function.setInt(COSName.FUNCTION_TYPE, 3); COSArray domain = new COSArray(); domain.add(new COSFloat(0)); domain.add(new COSFloat(1)); COSArray encode = new COSArray(); COSArray range = new COSArray(); range.add(new COSFloat(0)); range.add(new COSFloat(1)); List colorList = new ArrayList(Arrays.asList(colors)); COSArray bounds = new COSArray(); if (Math.abs(fractions[0]) > EPSILON) { /* * We need to insert a "keyframe" for fraction 0. See also java.awt.LinearGradientPaint for future information */ colorList.add(0, colors[0]); bounds.add(new COSFloat(fractions[0])); } /* * We always add the inner fractions */ for (int i = 1; i < fractions.length - 1; i++) { float fraction = fractions[i]; bounds.add(new COSFloat(fraction)); } if (Math.abs(fractions[fractions.length - 1] - 1f) > EPSILON) { /* * We also need to insert a "keyframe" at the end for fraction 1 */ colorList.add(colors[colors.length - 1]); bounds.add(new COSFloat(fractions[fractions.length - 1])); } COSArray type2Functions = buildType2Functions(colorList, domain, encode, state); function.setItem(COSName.FUNCTIONS, type2Functions); function.setItem(COSName.BOUNDS, bounds); function.setItem(COSName.ENCODE, encode); PDFunctionType3 type3 = new PDFunctionType3(function); type3.setDomainValues(domain); return type3; } /** * Build a type2 function to interpolate between the given colors. * * @param colors the color to encode * @param domain the domain which should already been setuped. It will be used for the Type2 function * @param encode will get the domain information per color channel, i.e. colors.length x [0, 1] * @param state our internal state, this is needed for color mapping * @return the Type2 function COSArray */ private COSArray buildType2Functions(List colors, COSArray domain, COSArray encode, PaintApplierState state) { Color prevColor = colors.get(0); COSArray functions = new COSArray(); for (int i = 1; i < colors.size(); i++) { Color color = colors.get(i); PDColor prevPdColor = state.colorMapper.mapColor(state.contentStream, prevColor); PDColor pdColor = state.colorMapper.mapColor(state.contentStream, color); COSArray c0 = new COSArray(); COSArray c1 = new COSArray(); for (float component : prevPdColor.getComponents()) c0.add(new COSFloat(component)); for (float component : pdColor.getComponents()) c1.add(new COSFloat(component)); COSDictionary type2Function = new COSDictionary(); type2Function.setInt(COSName.FUNCTION_TYPE, 2); type2Function.setItem(COSName.C0, c0); type2Function.setItem(COSName.C1, c1); type2Function.setInt(COSName.N, 1); type2Function.setItem(COSName.DOMAIN, domain); functions.add(type2Function); encode.add(new COSFloat(0)); encode.add(new COSFloat(1)); prevColor = color; } return functions; } /** * Get a property value from an object using reflection * * @param obj The object to get a property from. * @param propertyGetter method name of the getter, i.e. "getXY". * @param the type of the property you want to get. * @return the value read from the object */ @SuppressWarnings({ "unchecked", "WeakerAccess" }) protected static T getPropertyValue(Object obj, String propertyGetter) { try { Class c = obj.getClass(); while (c != null) { try { Method m = c.getMethod(propertyGetter, (Class[]) null); return (T) m.invoke(obj); } catch (NoSuchMethodException ignored) { } c = c.getSuperclass(); } throw new NullPointerException("Method " + propertyGetter + " not found!"); } catch (Exception e) { return PdfBoxGraphics2D.throwException(e); } } private static abstract class COSResourceCacheBase { private final Map> states = new HashMap>(); private static boolean equalsCOSDictionary(COSDictionary cosDictionary, COSDictionary cosDictionary1) { if (cosDictionary.size() != cosDictionary1.size()) return false; for (COSName name : cosDictionary.keySet()) { COSBase item = cosDictionary.getItem(name); COSBase item2 = cosDictionary1.getItem(name); if (!equalsCOSBase(item, item2)) return false; } return true; } private static boolean equalsCOSBase(COSBase item, COSBase item2) { if (item == item2) return true; if (item == null) return false; if (item2 == null) return false; /* * Can the items be compared directly? */ if (item.equals(item2)) return true; if (item instanceof COSDictionary && item2 instanceof COSDictionary) return equalsCOSDictionary((COSDictionary) item, (COSDictionary) item2); // noinspection SimplifiableIfStatement if (item instanceof COSArray && item2 instanceof COSArray) return equalsCOSArray((COSArray) item, (COSArray) item2); return false; } private static boolean equalsCOSArray(COSArray item, COSArray item2) { if (item.size() != item2.size()) return false; for (int i = 0; i < item.size(); i++) { COSBase i1 = item.getObject(i); COSBase i2 = item2.getObject(i); if (!equalsCOSBase(i1, i2)) return false; } return true; } protected abstract int getKey(TObject obj); TObject makeUnqiue(TObject state) { int key = getKey(state); List pdExtendedGraphicsStates = states.get(key); if (pdExtendedGraphicsStates == null) { pdExtendedGraphicsStates = new ArrayList(); states.put(key, pdExtendedGraphicsStates); } for (TObject s : pdExtendedGraphicsStates) { if (stateEquals(s, state)) return s; } pdExtendedGraphicsStates.add(state); return state; } private boolean stateEquals(TObject s, TObject state) { COSBase base1 = s.getCOSObject(); COSBase base2 = state.getCOSObject(); return equalsCOSBase(base1, base2); } } private static class ExtGStateCache extends COSResourceCacheBase { @Override protected int getKey(PDExtendedGraphicsState obj) { return obj.getCOSObject().size(); } } private static class PDShadingCache extends COSResourceCacheBase { @Override protected int getKey(PDShading obj) { return obj.getCOSObject().size(); } } } PrivateFieldAccessor.java000066400000000000000000000064121415770645300404220ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import java.lang.reflect.*; /** * Ugly Hack to access private fields. This will for sure break with * future JDK versions. */ class PrivateFieldAccessor { /* * Default implementation for Java <= 8 */ private static IAccessableSetter performSetAccessible = new IAccessableSetter() { @Override public void setAccessible(AccessibleObject obj) { obj.setAccessible(true); } }; private interface IAccessableSetter { void setAccessible(AccessibleObject obj); } static { try { /* * We need this for JDK 9+, and only their this works at all... */ final Method setAccessible = AccessibleObject.class .getDeclaredMethod("setAccessible0", boolean.class); Field methodModifiers = Method.class.getDeclaredField("modifiers"); Class unsafeClass = Class.forName("sun.misc.Unsafe"); Constructor unsafeConstructor = unsafeClass.getDeclaredConstructor(); unsafeConstructor.setAccessible(true); Object unsafe = unsafeConstructor.newInstance(); Method objectFieldOffsetMethod = unsafeClass .getMethod("objectFieldOffset", Field.class); long methodModifiersOffset = (Long) objectFieldOffsetMethod .invoke(unsafe, methodModifiers); Method getAndSetInt = unsafeClass .getMethod("getAndSetInt", Object.class, Long.TYPE, Integer.TYPE); getAndSetInt.invoke(unsafe, setAccessible, methodModifiersOffset, Modifier.PUBLIC); performSetAccessible = new IAccessableSetter() { @Override public void setAccessible(AccessibleObject obj) { try { setAccessible.invoke(obj, true); } catch (Exception e) { throw new RuntimeException(e); } } }; } catch (Exception ignored) { } } @SuppressWarnings("WeakerAccess") private static void setAccessible(AccessibleObject object) { performSetAccessible.setAccessible(object); } public static T getPrivateField(Object object, String property) { Class cls = object.getClass(); while (cls != null) { for (Field f : cls.getDeclaredFields()) { if (!f.getName().equals(property)) continue; setAccessible(f); try { // noinspection unchecked return (T) f.get(object); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException( "Error while accessing field " + property + " of " + cls, e); } } cls = cls.getSuperclass(); } throw new NoSuchFieldError(property); } } RGBtoCMYKColorMapper.java000066400000000000000000000043501415770645300401650ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/main/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import org.apache.pdfbox.pdmodel.graphics.color.PDICCBased; import java.awt.*; import java.awt.color.ICC_ColorSpace; import java.awt.color.ICC_Profile; import java.io.IOException; import java.io.OutputStream; /** * Usage: * *

 * PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(this.doc, (int) (width), (int) (height));
 * PdfBoxGraphics2DColorMapper colorMapper = new RGBtoCMYKColorMapper(icc_profile);
 * pdfBoxGraphics2D.setColorMapper(colorMapper);
 * 
* * Where ICC_Profile is an instance of java.awt.color.ICC_Profile that supports * a CMYK colorspace. For testing purposes, we're using ISOcoated_v2_300_bas.icc * which ships with PDFBox. */ public class RGBtoCMYKColorMapper extends PdfBoxGraphics2DColorMapper { private final ICC_ColorSpace icc_colorspace; private final PDICCBased pdProfile; public RGBtoCMYKColorMapper(ICC_Profile icc_profile, PDDocument document) throws IOException { this.icc_colorspace = new ICC_ColorSpace(icc_profile); this.pdProfile = new PDICCBased(document); OutputStream outputStream = pdProfile.getPDStream().createOutputStream(COSName.FLATE_DECODE); outputStream.write(icc_profile.getData()); outputStream.close(); pdProfile.getPDStream().getCOSObject().setInt(COSName.N, 4); pdProfile.getPDStream().getCOSObject().setItem(COSName.ALTERNATE, COSName.DEVICECMYK); } public PDColor mapColor(PDPageContentStream contentStream, Color rgbColor) { int r = rgbColor.getRed(); int g = rgbColor.getGreen(); int b = rgbColor.getBlue(); int[] rgbInts = { r, g, b }; float[] rgbFoats = rgbIntToFloat(rgbInts); float[] cmykFloats = icc_colorspace.fromRGB(rgbFoats); return new PDColor(cmykFloats, pdProfile); } private static float[] rgbIntToFloat(int[] rgbInts) { // the input ints are in the range 0 to 255 // the output floats need to be in the range 0.0 to 1.0 float red = (float) rgbInts[0] / 255.0F; float green = (float) rgbInts[1] / 255.0F; float blue = (float) rgbInts[2] / 255.0F; return new float[] { red, green, blue }; } } pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/000077500000000000000000000000001415770645300252745ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/000077500000000000000000000000001415770645300262155ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/000077500000000000000000000000001415770645300266055ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/000077500000000000000000000000001415770645300303155ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/000077500000000000000000000000001415770645300315775ustar00rootroot00000000000000graphics2d/000077500000000000000000000000001415770645300335465ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfboxFontTest.java000066400000000000000000000056031415770645300361630ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import java.awt.*; import java.awt.font.TextAttribute; import java.io.IOException; import java.text.AttributedString; import org.junit.Test; public class FontTest extends PdfBoxGraphics2DTestBase { @Test public void testAntonioFont() throws IOException, FontFormatException { final Font antonioRegular = Font.createFont(Font.TRUETYPE_FONT, PdfBoxGraphics2dTest.class.getResourceAsStream("antonio/Antonio-Regular.ttf")) .deriveFont(15f); exportGraphic("fonts", "antonio", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) throws IOException, FontFormatException { gfx.setColor(Color.BLACK); gfx.setFont(antonioRegular); gfx.drawString("Für älter österlich, Umlauts are not always fun.", 10, 50); } }); } @Test public void testStyledAttributeIterator() throws IOException, FontFormatException { final Font antonioRegular = Font.createFont(Font.TRUETYPE_FONT, PdfBoxGraphics2dTest.class.getResourceAsStream("antonio/Antonio-Regular.ttf")) .deriveFont(15f); exportGraphic("fonts", "attributed_text", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) throws IOException, FontFormatException { gfx.setColor(Color.BLACK); gfx.setFont(antonioRegular); AttributedString str = new AttributedString( "This is some funny text with some attributes."); str.addAttribute(TextAttribute.SIZE, 20f, 0, 4); str.addAttribute(TextAttribute.FOREGROUND, Color.RED, 0, 4); str.addAttribute(TextAttribute.FOREGROUND, Color.green, 13, 23); str.addAttribute(TextAttribute.SIZE, 18f, 13, 23); str.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, 13, 23); str.addAttribute(TextAttribute.FOREGROUND, Color.MAGENTA, 34, 44); str.addAttribute(TextAttribute.SIZE, 22f, 34, 44); str.addAttribute(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON, 34, 44); gfx.drawString(str.getIterator(), 10, 50); Font font = new Font("SansSerif", Font.PLAIN, 12); Font font2 = Font.createFont(Font.TRUETYPE_FONT, PdfBoxGraphics2dTest.class.getResourceAsStream("DejaVuSerifCondensed.ttf")) .deriveFont(13f); str.addAttribute(TextAttribute.FONT, font); gfx.drawString(str.getIterator(), 10, 100); str.addAttribute(TextAttribute.FONT, font2); gfx.drawString(str.getIterator(), 10, 150); } }); } } FontWidthDiscrepancyTest.java000066400000000000000000000044631415770645300413530ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.junit.Test; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDType0Font; import java.awt.*; import java.awt.font.TextLayout; import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.junit.Test; public class FontWidthDiscrepancyTest extends PdfBoxGraphics2DTestBase { @Test public void testAntonioFontWidth() throws IOException, FontFormatException { final String testString = "MMMMMMMMMMMMMMMMMMMMMM"; final float fontSize = 20f; final Font antonioRegular = Font.createFont(Font.TRUETYPE_FONT, PdfBoxGraphics2dTest.class.getResourceAsStream("antonio/Antonio-Regular.ttf")) .deriveFont(fontSize); final PDDocument doc = new PDDocument(); final PDFont pdFont = PDType0Font.load(doc, PdfBoxGraphics2dTest.class.getResourceAsStream("antonio/Antonio-Regular.ttf")); final Graphics2D gfx = new PdfBoxGraphics2D(doc, 400, 400); final float pdfWidth = pdFont.getStringWidth(testString) / 1000 * fontSize; final int gfxWidth = gfx.getFontMetrics(antonioRegular).stringWidth(testString); gfx.dispose(); doc.close(); exportGraphic("fontWidthDiscrepancy", "antonio-m", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) throws IOException, FontFormatException { gfx.setFont(antonioRegular); gfx.setColor(Color.GREEN); gfx.drawString(testString, 10, 10); gfx.setColor(Color.RED); gfx.drawLine(10, 1, (int) (10 + pdfWidth), 1); gfx.setColor(Color.BLUE); gfx.drawLine(10, 15, (int) (10 + gfxWidth), 15); gfx.setColor(Color.magenta); FontMetrics fontMetrics = gfx.getFontMetrics(); int currentMeasurement = fontMetrics.stringWidth(testString); gfx.drawLine(10, 25, (int) (10 + currentMeasurement), 25); gfx.drawLine(10, 5, 10 + fontMetrics.charWidth('M'), 5); assertNotNull(fontMetrics.getWidths()); } }); } } InvalidPDFTest.java000066400000000000000000000236561415770645300372050ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.junit.Test; import java.awt.*; import java.awt.font.TextAttribute; import java.awt.geom.AffineTransform; import java.awt.geom.Path2D; import java.awt.geom.Rectangle2D; import java.io.File; import java.text.AttributedString; public class InvalidPDFTest { @Test public void testInvalidPDF() throws Exception { PDDocument document = new PDDocument(); PDPage page = new PDPage(new PDRectangle(800, 450)); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D g = new PdfBoxGraphics2D(document, page.getMediaBox()); PdfBoxGraphics2DFontTextDrawer textDrawer = new PdfBoxGraphics2DFontTextDrawer(); g.setFontTextDrawer(textDrawer); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); g.scale(0.41688379364252215, 0.41688379364252215); g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 1.0f)); g.fillRect(0, 0, 800, 450); g.setComposite(AlphaComposite.getInstance(AlphaComposite.DST_OVER, 1.0f)); Path2D p; g.setPaint(new Color(0xFFFFFFFF)); g.fill(new Rectangle2D.Double(0, 0, 1919, 1080)); g.setColor(new Color(0x00FFFFFF)); g.fillRect(0, 0, 1919, 1080); g.setColor(new Color(0x00FFFFFF)); g.fillRect(0, 0, 1919, 1080); g.setColor(new Color(0x00FFFFFF)); g.fillRect(0, 0, 1919, 1080); g.setStroke(new BasicStroke(0.25f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 0.25f, null, 0.0f)); g.setPaint(new Color(0x00FFFFFF)); p = new Path2D.Double(1); p.moveTo(1401.6755905511811, 1029.7417322834647); p.lineTo(1787.9811023622046, 1029.7417322834647); p.lineTo(1787.9811023622046, 1054.828346456693); p.lineTo(1401.6755905511811, 1054.828346456693); p.closePath(); g.fill(p); AttributedString as; as = new AttributedString("OpenText Confidential. ©2019 All Rights "); as.addAttribute(TextAttribute.FONT, new Font("Arial", Font.PLAIN, 18), 0, 40); as.addAttribute(TextAttribute.FOREGROUND, new Color(0xFF000000), 0, 40); as.addAttribute(TextAttribute.FAMILY, "Arial", 0, 40); as.addAttribute(TextAttribute.SIZE, 18.0, 0, 40); g.drawString(as.getIterator(), 1408.7622f, 1039.0594f); as = new AttributedString("Reserved."); as.addAttribute(TextAttribute.FONT, new Font("Arial", Font.PLAIN, 18), 0, 9); as.addAttribute(TextAttribute.FOREGROUND, new Color(0xFF000000), 0, 9); as.addAttribute(TextAttribute.FAMILY, "Arial", 0, 9); as.addAttribute(TextAttribute.SIZE, 18.0, 0, 9); g.drawString(as.getIterator(), 1408.7622f, 1058.58f); g.setTransform( new AffineTransform(0.41688379364252215f, 0.0f, 0.0f, 0.41688379364252215f, 0.0f, 0.0f)); g.setPaint(new Color(0x00FFFFFF)); g.setStroke(new BasicStroke(0.25f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 0.25f, null, 0.0f)); p = new Path2D.Double(1); p.moveTo(1401.6755905511811, 1029.7417322834647); p.lineTo(1787.9811023622046, 1029.7417322834647); p.lineTo(1787.9811023622046, 1054.828346456693); p.lineTo(1401.6755905511811, 1054.828346456693); p.closePath(); g.draw(p); g.setPaint(new Color(0x00FFFFFF)); g.setColor(new Color(0x00FFFFFF)); g.setPaint(new Color(0x00FFFFFF)); g.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 10.0f, null, 0.0f)); g.setTransform( new AffineTransform(0.41688379364252215f, 0.0f, 0.0f, 0.41688379364252215f, 0.0f, 0.0f)); g.setStroke(new BasicStroke(0.25f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 0.25f, null, 0.0f)); g.setPaint(new Color(0x00FFFFFF)); p = new Path2D.Double(1); p.moveTo(1777.067716535433, 1029.5433070866143); p.lineTo(1828.0346456692912, 1029.5433070866143); p.lineTo(1828.0346456692912, 1054.6015748031498); p.lineTo(1777.067716535433, 1054.6015748031498); p.closePath(); g.fill(p); as = new AttributedString("1"); as.addAttribute(TextAttribute.FONT, new Font("Arial", Font.PLAIN, 18), 0, 1); as.addAttribute(TextAttribute.FOREGROUND, new Color(0xFF000000), 0, 1); as.addAttribute(TextAttribute.FAMILY, "Arial", 0, 1); as.addAttribute(TextAttribute.SIZE, 18.0, 0, 1); g.drawString(as.getIterator(), 1784.1543f, 1049.9705f); g.setTransform( new AffineTransform(0.41688379364252215f, 0.0f, 0.0f, 0.41688379364252215f, 0.0f, 0.0f)); g.setPaint(new Color(0x00FFFFFF)); g.setStroke(new BasicStroke(0.25f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 0.25f, null, 0.0f)); p = new Path2D.Double(1); p.moveTo(1777.067716535433, 1029.5433070866143); p.lineTo(1828.0346456692912, 1029.5433070866143); p.lineTo(1828.0346456692912, 1054.6015748031498); p.lineTo(1777.067716535433, 1054.6015748031498); p.closePath(); g.draw(p); g.setPaint(new Color(0x00FFFFFF)); g.setColor(new Color(0x00FFFFFF)); g.setPaint(new Color(0x00FFFFFF)); g.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 10.0f, null, 0.0f)); g.setTransform( new AffineTransform(0.41688379364252215f, 0.0f, 0.0f, 0.41688379364252215f, 0.0f, 0.0f)); g.setStroke(new BasicStroke(0.992126f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 0.992126f, null, 0.0f)); g.setPaint(new Color(0x00FFFFFF)); p = new Path2D.Double(1); p.moveTo(0.0, 1003.9748031496063); p.lineTo(1919.8488188976378, 1004.0031496062992); g.fill(p); g.setTransform( new AffineTransform(0.41688379364252215f, 0.0f, 0.0f, 0.41688379364252215f, 0.0f, 0.0f)); g.setPaint(new Color(0xFFD9D9D9)); g.setStroke(new BasicStroke(0.992126f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 0.992126f, null, 0.0f)); p = new Path2D.Double(1); p.moveTo(0.0, 1003.9748031496063); p.lineTo(1919.8488188976378, 1004.0031496062992); g.draw(p); g.setPaint(new Color(0xFFD9D9D9)); g.setColor(new Color(0x00FFFFFF)); g.setPaint(new Color(0x00FFFFFF)); g.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 10.0f, null, 0.0f)); g.setTransform( new AffineTransform(0.41688379364252215f, 0.0f, 0.0f, 0.41688379364252215f, 0.0f, 0.0f)); g.dispose(); PDFormXObject appearanceStream = g.getXFormObject(); contentStream.drawForm(appearanceStream); contentStream.close(); File f = new File("target/test/invalidpdf/fonttest.pdf"); f.getParentFile().mkdirs(); document.save(f); } @Test public void testInvalidPDF2() throws Exception { PDDocument document = new PDDocument(); PDPage page = new PDPage(new PDRectangle(800, 450)); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D g = new PdfBoxGraphics2D(document, page.getMediaBox()); PdfBoxGraphics2DFontTextDrawer textDrawer = new PdfBoxGraphics2DFontTextDrawer(); g.setFontTextDrawer(textDrawer); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); Path2D p; { g.setTransform( new AffineTransform(0.41688379364252215f, 0.0f, 0.0f, 0.41688379364252215f, 0.0f, 0.0f)); g.setPaint(new Color(0x00FFFFFF)); g.setStroke(new BasicStroke(0.25f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 0.25f, null, 0.0f)); p = new Path2D.Double(1); p.moveTo(1401.6755905511811, 1029.7417322834647); p.lineTo(1787.9811023622046, 1029.7417322834647); p.lineTo(1787.9811023622046, 1054.828346456693); p.lineTo(1401.6755905511811, 1054.828346456693); p.closePath(); g.draw(p); } g.dispose(); PDFormXObject appearanceStream = g.getXFormObject(); contentStream.drawForm(appearanceStream); contentStream.close(); File f = new File("target/test/invalidpdf/fonttest2.pdf"); f.getParentFile().mkdirs(); document.save(f); } } MarkedContentTest.java000066400000000000000000000053711415770645300400150ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.cos.COSDictionary; import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.cos.COSString; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDPropertyList; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.util.Matrix; import org.junit.Test; import java.awt.*; import java.io.File; import java.io.IOException; public class MarkedContentTest { @Test public void testMarkedContentPDF() throws IOException { File parentDir = new File("target/test/markedcontent"); // noinspection ResultOfMethodCallIgnored parentDir.mkdirs(); File targetPDF = new File(parentDir, "markedcontent.pdf"); PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 800, 400); pdfBoxGraphics2D.setFontTextDrawer(new PdfBoxGraphics2DFontTextDrawerDefaultFonts()); /* Tag this as a header */ pdfBoxGraphics2D.drawInMarkedContentSequence(COSName.H, new IPdfBoxGraphics2DMarkedContentDrawer() { @Override public void draw(PdfBoxGraphics2D gfx) { gfx.setColor(Color.BLUE); gfx.drawString("Hello World", 20, 20); } }); /* All tag names starting with XX are for private use only. */ pdfBoxGraphics2D.drawInMarkedContentSequence(COSName.getPDFName("XX_MarkedContentTest"), new IPdfBoxGraphics2DMarkedContentDrawer() { @Override public void draw(PdfBoxGraphics2D gfx) { gfx.setColor(Color.RED); gfx.drawString("This is marked", 100, 100); } }); COSDictionary dir = new COSDictionary(); dir.setItem(COSName.C, COSName.UE); dir.setItem(COSName.SEPARATION, new COSString("Test")); pdfBoxGraphics2D.drawInMarkedContentSequence(COSName.getPDFName("XX_MarkedContentTest_WithProps"), PDPropertyList.create(dir), new IPdfBoxGraphics2DMarkedContentDrawer() { @Override public void draw(PdfBoxGraphics2D gfx) { gfx.setColor(Color.GREEN); gfx.drawString("This is marked and has a property list", 50, 200); } }); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 30); contentStream.saveGraphicsState(); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); contentStream.restoreGraphicsState(); contentStream.close(); document.save(targetPDF); document.close(); } } MultiPageTest.java000066400000000000000000000340611415770645300371440ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.util.Matrix; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.labels.StandardCategoryToolTipGenerator; import org.jfree.chart.plot.*; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.chart.title.LegendTitle; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.category.IntervalCategoryDataset; import org.jfree.data.gantt.Task; import org.jfree.data.gantt.TaskSeries; import org.jfree.data.gantt.TaskSeriesCollection; import org.jfree.data.time.SimpleTimePeriod; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.jfree.ui.RectangleEdge; import org.jfree.util.TableOrder; import org.junit.Test; import java.awt.*; import java.io.File; import java.io.IOException; import java.util.Calendar; import java.util.Date; public class MultiPageTest { @Test public void testMultiPageJFreeChart() throws IOException { File parentDir = new File("target/test/multipage"); // noinspection ResultOfMethodCallIgnored parentDir.mkdirs(); File targetPDF = new File(parentDir, "multipage.pdf"); PDDocument document = new PDDocument(); for (int i = 0; i < 6; i++) { PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 800, 400); drawOnGraphics(pdfBoxGraphics2D, i); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 30); matrix.scale(0.7f, 1f); contentStream.saveGraphicsState(); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); contentStream.restoreGraphicsState(); contentStream.close(); } document.save(targetPDF); document.close(); } private void drawOnGraphics(PdfBoxGraphics2D gfx, int i) { Rectangle rectangle = new Rectangle(800, 400); switch (i) { case 0: { final XYDataset dataset = createDatasetXY(); final JFreeChart chart = createChartXY(dataset); chart.draw(gfx, rectangle); break; } case 1: { final IntervalCategoryDataset dataset = createDatasetGantt(); final JFreeChart chart = createChartGantt(dataset); chart.draw(gfx, rectangle); break; } case 2: { final CategoryDataset dataset = createDatasetCategory(); final JFreeChart chart = createChartCategory(dataset); chart.draw(gfx, rectangle); break; } case 3: { final XYDataset dataset = createDatasetXY(); final JFreeChart chart = createChartXY(dataset); chart.draw(gfx, rectangle); break; } case 4: { final CategoryDataset dataset = createDatasetCategory(); final JFreeChart chart = createSpiderChart(dataset); chart.draw(gfx, rectangle); break; } case 5: { final DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(0.0, "Row 0", "Column 0"); dataset.addValue(0.0, "Row 0", "Column 1"); dataset.addValue(0.0, "Row 0", "Column 2"); dataset.addValue(0.0, "Row 0", "Column 3"); dataset.addValue(0.0, "Row 0", "Column 4"); final JFreeChart chart = createSpiderChart(dataset); chart.setTitle("Invalid Spider Chart"); chart.draw(gfx, rectangle); break; } } } /** * Creates a sample dataset. * * @return a sample dataset. */ private XYDataset createDatasetXY() { final XYSeries series1 = new XYSeries("First"); series1.add(1.0, 1.0); series1.add(2.0, 4.0); series1.add(3.0, 3.0); series1.add(4.0, 5.0); series1.add(5.0, 5.0); series1.add(6.0, 7.0); series1.add(7.0, 7.0); series1.add(8.0, 8.0); final XYSeries series2 = new XYSeries("Second"); series2.add(1.0, 5.0); series2.add(2.0, 7.0); series2.add(3.0, 6.0); series2.add(4.0, 8.0); series2.add(5.0, 4.0); series2.add(6.0, 4.0); series2.add(7.0, 2.0); series2.add(8.0, 1.0); final XYSeries series3 = new XYSeries("Third"); series3.add(3.0, 4.0); series3.add(4.0, 3.0); series3.add(5.0, 2.0); series3.add(6.0, 3.0); series3.add(7.0, 6.0); series3.add(8.0, 3.0); series3.add(9.0, 4.0); series3.add(10.0, 3.0); final XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(series1); dataset.addSeries(series2); dataset.addSeries(series3); return dataset; } /** * Creates a chart. * * @param dataset * the data for the chart. * * @return a chart. */ private JFreeChart createChartXY(final XYDataset dataset) { // create the chart... final JFreeChart chart = ChartFactory.createXYLineChart("Line Chart Demo 6", // chart // title "X", // x axis label "Y", // y axis label dataset, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips false // urls ); // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART... chart.setBackgroundPaint(Color.white); // final StandardLegend legend = (StandardLegend) chart.getLegend(); // legend.setDisplaySeriesShapes(true); // get a reference to the plot for further customisation... final XYPlot plot = chart.getXYPlot(); plot.setBackgroundPaint(Color.lightGray); // plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0)); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); renderer.setSeriesLinesVisible(0, false); renderer.setSeriesShapesVisible(1, false); plot.setRenderer(renderer); // change the auto tick unit selection to integer units only... final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); // OPTIONAL CUSTOMISATION COMPLETED. return chart; } /** * Creates a sample dataset for a Gantt chart. * * @return The dataset. */ private static IntervalCategoryDataset createDatasetGantt() { final TaskSeries s1 = new TaskSeries("Scheduled"); s1.add(new Task("Write Proposal", new SimpleTimePeriod(date(1, Calendar.APRIL, 2001), date(5, Calendar.APRIL, 2001)))); s1.add(new Task("Obtain Approval", new SimpleTimePeriod(date(9, Calendar.APRIL, 2001), date(9, Calendar.APRIL, 2001)))); s1.add(new Task("Requirements Analysis", new SimpleTimePeriod(date(10, Calendar.APRIL, 2001), date(5, Calendar.MAY, 2001)))); s1.add(new Task("Design Phase", new SimpleTimePeriod(date(6, Calendar.MAY, 2001), date(30, Calendar.MAY, 2001)))); s1.add(new Task("Design Signoff", new SimpleTimePeriod(date(2, Calendar.JUNE, 2001), date(2, Calendar.JUNE, 2001)))); s1.add(new Task("Alpha Implementation", new SimpleTimePeriod(date(3, Calendar.JUNE, 2001), date(31, Calendar.JULY, 2001)))); s1.add(new Task("Design Review", new SimpleTimePeriod(date(1, Calendar.AUGUST, 2001), date(8, Calendar.AUGUST, 2001)))); s1.add(new Task("Revised Design Signoff", new SimpleTimePeriod(date(10, Calendar.AUGUST, 2001), date(10, Calendar.AUGUST, 2001)))); s1.add(new Task("Beta Implementation", new SimpleTimePeriod(date(12, Calendar.AUGUST, 2001), date(12, Calendar.SEPTEMBER, 2001)))); s1.add(new Task("Testing", new SimpleTimePeriod(date(13, Calendar.SEPTEMBER, 2001), date(31, Calendar.OCTOBER, 2001)))); s1.add(new Task("Final Implementation", new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2001), date(15, Calendar.NOVEMBER, 2001)))); s1.add(new Task("Signoff", new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2001), date(30, Calendar.NOVEMBER, 2001)))); final TaskSeries s2 = new TaskSeries("Actual"); s2.add(new Task("Write Proposal", new SimpleTimePeriod(date(1, Calendar.APRIL, 2001), date(5, Calendar.APRIL, 2001)))); s2.add(new Task("Obtain Approval", new SimpleTimePeriod(date(9, Calendar.APRIL, 2001), date(9, Calendar.APRIL, 2001)))); s2.add(new Task("Requirements Analysis", new SimpleTimePeriod(date(10, Calendar.APRIL, 2001), date(15, Calendar.MAY, 2001)))); s2.add(new Task("Design Phase", new SimpleTimePeriod(date(15, Calendar.MAY, 2001), date(17, Calendar.JUNE, 2001)))); s2.add(new Task("Design Signoff", new SimpleTimePeriod(date(30, Calendar.JUNE, 2001), date(30, Calendar.JUNE, 2001)))); s2.add(new Task("Alpha Implementation", new SimpleTimePeriod(date(1, Calendar.JULY, 2001), date(12, Calendar.SEPTEMBER, 2001)))); s2.add(new Task("Design Review", new SimpleTimePeriod(date(12, Calendar.SEPTEMBER, 2001), date(22, Calendar.SEPTEMBER, 2001)))); s2.add(new Task("Revised Design Signoff", new SimpleTimePeriod(date(25, Calendar.SEPTEMBER, 2001), date(27, Calendar.SEPTEMBER, 2001)))); s2.add(new Task("Beta Implementation", new SimpleTimePeriod(date(27, Calendar.SEPTEMBER, 2001), date(30, Calendar.OCTOBER, 2001)))); s2.add(new Task("Testing", new SimpleTimePeriod(date(31, Calendar.OCTOBER, 2001), date(17, Calendar.NOVEMBER, 2001)))); s2.add(new Task("Final Implementation", new SimpleTimePeriod(date(18, Calendar.NOVEMBER, 2001), date(5, Calendar.DECEMBER, 2001)))); s2.add(new Task("Signoff", new SimpleTimePeriod(date(10, Calendar.DECEMBER, 2001), date(11, Calendar.DECEMBER, 2001)))); final TaskSeriesCollection collection = new TaskSeriesCollection(); collection.add(s1); collection.add(s2); return collection; } /** * Utility method for creating Date objects. * * @param day * the date. * @param month * the month. * @param year * the year. * * @return a date. */ private static Date date(final int day, final int month, @SuppressWarnings("SameParameterValue") final int year) { final Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); return calendar.getTime(); } /** * Creates a chart. * * @param dataset * the dataset. * * @return The chart. */ private JFreeChart createChartGantt(final IntervalCategoryDataset dataset) { return ChartFactory.createGanttChart("Gantt Chart Demo", // chart // title "Task", // domain axis label "Date", // range axis label dataset, // data true, // include legend true, // tooltips false // urls ); } /** * Creates a sample dataset. * * @return A sample dataset. */ private CategoryDataset createDatasetCategory() { final DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(5.6, "Row 0", "Column 0"); dataset.addValue(3.2, "Row 0", "Column 1"); dataset.addValue(1.8, "Row 0", "Column 2"); dataset.addValue(0.2, "Row 0", "Column 3"); dataset.addValue(4.1, "Row 0", "Column 4"); dataset.addValue(9.8, "Row 1", "Column 0"); dataset.addValue(6.3, "Row 1", "Column 1"); dataset.addValue(0.1, "Row 1", "Column 2"); dataset.addValue(1.9, "Row 1", "Column 3"); dataset.addValue(9.6, "Row 1", "Column 4"); dataset.addValue(7.0, "Row 2", "Column 0"); dataset.addValue(5.2, "Row 2", "Column 1"); dataset.addValue(2.8, "Row 2", "Column 2"); dataset.addValue(8.8, "Row 2", "Column 3"); dataset.addValue(7.2, "Row 2", "Column 4"); dataset.addValue(9.5, "Row 3", "Column 0"); dataset.addValue(1.2, "Row 3", "Column 1"); dataset.addValue(4.5, "Row 3", "Column 2"); dataset.addValue(4.4, "Row 3", "Column 3"); dataset.addValue(0.2, "Row 3", "Column 4"); dataset.addValue(3.5, "Row 4", "Column 0"); dataset.addValue(6.7, "Row 4", "Column 1"); dataset.addValue(9.0, "Row 4", "Column 2"); dataset.addValue(1.0, "Row 4", "Column 3"); dataset.addValue(5.2, "Row 4", "Column 4"); dataset.addValue(5.1, "Row 5", "Column 0"); dataset.addValue(6.7, "Row 5", "Column 1"); dataset.addValue(0.9, "Row 5", "Column 2"); dataset.addValue(3.3, "Row 5", "Column 3"); dataset.addValue(3.9, "Row 5", "Column 4"); dataset.addValue(5.6, "Row 6", "Column 0"); dataset.addValue(5.6, "Row 6", "Column 1"); dataset.addValue(5.6, "Row 6", "Column 2"); dataset.addValue(5.6, "Row 6", "Column 3"); dataset.addValue(5.6, "Row 6", "Column 4"); dataset.addValue(7.5, "Row 7", "Column 0"); dataset.addValue(9.0, "Row 7", "Column 1"); dataset.addValue(3.4, "Row 7", "Column 2"); dataset.addValue(4.1, "Row 7", "Column 3"); dataset.addValue(0.5, "Row 7", "Column 4"); return dataset; } /** * Creates a sample chart for the given dataset. * * @param dataset * the dataset. * * @return A sample chart. */ private JFreeChart createChartCategory(final CategoryDataset dataset) { final JFreeChart chart = ChartFactory.createMultiplePieChart3D("Multiple Pie Chart Demo 4", dataset, TableOrder.BY_COLUMN, false, true, false); chart.setBackgroundPaint(new Color(216, 255, 216)); final MultiplePiePlot plot = (MultiplePiePlot) chart.getPlot(); final JFreeChart subchart = plot.getPieChart(); // final StandardLegend legend = new StandardLegend(); // legend.setItemFont(new Font("SansSerif", Font.PLAIN, 8)); // legend.setAnchor(Legend.SOUTH); // subchart.setLegend(legend); plot.setLimit(0.10); final PiePlot p = (PiePlot) subchart.getPlot(); // p.setLabelGenerator(new StandardPieItemLabelGenerator("{0}")); p.setLabelFont(new Font("SansSerif", Font.PLAIN, 8)); p.setInteriorGap(0.30); return chart; } private static JFreeChart createSpiderChart(CategoryDataset dataset) { SpiderWebPlot plot = new SpiderWebPlot(dataset); plot.setStartAngle(54); plot.setInteriorGap(0.40); plot.setToolTipGenerator(new StandardCategoryToolTipGenerator()); JFreeChart chart = new JFreeChart("Spider Web Chart Demo 1", TextTitle.DEFAULT_FONT, plot, false); LegendTitle legend = new LegendTitle(plot); legend.setPosition(RectangleEdge.BOTTOM); chart.addSubtitle(legend); ChartUtilities.applyCurrentTheme(chart); return chart; } } PdfBoxGraphics2DFontTextDrawerDefaultFontsTest.java000066400000000000000000000061111415770645300454610ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.junit.Test; import java.awt.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; public class PdfBoxGraphics2DFontTextDrawerDefaultFontsTest { @Test public void testFontStyleMatching() { Font anyFont = Font.decode("Dialog"); Font anyFontBold = anyFont.deriveFont(Font.BOLD); Font anyFontItalic = anyFont.deriveFont(Font.ITALIC); Font anyFontBoldItalic = anyFont.deriveFont(Font.BOLD | Font.ITALIC); assertEquals(PDType1Font.COURIER, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingCourier(anyFont)); assertEquals(PDType1Font.COURIER_BOLD, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingCourier(anyFontBold)); assertEquals(PDType1Font.COURIER_OBLIQUE, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingCourier(anyFontItalic)); assertEquals(PDType1Font.COURIER_BOLD_OBLIQUE, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingCourier(anyFontBoldItalic)); assertEquals(PDType1Font.HELVETICA, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingHelvetica(anyFont)); assertEquals(PDType1Font.HELVETICA_BOLD, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingHelvetica(anyFontBold)); assertEquals(PDType1Font.HELVETICA_OBLIQUE, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingHelvetica(anyFontItalic)); assertEquals(PDType1Font.HELVETICA_BOLD_OBLIQUE, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingHelvetica(anyFontBoldItalic)); assertEquals(PDType1Font.TIMES_ROMAN, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingTimes(anyFont)); assertEquals(PDType1Font.TIMES_BOLD, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingTimes(anyFontBold)); assertEquals(PDType1Font.TIMES_ITALIC, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingTimes(anyFontItalic)); assertEquals(PDType1Font.TIMES_BOLD_ITALIC, PdfBoxGraphics2DFontTextDrawerDefaultFonts.chooseMatchingTimes(anyFontBoldItalic)); } @Test public void testDefaultFontMapping() { assertEquals(PDType1Font.HELVETICA, PdfBoxGraphics2DFontTextDrawerDefaultFonts.mapDefaultFonts(Font.decode(Font.DIALOG))); assertEquals(PDType1Font.HELVETICA, PdfBoxGraphics2DFontTextDrawerDefaultFonts.mapDefaultFonts(Font.decode(Font.DIALOG_INPUT))); assertEquals(PDType1Font.HELVETICA, PdfBoxGraphics2DFontTextDrawerDefaultFonts.mapDefaultFonts(Font.decode("Arial"))); assertEquals(PDType1Font.COURIER, PdfBoxGraphics2DFontTextDrawerDefaultFonts.mapDefaultFonts(Font.decode(Font.MONOSPACED))); assertEquals(PDType1Font.TIMES_ROMAN, PdfBoxGraphics2DFontTextDrawerDefaultFonts.mapDefaultFonts(Font.decode(Font.SERIF))); assertEquals(PDType1Font.ZAPF_DINGBATS, PdfBoxGraphics2DFontTextDrawerDefaultFonts.mapDefaultFonts(Font.decode("Dingbats"))); assertEquals(PDType1Font.SYMBOL, PdfBoxGraphics2DFontTextDrawerDefaultFonts.mapDefaultFonts(Font.decode("Symbol"))); assertNull(PdfBoxGraphics2DFontTextDrawerDefaultFonts.mapDefaultFonts(Font.decode("Georgia"))); } }PdfBoxGraphics2DTestBase.java000066400000000000000000000124451415770645300411030ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.util.Matrix; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; class PdfBoxGraphics2DTestBase { enum Mode { DefaultVectorized, FontTextIfPossible, ForceFontText, DefaultFontText } void exportGraphic(String dir, String name, GraphicsExporter exporter) { try { PDDocument document = new PDDocument(); PDFont pdArial = PDType1Font.HELVETICA; File parentDir = new File("target/test/" + dir); // noinspection ResultOfMethodCallIgnored parentDir.mkdirs(); int scale = 4; exportAsPNG(name, exporter, parentDir, scale); for (Mode m : Mode.values()) { PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); PdfBoxGraphics2DFontTextDrawer fontTextDrawer = null; contentStream.beginText(); contentStream.setStrokingColor(0f, 0f, 0f); contentStream.setNonStrokingColor(0f, 0f, 0f); contentStream.setFont(PDType1Font.HELVETICA_BOLD, 15); contentStream.setTextMatrix(Matrix.getTranslateInstance(10, 800)); contentStream.showText("Mode " + m); contentStream.endText(); switch (m) { case FontTextIfPossible: fontTextDrawer = new PdfBoxGraphics2DFontTextDrawer(); registerFots(fontTextDrawer); break; case DefaultFontText: { fontTextDrawer = new PdfBoxGraphics2DFontTextDrawerDefaultFonts(); registerFots(fontTextDrawer); break; } case ForceFontText: fontTextDrawer = new PdfBoxGraphics2DFontTextForcedDrawer(); registerFots(fontTextDrawer); fontTextDrawer.registerFont("Arial", pdArial); break; case DefaultVectorized: default: break; } if (fontTextDrawer != null) { pdfBoxGraphics2D.setFontTextDrawer(fontTextDrawer); } exporter.draw(pdfBoxGraphics2D); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 20); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); matrix.scale(1.5f, 1.5f); matrix.translate(0, 100); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); contentStream.close(); } document.save(new File(parentDir, name + ".pdf")); document.close(); } catch (Exception e) { throw new RuntimeException(e); } } protected void exportAsPNG(String name, GraphicsExporter exporter, File parentDir, int scale) throws IOException, FontFormatException { BufferedImage image = new BufferedImage(400 * scale, 400 * scale, BufferedImage.TYPE_4BYTE_ABGR); Graphics2D imageGraphics = image.createGraphics(); imageGraphics.scale(scale, scale); exporter.draw(imageGraphics); imageGraphics.dispose(); ImageIO.write(image, "PNG", new File(parentDir, name + ".png")); } private void registerFots(PdfBoxGraphics2DFontTextDrawer fontTextDrawer) { fontTextDrawer.registerFont(new File( "src/test/resources/de/rototor/pdfbox/graphics2d/DejaVuSerifCondensed.ttf")); fontTextDrawer.registerFont(new File( "src/test/resources/de/rototor/pdfbox/graphics2d/antonio/Antonio-Regular.ttf")); } interface GraphicsExporter { void draw(Graphics2D gfx) throws IOException, FontFormatException; } } PdfBoxGraphics2dTest.java000066400000000000000000000355001415770645300403450ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/* * Copyright 2017 Emmeran Seehuber * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.rototor.pdfbox.graphics2d; import org.junit.Test; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import java.awt.*; import java.awt.font.TextAttribute; import java.awt.geom.*; import java.awt.image.BufferedImage; import java.io.IOException; import java.text.AttributedString; import java.util.Iterator; public class PdfBoxGraphics2dTest extends PdfBoxGraphics2DTestBase { @Test public void testNegativeShapesAndComposite() { exportGraphic("simple", "negativeWithComposite", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) { RoundRectangle2D.Float rect = new RoundRectangle2D.Float(10f, 10f, 20f, 20f, 5f, 6f); AffineTransform transformIdentity = new AffineTransform(); AffineTransform transformMirrored = AffineTransform.getTranslateInstance(0, 100); transformMirrored.scale(1, -0.5); for (AffineTransform tf : new AffineTransform[] { transformIdentity, transformMirrored }) { gfx.setTransform(tf); gfx.setColor(Color.red); gfx.fill(rect); gfx.setStroke(new BasicStroke(2f)); gfx.draw(rect); GradientPaint gp = new GradientPaint(10.0f, 25.0f, Color.blue, (float) 100, (float) 100, Color.red); gfx.setPaint(gp); gfx.fill(AffineTransform.getTranslateInstance(30f, 20f) .createTransformedShape(rect)); Composite composite = gfx.getComposite(); gfx.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.8f)); gfx.setColor(Color.cyan); gfx.fillRect(15, 0, 40, 40); gfx.setColor(Color.green); gfx.drawRect(20, 10, 50, 50); gfx.setColor(Color.magenta); gfx.fill(new Ellipse2D.Double(20, 20, 100, 100)); gfx.setColor(Color.orange); gfx.fill(new Ellipse2D.Double(20, 20, -100, 100)); gfx.setPaint(gp); gfx.fill(new Ellipse2D.Double(10, 80, 20, 20)); gfx.fill(new Ellipse2D.Double(10, 100, -20, -20)); gfx.setComposite(composite); } } }); } @Test public void testGradients() { exportGraphic("simple", "gradients", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) { LinearGradientPaint linearGradientPaint = new LinearGradientPaint(0, 0, 100, 200, new float[] { 0.0f, .2f, .4f, .9f, 1f }, new Color[] { Color.YELLOW, Color.GREEN, Color.RED, Color.BLUE, Color.GRAY }); gfx.setPaint(linearGradientPaint); gfx.fill(new Rectangle.Float(10, 10, 100, 50)); gfx.fill(new Rectangle.Float(120, 10, 50, 50)); gfx.fill(new Rectangle.Float(200, 10, 50, 100)); RadialGradientPaint radialGradientPaint = new RadialGradientPaint(200, 200, 200, new float[] { 0.0f, .2f, .4f, .9f, 1f }, new Color[] { Color.YELLOW, Color.GREEN, Color.RED, Color.BLUE, Color.GRAY }); gfx.setPaint(radialGradientPaint); gfx.fill(new Rectangle.Float(10, 120, 100, 50)); gfx.fill(new Rectangle.Float(120, 120, 50, 50)); gfx.fill(new Rectangle.Float(200, 120, 50, 100)); } }); } @Test public void testBuildPatternFill() { exportGraphic("simple", "patternfill", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) { AffineTransform transformIdentity = new AffineTransform(); Composite composite = gfx.getComposite(); RadialGradientPaint radialGradientPaint = new RadialGradientPaint(200, 200, 200, new float[] { 0.0f, .2f, .4f, .9f, 1f }, new Color[] { Color.YELLOW, Color.GREEN, Color.RED, Color.BLUE, Color.GRAY }); gfx.setPaint(radialGradientPaint); gfx.setStroke(new BasicStroke(20)); gfx.draw(new Ellipse2D.Double(100, 100, 80, 80)); gfx.draw(new Ellipse2D.Double(150, 150, 50, 80)); gfx.shear(0.4, 0.2); gfx.draw(new Ellipse2D.Double(150, 150, 50, 80)); gfx.setComposite(composite); } }); } @Test public void testDifferentFonts() { exportGraphic("simple", "fonts", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) throws IOException, FontFormatException { Font sansSerif = new Font(Font.SANS_SERIF, Font.PLAIN, 15); Font embeddedFont = Font.createFont(Font.TRUETYPE_FONT, PdfBoxGraphics2dTest.class.getResourceAsStream("DejaVuSerifCondensed.ttf")) .deriveFont(15f); Font monoFont = Font.decode(Font.MONOSPACED).deriveFont(15f); Font serifFont = Font.decode(Font.SERIF).deriveFont(15f); int y = 50; for (Font f : new Font[] { sansSerif, embeddedFont, monoFont, serifFont }) { int x = 10; gfx.setPaint(Color.BLACK); gfx.setFont(f); String txt = f.getFontName() + ": "; gfx.drawString(txt, x, y); x += gfx.getFontMetrics().stringWidth(txt); txt = "Normal "; gfx.drawString(txt, x, y); x += gfx.getFontMetrics().stringWidth(txt); gfx.setPaint(new PdfBoxGraphics2DCMYKColor(1f, 0.5f, 1f, 0.1f, 128)); txt = "Bold "; gfx.setFont(f.deriveFont(Font.BOLD)); gfx.drawString(txt, x, y); x += gfx.getFontMetrics().stringWidth(txt); gfx.setPaint(new PdfBoxGraphics2DCMYKColor(128, 128, 128, 0)); txt = "Italic "; gfx.setFont(f.deriveFont(Font.ITALIC)); gfx.drawString(txt, x, y); x += gfx.getFontMetrics().stringWidth(txt); gfx.setPaint(new PdfBoxGraphics2DCMYKColor(255, 255, 255, 255)); txt = "Bold-Italic "; gfx.setFont(f.deriveFont(Font.ITALIC | Font.BOLD)); gfx.drawString(txt, x, y); gfx.getFontMetrics().stringWidth(txt); y += 30; } } }); } @Test public void testImageEncoding() { exportGraphic("imageenc", "imageenc", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) throws IOException { BufferedImage img2 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("pixeltest.png")); BufferedImage img3 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("Rose-ProPhoto.jpg")); BufferedImage img4 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("Italy-P3.jpg")); BufferedImage img5 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("16bit-image1.png")); BufferedImage img6 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("16bit-image2.png")); gfx.drawImage(img2, 70, 50, 100, 50, null); gfx.drawImage(img3, 30, 200, 75, 50, null); gfx.drawImage(img4, 170, 10, 60, 40, null); gfx.drawImage(img5, 270, 10, 16, 16, null); gfx.drawImage(img5, 270, 30, 64, 64, null); gfx.drawImage(img6, 270, 200, 100, 100, null); } }); } @Test public void testImageAlpha() { exportGraphic("imageenc", "imgalpha", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) throws IOException { BufferedImage img3 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("Rose-ProPhoto.jpg")); gfx.setColor(new Color(128, 128, 255, 58)); gfx.drawImage(img3, 30, 10, 75, 50, null); gfx.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER)); gfx.drawImage(img3, 30, 90, 75, 50, null); gfx.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); gfx.drawImage(img3, 30, 160, 75, 50, null); } }); } @Test public void testEvenOddRules() { exportGraphic("simple", "evenOdd", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) { gfx.setColor(Color.YELLOW); gfx.fillPolygon(new int[] { 80, 129, 0, 160, 31 }, new int[] { 0, 152, 58, 58, 152 }, 5); Path2D.Double s = new Path2D.Double(); s.moveTo(80, 0); s.lineTo(129, 152); s.lineTo(0, 58); s.lineTo(160, 58); s.lineTo(31, 152); s.setWindingRule(Path2D.WIND_EVEN_ODD); gfx.setColor(Color.BLUE); gfx.translate(200, 0); gfx.fill(s); s.setWindingRule(Path2D.WIND_NON_ZERO); gfx.setColor(Color.GREEN); gfx.translate(0, 200); gfx.fill(s); } }); } @Test public void testSimpleGraphics2d() { Iterator readers = ImageIO.getImageReadersByFormatName("JPEG"); while (readers.hasNext()) { System.out.println("reader: " + readers.next()); } exportGraphic("simple", "simple", new GraphicsExporter() { @Override public void draw(Graphics2D gfx) throws IOException, FontFormatException { BufferedImage imgColorTest = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("colortest.png")); BufferedImage img2 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("pixeltest.png")); BufferedImage img3 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("Rose-ProPhoto.jpg")); BufferedImage img4 = ImageIO .read(PdfBoxGraphics2dTest.class.getResourceAsStream("Italy-P3.jpg")); gfx.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); gfx.drawImage(imgColorTest, 70, 50, 100, 50, null); gfx.drawImage(img3, 30, 200, 75, 50, null); gfx.drawImage(img3, 110, 200, 50, 50, null); gfx.drawImage(img4, 170, 10, 60, 40, null); gfx.setColor(Color.YELLOW); gfx.drawRect(20, 20, 100, 100); gfx.setColor(Color.GREEN); gfx.fillRect(10, 10, 50, 50); gfx.setColor(new PdfBoxGraphics2DCMYKColor(255, 128, 0, 128, 200)); gfx.drawString("Hello World!", 30, 120); gfx.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR); gfx.drawImage(img2, 30, 50, 50, 50, null); Font font = new Font("SansSerif", Font.PLAIN, 30); Font font2 = Font.createFont(Font.TRUETYPE_FONT, PdfBoxGraphics2dTest.class.getResourceAsStream("DejaVuSerifCondensed.ttf")) .deriveFont(20f); final String words = "Valour fate kinship darkness"; AttributedString as1 = new AttributedString(words); as1.addAttribute(TextAttribute.FONT, font); Rectangle2D valour = font2.getStringBounds("Valour", gfx.getFontRenderContext()); GradientPaint gp = new GradientPaint(10.0f, 25.0f, Color.blue, (float) valour.getWidth(), (float) valour.getHeight(), Color.red); gfx.setColor(Color.GREEN); as1.addAttribute(TextAttribute.FOREGROUND, gp, 0, 6); as1.addAttribute(TextAttribute.KERNING, TextAttribute.KERNING_ON, 0, 6); as1.addAttribute(TextAttribute.FONT, font2, 0, 6); as1.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, 7, 11); as1.addAttribute(TextAttribute.BACKGROUND, Color.LIGHT_GRAY, 12, 19); as1.addAttribute(TextAttribute.FONT, font2, 20, 28); as1.addAttribute(TextAttribute.LIGATURES, TextAttribute.LIGATURES_ON, 20, 28); as1.addAttribute(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON, 20, 28); gfx.drawString(as1.getIterator(), 15, 160); // Hello World - in arabic and hebrew Font font3 = new Font("SansSerif", Font.PLAIN, 40); gfx.setFont(font3); gfx.setColor(Color.BLACK); gfx.drawString("مرحبا بالعالم", 200, 100); gfx.setPaint( new TexturePaint(imgColorTest, new Rectangle2D.Float(5f, 7f, 100f, 20f))); gfx.drawString("مرحبا بالعالم", 200, 250); gfx.drawString("שלום עולם", 200, 200); gfx.setClip(new Ellipse2D.Float(360, 360, 60, 80)); gfx.fillRect(300, 300, 100, 100); gfx.setClip(null); gfx.fillRect(360, 360, 10, 10); } }); } } PdfRerenderTest.java000066400000000000000000000244511415770645300374570ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.color.PDCalGray; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace; import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB; import org.apache.pdfbox.pdmodel.graphics.color.PDPattern; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory; import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory; import org.apache.pdfbox.pdmodel.graphics.image.PDImage; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import org.apache.pdfbox.rendering.PDFRenderer; import org.apache.pdfbox.rendering.PageDrawer; import org.apache.pdfbox.rendering.PageDrawerParameters; import org.junit.Test; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class PdfRerenderTest { @Test public void testPDFRerender() throws IOException { rerenderPDF("heart.pdf"); rerenderPDF("barChart.pdf"); rerenderPDF("patternfill.pdf"); } @Test public void testPDFRerenderFordFocus() throws IOException { rerenderPDF("compuserver_msn_Ford_Focus.pdf"); } @Test public void testSimpleRerender() throws IOException { simplePDFRerender("antonio_sample.pdf"); } @Test public void testSimpleRerenderAsBitmap() throws IOException { simplePDFRerenderAsBitmap("antonio_sample.pdf", false); simplePDFRerenderAsBitmap("antonio_sample.pdf", true); } public void simplePDFRerenderAsBitmap(String name, boolean lossless) throws IOException { File parentDir = new File("target/test"); // noinspection ResultOfMethodCallIgnored parentDir.mkdirs(); PDDocument document = new PDDocument(); PDDocument sourceDoc = PDDocument.load(PdfRerenderTest.class.getResourceAsStream(name)); for (PDPage sourcePage : sourceDoc.getPages()) { PDRectangle mediaBox = sourcePage.getMediaBox(); PDPage rerenderedPage = new PDPage(mediaBox); document.addPage(rerenderedPage); PDPageContentStream cb = new PDPageContentStream(document, rerenderedPage); try { PDFRenderer pdfRenderer = new PDFRenderer(sourceDoc); float targetDPI = 300; BufferedImage bufferedImage = pdfRenderer.renderImage( sourceDoc.getPages().indexOf(sourcePage), targetDPI / 72.0f); PDImageXObject image; if (lossless) image = LosslessFactory.createFromImage(document, bufferedImage); else image = JPEGFactory.createFromImage(document, bufferedImage, 0.7f); cb.drawImage(image, 0, 0, mediaBox.getWidth(), mediaBox.getHeight()); } finally { cb.close(); } } document.save(new File(parentDir, "simple_bitmap_" + (lossless ? "" : "_jpeg_") + name)); document.close(); sourceDoc.close(); } public void simplePDFRerender(String name) throws IOException { File parentDir = new File("target/test"); // noinspection ResultOfMethodCallIgnored parentDir.mkdirs(); PDDocument document = new PDDocument(); PDDocument sourceDoc = PDDocument.load(PdfRerenderTest.class.getResourceAsStream(name)); for (PDPage sourcePage : sourceDoc.getPages()) { PDPage rerenderedPage = new PDPage(sourcePage.getMediaBox()); document.addPage(rerenderedPage); PDPageContentStream cb = new PDPageContentStream(document, rerenderedPage); try { PdfBoxGraphics2D gfx = new PdfBoxGraphics2D(document, sourcePage.getMediaBox()); PDFRenderer pdfRenderer = new PDFRenderer(sourceDoc); pdfRenderer.renderPageToGraphics(sourceDoc.getPages().indexOf(sourcePage), gfx); gfx.dispose(); PDFormXObject xFormObject = gfx.getXFormObject(); cb.drawForm(xFormObject); } finally { cb.close(); } } document.save(new File(parentDir, "simple_rerender" + name)); document.close(); sourceDoc.close(); } private void rerenderPDF(String name) throws IOException { File parentDir = new File("target/test"); // noinspection ResultOfMethodCallIgnored parentDir.mkdirs(); PDDocument document = new PDDocument(); PDDocument sourceDoc = PDDocument.load(PdfRerenderTest.class.getResourceAsStream(name)); for (PDPage sourcePage : sourceDoc.getPages()) { PDPage rerenderedPage = new PDPage(sourcePage.getMediaBox()); document.addPage(rerenderedPage); PDPageContentStream cb = new PDPageContentStream(document, rerenderedPage); try { PdfBoxGraphics2D gfx = new PdfBoxGraphics2D(document, sourcePage.getMediaBox()); // Do overfill for red with a transparent green gfx.setDrawControl(new PdfBoxGraphics2DDrawControlDefault() { boolean insideOwnDraw = false; @Override public void afterShapeFill(Shape shape, IDrawControlEnv env) { afterShapeDraw(shape, env); } @Override public void afterShapeDraw(Shape shape, IDrawControlEnv env) { if (insideOwnDraw) return; insideOwnDraw = true; Paint paint = env.getPaint(); if (paint instanceof Color) { if (paint.equals(Color.RED)) { // We overfill with black a little bit PdfBoxGraphics2D graphics = env.getGraphics(); Stroke prevStroke = graphics.getStroke(); float additinalStrokeWidth = 1f; if (prevStroke instanceof BasicStroke) { BasicStroke basicStroke = ((BasicStroke) prevStroke); graphics.setStroke(new BasicStroke( basicStroke.getLineWidth() + additinalStrokeWidth, basicStroke.getEndCap(), basicStroke.getLineJoin(), basicStroke.getMiterLimit(), basicStroke.getDashArray(), basicStroke.getDashPhase())); } else { graphics.setStroke(new BasicStroke(additinalStrokeWidth)); } graphics.setPaint(new PdfBoxGraphics2DColor( new PDColor(new float[] { 0.5f }, new PDCalGray()))); graphics.draw(shape); graphics.setPaint(paint); graphics.setStroke(prevStroke); } } insideOwnDraw = false; } }); PDFRenderer pdfRenderer = new PDFRenderer(sourceDoc) { @Override protected PageDrawer createPageDrawer(PageDrawerParameters parameters) throws IOException { return new PageDrawer(parameters) { @Override protected Paint getPaint(PDColor color) throws IOException { PDColorSpace colorSpace = color.getColorSpace(); // We always must handle patterns recursive if (colorSpace instanceof PDPattern) return super.getPaint(color); // Now our special logic if (colorSpace instanceof PDDeviceRGB) { float[] components = color.getComponents(); boolean allBlack = true; for (float f : components) { if (f > 0.0) allBlack = false; } if (allBlack) return new PdfBoxGraphics2DCMYKColor(1f, 0.0f, 0.2f, 0.1f, 128); } // All other colors just stay the same... return super.getPaint(color); } @Override public void drawImage(PDImage pdImage) { // We dont like images, just skip them all } }; } }; pdfRenderer.renderPageToGraphics(sourceDoc.getPages().indexOf(sourcePage), gfx); gfx.dispose(); PDFormXObject xFormObject = gfx.getXFormObject(); cb.drawForm(xFormObject); } finally { cb.close(); } } document.save(new File(parentDir, "rerendered_" + name)); document.close(); sourceDoc.close(); } } RenderSVGsTest.java000066400000000000000000000147201415770645300372370ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.batik.anim.dom.SAXSVGDocumentFactory; import org.apache.batik.bridge.BridgeContext; import org.apache.batik.bridge.DocumentLoader; import org.apache.batik.bridge.GVTBuilder; import org.apache.batik.bridge.UserAgent; import org.apache.batik.bridge.UserAgentAdapter; import org.apache.batik.gvt.GraphicsNode; import org.apache.batik.util.XMLResourceDescriptor; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.util.Matrix; import org.junit.Test; import org.w3c.dom.Document; import java.awt.*; import java.awt.color.ICC_Profile; import java.io.File; import java.io.IOException; public class RenderSVGsTest extends PdfBoxGraphics2DTestBase { @Test public void testSVGs() throws IOException { renderSVG("barChart.svg", 0.45); renderSVG("gump-bench.svg", 1); renderSVG("json.svg", 150); renderSVG("heart.svg", 200); renderSVG("displayWebStats.svg", 200); renderSVG("compuserver_msn_Ford_Focus.svg", 0.7); renderSVG("watermark.svg", 0.4); } @Test public void renderFailureCases() throws IOException { // renderSVG("openhtml_536.svg", 1); renderSVG("openhtml_538_gradient.svg", .5); } @Test public void testGradientSVGEmulateObjectBoundingBox() throws IOException { renderSVG("long-gradient.svg", 0.55); renderSVG("tall-gradient.svg", 0.33); renderSVG("near-square-gradient.svg", 0.30); renderSVG("square-gradient.svg", 0.55); renderSVG("tall-gradient-downward-slope.svg", 0.33); } @Test public void testHorizontalGradient() throws IOException { renderSVG("horizontal-gradient.svg", 0.55); } @Test public void testSVGinCMYKColorspace() throws IOException, FontFormatException { renderSVGCMYK("atmospheric-composition.svg", 0.7); } private void renderSVG(String name, final double scale) throws IOException { String uri = String.valueOf(RenderSVGsTest.class.getResource(name)); // create the document String parser = XMLResourceDescriptor.getXMLParserClassName(); SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser); Document document = f.createDocument(uri, RenderSVGsTest.class.getResourceAsStream(name)); // create the GVT UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext bctx = new BridgeContext(userAgent, loader); bctx.setDynamicState(BridgeContext.STATIC); GVTBuilder builder = new GVTBuilder(); final GraphicsNode gvtRoot = builder.build(bctx, document); this.exportGraphic("svg", name.replace(".svg", ""), new GraphicsExporter() { @Override public void draw(Graphics2D gfx) { gfx.scale(scale, scale); gvtRoot.paint(gfx); } }); } private void renderSVGCMYK(String name, final double scale) throws IOException, FontFormatException { String uri = String.valueOf(RenderSVGsTest.class.getResource(name)); // create the document String parser = XMLResourceDescriptor.getXMLParserClassName(); SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser); Document document = f.createDocument(uri, RenderSVGsTest.class.getResourceAsStream(name)); // create the GVT File parentDir = new File("target/test/svg"); UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext bctx = new BridgeContext(userAgent, loader); bctx.setDynamicState(BridgeContext.STATIC); GVTBuilder builder = new GVTBuilder(); final GraphicsNode gvtRoot = builder.build(bctx, document); exportAsPNG(name, new GraphicsExporter() { @Override public void draw(Graphics2D gfx) { gfx.scale(scale, scale); gvtRoot.paint(gfx); } }, parentDir, (int) Math.round(scale + 0.5)*2); try { PDDocument pdfDocument = new PDDocument(); // noinspection ResultOfMethodCallIgnored parentDir.mkdirs(); PDPage page = new PDPage(PDRectangle.A4); pdfDocument.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(pdfDocument, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(pdfDocument, 400, 400); ICC_Profile icc_profile = ICC_Profile.getInstance(PDDocument.class.getResourceAsStream( "/org/apache/pdfbox/resources/icc/ISOcoated_v2_300_bas.icc")); PdfBoxGraphics2DColorMapper colorMapper = new RGBtoCMYKColorMapper(icc_profile, pdfDocument); pdfBoxGraphics2D.setColorMapper(colorMapper); PdfBoxGraphics2DFontTextDrawer fontTextDrawer = null; contentStream.beginText(); contentStream.setStrokingColor(0.0f, 0.0f, 0.0f, 1.0f); contentStream.setNonStrokingColor(0.0f, 0.0f, 0.0f, 1.0f); contentStream.setFont(PDType1Font.HELVETICA_BOLD, 15); contentStream.setTextMatrix(Matrix.getTranslateInstance(10, 800)); contentStream.showText("Mode: CMYK colorspace"); contentStream.endText(); fontTextDrawer = new PdfBoxGraphics2DFontTextDrawer(); pdfBoxGraphics2D.setFontTextDrawer(fontTextDrawer); pdfBoxGraphics2D.scale(scale, scale); gvtRoot.paint(pdfBoxGraphics2D); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 300); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); contentStream.close(); String baseName = name.substring(0, name.lastIndexOf('.')); pdfDocument.save(new File(parentDir, baseName + ".pdf")); pdfDocument.close(); } catch (Exception e) { throw new RuntimeException(e); } } } SpecialColorsTest.java000066400000000000000000000105011415770645300400100ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.cos.*; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.common.function.PDFunctionType2; import org.apache.pdfbox.pdmodel.graphics.color.PDColor; import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK; import org.apache.pdfbox.pdmodel.graphics.color.PDSeparation; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.util.Matrix; import org.junit.Test; import java.io.File; import java.io.IOException; /** * Generates some PDFs with a special color scodix. In one PDF the painted * rectangle is not visible, because its complete clipped out. What is this good * for -> technical marker in a context in which multible such PDFs are * composed/combined to build the final PDF, so a rather very special case. */ public class SpecialColorsTest { @Test public void writeEmptyScodixPdf() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); final PDSeparation scodix = getScodixSeperationColor(); pdfBoxGraphics2D.setColor(new PdfBoxGraphics2DColor(new PDColor(new float[] { 1 }, scodix), 255, true)); pdfBoxGraphics2D.fillRoundRect(10, 10, 100, 100, 20, 20); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 20); contentStream.transform(matrix); /* * We set an invalid clipping, i.e. a clipping in which the resulting region is * completly empty */ contentStream.moveTo(1, 1); contentStream.lineTo(20, 20); contentStream.lineTo(10, 10); contentStream.clip(); contentStream.moveTo(50, 10); contentStream.lineTo(200, 200); contentStream.lineTo(100, 100); contentStream.clip(); contentStream.drawForm(appearanceStream); contentStream.close(); parent.mkdirs(); document.save(new File(parent, "empty_scodix.pdf")); } static final File parent = new File("target/test/specialcolor"); @Test public void writeScodixPdf() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); final PDSeparation scodix = getScodixSeperationColor(); pdfBoxGraphics2D.setColor(new PdfBoxGraphics2DColor(new PDColor(new float[] { 1 }, scodix), 255, true)); pdfBoxGraphics2D.fillRoundRect(10, 10, 100, 100, 20, 20); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 20); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); contentStream.close(); parent.mkdirs(); document.save(new File(parent, "scodix.pdf")); } private PDSeparation getScodixSeperationColor() throws IOException { PDSeparation scodix = new PDSeparation(); scodix.setAlternateColorSpace(PDDeviceCMYK.INSTANCE); scodix.setColorantName("Scodix"); COSDictionary tintFunctionArray = new COSDictionary(); COSArray c0Array = new COSArray(); COSArray c1Array = new COSArray(); for (int i = 0; i < 4; i++) { c0Array.add(COSNumber.get("0.0")); c1Array.add(COSNumber.get("0.0")); } c1Array.set(1, COSNumber.get("1.0")); tintFunctionArray.setItem(COSName.C0, c0Array); tintFunctionArray.setItem(COSName.C1, c1Array); COSArray domain = new COSArray(); domain.add(COSInteger.get(0)); domain.add(COSInteger.get(1)); tintFunctionArray.setItem(COSName.DOMAIN, domain); tintFunctionArray.setItem(COSName.N, COSNumber.get("1.0")); tintFunctionArray.setItem(COSName.FUNCTION_TYPE, COSInteger.get(2)); COSArray range = new COSArray(); for (int i = 0; i < 4; i++) { range.add(COSNumber.get("0.0")); range.add(COSNumber.get("1.0")); } tintFunctionArray.setItem(COSName.RANGE, range); scodix.setTintTransform(new PDFunctionType2(tintFunctionArray)); return scodix; } } TestDanglingGfxCase.java000066400000000000000000000044011415770645300402340ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.util.Matrix; import org.junit.Test; import java.awt.*; import java.io.File; import java.io.IOException; public class TestDanglingGfxCase { @Test public void testDanglingGfx() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); PdfBoxGraphics2D child = pdfBoxGraphics2D.create(10, 10, 40, 40); child.setColor(Color.RED); child.fillRect(0, 0, 100, 100); PdfBoxGraphics2D child2 = child.create(20, 20, 10, 10); child2.setColor(Color.GREEN); child2.drawOval(0, 0, 5, 5); child.create(); pdfBoxGraphics2D.disposeDanglingChildGraphics(); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 20); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); contentStream.close(); File file = new File("target/test/dangling_test.pdf"); //noinspection ResultOfMethodCallIgnored file.getParentFile().mkdirs(); document.save(file); document.close(); } @Test(expected = IllegalStateException.class) public void testDanglingDisposeException() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); pdfBoxGraphics2D.create(); pdfBoxGraphics2D.dispose(); } @Test(expected = IllegalStateException.class) public void testDanglingDisposeException2() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); pdfBoxGraphics2D.create().disposeDanglingChildGraphics(); } } TestDrawEmptyString.java000066400000000000000000000026351415770645300403620ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/java/de/rototor/pdfbox/graphics2dpackage de.rototor.pdfbox.graphics2d; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.util.Matrix; import org.junit.Test; import java.awt.*; import java.io.File; import java.io.IOException; public class TestDrawEmptyString { @Test public void testDrawEmptyString() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); pdfBoxGraphics2D.setColor(Color.GREEN); pdfBoxGraphics2D.drawString("This is visible", 10, 10); pdfBoxGraphics2D.drawString("", 50, 50); pdfBoxGraphics2D.drawString(" ", 100, 50); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 20); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); contentStream.close(); File file = new File("target/test/draw_empty_test.pdf"); // noinspection ResultOfMethodCallIgnored file.getParentFile().mkdirs(); document.save(file); document.close(); } } pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/000077500000000000000000000000001415770645300273065ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/000077500000000000000000000000001415770645300276765ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/000077500000000000000000000000001415770645300314065ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/000077500000000000000000000000001415770645300326705ustar00rootroot00000000000000graphics2d/000077500000000000000000000000001415770645300346375ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox16bit-image1.png000066400000000000000000000011711415770645300374330ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dPNG  IHDROc#"tEXtjira-system-image-typeavataraIDATxc`j@>\WIg^檸 ^f|uhԁ߯N֖(mz6[!,V-Pcm1WokUT WwkKTD[z6)_ЖyRۡ"t3:/kk/Rك^f)PLF״ c[t\Er2ТZiPQim @>$D^F׼m1Ѓ Aݫ=3k^SQ}ՑDexqأ8U4!Ѩ" PIE~B4!rmJTʫ*f_] SV @U$Ǘk`P9BmډWOj+Ux&d_^6Y uj'PNjTZNkݕE_֬S bZ$45X+'m*rbx?8=0 [kgzL+z,x V|5_Onu«* 3?PSOJIENDB`16bit-image2.png000066400000000000000000000076061415770645300374450ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dPNG  IHDRXXaMIDATxN\GDѺR.| |0yAı {'d,;3ݪSm{zݶm{﷧_~/~~??'zyoz/*n{z{~xTDUz~oxO;{ëWw=;?*}o'O?*7y~_*}Ox'^n8Dr D? ʁ RM HBC%!DY*ed (@ J JBC@ed R( !@!@ J (@Q( !@ R( !@!@!@.B !@2QB(B( !@!@2QB(Ke$Q:QBM (@Q( !@ QB(B(Ke\L%!!DI,22 ed JBC%!!r 22 e @ J ʁ l!@ R( !@!@ ʁ R( !@2QB(B( !@٦Cdd (@ JBbz( !@!@2Q.DDI$QD22 %!!DD9DT JBC%!!22 ed JBuK HBC%!r T JBe @ J JB@e @ R( !@!@ l!22 ed JB%!r1=@ ʁ R(DItDY*%!!DD22 %!:ۥC$!!D9DY*%!T JBC%!r T JBe @ J JBu22 %!D JB@e @$Q:QB( !@2QFFDIt$Q:QQgt$QDI$Q.22 ed JBbz( !@!@ ʁ R( !@2QB(B( !@!@2QB(Ke$QQDm:AB(B( !@ R(#QFF$Q:QB(B(B]:AB(Ke$QB(D22 %!r1=@ J JB@e @ R( !@!@ ʁ R( !@2QB(B( !@٦Cdd (@ JBbz( !@!@2Q.DDItDDI,DD9D!DY*%!D (@Q( !@$QQDI,DDI6B #QFF$QB(DI,r1=@ J JBCed (@ JBe @ J ʁ l!@ R( !@ QFFDI\L%!!D9DY*%!T JBC%!r T JBe @ J JBu22 %!!DD9DT JBC%!!22 ed JB%!T (@Q( !@.B !@!@ ʁ R( !@2QB(B( !@!@2QB(Ke$Q:QBM (@Q( !@!@ J ʁ (@2QB(B( !@!@Q(#QB( !@2QB(B(B]:AB(Ke$QB(D22 %!r1=@ J JB@e @ R( !@!@ ʁ RM HBC%!DY*ed (@ J (@Q( !@ R( !@!@!@.B !@2QB( !@DD JBC%!r T JBe @ J JB@e @٦C$!!DI,22 ed JBC%!!r 22 e @ J JBCed (@ JBe @ J ʁ l!@ R( !@ QFFDI\L%!!D (@Q( !@ R(#QFF$Q:QB(B(B(#QDIt$Q:QFFDI$QDItvI,DI\Led (@ QB(B( !@{DDI\L%!r T QB(B( !@ R(#QFF$Q:QB(B(B(#QDIt$Q:QFFDI$QDItvI,Db'IENDB`DejaVuSerifCondensed.ttf000066400000000000000000012450501415770645300413570ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d@FFTMsLGDEF|hGPOS>RBbGSUB;DlMATH*K OS/2mOVcmapLωPDcvt 3a fpgmbgaspc, glyf~c8headu6hhea4$hmtxcX7 kern#Gx locahg7$maxp&@ name{Bf!postd(prepuyD^=))     z {   DFLT cyrl0grekLlatn\mathMKD SRB ^AZE ^CRT ^GAG ^ISM ^KAZ ^KRK ^KSM ^LSM ^MOL ^NSM ^ROM ^SKS ^SSM ^TAT ^TRK ^kernmarkmkmk ':Jr !DJPV\bhntz4d4f4444G44444f4f4l4l4f44G4S44f4f4f4f4f4f4444444  { { } }    { & $*06<BHNTZ`flrx4444444444444444444D44D4D444444444444444!@Z!z  .4:@FLRX^djpv|     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z     " ( . 4 : @ F L R X ^ d j p v |     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z  "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHk##mmRmmwwaa,,]]D'*D* t!D!3DR']'''jR'P''vDvD]*D*~D'RDtRD'D DDDDDRDks88Rkk*kADA*D*R##'D'D^^Daa3' *Dr[[mmDwDa]DDD RDRR!D!'5D]''DjRmD,,!D!RjRDD']]DRDDDD*Dt*D*D*DDDDMDM'DjR*D* @D@R DR'3DeDeeDeR]D]D}}RDDDDDR;D;hDhDRDv* IDkkaaDEEVDVRmp ###JDD!DNDVDGD*D~D*DDDDDD\D*D) DD ND ND+,tD' ND'P##a#[DDD*D* DDD;D\GDGIDDVDV*D*D SDSSDSSDSD DS[D  D[D.D.TDT3D3WIWDDDDDD'DbDb DSDDjRRUUxxI3D3'DT~D'R.D.;D;))__m'33rm  ii;; ##  TD11Rm''mR##']'PDRDD##*D* D wwVwDj6DiyDyDDD##R']RjR:R%%DRDRDII;D;..AIA88/IAM/IM/IR/IRD 'Pm9ZZDDxmR D'RI_RD'RZ'D'R*RDRI_RD'R*D* D]##EErDrT;jmQmgg'*Rrr),,qqR#2 aD D zD$RDRRDDDDRDR\D:D|WnDjDyDjD\DR>D    22R##QQ  D#]UDUqdIDI VbDbR#V1VM1R##VDUDgDgDVR]DRUDVDV|D|!D!#D#!D!!D!R D DMD'D'D'DR'D'DDREEvv*D*D*D*DDFDF;9;tTTDR{$=D]48:;<>?  @A()CABEHJGLLJPRKUVNYYP_aQijTnnVssWuyX||]^`aceijk{!~$%''**,,12669:BDLLQQTTVVZZ\]aaooqr{{~~77')-DDGGVVY]ww ||!"&'$&()*+/2  349 # ,: . /D 1 4F 7 9J ; =M k vP \   o     "-5 ; { <G$*06<BHNTZ`flrx~ &,28>DJPV\bhntz4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4|4r4r44444444444444444444444444444D4r4D4r4D4D4D4D4D4DD4D4D4D4D4D4D4D4D4D4D4D>>:)?k&&&&&&NuuuuNu&ak}}Y N}}}KaaDK&////&K&aaaakaaaaaaakDDD2uDDD}DDDDDDDD}DKkNNYuNNuYYuuuu&aaNNNaa<NNNNNN)& K&Y N2&aaaakaaaaaaaaaaknUaV}U}//99999T$$%%&&''(())**-- .. // 11 22 33445566778899::;;<<==IINNRRUUYZ[[\\  ! "#    ""&&$0077%::??}}&&'(  $$&&**--22 66 77 88 99 ::;;<<DDFFGGHHIIJJLLMMOOPQRRSSTTUUVVWWXXYY ZZ![["\\#]]$% &'&()*+*,-,./00121212))3333+333 455  !!6"" ##6$$7%%8&& ''800 11/66977:88;999::233783;  9  <  9  <9<|}9=>=  8g$%&'()*-./123456789:;<=INRUYZ[\  "&07:?}  NDFLT cyrl6grekhlatn|math8MKD SRB pAZE CAT CRT ESP GAG GAL ISM KAZ KRK KSM LSM MOL NSM ROM SKS SSM TAT TRK  aalt>caseDccmpJdligPligaVliga^locldlocljsaltpsstyv  "*2:BJRZbjr`.26Xr N6$*0      ```z LM**__^^ !'UU(Y$=IIKKLMOO      ""$$&&((**,,..0022446688:;==??AAHHRRTTVV**__^^UU    S  $ IO O II IL LI  W WVA$      J2 &*.       J y ~ |  } {    !   LM *_^U  c d P< '''h'UvZZZZZZZZcZZ8<( NRVZ^bfjnz ".:FR0PpK PK PK P     6Lb      TjS[ v U[ w W x g[ | i[ } [ y [ z  {  8( u 7((  6(  ;( u :((  9(  >( u =((  <( q A( f @(( ~ ?( q D( r E((  C(( E((  B( _(_( H( r E((  G(( E((  F( (( JX ,,  2( o I(( 1( l =(  <( q @( ~ ?( q >( u =(  A( f @( ~ $ $B$B$q$q$q$q$ >@^_` ) * + ,    BqSUWgi33fR  PfEd@ m`, , hh~?COXaw_emwV_?kxEMWY[]} & : > B I O S W d q !! !!!!!"!$!'!+!2!I!K!N!!""" " "" "-"="C"H"U"a"e"""## ###!#%#(#}###$#&&<&G&g&o''''))**/*k+,a,d,s,w,-%...%..GQWAGKOi|&( COX`pzbjp1Ya?w{ HPY[]_ * < B D K Q W _ j t !! ! !!!!"!$!&!*!2!LFD B B D I K O Q S W W _ d j q t         !!! ! ! !!!!!!!!"!"!$!$!&!'!*!+ !2!2 !<!I !K!K!N!N!P!!!R!"S"""" " " """" "#"-"8"="B"C"H"H"P"U"`"a"d"e"""" "" &## (## )## -## /# #! 1#%#% 3#(#( 4#}#} 5## 6## J## K$#$# L%& M&8&< N&?&G S&`&g \&i&o d'' k'' l'' n'' o') q)) * * */*/ *j*k ++ ,`,a #,c,d %,g,s ',u,w 4,y, 7--% >.. d.. e.".% f.... jDG kPQ oTW q u w &A FG JK NO hi {| & ((   4T Vg /89 A;> C@D GFF LJP MRk T֤֥ n p   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvjsgw9l|"cnTm}b : yqz sLjq{)j/s3fbwPP;f=fRBsJ}s jjb\jjjj jj)R`fX{Hjj``'''Djb{sj\)'\jj=fHf JJ }T{3`}TjNNs, %Id@QX Y!-,%Id@QX Y!-,  P y PXY%%# P y PXY%-,KPX EDY!-,%E`D-,KSX%%EDY!!-,ED-[!%!!\4r) 74632#"&3#5E31FF13E=oh8NN87NM#!#D++|#! 33!!!!###!5!!5!L6\]^J]_]\9J?^aabbN 1%>54&'3.54673#.'#.mfkjgZ]f^ebϧưZ[Pb |jݲѾZVD n_VxiXPj!H@  1)t 7#5!#3ONϛ\m{^|.,βa>G YKeNfGXVe=yB""kpqZ=yqPikk`D#D+L &7Lۋyymcdmbjj> 56'5zzbj\]jbm''L| %#'-73%|`D z D`D9 z :նv}vw}F !!#!5!LϢ11B>=3CTOE%ZQs!!Q3s 74632#"&D32FF23Dh8NN87NMBm3#ݐ#my %2#""32JFPSTPcnohh !535%33H|jÃzj}#>32!53!5>54&#"e`] 0js|q 9< mĖ *>32#"&'332654&+532654&#"#iTݙice V-zy e,. ׫23"f~88 !53!53!!34XLj%m k!>32#"&'332654&#"#/}N\eeQ{0MդT$$23"@C{! %%2654&#">32#"!2#.#"[=a"GRe ucFȽKJy^ej #!#!iuo1\{ /4&#"3264&#"326#"&5467.54632[%|po}}op|b񫚈ߐv͟ҟϴt%#"5432!"&'5332"32654&^=34632#"&CTO8F22FF22FE%Z 8MN78MM^F 5EZ~ѦfF!!!!~~^F55~//y} "%4632#"&>32#>54&#"#DE41FF14E_LorfWh8NN87NMc/.ֶ3H+ʜ{y@M%#"&5463253>54&'&$#"3267#"$'&5476$3254&#"3265SĞS5=<`QMZVb tV0aqtwxss6>kDGhlzzngRPPR%oT&']gw}LLF]]{GF~b|i}F!5333!53!3qvߗqpjkjjHje$%!2654&#!532654&+53#5!2! 唈Ώjj~}jkäg#"&'&5!2#.#"3267<փXdbi(nf!ɵז+dap\@Ae\%3 !#53#5! !Ǩ\{jL66Hjkvte353#5!#5!!53#5!!53f:onnGxojk e353#5!#5!!53#5!3fLooo5jk ~jg0.#"3267#5!# !2 dzfTxo6s88kMM_b;<e353#5!#!#5!#3!53!3f  Gjkkkkjj~jes %3!53#5!#ǫ jjjkkeV533265#5!##"&gPOkU2@ca9kk"e}353#5!##5!# 3!3f Cjkk5kk3jje 353#5!#!53f fojkk[353#5! !#3!53#3fp33jk'kjj~jZ353#5!#5!##3ZY%صmjkf/kkyjg %2#""&'&547>3 ݉XdbbdY$hbeYNQJKQkdappbcVobce32654&+53#5!2#!3{jkjg" 47>3 ;.'2#" bdY$h1bZapbcVm:C@QJKQe$3!.+3!53#5!2%!2654&#!s?[$ä32{y{hh7awdtUVMNvzojsJFIydb))5@!7#5!>32#"&'!532654&#"ԟE1o߰o1E~~j@jmd__djuʿ[D#"532#.#"3267#ȟ[[`vk?31/0|}[f!%3!5#"5432#5!54&#"326Ȟ1o߱o1C~~jjd_76_d)ji[D!32673#"5432.#"6m(ծ{r}34ױB#.#"!!3!53#5354632WKG]K 螞323!534&#"3LD-a7Vnsxj@jVlnjjÏjB$ 4632#"&3!53#5!<+)<;*+<Ԝ Dq.DD./BB(jjRkN9 4632#"&#5!#"&'533265=*)=;+*=)CAv7UMJRNq.DD./BBzkq!!`Z{5j)53#5!#5!# 3!5330El(႕j@j kkjj5 %3!53#5!zEjjj@jBD0>323!534&#"3!534&#"3!53#5!>320c5Vdot;Wdnt5D-ZoXuwjj%jj,jjTijp{BpD353#5!>323!534&#"3LD-a7WmsxjRklnjjÑj[D %2654&#""5432*Fc325V@D #32654&#"'#5!>32#"&'3!53z~~E1o߰o1Hiʵkd__dkk[VfD#3!53#"54325!4&#"3265Ȟ1o߱o1D~~kkd_76_dkBrD#.#"3!53#5!>32q_FC{D0n(Z)ONjjTiokgTD)75332654&/.54632#.#"#"&h_}ouUx{oLY_zjhkQywϷ];wv]YFV1-,f,*gtRRCQ*-/o,5q#533!!32673#"&5ǒ8/?A;}wkJk]LU_1_'!3!5#"&5#5!3265#6-a;Vnsx'Cjjo9k '!#5!# #5!#m  gkkk%kkD'#5!## ##5!#u؋Zjk'kkDkk->'#5!# 3!53 3!53 #5!#Ɂp~+}Fz|vr3kkw7jj>jjkk9 '7#5!# #5!##"&'53326?m  gkI,nd*Z-U461<ñkk%kkT|[D;=I' 35!#!!53JW&_aVf#V$#"&54&+5326546;#"38a77a8=MZuwXMititݓhXឈ"X#$3265467.54&+532;#"+?~MXvuYM~?9a88a9W"WhtitݔF'#"/&'&#"5>32326EZTV USPZUV XS'XTB 9IMWQB:J} 4632#"&53E31FF13E76tttt ZZSH_hZQi,+ .'{ i l{#.#"!!!53!53#534632_ eWrmsiLD_ekjRk']\<#/7'#"&''7.5467'7>324&#"326+U&%%(V2k>:p7U%%&(V3l>;nIfefe^z@Fw9^,*(ppr$!53!5!5'!53#5!# #5!#3!!!3DlJ}42@kjoiAikk\kkizTij##  R=G A>54&#.#"#"&'532654'&'.5467.54632U=2G45}S^OZh q_fFBQESa`^m qjbJGF.S5&`9KHSaSamc_~,/~[PQbTq zc^1~O7! 2#"&546!2#"&546+?<.-;>+><-.;>!E03BB30EE03BB30E52J#"&54632#.#"32672#"&'&547>"3267>54&'.˦HNKf_kmljXeшbbaabb툉bbaabbvTTVVTTvvTTTUST=%'mf_cnmmmmnnmmmmng^^]僂^^__^]⃅]^^p;(,3#5#"&546;54&#"#5>325#"326!!H+qNh_N\ DE;_a[WSd(uTP30pr-T^FEPNQUah#  5 5 Z Z#ssRssRF^!#!^Qs!!Q3s5$<T32654&+3#'.+3!53#5!2"3267>54&'.'2#"&'&547>&pKJKJp&5hEv 8,RKJJusvWvTTVVTTvvTTTUSTvbbaabb툉bbaabbLKJL3(DF/DDCpmS[j^^]僂^^__^]⃅]^^gnmmmmnnmmmmnb!!u "32654&'2#"&546E]]ED^`B9k&*)yyfiMLfgKKk1.-rBF !!#!5!!!L~yyQo#5>32!53!5%>54&#"?;~?|ZCMCXKGT "hzlKMzBUcLZ*>32#"&'532654&+532654&#"#pBy5|_VkmA}=?XRU\\[0WYIDJN@lcHdwdrzJMXR]_JJJCH@Aaf3#Jif5Vl'!3!5#"&'3!53#5!3265#6/Q3U#;Vmsy'Ahjo$$kkk;!####.546:jaak/NݸBL 4632#"&E41FF14E8MN78MLu{!#"&'532654&':8qe&O)%G4;('@p1QY 5-X<T 535733\Tzj^TT 2654&#""&54632!!_ab^^ba_,k-Lװױbh# 5 %5 4Z zZ #^R^sXXs^R^sXX'd&{&{'tdZ'd&u}p} "#"&54632#"&54675332673E31FF14D_MnreV8NN87NM/.ֶ3+ʜ{Fk&$ ~fuFk&$ |fuFk&$ fuF^&$ }fuF\&$ {fuFm )4&#"326!53.546323!53!3P8:NN:8PSvACgfFAqpZ?YWA?XXj%zSrrP#jjHj#!#53!3!53#5!#5!!53#5!!53ZRvnooE{oMjHjjk gu&&z+ek&( ~nuek&( |nuek&( nue\&( {nuesk&, ~:uesk&, |:uNk&, :uU\&, {:uee %3 !#!!53#53#5! !ϩ.\{jL66H}1je}kvtZ^&1 }ugk&2 ~ugk&2 |ugk&2 ug^&2 }ug\&2 {uD   ' 7  _haafbfP13p4pq3Z +.#"324&'7!"&''7&5!27E;p09poNN[FNLi#VHXVwQ`YYQJuRlSVVEiZUSGVk&8 ~uVk&8 |uVk&8 uV\&8 {uk&< |-ue32654&+53#5!#!2#!31jkkj53.#"!534632#"#"&'5332654&/.546N}kwnν 1BPkЦMGbd[dsHjM^PwZj8l]4M/7cr%#eiyhTuI6ARz[d&DC3[f&Dv3[f&D3[7&D3[!&Dj3[&D3[hD 8?5#"326#"&546;54&#"#5>32>32!32673#"&.#"{y{hhbKpsivUVM1Ci7m'֭n{r NvzoF[XIxcc))WZXY}[,[uD&FzZ[d&HCU[f&HvU[f&HU[!&HjU$d&CZBXf&vZGf&Z@!&jZ[-.#"32654&#"5432.''%.'7%)H$+aD/B-!7UkS"! pاy/"5k7N:QV^DNBp7&Q[d&RC^[f&Rv^[f&R^[7&R^[!&Rj^Fy 4632#"&4632#"&!!F22FF23EF22FF23E7~8MN78MLU8NN87NMD  +.#"32654&'7#"&''7.54327"eC )$dBl7:T32#"&'3!53z~~E1o߰o1Hijmd__dkk9 !&\j=F1'q;$[&q DFi'!$[-&KDwF'$[wD'?Dgk&& |u[f&FvUgk' u&[f&^Fg^' u&[!&^Fgk&& u[f&FUe\k&' ju[Q&G zee[f)%3!5#"5432!5!5#5!3#54&#"326Ȟ1o߱o1&C~~jjd_76_dJjujjie2'q<([&qUHem' nu([H&UHe^' nu([!&UHew'2([wD'Hek&( u[f&HUg0k' u*[9ff&SJg0m&* u[9fH&Jg0^' u*[9f!&SJg60'*[9f'Jek' u+pk' uKe'!5!53#535#5!#!5#5!#3#3!53!3G  Gfjzkkkkz?jj~jBp%353#535#5!!!>323!534&#"3LD-a7VnsxjPzvjzlnjjÏjB^' }8u,P7'Z^z2'q<,$'qSm' 8u, @H'Zews&,Bw$&Les^&, :uB$' %3!53#5! DjjjRkeVq&,-B9&LMeVk' Au-N9 f'eS}'.5Sj'KN5j$)53#5!#5!# 3!5330El(႕jOkkkjjem' |w/5l' |vOeS'x/5X'$Oe' z>n/5' zOOe'y/5'yV}OM353'7#5!#%!53o?ͫ ?gojq\kk\(<%3!53'7#5!7}7B6jjj>`VjbVZl' |v1Bp6&vDQZE'1BSpD'UQZu&1 Bpf&QUe&~QgVV'353#5!>32#"&'5332765&#"3VUCҌ׳?AdROj,*kkrt""caKI@$kB9D(353#5!>32#"&'53327654&#"3LD-aMJAv8VMIR''WmsxjRklnec!!`Z><Ñjg2'q'<2[&q^Rgm' u2[H&^Rgk' u2[f'Rk!%# !! )#5!!53#5!!53E{[CommEynjjb_ [D ,3%2654&#"!32673#"&'#"5432>32.#"*6m'խuB>uw?An{rF}ba`c32c``cױel' |v5Br6&vDUeS'5BSrD'Uek&5 _uBrf&U/hl' |v6gT6&vDVhk' Eu6gTf& Vuh&6zguTD&Vz hk&6 EugTf&V u'z75uq&zWk&7 .u5M&W z!53!5!!#!#5!!!3`/uonu.Ҭje}`}j5q#535#533!!!!32673#"&ǒ88/?A;}wOkkJkkLU_V^' }u81_7&AXV2'q><81_&qlXVm' u81_H&AXVm& Hg1_&XLVk' u81_f&gXVg&8D1w'&X* br' |:f'KZr' *|<9 f&6\\&< {-uRl' |v=I6&vD]R^' Wu=I&6]Rk&= NuIf&]B%3!53#5354632#.#"螞32#"&'!532654&#"ԞD1o߰o1E~~jPzvjzd_ _djuʿS(2"#6763!2)53327654'&+!2654'&#!=@t\gYhgGHXXDDD`x KJjY[XL$]\OOabj??+>ONe|5@+327654'&#"#5!67632#"'&'!53#5zCA~ABBA~AC_J1KKoopoKK1edqqppeed/0 /0dj@je%!2654&#! 3 )53# aVXjVvjv5@ 32654&#">32#"&'!53#5z~~1o߰o1ʿmd_ _dj~g6$32!"&'332#"h;փXebnf!ɵז+HdapU@AXSIHSg^6#"&'&'&576!247632#4'&#"#&'&#"32767<փXd11(n|YcICg@<:8U-&JRMf!deonnoזba+lkdap\ (W:<!`--zYYPO[&1#"'&5763267632#4'&#"#&'&#"3267#ȟ[Z,-J6oA:<8V,'IR(&`?@vDEDDk? H5!`--==@@st4tt|}eeS\"#6763! )5; 76!#=@t|Ukk\{꫶jY[Xg tjlHe %!"3#3! &5476!3!#xJJoXVojNMkkjސvL5@+54'&#"3276!#3!5#"'&32!#AC~B@@B~CAY0KLnop߱nLK0J^ieeppqqdejjd0/60/d[D&2%#"'&'57276'4'&#"'&7632" 76& <#YX1]^ea AA>B!EY~~~9DDDD DD18DCY.-14B_ KCuu8uttue)3!!#3!!#!#3nxHooo:LqLkg!*"#6763 #"'&'&'&=!'&!3276ba+<$h11eYqqsrXd11HoqpqqpOPklVpb2122apG1ܜp(#.#";#"32673#"&5467.54632d -UƢ{{!~j9iѫ IV"'533276'#5!#5!!53#5!Ogk*,Looo5TVDKM9k =c7N/#4'&'&#"!!#"&'5332765#53547632W&G]&% ST323!534&#"3LD-a7WmsxjRklnjjÑjg'"&'&7>3 '276!'&#"XdbbdY$h11eYqqqhhq dqqd dapjpbcVpb21k$ܜc&2]YD&RVgI+7"&'&7>32676323!534&#"'2#"XdbbdY⋷67B@ƲUkO' 11eYqqdapjpbcT(kkږ0pb21kQJKQ[VD'476323!534&#"#"3226& (;AOQ; ~т  kk{ 328S#!2#!3!53"#676327654&+vuϫ=@tXgFGqrjjY[XI'#PQ5V@8327654'&#"47632#4'&#"67632#"'&'3!53zCA~ABBA~ACWX54'&#"#67632327673XwssoMNoJJPPf~pp]OO32TTUThH3ٟ_^=7+ҾaaA;7::lGFRQgTD1%#"'&5476?67654'&#"#5>32327673SX]hg<;z()65hjz_YL87{x+*:;o}??_;,,WVoFG/-*)(CR))tg*,fBB,-1++FY/.;;wJN9 0"!276'&6=3327673#"'&7&"# 76!2 /*ZnPa5&RJ'&U7;;AWlR\:k{_H>~=_@@VmQ>.,`"]s]=59q'#533!!32673#"&'533276=#"&5ǒ8/?A;}Av8VMIR(&,7wkJk]LU_!!`Z>32#.#"sw,nd*Z-U461<"?m -nd*Y-T362<9|[D;=\kk%|[D;=R35!5!!#!!!!53ScTIo&&nH}ZH}I'35#53!#!3!!53J &_aVzj#Vij[##5!#!#"'&'3327654'&U5&oG[[~idece POQRTfZ}Cyx}|9Ddcfe[#"32673#"'&5476?5!#5!\RROPecddj~[[Go&5TefŬcd9|}xy}`f[6'#"32673#"'&5476?5!#5!\RROPecddj~[[G_%)efŬcd9|}xyVݸQfu6'#5!#! 73 54$54U)%_[(UlOf#V'guښԸ}$#>323#!53!567!5!654&#"e`]Mr2C!0jK2Z6|q 9<<>j5V-{6323!53#5!4&#"zNE ll:KkkkpY#Y+'l>!5!3!!!!#!5!^NNNNS Ѣ Y%#5#Y9ce k'?'e Nf'@'[$f'@GeVW'-/e9O'M/59'MNOZV'-M1Z9'MM1B9*'MQFk&$ du[f&D2Mk&, 9uFf&Zgk&2 u[f&R]Vk&8 u1_f&X@V3' 81_' XVZ&8 1_>' XVX&8 1_<' XVZ' 81_>' X[DF3& #$[' DF3& "$[' D1'qj;[h'q{g&.#"32675!5!5#5!3## !2 dzfTpxo6s88xkkkMM_b;<9fD 084&#"3265#"54325!#3#"&'5#5!6532767"~~1o߱o1D@q_P0ypD fưZV*iZk[%#khF|&&k"&h`\+Ag0k' u*[9ff'Je}k' u. j' Ngg'+2[gD&aRgg2'q'<[g&q^[k' uy[6f&TN9Ff&Ze '='e N']'[$']Gg0k' |u*[9ff'Je+5!3!53#5!#!#5!#3276#5!#"'&G  SUu?BBwuyyR~jjkkkkqqqvUl+eV4&#"56!23!53#5!1mt ϫa'$jjkZk' ~u1Bpd'QFk0'!4&#"3233!53!3!53&'&54767x@P8:NN:8:.H# qpv!"H9KeW~YWA?XO2QrP?&jjHjjw%=SrQ? [k (6B5#"3263!5#"&546;54&#"#5>323"&47674&#"326{y{hh7awdtUVMб,$HϏG@ZO::OO::ONvzojsJFIydb))(P栠PG?XW@AWXk' |u[hk'Zk' |uD f'VFk' Uu$[f'DFm' fu$[H'Dek' pu([f'Hem' nu([H'Hsk' ,u,$f&Um' :u, AH'gk' u2[f'Rgm' u2[H'Rek' Ou5Brf'Uem' _u5BrH'UVk' u81_f'XVm' u81_H'X4h&6]g4TD&V4&754q&WnR"$ 56$6'&57676.#Il|Oȭ=?k|[DVIfoMqIsEGyRql{Ig8 gg?O]>%#>56$764'&576764&#"\`Q|ap\(bL8WhNEO^C+C ?Q٦!d+gP9X>PdV0g^mek' u+ p' KVV353#5!>323!53&#"3VUCҌ׫𬇫kkrt'kk$k[j 9254!"54&#"3262; !"'&'#767#"32#5!j 0)~~\;Z Ko߱o1C3k{_H>i]=G=_@@B6 /76_d)jI!654#5 ! 4%&5" 4%6ZB#<#>itaȓs멝bB*[ %24%4'7 %&5476ue Jm0F4ҩ`;ہi4mlR35!#!!3'6767SEIo&HT( HZHZPE^=OIp'35!#!!3'6767JW&_HU(Vf#VZPE]EYF^' fu$[!'Deu'([uD'Hg3& ~2[' Rg3& z2[' Rg\' s2[ &^Rg3& ~2[' R2'q<<9 &q6\5%{ %354'632#"'#767'&5#5!=|d `gcE^m|iG UeOjB%D4%3544&#"3!53#5!>32632#"'#567'&52=|dWmsx5D-a!~afd^m|@ÑjjRkln֐WG UeO5%oq&%354632#"'#767'&5#533!=|c!~afd8^m|XiG UeOkJkN9'#5!#"&'533265CAv7UMJRNkq!!`Z{[ 754&#"326732654&#"5#"32#5!>32#"&'"~~~~1o߱o1E0o߱o0iʿd_76_d)jmd_ _d[VD 0=4&#"326553>32#"&';#!53#"3232654&#""~~0o߱o0!1o߱o1~~Hkk;d_ _dkkd_76_diF"#5373 3!53!3#'7# ;! Z1ʗ{Hc-qY /:4vA-Yj=.hGjjHj99V:)Y$.'7&'&5!27#&'32673#"&/7&'&#"pG51i(n|]hiHjf ( oז+<փX7d9EO[\ *GJ;daqY! *'7&5327#&'32673#"'7&'&#"fE][Z34]DS`4Dk#ȟy:@v^?ɐ1 {?n9-t|}|N@v\353#53#5!#!!!53f /foje}kk})53'!#!7#53!n F=uov.HCnujE`9GRy_Jg9TD?32673#"'&/&'&'5332654&/.54632#.#"#"'oC&H'3U-Y78T,H_}ouUx{oLY_zjhkQywϷ20!];D(3!2#0#3!5332654&#4M 'W8wA+Ϫk&,`" jjDD 27654'&#"#5>;23!534FFFFM 'W8wA,uvvQvgQPQP&,`" rqrMjj\,353#53#5!2!32654&+!2654&#!!!fΏ唈 -j}|kä^~}}M##5!#!#5!#3# 5#53! 6ƫjkkkk}}S}}}iFeD"&3#5#353#5#!53!'7!53#5!#7!k[onnoZ[«|ԍD O o Ojkpz [%,3&'&' '7&'&54327!32673#"&#"3#$@YUG72-UZ>tXs1@m(ծC{ #rI j^bf%D4ea$P\}jneV533265#53#5!#3##"&gPOkU2@ca}kk}Z"N9$& !gVm>%2>=4.#"25!#32673#"&=#"'&46aS&&S`R~P2(*61<-<UUkOOfA@Ʋ;[U~N[ՅԨ[CtwffD2ttkږac""/IH'[_[9ZD +54&#"326#"325!#32673#"&5"~~1o߱o1DNRJLV4zAiyd_76_dk܃yZ`#\)!26&#!3!&'&+3!53#53#5!2 @--$ä=13Xɾ᫴՛!,{.-REjۋ((jjLkIkпBrD #.#"!!3!53#53#5!>32q_FC{D0n(Z)ONjjjfjiok !53!53'#5!#!7#5!#3!3!\n~nnn:Ğjzkkkkzkj+9 '&)7#53'#5!#!7#5!#3#'"&'53326!?OmO|OgkO-67d*Z-U461<Qӗñjkkkkj~,.D;=g[D ,32654&#"#5!>32+32673#"'&|xzig@?97`CAxcuVWQQNgivzoGGD.jsJFIyCBdb)mn[fD!%3!5#"54325!#54&#"326Ȟ1o߱o1D~~kkd_76_dk#i[fD'%!53#5!67632#"'&327654'&#"D0LKnoq߲nKL0BB~B@@B~BBkRjd/0 /0ieeppqqed5@'867632#"'&'!53547632#&'&#"327654'&#"{1KKoopoKK1YWA;:8U&&JR&'CA~ABBA~ACEd/0 /0djc]^!`--=;*edqqppee[D >32#"'&'3327654'&#"\#Ȟ[ZZ[a@?vEDDDk課0@@sttt|}[%D.%54632!"'#767&'&57632#&'&#"s<}Ţwpaf [ZZ[`?@vDE\m}G UeO 0@@st[9Z'8327673#"'&=#"'&32#5!54'&#"3276&(RJ&&V8;;AXW1JLoqo߱oLJ1CBB~ABBA~BBh<>--`!]^&d0/60/d)jieeppqqde[Y%647632#&'&#"3!5#"'&3254'&#"3276!XWA<:8V'%JR'&1JLoqo߱oLI2BB~ABBA~BB4]^!`--=;jd0/60/ieeppqqde[D!7632#"'&'33276=%!.#"\ttѮkj(EGmIIszABXX}?@nmj_^[D!!54'&#"#67632#"'&73267\IImGE(jkttBAzs'nm?@}XX̕_^lD-9#"'&'#"'&'&'&#"#676327332327654>CE*VfVK %sZ ImGD(jkf;=J} :Azy;:N0]Qk̕vp>,m?>XX!%=;>+eU^_\;Zg2047632#.#";#"32673#"'&74767&'&XY0^^da UTSFB/Oi a_a^Hnn^@lI1\*DCYZi>iZ2D"'56763273327#&'&''"'&'53327654'&+53254U@A ae]^0XRg;=J_)C)1OgUK 0Jl@]npG^b_a iO/BFRS-.YC?u=;>-N& \Q#6NOP$fjR2Ot<>i[D#%2654&+532654&# !2# bg|""|fc(˿zz`]Fm`ijcjb_m320`gNMN9$'#5!3##"&'533265#53CAv7UMJRNkjȤ!!`Z{8j[9Z :!"3265#"&'53326=#"543!547632#&'&#""~rq_PWyp1o߱6WXA;;8V&&JR(&Htp|}&&h`ďd_76]^!`--=<[9f''!##"&'53326=#"54!"3265z_PWyp1o~'k[&&h`ďd_76!t[D.#"32675#5!#"532=Xl(WJd[Ռ4)jxF@31/08:'$ '&54#5!##5!#327676hVJ.۬/}u1"(N@gAk kkakk7!6/!:B&6626;2#54+"#"'&54767#"#327654'&'OɄ*_*=V5W%`̈́d,G9f,%[.(KQ4"3(FP*-E9K/ߚ|xN+kk.Pf}W);A*&@fr|1V_'3#"&5#5!3265#5!3%-a;Vnsx6!jo9kkjKp/676323!534'&#"3!53547632#&'&#"-HJa7++nsx5XWA<:8V'%JR'&jl77jjGHjjc]^!`--=9K9?67632#"'&'533276=4'&#"3!53547632#&'&#"-HJaXWA;;8V'&IR''++nsx5XWA<:8V'%JR'&jl77^]!`--><GHjjc]^!`--=;B$&  B&' #5!3"'&D%(RXT_]k8<=c^YB$' %3!53#5!# jjjRkgA(%3!53&'&#"#67632#5!32673#"'&V-.RE&,W..Rjjj~('LJI;jPKJIB%3!53$5&72#5!3#'&?N6EܯA5jjjj8dj ccri59 #5!327673#"'&5ԟE&'RJ'&U7<:AXWj<>--`!]^ 56,#5!3!53#5!!#"'&'3327654'&V)&\E Gg[~idece PORRffjj@jVx}|9Ddcfe1'*%#"&5#5!3265#5!3265#5!3!5#"&0c:Wdot5Wdnt6.Zouw:jqjjjBijp{1V',%#"&5#5!3265#5!3265#5!3!53#"&0c:Wdot5Wdnt6 .Zouw:jqjjjkkjp{B9 DD#"'&'53327654&#"3!534'&#"3!53#5!>3267632 WYA;;8U&&JR(%Vdo9;;,+dn;95D-ZoKK0IKcJJh^]!`--><]]jj,CD]]jjTijp>=qu;<$kl77jjIH^]B9nD.4'&#"3!53#5!67632327673#"'&56,+ms<<5D.HJaMJ&(RI'&V8<:AXWjIH^]jjRkl77ec<>--`!]^>~'353#5!#5!##3>:nȖjRkkk'Z-j[D%2767!!&'& "'&76 *D9 :D>DD>~~~Fuccujuujᙚ[|' &&7!"54763!#7!!'3#7!!53b^^[')늊WP4UUWuppo R M|{`[D&32654#"326= #"&'#"5GfSVvwVRgR?ZָjjX($(3SS1G[V#3!53"3#5!#2%"!26&#Нў*jj#32bnjc8Br'332765#5!#3!5#"'&C_GC{@B1LLn)-, ON^^jjio65Br332765#5!#3!5#"'&C_GCxCB1LLn)-, ON^[jjio65B9g'+!5#"'&'332765#5!#32673#"'&'-1LLn)-,1_GC{@B''SILU8;:AWTo65  ON^^jj<>Z`!]ZBXrD#.#"3!53#5!67632q_FC{B@D0MLn(--)ON^^rjjio56B9rD+#.#"327673#"'&=#5!67632q_FC{B@&'RJ'%U8;;@XXD0MLn(--)ON^^<>--`!]^hio56K=%3!53547632#&'&#"WY@;;8V&&JR(%jjj j^]!`-->--`!]^jjjB4'$3!.+3!53#5!2%32654&+-: ~,H>n,#nca\]`:IjRb:|jjSjf~.eQPbB4'$#!53#5!#3267!#32654&#nnݖԙn>H,~ :`]\a~fjSjj|:bRjI:KbPQeg9TD:332654&/.54632#.#"#"/32673#"&5h_}ouUx{oLY_zjhk(*x=;Ϸ]X NRJMU7vA3wv]YFV1-,f,*gtRRC()*-.HFod{Z`!!N9d'#"'&'533276'&7632#&'&#"mWA;;7U'&JP(6_VkX@<:8U&&JR'5Tht]!`-->Pnr]"`,.>QmiN9.3##"&'533265#53+5;54632#.#"Av7UMJRN%6'&#"#567632327673#"'&5&RJ&'U7;;AWu6)PJ%'U8:--`!]}N9 0276'&# %# '&!237&7632#&'&#"#54P*/ :\lWA;;7U&'JR&5aPnZ>H_{k~G=]s]"`,.>QmV@@_5D%3##!5!4&#"#>32D7/?A};;kkJkL+*_FG5Vq#533!!327673#"'&5ǒ8/?A}<;kJkЇL+*_FG1_'(!3#3!5#"'&=#53#5!!#!32766-IIaKK;Q,*ns<;'jjj87edMjkHH^\['&##"&'.5467#5! 7654&'5!uMHA_aBJLuknQR QRnj@lICGFDKn@kk.pppp.kB'"3#&'&5#5!7654'&'ueQQ&(HATU`^TD%'SpeR77j@o`cIC#$^S]k8<<kgf. ' 3!53 3!53?`mHk`'Dkk%kk'! 3!53333!53 ؊jkO>-kkDkk  3!53 3!5367632#&'&#"y?emHk-77d*-,-U622kk%kk|-.DKw'!53#5!##5!#3vћٝj1ooXoojI9'35!#!!327673#"'&=JW&_i%(RJ%'U8;;AZWVf#V҃;>--`!]\hIB'%254#"!5!#!!2!#d9y_W&_xlcyVf#VEȾ[6'##5!#!#"'&'3327654'&U)%_G[[~idece POQRf#Vyx}|9Ddcfeu6'$, '&654'&+5!#!#'7&"2_(QRU)%_G[[fjDd{6V{fef#Vyx}K56{_Q35332654&#"#5>32#3ϞiQhwQcuUVMgjz¾ydb))jQ)53"&54632#.#";3 fޙMWVucQwhQij{))bdyz*Q!#2#"&'5332654&+#gߙMVUucQwhQij))bdyz94632#.#"32673#"&5Av7UMJRMMRJMU7vA!!`ZyzZ`!!g -47632"'&2#""&'&7>3 +)32#3#3ϞiQhwQcuUVMgj4j8z¾ydb))jjQ#)53#535"&54632#.#";3#3 fޙMWVucQwhQij4j))bdyzj[ %)54&#"326!!53!5#"32#5!!"~~a:1o߱o1C9&iVզd_76_d)j};[6-6C#5!3!5#"32#5!!#"'&'3327654'&%54&#"326-V)&^1o߱o1CG\[~idece PORRW~~ffjd_76_d)jVyx}|9Ddcfe8i[B 4854&#"326254#"!3!2!#5!5#"'&32#5!!"~~8 v1JLoqo߱oLJ1C7&iɳcyVDȾd0/60/d)j85q6#533!!3!2654&/.54632#.#"#!"&5ǒ8/?&puVw{oKZ`{iik)*x>;зŏwkJk]%6YFV1-,f,*gtRRC(*)-.HFop59@#"'&'533276'!32673#"&5#533!&7&7632#&'&#"lX@<:8U&&JP)6l+/?A;}w&lWA;;7U'&JP(6Uhs]!`-->PnC]LU_kJs]"]/.>Qmi5q9%54#"#533!!327&57632#&'&#"632!"'#"&5{=rǒ8/?ghYY`?@vDD polw]m{kJk]LS0/@@stiYYB9*A!53!3!53#5354632#.#"!>32#"&'53327654&#"3Y螞<Ñj5,%!2654&/.54632#.#"#!53#5!zpuVx{oKY`{ihk(*x=;ж럟Ej9YFV1-,f,*gtRRC(*)-.HFoj@j5!!53!#!53#5!!z`}ٟE:%'Vj@j};?)#53## ##5!##53## ##5!#RUBVRB `HUBVRB `5/<<C<--`!]^h=l77)!53#53676323!534'&#"3/]c-.5!&0c!<7E>qz@?[>=3E?p{F@?[ 0.'03Fzq>FP[?i`452654DŽi:OO:hHGGH=>X@?X=>POPPi`"'&4763"3`hHGGHh:OO:PPOP>=X?@X>).#327654'&#"#5676323+5D5509%'%+d8::/Cfflg""mj""6z 44}5+;;).!+53&'&547632#&'&#";3AleeB0::9d*'%$715335Dg;d+5}44 z6DjmDi;2% %CG25-5GC'|f3# #hhfg|f#33hh|gf3# #hhff33hhx5D35"bqafv5dCD3"Tq^x!#33#Z6Y7 llx3#Y7xi`#i`#Q: 533##5#5慔sQs!5Rs)H 332673#"&W ^ZZ] VHOGGOc77! 2#"&546+>;..;>!E03BB30E #"&546324&#"326ÏghhgmP9;NN;9Pssss?XW@AWX*w{!33267#"&546UO=25!<fo6{/.8  YQ1i7'.#"#>3232673#"&3&+V[R#9!4'+W\R":Z7OL!7PKNf3#3#fҠifxt%3327#&'&'f;>J_(D+2NgUL c=;>-N( \Q$&'&547#5!#7#5!#327676B6/\:bm_}OKkX,$9$=`#<<<<]!w)c 3!53#53fhh;;;1153327654&/.547632#&'&#"#"'&2>SQH'&8YOPH??n2679>((DDFOVW('DDv=99BB2'0J9R/. : !..&('>U01 )7#53#3!53'3#537'#5!#wTSQPQSMK<<<<<<<<).!+53&'&547632#&'&#";3AleeB0::9d*'%$715335Dg;d+5}44 z6DjmDi;X!!5!Sn ЈX!!5!3Snz4X!!5!3SnzhhX!!5!3Snz4X%3!5SzE!>=3%>=3E?p{E?p{F@?[P@?[$E93vYdCldfvfSffW7a&bA!!&f f)MHf7!f7F!ja2#567654'&#"5676'' ,>a0$BJ'Xo 18X(Op6'< "1\BffSffxm3~*@m'8f###jfܐifxx)M'ff)MH #."#> W ^] V)OGGO& #6767E?45i*pPgIJ62'67&'&5476>=$CH ,"17#,LS#&8F'2&'&75476&(0", GC#'F8&#SL,#7vf3#>ifeCoeevgG%53#5#53"G%33##ۥGt!#!t"JQA532654&'#"&n+*2 sQH,`M^WC8:$C q|<:_"'&4763"3gGHHGg9PP9:OPPP{X@?X] 6533!5R] %##5#5۔_G% 533##5#5􅕕] %!!^R۔95'#"&'533276=˰Av7UMJR'&褻!!`Z><-9f%332673#"&5-&'RJLU8uA<>Z`!!xbfAxJbjeAp 4&#"3267"&54621#$//$#1mpoop&65'(56&Z}}ZY||~4d >=3~E?54id*pPgIJ6luzfwfvd3~&Af#!#5yCRb#"3327473327473#"'&3+N W5 B V4 B V L+N  JSf$Sf&CMbfEMd #."#> W ^] VEOGGOKWea.&AfqfpfmBff]fQQ''&'&#"#676763232767673#" ~\\1D W.0YZK^ }][2CV.6ROW^) 9>(&;=3)B 9>(&;F*):5!jj:5!-jj'?ED^??u'FH9EG@e2#52654&#hGHHGh:OO:OPPP{X@?X!54'&'zDH2yDG0PQX$  +0PQX$  f 'ff57 !G^#"'$#"5>323276pNZ#)wOY^agE@LeebF@Lr?5^ #&'& #676y!!*į^H|[wwPHe 4?r' !!##5!z;|j!53!#!#!3`jV3 jJ'##3!53##0'jjB~tvf3:dtVvH%#v;cHZ33!53##5!mmjxjjJ/kk?l' 3#5!33!ԕ;mj Cj Wl =3?kA..g(Ղ] [DP[D&Fy$R[D&PyRByeV-af3#Jif7&jFf& #BLy f'9 f'4 f'4 f& f' f&"+-l&2ZF$e%e %3!53#5!#5!ȫLojjjkF)3 avtye(R=e+g ,%2#""&'&547>3 #3!53#5݉XdbbdY$hbeYooooNQJKQkdappbcVobc es,e}.F% 3!5333!5vtvߗjyjjkjj[0Z1e%53!3!#!##3!53#51on]n:o~ooooL]Lcg2ee3J !53! !#5!`oUPo.7<g'093!535&'&'.46767675#5!#67654'&'bbeYqZFF[pZdbbd]m32.j뢦j,hcY惃YdiݤӶF7SF-W`֗g[`_\gX\& {=u\& {`u[f&*[Zgf&.BVf&0DB-lf&2ZB&>N[C$2'&'&5476276737'&' &'&767#V7dooojޙME#!]ZV]? "1q;49-zgOBBGygKoV7$C;%oi4;^ΝKyuz8Q &{eq{ tV-%32654'&+5327654'&7632#"'HRTV-sNB+ESʦlJlU?=p^[6;Z]kH=EOq08tdTS(ml^\BT'%'&7#5!76'&'5374*>_*/~2 $,eh$]$BEX~8 08DCY.-14B_ K3CX8Zg2JU3$#5254#&'&46%!#g'`Q~{U^{rZLl堐 BVD3#5!>32#4&#"D-aWmsxklnÑ[+'&#"!32762#"6moHrZLlwVe z&[DRBy'353#5!#3!53!3L67QjRkkjjRjtVD32654'&#"#4767632#"&'~AMswIBNX1:2cZ-$!#@E:ORV$KFf)EE)>t=1!jA[f&8dBf&>Qf&B5e7353#5!##5!# 773f CxCDqjkk5kk3{KKYj[+ $767676'#"3 2765#"=Nz1#% elȅD=)EE)>t=1#!'k;ZgV $%2#"#&'&'&7>3 0VRrXdbbdY$hbeYqPNQJKQfn #2apjpbcVob2"[VD%26& #&'& *צg~hF8]m{2|gU#"'&'&5!2#.#"%$#52'&}z^dbi(nf!ɵnip6'`Q2,gp\@AĵrZLl[U$&3$#5254#&'&57637673#,tVEDE'`Q~)J`.Rt^qrrZLlz2]Ie353#5!#5!!#5!3fLo:o5jk ˻~jYP%47632#.#"!!#"&'533276oZ.j?XCBH'8p\-i?XC@H(:bdVRE@jbdVRFg` )##5!33܄֤%nm3j #!3f/e|OiU:# #&'#&'&#>3 #5276j.t9Ht"fe!fn'ޥ 4rtk3 YqFqYXdbbdY$hbeYQ}dapjpbcVobc[D[De5V@ 32654&#"#5!>32#"&'z~~E1o߰o1HiOTjmd_ _dg&[353#5! !#3!53#3fp33jkAkjj+=jYV' 33!##JJ`'AhV;LVD'!!#5#534767632#"&'32654'&#"MK[[OWZ kkU3 le(+!##5!# 3!533!53'3!53 #5!## 'RnnR(kykkjjjjxjjkkyc (632#"&'332654&+532654&#"#t׻ݙ"{{V-ś eZ ׫߽i9j~e353#5!#5#5!#3!533f  Gjkkekkjjje& Tue}!##5!# 3!533!53#f CA^kykkjjjj.%!#"&'533265#5!#3!5CJ1#AfH=HJ wj""Vi&2kkjj[0e+g2e#3!53!3!53#5⫫Gkjjjjke3g&7"&'5332?#5!# #5!#%BfS2L+@U=I!""dK}Tkk2kkb.i%.7!#32+3!535#".54>;5#326&+"; Wddhmx]NaǻοkSBuzǒJqjjq?܂pǩ?S ;e)53#5!#!#5!#3#4-9  ` kjjjjT>3#3!53!"&5#5!#3!#52kjjƬkkke%!#5!#3!53#5!#!#5!#w   {jjkkjjjje!#3#4#!53#5!#!#5!#!# ` Zn  jT>kjjjj?w%32654&+#3 )53!#"ojkLjLe',=e%32654&+)53#5!#3  7jLjkkg !"$'3!2!5! #"#$(j;W- x ׵!fU^F"z@Xe(%3!53#5!#!76! ! '&!2#"ǫ C%h챹 jjjkkV_AQKJQ?k !"3.5463!#3!53!3!53 !I] kjjLjj[DDN6"+'&46767>7367632#"'& 3 [QTKQ_ AsZ;1RQyx k^EQ-B_ 42lGjQO͒3A'" #!53#532654&+32654&+T9ni <_hi^isrj'^q #힖jSj[YDDZp[[n5v' #5!3!53#5v`dD'ߦjjSjB$' !3!%#5!#3#'&#!"#32>50 9]ZZ]2CTa3jj{[DH'+!##5!# 3!533!53'3!53 #5!##hЕg)逕0(g'jbjjjjjj.Kjj.%jjbQD%63 #"&'332654&+532654&#"#v{76=#5!#3!53!#"&/326  1 $oJ;=E9$9*hMȼjjjjDuSPHO}BX'353#5! !#3!53#3C v0zӕjSj%jjj65j?l'3!53!3!53#5!#!#5!֕0J0ЕjjfjjSjj=jj[DR?l'#3!53!3!53#5k0J0'jjjBjjSj5V@DS[DFJ'#5!3!53!#_0^'ߦjjB!9''\GV]#0=#5!7632#"/3!53#"32'&#"32?32654&#"E<+_uu_+<0<+_uu_+<<$FJJF$<<$EKKE$iF22FejjF2/-2F((FUF(('[Bo')53#5!#!#5!#3#'&Еѕ^iTjjBjj{?a'#3!53!"&5#5!#3!#5`0Uː>68'jjj9M@jjsPjB'%!#5!#3!53#5!#!#5!#ЕĕЕЕ{BjjjjSjjBjjB'!#3#'&#!53#5!#!#5!#!#Е]ZЕЕ'j{jSjjBjjB6H'%32654&+##!#3 )53#ZkkZͥltjp\\o jj6z'#%32654&+)53#5!#3 3!53#5!z[jkZ$ٕtF0jp\\ojSjjLjjSjl6'%32654&+)53#5!#3 z[jkZ$ٕtjp\\ojSjj[D#"#632#"&'33 !5aا#/ T\_i5D(3!53#5!#367632#"'&'2654&#"z0ڕ r}nˆjjTikٌ͙w:*'#"3#3!53#!53.5463a\[b5@UhdOOfjjjjw[d&C[!&j^&9!$53#5!!!632'654&#"3!53'DL\雺ƭ5Rzx5kjk~[wUūjjR5vf&v4[D%673#"'32#.# !!,.fS`wS F3)0/{iSgTDVB$L@!'jZN9M '"+!53!#"/32>6=#5!#32!'32654&+y5"oABOE/.9+ ˱[jkZfHӔO}lMȼjjfp^^o?'()53!3!53#5!#!#5!#3232654&+J0ЕЕ[jkZ4ffjjSjj=jjp^^o&p%!!>323!5354&#"3!53#53#5!L-a7Vnsx5D'klnjjÏjjRkj?jf&vA?ld&Cs9'' 6w'!"#'&#!53#5!#!#5!#3Z]ZЕЕiTjjBjji?;(!5#5!#!#'&+3 )53#"32654&+?t tdX7٫X!gkkgj6 "%3264&+3 )53#"#5!#5!!#&#[jkZ̰tMX X E X YjpojSzize,2#.#"!!3 3# '&!3!53#5!#!76e"ȵ w-V;  Az=?jjkk,5D+%673#"'&'#3!53#5!#367632#.# !!%.zrە0ڕofS`wS F͙wjjTik҂0/{iO( 53>35!23!53&+3!53#"3E~)~99~(+CQQC+Zj\@`'HH`@jj>D~jjDj'( 53>35!23!53&+3!53#"3{ 8zZZz8)u0vDjV%QVV%Vejjw#fjj#je ,2 5!23!53&+3!53#"3!53#5!#67!d89~(*CQQD* ~ Z 'HH`@jj>D~jjDjjkk\~5'-1 5!23!53&+3!53#"3!53#5!#!-Z=>7 (v/u핟ڕoQVVVejjw#fjj#jjTikf$3!53!#5!3#5!#3632#4&#"Ά.0Z  .9WHUL0Kjj{klkk&gQ:Vj"!#533#5!3632#4&#"#3!53m`YE0:-FOVD46ɝkD?jW:()_1Pjj@g%[D '&'& 325 GMI^rzq^=tv9 {2|߽jh5!# 632#4&#"#-9WHUL/J*#jkkz&gQ:jD5!# 632#4&#"# ?-FNUD55zkk%ğ()_1Pk& uf&A- 5!5#5!#!!3 )5332654&+-   6ث{gkkg{j⛪ %3264&+53#5!3#3 )53z[jkZEtjpojijfWe %3!53#5!3!ȫo>jjjk%`5X 3!3!53#5 _D'1TjjTi\w53#5!#5!!!3!53]o5ȫ{k{jjp5u'53#5!#5!!!3!535@_dVD{jߦ{jjXeE,3!53#5!#5!67$#"&'5332654'&ȫLo4c@AfOOlTFleQMjjkp&+rI""ca5Q[V59'(3!53#5!#5!!2#"'533276=4&#zDZ_JCFJYWpVMJK.'V|jjTiem_]B`Z>5Ï/353 #5!##5!##5!# 3#4#!533!53'3R( 'R_ Z͕nnjkkykkykkU>jjjxj'/353 #5!##5!##5!# 3#'&#!533!53'3gЕg]Z逕0j.%jjbjjbjj{jjj.Kjcu &z(QuD&ze}353#5!##5!# 3#4#!533f CA_!Z͐^jkkykkU>jj5v'!533!53#5!##5!# 3#'&#႕0ӎl]ZjjjTikckk{Z}#!#3##5!# 3!533!53#535#f CA^k}ykkjjjj}-j!535#5!!!#5!# 3!533!53-El(႕0zvjzejjjjjjP?\!##5!# 3!533!53!#?BA^okykkjjjj6'!##5!# 3!533!53#6{l(⃖/ kckkjjjjSe)53!3!53#5!#!#5!#3#4ͫG  ` j~jjkkkkT>?l'353#5!#!#5!#3#'&+53!3?ЕЕ]ZJjSjj=jj{jfje353#5!#!#5!#5!3!53!3f nǫGjkkkjj~j?'353#5!#!#5!#5!3!53!3?Е7_d2JjSjj>iߦjjfjeEH267$#"&'5332654'&3!53!3!53#5!#73d@BgPOkUGleQLG|ʌ&+rI""ca5Q[Vojjjjkk59['.3!53!3!53#5!#!2#"'533276=4&#0J0@CFJYWoUMJK.'V|jjBjjTiiem_]B`Z>5Ïgu'z+[uD&zZ!53!#!#5!3#4#`uonu` Zj` T>J'!53!#!#5!3#'&#^k_]ZjB {<V '5!# #5!#3!53 gk/kkkkwjjs5!# #5!#!!3!53!5!5PPlajkk\kk,{jj&{xV '5!# #5!#3#3!535#535 gk/kkkkwG{jj{G *!53 3!53 #5!# #5!# 3#4#Dw (_!Zjjjskkkk@T>'!53 3!53 #5!##5!# 3#'&#?z|vrɁp~+]Zj>jjkk3kkw7{353!#!#5!!#5!#3#4#ooǢ_ Zj`jjT>J'5!#5#!#5!#3#'&#!53#K^z^Z)Bjj{jB!53! &5#5!#;#5!#3#4# _!Zj#9kkǘrkkT>?l'!!53!"'&5#5!#3!#5!#3#'&#JL6%Е9]Е]ZjW6%MTjjs-#jj{#53#5!#! 3!534&+3$ kjjkkWpkBpKes,m' uH'eE7167$#"&'5332654'&3!53#5!##5!#(/c@AfOOlTFleQM Ch +rI""ca5Q[Vojjkk5kk595'.3!53#5!##5!#32#"'533276=4&#30ӎFJYWpVMJK.'V|4jjTikckkem_]B`Z>5ÏeE%%0!3!53#5!#!#5!##"&'53326G  @BgOOnO%~jjkkkk""ca?9l'%!3!53#5!#!#5!##"'5332761J0ЕЕYWpVLJQ()hlfjjSjj=jjۣ_]B`Z>>)"#3! &5#5!#;#5!#3Z ` "9kkǘrkk?l'!!#"#3!"'&5#5!#3!#5!#3kZ]JL6%Е9]ЕW6%MTjjs-#jj5 !#3!53#5jjj@fi' !{[-&Kf\&{ {u[!&j3[hDem' nu[H&UgQ[Dg\' {u[!&j^\' {u!'jc \' { uQ!&j[y[6'Te2'q]<?l'qe\' {u?l!'jg\& {u[!&j^g_[D7g\&% {u[!&&j^g\' {`u[!&j.2'q<9'&qy\' {[u9'!&jyk' [u9'f&y3\' {u?a!'jew353#5!#5!3#4#fo_ ZjkT>5v'353#5!#5!3#'&#?A_c]ZjTi{e\' {pu6z!'jpR[D&0#&#";#"3273#"&5467.5!2wam+Ro;٥|˫f[PfjZYyqX.E(%#"&'533265!#"&'533265#5!#@BgPOnOJ1#AfH=HJ w0""ca5""Vi&2kk 9Q'.#"'5332765!#"&/32>7676=#5!#YXpVLJQ() $oJ;=E9$9 h_]B`Z>>uSPHO}JfbhMȼjj./#"&'533265#5!# #5!# 3!53 3!53 FJ1#AfH=HJ w (CZ""Vi&2kkkk?jjjjs} '6%>76=#5!##5!# 3!53 3!53 !#"&/326  rȀp+}Fz| oJ;=E9$9*hMȼjj3kkw7jj>jjvSghPHO}g4[VfDT b:'Z?B>54.'#5!#;#"&'#".5#5!#327.546?+N?  '# 4+! IF*?WjM}V4G)j -@Y<0wF!MJ@`kk`>#k,+Bʈnkkt15THA!-?t.54.#"!2.#!3!534>23!5 )OyOPxO(>cO?~07:tMԷNWmvak98jb7 $w$ kkZЍHHЈXkkZ#0>3232.+3!53!".4&#"3!ZRckNc>cO?~07:fc㠠*QwM@> φ?CҏU $w$ kk5Bwqk3$)3!5354>232.+3!53!"0XVNԷMj>cP>~06:nmkklɆBBɈA $w$ kk?t)5!#".5#5!#!2.#!!26=dWNԷM>cO?~07:t?hkklʅBBʈnkk $w$ 1vÊZ>32>54.#"3!&54>32!2.#!m¢Y/6bTFg@Y3Tq|;H~mO.2Uo}=>cO?~/7:F;lptu;1hr3kWJn\: BcehnI $w$ F|#2.#!!2.#!53#5!#1>cO?~079>cO?~07:ج' $w$ $w$ kkk?t%54&# !2.#!534>23!5 >cO?~07:MԷNWYv $w$ knɆBBɈkk?8G"3!534>32332.+".4>;54."2>5p?b{v֦f$>cO?~/7:'FquHHtK?q-0U=##=UaR9!8jbkkZЍHC~p $w$ yt88rr8gak(RV++RzPgZ#3#5!#32.+#".>3!"32>5 c>cO?~07:fNkcRSc@MwQ*)QxMOyO)jkk $w$ c҉CB͆Az*ch..do~#54&#"3!53#5!#>323!5qJTY,jMXTǼkkkkb-BɈ6kk353#5!#!2.# >cO?~079jkk $w$ ,!#32>5#5!#".5!3!53#5!US(OxPOyO) MԷMjk6ak98jbkkTЍHHЈkkkk&7"".547#33>32.2>54.#7gTWYؠ[kZ幝>M}/~5=?>;ke8;TcIB n술LL젙uW9[A"2-w' גz66{ǑrȔWkU$3 5#5!#3!53#".5#5!t(OxP@XdWJTY,jMj7ak9/kkkk-HЈkkbx#5.54>$73\;5a`g`='ef' 2t"^<8f9EW%.'#".54>32>54.#"3!.54>32%"3267.C8I`Y@gH%'Gd<2t{~=.L86eXEf>Y2Soz:IoQ-.TrD)I (.= HI0`ZRM.[*>D#?Y64ZB&*8!7\{<4ik5k-R&j]< CdiYA1j #)1/)6*3!5354>232.'!534.#"CWVNշN=>cO?~,37S(PxOQwO)YkklЍHHЈ $w# kxbj89ka.=.#"3!"&54>7.+532>3!2654' 6rvv9 % ^85#?XjyA ")*[&B==PL5U JBpR.1d,Ol@.7 k>80~Q  k-G4Ti;^ [<;DVu*!2.+".5#5!#32>5#>cO?~079AMնN)OxPOxP( $w$ ЍHHЈZkkak98jbxuC!#32>54.#!#3!2>4."#4>2#".v;CeEJi@5WcVMնN=>cO?~079)OxPOxP(|kklЍHHЈK $w# kbj89ka:.+532%.#"32>54&'#5!#".54>7fGPS&0b\Q -};dq=2`YUa4Y ^lnϡaKx z ԰P}|E4ik5k-R&ގCL~o ? 3!534>23!534&MԷNvtkknɆBBɈkk!032>4.#"3!.54>32#55B=bp<2_YUa4Y^lnϡaJy`;@LE4ik5k-R&ގCL~ڦh lK '3!5354> 3!534.'3!53XVY'X)X_WVaZ*mkkXЍHHЈkkxWhA kk AiWO4M3267>54.54>32!2.#!654.#"}Y  9^v}w^9H֏FzhK*0RnC >cO?~079Ź2TjojT2 U]BkIP`6FIC450NV) Axed[!CdcdpM $w$ FIP) >q^K(h z99d?]."3!534>232.+3!534.PxO(MԷN=>cO?~079@)Oy8jbkkZЍHHЈU $w$ kkxak9?% #5!#".5#5!#@ NԷMTkkʅBBʈnkkt132.#!53#".=#5!#32>7#5!T:>cO?~/7:aITY,kNWdW)OwQMvP*j $w$ kx-HЈ"kk@ak95e]kke>!#32>54./.54>32#4.#"".f8De~CP\2EqTVc5B|pWV3Si6AjL)$MyUIؠZkHfA)Hc95SD9;G^}SWqA0^^Ge@%D]86N=47=ɝ^uBF? "3!534>23!5354.PxO(MԷN)Oy8jbkkZЍHHЈkkak9a =O!#32>54.#!"'>3.54>2#".4."32>?FjAPh;BiC:70~1}-L6MԴI2Tm;EmCXxv֥ay(LnoM*#LwU8eMkFeB+X[W}O& $w.14BP.Y]0.\YDkN0?kYox?C`;=aEDc@A!2.#!3!53#5!>cO?~079=j $w$ kkkku *4!#3!535.4>75#4.'> ׎FFב׎EEב.[ZZ[[.[YY[kX Trl\ sjjs \غX YЛj= _ :gЙg: =j3A>32#"&'!2.#!3!535#".'7;326&#"jQhcRSaXCS?bP?~/7: >cO?~07:#*RwLxs9;vv;43 $w$ kk $w# _MZ2nu !%2#"".54>32ޕ]]^*PrNQJKQkwvpnȬc6n(2:!##".54>3!##".$4.'>#";o@8ZyH=3QUO+E%Zd3#d%"#4>32>53dFfB R5]MFdB T3^*?K"@~c=%32#".'332>5.#"E3@kI:kS25N0$C5$I$&  6G(@lO0zz=@eG0R32#4.#"5D-b.K6twkkjjkmm5cN [VD)%!3!53#".4>325!#4&#"32651pYj::jXp1D~~kkkkd_RΔR_dkFBVD#%!3!534.#"3!53#5!>32Ȕ7.K6tw5D-bkkjjcN jjRkmm*X!326533!5#"&5#5!!C.K7tx.b:'kbN!kmm'j[VD%!53#".4>325!#4&#"3265O1pYj::jXp1D~~kkd_RΔR_dkF3 !!!53#5!ᔔ:'kkk?j3VaD53#5!>323!534.#"!<D.b7.K6txVjkmmjjcN qk3VC4C#".54>;.#"3!53#5!>322>7#"@j~X/)U[)3!#5!!!%2>5!"vȡs>>scCL?r?eF&Oz{ʏNkkIzɐ9ro3V_>323!534.#"3!53#5!v-b7.K6tw4CjmmjjcN pjjk*V' !53#5!V;kjj3V13!5#"&=4.#"3!53#5!>323265#5 .b.K6tw4C-b.K6tx'DkmmcN pjjkVmmbN!jl )/".54>7%3#32>54./" F{ǩ|F323!534.#"3<D.b7.K6txj@jVmmjjcM j~`/5H3!5#".54>7#".546?3267326=4.'.bOg;)Hcp{=#LKD4`> ;aH#G!*cH1U?$Lkmm2fkd}oe1 (37l9  $"P,jB NbN!HgtB5w3VD!534.#"3!53#5!>32R.K6tx5D.bkjcN jjRkmms#)=3!5#".547#53>32#.#"2326=4.+Ԟ-bUd83/T~.tLAu9VKJ=mbR tΚZl(C[7twAoO" Lkmm7qw} kjO!!UY?mWIbO!Hif2ik)3/84>32#.#"3!5#"&5#5!32654.3Si7Au8ULJ0'&-b:.K7tw#-:_D%!!aY&8#$<<@M`=kmm:jbN!v@dSE@@V'#5!+53265ߜB0VzJmqRNkVX-ksba/?3265#5!3!5#"&54>7.54>32#.#"(E6  .K7tw6-b %3?Q]/?gI'!!aY)?V$F2>323!!".54>54.#"$R_nBdd25Xour[9;Ax5%9\v|v\90Ph8O-.H0>iMQui^S$- j$1+]elt}NRwN%ECKyD353#5!>323!534.#"3UD.b7.K6twjRkmmjjcN j V[23!!".54>7.546?3 .#T 4&CqSAsY3#&_H &AHM%lr;$j$1]\ )EdE3e+lH'-!> QYT 3V'/#"&'#"&5#5!3265#5!3265#5!3!5N.Zp`Ǘ<-F3os6,G2ps65jpzr:jqRsH jjPpF jjjcVF/L.54>323!!".54>7654&.#">5<g.\J/PZb^-5WquqZ;:Af 4&/Oe8 5Pc54U<"+?I"2\F) 3[dsKYg8EoHLwl_R"- j$1'U[a3#DHoK'!:P07\QI#&_0  3lrx>KD)%!53>54.#"3!53#5!>321D 2"9Z@5D0hNd94D(kkj/}@?z`;jjRkqi9miM:3a'3!5#"&5#5!3265#5ž-b:.K7tw'Dkmm:jbN!j3V!!53#"&5#5!3265#5RI-b:.K7twkkmm:jbN!j3D5%3!534.#"3!5#".5#5!3265#5!>32;,G3lt.Z8lT56,G2psD.Z8lT4kkk+PpF jjp&\sJkjPpF jjp&\sBVpD53#5!>323!534.#"3LD-b7.K6twVjkmmjjcN pjc9nD#/#"'53326=#".4>325!4&#"3265;oiVxq1oZj;;jYo1D[rz@Li_ďd_RΔR_dkFK' %!53#5!;kkjSjD3V7#".5#5!3265#5!>323!534.#"3!5.Z8lT56,G2ps:.Z8lT4;,G3lt5jp&\sJkjPpF jVjp&\skk+PpF _jjVD(!#5#53#5!>32#"&'326&"襱D1pXj;;iXp1kkgkd_RΕR_dicD%26& ".54>322ӪyBByiiyBBxF6cQ~ΓPQ~}ϔ$Vz-6B!##".54>3!#3!53.%4.'>#";$ > ̶`Nd:!9KSX'ߖMH4G2".4>32". +3+ ,5,!+,  ,3, h1$%161$$181$$10$$Qs 3267#"&'Q9r;8s<9r<8s;sIO'+4332#!53#5!3#67654'&'3#67654'&'.Z|rnZ䦦_2==2_ACB@t\Y-]_^8 ,7wy6,8ADDAc:4.+"#5#5%7>323!354.#!53#5!#!23! /%0R54.+53!3!57#5!#32!I=2>X9sr@sss,^i5  +XO;N-jcnmFhhOuC4.+";2>53#!".=4>?!#57!3#'5!%Xf]c4'\oeX&KnoL]XAkIKTA9vpdI,tD>{xN~=KuWYznTpf>f 0J_m{?c%3!3!57#5!#3!#sr@ssss@eggJggec%4.#!3!53!3!53#5!#!23!(sBqqBsssG0YB(P ->&eeiiJgg*Hd:k94.#!;2>5#!".5%".=#5!#3!'!2? 1 z*C1 1 ٕ~:cG((>*ts #p2fR4$@/8M26ZE,Ha42IX'kgg^8.h!EiGu7";7#4.#!!"$&=4>3!!23!wwČL#@^uM**1*sl6dlsCxY4wakOb9GfE!$czgc8eD5bUj%3!".=#5!#3!#3!p-D.qr3?jjLe$57#!".5!53'5!#!2.@%/C*&<(,PpCJuS-rru54.++".5!3%".5'#5!'3!#!23!KJ_4,E.l/I2-J8~$JuTT`4&A0ot' u)@[:v6YA&SD,(AT,_CP+ [P$(S~UpW8O3ohh/.g@nUkc+23!54&#!!23!534.#!3!53#5U1P:T<1|UU+s@s.J7r@ss5Q:,k;/*Zeee`8V;eeflU4.+";2>5#".'+".=4>;22>5!5llW`s@-E\sFjAr`J4_'C>= 6TJG)RwU1.SvVWsR,&BX2-4?, 9*ftqErD5^_Ϙ6XA.;$5#5%t'Wae[+.B)rq/G00r $?2.8 tNrM&$IpM#@W2YhgR)6 h8K.1N9f)%3%"&5'".5'#5!#;;5!3!sdw-E.rsJ< 3%srr>e[~5ZCggEG,F33hgec,34.#!+".5#5!#;265#5!#!23!'BiBL]3tr%9*OQuuI;_B#t#=-1^Z-5#5!w6_NDc=sr#7))6"usR|R*-U~Pgg?Y8*C2hcn 14&#!!2>5354.#!53'5!2#!!23!S^*.E.q#>/ss|o_)(^p,]o9v<YY !=1 I=)kg9T9AeF%<_s9dl.R4.+";2>52654.'+".=4>;2!0G]qCVFv_G03H`tBVfi6DD-J6)pY{YyV/,Rt[ZtR. LxR+:Ya66`YeZf:yVE71( U]2Apacd99ec,oiR=Nb=\dc[ 2";4.+32>7+3!5#"3!2+BZ88ZB;\AA\;=vmu?nc`9|ƍu4y4 3uyܔIiee/=B=1754&#%3!5%".55!';#5!!2!ZoWOu=tv6`F)qq+E3tv3ZE)tA0kxeeh#Eb?hh(L:#(hg+I_6jc!%34.#'"3!534>;23!r(+rCq#M\s>dpLLqcddb~Bdc%3!".5#5!#3!#5!#3!!sYS(sr$;-Isss>e_%Uf0hhJhB2hhec2#+".=4>73;25!".5#5!#3%#'!s=c}>=gA+AL"W}P%qr0+pv`9lS4.Om?&NH<u)"Regg2$J<'gc%34.#!3!53#5!#!23!u+G4qDoqsCtV2v:e]4W?"eegg@kMecL%'+".=4>;27!554.+";2>=#5!'3# +;JQX*9f[R/stlU3t#);FN(REv^H0/E^tFU'XWP=%ktt675(qx%BZky>XfflNPM;$:cSGg=#6FE>ggdc;";2>54.++".5463!#5!#!23!@Db>3M5_*D-"-2_YUg;sw )UE,s'E4TDZ84[H]%1 ^O",T~RJgg@`?ic 54.#!!2>54.#!3!53#5!2#!23!!4%P+6 3%sBpp;s[83Yu@.[Lh>m/ $4!32*cch,CP%9X>%A]6gc >+".=4>3;2>=4.#!#5!#3!!32 /Plz>qd[2Ri6S0Y~QD,WQF3:cJsTwxK܃fFv\E-1ZNcCoP,eA+HgB/@HP'Kc9ffh|;utc%%354.#!53#5!#!#5!#3%!2!!s1H0ssnquu|t>d,<$jchhJhhhNvucc @4+32>53+3!53#"7!5463%!".5'#5!#3!2߮?U4s=t@P,qAsRvJ"st.UExZi<9/K7ee[%P[ee_)E3hh%MvRP)#+".5!!53#5!#;2>5#5!t4]JZh8sst2J1x#=-trOmDCnO@NhJhhDa>;T5ehc754.#!3!57#5!#!23!"t';*t>sstCpW"s?)Ic>Jedhh?sblcB+".55!;26=4.'.=4>3!#5#\hE{jL-mF5GSZ-c8i^[W*5\xBV7T::|vjP.b~H"=Scm8Qaa2f^S>$mU~`K$#:KfL:hM- @;5$0>Z}Vc%3!".5#5!#3!#5!#3!#rh`,so6svv=e]GuZ&hh2hhec%3!5!57#5!#!#5!#3!sqAqqqrrvsfffHhJggJggiv E4.+32>5";2653+"&=4>;#5!2/!'3!2P8*D0w$B3,D-MW[:gYM1kwowv'@-T,<$h6N0.XC)u]L_6xRX.3hr{}mic3#".54>732>54.=3GuQKi=*B/;),F[/?T2-9:9- 6DGE6 lh33ec7>54.=34.#"32>8kdmm6 $=]W'141')0)9wb? .ZNSY+-_VSW'){̒PZo={seN32/>).D3pp%1*,@]E-4 >|Óco;;naWuDFuH4U9M%#".54>7>54&#".54>324.#"32>MXhI'S~YQk>JR4C'`*!)UZG|\5PsF!A_?NmDClMEb?)rGG~gco]2/VOJ$IR0! )8C'4_H+*Id:V9' FuZk:+`rWY,#Rc=@Qf#4.'.#"'>7.54>32>32#".54>7.#"54.#"32>q"GnL.I!623p1:G.,\UL9 6id3F6,?SZh87fX[p>"*/:(=P-3^W9qgXA%X 'G<@R00R?732>54.#".54>326ifcr?-:=9ky732>574.+532>54.#".54>32DrL_|F*Ic:" >_A4I/ 7H(MU#B63O92V?$/*<.$ 7cRIqH,H[/.aL1ln8=jRMiD' B0-O=0 ,550M~Y1'Q}UWvP/:UtO$4H^#".5467".54>32>32>3"4.#"32>4.#"32>?pa`l:HKAnR.3Vl9NuL&<7 ;#. 2I\5/>."9Z> $<.!7)$8%*<(X<[=9Q3 !/>(L_4%χ@B~A;dJh[*>iMJ< M[3/O<Kl?dF%?eIK`83aIOvIG{`%RQI8!7gc@7K4>32>32+532>54.#"#".%4.#"32>cEuUZ<CD@Yj=4.#"#&54>32lmp1$2ZF=P0 0#zdk;k]`o<9dV !Fu]|_%Zo]zM( VgtMK-3AK#".54>732>=4.+52>4.#"'>3232GxV,b_WA'3P^,! 8X=MZ. %0#PPH6! :1"5!?&% 1Tn=b9lS2k/)@VmBQmE#G.9H.Pc6-^c14iT4t'5AIN7#  JtCc=KL#'2>54.#"#5>=4.#"#5>=4.#"#4.'.#'>7.54>32>2>32K&>OUS!$>-.C),C,(C31D)  /L7=H& VLPNt+EUTIQgE01C97%_$BFI+>n`L6ClJ&PG7 5HNDLC46FS,Hh?UuY<n5jk`u>4YE2-G,**+I,5:Z<324.#".54>324.#"32>CnOmtDY1ǃj,OysL&*(@+%?/)8z367KrM&)TWc`9 0`axa*)Z~6I#".54>3232>7#".#">3254&#"32>Fz][k;%ImG4K;37320}jǵ-ds~R*Qyc7AN.#5>54.#"#5>=4&#"#.54>32632'9FQ-0@0. D!=>@$]b#JBcgkc>I& 0:=@pS06dYe$EQ`441lleT< !3)[8L/_I`7D*H)**)H*D9dP&B$Cx_A \$knoN}PcL#".54>732>54.+532>54.=36ichr;$C[8  5YCHU) >^Ba,:$#9HKI9"n)DWZWD)2CFGHb;h}F>gG@jU>I ,47GuT/1X}Kod/g"=T25E."7Q=$,(BcH732>5#"&'#"&'32>54.#"532>53@q\VvE!DhF#3WD?Y9"UZ_-!>$XM59_I-R%520'2 5N3080u@4qmbK,X(x86^gE( A2;G./K4+PsI 7_M3_I+#G9$/:$?0 "'cc>32>32#52>54.#"#5>=4.#"3#.54>7>73#"7I[3d&$^Ui;(OyOV8K-$KC E7$!5Apf"=R1`HxX1*L{zaiC8$8X}SKzeG(BnP,ttExW}#+aoZsBBmQH)L'**'L)HRmBlj4}VG|!'%)>GH;%1To{; @#".54."#54>3232>54.54>7"EtTVh;"6 =-F1o~akFZ4"#" !8.(-/)?I?*iw@KczP]0 %/&C3JsE^?(':,A<4(")73:TzQ4s\p#".54>7&#"'>7332>54.'#".54>7.546324.#">4.'326K֋Q#GkI3O;( )7@D@8&'5! %[tlT"-H3!9L,.I2>7*:#e^em#9*Ir[A":/(%'$ *2 *%*1'"9G lw`N#16  a?RGSTt3<'A02E*!48C0-04YllY664Yua$(#&*3*#B798545",$3Ae%+".5%;2>54.#"#5>5'4&#"#".57332>32>321b``)YXQ=%$ 3I-W-@.!+,1 *2+3 '0!&J9#"#&&*-29W'3A)>hL+fM4L^q@ 8=7H]=5_H*#9INK,/>$&2/ /1.,*.2/DP6pR5AhJ?:1~W6WS2A'%Vic3|Aau#".54>732>=4.+532>54.#"#".54>32>324.#"32>hCydboK-9V>!FmL5Y@$$;,762E*(E7!3.. BkIYf88i^HGBAD>Wg92YyFAsS0O+J8@P-,O?=L+5\k;->FM&*=-"0e^L6!>Y8v2M3T'ZlGjF#"+;K/`#GxY^zG$;-*;%?p]i^5 %Bj^]}K )RzPTT*(Rc3B#".54>732>54.#".54>32'%33d_b|F)Ic:5'#A\;FV.2Si7 4%$V?5#1Sl:5SG@#CYl[yFBs]EmQ1 F)aKkE +PnD-%C3&B40' 7NjF>oS0 $?2c>A`'>54.#"#5>=4.#"#4.'.#"'>7.54>32>32$P~Z"6B# *K98U:2Q=9M.&Fb><|pT2)KtT"&MD3 *mFtI;lXd"@We2Ub6T|l0`)GTlOQxP'5U=(L&**&L(=U5*S|RJxf))DGRla.MB::=",732>5#".54>7332>53VwF @a@ 0O9>[9 uPPl@>cEt.@(,C/0WC',Nl@IhE(L '4>#!B6"'Gd=UR@nUKmXN,,TV[2EwX38P2K_#".54>324.#"#54.#".54>32>324.#"32>=pcEr^G0BqY'PE3 *7 $ 0#.& .@('?P)X{ />G#>dF&&A[5@R/4XC:W9]K-Ok}DiM)=J!^$. 5P6xx6P5 ).<%M8@CE^9vi0R54.#">32+532>54.#"#4632+  #8*"2"1+/M63aJ,DfF"2A" %-3"=-CkNc+C.C|kWjJ(h7rwRe9%@Y4K%@Z41PA/c3@Y%#".=4>7532>7332>54.+532>54.53XYtF0N:'=<@* ML@X17'IlFGjG$!;/EtY!HH@2mx@d醢W; &5('j kDhK-SsFRh;k1Q<-H>9=E++:)#4I5,UF5 '8Qpc 4#"4>324.#524.#"32>>p_1FVf8/XJ:(-9pX7(Gb:4H.5XA5U; tDBveK*$>S. P[- V2^Uf|F>oXmg2!SZ*\|'>54&#"#54.">32#>5<'.'.54>32>324.#">!. @9DF-Q4  ,sHa8 'VegV8V !* BkML`&4E.@Z6*>)6`H) !KF; )A81-+.<*H9!1 7S8-3+u{s)s;jWIXj?7c9r3gxe9om6\[2F+4Q"3jidZ_flQ4p%#".54>732>54.54>70#".54>324>54.''>73%%5.#"2>'9D9'JxMXvE/Lc4" ;R1EV0(1)  E"CC /N68R3 /K`0Fr`RKI'1DZ;Z-F,4MY%,^M1'74>732%32>54.#"J~_Zf6(EZg.H1&^:&@T/&@L* FrGgkdKa94L20\F,:و=Rl)1-qmocOp]ES TvQ318?!@Ӊ:Z>?w\8#A]-3A%#".'72632#".5732>54.#"'>7.#".54>32>54.#".54>3232>54.'78K,#HIIJI%5Q<-<<9,1\Q,R?&A-7/C)-=Cc}G$78=*(!+.O66%;T>/-1 QZZH- /$! (8Kcj#".546732>54."532>54.#"532>54.'.5332BoP3kdYC'\c  (Hc=>P.,51qq 61!.4hh94# +WMMqL%x 4(ef?" +ET*,XE*">Y74]D)kg2$# )5B&$8-" %5G-.L:* CV`cj4&#"3>#".54>32#32>54.#52>54.#52>54.'7%FX3%GE"8)+7FJ&>-(8!;@>1OH&NxRk'6Sn+RG6-8B$@:3/?N0*sʡ ?K`F9"W 3?3Q:(:/< B6#72#8F#`bH!*7GXjcFA0E33267".'#532>7.54>324.#";2>AfJ9:9  *blt? 1fhl8?A>NmG GyVPvG2R=9T8'=I 'K;$ZZr0%8D ?:+ 4xWp~DGlpO!Sio++oc3V2>5##".54>732>73#".546732>574.+5=u[7'5?FC<Hb; ! #B6Cp]M"v,;CH$Aq[YvC2T?+Q>'2Q:UJuF'" 7`L%9-%@&E*/(;X:p}X?,6̐cbo732>56&'5>54.54>2.#"8l`JzaI1#DeA =X;DP* `dqs6D(.K`d`J.8Zsun[? 4I3&M>(8\vzv\8v{5^I+x}?'AV\\(MrP2G'=YBMkE4ZyE 6-0E*L`=%!(DiSNoG DqU";N..C+GV4 54.#"3%'#37'##".54>735#".54>3233m['>\;&F6!:R15R7(EY_a)dIaaKKa*ZbfxAI F=q`k_,ar AcDAY6 /$7!, 7ZBAZ:C8LDPb85_Q][1*YbQ_4/\Vc3`d4.#"32>".54>323>73>32#"&'##732>54.#"3.*4<""G;&*DS+.J3Yl;>nX2<@*J;59;Xl=9h^9v.K(#.0/-J54K/&`[5 'QGO:M-\`8Иς; hP' * &+ ;ʏՂ8e/Mb4K/D-[\c4 UM#".54>54.#".54>3232>54.'7 WS7rj^G):^x~w_:#;M+c\ v$//YR@x^92QhliQ1BhH6aI+!9\@#3nc-9Qi~I^pUIAFQ5FV-Q_j YC1hV8'Q|UGq\NJMZmESW-&Hg@>SC>(A P^ku3A;332>54.'3#"&'32>54.'7#"&5u'CW06E'8S7tRwK$?lQNwn9N1SrDFvV,O2ZD(!M|[TrS?!!Rf|KUf8JTz.H5"C7&Z7Kb=@mO-c3K6H4>3232>54&'7#".54%5.732>54&#"cMXhINcTsG dR.N: !&94$6cRGvV/OtF>^>NoF E`=cs~BCygS|m2+URM#QR 1&*7i5N45YA$*H_5q' KzbZe50gq/`crA<'>54.#"'.'.#"&5473.54>32yf ,YL3ZB'%HjF$@6( )$:3()<^@!?q^VuEn?X-e?6lW6DpQj^H*BXqGN`: #6@A4e2,\lR`g69gQ(:7.54>32#"&&54>32#"&&4>2#"&]##$1###23$'##1D  *))%) ))%.)))%Q; 14#"32>7#"4>323267#".#"3632zxx-1|$C`; "!6) 7#-,! ;1v 8L, 1S;! B" #- ' 3!53'!3!53!?`mHK{Jk`7'Dkkkky+'##5!353#5#!53!535!3!53#5!_I___Sk`n,'ߦrzjkkQkk[hD 8?32654&#"'>32+32673#"&'#"!54&#"#>323267|xzigbKqshwVVN2Bjɑm'֭nzsvzoF[XIxcc))WZXY*}[ԺA' ( 3##!53#53#53264&+3264&+T9: Z.<_hi^irqj'[; jEjjHj[YZpn[D32673#"32#.#"v`[[[[`v瀌0/11/0A'%326&+53#5!2#~ooĖ|4jCjSjA'353#53#5!2#'326&+3#B|4@oojvkrjjk5'#5!353#5#!53!53#5`I``_'ߦrzjSj[VD22#"'&'53327654'&+5327654'&'&#676ʿCEyyECKVV]Y 88ia44?@|##|@?43bhoRPDgGGHGf%]-.43_j45d45i`32\|a_BJ$- #"&5462#5!#3!=*)=32#"&'3326뉆v`[[[[`v瀌0//0[L4&  67 54 fX7ؘZ8L%.5432#5>54& *,~sbpp8'ްeekw 0 +>54&#"3267#"5467'7>3234Aj,]75Dm.Cj009Fh.-84&pJ-(oJw>@^CL=>^@L[D(/" 6&!54&#"#>32>32#"&'#"73267􅈈 ʒm(խuB>uw?Bnzs8F}ba`cc``c)6mD!654#5 ! 47&54!"254'qJZvacgkt|zck^d[D 4& #4 82[  653 5 ]2a'+3!53#5!23264&+55b[\asjjSjur'(&'&54763!#3!53#"!53676%#"3n77KM!Qvm?H+  [a...-b??fJJggg:bg I Kk3233'(&'&'#5!;#5!#3!"'&5476#";-  +H?mvߋMK77b-...a I gb:gggJJf??.3323J'1'$265#5!# &5#5!#_ӖҖjkk9kkuMi!53##!#!2654&#!v]``d`-McX3j^`z,i 14632#"&4632#"&!53##!#!2654&#!>,-<<-,>>,-<<-,>]_`d`-M0FB42BE/EB23ADX3l`^zx\Pp0#!#3!2654&#!#3!2654&#!#3!53#{ik__|K__yK__^`dn5n`o{`o{3d| 'Y'ZI']]'##5!#!#"'&'53327654'&-&_>^mnj_dZ^UPO/BEVc#Vk4ONO#c85R2Ot<>Zy !253# %5 5!"#563 xVlK=WmCղB?MCB6$D"3327.54232673#"'#"&'6`vhFe eEiv`[[[[RRb갫bR0/ZZ/05v' 'NBy'9a'C(/54;#"3!535&'&=4+532#5!#676{B8VG GU9A|<&zu+<jeWK jj JZejύI/Hkg0D Q'R!5333!53'!38uK-_/S^GF\C; ;;;O#!#535!3#53#5!#5!!53#5!!5383kV\JOz:FzFFF;;;32QV7@>>@7W>@7ȼ86?ef?77d>77.x!65452! 547&743"254'}ۤ㹜gȠ:NBr{32ΆNLMPh^"[=dv{SL>J 66g1~W~BD?HO;@)'iZ\f)DJ87y{9 *32654&"#53>32+32673#"'&MMNOi]"[J 66431}AB4~BE>IP9;@)(jY]f)C&%87x ==9'53#3#5#"'&63254'&#"3276dd.0FoGFpF0.)*OQ))))QO*)]<$;]8WW;k98?>|{@?899  7>32654&#"'>32+32673#"&'#"&'!54&#"#>323267uNLMBAP>/sFpzzQIBJ 66f1Pn*lC[ZFWSmDvRMHT4~BE>IP'32ff)CK87x0312x{GFbc3hjkg! #53>32#"&'#5732654&#"e_EooE_SOQRRQOS;8658];kq{|}qk9 3#5#"&632#5354&#"326ad^FopF^bhSOQRRQOS;]85686;;kq}|{q9v!32673#"&54632.#"u?\YEXSnwSLHS x{GFbbchjjh9v!!54'&#"#67632#"'&73267:..ZE,,TCDmPPIJy*(NHS x>=#$Fb12WUSSch55kg91"&54767&'&54632#&'&#";#"26732x+*MM*+xp066:8##B=!!((OO((A>AF T 42VO:'( ((9OW x45<8;683FI65902#"'&'53327654'&+532654'&#&#>"w*+MM+*wp066;9##C=! ('OOO >BF U gWO9(( ((9OV y46;8:;64EHl9+#"&'53326=#"&632534&#"3265a323!534&#"3!534&#"3!53#53>32Y]?^^][7?EIZ[7?EJ[^dY9F_{BCtu;;4[Mhc;;8YKhc;;;j32#"&'5332654&#"30^d\=c00oa)J#61/316FHL[;97yK\i{62DImQhd;926&""&6  UUV Ã9U>32#"&'53326'&#":~dQOOQ:q:> )'JUV+*VCP=_dVVVUN$$AAEF9 4&"#46 UVz ƀ9 2653 &5VU{! "32654&#"'#53>32#"&'3!53SOQRRQOShe_EooE_ce;kq{|}qe<]8658<<!#53533#32673#"&5}\\i((&NPR[K<py>q{<^nQjea[;c^]6DHKZ*./#"&5#5332765#5332765#533#5#"'&//>^^^7?F$$Z?E%$ZdY9F0. A!"tu?<\M44d9_E@583!fKdtLd1D)0"&'#"&5#5!3265#5!632!32673.#"nFKq;Vnsx6t6m(Izr[X[X9kkQn}[9fD+4632#.#">32#"&'!532654&#"^OVyp0n߲n0D~~&&h`ďd_ _dkt?B$'%3!53#53#5!#3# jjjxkokgkB&'53#5!3#7"'&=CD%'SXTkok&k<>c^Y5VD(1#5!>323#'"&'3!53#53!3276!&'&#"ԟE1opc on dpo1~A::A}BAkd_k،_dkk!kkqd"aped1'#$26=!%53#5!#!#5!#3# &=_ĖҖj&&kokkokkk__'+3#3#"&'&'&'#536767#5!!&'&'5!! 76;&y&%IACK%%y ';k7' E '7jLR QM@|Raki`bJCGFDL`^kkaR|@kk.~ZiiZ~.kippj9%3#"&'533276=!53#5!zAv7UMJR'&şEjjh!!`Z>w^y<S+L!- 05&T,91"'&'3367654'&+532654'&#"#567632"u34 U FB> ('OOO !=C##9;660pw*+MM+*w56IF36;8:<54x WO9(( (':OV*#.#"3#3!53#53546327/-;/dddie&L&w*+?QM<$;;88y>^^^7?F$$Z?E%$Z<<-;?#"?A!"tu?<\M44d32327673#"'&5FH&&[^d\=c004/6#&%)a86m)(44d;;97yKI""6{ 45\/53#53#5!##30NN r*Qes;lrQ?4 {6#->!&#53533#32673#"&'53326=#"&5}\\i((&Nna)J#60.41"[K<88y+;< m()539+#"&'&'&54767#5327654'&'53dW33.)56xj*.33XCE3324#"C#IHX?58)%'&*76>XHI#<]tUh?>>?hV9:]265#5!#"&5#5!#);^_څ]$^Qm<<0g0l.75!#5!!327673#"'&=/y<4.6$%%)`970g0uJ!"6{ 44]:.2=654#"5!#5!3632#70D|#QRy<KL0D0g0l PQ9n!#57!#5!#"'&'53327654&,6<,isPOB???@cYW31f9g0lFE Z]88`nr9&'&#"!32762#"'&76'*UR,&R'+RT+'POPOPPPOn[ff[<[ff[{zj{zz{z{&f73!5Źj&~Af!!3'ix&f!5!#ajҔ~Af#!ixf 3# #3ihifxf 3# #hӗifxF&$f[D&De^' ju%5@]&E<ex&%j5x@']Ee&%j5@']Eguk& |u[uf&e\^' ju'[f]&GB<ex\'j'[xf'Ge\&'j[f&Ge\&z '[uf&G0e\'j'[f'GeZ& *([[' HeZ& *([[' He'n([D'HeK'n([KD&Heum' nu[uH&Ue^' wu)B]&I<g0k&*u[9f&Je^' u+Bp]&K<ex'+Bxp'*Ke\' {u+ p^&K<eu&+GBup&KeC&+BCp&K*?K&,:KK&LSZ' ,@' e}r&. ||5j&N |ex}&.5xj&Ne}&.5j&Nex'N/5x'O^x2&q<x33&qY=e&/y5&Oe'y/G'O[k' ||u0Bf'CP[^' |u0B!&P[x'|0BxD'CPZ^' u1Bp!'QZx'1BxpD'*QZ&1BpD&Q*Z'1BpD'*QgZ& z2[ ' Rgd& z2[ ' }'j\RgZ& }2[[' RgZ& }2[[' Rek' |ju35V@f'KSe^' ju35V@!&Se^' _u5Br!&Uex'_5BxrD'Uex2&q<Bxr&q/e'_5rD&Uh^' Eu6gT!&Vxh'E6gxTD'Vh' r6gT' Vhe& 6gT' cVxh^' EugxT!'^' .u75]'M<Wx&745xq&W&7.5q&W'.75q'WVx'81x_''XVK&81K_'&XV'81_''XVZ' 81_ ' XVB' 81_C' XOj&9 }a 7&YxO's9x ''Y bk' ~u:d'Z bk' |u:f'Z b\' {u:!'jKZ b^' u:!&Z xb&:x'&Z ^' ]u;!&[ \' {]u;!&[^' *u<9 !&\Rk' Nu=If&]Rx&=NIx'&]R&=NI'&]Bp&K*^&W<&Z9 &\[&DKB]'<A-!%3!53'75#5354632#.#"7|7`VkKN8:fVB %3!53#535#5367632#.#"!!螞?S3!#"&'3326UdXU35|Ǔ+PaQO7!ApTPKj* 1\{ef.TgkkI} *FXMqe2?29[:) [-xF&$f[xD&DFE&$fu[&DF:& $[I&D F:& $[' DF& $[;&D Fu& $[&D xF&$'ffu[xf&D'FZ& *$[' DFZ& $$[' DF& $$[' DFY& $$[' DxF&$'ffu[xH&D'ex&(n[xD&HeE&(nu[&Hej&( }h[7&He:& +([}&H e:& +([&H e& +([G<' Heu& +([&H exk&('n nu[xf&H'esE&,:uB$&exs'9,Bx$'Lgx'2[xD'RgE&2u[&Rg:& ~2[e&R g:& ~2[&R g& ~2[/;&R gu& ~2[&R gxk&2' u[xf&R'ck' |ubYf&v^cck' ~ubYd&C^ccE'ubY' cc^' }ubY7&^ccx'bYxD'cVx'81x_'&XVE&8u1_&XQk' |uq'f&vArQk' ~uq'd&CArQE'uq''rQ^' }uq'7&ArQxk'q'xA'rr&< ~*|9 6&\Cx'*<9 ''\L'*|<9 '\j' }"<9 7'\e 353#5!#!53!ffoVjkkj5%3!53#535#5!!5#5!3#!\=E<Ejjj(kjjk([&*6p[&*ns[&*C[&*P[&*D[&*Q[&*E[&*RF& 6F& niT' C T' P [& Dt & LQF& EF& RZg&.6 Zg&.nZg&.CZg&.PZg&.D;Z&.Qa '6 |'n'mC -'P 'Dt '2QBV&06ZBV&0nOBV&0CSBV&0PaBV&0DBV&0QBV&0ElBV&0Rl '6 'nU'rC j'P 'Dt '<Q 'Ei }'RiB-l&26YB-l&2n^-&2Cv-&2Pt:-&2D-&2Q-l&2E^-l&2Ra ['6 K'n'rC 'xP ' Dt '<Q 'Ei 'Ri[&86T[&8nT[&8CF[&8PT[&8D[&8Q &6 &In'*C '7P Y'Dt ' QB&>6FB&>n9B&>C3B&>PNB&>DoB&>QB&>EIB&>R> 0'_n 'P 'Q 'RiQ&B6Q&BnQ&BCQ&BPQ&BDQ&BQ$Q&BEQ&BR &"6 &"Ln'",C '"7P b'"Dt '"Q R'"Ei '"Ri[d&*b~[f%Zgd&.bgZgf&BVd&0bBVf'-ld&2biB-lf([d&8bo[fEBd&>bYBfFQd&BbQfG[W&-[W&-[W&-[W&-[W&-[W&-[W&-[W&-WF'5WF'5WT'5 WT'5 W['5 W'5WF'5WF'5BV'yBV'yBV'yBV'yBV'yBV'yBV'yBV'y W'5? W'54WU'5 Wj'5 W'5h W'5 W'5 W}'5QW' QW' QW' QW' QW' QW' QW' QW'  W'50 W'5|W'5\ W'5g Wb'5 W'5> WR'5 W'53[H&*[&*q[Wd&-[WC&-*[Wf&-%[7&*7[W7&--Fi& !F1& q;Fd& btFfWF'5 ZK6WlZK2'67&'&5476=$CH ,"17#,LS#&8F'77&j7VBVd'yBVD'y0BVf'y'BV7&07lBV7'y<d'Obn fAd'_bn feW'5W/'6$b'6>m'76-lH&2f-l&2q^-l&2`c-l -l7&27t-l&28tSm& 8u^z2&q<d'dbn fz/'bn x&m n'7nBH&>IB&>qTB&>`;B)tV&:6=tV&:n=B7&>7AB&>86i&!1&q;d'bn f o'n7'bj75dCQWd' QW'' BQWf' GQ'7BQW' fd'bn fd'"bn f pW'50"afvZK2&'&75476(1#, GB#'F8&#SL,#7Qs!!Q3sQsQDb!!Q bQIb!!QbQb!!Qob4b!!3b'_)_]&BB#>7E>qz@?[>=3G?q{+?=[Q>=3QUOE%Z.'3F{r?+P[=R#>7#>7RE>pzE>qz@?[P@?[>=3%>=3G?q{ D>qy+?=[P??[Q >=3%>=3QUOVOE%ZPE%Z.'3.'3F|q?Gyq>+P[=?P[?3;g 3%%#5| h hFs3;g3%%%%#55| h h hhFE%'+! 4632#"&qppq||}sq_ 64632#"E31GG140pNN87N $4632#"$4632#""E31FF14VE31GG140pNN87NMpNN87Nx #%4632#"&%4632#"&%4632#"&E22FF23DE31FF14DE31GG14Dh8NN87NM88NN87NM88NN87NMe E #0<@L2#"&546"32654&"32654&"32654&#'2#"&5463#2#"&546OZZOMXYBOYZNMYYROXZMNXXLܻۻZݦ!\ܻۻ ۻۼ e  !-9DOS]2#"&546"32654&%2#"&546"32654&"32654&"26&#'2#"&5463#  &54 ⎧OZZOMXYᎧOZZOMXYBOYZNMYYROXZXXLvۻZZۻZݦ!&\ۻ ۻۼ$`w3$`u$`'$`'&$`w#3vN`u$`'$`'' g#'#g05# 54 Z#ssRT#5 Z #^R^sXX}O&d}&>32##4632#"67654'&}_Lo5BWE41FF14/J0PA&/.ֶ3 B{pNN87N(;eO- B' ' { {3#A !#3#3"jJj1 53#5!!53]^Jjj>&""E}&"}&"lv;2####5[a`j辸//k 3+"&5463:jqr}| ';2+`jrpO|}|k {+y 0.'03"&5462*HO,FdFFdPZ%pMM87N|o'  B'H'fZ'#"/&'&#"5>32326ه~}yĄ|'XTB 9IMWQB:J$`''*&. 2654&" '&5476 ```WVTTV0VTTļrrrrrrr*Y462#"3!53#53p'4&%_cdd4&&4%n;;</ !535!533#3yhiTTR=$!67632#"&'5332654'&#"#TT!+,5XXYYAFFf\bk55c9*+!5\ KKJJOTtnl::%$ ,27654'&#"67632#"'&54632#.#"0//0XY^/C">@8RQSUʶ2678GQEy;<::lm::pjo<j%LKij 8[>k[:[:{R1!!{)1[{dR!!!!{))ZZ[r &7rWLLW=  =7;<Qi 5>54&'5RWMMW7<;7=r)!53#53676323!534'&#"3/]c-.Eh3 Dh吏u#0;37367"76!32!7324&+3 #"'3254#"2i&uc:p,j#sHy/CKCϬ'.SNoDAx>R_^wژznX,sB7#RmNCe$)05353#535#535#5!23#3##!3327!5!654'%!&+fNNNN{vAT??REv9;j6kVkkq@Xkk^CrjVkI^C327673#"&547#53676?67!5!654'&#"#676323#! 2TTUSgvssoM!7}2JKOPf~po^ P~ :lGFRQ3K=j^=7 j+ҾA7jb@*j!*#&'&76753#&'&'6767&hTuZ{oZ;=Yp`D8SN6DZ9bd0nX F0׉ EaO DSn^`5!53!5!!3r"r"^wwjww,jT?(!!!3!&'&+532767!7!&'&+7>*Q=*JN?.-$ä>12YȈA=(,A(hOhSY.-REjۋ((kGDhU1Ihe"353'%5'%#5!#7725#5!!fFD HH&Bjn؉ntkko؈o%k~eS%353#535#53#5!2+!!332654&+f8"Ыj/kkrkkjM^&# !2#.#"3267'&7]5uUwr#žƆ&4H88H qqef@Af(;ϭ;'U'&rU>')rV{#353#5!#!#5!#3!53!33!3VMeyyy yyyydy\X3#7!>323!654'&#"YDxAa9"clmthjVlne=fCUjjgE=!HY!6323!64'&"#'?#7!%ş8$dl gƲ(D*Kje=Wjjg!HjTNfjNQK353#5!#5!##335Q+֬ɫ|Lyyyy7By\RoizDt /#"&63264&"!!463"##52765#5!t]]]])GGiFFCvlv OiihhhP">QrkfV=)353#5!2+332654&+367654'&VeuvemZ\`@\\?yyy㭑vx:SR9M 2F$! ;#"&2#">54.&7RS/m.Dnn+JK4" *9V(oo5W9*  *9Vhjdt/92)BKLB̾>cxc#@`UcTR~RSdU_A#$A_UbSQV#'1B3!.+3!53#5!2%326&+#!&'&/67654&'&Pn)ĊF>WM7Lv~~vm"!4!")S,6(+4 \W`yÌMyyy!h?#J*^p)7Q%+7fCa#+(3#3!53#3#53#5)#5#3!53##NNN'KNN=NN:BBBB7VBBBhBBBhD 35!#!!53 3D"}{{Ǝ0hA\p"p.!#! 764'5!#5! '&'&'&5476 jTR{{{{jԼ44cYrrYd45on1-F骩6FӉW֗g[`0/\gհe}.FmM#3!3!!#3!#5o|4nnjkLj?'353#5!#3!53!33!#3?ȉvtexeey5yyyy5y5-Tn'$4'&7#5!76'&'53%7654&3276&/7#:0Sa.1pi( 8tC^G y6)%.2  N≯Gwgnk!4fMJ,:]B`%b*VEZ;h1.pV %3!53#5!#5!3#_${yyyy-Vz#3!53!3!53#5#!#zNM yyy-yyy/w#7!5! !#5! !53ƾ [mZooL2~Pk)!!>3 !"&'532#"G)#i;cńde}`oSUggHF_`2/.2%L!#!5!KqD+K!5!J++j!# #3jܶf9 '%3265!#73#7! !%#$65}9} ܬjq?<܁_AB?Jy,G|dyyYgy[M"&44#"26?6$ #7!3!7 '&5473&477 co( t!H3Y:mnZ<d#7eR@n&W华"Xico*xeydKX"?Ԗ8pCsL?v=FD ,364'&"3273#"'&547 &4?6735425"&PrMGkK.DdE!31 {XUS\wԹfFS(kO\:qhjG;m  462"&3!73#7!&>4&"3# FGl+6, dd-ha7g`yy5y(%#(<(j59 #+462"&#7!!"'72672654#>7#+GG!:fl(e!}E}+ 623CIe-gb7f`y\'?:^{(<(.A1UK+qW 7 >54&#"%!>32#"&'332654&'3!53>7'# NOϛ\i|^|.+αH WYKNfGXVe=yB""kpqZ=yq Pikk`,'33!##33#5!#3,`__ӗ!Abrjjj'&{d'&{d '&{'{dd'ud'{Q'ud't'd'{Q'd'tZ'd'u/'d''d'{='d''d'{Z'd'u='d'G'd'i'{es,e %3!53#5!+!!ԫ竫Vjjjkke %3!53#5!+!!!!ګ&VVjjjkkeM #5!###3!53#5!@ #pjzkkjjjkkO9%3!53###5!# #5!#- #jjjjkkzkk%3!53###5!# #5!+!!:竫 #!Vjjjjkkzkk %3!53###5!# #5!#)!!! Gګ #.<V Vjjjjkkzkke 3!53#5!# #5!# 3!533 4̫ (Rwjjkkkk?jjs ; %3!53 3!53 #5!# #5!## nDw (rjjjjjskkkk? #%3!53 3!53 #5!# #5!+!)# aDw (Vjjjjjskkkk?e/g&e\'[0B$LBq'LNLB'L'LNLBZ'YNL 'Y5'LY'L'L_Y 'L'L_'LYBG'[NL'[3'L['L'L][5O[DF[fGBDPeE ) ) # !33 !f|[![{:vAtjLlHe\ &#5! )5; !#67654'&\{꫶llZ3DD4jkvtjLlHasXutWeE)56'3 !#5#35&'&76! ) Чllѫm~~m|[![{22 DLlHa2lk2aD vAtg332#"#>3 #"$h+Ö׵!fn(jbeXSHISXA@Upad[D33276'&#"#67632#"&\kDDDEv?@a[ZZ[ў?}|ttts@@0gV %'"&'&5!2#.#"32673#]ՃXdbi(nf!ɵז+\ldap\@A.'ud'D8 !#53y x  } !53%t s _ i8 !3#!i w yQc cQ} %#5M/ / _ D83#!#53 w ( x Qc cQ }-#553%M/ /t s _ F _ Q %'7g\rKfP 7%7%4\fwqj 7%'%h3\Qjrqwfj '7gR\srfKD?!'!#53!둃s/ x tE XEi?5!!3#!'isѭ w 됅uEXEQc cQEfF'7327>2'&""'&'\UOnpO88sgsOO8MM7Kf^XX>JJ>sXX>J%&=FF"&'&"'7>232?%7%XXs>JJ>XX^fD8!###5333Z S x S2 Q Q}!#5553%%M/t s/ T\ _ \ i85!333###i 2R w R EQQc cQQ}3%%#555// // \ _ \T D8 !#53 2ff x Qs sQ c8 '57!3#gg2 w Es* *sQc cQD8 3#!#53 x 88 } )5!53%!f<t sf _ i8 3!3#!i w  Qc cQ} !5!!%#5/ /( _ })5!553%%!f<%/t s/$a  _ E Dc2644#!#53)99)ffm x @Z@ ic!3#!"&463"] w mee(::Qc cQ➢@Z@Dc#!#53!5462+7264&"Ia x ˎfbb)99Q:@ mq➢@Z@@-mic#"&462!3#!354&"beˎ w ab9Q::@➞qmQc cQm-@@Z@D8/ 3276;3##"#"&"#"'&+#5332327j4&GLA w 0!MQ|*M)}QM"0 x BLF-~Qc cQ** ~-D?3#!'!#53! w Bs x tQc cQE XE< -'7%HQ  [Ɣj=  =fF !#!#53ƒ̮ x ^ \ 3#!# w ͒Qc cQF #53!3 x 4( ^\ !3!3#;3 w (Qc c= %#5!5!/ /t _ %m4 #53!3 x B Q)R#4."%#54>2;cc;/ /RҿRTnAAnT _ uԚ[[~)R4>2%#54."RӿR/ /:cc:uԚ[[u _ TnAAnTQ %'7'5!g\ rKfɢi'^o!2>4&''7".4672::cc::2[ERRӾRRE7nAAn7KfMԚ[[M^!7".467%7%2>4&`fFQQҿRRE\2::dc;;rMԚ[[Mfw7nAAn?E83!!? HQ?5!!#?`  } %#ђ >N3#5B  iE8!5!3I Q Qi #!5!E `Q}#3% //> N53BJ// D'U^SQ'V;TD'S^UD2'SS>'TTki2'U>U'VkV?,'8?,'8D%#53!7!!!!'7!%7! x PN<+=N;|=-- 77^^D!3'3#7!'7##53!!!7!7'X

 E^^i8 !33##!i = QEEQD8!55!!#53ETZT7x7;EE }%3'3!#53#>>#t sdd=_=i8!7'!!53#5SZ7w7EERc c}#7#%!3#53p>>}݉ fd=_=}%5!!!'3'3!#53##Z>>#t sdd^SdS=_=a %3!53#53#'3'3#!5#t sZ>>=_=d22a 3'!3#!5#73!53#53#3'>11>Zt sɐHy7722d=_=Qa3'!5#73!53#53#3#>Zt s>y12d=_=OϺ2})#57#53##3'373!3'3#t sY=< )>>>==_==;H>a%%3!53#57#53##3'3733'3#!5t sY=< >>D==_==;z 22ig #3!53#577'!5#35J7w7Z--șc cdEE& %'7!!=g[krKfds 7%'%!5!h3\QsrqwfQ}d}3#53#53#7#3'3 t s>>>>=_=`=_=<(i8"+!6762!3#!"'&'!%3&'&#"#3276iU-HH-Y w -HH-$4.*$4/)?2PP2?Qc cQ?2PP2? )) ))Q'T;ViJ !'3#7!!'3#7!!'3#7!in 8 nyn 8 nyn 8 nyq , D8!#!#53!3 x 8 8i85!3!3#!#i w E8Qc cQ8D83#!#!#53!3 w ]] x Qc cQ8 8D8!###!#53!333yOs x O88 88i85!333!3#!###iO w tOE88Qc cQ88D83#!###!#53!333 w ΒOͮ x 3OQc cQ88 88D8 #53!/7x7Q i8 7%3#!5p7w7S,QQc cQD83#!#53%77w77x7}UQc cQ ,Q !3!3;Ĩ1+]a-)>54&#"#"&54632#"&54324&#"32 AA2! +[ƒ[u NGbMHbmWKt,>bFأ[t}t{oX !5!!5!!5XVV+oX!'7#53#5!!5!73 !X:/>eyx8/(yyZ+*â*â g-% 3A+-! !#y1+%!!"$$3!!"!!t tu:( 7 (:Ƞ(\(oLTTLo"*%!!"''&'&$;3#!!'!#"tYRbf{IN UYGЃSx}:e (0!u:( 87T\(8נo[6TLZoLT!5!2#!5!26767!5!&'.Ot tu;' 8 ';dجoLTTLo"*!5!2+'7#53!5!&!&'& 326767OtZRbf{IMSZFф};e '/u;' d+8Uج8נ~\TLZdooLT/w!#3!53!3!53#0Z}謬JJJJJJJ/w!53#5!#!#5!#3wJJJJJJJw !#'.#!!>?3!5 cFB 7=9! AF<"%!%)/1F!!~ӢF !!#!5!!!L~yyTFF 4632#"&!!#!5!E32FF23E8MN78MLyyBm"S %#'-73%"`E { E`E9 { 98v}vw}g&"265$62"&GMnLLpK|GJڒWU|ST3"3,xM[skPHvBH@UzyUD=W%vE,x<XXieu~९{YY; /32654&#".#"326#"&54632>32#"&8,xL[sjPIv,xM[skPHv@UzyUD=WxyU/YYie9XXie~९{⦮u I%!3! z~$ I%!3! g~$8V#Ue8 37#'pihђih usous8###ee83737##'b[hÑ[h^?ces@esX33# EETJX3 3#JTF#4$ #4."R 9 uu~(خ~ނF3 $532>uui~ج(~ނ*%26732#"&'.#" #"&54632_  HZ92&2 ` G[>6+ l9TA6?&#Hn!bSA8?S*'a*W''a1Fy 4632#"&!!F22FF23E7~8MN78MLFy 4632#"&4632#"!!VE22FF23DE22FF23)8MN78MLpNN87NHFy "-14632#"&4632#"4632#"&4632#"!!F21GG13EF21GG13NE22FF23DE22FF23)~8MN78MLpNN87Ni8MN78MLpNN87NHFy' 'J' '-F'#"/&#"563232ER[S['? E? EF'32?632&#"#"'Ý[R[S'E ?E ?F!!#"/&'&#"5>32326~YTR USP[TV XRZT? 9ILZRB 9IfF!!#"/&#"5>32326~XUV USP[TV XRYSB 9ILZRA 9IF8#"'&'&'&#"5>32326#"/&'&#"5>32326EYTR USP[TV XSOXUV USP[TV XSdZT?9ILZRB 9IѓYSB9ILZRA 9IfFD 4632#"&!!!!E32FF23E7~~8MN78MLFD %4632#"&4632#"&!!!!E32FF23EE32FF23E7~~F8MN78ML8MN78MLFD %4632#"&4632#"&!!!!UE32FF23EnF31GG13F~~F8MN78ML8MN78MLFD 4632#"&4632#"&!!!!UE32FF23EnF31GG13F~~8MN78ML8MN78ML1 4632#"&4632#"&!!!!F31GG13FF31GG13Fh~~N8MN78ML8MN78ML!1 4632#"&4632#"&!!!!E32FF23EE32FF23E~~N8MN78ML8MN78ML!'F!!!!!'7!5!7!qt;Gp?f٠f٠FF !!!!!!~~~ҠF 5 !!EK~~~poF %!555E~~fF%!!"$$3!!"@ @uuuȠ(\(ނF!5!2#!5!2>.@ @uuudجނF$%!!"''&'&$;3!'#"@-+[W YG.{uu;+oq? F#!'7#53!5!32>&'&NLPJYG<2duuud>80Vج8נĠEA)jF7!!!!"$$3!!"~B@ @uuu ̠(\(ނjF7!!!5!2#!5!2>.~@@ @uuu جނF !#533 $532>7IT  T6uuӢ9 9j~ج(~ނF 4632#"&%3 $532>E32FF23E*uu8MN78ML ~ج(~ނF !5!3!!3 $532>juu++բc~ج(~ނU3!!!<U!5!!5ToĠjU 7!!!!!~ ,<jU 7!!!5!!5~o 0ĠF!#!#rF)3!3F|drF #+$  $!!&'&'&!67676!› 9 cLEd:(d ';dDMDd;' (:dE\(ج'-AoL7uTLoA-u-AoLTLoA-F $  $!2676%!&'."› 9 S (:;'W ';:(\(جTLooLTLooLF &/$  $7&'&"676'& 276› 9 ; |ddM :: sdd\(جXo AA oos AA F !$  $&'&"2>'&› 9 ; \ddu: \(جXo AJa AoF #4632#"&$2>."$  $E32FF23Euuu 9 8MN78MLނނ\(جF)&"265$62".2>."$  $NnKKpL|GKْuuu 9 WU|ST."$  $kD z EE z +uuu 9 vKvwKyނނ\(جF!!!!2>."$  $ffuuu 9 llނނ\(جF!!&2>."$  $fuuu 9 Ӣނނ\(جF 3!%!)!!!!vhhhq1qqF 3!!%!!``1qF 3!%!  ! tPImIn#n F3!4632#"&!FE32FF23E(8MN78MLY@n3!!#Ògfn#!5!n+!!#!? 35!3!WV R3!!#ÒgfR 3!!!!#Ò/.n 3!!!!#Òn #!3!!#U;"+gfn#!#!3!!#U͒;]++gf 3!!!!##璩+n3!!!'!#Òz_gDzDBfn3!!!!!'!#7!Ò1uGOυԒOADn)Dn#!33!!#'7#U;z=XX>>XX>=X>XX|XX|XX>v(D(غPEaabbDEbbDbaaE DbbEDbF^!3!E~?cl4732#"'&'.#"0 HZ92']$TA6?&H%7 #"&5463232506 HZ92']$DTA6?&Hk-k !!!!%!!Xdo̔4+l  #/;GS_kw+7CO[gs!2#!"543!254#!"+"=4;2+"=4;2%+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2%+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;22+"=4#"=43+"=4;2+"=4;2"=43!2#3DŽCAAC!B""B!!D D!)!C!!C!r!C!!C!!C!!C!!C!!C!!C!!C!!C!!C!"B!!B""B!!B"f!""! !C!!C!!C!!C!"B!!B""B!!B""B!!B""B""B"!B""B!!B""B! !C!!C!!C!!C!!C!!C!!C!!C!!C!!C!!B""B!!B""B!"B""B"!!C!!C!!C!!C!!C!!C!!C!!C!!C!!C!!C!!C!"B""B""B""B""B""B"!~!!~!!!!& !!!C!!C!!D D!H""!!JJJI%%I&%J%%J%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%%% %I%HJ%%J%%J%%J%%J%%J%. 7!!!#!#Y #53NQr0N3#s #5NrWeE&2 53LsQꐖyiK#0s  3#Ls[m#!!N]S qN3#s!!NN um!5!LR]Kz3#Lzz3!5!Lz_m #476;#"cm[=3uߑfW#'&/532763R4&[dC77Ed[$ =C _AEc H<_ ;#"'&53=[ocVfd_#3 m 4'&+532`4=[md}Wf_&'&3;#766$ZcE77CcZ&!<McEA_I= 3+532765`do[=4ᏞfV73 w;!#'%3QqvQ--Pb'! !!&$<.73!3!Y`jh5!zjhl!zXs3 ! 6j  5!!5!!5!j6 l !!!!!XXXms 333␐mjjjm !!!   mjjj6j  533533533536lllj6 l 33333336lllXXXXns 3333␐p^^^^n !!!!    p^^^^h!! hl!! lh!!Rhl!!Rls!5! jsl!! X!5!Tjl!!TXjh3!jh3!mjh!! jh!! mjs5!3jks!3Xj5!! jk!! Xh3!! h3!! h #!!!H  jh 33!!HRkh!!! R h #!!!H  mh 33!!HRlh!!! R s!5!3 jks!!3 X !5!!#  Hjk !5!33THjk!5!!T jk !!!#  HX !!33THX!!!T Xh!5!! z jhl !!!!  XVhl !5!5!!  jVhl!!! z Xh!5!!TzRjhl !!!!TRXVhl !5!5!!TRjVhl!!!TzRXjh5!3!jkh !3!! XVh 5!3!!5zjkVh!3!Xjh5!!! jkh !!!! RXVh 5!!!!5 2jkVh!!! Xh #!5!3!r jjkh !!3!!  Xh !5!3!!  jkh !!3!!  Xh !5!!!!   jkh !5!3!!TRjkh !5!!!!T Rjkh !!!!!#  RHXVh #5!5!!!!HT  Vkh !!33!!THRXVh !5!533!!THRjVh !!!!!   Xh !!3!!TRXh !!!!!T RXh !5!!!!T Rjkh !!!!!T RX6j 5!35!6mj6 l!!!aXXs33␐lUTT!!  lUTTh5!5!zzR333R  h !!!!  ¬BRh !!##RjRh !!3!!Rz¬jBs !5!5!5!  > 5!###jjj !5!!!5!r|P>h 3!!! ARjh 333!RfjkRh 3!3!rfkAs 5!5!5!3 =j 5!333djkk 5!35!3d =h 3!!!!  ABRh 333!!Rf  Rh 3!33!!rfꐐkA jBs !5!5!5!3   !5!333Rdjk  5!3!5!33d h !5!!5! z |zBh 5!!###zjjjh 5!!5!3!!zjBh 5!5!3!zXAjh 5!333!dfjkkh 5!5!333!zdfXkAh!5!5!5!3!!!!    ABh5!333!!###dfjkkjjh !!!!5!5!333!rP dfjBkAh 43!!"♙TPRp~|s 4&#!5!2RPRp~|js 5!2653#RPRj~|qjh !"&533!hRPTjq|~m3PV Ym#3 Ym # # 3 3$&+ՠܠSj+5!<js3?*jh5!*>js3@+l<X! ?*hl!*>X! @hl5!5!!5N,jVV333HH?@hl!!!N,XVV#!#H H?@ ?!?j!j!k!@!!B!B! ! 0!B {! ! ! Y!k 3  m #'+/37;?53!5353!5353!5353!5353!5353!5353!5353!53IJwww67576(l #'+/37;?CGKOSW[_cgkosw{#5353353353!3#%3#%3#%3#3#5#53#53#1#53#1#53#75353535313#3#3#3#75353535313#3#3#3#75353535313#3#3#3#زccbز~! m 59=A35#%35#35#%35#%35#35#35#35#35#35!35!#5#!5#35735#35#IJc;bc;b;ZXYI6ZB B !@  !!!R @'  !!))@@ !!!(* '  !!'%! '%!!!Ng>9%-d) 327$%&#"%632#"'++Օl``````qq|qqf' '/7?G%&'&'6767&'&'7%'676727"'64'7&"'62&479'5)3,?4C0x2)/-Z5>3@'5)2+@3C03)5'Z,G4?DD#VVcDD#VV c<1& j(0=Ju &,A=N:0('<1& j(0=Ju &1<>EB0(n_II'[[JnII'[[d) %/36%632#"'327&#"6767&'&6e`` :;;:{m('((((';99̙Rqq|qq%%mܱ[0$ %@%|"d) )73276'&#"7632#"'327$%&#"%632#"'Vg4343gg3434՞OOOOOOOOH++Օl``B!!BB!!oe33eje33````qq|qqd $  $eGyFAk^d $  $27$%&#eGyF+ՕAk^a``d $  $"3eGyF+Ak^``d $  $%&#"eGyFYԕAk^>``d $  $327$eGyFS++Ak^>``d $  $"327$!eGyF++Ak^```d $  $"!eGyFVAk^`d$)6%63"'e`Rqqg)#2f|q*q ( 2654&#"!Κ⚚ord}}|v<U( $%632#"'327$%&#"!(++Օl``````|qqqqH(U( !#%&#")%632T++qq>~``U 3327$3!#"'$``Ֆ>qq``) %63"`qv`) 2#%&#`iՕ)q>` 527$3+iv`>q "'$33įj+q`d)%632#%&#"e``jՕqq>``d03327$3#"'$ei++j``>qq% % %! %!$+! 2654&#"4632"&J|{{Y[|6qpddcc||}'%!%!!@Z r<'%!%!!X r<'%!%! r<'%!%!N r<'% !%!!!!t&t% r<<% 4632"&! ?N97MMqM`KAj>VV>>VVJ %! &A %! %A d(  7& 6  'hi./*X֖'% !!!!!!tg%ۊ<)) Ie'% !!!!%!!&Ng%M)*<?v^  <BHNTZ`fl3264'&#"&7367'67675673#''5&'&'7&'677&'67'%7&'&'%6767%&',*<&`7" bK*V&"g{ M M !)1! ! 3254#"&#%#7&'67&'67wv:<F>4,<[-ch`ch_7IL6a] ]pu otpu ot !)1! ! 3254#"3$3&'67&'67wv:<F>:]ch`ch_7IL6a] Uypu otpu ot %! ! #$''&'6%&'6wvcGkvJVVr~w{t~w}7IL0c Z    "*2:AIX3#''%#&'52#"'&5476!!'5%!!'53'5%3'5%3#'32765'&#"FF47H8(S A+[!?27@yf756FF u>p,y9#_>?@7`d@\hPPPPy?+<>w_VG{?,rCA01@7#'#53'&'&54767&'&=33676=3#32654'&$ xwatbww!$$!wRMi"iLRx "iMRurRLV$|ddb e|$% ZSSZ %_TYYT $4&#"326&54327##53&ёϔ1./|䤣L~~|  $"32654&'#533'#"5476ϔ|Ҙ{פ㤤ף |~~L #&$76+"'&5'476%7!iiggi$jg ՕeE~Z5s qttrtt<֤ꧦg\ul91B52654&#"#43233#!5nom覨b͈wyyy{(|#53533#632#4654&#"#``d~~dc}mZyH{zF 4"32654&7#"&54767!!53#5!!3!!#3!!92GG22GF7+Db`E*8쌌O79NN97Os0LllllL1KӘJJ-<%#5#535&'&'5'73'3#'73'676=35'73'33n^F][E_nzTThOʍ7NjYYӖy! #!!!'!27674'&#pZ51;J&u@!IM_\ǃ$P<"Q##"'##56'##"/547? dsU 2`g26;2"##'65##"'&5476;2&'5476&+"326733276=4/#"567654'&#"35&5?^g7%SB\JLZޭ\<."7Y@ؘ aj7{6Gf!KQM 1k`t0%K6F98:d  mOE:R p&i  C]&'Ax.+0 nM,W`cr3#"/4?23*A+ ZP-@3#'654'&'#"54732Nn7S3ڿWP'6?F` 1TFG*֙-@R/"#"=4?2%#"=4?2n0#NI<Ù'PH*~: ۉ8z"C"'4723!#"5472!5bGZOO;Z$}@Ϝ 3363'$6'")2y k?WXc1  3%#'#3%#%,$//c}(,377#'#'547#5773%%F*kknm*&ttrt&<<7CA<<{8AMti8 !53#5i7w7c cc&*'$&76'&'6767^1tM>;m-ȗ  I9 SRh} 4̡&.M c&567$&54&"c9J  ȿ.l<>Lt1^G Mڡ4 }hS #u ! !=?Fvu-1<3#pp+#3*p~53'#'#'##~ |>>|G _ Ax/'/@~#5337373 ~|>>| _ A@/'/xZl%2>4."%#54>2"&'2c;;cd:/ /RҿQQҿF7AAnnAAnT _ uԚ[[Ԛ[[Mul%".4>2%#54."26gEӾRRӿR0 /:cc::crM[[Ԛ[[u _ TnAAnnAAi,%-5=53676$ 33## $'&'336767675&'&'&'#i;N 9 M< ˭ w 2/ w T8ONsht77PQc cQI>XXs>JJ>W%!5!26553%Rts tɢ] ` P2%#54&#!50 .tRޠP ` ]% #!#53!2653Ȑ{ w Ss_ [3 33!3#!"&4rT v |_V[Pd bR9%>4.'7'7C`55`CfRs??sRRLԴLrZZfK%%'%.67[QRr??rRgD_55_wfZ ZrLԴf'7>2."3Q\QRgEʿfK[FF[rKj;;j]?%7%".'72>\QQfEʿ(fw[FF[rKj;;jZ%!5!%."'>2%'?*EɿDgQQ\Kj;;jKr[FF[wf !533##5#5%'7>2."Q\QRgEʿJfK[FF[rKj;;j =7"&''72>4&gERRӿE\1c::nrMԚ[[MKf7AAn&=267%7%".467$1;;c2\EҿRRFn7nAA7fwM[[Ml 9)2>4.##".4>76732;cb;;bL Ec=RӿRR` Q jnAAnnA:!nxԚ[[Ԛ-r[l 9)2>4.'&'#"".4>33;cb;;bF Kc=RӿRRi Q _nAAnn!QAnxԚ[[Ԛ[Q-D !#53 !3#! x  w y Qc cQD !3#!!#53 w y x Qc cQ^ D !3#!!#53 w y x EQc cQ i8 533##5#5!3#!ZZ w yJQc cQD8 533##5#5!#533y x J i8!5!'77!3#!''|gg w VggErrQc cQrrD8'/3##"'&'!#53!6762!3&'&"#276 w -HH- x -HH-$h$$h$Qc cQ?2PP2? ?2PP2? )) ))}#264&"7"&47675553%%IhIIh}9-H͐H-8/t s/8tQQtQ|2P䠠P2 T\ _ \ ?8 3!#!? rE Q Q?8 !#5!3 Ds Q  Q} %#5 J/  } 3%#5B /J   ?E8 3!3!? [ vQQ } #3%% //( F ? #!#5!E DQ N 3#55B J/  i 8 #33!>  E^i 8 !5!33# \ =EQE} !5!!%#;ђ( } %3%!!5/%<( i !!##3 ’^i 3##!5 8EQf #5!5!M;(} af %!!5!53M<%/a }? 8 3!3#!? 2Q88i 8 !#3!32 Q Q} %!!5!< ࢢW} #!5!!% //W ? 5!3#!#?ΒJ  88i #!#3!E IQf 3!!5!5B < f 5!5!!BJ//  ?,'81'Li,'81'L?} 3!!!5!'3? HI^H| ?, #!5!5!!#E `v`]HQ ?} !5!3!!5I ]H- QԵ K?, 5!!#7!5!?` Y^` , ? !5'3!!* HA?N !55!!#*`  i !5%!5!3`I A QiN #!5!!5E `*5QL1'L1'Li!264&#!5!2#!iB)99)Bff)@Z@iq!!!!!3#!] w yqQc cQi#"/&#"563232!3#!ni5` c;gdnh5` d:g& w y? E? EQc cQD8#"/&#"563232!#53Bmj5_c:hdni5_c:hy x ᓮ? E? E i8#"/&#"563232!3#!ni5` c;gdnh5` d:g& w yᓮ? E? EQc cQio8'1%#"/&#"563232#"/&#"563232!3#!ni5` c;gdnh5` d:geni5` c;gdnh5` d:g& w y? E? E? E? EQc cQDd6 5!#53EZ~Zy x Ѧ! Dr!!#53!)y x  $ת Ӫid655 !3#!~ w y//yFQc cQid !3#!!!"&63!!"i w y00FccWQc cQ"͢nnD%%!!"$'&'!#53!676$3!!"!!m@M< x  >u-* ''a&$*-27#537632#"&'.#"3##"&54632_ JUHZ92&2 ` UUG[>6+ TA6?&#Hc!SA8?S*4#"&5463232#53767#537632#"&'.#"3#3.EUG[>6+ Z6UHZ92&2 X`SA8?SfEZQTA6?&#HMD Fy' '-Fy' 'J' '-% '7%',,gb('bU1L1wl++l%77%7 '74g,,gb'(bU11l+K+lj^ 7%'7,,,gb'(bg1L1ql++lj^ '%' '74g,,,Qgb('b11wl+K+lD8!53#5!#537'!55#7w77x7})c c EEEED8 !#53T7x7 } )#53##t s=_=} !3#53݉ =_=  '7%'b('b9wl++l '74gb'(b9l+K+lj^ 7%'7b'(bg^l++lj^ '74Qgb('b^l+K+lD8!53#5!#53#7w77x7c c }3#53#53 t s=_=`=_=i %#5!5!/ /f, _ Vi1 !5!53s t)V _ D !!%#5t+g/  _ D1 53%!!tt t) _ '%!%!!N r'%!!!N '%!!Ngj~jBp!353#5!>323#'&+534&#"3LD-a^ZVnsxj@jVln{jÏje}353#5!##5!# 3#4+3f C_!Z^jkk5kk3U>j5j)53#5!#5!# 3#'&#!5330El^Z႕j@j kk{jR35!#!!#4#SEIo&f` ZHZHD>I'35!#!!#'&#JW&_i^ZVf#V{gQ325!#3!5#"'&462>=4.#"e<U;[U~aS&&S`R~P2(*61<-ttkk/IH'[_^[ՅԨ[CtwffD2[V!353#5! !##"&'533265#3fp@BgOOkU33jk'k""ca~jF!###5!#!#5rv!!q5q:jkjjHjgQ3"&'!53#5!>32"32>54.S<b;\TᏎ~aS''S`R~P2(*61<-ttkk/IH'[ՅԨ[CtwffD2=!##5!#67632#.#"Azm .67d*Y-T36232#.#"̔276A@ Fd9V@L-Bjkk9@^4!!_[++=!# ##5!#3>32#.#"kt7YDT]U2801kk->}OY/@?BWe!3!53#5!#!53#G oo~jjkk?'53#5!3!53#5!#0ooJ0ЕfjjSjjQ,%3%&'&'&54767347632$767654'&#"J3M:(;6eX323!5#"'&C_GC{@BNRJLU8uA1LLn)-, ON^_ށ{Z`!!io65[D 6763265&"26$  8+Rx{P&j_^]]+^3C9:/]_*67>|}S32i'!#3!3!##33!#tS`__I`'jj!rbA)MtdX#53###5!_SbU5~<<<<Vh@732654&/.54632#.#"#"'32673#".'gf^~fpEG)+,A(Aca2P@nQG=8B"HTlt7;A©-+ž{kz<7= U8B'gK2C-J[bVFRV)35!#!3232673#"./.#SEIo& "C-=k6)9Ctau3]R?&b;uDHZH7 v 0jHu99)kAGl%%73#7##3?%73#KkD.j 2  NB1?<=4/Y l2;t;:ll;&" 73!65.7##5373%#5?30i9  lkz nhw \33Η3:g9J96AI9J<#% &73!76&77###5373%7$7I ' ,(" *bkYSb kz l;FdF9\6J9K9A %67%67$ %#3%53#r,Șy&@0_*UOA7P33EՒ.&5P1J!?=w163w)e;2&=3###537%73>kYg jy  ;UK=T3J9J9Kɱl>%!3###5373%73%?###&5hgw ky   iz iЄI=T3J9J9J8pT3I}l%#7#7#3753%?3#h.i  fvK=s@3H}_|J8oTl%#7#'5?%73%733#׋hhll{   ix K>Ks@3J9H:J8pT3~!3###5373%733#i)fv Qjx  ix KT4J9J9oT3l=;%&=7#7#5353%73ىj j ww ʬK=@@3QG@AJ9o`w#%##7#3###573%73%?3gx k hgu kz   hK=T3s@3K=T3J:H:J8o\ "?6767%#3%537GZ$jT$yB,ZK~<< %' yh%64"@=[6QQ3q>3J7o<J7o<J8oTl9!7##5373%#53?3#mjx hv iy s@3J8o>J7oT3g;"&5#'#5373%73%#5353 r eix QG*zxx;w@3\CJ9RF<5HG:l%!3##7##5373%#5353%733#jhx mkz vviy K=T3s@3J8p<TnIGJ8pT3l9!7##5353 %#53733#m yyjv iys@3=IHGp;I:oT3l>6%67;# 5'5373%6GUŝ l'6%67?#&/67%'3%$&Ŧ "ER0fW GM's KY%"([T'!H@D}:5.\];=bJ8<gH8l;X<l8!###5373%?3#jhwjx  hx H>T3J9L5oT3l>;&5##537%#5373`ij{ iw >K@3J9p<J9fTl<9%!532##5373%#5373!#&l kx iv \|@3J9o<I:=A!##5353%?3#iI#Fyy hx KevRxH@J8oT3>!#!#5373%?3#i;"Uhw gxKJ8J8oT` ?67?"67%#5353FT1{L.oQPj-;M'wwpzN$ >n R Q$B3!BH@>#!#'##5373%73%733# jhy i|O6Nix   gv K>T3KybJ9J9J9oT3l=|%! '33 7&! 7'5373%73##3 Eu&(vhw  ofwlj` "пH:J8T4DK>s!7%3##5373%#53733#k&tm:iw gu fx s@3J9o<J9oT3l<7'#5'7#5373%73zK0۠ ۢ ,jz '`[+>8+*MJ:ĜS6u##5?3%73%#53?3##7#3##"ix  ¯iw gt hkhx H8H8q;H9oT3s@3KKXZJ8T3??676#3$+):6YWcG? -+8y )vaSl><&?##5373%#5353I-o iw vv+>s@3J8p<TvI?l>#!7#&5##5373?37#53?3#t̅d jx¯ )֐o| hx ["ڤ}w!3J8qJ8oT3!+7$ 3##67%37'3#?67UBR5E i0/{$NS-eZ&pqCQ\T?-.k8'}De@%xp,}p}&#"&54675367673#"&54632_Ln5AWE32FF230K/QB%/.ֶ35 B{_pNN87Ne|'325#"3267a֕0ڕkwdtUVMХ{y{hhjsJFQ?jjTikTIydb))vzog  [D X3#3zX0XX3#3z$dXX3#3zXX3#3zXX73#3#zzXX3##34zzX0XX3##34zz$dXX3##34zzXX3##34zzXX%3+34zzXX!#!!;z nXX!#3!!;zznẌX!#3!!;zznXX!#3!!;zznXdX%!!3;zXgA 573'&ll/gA 7#'5/ll5 4632#"&3#5, ,, ,'F ++ ++)45 4632#"&53, ,, ,&F'++ ++̍45T deV$353#5!#!#5!##"&'533265!3f  ?AfOOkUGjkkkk""ca~jB9&353#5!>32#"&'5332654&#"3LD-aAv8VMIRNVnsxj@jVln!!`Z{Ïj6,!53!#!#5!!#"&'332654&+5!3`uonuGjce U)j`V89DǬfj56:q6#5!32673327654'&#533!#"'&'&'&59U)`/?A;}@*F PPRRuG[[~idec8;f]LU_C,dcfekJVyx}|9<BFO-4632#4&#"6533"'32673# &547&ziceo@e[r eciɞB23ސ+T)f/32ħr[)"&5467.54632#.#";#"32673ɗ|ȮTie Yzf]w-Vwk#œ#!}.,~r|fƟ|}8 !533267!533##"&dT9fOOkS+?camDk"89'!#"&'53326=!533% Au8ULJRN+Th!!`Z{hmDkk8C[)2'67&'&5476 !533267!53!!#"&>$BG ,"0T9fOOkS+?? 7#,uLT"&9F'camDk"88'(+2'67&'&'476'#"&'53326=!53!%0t59#(Au8ULJRN+--T,#a=C.6!h!!`Z{hmDkk5'#5!353#5#3!53#5`I``.'ߦrijjSjgTD-332654&/.5463253#.#"#"&'h_}ouUx{oLy(__zjhkRxxϷ](Pwv]YFV1-,f .gtRRCR)-.o /!#533 33!53!3!53!3!! vߗhhq1?qppjkjjHjjHj:[D)6AL46;54&#"#5>32>323!5#"&'#"&6;54&#"5#"326%5#"326\wdtUVMA WMГ7`xAp'axcu{yzig{y{hh?Iydb))D))jsJFxFQ13Iydb3 #"&'&'!3!2#" vߗ)uX$hcdZ≉W]=pyjk>bcVobcdagjkQJKQ[{D#,7"&'#"&546;54&#"#5>32>32'26& #"3265nFKpwdtUVM1Ciԅ{y{hh[X[XIydb))WZXYc8vzor#3!53#5!# 6#5!# '&'%!#SvƫyY?ZjjkkkkjkM[vD :#"326546;54&#"#5>323265#5!3!5#"&'#"&{y{hh~wdtUVM)+msy6.`W 8p/vzorIydb))GHkCjjos8L#533 #5!##!3! vߗ!pjkzkkj[D -5#"3265#"&546;54&#"#5>32#5!#{y{hh7awdtUVMDgkNvzosJFIydb))RkkD!3!533!#5!#!!## \vߗ%YiMjjkkkk[[D'*5!5#"&546;54&#"#5>323#5!#3###"32657awdtUVMigogkk\{y{hhsJFIydb))nm"kkk/;vzorV "#533 #5!##"&'533267!3! vߗ}w%BfT2KV5pjkDQkk/""dj[9D ?5#"326#5!##"&'53326?&'#"&546;54&#"#5>32{y{hh< 0gkI.ld+Y-U460="@`88pwdtUVMNvzog3 3#'276!!'&#"[We0+(0eX$*2e[qghpx drpddapzzrqbcտzzodak%ܜ(D%"'&'#53676 3#'2767!!&'& ~r p~~p q|ՅE;3 67>3 #"&'&''2#"!2#"XdbbdY$.!'7Y$h12d[oqX7))7[oq(dapjpbc5>F=bcVod01da>HH>d01kQJKQQJKQ[D!*"32676 #"'&''26& !26& *~ ~ ~ӆ`32͙c88eV 3!53#5!#ϫa1'$jjkD5V' 3!53#5!#4P{E'vgkkkp75cV#& !!##5!>2e(طUC°yjkrsBVrD#.#"!!##5!>32q_FC{LD0n(Z)ONjVhiok,c #3!53!#bojkku5' 3!#5!#z~jjjcV#5!>323"&5&#"UCҌMRVkrt{yw$BV|D#5!>323"&54&#"D-aNRWmsxVfklnyc ÑcV#& ##5!>2eUC°yqkrsBVrD#.#"##5!>32q_FC{D0n(Z)ONhiok:&5!!32673#"&'&5767: U:nז+<փXdb "^ww*Xdap[%.'5!!32673#"57/+Ek#ȟkk2t4|}3 3#5=oD#D+3Z353#5!#5!#3#4+3ZY%ص` Z>jkf/kkT!jBrD!353#5!>323#'&+534&#"3LD-a^ZWmsxjRkln{jÑjS#"#6763!#!#5!#3!53!3!53=@t\gYa GjY[XL$kkkjj~jj?'!5!53#535#5!#!5#5!#3#3!53!3JllllJkkKllllkJko;Dn<32.#" UUV?\ZDWTmJu)'vJKu'*qFwRMHS Ãux{GFbb76678668chjjhB'353#5!!#5!#!!#3C;ŐDiTjQEjjjiM)53!#3!!#!#34nnoLjLkAs#"3!53!"&5463!#3O{rj#k[#3! !53#5!#3#5x)(ͫjk'kjj~jesm %3!53#5!#ǫ jjjkk 3!533 3 #5!## #}_828̓kkj99\kkBaT7#".546732>54.'.=3TGwtEVZsf&RYRlA,G[.+R?%#"9J()XTJ8 &w֢_EЊZ@BWf8ORQC=z|EZ1?' FIM')[frl^D4.#"32>7#".54>7>54.'.53n7#".54>7>54&'".54>321Uq@PY/2\OGqO)+Lgu?KoQ->p^VpD[S-K7$)YaL_79tm_F*ol43lsli3)cbfE##DcZ_-*OJF"UQ + 8V2.#.#"'>7.54>32>32#".7467.#"5x3U?A]::[V5 PqH/`WO w9DQ1ZsQ60IhT5M>4#OTY*axEFz^ByjW>"2$,3>(BV1&]t30mi^E$.@=~yl21k%$C4 %;*-#$lJN^6'7""7&UޟW3XvDN D|~ժ~'  *;RlGa?@#".54>732654.#".54>32>FnkM2@D@!}{-J^1,XH,-6G*`Q6ArZd~Gso6F~fDmT=)f7K\4t=P07O1#8-$  DcLl`+5gdaTV#".54>732>54.+532>54&#"7.54>32TMf:|sfM-.Ne8+!-Lg9<\@"1Pe4!)$RF.qu3fQ3'1-.TA'DvY4meYC&3Qe0Ax\6vG2J_uCEz`C`8CP/Qi> UubT%I}_u -\R -Ib:cc1)@XpE_^;@k0%b4&'"32>4.#"32>7#".54>7+".54>32>2>3:.#"/WN <-,;"+>)$Cc?;bH'9fQWk<QhhO/>$ CnN*9`~EU|O% ! 'q 51(C~a;xaS'H:%4>32>32+532>54.#"#".P6gWS^. 1\MRg8#3r{<IIDLlS9$?Tah3?7&L?((Gb; -;>*%2ts6[ ggpiEtZX.C, K}ϨxBk  ? 8/l߷Jl^7#5>54.#"#.54>32^">_En8<%=W732>54.#!52>54.#"32#32^Td^V:Xd(%! ?hLQe:$:J%&afbN-!-,, " Z|N#8\t<Wk<ل::xXY4 DDQ[/PzS+/omG+=KV.'7# !GoMOrU@Qz#'2>54.#"!5>=4&#"!5>=4&#.#"'>7.54>32>32>32)G\fh/4R8";M*-K8ch1O7so&>/" Fyar^L!woKp*iDJN$OrT/&AXem5'XSEDSX#"USF@R[+4jcU?%to]:B{lan;8\C*H/JJ/H*s"@\9)H.JJ/H+sy*G_lr7ѓ]: +Z~+R@(/L6!_~ZW20M88Q44P74L1#Del_B4.#"3267#".54>324&#".54>3 1Qi9;aF&+Lk?}TUvǐP*Hbox9"TSH5bL.(,'.%@T\a,j'7mmzo5Θx4Zޅ_gE$#*yKT 7+1$0b<8_L9'~T4.#"32>7#".54>3232>7#"&'.#">32.Lc36eN/+Ig=6bL,NmEo[@$(OvNAA='A!:65%9BM*.m70U!+PRK<|tdL+]X1itf%$i;8^ka.  '1-S?&' /O;7a_a78M/>\}th].#5>.#"!5>54.#"#.74>32>32h3HWb4)<68#w$BCG)DD>/5U>2P8(DZ2=K)/;=7H/ebXB'.GazK2bVFCOV)i{Cۨ{aN& 6,=_?!dl^L#".54>732>'.+532>54.=3^OjhN/Rm? 'Gb7>5#"&'#"&'7>54.#"32>53^JndT0Pf7%%.CeF7fM.,`1%L%6+#B`<1Z,=:5%. 6O32E%^gn6KlApJBArZSyU4A*\NkA?kQU8H[85bP9 ")-)SA&!09#PE-+tq#52>54.#"#5>=4.#"3#.54>3232>7#".#">32>321^Ve;T6.TC664'   .<<8=W9+H^3n^c4=`m>==Dr]G\6fcc2&X[Z(R`?<_3h\JIZd1[{H`jɬ%Io[xF ':P5w453JJ354w5Q;& Fz_p-"quS%Q3232>54.'.54>3")G`py=>{qbH)! R1N6|%GkEHf@+5)!=[@1)%2,]L2$k];;UkIFY3"*,O;"u`)#dIiL5)4D-1dQ3 &$%HcnQs4.#">.54>7.54>32#".54>7#"&'53267332>54.'a'$#& VEfA!):&%4!#>X37W=!5C~t7%Fg\skE"6V>,7.o6   4hhfT#*WZAGHI+ +" )  &8Sh7,YTJ&1@*F\88\F9c#$sz\`66bduH =?mRm}|r*LKEp -u84Y:q#".54>732>54.#"5>5'4.#"#".5732>7>32>32=~ć?yn^D'.V|N# -I[.F`>! *'.  ' #+6#*H5&" (9@;X'2@*DvW3p͜] 54.#52>54.#"#".54>32>32#".5&9T9@W55X?|gcE|eNpK, 4kaXn<1O8!5--  TOUQ9QeyD$__WFGAku=.Nh<:iO-[ӓMstl43iots9SpC,'=xu`wS ;a[]q?>sfl]E#".54>732>5.#".54>32"&#'%]Aym>xjN.0BNT*."6Ui4Ga;0WSV.!A3 ,/~@?8]x@6f_V%3n3+ʅA%;WuKHjL2 m &:U:B[8?fD#C\9 -7B.jGmI%!;S2RrK_'>54.#"#5>=4.#"#.#"'>7.54>32>32K$Rc%:N-(Gas|@4h_VH7T=zwr7UAT*6D,Gs^E%Fy`e)HZg4\l;x\6r-lPit>+Mh=g&K)II)K&g=hM+-j[p[H.9G\vL9]B$_k80$ gD=ts5V< 4l\@#".54>732>5#".54>7332>53[NocN3Z|I"&wBlM*DOU'W|KEsT;Y;.M71lZ;̊F7#".54>324.#"#54&'&4>32>320Ng6AeD$=_D=mR1PlnJS^&ZXI.9@3GG<3?`C,PC33@N)CuV3E]s@,dvq3%gBɋJS閉הN%;H#!0^fQQfZ2-I0]g6,F1.E.8^|D~C>'4.#"632+'32>54.#"#4>32%=O+"?/j8um`G(,H^cb),1FB2)F`75gR3:kY&YUN=#$=P-J.08R4v7W}ihmJ%/sĕua*3Qf3#k*-9EPC6*n`#".74654>7523267332>54.'5>54.'.53-Njy@}ԛV4O51i9*(HS/24\|HIrL(,G[/ K4L2&01&i2?!'N=&9cI7nZ90l_=aGGX@*6+ `~~s71hqO]4 >,Kd;50,.8G.$7,$-`l^84.#"32>7#".54>324.#52n$Da<4aK.#FfD?`A NfNsZ>!(Haoz<.WN??]AgyDv3"`ku>7f;nO2WvHccB!6J,:K+3d_>R4>32>32'>54&#54&#">32#".5732>54.#"2VuC)MA23CP-Mc92D`=#EeA6gN0pD|^8-E.1F,6g]0J,2ZfQQf^0!#H;%N׉SJɀOg%3qvd,@sl_.#"32>7%#".54>732>54.'.5467#".54>32>54&'#"&'532>735>7!166:70%9E$&H7#2Ripp02rpfN.9Ym5)+ )D[4:gK,.:,#E?4O57S96M .d0;g&2:>:1#[  KI%POo #(" 7RA6:I_AUfI.+B[tHQ`Bd3AV;Gc=5/ .b/z DJ32>54.#"#".54&#"#54>32>7>7AjMLf?>dH4fQ3Qg{B% \3Q84S:!29=6P:(2mg\F)DqR.MVe($B^:JPx"(+6`fRk?=mY3*"/86Wi#".'#".72>54.#"'>7.#".7>3267>54.#".54>3232>54.#.MifJ)p& $/BmU8nH/Ql=3&,FW+3bL. b|Q5@~oR0(% KSW);fL,\ &/wCBT1&P|VRr`*,k;:wo`H) 3$-8 #I]zl]o#".54>732>54.#75232>54.+5>54.'.532]NfmO)MlC  *Jh>?_>(33/I A8%-CIBy-20()QzPS}Q(O-D095E%)I7 1G.-N8!s4,j<\G4c &7(\{K!IvUJgE("+5,69  7 !/!%)9cN (7[B$:.% /A-/A- BYpl m4&#">#".54>3232>54.'>54.'5>54.'7]8G*5 Pd:JM92$%11%MxG{gK*0\Z'^p2Vq?HpK'$JB1U@I% $JB2TDJ$&=,:;wb=IE.YQ^0@YWz%*5@%$8-"2DY9T|Q(7[vNSvYH%`c $8A0K5( E -7*%<!5C!aiQ&7ll^C4.#"7>73.'#52>7.54>32pDJ'LwR*$B\oEGp\B# >@gpL&X^ɮ9 6L//L5 7##".54>?32>73#".546732>54.+':CpYB.@JQKCO_4   ,  !A6G{iV$+:FL'XuI UdaT~)  AaBFeC /Ql=h+H^hj//-(9`K)7'Y!(Je>ѝpM0&cwJԂ84q|&s@NRAqT11^VSwGl^h#".54>732>54.'7'2>54.#"#".54>3!!"3267>32^N_sÍP8^G/ .Ol;4W@$8aNJD^<)8".m9:q3(C01Sr@N&?.5-3H)TQM",K6uq>W8آl76hc9aQDk $)-  Ka7"DfEkU&'0#?W4/>&1UAXtD$<,<.)BoSv8>alJ"32>54&#"3'##".54$%5&$.54>323>7'#3>7}k/"A^='G6ad6]C'.k}YdoFT]UKhti/e2_^d5N;]C?X6!2"".54>326453>32#"&'#732>54.#"3 *SH#QE/+DV+0J4cO-`gY * $?S/-I3'DY2ҐKBmP8Q44uKW52 I{.2hL^}K .@&NmE 9ٟu4>'6#%67?#5353%6 #767%'%\Y\#sww#3s|+m&%5,P1" (;H@2G>>D3 F[#+7.5%63267#'"632#"73  \#^PLIg O68MA%-26LdP # [$!9) 3p*34632327&54632#".p?++>-bb-?++>(&.EE0 0EE.-0b^2]f4632327&54632#"&++-po-++./00$$##$$00B5%3!53#5354632#.#"!54632#.#"!!3!53U2螞;y;VJH\KΦ;y;VJH\K jjRkKNqKNqkjjB"'.#"!3!53!3!53#5354632Uno& NPVUdCjjRjjRk`B!3!53#"!!3!53#53546ex Vjj@dkjjRk`@=;!3!53#5354632#.#"!54632'.#"!3!53!3!53z 螞'gtRRC(*)-.HFo,,wv]YFV1-,fW))+`prk]LU_kreoX-TGL !%$32654&#"3>3235>54&#" 8F31GG13WgqoKjjpMN78N{+3캶.r!7333!73!3Mzvј7ʩjkjjHj$%!2676&#!732676&+73#7!2!W y䔞sˮ 'jj~}jkä``#"&'&7!2#.#"3267`քGQ0=(n=e9:חGdap\@A\%3 !#73#7! !WRl[?=>6jLlHjkvt##73#7!#7!!73#7!!73::o%W!oWo!Hnx%n:jk 5#73#7!#7!!73#7!3L:o%W!nVo!5qjk ~jgt6&#"3267#7!# !2::f^Caޝ=>7s>88kMM_b;<e#73#7!#!#7!#3!73!3 ZZ pHqjkkkkjj~j %3!73#7!#W jjjkkV7733267#7!##"&)g?Oko&2+@~ca9kk"#73#7!##7!# 3!3 c]jjkk5kk3jj[ #73#7!#!73 f,oBjkk#73#7! !#3!73#3o߫}ʫjk'kjj~j#73#7!#7!##3&YWmŵjkf/kkyj_ %2#""&'&7>3 9:9:ˉGQ0?xj%=xjNQJKQkdapjpbcVobc32676&+73#7!2#!3톩p|!"`jkjo0 '&54767>3 ;#"'&'2654'&#"̒gyi$d4$b!ica-:1S:1Sӓ\ipbcՕ\im:C@RRQJmcmd(#3!.+3!73#7!2%!26&#!r373!#!#7!3t(o>>n(uݫj` jD#7!# 6#7!# u 22;ʾ;jkkkkS]#7!###7!U.jzkkjkkx!###7!#3#7!#`nWbݛBjkk9\kk] 3!73 #7!##7!# 3!73O[C}8,jjskkkk?jj[T373#7!##7!#3^~ajkk\kk,j #7!#!!730 (I'o=& $n:HZH=E!%#"'&54776323!326714#"yP8 >ܽ5lq!UI0 wTx39aCj,@N&(#7!>32#"&'#3267654'&#"LEtBoU8,o 1~&-~!jmd_fKU_dO?[n#?QY>kDM4ceB|V##654'&#"!!#72767#73767632WG]_ ơ _.0 ccݼɁb/,s~"'s}&&h`\Zŏd_wKh=Ha"Q=>*Si]>32"'&543!#7!#H+)GT Dq.D" /B! jk9'>32#"'&54#7!#"&'733267PH+)F+*"CљAp2&UJQdq.D" /B! Wkq!!>!-{L 3!##7!#7!` GEۉ jhj kkL%3!#7!EjjjUD/>323!654'&#"#654'&#"##7!>32Dc8!drdogt dohD!@ZpXuwh>eBSjN8>$EK6>#Dijp{#D3#7!>323!654'&#"D!Aa9#dlmshklne=fCUjjgE=#HND!%267654'& "'&5476 څ(0(0sdF,3dE,FhQ`?uhPa@uckEN2jENOVqD(3267654'&#"'#7!>32#"&'#0~'.~EBnT8,nhHiO?[LKdQ2 >ܼݮ71 ,sr!Ud0/wKh=HajQ=>*SD#654'&#"##7!>32/_DzhD!Dn(W)4'ioksD/3327654&/.547>32#654&#" '@_!=psKݠ)_[j;r|0!w3 K1-,qAVIgF*-/G21mWXeq#733!!32673#"'&5479:7v?AJ}!/ kJk]O. &U_G+P3A~"'33!7#"'&547#7!3267|!A`:#d54'&67654'&'Vvvm;_9D9xN)-K-I?yyƤf}v-iCZ5*"(!4M0k?4'%*Ly8!Z$;V'%32+53#5! !%#676'&]}}j vw P;;y,GE+yyy%;53;V353#5!#5!!53#5!!533V|`{{F{Qyy!\V353#5!#5!!53#5!33V{U{{=yy!y\M$2.#"3267#5!# !267'&?(ûK5ӞuZ44 ou I97Ʊ&&xNLhi@AAguity'<̫:V  353#5!#33Veyyyy\yV"533265#5!##"&6765uFDWF̬K-@$K^X+yy"e%L3V{ 353#5!##5!# 3!333V98eEyyy!yy3yy\BuV 353#5!#!533Vzyyy-\M!353#5! !#3!53#3#3%#3M+*M_ah7qpVyyByyysy\M *ABC%2#" ! %&7>4.'0%"~RS~]po5W9*  +9V5W8*  *9V5 \BKLByddERSdT`AFB_UcTQRScU_@F@`UcTR1P|xy)H7332654&/.54$32#.#"!"$654'&/.'&54r¬cŠ vr^ʻ55:ʲIUZ;=5W5,RHbvrZd+78Ǹ,,gf]a4742O}AH/71GTH3 5#"32634.'&5479?cns`gfVfxY`FGJZmd$:,>H%FCVyTP?{Wc""ldlRr<3^MUfK`Und*#77#5!>32#"&'!5326&#"#>54.(ee(8U`bPPb`UmeS',,'5@.)(.y#xSQQSyfʯ1"C56 AYXDuQC( KD&# 32#.#"3267&#Ӷdierfqn|`u 8)jk)7AL& (**هπxT,qo+ K $354&#"3263!5#"32#5!3&'&767V_cPQb_V?9(ee(e 54 N5Z[4i6ySQ,*QSxy"rqCstDKAD%*4&#"!32673#"32&=473&FURGnp|g'F="x zXҩwηzt#(vshjh8|$#.#"3#3!53#535463234|eD>H@MF;J9e NLsyyy5yklP7K9D+2A!"&'53326=#"325!4&#"326565#&'&76V`ge}ty(ee(9V_cPQb_V@eN5Z[4O 54 `!!ifySQ,*QSy6V`^CstDrq8!1353#5!>323!534&#"3334.?9pt>L`Zte e/+y#x}_Tyy5i#y"-/.3/1+Dg<)? #'4632#"&3!53#5!32654&#"3#eIGddGIe]$$eeTQooQOonuyy5y-((5w9 +34632#"&#5!#"&'5326532654&#">5#dJFedGIe%6zBf5;B4H$%$?;eTQopPOony\PG^{()(YUK+q?!)53#5!#5!#3!533!3#3~shpYxee!;9y#xyyyy{X"!>? %3!53#5!3#eeyyy#xe"?tD0=LP>323!534&#"3!534&#"3!53#5!>3234.%34.#_Bhs7KU]rr8IV]rLj7cud/)re #4eyjayyhyyhyy5y]Vc"9y +Eg<'"323!534&#"33%34.?9pt>L`Zte e/+y5y_Tyy5i#y5/.3/1+Dg<)KD+%26&" 3267654'&'&hdRQSSc(!mm )*( mn '+Tq+)w"qq"x!qq"z*VD !%3326&#"%#5!>32#"&'3!5;#676'&U`bPPb`U(ee(eS 44 O5[Z6HiʯySQQSHyy!qrDtsDKVD"&53!53#"325!4&#"32653%&'&76V(ee(9V_cPQb_VmeN5Z[4O 54 !yySQ,*QSy6!CstDrq5D#.#"3!53#5!>32#fHEhx.pPe3US̵\yy5yok >5OD)S7332654&/.54632#.#"#"&67>54'&/&'.'&54Vf tagA_Uuf{tad:KYG >$,wH-  # '3(>)w}KF@F%)!mnEB6>%51nQ)3"% .).3+ O (4:7Ō d yJyuDVZQ8+);)*')3!5#"&5#5!3265#5#.'#u99p;OaYtFe&'e/+'Ry_T+ykyR51Cg<)]'!#5!##5!# 3i%t}go"(]yy`yyR5X'#5!## ##5!##3737ٴ}fqhqp"? G>';LyyRfyyyR'4X'#5!#3!53 3!53#5!# #vu{vkHt]yyFyyyyyy59\' #"&'5326?#5!##5!#!7?+zh,l@f=<;G%_g'rgtc.ubMJGc%5yyuyyj@' 35!#!!5337A%ck{ke.y9+wF'%3!#7!<Djjk9 '#7!#"&'733267SBњ@q2'U =IRdkq!!`Z{V )$26&" ! '676'&'&PPP   ' ww (+( xx (*XHIpq,, LM-f-K 3535%!33Q{yyw{],#>3 !53!57$54&#"!!67654&'&'lnn}{{js.9/35KMdB%%ДJ=o^DUlJo**zɴ*7H>32!"&'332654&+532654&#"#67>54'&'67654&'&'wkj{m |32!"&'332654&#"#!!67654'&'032# !2#.#"26&"64&'&577:U;6Qjm}clOOOjY,<tu44qffiѯPW !7N@%mǗ'j #!#!!7!jշi{$)P_!-7AKW $5467.54$324&#"264&#"326>54&'&547&547>54.Y稟DSTCCC#TfhRSgfT7NGHX  YIH@)RVQn)cQ$D̥Υ$Ⱦ'wwuuշaLTu!IxMOuU!uTMae^|k\^g&\-JF7c!+8"26#"543 !"&'3326.547676'&ѹOOO;UQjm}dW/i2?>u{P55  iafi97pUk8&f3#ifL 2#"&546!2#"&546+><-,=>*><,-=?F.2CC2.FF.2CC2.F3#li ]'.#"'>3232653#"'(,%#/W\L!72,'%*W\U 9.dv 7/ir-C#iS3#'#hhS373hhL #."#>32U``Uvw7667u}|L 332673#"&U`SS`Uvw7667u}| 2#"&5463+><--')3 wy'D%[D #3353#526& " ````Mj>jjjb8c32^'%53!3!#!##3353#5<`at`+`~````j"jj"j>jjjJw' !53! !#5!`e_z`Xj'j]/'!'%3!535&'&7635#5!#2'"!264&#mnᝥnmovouzjjjdWiiXdkghXiiWSȎȎ[D"%353!5>54& !533.5432_pknnjp_͊B.ƹ.B@  4632#"&53E31FF13Ejj k ,#r:sV#5!#326#5!#! oϨjkkkkSe#353#53#5! 3#!'3 76!%&'&!#o[§uq 9uje}kũ}j!}f&.%3!5#'&'#5367632#5!3#!3276=6&#"Ȟ1opc on cpo1CV:A~BB~A:jjd_k֊_d)j5kcqddkpb*.#"!!3267#5!#'&'#53&5!2 ȲeSvfTwѸ$p6s}x88kMMԛ}b;<9fD(1953676325!#3##"&'53326=#'&'33276=6&#"n cpo1D_PWyp1opc :A~BB~A:k֊_dkk9&&h`ďd_ִcqddkpbC#!#3!53!3!53#D s #iii }ii }C#!53#5!#!#5!#3pi }ii }ii$#!#.#!!>73!5 ƍd]NVfP.\cm#A0*h4$4EX:H;%267!2#"&'.#" #"&54632fRF5G eXM*= ͙Qtw\LY61f[v\OY)(v;n&  ]; & ' ] ;)& ' ]'  ;-27!5!!2#"&'.#"!!#"&54632OhyfRF5G PxyeXM*= ͸D:w\LY61fZv\OY)(v;7#"&'4763232!5!767!5!7!2'"&'&'&#"!!! bye-+M*> Gb"Lyf))F5H|JWv\O,-*'vebsl:v]L--6133)n3#QQ!;#3Q@Z13-'  ' '  !#E-'  ' '  ' ' ' * ^^_<++u:) mfu) R[IOehIBnQImy}8{{tmmB}3y3JegeAeegGeefaee_[LZgegkeV3f  RmJ[5[[B[B[BMB;O\5M5BBU[5[qBg51)ImI{]mR3kpgnQ3QZa5IbTgZ}3333335gAeAeAeAeeeNUeLZgggggZVVVVe5J[J[J[J[J[J[[[B[B[B[B[MMBMMU[BU[U[U[U[U[UD111153J[3J[3J[g[g[g[g[e[e[AeB[AeB[AeB[AeB[AeB[g[g[g[g[GeGeBBM^MSM eMBeMBeBf;Oae\5\5eM5eM5eM5eM5MU(LZBLZBLZB<eVBgU[gU[gU[0k[keqBkeqBkeqBgggg555V1V1V1V1V1V1f )RIRIRIB5JTJe5Je5gg[eTJe5U[Aeg|pJOg Be\ae\?M5KBLHBgcUY|g[T5kegJUO5N5Q'pxePRI[[[u}e#5N e eg[ee5 /ZZB3J[MMgU[V1V1V1V1V1B[3J[3J[5[gg[ae\ gU[gU[[[MO e eg[g[NeeLZB3J[5[ZUD3J[3J[AeB[AeB[MUM gU[gU[keqBkeqBV1V1g5?Ge V[I[RI3J[AeB[gU[gU[gU[gU[5B5;O[[3)!\gI3DWDJ\M3AeB[fDOg[k\qBJ[[[5[[[[B[B[lZ]Zj[DO[[,[P1KKMBBMBAEB5511BOB>U[[[[BBBqBqBBKBK/B/BgOOBUO551w[`B)KLII[ug Aj[[?O\5K[,[p[/[5M55oB755M?0?55)))))))7) )OIII6i6i))amm6i6i]Q]Qc*)m1 )){'g2B+ ^^`^.qm''ggv"<lg6Te?JLZ?[[[mBfa3Iz {   v # 3Jee3FAeRGegeae3_[LZegGeeJg PVpX[ZPBB`B[)tMBU[ZJPBU[B?K?`BJU[B;t[[J`B Q\tQ`BU[`BQae1[%?6K 6E'}VgU[g[eUZ?`&R}V;t[;Og[[e5g_[Y;LgggAeAeegeUf. eGeGe4GesJeJee[Ae|cGeGee._[GegGeeg4i Ge7e7e?eege?J[UN A5nBB[Q??? B?U[?5[J<GB?BB666[D5:B[B[}&5[gMBM;O 1?&??<6|?W6 e5 e5g[00- e5\5=ek5cQe\5Z-i?)6Ge?3e"?e5g[J FJd?dBeae\5Ge?d?M5sJ[sJ[5[AeB[gB[gB[|cQ[[Ge?Ge?gU[gU[gU[g[4<4<4<?e5e6|p[. . g[f )??Z$?{??Z-b6vV~um?K]??De?dauun6iQQ3rB[B*[333[31*3ll33~339bQK 3 cK333Bc{K3cc$3rgQI4ccc/uFccufcPYclt|cGccOlcW=DcFcFcGcTcc#cocGcc4Pc8cHcccc>Hc ?Hs$2cc-c8c8~cc.cc^bQ$c6c-cHF8~c:c/Z%Qg-cWcccccacc0utcc$QQ[ A[7A7A5[MB?*B?U[t[Z [6U[U[aFFJ6ux)I]ZY65BaC EU?U:?N?N?@??b??988@. ?i? 6999s9!999s9s99B*!j**9~999!!Jj*^"H*9,3r*)H*H,31[?MBB56wM9~9~99s9*9***@C!B/j*j**/99\@!9*a.a.a.99''3J[Je5Je5Je5g[e[e[e[e[e[AeB[AeB[AeB[AeB[AeB[eBg[GeBGeBGe GeBGeB?MSMae\5ae\5ae\5eM5^MeMeM_[B_[B_[BLZBLZBLZBLZBgU[gU[gU[gU[e5e5keqBkeqBkeqBkeqggggg5555V1V1V1V1V133f )f )f )f )f )  RIRIRIB)[B-BVU[3J[3J[3i[3i[3i[3i[3J[3J[3J[3J[3J[3J[AeB[AeB[AeB[Aen[Aen[Aen[Aen[AeB[eMBeMBgU[gU[gg[gg[gg[gg[gU[cUYcUYcUYcUYcUYV1V1Q'Q'Q'Q'Q'e/5[[[[[[[[33AA H ~ 33ZZZZZZ$   B s PBPBPBPBPBPBPBPB/ $  X    BB:  JO   } m U[U[U[U[U[U[ 0    `B`B`B`B`B`B`B`B    QQQQQQQQ C $/     [[ZZPBPBBU[U[`B`BQQ[[[[[[[[33AA H ~ 33PBPBPBPBPBPBPBPB/ $  X    QQQQQQQQ C $/     [[[[[[[33333ZZPBPBPBPBPBz { GeS^< zx`B`B`B`B;t;t`B`Bv  QQQQQ # paZ33_3IpnQnQQQ3Q3IIIQIQ33??g3p e {e$$$$$$p }}33>l}l}vm<3Z$.r*/=$G/-{{{[Q).QZ/=$G/-{{{[Q999 )9)!)j*)!m1!2eITeM UUVXYQDjVEMV3ADppae3ME?-VV#/e>=hW, QQZ/=Z=Geee1e3> J We   ege_[MBBB^B^ ]B]M5[[Beeeg[g.DiDDifFDiDcDiDiDiDD<%Q~i??iiDQDDi??DDiDiDDiDiDiiiDiaaaaiiQiDiDDiDDiDX]oo--TTTT//#m666rSEE*!**pp00000k000kuv3%3 dlKKf_ff_f_ff_f;UUUUU6U6UUU6U6UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU6U6UUUURUURURUUUUURURUUUUURURUUUUUUUUUUUUUUUUUUUUUU*UUUU*UUUUUHdHdHfHdHdHdHdHdHdHdHdHddHdHd?dHdHdHdHdFFttttttkCCtt1ttttt"tt5tt!tt5tetRte{icc~~Zupi RD Ri RD RD Ri RD RD Ri RD Ri RiFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFiiDiDiDi22DiDicccccccicicDiDi]]D%3f]Zf &DDDiDiD????iiii?i?i?i??????iiiiiDiiDDiiDD7  ***DDDiiDD\M \keGeBae\5RIg_[3g" Te? QBU[i)ERllelqllq~l`lll;gllll7lllll!lulldl}}geB?d6xDS4ex5 2g1[ggGeBn5gO[888d85g[[F[[[[g[Z-e 5 2g1[ee5gcqB,M5cBgcqB:.LZBGT?{9BMA_[eal#craa70sll zltll0t_na:rlrl.>nll?]illlll2lsU[pBBBf@k?GZb3sJ`AgGa_L_ok5W3]fx [J=NN$BNAM];\LMLUNOqe~E)gV>V|VV&M^VhyBVVMEM3y[G? #K*bKKK8K<8?x???<?K*K5 OS,<*/2J/@M;V{Kt_c DBMBMBMOMMBLZ^^i^[i[PVPVPVVPP^[^VbLZ|U[>U[^J]w[}}<VeCCDM;; ;f;M;M; W  79k:;<&:$7$9$:$<$I$W$Y$Z$\$$$$$$%$&$'$6$7$8$9$:$$$$ $ $ $ $$$|$}$$$ $ $ %&%&&%*&%2&%<%&%&%&%&%&%&%&%%&%&%&%&%&%&%&%&%&%&%&%&%8%:%&%&%&%&&''&''9(&))))))$N)Du)H)R)N)N)N)N)N)u)u)u)u)u)u)u)))))))))))N)u)N)u)N)u))))))))))u)))**&**<**:--a--.k.$.&.2.8.:.<.H.R.X.\}................................}.}......0.1.:/7Y/8/9 /:N/<}/\/////}///&Y/0/:}//1}1}1122K2292;3a33a333$D383D3H3R3V3D3D3D3D3D333333333333333333333333!3#3044K44&4&57595:5<5D/5\55/5/5/5/5/5/5/5&555&5:5566K6666 6"777777$77&7Da7Fa7Ha7Ra7Vk7Z7777777a77777a7a77a7777a7777a7a7a7a7a7!k7#k7&&8D88D888$8-8888899D992929$u929DD9HD9L9RD9X}9\9u9u9u9u9u9999999D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9}9}9}9}999D99D91}9K9K::k::N:N:$:DN:HY:L:Ru:U:X:\::::::N:N:N:N:N:N:u:Y:Y:Y:Y:u:u:u:u:u:u:::::::Y:u:::1:&:&;;$;&;2;;;;;;;;;;;;;;;<<<<<<$a<&<Da<HN<L<RN<XN<a<a<a<a<a<<a<a<a<a<a<a<<<N<N<N<N<N<N<N<N<N<N<N<N<N<N<<<N<)<1N==IIIII&INRUUY Y Z Z [\\79:<IWYZ\$%&'6789:    |} 79:<IWYZ\$%&'6789:    |} 79:<IWYZ\$%&'6789:    |} 79:<IWYZ\$%&'6789:    |} 79:<IWYZ\$%&'6789:    |} &&&&&K$9<:}}K9;K9;K9;K9;K9;K9;DD$-DD$-DD$-DD$-$a&DaHNLRNXNaaaaaaaaaaa<NNNNNNNNNNNNNNN)1N&79:<IWYZ\$%&'6789:    |} 79:<IWYZ\$%&'6789:    |} 79:<IWYZ\$%&'6789:    |} &9&9&&<:7Y89 :N<}\}&Y0:}7Y89 :N<}\}&Y0:}O7Y89 :N<2\2&Y0:2 } }  &79:<D/\///////&&:79:<D/\///////&&:  K  6   """K""6" ""&&&&&&$&7&&Da&Fa&Ha&Ra&Vk&Z&&&&&&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&!k&#k&&&0D00D000$0-00000777Dn7FU7Ga7HV7I7Ja7L7M7P}7Q}7RU7S7Ta7U}7V7W7X7Y7Z7[7\7]777 ::::::$a:&:Da:HN:L:RN:XN:a:a:a:a:a::a:a:a:a:a:a:<:N:N:N:N:N:N:N:N:N:N:N:N:N:N:::N:):1N??}$}-/}}}}}}79k:;<&:$-/$-/99:9;9<99:979:;9<YZ&: k $ & 2 8 : < H R X \} } }   0 1 :      & ,,,,lD L 4P| D LT  < d  t 4 0 Hx\LhPt XtPPxXL(x8p\p d !!" "#p###$%%`%%&t&&','X''($(p((()<)T)l)))*<****++(+@+X+p++, ,$,<,T,l,,-`-x----.4...//(/@/X00(0@0X0p0000011111122l233(3@3X3p3344(4@4X4p4444455505H5`5x566646L6d6|666667 7$7<7T7l777778X88899 989P9h99999::(:@:X::::;;(;@;X;p;;<<,>>?0?H?`?x?????@@ @8@P@h@@@@@A,AAAAABBB4BLBdB|BBBBBC C$C<CTClCCCDDEE,EF FtFGHH$HHIxJJdJKdKLPLMTMN4NtNO`OP PQQhQRR(RSXSTpTUV V0VW<WXXdX|XYYYZlZ[[|[\d\]4]^ ^|^^__P_x_____`` `8`P`h``````aa(a@aXapaaaaaabb(b@bXbpbcccccdd(d@dXdpdddddeeeeff(fgggggghh,hDh\hthhhhhiii4iLidi|iiiiij j$j<jTjljjkxkkllm$mmn$n<nTnlnnnnnnoo,oDo\otoptpq,qrs st4txtuuvXvw@wwx@xy@yXzz{{l{|X|}D}~h~`8X$ lh4hhD@TD<lLh8,,DDDP<Ph<L@\\ 8`(Dl 0L`Dt\DlT Ddx 4H\x0DXt4|,Lp0\x`Pdx 8\xHX,p$4Ph0HXhœÐàð hxĈĘŨŸL4Ld|$Ȱɬɼ(l(˔P ͈TΘ ϸdѰ(Ҍ Ә0԰llH4t L4۬ۼP`p܀H݈(@Xtx߈ߘߴL0H`x8H|Tp0@P`0$x,XP`\ \xD@P`dth4,D,<Lhxt(|dx4L$tXd4@h< p,p(l l 8   L   d t    H  @ t$<Tdt$<Tl4Ld|0l dt\pd|Lx P  !8!"\"#@#$% %d%&&'(,())****+8+X++,t,-P-...//0H001`12P23x345 5X66678 89X9: ::;;<>>?@(@A AB B|C CDDE0EFxG\GHhHIhIJKpLLpLM`MNO8OPPQRR|S,SSTU0UVWXpYTZX[$[\d]^_L` `abcpdeg ghipjpk$l lmoLpqrstuvtwPx\y(yz{@{|t|}0}~d~`@(88$X\8@ ,<L(hHdX |H8d,( d$$t4$`t@Th \|(Pd,xx,`H@4l0,Pt,D\t4Ld| $<Tl,D\t4Ld| $<Tl,D\t4Ld,D\t4Ld| $<Tl,D\t4Ld| $<Tl,D\th,D\tÌäü4TtČĤļ4TtŌŤż4Ld|ƔƬ4Ld|ǔǬ $<TlȄȤ $<TlɄɜɴ,D\tʌʤʼ4Ld|˔ˬ\ť̤̼4Ld|͔ͬ $<TlΈΤμ 8PhπϘϰ0LdЀМд,D\xєѬ0H`xҐҨ <TlӄӜӴ0H`|ԔԬ $<TlՄ՜ո 0HXpր֘֨ 8Ph׀טװ(@Xp؈ؠظ0H`xِ٨ 8Phڀژڰ(@Xpۈ۠۸0H`xܐܠܸ 0H`xݐݨ0Ld|ޔެ4P`|ߔ߬4Ld|,D\t TTTTTTTTTTTTTTTTTp HpHd l ,Px8Lp0h <`8x, @\Th|0DXl  4H\pt ` (XpT(L@dh<,Ll ,Ll  T    `  @ P  D T d t        , T l |      l Dt h884dT8D|$\D<d <Xt   !,!h!!"8""# #h##$8$$%H%%&D&&' '\''(((l() ))*H*++\+,,,-$-l-..l./8/t/0 0H001d11223 334(444505@555606H6`67d77778 8h8899P99::@:;,;L;;<<<=L==>d>?4??@@X@@A$ABBtBC8CDD8D`DDDEEF<FGxGHI4IJ JtJKKLKpKKKLL8LhLLMM`MNNNNO$ODOdOOOPQ Q0QQRVVW4WPWWWXX4XPXtXXXYY`YYYZ<ZpZZZ[[$[@[\[x[[\\X\\]]d]]]]^^<^`^^^^__0_P_p___``<`d```aa8adaaabb<bdbbbc c8cdcccdd0dXdddee<epeef f@fxffg gTgggh$hHhthhhiiHitiijj4j`jjjkkLk|kkl$lXlllm<mpmmn(nlnno(oXooopp p<pXptppppqq0qTq|qqqqrrr8rTrprrrrrss4sHtuvvvvvww$w@wdwwwwwx xtxxyDz{{}L}h}}}}~$~D~t~~~~D`8d<\dhT tPp$h\@HHHHp4PxhT840 \@`$d0x \,h|| 0D`|0D`|0Lp<p Dp$P|@d@l4p Dp$P|@d@l4p$P|,`0T @tD,p Dp$P|@d@l4pŒ°$P|ð,`Č0TŀŬ @tưDǀǴ,pȌȰ$P|ɰ,`ʌ0Tˀˬ @t̰D̀ʹ,pΔ LπϴPЄ0lѰDҀҴ,pӤ`Ԝ$pD֠t\ؤ,p٬0x۰(܈``ޔh߬<l \4 Pp T hhDTXTt8h,\L|@p <Xt(d,HdP  \@HhLD0d@(` <lx| h$  L  4   T  4   \ p \@<$ 88l`$Dt,pT@P`  8 X x  !!! !8!"8"####$$,$T$|$$$%%D%h%%%%&&@&l&&''h'(\))**\*+@+,,--./(/0H01 12023\3l3|33344506 66787788,8899`9::4:P:`:;;;<<==l==>P>?@ABXC<DLE0EFGHIJKPL8M\N,O`PQRhSdTTUVWLX,YZ|\]<^h_(`a4b ccd dtdeXeffgPghhhhhhhhhhhhhhhhhhhhhi<ij j|jk0kklXllm0mhmnnnop ppq4qtqr0rrs,st tu uv4vwwXwxxxxylyz@z{,{{|0|t|}d}~, L,H p$TTl$t< d`LLT0|8` Ld(@X,Hd (D`|$<L|8,<,Lt(Hd|  + >_No O  4  i   ,  e ,t ,  (% "d : & h  O  vCopyright (c) 2003 by Bitstream, Inc. All Rights Reserved. DejaVu changes are in public domain Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. DejaVu changes are in public domain DejaVu Serif CondensedDejaVu Serif CondensedBookBookDejaVu Serif CondensedDejaVu Serif CondensedDejaVu Serif CondensedDejaVu Serif CondensedVersion 2.37Version 2.37DejaVuSerifCondensedDejaVuSerifCondensedDejaVu fonts teamDejaVu fonts teamhttp://dejavu.sourceforge.nethttp://dejavu.sourceforge.netFonts are (c) Bitstream (see below). DejaVu changes are in public domain. Bitstream Vera Fonts Copyright ------------------------------ Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org. Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. Bitstream Vera Fonts Copyright ------------------------------ Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org. http://dejavu.sourceforge.net/wiki/index.php/Licensehttp://dejavu.sourceforge.net/wiki/index.php/LicenseDejaVu SerifDejaVu SerifCondensedCondensed~Z   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  sfthyphenAmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongsuni0180uni0181uni0182uni0183uni0184uni0185uni0186uni0187uni0188uni0189uni018Auni018Buni018Cuni018Duni018Euni018Funi0190uni0191uni0193uni0194uni0195uni0196uni0197uni0198uni0199uni019Auni019Buni019Cuni019Duni019Euni019FOhornohornuni01A2uni01A3uni01A4uni01A5uni01A6uni01A7uni01A8uni01A9uni01AAuni01ABuni01ACuni01ADuni01AEUhornuhornuni01B1uni01B2uni01B3uni01B4uni01B5uni01B6uni01B7uni01B8uni01B9uni01BAuni01BBuni01BCuni01BDuni01BEuni01BFuni01C0uni01C1uni01C2uni01C3uni01C4uni01C5uni01C6uni01C7uni01C8uni01C9uni01CAuni01CBuni01CCuni01CDuni01CEuni01CFuni01D0uni01D1uni01D2uni01D3uni01D4uni01D5uni01D6uni01D7uni01D8uni01D9uni01DAuni01DBuni01DCuni01DDuni01DEuni01DFuni01E0uni01E1uni01E2uni01E3uni01E4uni01E5Gcarongcaronuni01E8uni01E9uni01EAuni01EBuni01ECuni01EDuni01EEuni01EFuni01F0uni01F1uni01F2uni01F3uni01F4uni01F5uni01F6uni01F7uni01F8uni01F9 Aringacute aringacuteAEacuteaeacute Oslashacute oslashacuteuni0200uni0201uni0202uni0203uni0204uni0205uni0206uni0207uni0208uni0209uni020Auni020Buni020Cuni020Duni020Euni020Funi0210uni0211uni0212uni0213uni0214uni0215uni0216uni0217 Scommaaccent scommaaccentuni021Auni021Buni021Cuni021Duni021Euni021Funi0220uni0221uni0222uni0223uni0224uni0225uni0226uni0227uni0228uni0229uni022Auni022Buni022Cuni022Duni022Euni022Funi0230uni0231uni0232uni0233uni0234uni0235uni0236dotlessjuni0238uni0239uni023Auni023Buni023Cuni023Duni023Euni023Funi0240uni0241uni0242uni0243uni0244uni0245uni0246uni0247uni0248uni0249uni024Auni024Buni024Cuni024Duni024Euni024Funi0250uni0251uni0252uni0253uni0254uni0255uni0256uni0257uni0258uni0259uni025Auni025Buni025Cuni025Duni025Euni025Funi0260uni0261uni0262uni0263uni0264uni0265uni0266uni0267uni0268uni0269uni026Auni026Buni026Cuni026Duni026Euni026Funi0270uni0271uni0272uni0273uni0274uni0275uni0276uni0277uni0278uni0279uni027Auni027Buni027Cuni027Duni027Euni027Funi0280uni0281uni0282uni0283uni0284uni0285uni0286uni0287uni0288uni0289uni028Auni028Buni028Cuni028Duni028Euni028Funi0290uni0291uni0292uni0293uni0294uni0295uni0296uni0297uni0298uni0299uni029Auni029Buni029Cuni029Duni029Euni029Funi02A0uni02A1uni02A2uni02A3uni02A4uni02A5uni02A6uni02A7uni02A8uni02A9uni02AAuni02ABuni02ACuni02ADuni02AEuni02AFuni02B0uni02B1uni02B2uni02B3uni02B4uni02B5uni02B6uni02B7uni02B8uni02B9uni02BAuni02BBuni02BCuni02BDuni02BEuni02BFuni02C0uni02C1uni02C2uni02C3uni02C4uni02C5uni02C8uni02C9uni02CAuni02CBuni02CCuni02CDuni02D0uni02D1uni02D2uni02D3uni02D6uni02D7uni02DEuni02E0uni02E1uni02E2uni02E3uni02E4uni02E5uni02E6uni02E7uni02E8uni02E9uni02ECuni02EEuni02EFuni02F0uni02F3uni02F7 gravecomb acutecombuni0302 tildecombuni0304uni0305uni0306uni0307uni0308 hookabovecombuni030Auni030Buni030Cuni030Duni030Euni030Funi0310uni0311uni0312uni0313uni0314uni0315uni0316uni0317uni0318uni0319uni031Auni031Buni031Cuni031Duni031Euni031Funi0320uni0321uni0322 dotbelowcombuni0324uni0325uni0326uni0327uni0328uni0329uni032Auni032Buni032Cuni032Duni032Euni032Funi0330uni0331uni0332uni0333uni0334uni0335uni0336uni0337uni0338uni0339uni033Auni033Buni033Cuni033Duni033Euni033Funi0343uni034Funi0358uni0360uni0361uni0370uni0371uni0372uni0373uni0374uni0375uni0376uni0377uni037Auni037Buni037Cuni037Duni037Euni037Ftonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonosuni03CFuni03D0theta1Upsilon1uni03D3uni03D4phi1omega1uni03D7uni03D8uni03D9uni03DAuni03DBuni03DCuni03DDuni03DEuni03DFuni03E0uni03E1uni03F0uni03F1uni03F2uni03F3uni03F4uni03F5uni03F6uni03F7uni03F8uni03F9uni03FAuni03FBuni03FCuni03FDuni03FEuni03FFuni0400uni0401uni0402uni0403uni0404uni0405uni0406uni0407uni0408uni0409uni040Auni040Buni040Cuni040Duni040Euni040Funi0410uni0411uni0412uni0413uni0414uni0415uni0416uni0417uni0418uni0419uni041Auni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni0424uni0425uni0426uni0427uni0428uni0429uni042Auni042Buni042Cuni042Duni042Euni042Funi0430uni0431uni0432uni0433uni0434uni0435uni0436uni0437uni0438uni0439uni043Auni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni0444uni0445uni0446uni0447uni0448uni0449uni044Auni044Buni044Cuni044Duni044Euni044Funi0450uni0451uni0452uni0453uni0454uni0455uni0456uni0457uni0458uni0459uni045Auni045Buni045Cuni045Duni045Euni045Funi0462uni0463uni0464uni0465uni046Auni046Buni046Cuni046Duni0470uni0471uni0472uni0473uni0474uni0475uni0476uni0477uni048Cuni048Duni0490uni0491uni0492uni0493uni0494uni0495uni0496uni0497uni0498uni0499uni049Auni049Buni049Euni049Funi04A0uni04A1uni04A2uni04A3uni04A4uni04A5uni04A6uni04A7uni04AAuni04ABuni04ACuni04ADuni04AEuni04AFuni04B0uni04B1uni04B2uni04B3uni04B4uni04B5uni04B6uni04B7uni04BAuni04BBuni04C0uni04C1uni04C2uni04C3uni04C4uni04C7uni04C8uni04CBuni04CCuni04CFuni04D0uni04D1uni04D2uni04D3uni04D4uni04D5uni04D6uni04D7uni04D8uni04D9uni04DAuni04DBuni04DCuni04DDuni04DEuni04DFuni04E0uni04E1uni04E2uni04E3uni04E4uni04E5uni04E6uni04E7uni04E8uni04E9uni04EAuni04EBuni04ECuni04EDuni04EEuni04EFuni04F0uni04F1uni04F2uni04F3uni04F4uni04F5uni04F6uni04F7uni04F8uni04F9uni0510uni0511uni0512uni0513uni0514uni0515uni051Auni051Buni051Cuni051Duni0531uni0532uni0533uni0534uni0535uni0536uni0537uni0538uni0539uni053Auni053Buni053Cuni053Duni053Euni053Funi0540uni0541uni0542uni0543uni0544uni0545uni0546uni0547uni0548uni0549uni054Auni054Buni054Cuni054Duni054Euni054Funi0550uni0551uni0552uni0553uni0554uni0555uni0556uni0559uni055Auni055Buni055Cuni055Duni055Euni055Funi0561uni0562uni0563uni0564uni0565uni0566uni0567uni0568uni0569uni056Auni056Buni056Cuni056Duni056Euni056Funi0570uni0571uni0572uni0573uni0574uni0575uni0576uni0577uni0578uni0579uni057Auni057Buni057Cuni057Duni057Euni057Funi0580uni0581uni0582uni0583uni0584uni0585uni0586uni0587uni0589uni058Auni0E3Funi10A0uni10A1uni10A2uni10A3uni10A4uni10A5uni10A6uni10A7uni10A8uni10A9uni10AAuni10ABuni10ACuni10ADuni10AEuni10AFuni10B0uni10B1uni10B2uni10B3uni10B4uni10B5uni10B6uni10B7uni10B8uni10B9uni10BAuni10BBuni10BCuni10BDuni10BEuni10BFuni10C0uni10C1uni10C2uni10C3uni10C4uni10C5uni10D0uni10D1uni10D2uni10D3uni10D4uni10D5uni10D6uni10D7uni10D8uni10D9uni10DAuni10DBuni10DCuni10DDuni10DEuni10DFuni10E0uni10E1uni10E2uni10E3uni10E4uni10E5uni10E6uni10E7uni10E8uni10E9uni10EAuni10EBuni10ECuni10EDuni10EEuni10EFuni10F0uni10F1uni10F2uni10F3uni10F4uni10F5uni10F6uni10F7uni10F8uni10F9uni10FAuni10FBuni10FCuni1D00uni1D01uni1D02uni1D03uni1D04uni1D05uni1D06uni1D07uni1D08uni1D09uni1D0Auni1D0Buni1D0Cuni1D0Duni1D0Euni1D0Funi1D10uni1D11uni1D12uni1D13uni1D14uni1D15uni1D16uni1D17uni1D18uni1D19uni1D1Auni1D1Buni1D1Cuni1D1Duni1D1Euni1D1Funi1D20uni1D21uni1D22uni1D23uni1D24uni1D25uni1D26uni1D27uni1D28uni1D29uni1D2Auni1D2Buni1D2Cuni1D2Duni1D2Euni1D2Funi1D30uni1D31uni1D32uni1D33uni1D34uni1D35uni1D36uni1D37uni1D38uni1D39uni1D3Auni1D3Buni1D3Cuni1D3Duni1D3Euni1D3Funi1D40uni1D41uni1D42uni1D43uni1D44uni1D45uni1D46uni1D47uni1D48uni1D49uni1D4Auni1D4Buni1D4Cuni1D4Duni1D4Euni1D4Funi1D50uni1D51uni1D52uni1D53uni1D54uni1D55uni1D56uni1D57uni1D58uni1D59uni1D5Auni1D5Buni1D5Cuni1D5Duni1D5Euni1D5Funi1D60uni1D61uni1D62uni1D63uni1D64uni1D65uni1D66uni1D67uni1D68uni1D69uni1D6Auni1D6Buni1D77uni1D78uni1D7Buni1D7Cuni1D7Duni1D7Euni1D7Funi1D85uni1D9Buni1D9Cuni1D9Duni1D9Euni1D9Funi1DA0uni1DA1uni1DA2uni1DA3uni1DA4uni1DA5uni1DA6uni1DA7uni1DA8uni1DA9uni1DAAuni1DABuni1DACuni1DADuni1DAEuni1DAFuni1DB0uni1DB1uni1DB2uni1DB3uni1DB4uni1DB5uni1DB6uni1DB7uni1DB8uni1DB9uni1DBAuni1DBBuni1DBCuni1DBDuni1DBEuni1DBFuni1DC4uni1DC5uni1DC6uni1DC7uni1DC8uni1DC9uni1E00uni1E01uni1E02uni1E03uni1E04uni1E05uni1E06uni1E07uni1E08uni1E09uni1E0Auni1E0Buni1E0Cuni1E0Duni1E0Euni1E0Funi1E10uni1E11uni1E12uni1E13uni1E14uni1E15uni1E16uni1E17uni1E18uni1E19uni1E1Auni1E1Buni1E1Cuni1E1Duni1E1Euni1E1Funi1E20uni1E21uni1E22uni1E23uni1E24uni1E25uni1E26uni1E27uni1E28uni1E29uni1E2Auni1E2Buni1E2Cuni1E2Duni1E2Euni1E2Funi1E30uni1E31uni1E32uni1E33uni1E34uni1E35uni1E36uni1E37uni1E38uni1E39uni1E3Auni1E3Buni1E3Cuni1E3Duni1E3Euni1E3Funi1E40uni1E41uni1E42uni1E43uni1E44uni1E45uni1E46uni1E47uni1E48uni1E49uni1E4Auni1E4Buni1E4Cuni1E4Duni1E4Euni1E4Funi1E50uni1E51uni1E52uni1E53uni1E54uni1E55uni1E56uni1E57uni1E58uni1E59uni1E5Auni1E5Buni1E5Cuni1E5Duni1E5Euni1E5Funi1E60uni1E61uni1E62uni1E63uni1E64uni1E65uni1E66uni1E67uni1E68uni1E69uni1E6Auni1E6Buni1E6Cuni1E6Duni1E6Euni1E6Funi1E70uni1E71uni1E72uni1E73uni1E74uni1E75uni1E76uni1E77uni1E78uni1E79uni1E7Auni1E7Buni1E7Cuni1E7Duni1E7Euni1E7FWgravewgraveWacutewacute Wdieresis wdieresisuni1E86uni1E87uni1E88uni1E89uni1E8Auni1E8Buni1E8Cuni1E8Duni1E8Euni1E8Funi1E90uni1E91uni1E92uni1E93uni1E94uni1E95uni1E96uni1E97uni1E98uni1E99uni1E9Auni1E9Buni1E9Cuni1E9Duni1E9Euni1E9Funi1EA0uni1EA1uni1EA2uni1EA3uni1EA4uni1EA5uni1EA6uni1EA7uni1EA8uni1EA9uni1EAAuni1EABuni1EACuni1EADuni1EAEuni1EAFuni1EB0uni1EB1uni1EB2uni1EB3uni1EB4uni1EB5uni1EB6uni1EB7uni1EB8uni1EB9uni1EBAuni1EBBuni1EBCuni1EBDuni1ebeuni1ebFuni1EC0uni1EC1uni1EC2uni1EC3uni1EC4uni1EC5uni1EC6uni1EC7uni1EC8uni1EC9uni1ECAuni1ECBuni1ECCuni1ECDuni1ECEuni1ECFuni1ED0uni1ED1uni1ED2uni1ED3uni1ED4uni1ED5uni1ED6uni1ED7uni1ED8uni1ED9uni1EDAuni1EDBuni1EDCuni1EDDuni1EDEuni1EDFuni1EE0uni1EE1uni1EE2uni1EE3uni1EE4uni1EE5uni1EE6uni1EE7uni1EE8uni1EE9uni1EEAuni1EEBuni1EECuni1EEDuni1EEEuni1EEFuni1EF0uni1EF1Ygraveygraveuni1EF4uni1EF5uni1EF6uni1EF7uni1EF8uni1EF9uni1EFAuni1EFBuni1F00uni1F01uni1F02uni1F03uni1F04uni1F05uni1F06uni1F07uni1F08uni1F09uni1F0Auni1F0Buni1F0Cuni1F0Duni1F0Euni1F0Funi1F10uni1F11uni1F12uni1F13uni1F14uni1F15uni1F18uni1F19uni1F1Auni1F1Buni1F1Cuni1F1Duni1F20uni1F21uni1F22uni1F23uni1F24uni1F25uni1F26uni1F27uni1F28uni1F29uni1F2Auni1F2Buni1F2Cuni1F2Duni1F2Euni1F2Funi1F30uni1F31uni1F32uni1F33uni1F34uni1F35uni1F36uni1F37uni1F38uni1F39uni1F3Auni1F3Buni1F3Cuni1F3Duni1F3Euni1F3Funi1F40uni1F41uni1F42uni1F43uni1F44uni1F45uni1F48uni1F49uni1F4Auni1F4Buni1F4Cuni1F4Duni1F50uni1F51uni1F52uni1F53uni1F54uni1F55uni1F56uni1F57uni1F59uni1F5Buni1F5Duni1F5Funi1F60uni1F61uni1F62uni1F63uni1F64uni1F65uni1F66uni1F67uni1F68uni1F69uni1F6Auni1F6Buni1F6Cuni1F6Duni1F6Euni1F6Funi1F70uni1F71uni1F72uni1F73uni1F74uni1F75uni1F76uni1F77uni1F78uni1F79uni1F7Auni1F7Buni1F7Cuni1F7Duni1F80uni1F81uni1F82uni1F83uni1F84uni1F85uni1F86uni1F87uni1F88uni1F89uni1F8Auni1F8Buni1F8Cuni1F8Duni1F8Euni1F8Funi1F90uni1F91uni1F92uni1F93uni1F94uni1F95uni1F96uni1F97uni1F98uni1F99uni1F9Auni1F9Buni1F9Cuni1F9Duni1F9Euni1F9Funi1FA0uni1FA1uni1FA2uni1FA3uni1FA4uni1FA5uni1FA6uni1FA7uni1FA8uni1FA9uni1FAAuni1FABuni1FACuni1FADuni1FAEuni1FAFuni1FB0uni1FB1uni1FB2uni1FB3uni1FB4uni1FB6uni1FB7uni1FB8uni1FB9uni1FBAuni1FBBuni1FBCuni1FBDuni1FBEuni1FBFuni1FC0uni1FC1uni1FC2uni1FC3uni1FC4uni1FC6uni1FC7uni1FC8uni1FC9uni1FCAuni1FCBuni1FCCuni1FCDuni1FCEuni1FCFuni1FD0uni1FD1uni1FD2uni1FD3uni1FD6uni1FD7uni1FD8uni1FD9uni1FDAuni1FDBuni1FDDuni1FDEuni1FDFuni1FE0uni1FE1uni1FE2uni1FE3uni1FE4uni1FE5uni1FE6uni1FE7uni1FE8uni1FE9uni1FEAuni1FEBuni1FECuni1FEDuni1FEEuni1FEFuni1FF2uni1FF3uni1FF4uni1FF6uni1FF7uni1FF8uni1FF9uni1FFAuni1FFBuni1FFCuni1FFDuni1FFEuni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni200Buni200Cuni200Duni200Euni200Funi2010uni2011 figuredashuni2015uni2016 underscoredbl quotereverseduni201Funi2023onedotenleadertwodotenleaderuni202Auni202Buni202Cuni202Duni202Euni202Funi2031minuteseconduni2034uni2035uni2036uni2037uni2038 exclamdbluni203Duni203Euni2042uni2045uni2046uni2047uni2048uni2049uni204Buni204Cuni204Duni204Euni204Funi2051uni2052uni2053uni2057uni205Funi2060uni2061uni2062uni2063uni2064uni206Auni206Buni206Cuni206Duni206Euni206Funi2070uni2071uni2074uni2075uni2076uni2077uni2078uni2079uni207Auni207Buni207Cuni207Duni207Euni207Funi2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089uni208Auni208Buni208Cuni208Duni208Euni2090uni2091uni2092uni2093uni2094uni2095uni2096uni2097uni2098uni2099uni209Auni209Buni209Cuni20A6Eurouni20AFuni20B1uni20B4uni20B5uni20B8uni20B9uni20BAuni20BDuni2102uni2103uni2109uni210Duni210Euni210Funi2115uni2116uni2119uni211Auni211Duni2124uni2126uni2127uni212Auni212Buni2132uni213Cuni213Duni213Euni213Funi2140uni2141uni2142uni2143uni2144uni2145uni2146uni2147uni2148uni2149uni214Buni214Euni2150uni2151uni2152onethird twothirdsuni2155uni2156uni2157uni2158uni2159uni215A oneeighth threeeighths fiveeighths seveneighthsuni215Funi2160uni2161uni2162uni2163uni2164uni2165uni2166uni2167uni2168uni2169uni216Auni216Buni216Cuni216Duni216Euni216Funi2170uni2171uni2172uni2173uni2174uni2175uni2176uni2177uni2178uni2179uni217Auni217Buni217Cuni217Duni217Euni217Funi2180uni2181uni2182uni2183uni2184uni2185uni2189 arrowleftarrowup arrowright arrowdown arrowboth arrowupdnuni2196uni2197uni2198uni2199uni219Auni219Buni219Cuni219Duni219Euni219Funi21A0uni21A1uni21A2uni21A3uni21A4uni21A5uni21A6uni21A7 arrowupdnbseuni21A9uni21AAuni21ABuni21ACuni21ADuni21AEuni21AFuni21B0uni21B1uni21B2uni21B3uni21B4carriagereturnuni21B6uni21B7uni21B8uni21B9uni21BAuni21BBuni21BCuni21BDuni21BEuni21BFuni21C0uni21C1uni21C2uni21C3uni21C4uni21C5uni21C6uni21C7uni21C8uni21C9uni21CAuni21CBuni21CCuni21CDuni21CEuni21CF arrowdblleft arrowdblup arrowdblright arrowdbldown arrowdblbothuni21D5uni21D6uni21D7uni21D8uni21D9uni21DAuni21DBuni21DCuni21DDuni21DEuni21DFuni21E0uni21E1uni21E2uni21E3uni21E4uni21E5uni21E6uni21E7uni21E8uni21E9uni21EAuni21EBuni21ECuni21EDuni21EEuni21EFuni21F0uni21F1uni21F2uni21F3uni21F4uni21F5uni21F6uni21F7uni21F8uni21F9uni21FAuni21FBuni21FCuni21FDuni21FEuni21FF universal existentialuni2204gradientelement notelementsuchthatuni220Cuni2210uni2213uni2214uni2215 asteriskmathuni2218uni2219uni221Buni221C proportional orthogonalangleuni2223uni2224uni2225uni2226 logicaland logicalor intersectionunionuni222Cuni222Duni2238uni2239uni223Auni223Bsimilaruni223Duni2242uni2243uni2250uni2251uni2252uni2253uni2254uni2255 equivalence propersubsetpropersuperset notsubsetuni2285 reflexsubsetreflexsupersetuni228Cuni228Duni228Euni228Funi2290uni2291uni2292uni2293uni2294 circleplusuni2296circlemultiplyuni2298uni2299uni229Auni229Buni229Cuni229Duni229Euni229Funi22A0uni22A1uni22A2uni22A3uni22A4 perpendicularuni22A6uni22A7uni22A8uni22A9uni22AAuni22ABuni22ACuni22ADuni22AEuni22AFuni22C4dotmathhouseuni2308uni2309uni230Auni230B revlogicalnotuni2311uni2318uni2319 integraltp integralbtuni2325uni2328uni237Duni239Buni239Cuni239Duni239Euni239Funi23A0uni23A1uni23A2uni23A3uni23A4uni23A5uni23A6uni23A7uni23A8uni23A9uni23AAuni23ABuni23ACuni23ADuni23AEuni23B7uni23CFuni2423SF100000uni2501SF110000uni2503uni2504uni2505uni2506uni2507uni2508uni2509uni250Auni250BSF010000uni250Duni250Euni250FSF030000uni2511uni2512uni2513SF020000uni2515uni2516uni2517SF040000uni2519uni251Auni251BSF080000uni251Duni251Euni251Funi2520uni2521uni2522uni2523SF090000uni2525uni2526uni2527uni2528uni2529uni252Auni252BSF060000uni252Duni252Euni252Funi2530uni2531uni2532uni2533SF070000uni2535uni2536uni2537uni2538uni2539uni253Auni253BSF050000uni253Duni253Euni253Funi2540uni2541uni2542uni2543uni2544uni2545uni2546uni2547uni2548uni2549uni254Auni254Buni254Cuni254Duni254Euni254FSF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000uni256Duni256Euni256Funi2570uni2571uni2572uni2573uni2574uni2575uni2576uni2577uni2578uni2579uni257Auni257Buni257Cuni257Duni257Euni257Fupblockuni2581uni2582uni2583dnblockuni2585uni2586uni2587blockuni2589uni258Auni258Blfblockuni258Duni258Euni258Frtblockltshadeshadedkshadeuni2594uni2595uni2596uni2597uni2598uni2599uni259Auni259Buni259Cuni259Duni259Euni259F filledboxH22073uni25A2uni25A3uni25A4uni25A5uni25A6uni25A7uni25A8uni25A9H18543H18551 filledrectuni25ADuni25AEuni25AFuni25B0uni25B1triagupuni25B3uni25B4uni25B5uni25B6uni25B7uni25B8uni25B9triagrtuni25BBtriagdnuni25BDuni25BEuni25BFuni25C0uni25C1uni25C2uni25C3triaglfuni25C5uni25C6uni25C7uni25C8uni25C9circleuni25CCuni25CDuni25CEH18533uni25D0uni25D1uni25D2uni25D3uni25D4uni25D5uni25D6uni25D7 invbullet invcircleuni25DAuni25DBuni25DCuni25DDuni25DEuni25DFuni25E0uni25E1uni25E2uni25E3uni25E4uni25E5 openbulletuni25E7uni25E8uni25E9uni25EAuni25EBuni25ECuni25EDuni25EEuni25EFuni25F0uni25F1uni25F2uni25F3uni25F4uni25F5uni25F6uni25F7uni25F8uni25F9uni25FAuni25FBuni25FCuni25FDuni25FEuni25FFuni2600uni2638uni2639 smileface invsmilefacesununi263Ffemaleuni2641maleuni2643uni2644uni2645uni2646uni2647spadeuni2661uni2662clubuni2664heartdiamonduni2667uni2669 musicalnotemusicalnotedbluni266Cuni266Duni266Euni266Funi27A1uni27C5uni27C6uni27E0uni27E8uni27E9uni27F0uni27F1uni27F2uni27F3uni27F4uni27F5uni27F6uni27F7uni27F8uni27F9uni27FAuni27FBuni27FCuni27FDuni27FEuni27FFuni2800uni2801uni2802uni2803uni2804uni2805uni2806uni2807uni2808uni2809uni280Auni280Buni280Cuni280Duni280Euni280Funi2810uni2811uni2812uni2813uni2814uni2815uni2816uni2817uni2818uni2819uni281Auni281Buni281Cuni281Duni281Euni281Funi2820uni2821uni2822uni2823uni2824uni2825uni2826uni2827uni2828uni2829uni282Auni282Buni282Cuni282Duni282Euni282Funi2830uni2831uni2832uni2833uni2834uni2835uni2836uni2837uni2838uni2839uni283Auni283Buni283Cuni283Duni283Euni283Funi2840uni2841uni2842uni2843uni2844uni2845uni2846uni2847uni2848uni2849uni284Auni284Buni284Cuni284Duni284Euni284Funi2850uni2851uni2852uni2853uni2854uni2855uni2856uni2857uni2858uni2859uni285Auni285Buni285Cuni285Duni285Euni285Funi2860uni2861uni2862uni2863uni2864uni2865uni2866uni2867uni2868uni2869uni286Auni286Buni286Cuni286Duni286Euni286Funi2870uni2871uni2872uni2873uni2874uni2875uni2876uni2877uni2878uni2879uni287Auni287Buni287Cuni287Duni287Euni287Funi2880uni2881uni2882uni2883uni2884uni2885uni2886uni2887uni2888uni2889uni288Auni288Buni288Cuni288Duni288Euni288Funi2890uni2891uni2892uni2893uni2894uni2895uni2896uni2897uni2898uni2899uni289Auni289Buni289Cuni289Duni289Euni289Funi28A0uni28A1uni28A2uni28A3uni28A4uni28A5uni28A6uni28A7uni28A8uni28A9uni28AAuni28ABuni28ACuni28ADuni28AEuni28AFuni28B0uni28B1uni28B2uni28B3uni28B4uni28B5uni28B6uni28B7uni28B8uni28B9uni28BAuni28BBuni28BCuni28BDuni28BEuni28BFuni28C0uni28C1uni28C2uni28C3uni28C4uni28C5uni28C6uni28C7uni28C8uni28C9uni28CAuni28CBuni28CCuni28CDuni28CEuni28CFuni28D0uni28D1uni28D2uni28D3uni28D4uni28D5uni28D6uni28D7uni28D8uni28D9uni28DAuni28DBuni28DCuni28DDuni28DEuni28DFuni28E0uni28E1uni28E2uni28E3uni28E4uni28E5uni28E6uni28E7uni28E8uni28E9uni28EAuni28EBuni28ECuni28EDuni28EEuni28EFuni28F0uni28F1uni28F2uni28F3uni28F4uni28F5uni28F6uni28F7uni28F8uni28F9uni28FAuni28FBuni28FCuni28FDuni28FEuni28FFuni2900uni2901uni2902uni2903uni2904uni2905uni2906uni2907uni2908uni2909uni290Auni290Buni290Cuni290Duni290Euni290Funi2910uni2911uni2912uni2913uni2914uni2915uni2916uni2917uni2918uni2919uni291Auni291Buni291Cuni291Duni291Euni291Funi2920uni2921uni2922uni2923uni2924uni2925uni2926uni2927uni2928uni2929uni292Auni292Buni292Cuni292Duni292Euni292Funi2930uni2931uni2932uni2933uni2934uni2935uni2936uni2937uni2938uni2939uni293Auni293Buni293Cuni293Duni293Euni293Funi2940uni2941uni2942uni2943uni2944uni2945uni2946uni2947uni2948uni2949uni294Auni294Buni294Cuni294Duni294Euni294Funi2950uni2951uni2952uni2953uni2954uni2955uni2956uni2957uni2958uni2959uni295Auni295Buni295Cuni295Duni295Euni295Funi2960uni2961uni2962uni2963uni2964uni2965uni2966uni2967uni2968uni2969uni296Auni296Buni296Cuni296Duni296Euni296Funi2970uni2971uni2972uni2973uni2974uni2975uni2976uni2977uni2978uni2979uni297Auni297Buni297Cuni297Duni297Euni297Funi29EBuni2A0Cuni2A0Duni2A0Euni2A2Funi2A6Auni2A6Buni2B00uni2B01uni2B02uni2B03uni2B04uni2B05uni2B06uni2B07uni2B08uni2B09uni2B0Auni2B0Buni2B0Cuni2B0Duni2B0Euni2B0Funi2B10uni2B11uni2B12uni2B13uni2B14uni2B15uni2B16uni2B17uni2B18uni2B19uni2B1Auni2C60uni2C61uni2C63uni2C64uni2C67uni2C68uni2C69uni2C6Auni2C6Buni2C6Cuni2C6Duni2C6Euni2C6Funi2C70uni2C71uni2C72uni2C73uni2C75uni2C76uni2C77uni2C79uni2C7Auni2C7Buni2C7Cuni2C7Duni2C7Euni2C7Funi2D00uni2D01uni2D02uni2D03uni2D04uni2D05uni2D06uni2D07uni2D08uni2D09uni2D0Auni2D0Buni2D0Cuni2D0Duni2D0Euni2D0Funi2D10uni2D11uni2D12uni2D13uni2D14uni2D15uni2D16uni2D17uni2D18uni2D19uni2D1Auni2D1Buni2D1Cuni2D1Duni2D1Euni2D1Funi2D20uni2D21uni2D22uni2D23uni2D24uni2D25uni2E18uni2E1Funi2E22uni2E23uni2E24uni2E25uni2E2EuniA644uniA645uniA646uniA647uniA650uniA651uniA654uniA655uniA656uniA657uniA698uniA699uniA708uniA709uniA70AuniA70BuniA70CuniA70DuniA70EuniA70FuniA710uniA711uniA712uniA713uniA714uniA715uniA716uniA71BuniA71CuniA71DuniA71EuniA71FuniA726uniA727uniA728uniA729uniA72AuniA72BuniA72CuniA72DuniA72EuniA72FuniA730uniA731uniA732uniA733uniA734uniA735uniA736uniA737uniA738uniA739uniA73AuniA73BuniA73CuniA73DuniA73EuniA73FuniA740uniA741uniA746uniA747uniA74AuniA74BuniA74EuniA74FuniA768uniA769uniA77BuniA77CuniA780uniA781uniA782uniA783uniA784uniA785uniA786uniA787uniA78BuniA78CuniA78DuniA790uniA791uniA7AAuniA7F8uniA7F9uniA7FAuniA7FBuniA7FCuniA7FDuniA7FEuniA7FFuniF400uniF401uniF402uniF403uniF404uniF405uniF406uniF407uniF408uniF409uniF40AuniF40BuniF40CuniF40DuniF40EuniF40FuniF410uniF411uniF412uniF413uniF414uniF415uniF416uniF417uniF418uniF419uniF41AuniF41BuniF41CuniF41DuniF41EuniF41FuniF420uniF421uniF422uniF423uniF424uniF425uniF426uniF428uniF6C5cyrBrevecyrbreveuniFB00uniFB03uniFB04uniFB05uniFB06uniFE00uniFE01uniFE02uniFE03uniFE04uniFE05uniFE06uniFE07uniFE08uniFE09uniFE0AuniFE0BuniFE0CuniFE0DuniFE0EuniFE0FuniFFF9uniFFFAuniFFFBuniFFFCuniFFFDu1D434u1D435u1D436u1D437u1D438u1D439u1D43Au1D43Bu1D43Cu1D43Du1D43Eu1D43Fu1D440u1D441u1D442u1D443u1D444u1D445u1D446u1D447u1D448u1D449u1D44Au1D44Bu1D44Cu1D44Du1D44Eu1D44Fu1D450u1D451u1D452u1D453u1D454u1D456u1D457u1D458u1D459u1D45Au1D45Bu1D45Cu1D45Du1D45Eu1D45Fu1D460u1D461u1D462u1D463u1D464u1D465u1D466u1D467u1D538u1D539u1D53Bu1D53Cu1D53Du1D53Eu1D540u1D541u1D542u1D543u1D544u1D546u1D54Au1D54Bu1D54Cu1D54Du1D54Eu1D54Fu1D550u1D552u1D553u1D554u1D555u1D556u1D557u1D558u1D559u1D55Au1D55Bu1D55Cu1D55Du1D55Eu1D55Fu1D560u1D561u1D562u1D563u1D564u1D565u1D566u1D567u1D568u1D569u1D56Au1D56Bu1D6A4u1D6A5u1D7D8u1D7D9u1D7DAu1D7DBu1D7DCu1D7DDu1D7DEu1D7DFu1D7E0u1D7E1 dlLtcaronDieresisAcuteTildeGrave CircumflexCaron uni0311.caseBreve Dotaccent Hungarumlaut Doublegraveiogonek.dotlessuni0268.dotless dotaccent.iuni029D.dotlessuni1E2D.dotlessuni1ECB.dotlessEng.alt brailledot uni03080304 uni03040308 uni03070304 uni03080301 uni03080300 uni03040301 uni03040300 uni03030304 uni0308030C uni03030308 uni030C0307 uni03030301 uni03020301 uni03020300 uni03020303 uni03060303 uni03060301 uni03060300 uni03060309 uni03020309 uni03010307g.altEng.alt2 uni01B7.altq.smcp delta.smcp theta.smcpxi.smcp sigma.smcpphi.smcp omega.smcpexclamdown.casequestiondown.case uni2E18.casegermandbls.smcpUring.ringless Dcroat.alt dcroat.alt uni01E4.alt uni01E5.altproduct.displayuni2210.displaysummation.displayintegral.displayuni222C.displayuni222D.displayuni2A0C.displayuni2A0D.displayuni2A0E.display uni221A.ext uni221A.top minute.ssty1 second.ssty1 uni2034.ssty1 uni2035.ssty1 uni2036.ssty1 uni2037.ssty1 uni2057.ssty@$d@$ 'd']}  22GG}  2d2dd%x %K.%x @@%0% @@   @I o} @ :]%]@%@0d0 ddl~}~2}|{|{zyx wv wvuv utltsrqp qp p@o}nm>nkm>lk llk k@jddjihihg]hhgf%g]g@f%eddeddcba`_.`_.^]\K[}ZYDXWVUSdRQ2POP}ONA@BL JdI"IH2GGFE EDCDkCBCBA BA@ A @ @@S?>->M=<=K<; <<@; :9:]98987 654543432 321 2 2@1 0/0D/.//. ..- d-,+,K+"++@* *d)(0)A(-(0'-'&:% %]$#$S#"##@"! !]     @#$0S-0 k@-B d-    @    @8k d } d2}-2- Sd+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Italy-P3.jpg000066400000000000000000007204251415770645300367150ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d*yExifMM*9 )1(1&92_; siGorgeous Cinque Terre, a national park in Liguria, ItalyCanonCanon EOS 5D Mark III ' 'Adobe Photoshop CC 2015.5 (Macintosh)2016:06:28 12:12:21052023001068$6>"'d02d0230FZ nv ~  0000000100X0 1 245 P2014:05:13 01:49:232014:05:13 01:49:233 #7aO/052023001068052023001068FEF24-70mm f/2.8L II USM0325011903RZ(b&HH Adobe_CMAdobed            k" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ? 6L"\{úu5!N H]!5Yc@ԝZ3S:~{>I1:(˗68䉔Lxak2XUsOѬmBX9Ԃ߹A4wW7щ9I!.>!lY^@%M3:>͕1$m~V'9g,WB=_/:4tr HtvMzzn[*{qx uPw豟KoOQ~S> 63qKڳֳָ8Fߣÿpf~M͚3sOr\G8bxxOC@ps86vлvGV5lhsp\e]S-ۏa-vߥ?ܺ#J:>AG'R1T2/ ^^-ئ]{6 kpmmn-y:~k}d8jZZ.unWbuNek.},}nWC85x9EH{kGV[aetViϷ~o=g;%{G޺Kǥ7q_UU$1Ίqc6~NNR 2G^'(pp~G-Y_[[sF=[n%M27*;Z&۝Wbs2+ӰwVZCnUrϤk8{4ag)pS_ !z1O9`ũsZl}vc~@+7=۳jKH'{ӴUR i HFϠ|t z^yǀq<\RxqGS6 akgBЧ߃u49տsckoo7w cYiŴq`{kl?n=et[2q* uޛ]*Wz߲U_鿜s@c89ei9Ke!pj4GUwe{Mޔ:kY}xU+[M,sroY\7K7ٷn&94Ce'K]e6zQgTZƦn؀*cq3"s{Ut;?ɪƌŀCH:X#MInDӾ+uhmy$Hag8'[$H"@wcSsHJv sǃc\FT{}Lk`{Y%,huwq2'QL::Cds'81vT1#s&yQ'_1q{0w-ᾞN}-~ENQ.Grtz-ϙw1qc~?>Y]9y~E϶WEwiXz+ʭ_ @.qo?9%^KaA:+k^>խ׸??8$yGvv1i qĀ4l{8C@i'v~&\:n avtnww+,K$8Ho ` 2oQw֞֕rd@}&xF"ZAnnk9l֟uN2惴1 A{:'hk79vYX١TEdqB"w?smz 4HOGkkpqvߦߢoZqh54톱yn ?Ѩd0tf9xa@ UZa;dptץo;VM;*ss{n=jb+w MmTڞd hk3o?N,iʽ[U^۟1xc} ogQa_꿤w!/8@6DGA[}m.p,.|n~u^驟uՒi~P.;w:1sFl_T=W;{P..X]n]v]ɫӯgٝ=lc2e즚;wڨeUg~U_F䐻77C(@F1F]c8t]Kl 0K]zv},ckُ{Hнk7cmG׻7;crl6j Zݔ突o?W>,Z}fM D8?_߯b ͗$y8e?}Qz}.Sq+ R{o_3N5M+ݱޗo>w,cmMyvW[kQ>05XflɏM.vվnNS7J<\?^y8pJ>OH7[u!Nk(`lI{=νV׺Ik+k*M܊Zˈ$nP_TI>C#;cnCmLUmDZgleR>uM'ҾSp0cw9鹎a?mV0khbUr̿Ӎ.4;nwFw}s$8LtN x[ φ-Զ!koXa2M9Ϭ>zNpp7[3͊]c%A%L${Ia$i埏 d[y<,LWnh ƶkmNeXM5~T~ղrife{=_3ju,uhcg?E7Zys2mjZN0uFcg-kPK uqW+K68p^/:|R|J*n]%/N~} dݒ-mk"l0o_!2{5{LA(]X}KI\i7[}_sX#smvW?57ݿHS5'/!n0ݚ[}K}KCc+{pr1>7Qf\Ieۜ۫K+et{?IU]V'~fC]sޛgL}r㲐uln6b'LLjv1ጽi@/2dnV@2C_4]ysqx` ;]6{)u%\K:]VŢz啿HmO+7eKw5i#kkʇ>ZɏN~rǣ/#r\ȐXu˒Ssr*7m6 KSk÷h>slo~]3 T{t&ѹfk{f $I>sj(^"5OOakrldCa瓻}Ns.7۴쩴 `9ER@9R͌*+;fK>'byXH 8Ǔ/T~9v2jv~՟ϭ..6=OݻݱnԺScmkFKьFU>X\g@-w_LXVe+qkG9\#8BGÒNy=\XAʯ1םI_ 5ucXZ]^CG.tk}Q:`?uwۓ{*ͭyoұ=Ovͪg6|8/~O/7"#븏ҫKU{5Ɂ>~UA^UǴZ,]:~9hO ]gk')vEt4Þ N۷16 gٖ"4G>?dže06H /WDdc.|;|gW)u\$?s6Xrݽyqqs%hbH\|Ivb3{8 \;oޟC9YƸZz.6Pƽ֝6 #\[]O\{\*KsksK"ߜֹ[Ωm1ֵkZ+jrFH^L9z}ѤD{޿p*W@a`e-2&}=k]Evϫ٬}<ă͕1K>R۶]wX$պƶ^fb_u XsZg{VwŹ0!,291sǻ e1,t~eubmbw(\X˷od4 `0rhgs;~5W`3XvѾ=ϟwmM}uMD>.E7zR]S/j@7Mv5FwѦŪ$=#1cQoW%;S.i\j78`5Wæwۘ.T*'r^=% hP!۸RKKf cw13p4=PIՐÔ b FzOͷqwpgr^χ ou m!coߵf-W6k6/Xc>вz5e[cc,+c=/SHx׆mk ea.\kݐݖ[zMqz>)DR-rppo:vh=ĸ_;Q7kc?h* c1cǺ?[-~CzjM骴;Ƴ!-la>lk=ZMO.ems^ufo 6ݟ这k9I{?/se1b %pDˇǎ_7̟+G;Q][qn,ck-TmZT842@ݟKv幏eMuN/ huoscޓG [){V TM} V~9o4\1\#3*L}RdK1~ck֑VilznUm{˚~Q麁B9n/K,U>:c+sٿշw5A7g|fx)p<6=^o< re9Ϡ07ckՁf#i}JIk/k_YX9m,6bFow!af2-ϵ ӿmm.6Z{v6Is g-?J=9o8$ex}vlXeH 8zQ?~m.ٗ~@A.q/\ç$K[Vz&5te~[旰Kv; vޞ]oPԶVSsF7>'g?̜s13dB_R :?kKF{[Vs4k{Oj~?h[uk{FSQ=ZZN -qr>lO_7_?psϊ+w9ej}&UeֲdXIo4}߻긛Ki9H`>[}{? 7&n׎l"VYf|7_V;ZV,fJ>9?6s9c,cad,~x!wo sCcGhnH+[,9Nc/jt\j;mֽ:vNn=owޥe  j}&hww?7Mqh>NWK7~ŌG$a)Kϣ/<8S].skv e&f/K@m$5oovֱٽNzUwXqqvh}o7?ԋIkcb93[nv7i;6=/)qrphԜsC c;͗4b-</?)m͓u/a;EZXYƻwmt_*溬zYkP;U mnY_Oѭ>1l=Ӳfg?&*z?+o/Wo?{'f#xG F2#q}^n5W%s15\7K9Fq|K,Tq<4zٻ/]=_v~>?Co?U^?Pd;9ݿ)H|ƸN?p>|<UM;,.]u<ձjsYU7$Tzeos[ Q/fcmm?|emߥLld_h7M)_~k|nwϭ??~]s;Ϣx3Dj\#vr*5z(|tΥњ:v}um̲`zM~k?TMͱ8^U`mk+S+G;/ߴ=]NWR^4O}~Wҟ>spluhK&#\.'!xnj,m.kWVc+*.. <]] mk۲ޗz~ǥe//謏^}>ӝ/ٳ[K*1ϛ_/pe>{ytb̆Ual}|{-L{|jw]e;?Y,۩⧜kw獬~#[>O|8ϣ{}/voݫwsۻ'[PL`l.{ yC 8qa8s2gN4Vt\]enm%ְq>]}[?࿑J897};}R~ocohnoWGOkwذlݻ"~{}, b@C$·1ctfrr@r,sO\=̓g,ro/u6m>믵ƶޟ k-|/WXdd09̻oѲ>m֑2>Ͷz[}GNv3ٟ{fgٿ~+ *9A(ٰL}1G_dujQ!f99T{_}/o0BPhotoshop 3.08BIM-Z%GZ%Gx8Gorgeous Cinque Terre, a national park in Liguria, ItalyP 052023001068720140513< 014923+0000>20140513 cinque terra cinque terrefishingitaliaitalyliguriatourtourismtowntravelvacationvernazzavillage8BIM%Qb9KD3x88BIM: printOutputPstSboolInteenumInteClrmprintSixteenBitbool printerNameTEXTprintProofSetupObjc Proof Setup proofSetupBltnenum builtinProof proofCMYK8BIM;-printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@oGrn doub@oBl doub@oBrdTUntF#RltBld UntF#RltRsltUntF#Pxl@R vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@YcropWhenPrintingboolcropRectBottomlong cropRectLeftlong cropRectRightlong cropRectToplong8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMCXItaly 2XnullboundsObjcRct1Top longLeftlongBtomlongRghtlongXslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongXurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM &+kȠ& Adobe_CMAdobed            k" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ? 6L"\{úu5!N H]!5Yc@ԝZ3S:~{>I1:(˗68䉔Lxak2XUsOѬmBX9Ԃ߹A4wW7щ9I!.>!lY^@%M3:>͕1$m~V'9g,WB=_/:4tr HtvMzzn[*{qx uPw豟KoOQ~S> 63qKڳֳָ8Fߣÿpf~M͚3sOr\G8bxxOC@ps86vлvGV5lhsp\e]S-ۏa-vߥ?ܺ#J:>AG'R1T2/ ^^-ئ]{6 kpmmn-y:~k}d8jZZ.unWbuNek.},}nWC85x9EH{kGV[aetViϷ~o=g;%{G޺Kǥ7q_UU$1Ίqc6~NNR 2G^'(pp~G-Y_[[sF=[n%M27*;Z&۝Wbs2+ӰwVZCnUrϤk8{4ag)pS_ !z1O9`ũsZl}vc~@+7=۳jKH'{ӴUR i HFϠ|t z^yǀq<\RxqGS6 akgBЧ߃u49տsckoo7w cYiŴq`{kl?n=et[2q* uޛ]*Wz߲U_鿜s@c89ei9Ke!pj4GUwe{Mޔ:kY}xU+[M,sroY\7K7ٷn&94Ce'K]e6zQgTZƦn؀*cq3"s{Ut;?ɪƌŀCH:X#MInDӾ+uhmy$Hag8'[$H"@wcSsHJv sǃc\FT{}Lk`{Y%,huwq2'QL::Cds'81vT1#s&yQ'_1q{0w-ᾞN}-~ENQ.Grtz-ϙw1qc~?>Y]9y~E϶WEwiXz+ʭ_ @.qo?9%^KaA:+k^>խ׸??8$yGvv1i qĀ4l{8C@i'v~&\:n avtnww+,K$8Ho ` 2oQw֞֕rd@}&xF"ZAnnk9l֟uN2惴1 A{:'hk79vYX١TEdqB"w?smz 4HOGkkpqvߦߢoZqh54톱yn ?Ѩd0tf9xa@ UZa;dptץo;VM;*ss{n=jb+w MmTڞd hk3o?N,iʽ[U^۟1xc} ogQa_꿤w!/8@6DGA[}m.p,.|n~u^驟uՒi~P.;w:1sFl_T=W;{P..X]n]v]ɫӯgٝ=lc2e즚;wڨeUg~U_F䐻77C(@F1F]c8t]Kl 0K]zv},ckُ{Hнk7cmG׻7;crl6j Zݔ突o?W>,Z}fM D8?_߯b ͗$y8e?}Qz}.Sq+ R{o_3N5M+ݱޗo>w,cmMyvW[kQ>05XflɏM.vվnNS7J<\?^y8pJ>OH7[u!Nk(`lI{=νV׺Ik+k*M܊Zˈ$nP_TI>C#;cnCmLUmDZgleR>uM'ҾSp0cw9鹎a?mV0khbUr̿Ӎ.4;nwFw}s$8LtN x[ φ-Զ!koXa2M9Ϭ>zNpp7[3͊]c%A%L${Ia$i埏 d[y<,LWnh ƶkmNeXM5~T~ղrife{=_3ju,uhcg?E7Zys2mjZN0uFcg-kPK uqW+K68p^/:|R|J*n]%/N~} dݒ-mk"l0o_!2{5{LA(]X}KI\i7[}_sX#smvW?57ݿHS5'/!n0ݚ[}K}KCc+{pr1>7Qf\Ieۜ۫K+et{?IU]V'~fC]sޛgL}r㲐uln6b'LLjv1ጽi@/2dnV@2C_4]ysqx` ;]6{)u%\K:]VŢz啿HmO+7eKw5i#kkʇ>ZɏN~rǣ/#r\ȐXu˒Ssr*7m6 KSk÷h>slo~]3 T{t&ѹfk{f $I>sj(^"5OOakrldCa瓻}Ns.7۴쩴 `9ER@9R͌*+;fK>'byXH 8Ǔ/T~9v2jv~՟ϭ..6=OݻݱnԺScmkFKьFU>X\g@-w_LXVe+qkG9\#8BGÒNy=\XAʯ1םI_ 5ucXZ]^CG.tk}Q:`?uwۓ{*ͭyoұ=Ovͪg6|8/~O/7"#븏ҫKU{5Ɂ>~UA^UǴZ,]:~9hO ]gk')vEt4Þ N۷16 gٖ"4G>?dže06H /WDdc.|;|gW)u\$?s6Xrݽyqqs%hbH\|Ivb3{8 \;oޟC9YƸZz.6Pƽ֝6 #\[]O\{\*KsksK"ߜֹ[Ωm1ֵkZ+jrFH^L9z}ѤD{޿p*W@a`e-2&}=k]Evϫ٬}<ă͕1K>R۶]wX$պƶ^fb_u XsZg{VwŹ0!,291sǻ e1,t~eubmbw(\X˷od4 `0rhgs;~5W`3XvѾ=ϟwmM}uMD>.E7zR]S/j@7Mv5FwѦŪ$=#1cQoW%;S.i\j78`5Wæwۘ.T*'r^=% hP!۸RKKf cw13p4=PIՐÔ b FzOͷqwpgr^χ ou m!coߵf-W6k6/Xc>вz5e[cc,+c=/SHx׆mk ea.\kݐݖ[zMqz>)DR-rppo:vh=ĸ_;Q7kc?h* c1cǺ?[-~CzjM骴;Ƴ!-la>lk=ZMO.ems^ufo 6ݟ这k9I{?/se1b %pDˇǎ_7̟+G;Q][qn,ck-TmZT842@ݟKv幏eMuN/ huoscޓG [){V TM} V~9o4\1\#3*L}RdK1~ck֑VilznUm{˚~Q麁B9n/K,U>:c+sٿշw5A7g|fx)p<6=^o< re9Ϡ07ckՁf#i}JIk/k_YX9m,6bFow!af2-ϵ ӿmm.6Z{v6Is g-?J=9o8$ex}vlXeH 8zQ?~m.ٗ~@A.q/\ç$K[Vz&5te~[旰Kv; vޞ]oPԶVSsF7>'g?̜s13dB_R :?kKF{[Vs4k{Oj~?h[uk{FSQ=ZZN -qr>lO_7_?psϊ+w9ej}&UeֲdXIo4}߻긛Ki9H`>[}{? 7&n׎l"VYf|7_V;ZV,fJ>9?6s9c,cad,~x!wo sCcGhnH+[,9Nc/jt\j;mֽ:vNn=owޥe  j}&hww?7Mqh>NWK7~ŌG$a)Kϣ/<8S].skv e&f/K@m$5oovֱٽNzUwXqqvh}o7?ԋIkcb93[nv7i;6=/)qrphԜsC c;͗4b-</?)m͓u/a;EZXYƻwmt_*溬zYkP;U mnY_Oѭ>1l=Ӳfg?&*z?+o/Wo?{'f#xG F2#q}^n5W%s15\7K9Fq|K,Tq<4zٻ/]=_v~>?Co?U^?Pd;9ݿ)H|ƸN?p>|<UM;,.]u<ձjsYU7$Tzeos[ Q/fcmm?|emߥLld_h7M)_~k|nwϭ??~]s;Ϣx3Dj\#vr*5z(|tΥњ:v}um̲`zM~k?TMͱ8^U`mk+S+G;/ߴ=]NWR^4O}~Wҟ>spluhK&#\.'!xnj,m.kWVc+*.. <]] mk۲ޗz~ǥe//謏^}>ӝ/ٳ[K*1ϛ_/pe>{ytb̆Ual}|{-L{|jw]e;?Y,۩⧜kw獬~#[>O|8ϣ{}/voݫwsۻ'[PL`l.{ yC 8qa8s2gN4Vt\]enm%ְq>]}[?࿑J897};}R~ocohnoWGOkwذlݻ"~{}, b@C$·1ctfrr@r,sO\=̓g,ro/u6m>믵ƶޟ k-|/WXdd09̻oѲ>m֑2>Ͷz[}GNv3ٟ{fgٿ~+ *9A(ٰL}1G_dujQ!f99T{_}/o8BIM!aAdobe PhotoshopAdobe Photoshop CC 2015.58BIMhttp://ns.adobe.com/xap/1.0/ cinque terra cinque terre fishing italia italy liguria tour tourism town travel vacation vernazza village Gorgeous Cinque Terre, a national park in Liguria, Italy 052023001068 4ICC_PROFILE$applmntrRGB XYZ   9acspAPPLAPPL-applgFKDnu descecprtd#wtptrXYZgXYZbXYZrTRC chad,bTRC gTRC desc Display P3textCopyright Apple Inc., 2015XYZ QXYZ =XYZ J7 XYZ (8 ȹparaff P sf32 B&nAdobed@      XK  s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?M$9+q?q3 E_O%d^HC,$gn+րT)˖w5c#Cz?2kߢ- ,Dm. Nzg9]=DrIp'(W$:yM3Uu 4nzKHS -]U pGn\.:2 H'{5y~P^6`Gwuglh8R;u,Q@ w9]q1#=+'4xfZF SHhAiJ)EGk f#u1 #˿i [#Uonr4NJWRp {;HO1}gQu'y+U B*ҨXVtsPI޺580jL}6E]bAl[SyVTEv=2>A Z4\&UŚa-NO"]\=N^]'6Auq4yi3X#Cr;5(TC eK;Xq=(O B#>_S3̞1m}#m֥pHǪ۹Mf8 zwym>ϴǐ#z&$4<ѱMqn$G#HRB |0_}-æjPya1H3ghly>9ۺDs\)(q}7&6m6L{ӭn"fK!E\D e`:_g k{F]9,NUuc%lkY̪I &1r<3+{? "4};󭯾j>O&GԬcc֪%d"R6vJÆjN=dLV8_Mw)UfckÌƤ|>+7e>Ў8<"CmK"/.PhZLVz#Yj7r)P>T]{GQ2'^O)${\AZSd x.Cp]ńj~U nDӗN2>"j?&?+#WY͕bW$_b }``2CʚD?<2Z\i)u˓0nܝ΃Yt=GKH<$Կ0,EJԴ43{&XOx?{}=YM:t m6>炞]]Ӫr)u m74#o}r~ 3;t` NBTi\CpׯlmNH]`H "r~Vk>guo݄-sР 2LtbX\rvLk<;=ϓ.6kl:;6V7kɣi*䏴f"Hkg  ;/W#-* 9fc|qR{ޟsZǣV3r (XX3ú_eŎR>8@~pvv\-O4[iv^Kjw4ݣ79~ЀH=P&<1'yT;sfJU46 ̻2*i e> XIN@G/C3 7Tv޿; xp !rzҬV|K-F 9^ 'q 'J;Ϲ/\.t*Fٵ>Ǐ,a.\$/nt1y?LROGhtPy+nu={gèpg!Ȁwy~vn|'A$I.*F7;X:&'m ӏ>{/?uTK-hXڙvoml )DG#G3W"8FW˘Inc}\kp{PO˶)mck{%MĤn"3[,9r•>9hd"sǴn^W& YR=Yd]SUfVH5:Iˈ1zK>Geb.W>r6iv~ioGxZ᡼ΡԞ ª𓞉,a %P2;ƍ ?"e pπ"#ۖ1}B7R7彦[aTK%%+Bڠ'?Um.&R8lP#yk(t+? <[Eךjl2 fuR<x1+s#0>8 ]]:N1J9'!!r@gϺ7N$Ic4-FDC`w>W;k{F1t! G$$jZ[[0M0wfU7] XN:lVfv:?g?+Nr7գU^ Idr*j]qQ=/=fq/fOxU45=nEm%բ-qKޅV4;_)f=9c4tY'=юyCX&ܯ &5_54,,7|K䕎󭝏m룦3=X;Yda^bѥ׾);{m\F/K)WX<{S]kMz¥P*( AU:>#<ϴs\byv/fkgqqۨrosyYC'm4Dw?<ԉO8GUrۅ* e> l5 2Tbio*v]6 l(dhy\Ь5  YLzU?u(d&,hI̼Zc$mӽG42J3ǻPkWWږqê߬~SZ2.32 'p{s>bKO 6KV uj$% nQ3#z}lpqq!ɍ^+*3}fs}b35ӍȦ}y&-.i$F(H/|)={%1=zKMj:f);=6M 7zԯ> ZԲ#6˒4ɔw so{dMp#**yxA}R($G,Ǡu'-ǂY7vni2ᔬsHkPvӽ':-hZu5#3<,8#ǒ@5 x#ʼwvNM-d'FJt }9vz}88y^ĔSߗj/u3)Mu;BG3nל`|A_lq˖Udxb;3q['Xm䑂+"}; ~v,c[\t>J %y⻷r${fCֿI9ߨDqv<:'/+tzZI@"'T; Gmj{_M3! kccyƮ,,O1 wv,zeb=ah=s45ov~Ϙ@dGn- YlR{C}io|{s,:(jrHˤOۻ;lŎdԄHam'Iߵf>cqr +HʼRK$rdNٽvdk$O EV>n&4b"N+Kh2|{k[G]ԌPLH^*%@.J5^4]yp18xql8=-ݝ۽,qƇ_y=Znvho-hTм%֛kx.V9bEKP B,>~9$03< sonTͷO5UЩ5"+xqJu.3UBRUg&. 旴;IPwwݕь8،\|jn)ardIāM=(qB{+7idDNF'eK?5LD7n rtZ Io|>xa:<͔݁q\O$v] ^k7P,q2)kw$U եk.эNn',FƯiS *JrNKW{)Ќ0H;}d/%JR\qpO$d;PS'̾VW 1:_{K<FاOK+bŮEI4ŪCVw0b}/fe,MH > "Au]矙N= uǔ Z}ͪ;ۨ214cCgH]r8I# dgn:I,YPjr z} fG=P4DO:?*t&U5se* 71G*_`(H998q KӬإ%DJ^S7msϟ*2TZ]VLY ]GKi{JZPOAG y^^{[]*O./qp4`K+@ &-,W ],eMw3Fg$nYݴ4Hw.>%~ Ocy:v:Y}}..8<h,X,z2Hu ̚c˕rtzncO+?a7zNdRvQ!Y%B*O:SA\o42C#2y_H%}ht7<BJ;zGˈfE^ĸ\3c7VP>zCO> \,${z[x=)P^BTtE3ze`Ҥ"|Nh6k6nfH$:&n`(d0hӼ< A/ .G8};Csm9- VAƨXI$I6U`=}]32=HˊC& rxCn#6 2VHM3S`R6 zSn J1ٲdF̚\_^+k[ךRHgĚfZX6G 151G8|x @<@̍v-汼U:S:lm~KtGۿ?g,L >y7o Rm\cn-GLQmR0WRzj|!~=26rLum5yđb:l1N$R\hA27]_Z\h7ڂWӉ(eز7srbIhi;#,aX6yq:0ʢ!ԟ#~ w_4zs?{v~:m>MMa6]U]~Z cF"ڲˆ23h*v y0×Zd ^IA,6nm#5JM!-փ#瀝8${d[A_enRz#2ZL뽡hItdԝ-\_M( #aֻF\z]iݡpӏO3-X2G-@ykX#POv ]/ax"{B迖Q]W:̶1ĢZ/#ⱊ-ghB"%-wyApiGӎ6ŵ.-}N(ېtE{ ;?;L}Tr~]Ꚏp/5oux" *;=.<b"<21!QB[DW?,}LKxCPic(ii֢'Kh ߧ ˬZ_+]Җ^|d6AԜ w}#7h>n ӷoÙ|hڅ帎KM&h&UhxSRe|1}ëˀBZiÄ%)i&KMks*?ƼZ(&2n 4èN:ŗ$e*θw]"* ,+OYdSzRb-UG0ܨ #ٹF@fCc 9F2߻nO-5rxk76˗r!HxZsBDSxɁ1to="eܐK"YMĐ@eyߨsa9 U |wH@o==n8Dj1 R >4f@3Cw]Ɵ Gd Ŏ[w善Jkin|,o$wiZyvF)kR[/A6 jصi|өyfF}3SM*^Vp9('*úfvzMHfJ?Ո<>vŎr# ,w+:ϕ52McA^_C4%̥Fۊ8oXRRw6#,Wwϝ;58o<ۮA/'rkiesh5a h;8vLNM,sD {3Qg|-i>EqeyE۔ zΗ^idg(r:] FcRF07:6lIXRÝD? > ggмyXyEmR]'  Ha)0~*nY3Lb dY89Xwt8yo'Nu$os~K-݅\@50GP643WK `J D;7GOQ"2&F礆2֥c6ڥ:Fiwpy2 R`ךԶ{,-n\#bY >r<gY(B#Gz1vp[<=wu;Z:dWb?%@;5㹠^19=}]u@轧vt~ba' 2a9FƋ٭$ITzqE$ʷ 4лDc@ó~,%ϟyi{ÎX";P>"G2TӬI3Xp9H,"$]]r%+sm; LO ȼs̾vv F>,;I$"0nń3q ~?Nxd12 m@_]J3p76rr_ۑ%\Keqx~v6&?5?( ͤyOcpΪ}&\!s#Y?~dyI%_4.j0}v)fvP8Jc.Ĝc ޓɳΏMo(BX\|\šu#)InG|^4Vv!ѠfI!Hj@@Ms'MtL'^i<1+M|Ӣɩ[YjZ܂HO3rU\קL7.eS$rˬ!8$1$ly@"6z̚LVw[ʷsDFEzg:=*R0L@FS$<J>/23_o,MrzQ %@%QM79m|em?^.C[s2h_Ao$MNlU4oQYG-llR5ϭ9B?#[jWB of0iHsy~ڪ} c.-)GC_ Bi!["C|"n3a[[l7qé۬P`xRWހ:W:qe3D~=6Q@G$NGȥXJMiFT -*6pjD #{i[óŚ,l *Aڃ|íwFKH4gT#zndDL^M9"e4BF;ݑjzb K9DHP5qze!$ sڧsau|B4;D-њZn7'1S$;5&8@ zRC[JPu i)(: #,ON!7A$K}>KӠuB-H *:#=ٍv}I)J< 뽿2b)2 //_EINB HRjT6|}3#~̵}^ yzNcֿ%, gԮ[ }ee2<->?cA?Z[JoO4/,d*Fjrj3Uڈ 7H{ob;#Q:DEHGƏ*?4+궓 &Tpe,Ps5ya+[7}Zrk>TLaC;sGqϤc$cQh:\v J܏6BFzͬǮ\Rk&?ɝgW.uۻA#'kZ,^8dys7a=GXG%n5Hދti,=ҸDa~CI;`ߘ:Ǡ#/FNՒY8jtݙfHxYvOO1Я2o~UyzI./uͿ;Ok$Z])YngJ=;E1FuؾiL<:Ԏyϒ?4&h֚ PĞTb>Ѽq476PFclA8'D m{K\e!D ow{ޠ}+Vh#D%Y~qbR#JǏ!2LA/d `'F(HeaWv<2_qcLh.%Q3xqsҤo??K%h2/6Otk==@V2|jvP v΢yuJ T͒V%IXUS84o'tHA&+OM)&I!Ds(G#LdVgKQ)FG[QCҺK'tX?Wb*Ϫ3{4@8y_.(jy㩳 sBq?."cS=??ڊ]Yғ`_^K.qidޖ)zzPzgͼ #E飄,IZ^U䒱+JRO2AO\ #;lcz?M;;5?%nbNsi<>ɹwyuݫ=9=Ro}ZMhk"9f7nӎIEkus4]-ɂf;G4{F,Dȉ#MV%8~}Q1ۥOΟ6AkzĖWQI }2WoOsg"{utr^'9cͯ1j֚ cʚFvzNհU绺WrhJ>ʇf 8C;̊J\{?6߭O<}T喟mm=+[-'M_@ov'⻹ 52h4:9܎1rUqguQϗ7yV̍Tx.LV-VWoV=) JZfañN,O&IO0?C\<1w,QddA5W\g~cZif>k|C PQ~f.[H[@HJ vIw4$ ;o#)~L@@M+6w]㡧hF7̮j##.T610%pT!q(Gqc˓|k֓QFjB 2ΟjV}ܖ>7 B\Xj%2ۯ{A:  WsX⿶-D{#¡.Tҁh x\YaO)#zKGQK3ȃ)˺-^ow&+AYR2xx@w/2AvWܐ-ԫ4onfr0^D:-H\1u0 ?wzo="[.Ŕt Y rzMi@=g$9wVxXQڒ=Qdz"YJ P8t>AkL۝˦=]U_(TQ%n/L O= $eG!396yxaP41%\$ 1tș>ш ڠ~o/WbGdAx6t}wy/K%w)^y:f3(va!ţ#$l?yyD]8N.w%zusFss;8|HI=y]3reP7ܖuݒ-,U s $&Qֻe> t{CN<]xj._,T`A#o9ns Ѵ)˵ fKJw؁E~&˱i\ uڑa9g H[yqUNwBiиGGV jYޔ8sO%oǨ {lv~ǂy_4/ՠ+$J"!;5lhks{sz.GU/LxG>_bH<ף'Q3$=N.Au=2(geНigk(96Q} o#]^\^#\LӺ@feZPfI$p0D 7hݢc @}RN@P a ˆ TpyˏI;_<աM\~J\MG]8tqCveeGR[~G/'7(%j*F;R187^k잦zL朤# H4ۍq$1@XpGa4í@rzF Q(̉.1w3 y6TQSfnH;nն16Ƃrpd> I?`"$ܟ bt3 |\$UuLE<]|A)P8'XVk)-Ũ(Wj'C)b|"/ Y =*,mB$ w8DC~V͚V+Հ&H٦IWr.9pጅ_+;'a WuGy7-4$t{??"_Z,y__Hev9ug]R<_Ӛ;zVp4;C^o/{DyJ\)fo0Qme;Dȓ$J| 1ҔΣCΏLA1%._iごy0/8~kߔ:MG75l5FF)<^4J-˂Y8sRK^GADM Fn}y^i漂Fjn+F^29>IlX.NYrǑ&CI<Lv߶_n ACLIXck''vaS.[j_T{t74ŚW]ӇPhW90qj;{\aLCˌ󿟹]kH,|2/h<1쪎AvJy}Jtdq7POus!AhzRxC%iމ{;[ԥTOLV?xODt>)WlzǓ{E+SoX{0]PE ZCOi7O:mT15b+8h~~,uo4Rţi֚[Cه(d┹ܸXαD2~]_9y_$5.>yq[{ftyJYхޙֆhvODpHbEn=;TȂMՠԂ귱ZZJCs%270(lqFX#l܈zk&3Gk45 MkΖ^e]CUoV7 :@W| $0 D JMˎQ_ur#{ܓZ;zsԈ 3C.{ KTha ~]{'.#W^Gg80FY l}Ux}Xq=ܖWpS73Z8;i3䄌h~o`~G]MW)`$ +Ԏq|8f5͙Ko5ƢuY,KtŹRX++!(1_/`3G$1Q2n|u<7I”Ӱ>ͯ|T_'nsI~ A_ͦP2`}5_ynOh>;A&zrO0u[IM9c4БeUÐi҆id<2u?c"S@OPiB;|3 P޾؃L=?w1V? G%6/6sD~λ=X)Րwt_]qӸ^H.Rzok$qc<$|СlmeH?j\=8| w$sljN,TJ9K{}֣u %cNX D|Xgp2b+ ;ITXIse&We9X]yn]!oFFaxO2> ;({Zug_2մCS/VUVxD` eq BT9g# F꒯=BIopk<A-_x嵓ۆf{K5d"ywXMSo# y-9!.r4u41#|ku/xg{z^ɊR#V@>^m5/[Z =Xo^&sK?<8qN.Z[ &I4#S`ːF;Z~ĥ=w)zl͎8t˪+#?:钉>Ho&b*@Wo~ٲ0Șygz\3 = H<ˬ[22"7)OL1oy9qDTEdL[k6ܽ6q=0U[P^(TaX;gO Ĩ;$ e_qk./i65OX*ʑ+Iq푇h NBdnSb ?ԎbC݅Ӭ Q-!VBwI] jg] v(%󍍈sI-0/*zuX-ݒ.79::_;{6^8G&0G􈭼|kS7,gp7I"*7ZS4zdNIqYb#c16w31wvj;tV5@ACA fꏆ&O_#\ x}f6yק(w<\A5В&a'BƠS~JLeTI׫͟<P:J=,j>pp4f}* [K(*Vk{aL~#o1w8 {U wz4Gw:^i~i Σͷc/gk3c&7[\h9x̴ #jM5Z/im~";^JdZn3L赘5HO)YeX`~gw'I p>mG(73>LP@Em(e4ZH4j0?Ūcl%c ;o-|iQ*vc|?x9KݢL\CbC@d " #v=}N>L2CAV=141o&5KJnZED,AnKөalb ^vDŽq''!_?I֤חzQ"Xex% @'\I"M d!븁G>E*^|2ZiJKIm!I}M5]Ee ~|RQTPK9|r/'/˟̯_CYKKk#\YjWKe6B@E,0eG/.gekqoˡDZ=f<)@ې_ʝ?EH3tH4SJ^Guw85ZD`ZRmXa8\#YI0 F?ak1A+viռ7CgVӧJduY~jۤLe5~5NKfG d;wFUwt9} H3}{ִ9gn0 y|sy*Ek,rX3kI?[=hZReqLYszoc~KUn.d$F{\Uzɐygkݽ7bM?ʞS.!4sjX@ ,)!Ãľ)I#=ջ>q FzD"OGlB[O%yfy}|K\Z]}pM>A3V9ZYJDJv#-'6j]yiL]1"R1v"UzJ:7N@đ/esn5-^H%AcRArPuM3M'nN>4fX}}λIbý O|(:P$9n+㏽9ܽ<ʨD>dlMj\^?9|/ٌdv~SN4k7d(C/V_v)F'1nϓ,A2?}qmY$.UEPqToDGB]kꚄڍ ,eCUa^e3#n64t#dg_A~T~nyo >$1I@d;^6Kp_:muc˷j/E6x.yp•=lS$g 'qWGAWLxC 3γMNێ($~x %i}悽id#oQ.ўQL_Nhc#˞clt j:U' /ZUW% EFUF4En˳~-N(Q.}y|~tSTѴʒZSl$(F(R)S1գt'MX V_MA+]YA}g7 eyb 6ⵡʲκzL ! dkDf :Ƨje þeS 5 ԎoiwF5L*{M6,0ie)U#to]X[hv+qos_ 7Jz uS ulIe#f$';m_u BP4 (M=Zl x A[[>JcM#R$a 6l./v}>zX8=CѠ{Keƚ͊/;z[*z^F}#S`%&fi51kM}^|ɣq?˿R07D ~_K}Mtnv?)BJ~'ΊO4> 6sr DlQ7&~;sOp-4/.H`IoYGȝZm q X5x.EɈ$'bL2>/B9c=3Y1Qa~:ZޕibFg%ޒ&#,Oeԁ)ˊ01Cwkڜ#bs?UctILY]CZ&ց 8 fN?yi~.C& cQ)O?jwqXӂ;Tr 6\D3;g般K`U{v0ZVwb l6[Jv UCd b'bZ@Bn΃z` bolh/a (* 2wpZE4w;7~}\h+4dkGj^\4;㶖KDo I1VDTgvǴDqa&C'?P'O%"l6rKS3aT $ྲྀh{.16m?W@򵵤;)kc.ze!HթQ{ccg 2S/ >T#bqǐ#zm=|hu"I O'$//Y.MZ]#oiS݆jc-@H?CnOi>8c/U:D;Hoq_ O*j1j$\];. ,".a9|bHFA!\R۸~[t~Aڈ޻B?n_l5[o=?ޮ=%+{^K%{nEA+c1.ň]ӘiJ5qa[+];/r@2T!]c:.Hڃu;s{;Kq ! |y>8kz'^HFޚiZZ[LZg>PYs.A TW6ݝ@~l38byb{I-Ι62Yh1{87»1MCn-N]>fP<$O>?Ԙ^~}Z-4[@%X~By`3 CK;ݦR V\i1ci>UO:24QdFڄl1bRҹй0c?5G\~t>{o,OgnO'ԥZ1VAf65=uqd2uDaviw5e~iRnw4{,y8$:^^M]B/zY[cλDLFFy#JTye~ol#XXPHEd{C11-k}F}'Ĭϟ3J  Ιz5'}N?/<zfpG"|%>Zd[mev/4R:NTY'G/2jxtRrxc_gSqց$ QXt"SMqQl<(%U:peSƫJǮ# Gn{fbuH⏨>v%#1s6"^B|?AeŜySVJmA'Ei\ s1!AbJ/#KҶ6#6:Ϣ?自_].in9j6!AbgN,Ŵj/&]Dx>;x{gS3Y287NGֺ=hCp.mVkbފYQX m'Ar$v^]D1ȏqpDݍGpӍiQ3(@xw+1 _!U䙝WJ'ӦI,Z줆iB; hq<&8=GvS Ɖhsg%Ɏ9W$QStS|<|@j2ǐp!.q#Բ{o!kdZ[IZHEN1N&N)+H < {vlmݒ?y7i:iqb{F󻞕WYt)+k؍աxg,|ݳ;Y9Gmy`itڍH2Tc 97|g5ǚn5Y-/n49VMO+n0,Oyŏ,1J#Ó9=j~kh9DkU)(s#Lk .>C>q5?p9=e1 a^qItYe)Dt8}G;}_H#k{wv%9b2*xR!s\r9 wolj4bclU,~{SXʮ$/t-cՔ{tJCb8aK2;a GZ}C֮̚WSrܾ 2J}TG"g+ |h4ؼ8̃Ne!b]{U k}ow3.%I9q|dt$:ݽgC1 +[%h.-I!Oe5;픂C偌91~dy~EѿFT^PCOc!3JXN$>*\6}wxSzOyJ"1CDo99i8";9zc?O-w q[fI]ϾbFȁ˻c)BG/ 2N EJJ(HpфNɎ#[?(g Ū!uΛCU?_ K>Z? :dV?y Oג}J[zIp\;N>ӼϨiN> $Mӡt&ff oታ h0]Z _?NoN#84 _fTk5ND?\zâ[Zi+4BFR8&=<+Pc80$O=Ϳ&?㏫ 2044Ot 1rZ+xIaz4r{')$zo8 RQsa"$C?R=d ضL5(ՇWPʎ6 Sr3 l58緿bVVbU.F#wm$ZyIA'~[_E* f:J0Ny 䊳>[WR;U >l23@o~eI׭UǨe{sy2ZB'؅Eni:\n(Poe1ê1gZ0+-jRM;[D* tXtXx4#rvË C<:/@̫ňdU{;K8XaNI15q7UJj;3s5be4hKn+)ŷzm󝞂9s%D}B[:=M`Xڏے]w^q6iRޤ2 /=8Fj@ژDiVށ:6Q!}睠k-Z8 ̱I *Ȩsk@@ O^)9EĬ- -̢(=^,"dyoi&ϕK^(&fK#%ŘQw16V4V|V5*^ژ#1-w~v&'擬ip(ۙuh3sHK>A|ZGBUy2Tb7DZ;_ă-mrMemTȼ@lXiS@'>(A>caYľ׈$yjg\S2l"B ub5T9䣥GCFIzI$S2H.F,Jlާ1[MI1rI6S2-"}k<\W֒[G"*). ?2͊:Bq.]x#>~rȢ~#'(e.s>џ;+T_><|K$4 Ombi`-_oWƉ(5egwm5hGA+M X ԷJrZ mj# " L@e=n_2ہE= ߶jPf+^SGkQF:/ѥmws޵o1izuՏMT٤[hJPu_,rmGQF3G Z绒KD.$ӌQPy; RowŌc+ZO:(%q `I||DmsFdVYfHg7(\}cõC,e?2GxOL4&!kGȟt>ƿoW~]J@"U"># ^/9<4bXic` $vp.FSǪZ$oZyymAH.Qsn -8|(3G6]^&{&#{mեWY!;م@Hr0]mnJtI{I$3h2qq+!q4{5*LSՃ?=oQ=:ȱ Ǚ2/oxf]BQINKxJy.Ɵ<#:9aoI{ uikbw7b$H4hz .(AZA%o$@">БN<)2Ο2Zg-q$qeX O%#pwe&*\g]Cu=ߘ%ú]+kZs*G%Y;<3$=fvohHLRU!f\>a,:bo;L>{~9C٢$'H-%nd4qy3Vq@ L9 ƱlMFXĢE;ًQL~Ou(kYW0|m䛿pcNs]$0 K'hjVF1!=PMU|sÄKb9>fɾftCG=g+[k ޔ%(My8GOOWGmu Dˇ?R)1K J$2A`r"%'~) !`ALᵂG3f#xvZ~̖<<@ϕ衯RM&wZ0Ƅ( 4EH6MV<"R.Ğ ,|Tv oJtfENޠ+%x+U ;t|0>0zb= Z,z> dbPW x_ͫz'2/${.=Mb4$c*⨠k"|iH}|CY+,%I""ZXo$5InPQw'b+NFRM~8'VѥB⠒He4#N&栔j0 bp˿Ghz3_q`,r Cqp6OPnQc9zQLj5^VapH.2\'27҄&Z)Ocڂ )bwO#Rf? bPSML6Pz &k1(H`I$DA FZ^9LOzLjst|[ZȲ5%UͲTڧ|>Q!>3Փ) DБo˨G:*yRjn҇]i Ci?KvJ᧱a5_Ѿҭލ/&aCAN!3yoh8{D}{Ooei.r"g(MK>[O)JsTzw'Duy`Nq~#{ȇ5տ0}KHMWNw eg)9OԞ!׻kodJR|f&c-foV^qݖ+B f{/"RT{x$L*x7=FFD|0'kһZ:uPy+LcpѐXOA2g, <7q@>ٔǐ7t?cMu)[L, T6 5\ҙQ>yŃ&n/jz~Ü4Zc~A]&]5YQx1gEќC2GWѴp!;d)ï`qX iN25NXҴ yVUPT{"=Dwi!c4qGs(S LE{yO4qˡYj˦ՌdkkRz}E64:}O#Qpz0W~6&C$hJcM3Bim$ܞ;y@9oZlL)$T_յ"fN&Tr-B+ke?&2kZxwa#ָQfЪNYnRAkX@/{YˇEn aS,~ӱ!vIU&(._ե$bkoZDAbwk|ocr;+o4߫ڦm42kʮWwdq [Y.)rYI1<oQKPLXI; Ж?+k#w6EN-^Ken􋛾*G`P]DH,d*>.=..eFr b%/N(6l!<\oҍ,DA_۠{ ~g?vz ?nߙ0^Cy{ݧ+~֐A][Rvf"nH G[I @חny}.GR&gߚBI|oixsL!8Lz y_"9 &,`&}3CΫQ[|gq'!>3-֟!=6hTe.;Ϟl110:_Ac0eBtbj?7y\j^ݶimko+iFIu>+yq+zHNT}G2F> G|kz޹v.Y2!r ^L{?̯!v7-i iw\1r[uo44!I hyqCL؃ϧ2<-'衫ZXӵEM,eG!J#jW21aOY$cJ0 [/DrHx9W.}=^Oka.t].JIYud֞܆ 9g<ԅ#3t8hȓFɌ 1;,# |"x?ZG4 7S-S[:Wc##‰H(X~A~mteCHFKmw p sC˯qj!N>~vuQʆqG8Oq@a]M7Nm4ԱTP98Cbiͩ0`%s<[{yeJ֒zWdH0GKk^1綥܁ gȰDD;_ \A:>zYb f16C՝=)>_Jg̼w=~/jeum%kAF B~7#}=C4q WÞk߫`h1XG^̊h'dP4RV9dY%Uc g@Oe0KU5jIEC)H2^ytִ?]P֢@=u_& Ut9BF,UrJ=6oro, '/O RT[4V=Z[I3lG_>\CF[w1x) qeLk+kQ{+m ¨f^[<(X<ïKKP1?hr}}aFyZN,i/ C~=X1C~rJB&DVLY=W=fӵ/Y߾IU_'#J|s4 u]}O۝C6Hc#bW'N*w˿Mk;RHH'Zq s"3dӭhfY lNqvW/sse1O&XO3:t/jvϽV[MF {2i<[ẋсeRfW~WPed~>5#\QBپ] iZ72K!"m b ~סșoQӿNmbh/E䲈Zc&Z6[0L5S&H=@'0ux7PD_c-¹ux_.חZgR[]jOvH 'G?o2MFk9 R,YGDsy*ԲS\Mݱ+N'~XSmB2)SFFwγE-7_3u=*Y#5\ıbрI~i_~p:nxQ*O"dFJlTmɡ5ěc7ޭ}BDBrR܆z-8 (l'.OP P;o~o$a*I#}RaC7Ώc*iK|β(-n.*ҤUTr۾H׈m%,]Xm֌  Qs$_qs>S9+d'"$mdr@q/sMb7oJ&8-!TV91U&ه2҈<=RkO xjO RHۓ+~[Cq?ti-imU @f߭3Oྠ:~5=ǡ|䋿,^滕4S{uTݰچU 8j'6xGÔtO/O?~|@r2i`±󮕩]b] T3]qxg;02f}``c"Y'I;$5Lpssv F̽k^WҵkcWO$ڙvi&VbDk͟a_N e828~fÇ#{ `~H{_bykNo[^[k;{[kYK kR pV+"Rjj/oŏ) OlH^_|3p#^ǻj`_u4ok~:\ YȵO0^59ӓGM&1ch9J  'Ń.F`%>Q#<'{7uFt{H[MbTŘ[vD #,hsc8uq eӆP&(j0ȉe1!NzhMȬKJHy-aGP鲜9DQCwhb,Z.soD) @!J+Mו67]Rgw۔4|. tW̱g'4j˚~OO6]X1I}YSqF% ͷcKy@+¶iHUvP41ߋ}Ws 3N]'Pờ2VX%fpޤ,i^sm]-V3}W{C℄J*z|G&Qaä.NKig6hFq|, $'0%:mg`gco)ZFh=dtRAA5ZsP 4 @8We{Kia5)N2nS\aE$\i,cѴjV/.#\lu$n DA7K`cӹwrs n[i:mn97>_s ;ZKX :uޓ}}[X Μ<>(RR@mW2 7S92D}y]x${eX37(Hۺ5HN_}@T9vk1^) 3"9v/<]+}_a1j?S%Ԭup*dB9tjeW ^Qźd)鿗[bT rAON~҂[s(ԉxXn>`h|_ xv @ʂ ~YVl`I<~׶+il9ca z`GuD{kr m{.$0xEZtGgW@mW+Pun &nO8b rɿ0G ;&vqߡ,-n=̈)f.@mVӅס¸\|ʟFau <~$Z [y&t3B=aY S^q! ٓv^ّ&;ۉiEpQR8s̵H],Q܄mE{[1qYb_>/hFd1[3jqzRs7.BkR6Tֵ=H+kSƭZR kc*kwC Go|"U3+ZwjHST$Jc!8񩨨|Ú8u Ϣ{l7/|m[tWzUkYO…!*£n5އݻ-w%>it{{L~c4!pZJA Z|5$P:fW4g@z

~' B4IZ՚85Vv FD @z=e2Kx(B{n񘪾m使I:촯sqx?떬C2e`Iy3;%/x'}Ɋ=x֛ro1RJE`qdK(Thv> fP^IrRZs g{d>_k;Oˏ/eKlTO}0x%oG947E\jƥ?c{'Va-w]J:~ u*KL-K=3U2N[8@/Ɉ}yazqIe q\nƋN?k|Br'[p#>֤7˩C-v+֕$'o>2[l$[6godcX"y}?S(sssq&9ߏ'mevRZ+͛x Ps]g"s-,t0|qF?#1)PX݄-Ӌ RORH5z[1㐏$PԴ,3jݮbY1!4FG-b; F ?,:k>_ [kZmkmxJvDʼaơrskn[vjt'..$pu|?y+E/Z]E{m,1pX:!wVIi׆NąQ@a]3ssB->?(bI 1-ާew3_O*iOs?w]Vi91=,p p?iƳV@9dXvómlR sro_:y^˚nϪO oOAv/du!yL593x=?Ca7(Ɨ_ES#E}7WKwIEF`G;ֹv~ 0T&Ivlr&| x5C,S>{6}csX6I"RcwV|i=\#?L@1(cw8S0L.'{G~Ohf"hY K+E(cMǒ/$rHiKN=u[dMWFg<j @d+kxpWH@oe㘏DFgYS~`򾇦ߙ`]J|5]"[NR{IDh1ΈMs{OMz%Lj"&k I' ~_͉J07rw:>T5 Ѩܼp}4(Ky,4I)&RL, IX]kg'orNx 8(wGb֐ja ")VX̼pâYGM~deX>1lC HE. ŭݥ%_@(v`Eܜ0]Cm[S,HXw-kF#iwf=:d~-NIՔu {`*ۜ ቾ9zNx7ilWd m>m_2DsKYR7ZZQX\rͲx=bҿ/]qk#5\{aW}߶ƿGс>Wqz(]똄ٷ.E<"G!t4O)䌻G P/7 )>rBo:Ɯ [קE9<Xk.%˒LFڄl}̜~ XcB?w 37s&j׍ 7_b 0FEWa)Ryc[XrMF`%K>~``Hc߾FE¦:S"J[H!iwc+^)/#kXU.Z')Pݯ6H㉔̦,G<W B%YMi,1Kb'1]Yxo?(ľh+1bAQcD Gߝ/?>V#d&jDBaJp@oZ 01'5}f$KcI3 OS_v6~Fe\so#?koĞSp~Kv]X@]SIE+$QUNjtb)–!׵=!5 E\Z1;^Fڼ 8ӻX|iGr !Y\-SL#uOt|0`rVۘnc%Dcs Gn}?OIʷ<݄8@"'/tߥ?@γ_kڢOQ21KV-);e3?{Ic>஄N[꼈=+Q>0Qm~g "Ķ]%9Y$@R |\ն9cדѧieZ[V1nH,l#s^+CQyj!<;>cmm\̮PYҐH5ZʢDT݋ĊGu}D_#Iڝͮq&QCaŮTh'1) M.կ|ä$W0]4W )Gc3uڄCq_/KD(gR83W[3"Iz妕 ka~f#^EdW *7l̪SpqGH{lyb^ij5oLYD4W<)nMru]`:O%הbHy  "ԧSP37.6Mھ"P"yzy~뚩IۀoI%Tf}R7%uφF'-z[ުS,-Γ(yJ&ڠ[h.LtwP ce";P=8%B7t+^9Wzŵšڠѩ4B9TA0 =KA}7}te~Z-{k+3#r'6$8qDݚ#}gpFtctu֏vEחKyPcUF BƝB9lh)&,Ŗ0d.y}g c(-ҟEC>]b 8yKxOVzzLj<|U \8$Fƺy"3'~{uK[;In47XRJ5,A`tŒJ9wuwrdHwHt*[kvyfĒ݈LĖJKؙKFʼn=zGڰ? )# scqs[ ǗVɚ屫y.+ ,Χ z-u D%eDq,X =ݹ #/)q<{(7s#!. FQ'b9KKsk:{bV憞DQĂ6v &A޶}K Kzo'G' I8tB&A!fQ&.YiO!Qۼ6?d(j >3O-uoFm/]Yy[E-FǕĒ/ӾUy"شRs$Ӵ7Z1GV^~6P>u8G{\rf {~/EڴA~0`u4*t,@=3RjQx\좵[8Y-V3s4RB'2Tɻ$InWg6~ MΟ]sǎ?Ή:m!}"bO j]蚪䥥G;ƍ "E6>ı?}sC>N)$R(Wt`MR@j*U'♙ OSɧARcW@REBWp;4i/5n& ,1.jN,HaQ{dy BWai麍5Hbbܦ(zC[hr+#-T6d 1yN`IpDђ5 "`^7v(Uf#r{|! U]h zhM^[q.cK9V{hg;f`#F21?AM8GN_k/m6<6:MwS->A8l>7aS=IL|Xdi⸹\>PTSwM,#,N'<|WdI nోr[3K?=Ly$A>2F(AJqŏ}ɋ[ȋC!OW|$\xm##%9Txe߆l@St+UтB 9dgNm #URH8V2ndq{L}Đۥ2,j痢ՎSD7D}ՆL@>`Iwb4bifPq&w+y+mS5E^mN!OC^ d68U,[sE|b=Q܊}w-;MzH`nbR@À;v̝&-}gQ&\XgUK\A>^`!>!h %, t4R=5Ʊi$ zҋtpY-^eU26cL-JoLǚr5 k{.Y*qF>8#ʊ[~W}`^x8/]'tu whƹ)vhMF/C>>,Ñ|Cӭm㽲um/:CpRK!zuXPGӚY =o&H QvhzԮfC\9lle^9yQڬvlP-on1DNSH@Y=C$ā_w:75 +Vj:{ML@`NBDe7Gs$LP] ?Y4 YéhNhZW,Z@xnD_CԿ0ӬZEj $-2#h:6zxVlh4:(*.m-oߨs̳NĈQ?u;]dUThCTXdjz;ByFpjD'#2'fzr1ƎtZd^&$W{e>Z׮t-oYѮ-%z]j->pgS"D*o|͐D]s}Av3Kf8^{E,hIynvN<4LfvYR◇H|wpy'>BN2.5K;n&vWVgj e؞@Dx2Ye8 r%=7UJ"c\-[]P5I$м5 9( PzfbOv?h5\9w|DKǣmoH䴷5+$JWLg6YTe(n2y}QK}\b+Vill2vIwgr(28}x4Nja= ;\hPݐ}p( QuӚ'm7iU&)BRlbUKyĔ Q{x7ݐ%"]wΜNQZJPi>|xKu-0ްԠ '0FFJ;5F VG 9_vv.(@1IC|M[ 7簟MWѭV1%CU|s3I359wݓ˞8ļYU>wҴ}.yHZĶmB}HlC)ݎlo[ Ge`)YbŖ[ =MjO99JF8KBQt9 QIIKk(#:re5lg[_y'b`FTMl2Uv,v?դY%Nfs5PƝ`;FcY:GK +oI85Y%,!#"MɡX'0fojЗ{f1$s*r(w@lGu >{/Rych&(8FéO?">FLLiYKT6PxAEkᆌ $#Dȑ9!b;&3rp(ce|}:.% [QdүVf."0wIFU^uf y1p&4x8qD7яo)_S4FV@-Wz -7ąA&/ɓ=N7>]jY2L~}nzrEs ʎR&R/}h@9"m"4<{]5&Qk~$?LjS 3'S# = ~ִ ݔ[hDZ<ϨdAs#xjr ;îˇǸ==/oBUɲA}I WWJ5z~-ɣX  >Z|'11|-N *iJP=Pvȁl.HobQ aIUv%=O %Z+NJHs p!iMcI; MiJcby~H;o:hMКkPfvONH&`U *KWY'!r|v}q*wv{53ݱ6?m= yh^=Lqx@<3lCS->hqt6|iF}aeiJ2QՉ5VRFsz$1&KцO[%m[9 O۸V&Sf8dl7Q(#zxT"bxDfeQ,T8#FflW$GפK>9!Kfh?p(û7>2$%5<'Xr1NC͒ij0lE-N)ɩ$mZ WnOQp]Lٳ|(@WBH}{f)㒤OnIm7QҞ$T7q$ rc(F_P޲q JnՒUtBSߍ1/]7\֯tXt@*~HoCv̈HHpDDwo:F'&%z*Ks^oDO5?&3.vqEe5bHvFXH#"ĕh+8m\N9)O3gϕf7BqlOץ>gʹz;(jڝˤ^ij$t*y񍉧bjd cL29BQ qߧ<~`ɨ^Yda&$m ܁$[hlom^DCU} gF eĸA ;uyR{^=Љ!8Pl3_Ֆhq#iX;*$iqwvdX[骩[is /~(ڜ26<ɺޝ} /*ۧjxO&eMb #m*p\HG²2ǰkz J#{Wh@|:yzt#}T35VXvG-ZTe{DCJZw4vF:snBESKSa/?x-2-(,+fn]B{w,Հ]ѤK[CY\BE)d:f&IܘDOWRKXҚkA5 1uedV5LI~O:۽biᓴ!/-j]֡mRx-Vi$HIQN9=TC&0f%Wg_?g͈F8X5O|Sӿ,єh^h V2c$@*"x1_9" 19R{#~fJPHUhOE(ve~3펚|gE.߳أOHakE!=oڧ-\1{Yy@|Q:^.6kpMϷR2cW/yk{+RmSy=ĺƃ /{vpCQjhݪ 9$v.>if6< q=xd(9I&X :7!5?'֭/b77z\UXEz,k1h@Dw^{M38wD١QVu0tc=ϔe]?MAl 8=pN˜sFF1:xDq*\ пˡ{3'|id\k:Ɛ Ŗk _TGaird $ g53nGlBX5xqj#:3n&q@˜Bnϔi'| & t ?Y/]" 95 h d yEڙxOMjuݖ'==+J፴ʐO/3)N_#9=FS^~GxB~^iZ)E&i^2Esopѫ b04`ʥO\c厣Tr"C~P1G~Gqb CF=2"#~6QAiR뷱> (Qwoey t:R)^łRgiɖW{\J8Cca&0wl+*5rDw27%umk@UzK8ؑdjsM`TJ}2Bqυ]/ rd<; j5o%h(DMSZc\Ќ8娉!!2?Q^yA'?ӛ/yR돨}0:f UV4a( #8;7M_iRw2?}|_CyCr?E5#4]*(-v\[LE kwTAB/%=FK2&o7}>6)fŒ2 fUMߘ5_jyKPI@x8vwSI> lv~ϊ22x;QۜCs;+i:F#yM蝶c6qSSJӮdUsq׸`ںz lSM2 l/뀲6NJqw{u.L^KՇ. >8Jyb >; )^b܁ouj/_|"¥!%S~5)NcěTW>vBSǖ6ܭw2EJ,)Ud Tv.:!" #?Yƻ6{8OQ$ٜ$kWRC #}yheD |>*횺zFη;}^Dӎ -Lxn$v=FWjuX,cdz8V-5x}X{Skk Φ HHM^W/1v&MF=4r2 )*YӦSU xY@Uq #,=8HO1J.Ph^]Y}kا+"+%rˁPSo,~C:#qWWf= 9Dnj2/O* Y6yC>cƜ>G&0Dޕ-Ж\U[=s:F}F< ~~ }^oZKHmt%Jܩn[>)hQ**E <٘S2>-41kiSm-,t͞TdIzFí0jsb%4b72& 75mM]3F+% B4d#f4-ں}^(OLNa @XO)_*4əؙ~7Qg~~)5a&B̄-" @*s<4l'k> r|5`qXB2W\As[I"3mV~Hݛաd;sZ#RymwpWKgX}2C*>dڵ8A5KjaR9vr~b$QYԬC4e A,iTes# br mO(7|2|U{ ܑ^\J!H2]"ƀ-=^<o1v"{y%oAXuAQ#cJog ghTʗWoMww՟UGSFU:e~/zi9lNj9'.6!&؈4DhOԵRj~f3]z1_VxC}m~s Pe r'#b6ؼ;1?/5|BMgf-/`<*D==gg).9Fw_#i+÷+xLqWZ5-3?[?4Aiy~Dh8cSA %. lA5A DF[A2ˋeK rd%nw-K'/|[OV^oLeV#f .2"1]#ĸ8 uivntr<^qwo]}z_WKe&ઔ}*wsM2f}~7ncFu{嶬!MҥG Q{AQzUߒ/shڱq<@3R;kdz:b' m M()Ҽ~o_i7̢Wںd&g@VyH\}]MmΚ&+*h֐CimQ";UdPK3'A:)#|9׭z<'4B=YK巗uO) ,H +=IslFPCr6'@GfhQax;痖\:M$_4yyV̒[CoJPeUYQ9F+-v\51`5 8 Q3r;6|wZ(e"w\}[njCszƷ{-O̟Ze~g~[kٮ%9+ #<]QQ&8H͌L;< z^%"SH6<Ws?,?-?0&|<<d:c#k}JI)XRg)Lr6mcŚ2q݂bw-,H}I]~a~^2yNg5]W闟i~UK{9.㴶 3I^qnk]:j!-@BX~&@G'h" P7+ywW5o"kWWO:b@Mo &DK^K>vhJcH d 7!3CQm3;>gi+yuej>bMԿ3H{;JVs%U fPhNoήX;/^XB1&'$F@@#}e8umI05Aq[Ao4kmhZ^D#`,j~gqzhK(Ҏ8〭e`+s4O {yO(j7yS2ZZwe5?,QLֶѪurR5=.k9FTRߐz->Nr˝l=.||tu+&``rQv`ÌGG^r f>EŹQ"ݔJPtɃ=mc0@WtGAr-"|XM5DOy3ɚu6i}4ƻd w@"0sC4F GA5@sqIA܇{ssOP1 c:oo-?.sZ򞍩muq4>)>ϯ0@9WDwn^vxGM)"&:^}w{'gK`VHEqA4ߴ2yx H}y_]r&КytWM/^1lD%i x3tJN;Şy0 8lw2|]so$~!!W|ia|Fy̥[HaYI%XAi [ۈ4T<D*oc8fg #rqKQq'/&>jz{c$PFZZ$lv #q-CM>$";A=vO: VǗ>[e6R8c39F zZ,a L0F<0A,7LAy\h3O0kڽSY테R7dN$(L9c@  If&IZ飨@lJ>OTǙ,|٦/Oε<^Ӭ/mXDYU .[8,cJG9lLU_l_yA΍p5+CZnq%lE+9oh;;Q>\$_MoexZhb 22EڏW~Sy̾m};OQi;[N ?+ ,mPyUsu˖Sa>.ANs :O ~M͓guОK)[H;KʺۖZ3Fʠљ>2#U@76g%R9b$#TF%S\5?mj=/̚o[ ?RiFrFb hN9 ^0>F+;O-H { ;PF*Ǿ?Ɵy 9f1t9By| 8dɻyK&1p.98WSsEcSV:b#gI.MiX~ y[~sd+:2ATFd,!R#"N1M>zh>StK_5]3KNYbދ- ev ?cK1gX'Iγ[W5o0hZޙ淓R!tQb`f\_m~sL>l49S&Ũ>+Cs-<%JEJ.R^m'\3cӏHe]Eq[C;zJ*k6HO Щ ߥw3@fm-jYy?m⪡=cF];Ÿ]3 |ŏǪX?uC7F_L#kh'B4(A ki9qGk`=ZrABg6ЭAc38x?8W,SIŒ>h]3Y~`Gp,v4룿fGLeqDv>v>/冫( i ր\ɯ/0fnigj%[]2~!@zD{G VODG(Xb5FC?>5x;(IqFZ ~ˣz)r_ MGO9l;WI/`z%ϗuY9mQcv%"*Wp:Tu?$O(6 z%[ղkE!HUoCvCn*XR"`I w+ČWsFҙ?dr?"s9G?ZYc1BiRȘHsc$L i*)Ar,|)OF=wnL K{"Q % ̨7n "Hg!dz>],Gɢ@Yxo//%}bv?0Hhؖ.q].d22">,bRDQ<;na9 #>'?""'jF/XO=O2:/-;IAk~[MkfEݬo#ƭ##Qƹ Kyg*ŒVc ~<<;<8CQ9@}I}Q5|$ɣ- KKo $ؗ3u:]tU◇sg3G]lvhBRDXu n:YC׵˛-*U]ZYy^MNQ7<+Cy}BNًڙmh0HИ4MQ+iاW[OH~P_L󿘬Ov4{- qb,<8*O{Z86mOc?饎'hnO ~$Aэr߼?-?? e!_݊Qn!llY sd&2; (<0Zw澡Sl?A mS#h̑^9 qQ΃>y3b'<#?w:<1D O=GoW{nAz|өaiwn[[.Ry^9[s7פfa$jBn.d!MFH 8F&X!F;K9]feyՌ)ƪ0,goz-yOˈnkGqMRKqN]hVuoÐzirj4'O0ǖ1c -?ī 1$\L.ؽCտ//+]yG.OHյPLEuty3_LZܿ˒y1;zD6AW WhЈԼkI4WԒHDBR/!X[dylWฝ۟ɥ҉mO8iߙZm|kå\C}΢fyyLjٱvS'DC5~;,Q6S9]W7s1R-H]Gi{ZLPצb$LysY,MnmGx!d:O `ɭ3ǏL6ϰvΣY.( L O {v~KjAcK<"BE+qFJ?:6 x$83no! wZ/u{-o}yZH"%ݦ-g{Iݝ9pBRBc-ݩSŸJ!<|9m;_t򏕼ݮ:k7@ӭf8%n:|>ya#%XH'؍ndiuQ Ɇ2̥w#{ijp#2(&U1<)7Otzgn5˽v?4jr;x1/ 3?7jO[ŋJ%dbLc9 Q|8SnO"#[~6io,5?. YHaMBcMV܉'pXo]HG[xmHdUd+evEt1S\&vyѾw /?[ޭ֬&B%CjGO]"|7|f^M?V.(O["e^J흶?p L!.z̾$d+bс-4Χ#Z9G[0Eڄ_Fb9|d> Ba. GyBe٘9_#=:a.fK=&]R6I++)Vz؃-_-.S&eU__c{_f=\Z"$q>ƺ{2bI{g6E\N!J( jw뜤;?#R! {(GQ"'v/b@46D6u4,>C ٫:|s/tx`/p[~hkˠxd1^rr)5'Rጥcǘ ZN*0gxbe67sOBp*)׋ka-dzz1)gۢek}KWjVx}uvO g cτGzs|}ow8H$L$ӰIRiGd?S{/֜?#?6/cUKCp V|>ؙ'}Ǐ?)iH5rsP@NDcITś9OўH845U#PA1Omk o؇YvD,銰\.fΚ\ET#P+SSl }0v ?CYm9ZZdL,Lt(J]^ {mmG?B?7;ȟҮ:R:kF$Z(c*~}߃1o,b+hcrF0Pҷ*9{ CQ"Oxch "5?k;f}CKGwąȠffh8k੗A> *B:wKO<\2<3o+ik46yF;i ?IP}FYbDDH2'5͏F\po# ZNC3 MȂۿs̿*t}: -?Uo0j>_\,dh廹 ;HH'. cLrx9F@&>e x.0 ߐ&&1Zn/(iP[#OfnF;wO3rgb[4,G9 2 Lљ2tY%DH |K^yӭ~hk~UҮ|& WޥkaR=[B}F7X!ř9g9Cޤz4&p"1K!˩#- g#_A7^ ßA)hNixN(~R\<1O?v~=^L""|3q7ߕߒ~n<kByo=Kv*iZ5ͫdZMvI|ݧslX,C`L dtG'a< 㜁oh? ߚ7VzojV?׮SwU(䍑&h=8C2ǭ3,c1@T%,B"]8OWvrcx%#F$C׹DyO;]Uy9 ާ|pUfeۤŊ:Z8L%$%q7]nnwlş[Tb_oi4yJPT򽶳jֺin=ܚdI$ؔ7Zr?vngy7rh3 [d9kO+CGO/>ii_%Hb{Xd1?h6âF:@Z=?#PN1.\\4wrwQծnx1bWY-`HˆXPHA,Y09.c1ozrӽ͇c!{w ueԵ_B4nH6ek{HjDji1U c*F1"~N?`i&,H{W@s= cË$f̫2mCLVk=q< =/B.!Ϩ=PLjR7ٚaW8n8NPaٽ^mlrqo0/,Tc?ꝯ3T;]|/fux2 .qs@+)ZtrGG8c2(Ӓ#i/S#0b#O(ʹv{?)#|awߥb49"6e_YPZ K;nr#yA(Og=R v?0VSa.mkWkIgYLՃXb{OhVLTnYfc)Ǚz@u(vtٌ2qP7I_}uc+i嫫N7LMqjQXGʅٙAN{0Q!R~%U|ʹ==憛,0cvhL'_zjd<]Ǧ޽EoOEIxiJLٕP/zvmT0bɔ+5i1\\<#p3vxfD,p\//MzV cX}Ajt:<^]2sK|.6S# czfe0Mtί/D7hW 6dw`5~?<'ⶡR]mT^åڍF*QW۾ЖX3HI}/=3j"d1ca)1y:7M΍s+kQXuǭ<3Ŀ܈Q3B\ȐK,kyxͱ$x'|v3Yc5yxpU F@rn'QԼoUu{ A+t)iQ}%tص2B2L7>콓ͣ28(ȾEyC_w6}N{kK[m7jIEߐ'5LjG$0{}#V{Ɩ̸dkP44W_֫;B7$ї y܉ !3|9fN8{?W  nkӿBwŪ$fl=QI]?#ygJgԵdI5k!nSn ?VP*kLm$"!PX୍49=L;{Kڻ~^ͯ?g%x,Aqk < #z ^L1؝ļǜ9ϑ}oa}rsp4-7B5brnt@*B:S9`BL$CҎNv,'G#bEbֵ uN uey=xnyc3(PiENm{?Jga]3ǎH;Dy&Od趶JW%?ym[*6C,R2W(3:r,b;n%Sc@ty2Il'D*O:wΓV0c:l3^d異ۆj0Fm3V= M7"Om8( 4YHEU<޻63W۽C4UVW~ycQP% ;as"5ׯ)nX=}K27ʙnK cb>@]|ɭ ާ:ύ@C$}޳CR6-obO=?8[7$Ě~b(K)GIDp/n\鳱"eG ?>'!.ر}{+lnivusmy?v]LCZ_\R4r#DwP|s1WDhhF䳣` aLbEcwA:]mS̮i"v`I47Q8w'sG-nGzn/d[{4M FW`3ʇ3;4J+=_d-Gb⿪_ ';T/i~_] eƗyOm9f2cۥ]X?॒dim_>#Uص)Y@~YO1O[L̟(vv3rL``XT|&b$Ga}z7͚,B yзQm7ӖBs Љ"du/ cwȎwnTĄBރRIsEH ݐ䮗Wџ_OAO6BX.q&PkzDuAK6*:<'8GɗhZ>oydaiN4G]~阃GXc] "HO @{>oVS7&#Xǧ]?N=S4##|,h3uR6hdÆA7"|3d82=תR>.69C#!tߖ6 hZ:5k6~ak=柒f4g"2O܁ۻ)t^<9#QSmi+ќqDvDzg@dHxQ@=[&?i}mh4{}:LOV].c6U3ƭ=^g8JDG.GwK;- f.Op`7]tk8jv_yctz-%Ē,Zd`G5 l3Yy؄j;Dc`&;ܯçŌo9Y܎;"nb#gr7 !# l῿Qހ|m?Uck*4IPKc,FSw ZqU%g5WQ Gxm_+vz-PN9g9~{i'QmfLa0Lt+Y+r "{+=C.0&#9.'c3e4$vW_#0_*D4< AZ$Z^YF OJ~]PپlC5a@Tю|ZmDHɌHx_ǿr3$? a!1'cseqB\y}"x=MV-[:Lʐȩ$ŽZfN.W6=ɏs> φ9=GM\c"ǾyڍFC&X b>#IqFVA#/Hg]٣*c,z蝼.Oښyc㇄GgF-;*ߘolɠ_yStBA*\[K;8aG6;AB 'rΣsBxrBF2rHʨyጲiq1?L*^ŷ:O3?кu->cqp`;50Rllv?gxl5+#4ҮѮ5 Rܥj(R:܂rM 1z ݻ4s8NaA//u״|nϞGէG<{xj= ˀȭSy.KV6mcOӴY[Aj%T1Iqŝz9QOO (".>uIG` D#濜o.yDn˽;M4#iӋ˞Sҡm~mDix2#\҉j|X}CӨ˪7"Ayy #8?e#{*2A)Hrk>>4;k{6RE&𐍏~4>p'` '_KOk3iq޹)@y;ꟗ5iLЖ׷QꚌsCf,=(99vޫ5OPG 9\?>yq4.͐D{}[]fWit֋ eQe.3ɞB`t_`͗>2;*</~էb+$ w|9N4wͤyK^G֣ˮm_>FԼYhiWУpꬡ6=uQx3D+x젎c~c凊 R=!/࿿M {5Qo蹑&\ˏlrTȁ`@x4:gaق#y?igŐaqr% ?5%v=η@H>7-6 :Dj\PAis M*vr܆o͖8p'ũe_ ^Z4_h񵓗Ì&I qfc\tMHcIS%uٜ~)Gr"W\l)K]M=@(Vub<9LQ.d`R) N4t.q?OAK=>Un쌶aP7%XPSx!W 81d]SN8c.YQV?@ynSYnqqx|Y{I'`&^nt {qL8H{5i| QvyP\9;K-<7mS7/eپ}Aj"h~&qtR yg}sNHO9Z!yzJW˄_g ^8HW>Cd-$vVg$FǙ;aC%OCs,8`PurV@Rʍ;ǙҶˤ_\j $dj* 彭h $f%_Y{|FOlQ#FUj'?ͺ*^M%pO?գP9?qmϬn#ȉĿ0ǚi>w [+W]8żʟW6#FaH*H <ݙc,Y6QüeBqbA8?Ta,$%FȈ5{Gn?̴_+heܾy?͞ԇOh3Ng^0.#H>T#q߳8e$` 1Q>Z1a GFqv1b^rW/1eߒV/,^w5FhžzֶXeaǓ>>, ? \BlwA<ǿʿ(&?4?0|pkeaxu|I[.USvV3ώ[.T@7m>H!ؑ'|aR~ALk"h[JfB'2"^o.f:`%D3$pw k Ӎ焌IhWϽrmN[m*Oo#x h!B9Uz٩YdȐ9_wçu:Sw{ aw>_y<'}ZN@7S%W"VPrfQGnK1c,DHC GGoݵͅy{]W|D ޛo.ڝˈ sbei%DG]NtF,ı p/7\ KY[.87/4xm7qtW:Ň'Uom{+2Y9*%%EѮ> u>) W;N=FT4y"~^kοOTv?XE]WH,F!(] I=!)"q6+j$(Lx ЎezD7z7mt.F3A(?+yВ@mv:cՑ<1b{_}VQ$dzǓ&_L.,4m^ ۯ4]Eq"BGlc0˦7xP{qBǗ e.b#$[ wdtE}8X:Nrq3-r 7Gb*5'9hQ(A;7ӓgDo7+2kS)}oq6Qo?(S˃j*OI]0_O}K,sC8jx?`O<S=x^Eui5++kd\-tHߥIgGy7Q鶓(&Jj#:5 j0Jꐌ!C@؟rY¶X]!=08JڙL0oMzxH4ʯ.Ko;yo6v ֵ**n%BB( +&ZQ[z˧#ιߪ6q}I/*ƛy>k ! 6!Y+P"P$ ,Y5}C5))r6!~_uIqL"#~n6Y,ɄG+؞VzܩO7WmG}j,ה6HS|XO|A<^πpHБ޽ŋgVEiH,d{kiB" n`42Yt#<|JRoa9 p'jTof@0W&{sW iޠrl?A~IH!:r"[*s ,!Ǩc؆_8Lﳤ//#q 5A΋3C|k3"9~f_QbX##9JxDۉ5(!JܞA,StѕMU1yOHY(skT\7}P_!>;*"d"]5NrXOQ=dR? #3K$q"Sk(9otWO/㛝/ &hH..iq m[j~&%u~WNWd{IWa"@Nra`d\rRI=1!!{²%۫$im]b~E}6O jLC뺁yp~zcdPOIzn*CZ0H,g EO=|\_I|o!~ ҃,9e'͓=. Bw'/!fK-:WS؆A3g؛ _73z vUy.ZrQFjxB$Py|M|]-Tc " ?O; +Af-mgƑ-̅HBjԜn#^˯,x7AɩMbMqfn$Wۣ^ҬGzyTd6< įpWӊIpACVE X#, r _d/fxu}du_LMG"䐧Oo[R?2ȼ[8-lS֊k[g{vjDr) Z'%J7@Tbbj&|߫Dž;U1=_$j:oycȶ_CPfI,tki$6{y UL϶fu0˗8\"}Ǜd`#9q #xocI-ɚ8eԤ ȡd_4F:<ŏw1,Wb(Hgo.u߳?.7FvIeo#! [%YJV4'!92o[!'IǦP*eLk=u&˽BEԼXgA[kϯ]%FXH‰yUWt>!]1249_gHJ#DLR Y'o2GoX.o/-l.?;y/Gu ToPڲEu{w!Hۂ^TٮvLps161p՞dz9욜xeeD$W'bW\k[˟˟/4ZMsW&l!\GVN,Xi#poY ‡gI \"Ec$(zUkvlZ|~^鿕T^ge0zMyzLKBBh\IQ;н}d'&,x`xvVn}7WB^R]z-[KaY]b܉DM+p)B<ccK,rLk~7fl_eLdym 7!@;ߗ'?Z;oRm;ꗺrE*WgP7mĊ +CMme2}zǛxpONWFz-;B;Ȫ(1HE8};x`U,#yMF1`@|iQKfo!b䴢{7C48"N;<۹3HKÏG`ovێoeO.y?S^GȚqy-E,4jъIYB}zPlHuu.{N@n|vgOO.9q}VyR͗Eƻ>]ǓIOob3C "Z|<ƧpO|59 U꽆ݳ f<"l掀s2D/l|^<(u&&ѡoRA y.@韆4Df PQ+ #ϮË$Im.(r/0t7ӭnnx;ܨ ]+֢okgFdJ xߧNet1ɋi#uq;͏u0y˾BcYyYKE̦M3QZ}HGzX3T ]ٺLXca)Jxĉ6LnLvØ^6WdEpCqϑE^^O|<{No]z^_iF$g=zllJa|1]$vNeDj.guGŸ>iƷ{ yZyv [%2XlJ#eힵ$ dS)NRAKY!)CQ@g<W,/H..9{z1>SZL 6^ϲ4gYŀ>e QC=K)u"=c[KCя>y2uC~2GI cb1`? y̺6cX1Ct7"fMe`e=N.l3*f/?QSr=!G#۱?n>/V'(_ɋ|u΂hC$p :A˽êX7QŏQC bEyeߚ[ $FODJ),Riy es޵ظ53] |%#Q3Nh'N"_I{X-CR4pt?1gvFBozw̬QŤ<|4lP21[:!H>>O5/.h:u_2PpǡƐra}`Gܴ i( OjXQO)HtwsyM87z-'v'8n TO@'\{.toe=>vػGA&FWԃU|?帴-2id`ڕ拓/0 uivcu}u4ae=cص<8G~+`mknӖK >q:2WQз]AgJQJBwKM ?][yi]>6-1ZaTEj:geҍ6d D=F]'#Vmn膧7L(fYא-n.<嵍E&!o^|6zh @` Ǜ i$)pԒi%iB]szl!];Eh2s,)ECvGxr✫ɍ8)_L^^=&+-&ZʕwAr?{vn>x2>¼nO+lu0s]H=΋[/Xq1 "M)zQ\+$?c'<eW3.;j -/ZwdJ g$3[a* dzs~[I5_LFdӘ0E,+ O+|S:Yq~QMME9PvD*B acZO$?wK'LW7}uK_R2сӏŸU3v]_vOogԮ|w 퇕WRXmV[_Դi+'@n`n3ۣIx%( #~Aqv6l1#E>t?ܞCΕj>W m[H-CZy.[0gjrRNb#K/pF8}Gkn\_Ho9piZD^u[6ڄu-Vv1O4-"$>x+*wA8{UʹpcFmFAsyɟZ2rJUF>#9K9Q~W+iuM_`ҖH+EEBW$4Z" #1">)F5lctd/3κngXn{ȁ&s3_-iLmta2&"rr5*~ez\Tw=Ņ5x;xfnI=FZY~No0X"q[ԿOw۳В2U2luGzu%I>j<gJDu;yдv Uv7?rcu.݋*݌G$dbDql5~wy~{q+ɺ<]sWФmBÆ*3wS8x6DCvwg,p`{z$gү4_2)=?|g7l47LLftU]]dvgJo0 UKcq(͌Ld 4Zw7i^Ym/e}R`}@˸^DfAR j&5ˎ>RxIoϪO]~Tׯ/uO[X^~L&ҒW`T){rY=4*maaPFxG8v4vڇF\e0':j1z?侽y"եߐ: ǭmk(ZX3uw"HXa@j;G],qlGH=5g'#;< ~O7&{>c>t]cUҬ5_'[H :-EFV ǚBN,s3Q9];C–C  _._t}G,z]hw>IX#EƫdY$ (d+@+XzHaǖX#f1ڌ,{prJyrqȎ+I;s-z?2~]lyKX_^YGna^, E kˑbv:,s"No/_QjrpAO8W"GX]!=ݻMy}299]ne@Hʪ*7|! N f&2?×*_mf뱑?N2QnxΣ>\u^-[5}cm$_1H~\3Krp&M:ZFcw.?VuI<`X﵈zъ9oVkr3}?≏w Byi<8':${= ֮ǖ,丱If}-\,m HV |34& A۠2ɤQ$ogyX?M-UTѴWYyc75ݱ^BӃsHz'Fmzϙ|Y֕,?QW#J&Ek\9cüۭ rdzi{J#_& 'Z$Z}ξu6e++16U*ٱd9~E r !qD"#d^3@^E{FЭݽ*tYfuO׿A0 ?e7g >hfGa.Dzο"JqlƋ=PV NjDxWOpl5X<5e4DIIx[QM؁;vg?Lj?<iWiz2@1g喻y?&]iZjBz-O8)s5"% 9W/ <$2@7Q_O>cִ+85+1}Zws%͌fqU׃5*CJe/r# LhJǤU@}`w_W'Zȝ*^ G,i +,h.<7Ϳa>E0`Elykk j$L]r>c.OuzE31<<ݘ~^ywTּեk\Eos5b;U6P0+_ZLUjJǧLsGVe ~3,G?H"r4;}jPSohDs-f^evL~_cĉeر?1~EGJzl"8bçߕAE!+"=%%Jh VP()5˰c5泉9//1&mbR3ΤqaLϻڊD|(D٩/^slF]']#Ӌ)xVF`{>Xz4df v7G٦{Gk]JؒQ1GHq S(l:TwQut@"4,9(aK4s1#b.Ǿl:9PH#PGO˩ڙ@"\r14r,ȼnZd*?eZ`™Vf{?>.ďtOs3UM8rME+ Drc=lnv-h`@t@κ' Gɶ럙'n<[ EdDڔghhK * Ft]r倎,|p,zJ^܋b8|D.tȿU´v?kv8U ^6 pSzC3.0$H6"GD1._*y. 崁 [Hݗ]5TGr azxO,Sdx}..v[ 4.=]6{yIq!YIV]`ٲsxxe/RϟFC:{)wiBĒɨFmQ-6뻣*@) 8H-0dq(ᐽbf%䚆wte lpTm@n㣈ۓ[K`ôFk~~*j3RI!:c m(%߱FPR>DѷsCχdMrVuc]Fb*PMZ]u;Y.Ziz.QA-#H @ e/3Dc\ˋ"4{wr'| {Pq-օn4XP5.aEj^:)ZOcvufg \xP=;+{6O2(m|K{MGɾvZ\psw10f)n[펊rq\31>v&k#(6,kk*#ؼ-fJ.¡|3}ڽ&"#%P2$c}I8VհyGϕ`NoZ]N;u/R\4+jKA,r:3Ȟ-a N5pGwt.6 0sŨ>uM5'HJy[򬝹Ki㘹z_Gst# Or]ywW]ƕqͤj-F$tp ZgYcj1q"b41i˥R.Ḝ/o|iM7lwuh,}]hJ랙ZrwA }T3f_;ig7i4C~u׊5 k, i 8n ]竖jE 6z[|rfӴe611!}BiG#wO>&k1=AGiu,!TM[tU\Rn5kJѢGX  "Zvv c,qH}@wu8C?[ؤ͵>$F/M!rRb2N` DY#>X e-}R=CFe|$\;txU0ո;*7cJfp _xa `LF g6M[\wȻk&!W<q:ia2̃#`W2w՞1(FF[OO-ϡZww~^%ƛXv1tĊ. UGu jdB9KnRFcpt! l!C\[G֚VXyOIﴍ3+֨ a@ccF.?4Y8x> HVonD U6eq^#{ɿ%yS3yfPU[YM-fC*YOoCYX9+A{]Øˋk&[k ;?I=.Seڤ,;i&zMf@)ŷ'_1Mu9܁NG_~7/ m.Z+:T :@{(a }39<ͪK{\I2M׳xӖV;q=6euəqjE}}w&bBBC4G}Hlkv 5ߓ,<٬G}NmG3H/"Mj-6hLhwP?Hxh~^Ά"`d@116Pvx故]Ko4e]E+iPlʜj@{n0f<6>}ods3 ĢM 1?L_U<hZENo(]z%r; )z'7|"k^OťڑԼ΁ZZmel6ѭu?v# z1$7ꟓ?4G٪R=|@CW;M]9# 9їy|b˓ !ߕcJfA/mQ_˟:_$GkY#+s|VV}#N=z{s>zg.6H|2iFluĔrI'96\bDܟgٕDkkfy`7~_\2=xݪMCX/$Og nRRBՌ)Rܖ4RHA,S]\=82K"%_k6E3_D&m>h*up3]_p%9>?˱ oq$;o{ϼo򶍡[ CRDfVk# \TAm2Qr 2jt1qy!Ϧc4fu1~aGjcMjP -QH8l׍V sXo~ڡ]#s'F"D%(Fc6Z;nq/LФ\I<%Y#Eqsi]eǗ&9.q߭Fu>v}` b#|?w7{!Y{W嶓i̚zDAH՛uZos#;OO*OsUp6bI:UO_\k _gi]VkgbVFnsY?bIGh500cIC N?}#jdgZy?bQjs[!51O"aFTѰ}Pt7$HxghTu;CɒO]޾yP.cyW/iKVT7JuژJ ff!&FQ[fC>I)clq ]`gLRD=mƖ]Ҟ0y Ɠp_QcwmPWj>0ǔbj\_<},1r_ϣ.SyYhx5k%-k?$X$~ U5iDV.\r L㽍6>`Lx'ԉy_{ˣ|7:~<ŚK(\_Q} :r3Qrg867zDX|]K锽̪ l.!"Dczgx|jPK<2~<_h6[I8,E$^"FQ 1iwi&݅:\󎣇 hHaK$ʨy__6-cr%ŌO-J)JS-Q19\k1ǂ|k{˘ߊW6 s=OGd!&_&O4 {:蛟X\[!Y!Z>㉠a?ş mOӿ:7}S!Pf?̳O7yU򞀺V:-No+(ո"5j[ ͷ#1DD75b4޾?b[JDQInZ2LH@;5ٺmd ;'iesS$FM y'-=igks@HFNgbuC Bh愣*KVu,2 JT1&'i]0Fɐww˥re?KVXm-i#ۮs%J*niʭNv 4ZєBr"R {Xϋ` G|wuB?Ca!Le v_py}6f}zA<ĺrͧ=!ty㕕!`[3hvXHI ;'.4Ǐ| ]o|_wo|g^мm q1>dԽ1qS(B|OZE€#~]Ǚyyh=!<6^ito/oa-yOZ%9mxewHh rn12pG1{lb>gJBC/&yD|y4W,W[]=;hHVe*ҜFzF_:LtUH˕Kyy3!g\W巘?7"4-"_ ivL^'$!uwd\ZU#B+UJNHNC.1Hܫ؍&"vQ +,cs!+@jl3ß[r9횩D  kMJN d{JG1]K%9WeZt&]:up~(1 }C_YEɑ,T)`*U$tS9@Ӿ_I6=4wj2GR4`Le5<m[gJǘ;7?"^'y=r!]ov `)|P ݁#}ejsepI+5Ary=L%[j~$ɪO^};^MJf$#6(' #?sΗ7%]я3oܭř\=ojXc#.k!ylGL_0l{$VZ/ M?nCyVqZ9?{Áؒ7MsmSR?ՙ8G[qG{x-o!y"[1/-FVLS.WH0=^So4,#wfYoc71= !_Ȗ4gt1!gq"!ڟ(veke!`HDF<(ߒ̭Gl|uǪX5^olQa0ulr?#P9syDZ.9 ān<⽰hOM awFϣfR 0޵=stG] b~.,hă#c_E~Ӵ^4~& 1c[{~e٩'|sD;\Z];rB4dk㛡;< ~[ݒWxpes\n]dˉ꟔|k"]p|7kf=h;S7/X߄*ʀ&t69$z^v24rۆn!H%O;+f2_?@jI= C6e[^G'{fA,#鏔w-!nR1ff|峼)a]>+7aVvNe̲͌Ӣ=x0hym xmh2Xw!u҃O"ݥ΁ $s&)T)a6Yeb'_p}S _ǒQHq?&mjg=+Jȫ$-&}VHYnKR34qw*NZHI>\pwZ׷fK]W˞^4wRx> B(V;b;to1T׭& f{4;j"YK98hf#S/c[JD zߐ hߛ_:w9~b͗vp[^u+}%3l;S7:]&y2㉀V@_sگ?3ɯCH$--+o+<$w5UJ+Z3{GH0sa{>Dte9T>\J,u?/뫻&%M,qf!PLdDrp|r#ºçA!,SAx@7+/sJzju4 R+C53gfH8Ƶo|vht8\qp󜬋pʆƝ1\GSb)gw>K_-恬3[`iBGk󅆒:~>QLt'Cϛt4~@jB_|8hz)/K Lʣ2I1ujxغ=yg)mjۧK$1L*$aMދ7A7|j;.B-͔"Y]B::f:DhiH_'.X ]Kk]g@uyyTfdҵ]k{WGmKP72CSˎ1w5w-c1~? ƝsZkwa4+O'm%$MqzRҍ؍3hds[ԯcii҈nb\5#ØE䡔7g4,1wyG.6]`8=W}"iwqu[3)eզ25w$ez$Nn^N.92eE* bh xaI҉f.W`p||Q(h6v H;^Ds:绑B&#W1]lHfd f\xFIr7&f,Yڼ:X]۟hi0jL1 DT|k4pwvC,+mY6dx-*j: rIJe%*J\lSyɌzRXoVJx{RґjZ7PֽrBq#{q/|*&2e6}z=nmSͺ5juXeկƨM v΄$+^΋(U-?\&"#~z!n',IhԯFMzrDy2I5 3{׭$cگm~YZ+닍SSeӵXS 1A-d! G*#}_w)4B PO=d:OAwe+,DB伊m@ܝBƹɨL-IHo6Gg FcQ7yĝ#"O5;{TF[]!IBw!Ov͞|?rcq!j& bI^%WTק4ưcѝ̯/3ՒQcGI,Xy; #ֹow=06kOw+y[H1jv9/u;-.k9 ^G ҴU0bymǡkO./1DCL4G`:vv<[^iOGߘ(7q)6Y=MZK >޵봇<@~~^GOm68Wt3>Y,PXz=i{i:4CצG'9\,;ywU^nQ{^!iCH`Um1H;ޘ2D}[Ξj |ߗ^rQ?/c?U] 9sN=7?A+kGo'oxa^sҡӼ>tZ>mow?!Yťͣ'|34?qˉZkZx혤0=)~g>&}&ރe=/(&<[ij{a {ShU?&_^[u+`Kȅ\ץ2PDc0RGFSk+-S6V@9IzTI F9DJ 㙍_Ú+,FүQkԨQQ (ˋ!|ir1sAi,T3w5-Dd9F;?Np#yH!>qSD)rs˳#ru#|Gf3>'?$<~F{Qgs~1Q@>Y$:/wi}Qɱ [GkٸzFIdƫjlϤÞFFwL>ؽ?:ŋiLG_\7>IDa=֛k>w~7Dqxd0+/Җ-%S/9CS "g#Lu"'qgy u\=3~`^;[C,#[Z $Ld3G^K] g=1̈J6h`k;3qk 呮Ф`_i*Ft<\yt$&#*Fݫec8#ſ}^D}~`]iM%6:Ȓ#Jom$DyP5~9 Q0Gm}bbg(csMyv}cJ$s/{ne%7qP@=*JpYJ~1_{Pbp<4=5ǻY!wt;=̖~[A"ܰ{K, |Ym4x(<'(C.AKꔷ<yncSrZ(t͍ʞ`լ&zFukgQS4Q -i PVo1 'jO 0j@ +`o9彝ϑ.h|ZOK>siO-I>,E4*Qf _+ؚ^HATnyg'53|;VN붗ImB%YI77Wwa$R=2X5s`3Jy)c2F0ƫo` N;x<jLW/*_Z6O䟭^cǘ J{m:,V5ZS6( fŌD J7oEdO9:7|.:;Zk|XjM xfv'L5'Q]fEedtOMd ~, ~S,LqA}ea*ôF95CG:aگ ?DMCL0ۙ(aP1ai4jg!-fjW<+R r}K1uWVmJ]N .,95>3Lī"* wmٓ"`ϻ`n͆RRbg}7Ϻ^RK(X##,Dzj7#j5١<G ˻~=ot].WƱʁY}Jń*(OOeJ@,>YLnT#:gA;Xoef2, RҀRA_NK{C4 ґK>c~J~XkzK:DM1)cq?s)Lѓ'p9kw9ec#.@yy.o_h.g5ZGw"ӟ)Bnj Ny54pb,I$wm9X"lPOu-z/;ӳ2w ݞ1C#,O{{073-?|tf~ &4 ,{)K7K!];pNƖڙXOO;d$>ښjfS[4Q"VI( biZgmFRG?ѥ8 [dsN oHЯ5MJIZ(;Ȓ[¨ӌ̤! : 9g1f$mC^ {cT8W~Uyv[o0yX,}Fh }reM$qhv0=90iLI)qKO_0ɐ06])̞bZקiv-*<sL;\@Pe%ޟ vN6&,~DN=ܧX6zGOڲeܽ @'c+K6XvIsbzaOQyϝl^hچ?혲EŌn U>k^gpyo3֚ϗng35Ѥm~'B. ^ H"8d8'rڤ,|ݬiq3(=35Oi.ug4Wh[iUSӯ ֻ~;768Hǃ$nGz]xI y9uzǮc|窓V~ET6qv]*^"z(aC\bx#"󘾗5%=n,{N,kqs,udH ;\Ay+Eyz_j^ytS.Cvì<@{O5m;Sݪ X9#u$KK(TEͻ_yboC׈W ŏ;OdCߣ8u>/C{8;cl.zj?p/CcKke \CfflqC)~c>Oϖ|/-|k]U󎨓6kݡvr eď6$J!FQ'{;6zHdf#Y*z8vDƟ2w/NZ +; zُ1if(qOgW gqz>J{;hԀ-)NlfŎoDy?Pj驭.zX@>4ohj0jxLf{vN<9Hr˪y;PYkGgjzƲ$d*/P~s/'Kl,90ƮH^?$apYxa5 LQ$*G +]ө"OUǐ$k>g`#piJ镉ІHepG>O,gy_S{uXL" HAus%`Վl| HXv=zTtIhкIhgJB+ȀH؎մv޺'Y=Ki ZlU#@aqqNj L"e.w/:&D2:{vG-Ol&PHGߝbNWZ8v͍zO6,X4R0m"Ϻ^0?=v;G]C ) 3gƊA4'lkϪMV?7zJ$oF܎hڜy'q;W w#'C@%^tcs|~Xgȯ%Q ?oZ e|}MgtPQc?ŵWXFQ ~GР5h7V7v7z\!H(!Po a3Ǭ ˋx轮;bQٙC(ۃ 259p?;yۢEEbc4ب@n v͆E9Lvc#.7 @R;uחZԿ]d&q&E+Až%\yn+Cߗd `+iJIȂ*׶qED?1pߜ Ŗ.Lb|wӫԼĚtvɰ59;xϕ@z;Ȉ}tuc2>:f_W jڿ 6{k;%`ֳ 7@UM\͌c9 v>-OGcrWZwqx_y.o1aKC[rȜ.̨DPfUb0cxy#+֙5zt^)F-i#5ji$dJթ0ˈe߻oLa뫑?_hi/(QadKȵ3czn'%FE-AS;3g#INa#s;>b"lsUt{.3y[̾cƉGZ<OZ-jm9;KZyI хR| }3Yd1'pQ;8wkwÌ0b\1Ti9QZ5փgKo"u=$W^xku𧋌us֏O8y_1j>QL:U_!4w%Glep<ޔeb@<#`;l0+xHОdyUUc7 Y[OܲNC#zn

L#\X=,oOE q s$yDW6uyie-G궰P=UvL0Grjeg\o@$@srua ׻w~HhpjǘW7Q]Gu}k-pβ%aZ3@W<ۜË딬xGw_ZA"o'"?!lŏC]&n5 &o(2‘?nvǃX) #>#ɹi5b(}l|>E֦DjbSnY.HA6%^ աPDjcgBt~nE/ Y,v_2;izՌڄv ugd+<~ӂ惦GC2Èo;>󻛬aB[I+5k6M[hRyL/Z; rތw(݅^942N83*Wˑ$NYᓊFY߷N{s`šj (mdT4iIqޭC ((ˊzsA#( w_#C@,n.6vţ5ם~3_ q>cv֣4OY]iMƣQ+oZ]:&+r];ӾbE<0qo]z%3)F2^~Xy͓jڕƏsH=% M\u8js<0JSGg/j8WIQ%i֤}SL; uiYL_fĿ! L[x0Ȼ.җ1ڎP~0nO}/7[7zQشX.Z} n3oD8<}*12?3< 2K'Ͽsi=?s6.sC*<2/Wk`w,3HbFմOqU١J 4ǚ2qk3 X; bGȼ#oFG?h0uȕϩZk`C/q6|[پ1>~qGe]ycOQ f<1)OT/Z0$!yצ@q//X|lV)*YծM.EK&47sG!pdGĸ4X "o=Gɟ67w>~n4Tԭg㴅%EhtkO4ŋ$1cS\2I=^[ۏRg'rʼn?I^ЏHoW܀W,fO$ϑfEݭN5ݏeQ˼$ Sɘ3YPti_smr lV O^2"JCF${ ۘbb؆LrA~Ko斄GIk\b82G]Y-0,ۡ=uj^gXTX%F{`l{+:yܲDҔKiZk"NO7IF^sF)iiu!+iK!;hz'z}’[ȱ@)4;,2þc߷a1φd(+neOg@z Rf&wz}q69,n C<6XhL^}ׇs$v76[uҴޣB:N}a^[CV ;%,-Wg3ȀxO뻵2}|ØsiE2ӴK@.R\݉m™9#d N 2U˿k:]"GS{"q!X/"y4>C+pτ6:Ҟ"c#-p $_/%0]7[N]28p Z\͘K[.u2"$p@}zɞakY\yy.oXĖj hx4ǎU01XqH@yQq"F<Bԯ Z^d(|Jvf=;rFGsa0bQ#݇k6-e%%'ԍjyu4@Aݶ{eryy ߳$o4 . '&kcqe`ܮN\f\# KNy5$og}Zq:V]_p I"A .`UA~Ϩ-b89"=#@4?UtXחd{=\q}3œyA:"1rB sJ\wiw{n]8<{.P˖d~wܳM͢jܷ*2 c2n'E#x&W| [Ku)dYfMR%ԒbQDw AY<>_^y].PF pYmjs$k3?+2k ˞\oG~SXtjc)OW>?"]y7`N46Oc1[~t I;e~?m⹝)1Lcn(_{SVuǔ#]}W_\-k,"+K8 A΋HCjЕ)`-^W<5b9c!`;qd n,y^9A*{pNV6}$6zu&z}+ts=OhmXc~tԴ{xFߊff&?͜.djG˗>kNG%yxR>3iFo/<3mwgc勗zrsq$س,g2]Pi^uZC (;NxRb_v<ŢXܼ2qxi֧jd VhK܆g<@R L.)Dȹo ÊͰE y/bP]_t :F2[ؽosoh8L?[ǷT?-%?U!c oX֟ii[/*?0<|O$E9?\eg&sn>j-0|%~3G9,iBy˞f3e(JB?>WojC{KnXK!Wb>'z}Jj|z6VYUoNsy_|>l6cL?s cL#˓/WM:PMgـ5Ò3e28?%IqFm} 8GmSU-Eiѕ~{Z@r' up1Y\Nkۿ8[ƭѸ<_g+ɆQ]ޒ^#J~|Q,属"&FB8(2/..٫{žйtGҵP၏; |^,[ gѠ>w81gGiÍlIɏi h|S(M74s#pleHo9#JUMoa2(G޹zv~[?lK(o( J ѭ[v^"0Tr h忕u]r l6;q4lI_zī+)[ڇ=LKpdq# .3SCκΟ}Mdt5Ab,^HN2Yۦf|'2wA $=Oa֦j|%@e :ljGn#<%.ow{Z̐~IyKS/>c]cR8bc]`i"Idt`@tduԣ#Nq$_wplu.Fպu{ikp+>̱rbzo}2ˌ#_ 6?M]ovIGQ E{N"ye2%|U$;~AbܤxDz%z\I̬rYdQkla\>"t[|)^_iPA_H73,h~T8p߿>//lxc(De30)i#{MP؆jˎ=DGH5l]QzMl|^ yW/Mqn H-58 Ԓ08'e(OP_ef7y.dՀe=(@Γ1%^ȏ0U|g~}e^N[9%/+~}۱Ƀ:=;רoLǐĞ\X¯sM@-5=/(Q8ʃĬP)qa I?iۨp#<|"QOroIR;^Y.^F`#Q h(s>9'x ȞWwJI,_thfe'[XO.kȊ>|{ML<<2#Nw]9! Lsˡ<)Α>4 شpMcmXn.|wRV Q$Br2;{OMMQ?O J`K!ym.%tʱR!H)Jeܐ!3 Ht/7vF(F 2>%wVe6懘2W)刼Yx9yE]WɖRd5;CIV%{xK4"٣*kf%Q'wk1I{3G׆gow 3D9eņR }69'~ΩI7@4z/zJ!=FGDxqDrUwe Ǯm5hOw5Q>W$ZޅuCamuy=fE8Iʲ1ɖ]~{_"=tY宱oɿs/rkëyD-5\+0@[7̱!&xny<#3n.ť2!7˧D~b萵DicbHA4W=A\팃R=Oj 6AƉw$\FIWWo|bI=K?B?P}2!R;6]G482fIO'G&.Cdc @}5D"<%%⼽Z?L'|mV"d mAyOKKt=e63۽ӝ?e`$qkN2NQU"Ä{H~1<' G,\u#fUYmrx63'3]!?70^.aliGBreN܇BǶ|1BDHyaˋ(Ɍ8cz;a[jzS[w1؆u.:jV ҵny2d92*sv<=_7 vܟ2MuårwXCsJ'֛|>;ӁɊF<ÇwM.Hh.ˈPrԐ OstZ\F0qslB}7"9XX5MqoFv7IsһSrԧ|G.$lMoCeF:)Cz2Gcsw_鳴HZ9w(xCU˟qy`q yˋrO~QuKFZi~_>bh?ywVgC`H3[3L5A71$ <qdw~Qy۾O64ܵҬI%*H7Xgij(5OW] <wFje0MM7MMJ3f8#bϛ{NyDd71% o(ofN}>#{Gb{\~c\ijcy)9'}FO >ס2eU|ɠk t;ZP8=2i%-<4lLb]], YI 09֔eH}B~GtGq|K&d'bцoq\Ye·oɿekvH?>cπ}&Zv,P~W}'ٵ8/.(WaFG_q1G1&5Wo̵@=?c]Sm\90;I4zn#OL~QtOٻ>{ YmF|ϦEBѐs&ܴ&5FVQ<|_;=W̱Z4m>эb}FrUPy ZɟD"hL}+8ke(HBp5c7򭷙 #CDZvy.`}Hm"ƀ;hj, OBC)^o\3>Զ^Z[mSj2z# Wa_={kGSX2[qpt n sc><1]G{u/.i[C5!IdTq,#Wle˘壹5?NIX͟SccGrPj?ɴ^Fsiv断 ulG)*+\Ut8LH*} rwc6~Pu?5K;]=ɳJW}O_xĺCJ@v8ÒBY3d8@f1;g w4GL)D { -SZ7XlDVR(cyHHO1"OM?Qpœ<>^a~S(Rh:SQC!g)P5 wA٭39<~Խ+es$^2!}8q407D1Ϫsd,mKie!i;JR[!FDdyUF'юf19ݪ;Wjz> ?]3%Bǜ$-T6gbPu3G~~FykߕV[BB"K$WY@SN .[~ }sW6].8ݓ@o>%Ww~zt4W\ߴ!ЪҤwcOd>M8oN5loV}uYŇR9Bm< g~ٹ2F⍓[oҟY__\¾6},C >|Z`C%r]gKqXx{|`]~ T3; sz|İ-քO|Vcgax!!p|I{>ryom;@h+)VO@ٗԈe5-V؎\,Q?}8qY3'oeZ9^ٍ@͟3w1ЏY϶L ZҒ{}^íq\-wοS(Iѝ$pcӷ)dQF~ʋDbAsƘQW'q/kqi#?d)m3|X1%:LJV68 1K_{mt?1CYl'fs}}OJeB{;_=ԣiiZm}.5*ApR;݆lO&Q c3'?1d9f!'9}.˰1O-]GFo#: M X-oq{˧uWI/"KH^HJ'B42L ym{{Um|mӭ {nK?P m_O;v718Or)}c'U\\G YM2Sf3oŠȣLj+˨F^v~H){A9ݝjp@{,%h:kůZkŤevr/]cTIFLkAL5Yb6\oo&g> MP'q}~Q%p4wId"+Qu3N5u@-S#]6߿tտ%<{,D]j15H zzS)+& !U\^nYj xPw_>EKO /](eo Bcͷq5eM3;>Ttytޏq&Q-?Y5[}ֳC?^ 1s"W.WEASy /#TC<-@#yW ̿[5 Sgi#nGFj!ɮ\ڭеEwi"xi |xKٷ 怶2#](o%'| 5,rOχoo:*na55qR\I5{Ƙ='qgrכu;[Fȯ̚s\}]M$<Ո4-PO]QUwUه`Cvi͏Wto'~O|k.5- &X⣐@G("߈D8a2qKn<9WGk΀-,Km1F~6 iL3z.5ZYT3^}'O%Puj? z A=I= R">|{KMǏ5T1o ?-yoE_SV9o"Zͷ51g펰V1c'm}ԾDt=!@@b &.뜄hOo[O˯"3s]G_UJxf)8eC8O9A';l+Gw_1n1CfOGњ^7&>;J}o#m/*,}@\jpGg>?7jf 2h_GN< Y%_dJ ~cda=} 8̞^,rhd@H)W$q$(3g$ex*[TǓ!gjZO5KP6rr XA}ó%6Gy?>;WVv WQ;B33Oݧ?켣_{kJ_z^jE)n)wFL{GUi% GQ*5d8F8HiJS:dpC4M;XeEY˗''K,b~~h^Ky]:\MzUy-ԟLwϨ@wD}0N1_ԃ+#ߣ0L@nij$C,}}k4v9]8Y|q2~Gxube0H=fN=L}{/7hrMg+vF§UvC=x,{yh/U#su;- #Z|2, @|32>=M;lwgb7y'YkgO|G]ť#̾N뛴| 7jFAuk)Z: Slv8?$vluuh}QxOCEn1LY! }23"/FxHg21Ixb༁ECnyw'h31߳`,O ;Qq=o=vYX߈"'fkk5{ %l)$$GM_miQ4:p."brvVӣ.<_VyQlbΗO d}ܣ 36]608b|@|eʰ-y'Xݫ zqj9?"?RI h^[2M`*#/v1*($|>jpN?bItk-77wTUQΟ=f Ger?nߥWw t嘷9-wVfe{>^j5>>Imf]/{InTP\|c4ڛ(Ǧ9ܕjVѴkc[q->#{Kô3=2"c~o(@.tA$! PыB1n%HFnˈBnuט4kXŜ'H$rA|epAu캭7$!z#du1>.y,wBk[䐲WP5@P6CKFCk;z]oğ Kzj|ssq7;Z1sq;Pg(qK(}A8]Ԩ*73 m_MtKFc颯Wb#c&FXBpGp (jq#6uiR|?{0j $>~sh=~ц "5+Wے.sX@Zdžc#Gp0ZNc!15y1Y`;SunK0Ⱦz8gGn-nh.V?K׊ K#ZJ[p=g{Tv Bn HwNg_Oi^\p R{rhѬBNgjdzq)9I:G8_2X'ǚ1.ڀ?t9R8f?KT,U[qv#*(1{KvJ6ʹHa'ŗ?ha$X=uS^f[ =&#.H{ϒo Eȫ GQί$Tm}drD(o9I0.}A/i*)Q#FϦ;3&% {?z)fi2x>COҴcyLdޛFu@LNé;3VQr;?-ɓ6,p##̷-:lnn B*U%>BzQ1x{E_V}@/1 ?t"~*u +li ~<.%!r~fK\ɖXĊ"m78j0/=L':1=Hnzi㕡?B`uG8}ovyM&WC y73MN%I3t[?b`w%Gݜmz }ϟu<+7P+! Fv8sx1tA#K,Цכo\og`yu|}kџ%ƣV9yOytL'0ZЂyAҘ[o>[su{2R^$0W ʏi}hXx!|_7Omk?Y Պ$ }K08s1ĈqQ֘f7l/PLn} )q ü~>wv~Oty2} ։^ IfVRִr\;B K'becP~D|.{+o@%O4@;]QɿB7\]3OpK2ǘϏ9|Ԉ$Z_v6#VGߓ3hH3b7_T=;tBy(`3ں23C8ι/ y]ZmY`z")Ppi_Vl#u YB??s_۝O>eo d|6ScXͼSJ}{/fGEرqL#]*':O;_& NUwC|8vj]clZ fzB2D+zgDO]"9Go "=mSY4ݽ#-DM\F9g?^! sN:-&@ΣJ]v@WeV#{ƔŬu[Kmrnb?c;|%pC<ɦ5=MJH TwjSKç]!Q֫zuMKRԙ̇SfYVY$fZgeŗ1"b%f^ſF_0//NA%Ζx< )~Aϸ3o5ڧvdXW W_/uX$<:5b:dvCui J<kNC> ?)%!/NP_6y<2' /jFY9Mf{}.cg4İ41mwnfqqD}zm6&<`'[ܶ@랖7ŏ_}YpONQ\t%p hpIkk;VHq<1j,y110dҌ]FL Bp;g{I6u~&(`L?S8Nil8I\&s\B+ ٯ.ᘖ1>'57:f_ fWI=k\x$"hTHG B+Bvއth/kyh&e:W\ш]I䰘G3HsB\X`; lͶr%Ϩ"eإxI91'o3Yt5?/tCowQWiV03y}.o=S7"R@c>[=#WPM\[[EH@[qQ:d3Uy֗K~8d]_Mr/1,o=KMdͨyN1cOpj'OZETNB{0LJSADx-> +[̳̑y{RT MMAC*ϋǖZĞT4//h FLd |*_kqW֝2oذ~!>w/VyKG&b:"F33O~/$mC~xysShڬDIf6Jþp?+r5PD_͛o_:ʵIԢ0N ?sTu(Ï6+ZSH/^Jȗ sc:D:$e~'y#m矞}3igꖾ^H: nxg{>8F?.#SGf uC:hLbƾ1!I .K|$=.x5MOqKsk#ƤjnOju$~"PNVYÚ_җF2/F]biW`4)I?F9x8K=.^yBҚ3IC`1O u;gs>8,SZ7Ӟ.:>Œ~v=IMof"IHU4r]ċ 4ϗ}D0m 8Oc4ru"l\K_Nso KSM]}™?cKqɇr7?W ^ {Q#X5޻w "b+2s#帏C?c<5ê3<+k3Zbg#ڰ/=o>kη0'xOM GԾ HیRiЕ`D Tu'1zdysƬOrw9{?d]渤Gsq%s1 GRt͏3GB~e1;gm;5aG565q5ơ]喞HuAyi{dS@F)ya܇4VJGe@cN He}b$c.nnt[cV-E?y^?Qr?sO8z喫iMc^Yv\sj:dS2\^ƶVMc~(;G/>\`mFe$/!P#PU[Ο'փ4Ingϕi.H@F~\JZD`[BǓ* IڴmDqā<1΅r'lٲgi܀}U`tɼԽN|l>qS2:s3$8ic9Hk*#,"9]gy<j!Z^s8M^~́On/)0AKe^];fxB%WٙOQ>QZ 3״ҭ`??ؗ2{~/=fқJ'}r"a N1$L|h |+uc8VV#Ȭy$3ivM[_7b6?c=r"瞄-V~G:BE>CdB!#P3#"֯MgGEaڌ/.jxϨ뭴M1(/UtthOhO/B}2ejkL<d7GNDw,dGmn>w3CjOs&ԊH tw.Y54ҞI^sy~'0JDrS_+Q~ޟ#_<;.P7/ӴA}iΧtI eb}U>RKΛ0:=})XJ?cy ,g}>+&/췌凖i 24{_g5C8O|֤2;|Cpke@!~u9ghv)uP G1P<>j~ļv_6t2<Ԧdotz={Ǘ$$DFrZ`ֲftӦ=fdٌ3͋/&[N']9#u·0sz=[WF)j9Qɟ`W柳L'?%DP{^wz3Y? skGNF?R6aGg]~8],'8\7-9j)ϡ//ep#MdTT1h~чi;s9M{ Vm2G=8KԿ/g+;ؾ5@=*E7BD}s2p4I:g Bޓ F#}睊+-n3)ލ1beȯIֵt452[vs5h$ܠJR>vg{{ABSURx"jG,c}7j _/0FЭ0 7Id# 7MǃZ8gc*+q /!_gGUr6-22)G)/{6jwn!N?fC(´sxZodlFl3O-: 9pr[}#ބf|":"Tb4ٖyZOVJNk / |s~i3G/YG)N'ei%~Lձ<{4zAؽI!&5'b5d@򌛡|C#|by;:_g!>] ҇7vp"|+%S\~佨mgirs RP-~Lx_djy4Gm}Hwڞ߂ga<Ĥl^k^.6#F-/ID{]#ԁTyXfv^OY#@;5H1A$OWѭb_SLͼ ,vF81~y@mf>ЈN hwY7&@0o+-m:<c +sO#kTGb~tMJ{D-gf;GtXl/ݿ^or mEj>`f%:џxPUơv3,BPJ^!C/lFF&CO>}U$;'WW .e.vn<(E;M'̖wk:CMY؞L0OS]Z )W-u6)H*TgiO(!/O;;xN{X}eA!a8?}tHV#>sqץJq:--%?Aa4|"?E퉌ť>eFÐ/+zh2ZR2קoi7Eڇ`x%S)+\z=N=F?&i}9"b}LH>f CcNƀӺ\uSӒ~OȾŒp :2#4%43IpD$9$DBB SZ5ә(w{fk;*;3v{/q5 krz?me"9tKka* &i{&~ht1,}͹9[Pge91;=E6FA{MC[ﴲk,s?*|qSc, 8$$sG{47PuaԙJJ'`{OC[ɧ8匡!#_9jz4U=KYM4q۔dz8YhF}[؝cCHwK!?4Y~3F2:$K⡦\=Y"yG4Ԑz̭V3[{>{;d/O/yvyuD@]B'y $֔ :{~Ð,cv?A>aDaYK'OI pke4*D#6bpPF؊͊TAoxyeŎkgLť9۷]sG,߆6v%D{}ri ekqk\^^^ڠ$QJʅh@OL콋n cQڤder<>7hg/enbh,'Pxj( Xڈi?_ٲ,&n ؑOC,3: $cOBwhd/堚J8۷M: GCy)Z-csE@y2w(Xu'jfl5Cpȏ̯?~ӴD1aW'c>Oܾ|xFrdyD)_<ż1zkK.yy_u{t>I^9o%PGod׵u)c`z>cl?%=mO4Fď0*ɲy^OfiZ՜:-<<^4(ydcTZi4ԥ w&r=<_ZaϏ9 OĔT@]yOpDðJk>J>Hk4+ ٍiW.D~ GӴ_|{:]\hMc<9}B C>ۋXA!(w?B;B>^dVO$\gZ1nj /9INӜG)JSAqW?M˿'4+[ RW0<84}s>=Hd C?+<!H9%>`ЗۯW4!ˆ(?#1!+|]f>Cv'? \InnHL[/&M2bWs_'di,_iOd2ɔr1pi4ÖƴU3|?ԠylUlx^OLɾ0q. ҭ ҙᗵ\Fh}ӍMՎQC_~nu?+\.r[:*|>X#ik>qxc}fqx$N>)"ykMs#X2>DӍ&ɞmq$<ZUW@H`h e%}rs>/,gΏ|&kw7ld_B]ԧ/#/~kN]4 ܁GOyt[qSOmb_>3^{乱ar!ǽ㟢Hu2l t Zkyry>Y p?%~h"M7ږ_Bd6ڢӴv?Nxfٽ媔Oug~}6L!,tc<[?$Z=˼ZSIt8\N14>4{SH*he^kݢYg$Bі$| MA?ٳFD?Ul,Sw4_٨v^y(/;z_iR}_O|&gal%:szf?>bWEqpQzm;ڬ݋&D={riD^hN߻"yhweϳrOI1SojkFG ʼZ΀WhMNSFO8;?id|C/"K:ha5^-GZ$V#y_i|xӓ/ˈYkkP_Gs_LrV_5`n}c. A G67i?q3g5j2COe#S`Rbh+ZWڙ x2)z|'diGDN`Sr)s}CGՄ/T~^/j޿.8,nTYWEt'iޣol=0|]K=B9ַ?S!U R*oSoͷ>UZg +]_1"-sq%~Yi|>~/B4ݝ!唲w17y>|8sh8qM " w;NGO!? p5R:k6+,hMTTGa wȾ|ޑv%=@nWk+Cyf{~\s>ys{赿CIhĊ[T- ]u\XTj6ۅgrz|y ~[>I%J/*lAssoɻ&,K~&?-;צ)!k_YURݺQEniӌې>O\9<ǿM.ͦ${#[ Lr_#==q;cxOZ{s6<,׈O? I[iI6;}PcQĿ>~tlB"(Q{Ԟ룭:Hpm?t܎U~)Xnu/Hr h T̝<  .nd*#q4ޛG pDs| //ySU-6*dE̩5,<-O\ٯa3v(N,R/͋>kΠ}+Ȁ[fP"*[bTl4Pq3F_wr};EكKDy'ȾvN?5O6][S,ƑFr2Z|uđ?3/i{7wO~tEF_O8-/C5ϗ,ۋI({Hܱj1.|{b$} qڿ=~&%2D ADnv?x| Uh{mmceh=-UKUO>w<ZgO?3w6Z?iGL&6Ma6$X>q. jFw=jOD@w?h०}>ma)/H&B@/W~s옃-v+#Ŀ'j$y"~)9i|?[->/CON$E:HbyJ-N¹fqxm&3|b1YvǬceۉ$evi>˟!Nj?ʋ1? u&fܓW!qGŪ}ϵ9N58_ֿ5rEk/j3\Q,~@ N]zq?|#hldfѩ>*K/; gLObʴQQ[nϖV&NkKGe>M|X >b٘O[˅λ9&5V)z<-4Wx1 w#8^/U9"3 !{I<\-ι)t>џ1i?Ld# ?[E,oe4cא!na}a`:֞‰-ǖK-$})o)\yRp׶yO`@}JUnա-"{K1[cq2J_uNoOi}q<#-o6埓_9\y{Ζ m$Nom8Lkdvu֧Zxx7fDUK#n{q}b1Bg<z>A|hAj|'s̾ @GDּ{%j>Kn JbGReuF]k ;:fËSC˜#t_>y{Q~pZ_CmYn}+P1eCq9$S=C?a2jg+R6ko{ uXt:#_72X9Ӻ9=A{䮋5/ɏOWT֤p iM[?fiƓK7bO2(HdR!?0Kk^f)f@`3{.2 ~GGc8|_c 4~^͢7l6s? pb:B9$ge=oIp?lܮAOaF_f:8t].iϒl-#Mڇsjq$nL~P|qX#nu?ßlpDyډ~^yt" 3/lima/}k#Gs\|QrAts&6 FWo\J}?ǓܜFLBSg #D#ߦ٤Gbak2Q]d>0vM.In=6ig>6i;ӕUc~ۊlvk˱Kr^pc)5O'?e7a>s=a2'$U*zQ^LPCqOsA eq6?/6)ă L:̅5HyKK"zc seٸ>3"czstijy2F9" {lx ?rUoRy[L#a2X$;xA3eb굚Ѐ2?{dΑcZ_H1 -Wռҥ4åi|M_LpQ}'?IzFZcI(/ȯ#^ZiX9ŗG⸰ŅXçZ ,xrvDb+B2/\1fa^)o-Y>k͢RM\P՞y˿^smrLLҠD1( 4+ѯ\V90'yF {'[ڙ 4D/3{΁//':(׬,|XK[ܺNnRSc7k'bI'"1bI W&nq%#@Ly . Ş[iZ!T\W+Zg}8_)Ϟ4NFłm'Yf|E46sAOYv?L8zA >2jQ f9@Kp|ez=3OֿNyFn@&~YpCڠ;<|j)6P9(BYy_3?oAiN#PG/[`ZF8ge_2ߨ@wsn[S5]fS8KlKtQK?a'\GamSYY^^cs꺃vU2\NHAͮLL@8Єgj']%%Ժ5Ҩ{&5 P}htE}NsahyW~t1ґ~_HҽhvK{5dM|ʏN~^򏛴ɋ?/yzզԴu%KpR-CZIZfV!4pl;CU#9Tc~u}s0j )JQ21#q l%ޓ_4KKۍFP1 ,Xj D֕͆hݫN1xHs{ٝٸ5Z<&ABS<8czttqXJUߐ}0]O=GdB\! Olҋ,onNʲ ۾fi@|?O>#?j[)%ڒY$& HY+d tUԽO8B̢>@+Aទ^)&=S?'-Mb!=-_6kg9ْ.7+ <yxfq[?9Cy, ~@dɾY%tX쭉4-qy3Go^rm^0+vW}ÎRKh4t/gg_hsiu*^>qo񕕸Wl`udX69W5_'4B8rD&@ [u[~_ԯt3U̖~If&귱E c<ò:HX懽ۏ9i(H.BRFmE~pjQWZ;It;R"Cld1u==Ð?Ije"2Ėsʏ9i˨Z-thdKTB|Y"FY?=~Xd16nT %ϗuWwַrwrY=^+%_V6R s1ŎBQ$A@>_oN ; cnD>qy_sϜ˶Q7׼8[dٳV1#I}/xx!?٘0RyKm&]UEt~{!~FA<\ >8{q_NǗ,4MWqh[ &P)R@{w{GyNpsbA?_>٘Q$9DKX2VSU#l~yocF_S#ɼΧM\oGq593dtޝ.1ё'~g-p>m;<ZtV@aTu/s̼Tay {.9CTӼ@N3 ˧[~DִӼaoqͷ9 kR,[O$'33 Lbx8d%t{91^D=;9F6,4r)U4?~egȹB[nKyV8Z25$MC}9 sCfiφ{9?+_sDv7n͎5W G?J;VҼ[[F9)܎E٧t3?֎.?wqd~_LҚmOQ['VNAzRv5ak/'X^SHyǢۙP hNٕ O@9m`:|)R1@17KYִۧFm%[`{'g"q=vU>9e͊GGT_^y&|wy6RKNe\r˖xFT\i}孄}1K$c&+G儞Gm0yʚ95˞gӺmԈT$ŽE Wlٰ̇j r(u7-&{Gi&<> *J`sG>oMOW>\@Zn׶KQ@na1~p}Y~[\<%2O+[ӵbo)U6 8n :: I␜ WM{4 4q/63ޠ8ҴD7Z0F) (:C&R w_y ,]gb1-VFs}ex$F= dTzǖtO/.h,Wr3.rMַu23{Aԛ>.n%cJ7?rOq}ys%u}s#K4BYlsxo/bI"? dijz\.G};i% Y~ UP7#7ݏҕF<ՒB9Gc;o7c8&8_#hs'` Hw4)_ݬ_̽*byQ#PmtH^|z-<8bx6_'GmO쟲;cd˒DD1H ƨx.[3+ڒW%\8-w'aaG!QyҴ4:2O{rKxkD_ڧ{HP~ =㐸_9ѿڼ}הdB7c#7\D|?(q4SUՌҸ{z5!qph ~^|01ˆmw<l $1 xF)D &(J&EԬTk'2EV$mP >i+QÐY/.\|].s_ZN?|i~QWBWՔAoĶ9=fkOIm#yYhJl_?x`d#U)mv6]> RɚC Z]XK56d`pz2ur{u/aR<@A Ew)yU$Vq/ $}ktڬ#4g+dcdJ6;Wڗz kCu[M:EqvwVlafcuk*c ʮ)C\| Ǘ߲Eԏ́;5A_o4A~}yZ˾ki!q3by}Vǔ,˂@, bc_ &O#g{AC&y'?,4̭&y 9 ,s[|_XNjwn4X4qc"f_Lo{A'{CeFXb[ `3~SF/Wm4W"H/L`]ه xbUblN/2 [~g!DZ#)&Z^XGA=me+hcy{O(.Q;13yZMօ>iDfK6ڭڄ-=M7AdBDXer%l̝>,Q"7?#th vaťU#QH )O0z-mk?8i.oMs^֯b[;Kc̚טgӒkKt\Ј('|> 8!#xA$;OC<2Dm q(qK ߽ C*2Igj#VpA>\cJO"G|r"w|7LI*?So$֚qg ݝqZ"I<Nl w'E1Xg( UۼisBZlbI$o9`RH,OBDp%7jQXzoL?kYFe}#;xU#чu##wImh].ot(?Jxp>K"8ጞ{/ WFsLDGooߖ]5ڦrE9}TEj7wlb{Oz@s)+) _.Io{ґT29r,im,I?h WuJU]N59#v>kI7!*w6дEjF2R=:fz=h~ҵ 5kȬZ g`Y<@6nΐ9s;o-?]9'Êc.A/˺\GmI5(Q hв4aZchSG|qx7yϣv<9H!qq}@:|u擡ypyWo>e [~=+M_Fh-z[0,w_NN vSљ_KH&18 J2Vκ]>(?E{H#|RNFVXݒUiSqf0˾K'dLLO3_VzN1}JNZB%Ӥe$GJ;2viO~CǶ^齝ܽ#:gİ뫏4pyL -˞\UFY)|72sUvKغAc|_N^喌)l?:y;Vi4ߞ~zt?EGr[VF"{)? _!OQZ~sLs#hG:c||/$Zww kit[?!Giqi`W G4"Yktvl3H;r>`zn׳ʏ0YRy>=;c--·pߘoo0Akkv{KC!QB Z3 Cg|@X}_I%hHg2iĽpw#cl #?/11^ߗּׂ {@{-6pWb"FL;٫'yPuej?ypFR`Dm!"d@e忒X$\i懝k;"o+d)3<¹j>0\sûo}feyr cS߹a3yȰ_;W$_ _Ǧ@}Z)ږiѲ!r'cB?Q^Mۿx‰b%S| rg|c7vR4 y!ywe< A >^=Ӏ1KrNg)Lvyj6DBcCY4o/j֞tu/5y[#PN#2@$NG7$2{=WH3O(iݗ&FXNjY/$}E=G^0\Kwӭh#8ԍ5DZ2ڰ3ɇxd8wĚ{=f@XpJQZ>vWѴd*[Y%pQ;'xEnk݃ vyne4Ciu򞷦韘Rj[X{%-4r-BNAdML4!L´?2 ).HU)s^F]/U%qVCya]Z ǹS]~E4Q7h\]\YZ[O}z;-:6w&cft5,z9ڍn.?4c2|٬l۔_̟:'ʰE徸vv/&e=saF^^)_}1Ly>KO4LqpK?8]ͩ~[~\<--&?K[RQ*)M͇l~c L/sWQq?]1gjdqfqpG)v7rx枕sRs_yKz4E5և 3K1]̖ZMOHoDN[5_s.1/|ޓߒSkm?3hM$|JiNF=xDdž?FsKq%~VyWySզ*i=HEW׮T:ƩQؑ}O Q0#hB+y}yeFd٦hH8+ v?9i[9o5OeN/,_y]^q}wVS^6hQ}V[/ƽ3M/ z#D$DL~.&l+;2'}DqK甿9?9oʏ5;MZ (yQ7KKCY C„;e5B^$@n7ǧ1#8I5 |yaHђ{qb=Dko?2^~_jI,w9RGtMgh+]@'돜OY۾j*U'Ӗ?K㟿Xsyr[*Zmyv$:m-ŌO*@:^8}DP*; W`{OrGb%O}ncz'os\Eм,wߜrצI5Y4W, `xG8Ӕ(TS1;+QO?N\19Q$cwccƻ&Bc4|8I"M u|;Fxu2I$m( PQTQT87|-:w>Ţ\18qDCozeL:G -HyAXtkFijvANٝF?Hď|?௤x?/Kь?GW~tJgkZChU]DgAb3QdoҴ,\}1h1p?Ό@76y3ipkr\#x>WcG2O']~P~[- ?{Cֳ6z -n[-/'5ޯW! Ȓ!&잀y>a+h4{?(G @<WF7Z?G.+o)amc2VwS;z-7cp_ǖ^W!Hd*rv]|&.#K?7|?W:Cu{ <'=L_GG 6Hb$&^w޹guiκ)&!:-ӕM61H ]4@rm?'4ݧj`y@=|$>x1xyD 2΃GT j vRGa Sl#,}v{/[iJ}Q4$~ky>Y>Io(_ZOh&ԲXt௩"pQ~v'櫄DtG:gETQ(˔{bZ_y t5yO[cP+'y +u4N9Ejv+ E<~>KqCq)g#;;eS_Aq*b~okźͫUyVzmSf8 U_M;g5ُ34d~A7}쮊8J8zq\7?֓˞XQ. WM$OvYn[w!PK[fgǴLtLr46Ag1!U{+zX^U9aa!}2? ѩ\jȵEFU$ҿvN1{gV1f2#@e>߲#'gQY08YQ2<1k_OӼrI>sv֋t ]404WpɝaG`IsHߞPvDar!#00dv81O~ ]ϯ~YpI$א?Q_^0]Rt}xYIL#xnv|> ,9X#},iV~rߙoF5]^yoW!B-ƿ4~Š.yQHB2G)Z}ovcKVg&0;gڌ]On@鏼5θG{=՜Y@b1 Jgm$m|DQy;MZ[b­4* -=uFYV1 QO?>kd졏L=4~Kaoc~mc^fHyRӡY-+S%$@v;}"}|hoqꮷ?Vsi{z<}$qz}\mMa{\\\֒2Z+ί+Ky4 ԐRSZk<%Q#e)$5 =^('OS#<1J\}0vB_rDdU򽆑k bZ^$k-R/FWi*V\:tc攣tꌪ[suznvnKٹxx2cJb'&DUp=lo-avthX22A  H| 4~=~SGw&Žߛ ǵgthS}4k{Q=& 0̏wi$A5[U?{ ]'TOCDFT0Otw2"8<1;pX1~0|B}Z/E8[,P}ys˺6y6>aI"$|$B;_&=u"r؎ϰ->≜r;ǽn[ӵO_uu,~oӅܚpk^0ZY~-:VFe1go[_?)p]5w ӼyLp2:#|@ {+ڟ,4O* Tv|Q$w[U,+xٚ]Z P+C$=0⁇.> 9C@G]n';45=ڲ`~$&9p d8$C3ߗnݢ[]jDm乱/nJFN1Ɓ ΣEUĶ ģDX';C_1cGq /HsV o4_'~[s4gDQ3GhJ /-37Dzn2\MyˠkC۬},b}0G$O(򳵞|okmXe}fK_\:J;guz'viG5=$aDm∟G#]c( L|)H_ Gà;o?-乛L꽭5 }9f=}h1cl<{Q\q܎.Q/(VhdV^X.|M@1HDNek{[MY}o 1%RyK΁z%ovB,//1v?;m2I[{+h@= >nÀ\cyσn{UI, F9>Y%k?zsCs*mzhvC,=s=Sq1`ߴ{"?Ǖ/|}J{S DԉOJiR"5yj[AH`l7 ]zvNH症&0eR5(DV;P3)@Y7·'F">D|5֬d&zNH x(hM G!?2?3kKeE^ogV>.8"##,@GIu^kV\ho:VCl8$&DP"MFC #Y\{H]sS/eSdOF{-S,0z4ޫ֫qZ|gWFWc}αq\A~MYxV9s_gG}G=?i\x##S|k}&yu{5#x(ke)\$ s/ص513d2'W`A  AeϚt?v:t oW:3ePzz}hUydAQ1 79Nu1x,]#azW{uiiuy gxBz҄OpB{A Oش =>'gol,F1DD}-qTQjz]ίOj,I'KtkgWPo,"%5aĽ_IXck3.!} ZgvOAw=?~V<"'1d˶ A)-)XWsPc>bǛ|,m}f[H,4hӭV T>7xG~9]ڧ*#LG}v{#D7cEܝmO[/oJ,jQu/Go夓Jq>]=r.TX8 7evd(12"F5F7>.032N)c 9,ѴF*[ K/lWޒV5ҚXvq8w˂]׾fy6cc3}fZ^l|kp{9iKߊPorAvX:n ?;&Y&Dawz4#:y-(yRRd5QvZJrV7(+j:| Xp؅mF;FG`σکー@ po#{˯)4M3[r홴"qhMgѵ8QR}66=ٚMp#v=KWF]>CDO}cwU|ט*o<ѡۯy~t\T:A,`vXnz{G8>G^Q8מ %Vr[1W" ᔍ9{# .DNGx˸i5k/̤m%բ;TX",=^iXr1!]et8t|\Gb#5:[ߟ_!F\ME<-+* 7r4qmN)JCW#ݷ~j4F9GChi:Uu[_VawA<82y]t4hB-o̷iT}@ܑmkmCg``1#sPx|Ƿ_?r!gϢ{<,wwկ+ꚅf $5n1iG'菾c?щw@e15 yq?"z/.״2jDd=jQ̽md'pWe`k{g7k?#z^tG#Y'z$7 8kUĴ3ʤqwi:_~_2y1/jA053>__{=Tk;X( ($uWf81B$Uu^&Xue,{+zs;=ߘ^_$0'<\VvƅB #6sQ۴r9>[~~O vn 1K?j_d&i2i :-} n|4vgjz{C;q/}Ϛ {sdsccM*q>OhZ%- ~Kz&KvMm"v/Ar뽩KQ9 xl^PZDy~tVUw Sb[vx[{$ \L6n D#&1]v=cˋ{i5tz&)rO!>>.D~gjyjz̰,WQFߊOUawP+W\oe;[KM'^~N^{U_k=ŋ6.Dg0Dxdq!Q[+mi/ kH[NV*j$3;k؞,0GcLln:KRo=GnF>&L% 25_V?18oPؖKv7:]OIj^fk KIx-79$4H_dKcϭX!\\S'zvmSj}ǩ:^Ʉb)J!^g[hSص"s-:rJvW*뱤Pi2FD7>yud8PH8j;Zo,=DHWfٕ]qEglWzŰ!GV,VvFih31~g)W{w}5TUn6]?/fYlu> >"Y^ JUXF (-`>'nf.9'}"X'گj_1X釾]+%cΚVqs-EwJ_:F6,cA,ZyzqW:>yq8vʶnIy\X2FR"$'_LA}>晤\?қkv;׼$E%*# (o9]/Lbrjr%d'~'ngiWY AǂaA; ~M*L?13\[y_Ymy`Ďi-k,=۞΃-_Bp6{bnuڸFW/Iv9hѶ܍> Xw NPZQ9wh7ih(r))>bԕu*ʏIjZ/evWb&@*m\={Y>Az LdqXG.ުGe/$үhj0HFqV;>X4ќIĥ( o߱jzv]AŎ@Oq}"`>^! :B7^!Ik.}廨m[܁k5aeI'fb@w:-6nˇI)JYcg>譀>YF0 >B"<3 QˎSǭhоbݣռmc\Ŧ\+4qX9[FDG3 I=XԘ.[9B@S X'轂;0rhs xCPDe3<&&=i~jyMk/}֯qu=%XB <3_>t$Do6zwc1Q }~Xy^-+ʞT-q*y˚>cD*[YEG,T;#gÞWz3J| 74Xia뮵7Mg]qăгt kA_hdJCogo3lEO-H‰^k/<ğ~ԜI'|~Fi6埞U]Jn Sٝygqv|umsvn#,84g"e[96_=ie=FN"LG:dDtɧɿsʞ\5="Ϳח Nf GOJ[^*$ 2"Fl}%dX|v/ j=&'7Q<'J2v>Gq"M?mkZqjG"^+,~di>Z׼嗸[4+T[3,w $@ ojW'Z1j5!-t oO(vv5D~c@N Yk$/RH [H?$:X>MXr^eLIr%0Gx+7&۽V1\9'׀`3߲~OKϋ8qK|7#_W8w|o̻W̗wV GWvM~ Gk%ĩ 3|_hh{Jq r؞vF >6Y `69b8#oޗIkv37ڜmF`mCp+H<;/X'ůNJ\B\[Q l:yMwogA4<d`@DG&[S '4hH1̥NEx`?,%?Xҡy$.Ii{gz_-=Leb þe?&/f|NDrN8c!NYO htA럚?k5R͞Du{.eK2R)/F֧r+L(鱋$b~Rnh,&P'y 4_$`~Q-hu扵յ wlntpV잚EWqe쯲ك>$JR DqTvX tGM!m#ݗ ~IFR12: 2ڇ3c^ңsgFe-I#*81eǃ6Px9U1_w_NMy"ӴQtJkXi$giA{lX!qGȸ8*w~B?[_HT޽iJwUj֞]g;{G1ŏ&1N]7ϩ>&[WMViW^NlJWwb)FVtÆ&L2luV[]ʶP/4HJ~)؈1>jO6GNyd5R d" p 埐 <'~iectZfuyXv=_m%~loy>J9O'яr}gMZ{[H5H^&u;'AnmRatb8cڌެ2ǎQ);\ϖ>AE'NY?͗>pMZ7HہiBL8o84;Gcdq>'T}H=lZyf{/Ґ ::ݦ}X <=53^jϚ5 2<ޖ:% &«,< O\{=ں|0CF?_ft:8ktD+d 8 LWsO\G/|jڞ%]{7/t! \'q&LffUqF#x|к&5#p0~3sިt䇕|5j?~A`y#^Vm&nmj=Zdh"YZ8r_mj|aA77uMXDx뵝>aey!'X`6ֻp*;ۆ$C5UV6eq~~y2j2F||{2tcG:'栗ߦiX*xVNSmv=f‰ F$)__2̇q:OLJ!2+Iba(KyCO+(]=oR ٕm.rr̔o<Ǟ^6#S7[>byn+sK>]zzn=VNf>dΩt -u ,ʖ$@UiDbq3Gc#rA\c`D(+}yM{\YGzm4:aL-颻q1]<[ =] S'@I3?lW$xg(eκ=^YΌAֵ+^QyamGPEYu7Ӓt1 hے û_4:,LH2aDz/Lvuڽ3cp 4<*E1õGS[zq0Z\8ퟔOVz:I_pbK~yq_O nzvS&a00U|n\9ty#:vOFZJvLf}6զFBz"`vlF9cәDWwgHK?`a'%ꌮ?o]yLϿ\7s~j:_ZXԹ]78-̮O"Ȍ9,aavwnãQ"b$cYWV*R;DԎ% <װ2-I-z}io#-ixdXTut j\*0Ƴ9n"<0Grz_eF. Q#n#}?>}VیΜ$NP1~D G_ʛ]CH@E{h@Z>,H܈"b:gC?8zYxrt?ݑBY|CN<,/mG͖k?_d~:t?>y_0?0,5_-yUnj_0MVJYb9ϥFR ==v}]ˎA8WN٧u_3 9yGOJO8i~GƛOf&}A5g~<ҳ `hw;=y۽q◪Uisw-j_Z'4d'f4XYzϛ&jNBpE" smڝ\^דr7=;2ai{Qi7._ՏyvWZ.럘l[-iV:ơ fZ8crVXaR%PؚxO_Q?pu}K=8aO<>-\}[ӼMXl/B4"Ls14XMRij]ְP[Z!BBj~f02'b(B1-}~r-Ϛ)#pYj=l3nPE7O偰lHu:+A~ekr8;hn Ucj9˔sє/8ZtyBwC!Gp)yRGV{W|wvIv;:ê˟?u+e/`n"@J@ Wgvn\'F>_y &^X3Q_^ZI%<уam"UĦ6`HfZv:?Lo(i0Dcˌ$TMpΏq;/JIafw7wv\6>ժ#MrPTg>E<sGQͫǎ P5=@;b#ŋS8c!$hd hr%(  <|^Ѧ\}ޥne\\bJ#VRw *3;s ڬpxr'@K#`Hi DKU@ڈGsY1bwN2$d8ZC qJXʲʒ( P]> 2~nFZմ{= 0\I6,/p Dh6C)q׾rJG)" \>p,wj&j:^$e=3ϩGqH!"24Xaغ.8KUgؗ!w'u:(jj(\c]Dc {AEI8=O$Ceyo$/lҠFX¬ֳ}MPgǤ1c2#.e<9Y3Q˄ L\72zֱuM{v:xMJy[Ͳ@_Sǫ)h`~ΟǏ~Lzk&\}';16{_#=sp1w;MvԞU7>y7ڞo5H#uɺU `i%}P 5e}i$ 3H@L7A}d\pMF\2J!DFb"F;z|:O^-cV>N{}SU⎳[- 6]x[qڴzIOIc݌3#/ *j_ؽ[Lx.,A@_r5|D>mHL@h4_(ihk٪,j6ij{O1 HQWoagc{' X'3\DՀzQ1&/l_ig[ܬ |ߦ-3nb$p̠7$tz<\21F#/GK<ݟ,nj:$7x<}cB<ϭp"ˣkzj%I[nB82P.4߻g&Ob2c9=*e},O߶z=h<>AdeR|[Y鯼}&/-Zً3]^zяWp*9~|_)QP36"]/=<9^c;_QQOm4\j:ڻxV6`qUF>}慿'SlQ`p\!yeDQ32y?OO׼ZtFkY F¸%Ŗ$BUw:/.1ah"z^^tzênvW\Y! =C3?oI&>]"ݩLÚGpj3d~X-Gkr5{H6s ov?kk}˟|g7GȼK{o%ki&̞E|z4Թڲm0,1`6ߛ!Jl4 </c^qٖf1 d8G'M>KymYث\Wr#2UA͎˘'<́湚z`N ]HF.Q=yuJlB~ZW}[H-/eLB~tv Tm4 Ov>O7hʢ61?w mJA?DWĻի\ﴸ6|_WW39]K=?)MEzΓva{Fť6eiT3ýc=&vGuc7~_gr"%pmG X!4Ѵ>T>iB]4'nd.,J) E~&̞ifc@ϯ/7YW`=8^)$o/芺#MkyȖ§DnaάuM+[(3q1%C{zl#٬+ܜ"=\# R΋?-<>]o.]0/&jbڶ5FJu^ƈt??WWhH$R?|m6Ky]bjR܎jIiR;=x}1mvX 䔥/s4F/||sd#$E-+{y-vda v|JV]x2J#ܑ2f?TxcCӹdԿ8?0--b.|<滞[g=Cs#OU9e=h|mlG{ â0GfyƆ'ż levΧ>!$b1'޹du_C>av5.ڝz;[ImE2 WVn88SӋ+mFd"]o|_ZO裧F"1#a\@4Ղ9*wUmIq,C^#OZotvˤmŷ}'^?/,ly/~[%州 FI8o._ė2BD(Ol)~GWS#8J>Q'1K.^?yMs:ηojz5ĿQcɌ kI <1iVFu=22;˞_>CaԀo>vgQ 0=|_%YnINSֵ9]с T:@zc/V#+Ւ"|?el~mvj oPKyf˷V#;Vk@Y*F8~vu87@Qsa=@}U3ȞWVqL?g55[Zñc_lgxeHTNk }Y ^[_MqjWʳzL<ܓ-Hu+t'Or5qϡb) 4W4^"a mOA6EϫzuzҀnI3yȧ]8w?W6i#B'Z8X(Huvun3O9 DHM?3>B |+^K{B¥ C(n̎;8ĉc+ s|&5AUFW*_:N [5;G5_^D E1NjQ3 D{!O8񋐻IGʟ^-4mVkk =rk#M3^pʄ #lXSLh;z)xMcH|u>![nH|a_+ VM-b8GmȷJfvogIIM=I>tzW'ALY2ۆ1 8ϝtzO䦅|ۯ8SZ~姒ntb;`&^,D IaOqc+5Ga]  !v|۟Uo?)k>[W9a!5qtGK Dȍ-4<}3Zbҵ0N}HᾱhƠhKF>%ME ؁U:mI wOcKGe~` }zynŢذ2= qn~XgC>ˏ}<:cc $|e+OhP _ !s{ߒ#嫫K;^dB4h8VOȜ "ljYُi0vMvv&8\25aMgGԼ^*od4HE_h=F[[k^iS>cG07F6G*== :Lq3# pn3[p= ]:=G0x~tU܀<\,g]I4wlј^ Uev?1{G5gWRezh 0l(]|gY=O˛6=VL&}2Dn8ע@ozߓ/5OYڝs[Xi.ݠYTCWgٞSĿbu}'i3OM<hr<@*7{W ~~533L_3hqnͨDRM0ΪLiN,39JF/s֎r{7]?RF98ÖÒ QǛ/G˚]W:5M6BDf(}Ӵ' ǒFQ; ~ۉc9XǾ2]_ u?3\`3Zt(%;94.!F ?hiFH @pxO|#잯]a&7qĈ"?3kZmc\{nD%0ZMEzcZDG ?kq| =q>$8'iĒ#"[y?PԮ%-/-"K8ޣkdH)f;E|Lw4PNm;Gp1 Wy{7얳 NJ2& $6k=y侢?,VKȍ31!&Or-e#͜>o(tɑюlmΒ͋׌|Z]O]- <$'FC߆T7G0yzV^y}_u[ΒЀJBV9f %6 _B:)z];aoA9rp;!. Iei.e^N,ҹܴ9,ƾ'=8DP~mrr呔Rmy7Ⱦl4_&z̚"i* XחSr/*&##Mt̿ [_?QE~-yR[0ii{uJOw/4>&ikK<X5~g/˫˿_ϞO/4iWA8t]Y#) ѹN}I+3J4 Q=m}Gf%#H<\KH{cԓwDP?>4KDQ~]򿘼۫EyWB)4:Q]cT{&UN/$w;MojˇKϼ>o4]Γ~p~c?*FVfi޽bJ1`"\Zw@im@ߒZ60/-5(O1y]ԑ$Lf]~V0m> c'DGʏYKq_1, ֋/VX`Q/0nEWf<12w3#m޿ hq(p?f wzމծ#>܈CE4r(xbC%@w||3㾛Q#G:sH׼yʺ z}--ek@쒐%cZVsCǏVs"7zΛuq> nD oWF4{J4ˋżޚ1eG3j8"[q pMvs|)a^y\FdM+˺u:7E Fڑݺ mƳf0H'wZ}$t†>G ]G]t3A =`˗>q6$=8=qԳ.y|^4$ l>6ѓx =,&AyK-o[w˗QJJyF[nLst`N܎݆X/Eu$K(_~di ѷBoO4dΏ X}*Q$ ~nߔZPsv&Oj8-۝J OƅYV JŝAqkI [HIS9.b'|}"4YcT|FeܔjLd)kۙwP:DZg k9j3٦r{JG]"*SKu뺯m(i:*5 n"ъXZ?AmS?2N~OˍBt]5)a;oZZT!e3r9L_7C,`zh_c4b e8'Mtl7מrS' *B##$w9 5:}Re@lkj:Ye'Gw󗚵} .{=EgZFc8S 3lCW)fޫ^,ᯖI{#2|< .g2HIhcPm s wοh`m< <{Vޑ6,W>YL.Ɨ=4l/K 0:c$[i %Kdn=i21]@Z];a`Q+wU򦝦j:PXnd8x5$n2j90c0 ʋbsi[ebEv=f6s1"s{]7R5qZnZ$ݞ&8x3Qm6^ poL1-{t_s|cYn4)LjhB{99ۙ*D8;2&0"˾[l oeD~"h;[#6ϼ1coց(=Zkcm1ȰKY$a]Wgi̽y۵ݦ5G<$Y͒(IRUwa)M鞽#>i!>o?|#/@U} VIP$H#v6 :ڢ jKG\qԮ Iw]KYxF?c ><0],52Z[;)}X.Y窩U T\{Up.B8s$H}[=kQݫQ2n c˗Vgo#ky_YծE;k9,G)%LDj60=#h#M%cI}oWȐrH[6o=_~oVo {VrŨ ]^2U.~(ZI#jgc, B` ≉؉Gqy)hZ2Kdqt^q~Yեm.Q[ӥm׶cPkPPG{5ؽht102'MϤ O=&`H49y+Ϻd:e+ۋ+9` P9.Ы Pf[d5x;߆~}v|;Bgÿ;Ѡks>h^5t%B<3Rp)(1PNzlm6G)$e&7>!4@߂*gڍ6\Q ߹]o6㷛#4+_sRмJ-s-a,p$ y{I kW*X9EIXa(dVX$J7SQڜAzxE׆FksUfjMzNдAm6;@ed/(rS<۠^wTKU $ *gVBACLotZC4j\>γO,d%*O?8u0^w m<8B֯C xxCeixS8 g!:mYJH |C;?0Ȱ[{Y7OJk>bBRuÝHy_fd( NR^iSkrڬa;Ah=GKx <B>L(H^t;B2qE y{Z?cZC:^&bx$:he'hWO'#gY,P@O\vx&scuy ߳?5pv>b6ǪWF[Mn+2]PeygA54[EaP-^Ydfb(H?M_z)>[ILJMEAtRx.#FWkMv܌j4LL=9k? 仏<%%@e E2&bSBi^SH5 wU|Vzz kw [ּ6s u2X人xב3w쮃US^ ĤNg6^iu<|r/e2=<0ʥDbv_NU͞j?75M%i*8[I'흱NLc1}K􏶟=FL92bb7Mo<2O-yROygqL~is9=+]~j5~w?~_vof#9yF1DcɇG[Zđ"DK*Iz=LHr{Ě@^荂n67z?ԴY.dFBA^anKVL<3P/dv6ݡNJ_2!cӞݴo2ie=K.*wsv48"Rw0R#Չ-'Avt" E}#%T5~^&mljG rnYޘ94,4gZx4$ok?ٹ80?`yW\H84;.X~,SׂEhaKGnD| c>kGC09xߐ;mH{MĈh9ۂë:wZFu:cZH׳}>>_3ۅۙY$tC77O^01Q)F_9z/7=y9Gl~`*eW,TS}s͵%wJ{㙘?͈mȯ,f-4PBt]+K.}2f4gzE 3zλ2u 漕m]$pVz r8ɘ$'<6VޑYGwϦ_7;zҖHE4UD4=aΔz#[?=*#~_iR,g5xt[PM(X/FX!<5ib4Rȉ?hc8WV}KZZ"[7r->sS70G =|2 1g/[ҕ Y "r <߈OUl4ڜO3u=1G m{.aZ6 ꖬO?RFuz}~,Ph}ed$7?w fdrwuin͹9F ^~5)햝,ZQu!+IG*x祉b1 ܕߥxf0DuOls{ڷz.Qo4SY5J8>ܽ=8ǿ}j_Os6@O㱊IC>ہ300fM0۪,@O垡tO$\+N^[qwUCN#:<&Z a_bCks\Y]|ҁ1Pu !v(/M~:,L3}F;u4X~G?2GO&:/Q@;ҟFk4bs [{;yUgqZzrJ+$6uppr_coj #9E?@~)t4#,SfvԔ3qG92!-e, .qPI52pO /"!'FjFTv ޛrr9~ƨ˄s{K5?U;cZ+<f¼{_,ҞBH,:X 0'%>:d(ut{w=?@## 3&xoN׵Lέ%W7 G$Ό?%hxv=gA١R{F>o^XΤ9Hx!g_1WkR2D`8'H"X5c[Ūd)t=×'~1Ǹ>CrXX_~T]X\Awt1=FADǏi7914Az=g󍼻whֻIAC<j@сһocG%hϏXcA&I|x]L7#yջ|2gXc<"#~ǜ|* _'hO| Mb ^בlXי$O1?'gǏGP&+ggrd4۹wC*}\O׿yv}?p'Co'R~#"ufxgyB{Jmcscd:a͆ CAodVNǖgg \gI"ɤ&)Ty|83xOqު 뽟 ɦ&pd>}wEEڀa (q}O +>}=o~޵R\rα:Ll*IxڲAf6;zeqW"8(ܡv| &>\'?ZCK'w6}Fy!//-JmX us4g3*?:MV&9pe>-sqmgXڞ\\v d`K?5kĊPjA瑜2Jqu=tZLtH˾/7XfV4QҰKr#;J+5 =q_DF:=9@ m@LzG-W] $Wə2 7,rHoLǚ]i"? <';|p~'nj4,p9##߉N[I)$emɰs"w-7 |}M 93=1vhvl_Z>n@bܡ.[PPܞ{yODpw\J=$VԆ{85SM](."w"~${qa f P"e]uO.uK=ZIO7Y?^շYnT$ڍ45{b߲Dg9U* 2`n?/fJCKà $ K,ta1&X|;2֗*_Ϧ,˦ {iq taxث5vY=nNc1>ꗖgj'}ŎZec1+1/@Wt?a`eyXDf+շ<[O[ ").~Zu'yAʯ$0QōՏ.\Ec.ؚR9dWLgd1fDlqs>B;OgO&|^ q9! < >y_Hnt.O3Dz+p[؇hPxgV%‘]iv#;DZ\@{gj1>-K$S=GF\;],5a񸱶ԴU :D2X=~wzcyXy;DyD HnHTv,v W5pI9p2?뿗_uƿ[L<ݴ:sxcQ+Z:GSڹ( L#T/}d{=fZA?Θ:>wIͽon@+Yh{Vsrc(~s⎘O!FkYf7=5`ɐ.;2rFWgB~R]z0y*S֭KK.'D$Yjn P/nkg9e)@?a,C%oP#?QؒX?j֐\w߷L6}*x8 oוDXu]] )&PE90OK'|ƻZIa gïGnksXHӴ{;0O~.^\v_Sl; Dc rW_k>;/إ2AwM-)mAib>?kG Lhrԟ{Oei4]*{hq,NE/('Zs+G~l{LH䌢/_è>X׿20$R6KySnه,ʥ k\iA]=;2djw:}=Μן]N[^$( ]^7?Nmh{lɝ䩭Ͽ = }kiS儚M ^@Qq|z(օGd:JZU\=WjzgM":G/cqz˺;9Facwxދ\TWaBOZW=X%y3 >a;mE?ºŴv[Gޠe4Q ژ6 H} 4 vvoCiK+".)-% T &zXb&c0$ww9u`JfHެHRԮ}P(C)."nTR2~\ 9vxo'w^LNiZܺƵ_Xڙ䏄<fI3aG?V㘰6~~\:R?.̷zou_+2ʱf,#(ېv5o߹C$:?,-KKzd/L#3|sDzwشAGpo:(*C.F5Aԕ7ݫG0.l7Z2~Sh:iF͂=z9ќ^ݻrÊg qu<7~l~ByT5'K6Aåڬ5y-> „AϹ꽔,ě9{.>uK?M$s1$HXVmF(\Jrr=3RI^s5 o˫>;$u[=K J%m9N] ܊|o&yV1yhٴJ^.dfHqI%AL 5q5K.d+j\G ޛ $t̢ pCbuՖ9N"$^܏s%]SiFGO>Ͽ.B[QX IjM9.>obpqR|yqOr#qʿB_GyKkmu,FHKpFdlGPt31)@lB}K#A9?2yk͚~il zd-keaq"7R+ 3uOU }Gۺ,z=`N$DNDxF9Lqp.F%6>[5-&r75a&tA^vQVnEwtQOqb&#H˗@gzhr$ʪuUm|6WjIo-֟o?sjDssKv̲"I1Fq316pQoqM|2+:'o}O44f/nGk^/aӦa#zlaA6##+h`:i>4b$` N1<]ǽN16\"Xɠe$cq͜y͚ZyW<{yOI(^*hs/I#AT'ad9t?DU3MRKyjJq軂dLn+uʻ/'_z}ey?z鐤͹/SީFux{O6.Rwt_$<|6 9o!W ITm_|~cZ'oy{=L9L#(rs֙|.)ݘyX~o4% Ԡ%n5Ce 7G ;*B4aۮk;_=s?+|o3u{mG n pETJA]Ǐ@}8@|ןoiO&_:RTHr0LB:,8#爩!}8|p򭟙4M*/#E][K9␭LcyM%;ЍŽ !ۨ}'ٌuv#yߙæ}m[^S`E!WHU*F{bpCNN);ՁP$+\O]90Y7 '_<y@uk@e_9y|SAc-n.lgopԒ ،F#L+( ^_(dqp1 O?$/.cޡo]TMɺx0aA#"{%< d e_TF}w Xc N \g= Wy|]\[p^]*Tb#+>}y(5 XOsЬ@QqM&0cG?Cw]f'F'|r8OX%ó/,|7ZZz+_ذS~=fb/z-nf뀆K~|%V> {Bih֮,$[P/T{K^&-|C=~>FoM~NIw*S˺Vqqg.>VO lDNsyY3HG1scO2K e!ʥ( 9si~gv {İ(%@G)(߄ٺkXS5jx'(I__^J& A&TT"'YV"#0%|'i}ŦX3Lga"kh7$to)v~ ;W,pg@x|2a'f$x@݌?*Wѵ9]DY,֍P 7J0)Chgm&!pؕ1{Sl=D.0qd(eR* IEYPDg$ӤicBH#W%2~{:Yaɏ ߄s WFP"MuݽEUe*+؎L}2pIB%P@z^y}9zאPd.ŬVVXKlvP,cԡS99>{D yj?,!! __G0Liu: 򏏟" )#,LL\=򡱖 EKxԂ!vUЅn${̴]fHț#!/Fkefpk}c_ Oqei:>tR[Nk2q > Y dcO![ߨsqX{9=22hǎ5" e.y>/C;^]Ԥ7Wq\/d C\R2܀ڃ돲;*?gcȝ)@ԇ syqyvh7mc)6,DDOĆ)$89t7yT59^:Ƶbcs=L46. )¯lt~cMszc9B=N_خȞSO$bhЊKy]B6hYZƨcA~(ݑiqrGO.y'nHcr-8.='7f{K_Pӣ{B;آ[gE 7f>{^r'm/5qN>~}Ş3K:.qqǨ2^yߛΚǚm4 mX?kib*Ȓv5g?Pi9 29G `?'[@>2>P1^E ڧ8%Goqj>W,GtO4mɛDDs-,}Hw>A=M3ØBSpJRgmuO3q=_WLڮ\j7^LXTm< cH/Rk9xXjͧ,.=BfMY IrHWb5Py=+PV콖N< >O$NՠǏ,^z(? 4jz5C83y9߉ BU5i//-b~] om4;α]r,O#zf<5B"0G܂yHog?>Jo_'fRRYRqdI&CL**u/Q瘌; n\ᅎ7˞Iд j]XXKymI+=VFe&o{2r&_~YsH3o@ݼ{mK}Ĝ9yqrYnjadYUw;Cl,SMw~{gVM^yNh Y#E\w9܇GdzzOTG?'89{?4W^%ӝHmJ%fWfzDiߍ (z巕kznu~V))nYJ9ȨRd $n y_jzOr|<ǩjet2HUZ|F&Fwy#36IufluY'PGC_̉c~DR o0re#Jw,ҴvL={OU  XǙ[Ws?:ֱZ~jdqv~kawWlڃ_^YD&{t`fQt3JD0Āka. ;]kY_mY! VC)fb )œT2Zדu9N=& '//1<]cyW"ϗ 0Hy׋8`ۊWƜbH {>W/0ڷƹK5y̶P;˚E- "HbỲ¤qܞ dYߐ6?[i]&XIާ(#EH}2n-Uӭ۵rkI|/uE{e=wį2%s2b0G+Eaf V-*Y#?eJp˹ߘ{_yZ;GgkVx 㽯q?s{?#^=$Y-8J*?x#G9m_?G<˧VuFyV{* X1'YLƣ^sWO̟Y?%^Ky"Ӏ@iHZ Peϸw|qΡa3B8*]F^@Al0.xbAOҿWO[ڶ_hLVrYDRåg r7 R4,Qߩ`fnү̏˟kwg`?߽as!<$tv<`aG$.) !A-ABB ճІmfM.bL|@ڻ?CQ60̚[^a֬3N#9 S6C;bm&EduEH*~>9ډOO2aHA7:w`xw*5`Ͽzߗ&Ykz4Vywݛ(&@w×rO"`s리~(Kx~w}z&s^%]3Tl4WGGu$oմ?џj5zP.RgqZ7ݝ>,œ0H"t}79/y^Jֵ`<;j] LjMzU-<@|v10/󏟓Wa2vVMZ=ޕr=3FGSJU=i]_O˝Z}JHiZV3½aړhmr}?ފ w厣Oռylu +&V_Z;sT9ǦËBЎC|ﴴq|o#'*jIKmwӜ % ) KOQty4~Ikqoy?8X3]@j6xa)`!/;3H,yܳ!ߧgF_TBs{W~9{{EB2|ŎLI?{oḴ[hZX8~̀#f_e{CG?7C`y;oIlI?c^]Vkm*_F?TQ@S]n >c?{ƫU }!_ՊZ5䧃[׽Z2E=霾 v;1f?wJD#vN9?Ϗ48Ξš_iڇ+-1Yh-FH~ЮsҚ% ݞIłPXH)*dI6z奞`T3FPA9(gDx#3ɆF32H Dԣ(J2Kռu/,_t-/S&HHB)SXA1`ǨŪ͆<=>Ld]p3-ynyoL}KX_ʟƥPp;Ӡ[`vA<P;JX||8g|CeOϴ!9q GsHÊp\"2XGgKMN$+5(8r??{ǫ3#HI -i Hߘ{IO%!2FP 'XyqUڕ{2j\IP M()){AX .Br٩x$#y'r}}5Ƒˏп+5O>yCVkǤ<{$-ۅUcgbbfڽ]9rM+応_"ɶھm,:BW_Jފ8MDZ{7FfDY=B}-A@;ׯy[ssoMY3jK7,nN 5f/d'<)/Gϒ30|?+Gyʚi>{,,HX߃E0y %w6lbHms_ڧZ3Gk J( o``.O?3iz6Q'5h!_u]c2"w,Rx"H}"yVw/>8֫2]If*e"bW')Î0Kf2X;t9Ȑ+0f]זcr#(m?YXRT.e-EhK e4#/|ӪA:ߙBYIOv9BW`,B盉hաoX1AHZޙ(weʟW?v2yJ/s}i3T7?^x9 򁐑|@yrW[ΚGP+/,B3-c8R}p@.]}_W*ߗĵO/MkV5_-[Kw jIj$[ftהK`Ƣ,zt%]N(^^)`=7Fx5C4wzи4&QXQ.j\,pQ+4Hfn,5ssdI .SCm [tJz>T{V:xwPz=/b9H}}Y򅔢d0tbpMEђ$R5zU޹dW]9;|6g~~-[~vfVzG,5 粞C)5h[C"W@6QO4 }q9cZ ^GȼCR{V҄ۘcV]$Es`^aqki~y=+K\ C 2xVMIuy,!Y\M)%ߴ it2ɓ$pcOg͏E v$~^VƧ{a3 kYI m*_ij53<\fQ1"f 9\`'^G/Ul+}ɩY^6ߦt>O]xeu,D3gI7e 3w<>`5c$GGмxUu%bf]a>4:/m8H>?m.Ηz4̷Zg2FkBͬHwcn. dX5Fٙ$K[7ږ9>nT9s%ܐI /VAq K vv \>0>y'4{/)[I2aԭ|T^A9P⇖f2)m>n׶H=K]t;Od1K'J,V 2b-u:%䷖0o9y~V6/yơ6!HSޙ-< G"?Il$?#5=" [p^p(nu=J{Q[Mm8#ƻe2؊r9T>Ľ5[#iCSQ亅*mZL8Y&Sz]Qf8 I7m眴o1Y\j6^i\Ekqp.0ʓ*1 y cf:!M嵾vFiTG?1O!έmo 4j~\곳"] >ef1/"nr+67iE * I5<&+#A$;u2ş$'Ђ?cϋ5Yht~JK՗4q vR)˗l}ف94'${3+8jqq}Ca$L>_[24T i;30K$wcqS64zHJXbD6מdEi%xM>9D|yG}͢?c'K 䙏+r|'AS, 6*U>.^,mmwۛ-Ndz,8vN"ƕ=[ .roKe$xpQߡ>sa _Hio욨zd?S XF/ǂ_acZm.|ϫ0^c7[Ggb#%O&{{3<6ln)A>)(Tv_3~x[^@.C i bPbQЙ}lc8F#S4AH_ɽjZF[ ăgiLz'3p.F|43j$i,1.`edbֹj!!Xn5fy}39gM/D_hZt!gj(jgGY?xBRQpv屒DppǼ0Ũy//14w1":鞱IO>}ݝ9?Z]ȞUY-QO"ǎk!ٚA?Ktc*?0|;ݧ5Rierq@P \=qŖrW7Eju+7ORose-ProPhoto.jpg000066400000000000000000006400311415770645300400250ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d@ExifII* z (1,2; i\NIKON CORPORATIONNIKON D7000Adobe Photoshop Lightroom 6.5.1 (Macintosh)2016:06:01 23:52:51Tim Horton%"'d00230    10104   1&2.4N 2013:10:26 13:51:552013:10:26 13:51:55`@B53@B ^ 3017241^ ^   35.0 mm f/1.4(<HH          Adobed!1"AQ2aq#BR$br34Sc!1"2ABQRbar#q3CsS ?b3 1@(b P1@(y1@)@1@((Pb PbCPг31@1@(b Pb P1@(y1@(1@(P1@ѵb3 1@(b Pb P1@(1@(b<P(1@(PP PҶb# ((P1@(b<b PP<8@B56Q#+ 矐Yv-/ۧ eO,oimAqMc)FӟAOڵПs=nH^KbA1@(P1@(ӷ# 1@(b P1@((b PR۞ӥi͛0fX[W>wM_b|3q0kxXADe{Vr 7 y[ڴ%'YmRi,^)T~<(b<Թb# 1@(b P1@(n-䗮-)KlYtbJIOI|,+)jSGgǗ?n'e|ՖٝMmq tv_ ,hucv-(?ÚT׮;[ȱiG/u1CV'[N#}i?}UcO vvEGoqQy:b7:nL[j_2.if%ىbO'O^UYUZ6^58yInlཻxaIE*Q\ZX4]:0ryKa$٭$y)_#yfڝ>3lhcCb Pּb1@1@(P(1@ P ]Nj2EXfeWS$O\ͯ;^=kнÏ%R*j} js1Qm :gؽrU!cڨ%~V'԰rq~.W|ci]G B.#"r&!>I.-:{?wjVIm[&C 6pAc,,9z= $LT^IfX4zQ>:\~-ȎHO1v(Ѝ<8ZG-햡vUhk`((׽ 1@((m1@(>b1q0.=71T1:dݨr"eZ>>vv O_L,zmo; a:ޤ~5k 2&sso-܍:LfCʓPJjI;OI5Y-nbzjc'Щ)gMݔ MGΡ\?ܪWיicŝ8x=FuQOy֏>yuqjC's<#Vf-jlEhO^.eb^6S_ҵw *&9ǵrqVBwX D38q}~uZrRNqo]P)*˻9QW4e Oї/,laVvƬV`nrf{[ I r96fhש9%F>Lf 8={?hvjH%E N 8F"u>[lR>ij%u]g9HqyT1@)@1@b Pv@b(b P1@(63AUFɷY=^zFmڮsvR8h@k˝#ٽ(ēd\HL_ 0GCPCSU_tKțE>|)7(WH’M&rΫ)e넦hJ+g&#;mui*!ϼ2W̎>UM0, 2K{tJW3œ_ޜ3Mn8B<85B,B',E]YI$VZЄT^WAhޠVVF@gkFS3\ psv]އ$θ˧4qm0 ElpE 8.n$(h0ݞH9/BIrH4mE5=.o~38e"jlϞcޏU:_;ꄼQb3b P1]b P1@(;^-=ՏAU7wqmdK_U?dZi RRɈKÜy|tF 5=@T2$RӠUԒ[һP\G;a6'zwXm߇!cuv{;]>u kZni]i,%ˆpt[L}2"(:WaY7{U\d,d54WVˏ55k+1ܼ0K;q":B=ƫˇk(i֫kAoصi ČiU\&czkvZoD? H6]){uIv>%cDU]U?۶ze{:̵Ӧv8 _iN?_삏4OwoDlnp!KxojzO9mOe(p{~o4G8{; I.XmwcMV_ _[ b P(&@0(ȸ QR~mr9mX&R߼ z9;OaJTa|F+T>uM$F"2GvG7y|.YTc;7V|Ϻ\)v,PDJt枙Tz`Ud=|XZBhv!^79/:kotȕ7BR[Ǝwt(bY~~'OuEGlΫb~+rMZ%≝:܋N{W:_/%έ»3|펣#rDQG%njSVYIF)S]ؐ14kUbI.2zxKi j7,2`Q-Ll 7g/Mv =sT.%?Wܻ{φDSB婢r^ʙUTR+@l~dK:ķZZR8[[qLlּncұ[!(P1H8Zn!|)HzG)vΛvu|d1QRdiNX.E|y^ѐ~ϵPjd~bS)j#%‡F9Зqmdz>g$]1]$*;Pɍ^ Rr4N~MՎ =* +ڲE{ɍ1 X\mdbI=MZNbi?CVw&8FA5cO,OFYvf#\[^yv;K.5k݉YaR/TcqHLJHly-뎈ƷU"J)C><ȪM`Ү }*DŽ>[EiL9WybehPXc3R] '5$/ܰI-Dg0jI2R6EnQ}S%X ncJxjOijnuTڥ3g462;2MC\ I7LRq-RQnMMY4DT@U+C~t1[1 q:wRquv" ng=nȦrK|y_&b8/Y%KG_^ c뵑z"9瞕a#SW{x$PpFyoI\rZw4 ȥG^5x݂Ԓt(+=%+iqYMpƹ(㶪ه[^ 3>꼊`!꺣9"* U>2:F9qcJVEri8K SJ>xZtn5%"um#99 rzB@ Szx֜r1gřV"KCɄ݂2GίU,1af>\ʒSwI>u$Q[1]g[uGKdytj}=NVo_O>[þʎy+wT8N:!)xJK1 ,$#H7!\PWQ,gQ\YEy \!\ LښTċI1[)`)2. (` 5Nn A90QH5%i:YxeWmkiRʰDv˴! z˅4IySLHEchFTҟ)E,N O_izNIuK$^@`eNYϓN%k:}q#bt=ƣ\_4hnV,PY6K= wdrumYϗL|TCG>eEghG,_'Q^%;Kv+dv%e ORLVڟln./á un|ROp.sl僾b4[Wfa`Wʮr2` 5kGs43[q<FKTR3aB{\;d"ţGYQpgAV9K]0)M.e=]fh;p.HR^Sr/QK1c8Ɏ g^8ًK *r3Ȭ0sna//XE*c5nM]7'W;Ve)/%'c'Ӆby ķ5Qlv nFKVCZLD2I*s:c]f\R=K&g ܃ӞQw1*kZTs#gqqAiˏRh'[_iiS.f粺\v9?ʺg wzeVȮls%[41SxP.VL) =o&(d 5clJ?Юn@הUvUӑzǖjXu6V5՗ AfJA_=k.]Gc:^E}^Ah`}]fi_N=#SVO?IW'hh霥4}n6Fc!ǩQ5Qt>-d-X[-,ŲlM*NEIJ0@P;ԭu4>cN%jwI' opٱ5R3 2qfXزp>.Qi1kN|<;޳R z2XY~=,xqkoeOkk1Q)n= ٵJP_ Sw1 L~`HR葩]pj;~jz:U4͵2HZs#ڵj◿ޑv,`C`O 7%叿#u9. ?(X!&Hq8t,OnЋGh5X[iNAg)wW&I&KLz"ڪrLB-Kj-䱲 3;BA֬Vٽ#N#s cM6=Bf ?<~N!Z^RI񃠗xonno˶,cW|qjh"VV}IAnO}cr2|2oL$ܣlI,.7#cHKXx!b}yD,7BQK,S Q 2RK?C͖x.BXMոGʤxгX 5xb=ېyoFۆs-5ckx⦍8hy8gQy$srj,i@홰GB%1x[HFI>fFeхg&[{u]穨+NC}84l"\T Mq%DxvpVQ꺆魔HrW =yM$Zj16 EΜw}d>F)my/h5p̤olIICΧiM[\}ys n4:Ŷy\}T\G, ̵5rei`dnmcIh!yFT #H.&jJsy5& ѝ H h{j0 R]9H$OH9vIK|Zߢ[+x\6˞Yۨ:Eݤ`('n@=}ii-ȋUӢ|sT$H태rDܒvvG²gԆדK6Em6K4ȥ1秝_o\PCI fHFQ#? z}-[.[|yQMB1S2Q= KgG}nWI=IUL''? p$C|a˜J{\Nj&xG B +u52%whSјݤ9QN^qV3VF]=VXrT[B}>Ue/x!ސ)> zyny',5 ®wF!=qU:}ׂ[Z[oݗp#p9\Գ:_$ Zg' 5#}1]P߅nԵ[_͇loFMU'd9Bz0DzU$#d~eqҙr/ԨϱF7{ZCk ^{ j~ xadqgxH/zn/ P$H=6! !ʀ8۷oTώ ړ\}Rݥ#G,< 2x厌UK%$+<ŽU9,It'+6ݻ5EџqBYSYA.怍џiUuv+3WNq˞=ߺ3K9X z6dQ'&w$US Qȕ&wIݠfLIwS!eyIm9kkRel698`7bh`rsHgo?y|)81?VB6sUT""R(LA.XS9`Va!XLD {b\cW3E d(Z!3 N_j3"ZCq J"U9`CA:HÜ }*.z!m.k(lcVc(:;_Xj m.c=폊q0ߞK UZ[y3evVEEe̪hY;}d=@ig1ۡI ͅnSHObقig8mk7.c\ܫrk?Z-6i#§jB_,pwIS)/G8߁Ur]&X1Kg yp+Aj'` sLh<9!Tr2G5G#_U 0g~fyÁ .b7N5 u](icwxuD&)%v~kٕHNr|Uʈ%pQ } "DՌ# 皆h8[|sdXVu楄:M k B;#Cb-U!JhЌou++$kuS&KAJا"pI$Ec=OLwob ,C?~,% r^RK#]e@gh0[3kd+y^>vL܇.x n j}F^C+B:8>`Աᔩj6EH.cYyY#P9Q*utзt~hIK8|wAMP.L9"=ںm b d L멢5"WK@rwGB1պgj+fvG:|Ceӡg>Gd[Qi> .սFXۓϵIaO{[ٲ</5gApmh%Bb t#>Viǃ֋7=Rl$̫!jx&f3*4kqܞV7^ #a^u7$VJGHz q3C+!8ӄ*ݴUap61` >dTcf| idv]^;cWn~=:Ό?cvOEmuI;bK~Uk ~Me`U92,"xcSguļ￿ѼSjڄwM4v񁞙O֊ ys?IBxU1%XIЯf7Gd gZXitE ;TB#>jj+,`-f,̬s%?f{qPP5=e Q0OS(sscX過ZAw*4ӳ1bq6YLI9Y)K Uܾ׬ĮYI<Z{DIHTUfH1U[$0U"`!MhiMe&:UO"{ТcYY-diٵ-,g6]B=E_QU]xjݕ +9zrM5{o6"H!g^tY {{>GJO(6s|*YY`mkue [QpsF*A/Tm[xrzw4(S*igsi3X;1g'eXhA&K]>.Bs\1ϡ mZޒP;KEq+:kWJ׷/p*TaVٛ;gl^-;-it[EP@Χ~>qp811WcݍqE;\ŌFopzSkj6.Gil&;HJF.%2eĭIU94\^ftK JúPOU^vՈO O5^8N: ,}y0M#TpK[m$ r`ch9Ꞧ5s<_2:km1I]% V'6 r,\`qLvN ;:k~HRЃT)8]A b;YZr/ @ v4jDT mLy#."֌YM2Tπ<,\+LY<"?vIt{]R7)\uS U%:68w[лy;9"U#ʜV𑭧"k?J})s}ꤶw ՞=NIڊ+[]Dw8\1%?OQ6j}q^K߼2DjA8|pi7x=)JSh䬎Dv(Q(xUVMv}W" D<԰בJǡQ)9k7.l%Oqڍ1Ax春 kk{;Fl757wqbj%Y\^BiL v6*NNRyPV*aIф&FI`H!n"myّ'я N0䍞c|G$^֢-{yPFDRDEl֧mztըUYfV )XJAQX$oeTKl!I2FAٚ}(ٍ9#c$;}X9W6~z{<拑?RԡX#vQkE6,gct/Ye`"rTdԜM nܤܞZ=әm d$b<8e>ilǛtv..7h?\^^2ςцψ'uǴm"y\O5YNXB\JS!Oʆ6g,SS 2+,욷ܾU 9a::INE+ Fx^"cPW$ SQ,ԧGNx8Ygz\@1UWw ٩aQIc7`R9 'mhrR`* #Ҍ )ˉ6'ҜGgYWpO U$E+IHդ!."D|`;p}3"mPyQ0H S=e}˨wEP)ԃ늞KW\}ڬr).puʚ<B4x7tTjOCdd+,RxUQ~~Q&E]O>tȭB{QUS'1pϬIp14rRn&V]ZKkMw2IOSǥ;VS[]M7pw`|cFOskuMvu)GG+ZSI%.yI5Jr'BqߐUEl"f>ov(p3NQ19\6Trx%o1SӁw R5y!`/ |@PZǤXt>@agX6Q'TQ1He\T91=*D/ b%-;"BcC# 2p?cj=iӍT~U'sԻLU>TET UgvWli?p>'rW,;ק}J%-oU)="RPXAܬ`En8@yOԈ4sӷSPNn]L}FfGe"wQ)CQ9r^HtlEi8^n!N҇ Zم=*)0$gJ07ORԯLbF*< I (W2Xn#N$IG D1R(63R$NHA9Fk (f5(;9=Lyr=*+i+B)6&֟d!'l)ɍc2̊#qQ.N2O!`iwMr'wVB?Kv>r%-^#[[2ic) ڈN| r]^u;q8Fa(1"26l8=zX:Sa>S)09 )P2?#C`֧4lMd(H+=\W#z # yR䍱uҦ&H'FCE7pNʼnCXأux 3"LySלSݣ i 5׃)Q6ӇG"1\F3ZUG 9`/K1)Čq4C6X,zԩ -:u|ҕD֝rJ=i$bm!r*e"=Sl2q5sQʱS4N @;"r=i [OZ=Photoshop 3.08BIM8BIMNZ%G720131026<135155>20131026?135155P Tim Horton8BIM <<          Adobed!1"AQ2aq#BR$br34Sc!1"2ABQRbar#q3CsS ?b3 1@(b P1@(y1@)@1@((Pb PbCPг31@1@(b Pb P1@(y1@(1@(P1@ѵb3 1@(b Pb P1@(1@(b<P(1@(PP PҶb# ((P1@(b<b PP<8@B56Q#+ 矐Yv-/ۧ eO,oimAqMc)FӟAOڵПs=nH^KbA1@(P1@(ӷ# 1@(b P1@((b PR۞ӥi͛0fX[W>wM_b|3q0kxXADe{Vr 7 y[ڴ%'YmRi,^)T~<(b<Թb# 1@(b P1@(n-䗮-)KlYtbJIOI|,+)jSGgǗ?n'e|ՖٝMmq tv_ ,hucv-(?ÚT׮;[ȱiG/u1CV'[N#}i?}UcO vvEGoqQy:b7:nL[j_2.if%ىbO'O^UYUZ6^58yInlཻxaIE*Q\ZX4]:0ryKa$٭$y)_#yfڝ>3lhcCb Pּb1@1@(P(1@ P ]Nj2EXfeWS$O\ͯ;^=kнÏ%R*j} js1Qm :gؽrU!cڨ%~V'԰rq~.W|ci]G B.#"r&!>I.-:{?wjVIm[&C 6pAc,,9z= $LT^IfX4zQ>:\~-ȎHO1v(Ѝ<8ZG-햡vUhk`((׽ 1@((m1@(>b1q0.=71T1:dݨr"eZ>>vv O_L,zmo; a:ޤ~5k 2&sso-܍:LfCʓPJjI;OI5Y-nbzjc'Щ)gMݔ MGΡ\?ܪWיicŝ8x=FuQOy֏>yuqjC's<#Vf-jlEhO^.eb^6S_ҵw *&9ǵrqVBwX D38q}~uZrRNqo]P)*˻9QW4e Oї/,laVvƬV`nrf{[ I r96fhש9%F>Lf 8={?hvjH%E N 8F"u>[lR>ij%u]g9HqyT1@)@1@b Pv@b(b P1@(63AUFɷY=^zFmڮsvR8h@k˝#ٽ(ēd\HL_ 0GCPCSU_tKțE>|)7(WH’M&rΫ)e넦hJ+g&#;mui*!ϼ2W̎>UM0, 2K{tJW3œ_ޜ3Mn8B<85B,B',E]YI$VZЄT^WAhޠVVF@gkFS3\ psv]އ$θ˧4qm0 ElpE 8.n$(h0ݞH9/BIrH4mE5=.o~38e"jlϞcޏU:_;ꄼQb3b P1]b P1@(;^-=ՏAU7wqmdK_U?dZi RRɈKÜy|tF 5=@T2$RӠUԒ[һP\G;a6'zwXm߇!cuv{;]>u kZni]i,%ˆpt[L}2"(:WaY7{U\d,d54WVˏ55k+1ܼ0K;q":B=ƫˇk(i֫kAoصi ČiU\&czkvZoD? H6]){uIv>%cDU]U?۶ze{:̵Ӧv8 _iN?_삏4OwoDlnp!KxojzO9mOe(p{~o4G8{; I.XmwcMV_ _[ b P(&@0(ȸ QR~mr9mX&R߼ z9;OaJTa|F+T>uM$F"2GvG7y|.YTc;7V|Ϻ\)v,PDJt枙Tz`Ud=|XZBhv!^79/:kotȕ7BR[Ǝwt(bY~~'OuEGlΫb~+rMZ%≝:܋N{W:_/%έ»3|펣#rDQG%njSVYIF)S]ؐ14kUbI.2zxKi j7,2`Q-Ll 7g/Mv =sT.%?Wܻ{φDSB婢r^ʙUTR+@l~dK:ķZZR8[[qLlּncұ[!(P1H8Zn!|)HzG)vΛvu|d1QRdiNX.E|y^ѐ~ϵPjd~bS)j#%‡F9Зqmdz>g$]1]$*;Pɍ^ Rr4N~MՎ =* +ڲE{ɍ1 X\mdbI=MZNbi?CVw&8FA5cO,OFYvf#\[^yv;K.5k݉YaR/TcqHLJHly-뎈ƷU"J)C><ȪM`Ү }*DŽ>[EiL9WybehPXc3R] '5$/ܰI-Dg0jI2R6EnQ}S%X ncJxjOijnuTڥ3g462;2MC\ I7LRq-RQnMMY4DT@U+C~t1[1 q:wRquv" ng=nȦrK|y_&b8/Y%KG_^ c뵑z"9瞕a#SW{x$PpFyoI\rZw4 ȥG^5x݂Ԓt(+=%+iqYMpƹ(㶪ه[^ 3>꼊`!꺣9"* U>2:F9qcJVEri8K SJ>xZtn5%"um#99 rzB@ Szx֜r1gřV"KCɄ݂2GίU,1af>\ʒSwI>u$Q[1]g[uGKdytj}=NVo_O>[þʎy+wT8N:!)xJK1 ,$#H7!\PWQ,gQ\YEy \!\ LښTċI1[)`)2. (` 5Nn A90QH5%i:YxeWmkiRʰDv˴! z˅4IySLHEchFTҟ)E,N O_izNIuK$^@`eNYϓN%k:}q#bt=ƣ\_4hnV,PY6K= wdrumYϗL|TCG>eEghG,_'Q^%;Kv+dv%e ORLVڟln./á un|ROp.sl僾b4[Wfa`Wʮr2` 5kGs43[q<FKTR3aB{\;d"ţGYQpgAV9K]0)M.e=]fh;p.HR^Sr/QK1c8Ɏ g^8ًK *r3Ȭ0sna//XE*c5nM]7'W;Ve)/%'c'Ӆby ķ5Qlv nFKVCZLD2I*s:c]f\R=K&g ܃ӞQw1*kZTs#gqqAiˏRh'[_iiS.f粺\v9?ʺg wzeVȮls%[41SxP.VL) =o&(d 5clJ?Юn@הUvUӑzǖjXu6V5՗ AfJA_=k.]Gc:^E}^Ah`}]fi_N=#SVO?IW'hh霥4}n6Fc!ǩQ5Qt>-d-X[-,ŲlM*NEIJ0@P;ԭu4>cN%jwI' opٱ5R3 2qfXزp>.Qi1kN|<;޳R z2XY~=,xqkoeOkk1Q)n= ٵJP_ Sw1 L~`HR葩]pj;~jz:U4͵2HZs#ڵj◿ޑv,`C`O 7%叿#u9. ?(X!&Hq8t,OnЋGh5X[iNAg)wW&I&KLz"ڪrLB-Kj-䱲 3;BA֬Vٽ#N#s cM6=Bf ?<~N!Z^RI񃠗xonno˶,cW|qjh"VV}IAnO}cr2|2oL$ܣlI,.7#cHKXx!b}yD,7BQK,S Q 2RK?C͖x.BXMոGʤxгX 5xb=ېyoFۆs-5ckx⦍8hy8gQy$srj,i@홰GB%1x[HFI>fFeхg&[{u]穨+NC}84l"\T Mq%DxvpVQ꺆魔HrW =yM$Zj16 EΜw}d>F)my/h5p̤olIICΧiM[\}ys n4:Ŷy\}T\G, ̵5rei`dnmcIh!yFT #H.&jJsy5& ѝ H h{j0 R]9H$OH9vIK|Zߢ[+x\6˞Yۨ:Eݤ`('n@=}ii-ȋUӢ|sT$H태rDܒvvG²gԆדK6Em6K4ȥ1秝_o\PCI fHFQ#? z}-[.[|yQMB1S2Q= KgG}nWI=IUL''? p$C|a˜J{\Nj&xG B +u52%whSјݤ9QN^qV3VF]=VXrT[B}>Ue/x!ސ)> zyny',5 ®wF!=qU:}ׂ[Z[oݗp#p9\Գ:_$ Zg' 5#}1]P߅nԵ[_͇loFMU'd9Bz0DzU$#d~eqҙr/ԨϱF7{ZCk ^{ j~ xadqgxH/zn/ P$H=6! !ʀ8۷oTώ ړ\}Rݥ#G,< 2x厌UK%$+<ŽU9,It'+6ݻ5EџqBYSYA.怍џiUuv+3WNq˞=ߺ3K9X z6dQ'&w$US Qȕ&wIݠfLIwS!eyIm9kkRel698`7bh`rsHgo?y|)81?VB6sUT""R(LA.XS9`Va!XLD {b\cW3E d(Z!3 N_j3"ZCq J"U9`CA:HÜ }*.z!m.k(lcVc(:;_Xj m.c=폊q0ߞK UZ[y3evVEEe̪hY;}d=@ig1ۡI ͅnSHObقig8mk7.c\ܫrk?Z-6i#§jB_,pwIS)/G8߁Ur]&X1Kg yp+Aj'` sLh<9!Tr2G5G#_U 0g~fyÁ .b7N5 u](icwxuD&)%v~kٕHNr|Uʈ%pQ } "DՌ# 皆h8[|sdXVu楄:M k B;#Cb-U!JhЌou++$kuS&KAJا"pI$Ec=OLwob ,C?~,% r^RK#]e@gh0[3kd+y^>vL܇.x n j}F^C+B:8>`Աᔩj6EH.cYyY#P9Q*utзt~hIK8|wAMP.L9"=ںm b d L멢5"WK@rwGB1պgj+fvG:|Ceӡg>Gd[Qi> .սFXۓϵIaO{[ٲ</5gApmh%Bb t#>Viǃ֋7=Rl$̫!jx&f3*4kqܞV7^ #a^u7$VJGHz q3C+!8ӄ*ݴUap61` >dTcf| idv]^;cWn~=:Ό?cvOEmuI;bK~Uk ~Me`U92,"xcSguļ￿ѼSjڄwM4v񁞙O֊ ys?IBxU1%XIЯf7Gd gZXitE ;TB#>jj+,`-f,̬s%?f{qPP5=e Q0OS(sscX過ZAw*4ӳ1bq6YLI9Y)K Uܾ׬ĮYI<Z{DIHTUfH1U[$0U"`!MhiMe&:UO"{ТcYY-diٵ-,g6]B=E_QU]xjݕ +9zrM5{o6"H!g^tY {{>GJO(6s|*YY`mkue [QpsF*A/Tm[xrzw4(S*igsi3X;1g'eXhA&K]>.Bs\1ϡ mZޒP;KEq+:kWJ׷/p*TaVٛ;gl^-;-it[EP@Χ~>qp811WcݍqE;\ŌFopzSkj6.Gil&;HJF.%2eĭIU94\^ftK JúPOU^vՈO O5^8N: ,}y0M#TpK[m$ r`ch9Ꞧ5s<_2:km1I]% V'6 r,\`qLvN ;:k~HRЃT)8]A b;YZr/ @ v4jDT mLy#."֌YM2Tπ<,\+LY<"?vIt{]R7)\uS U%:68w[лy;9"U#ʜV𑭧"k?J})s}ꤶw ՞=NIڊ+[]Dw8\1%?OQ6j}q^K߼2DjA8|pi7x=)JSh䬎Dv(Q(xUVMv}W" D<԰בJǡQ)9k7.l%Oqڍ1Ax春 kk{;Fl757wqbj%Y\^BiL v6*NNRyPV*aIф&FI`H!n"myّ'я N0䍞c|G$^֢-{yPFDRDEl֧mztըUYfV )XJAQX$oeTKl!I2FAٚ}(ٍ9#c$;}X9W6~z{<拑?RԡX#vQkE6,gct/Ye`"rTdԜM nܤܞZ=әm d$b<8e>ilǛtv..7h?\^^2ςцψ'uǴm"y\O5YNXB\JS!Oʆ6g,SS 2+,욷ܾU 9a::INE+ Fx^"cPW$ SQ,ԧGNx8Ygz\@1UWw ٩aQIc7`R9 'mhrR`* #Ҍ )ˉ6'ҜGgYWpO U$E+IHդ!."D|`;p}3"mPyQ0H S=e}˨wEP)ԃ늞KW\}ڬr).puʚ<B4x7tTjOCdd+,RxUQ~~Q&E]O>tȭB{QUS'1pϬIp14rRn&V]ZKkMw2IOSǥ;VS[]M7pw`|cFOskuMvu)GG+ZSI%.yI5Jr'BqߐUEl"f>ov(p3NQ19\6Trx%o1SӁw R5y!`/ |@PZǤXt>@agX6Q'TQ1He\T91=*D/ b%-;"BcC# 2p?cj=iӍT~U'sԻLU>TET UgvWli?p>'rW,;ק}J%-oU)="RPXAܬ`En8@yOԈ4sӷSPNn]L}FfGe"wQ)CQ9r^HtlEi8^n!N҇ Zم=*)0$gJ07ORԯLbF*< I (W2Xn#N$IG D1R(63R$NHA9Fk (f5(;9=Lyr=*+i+B)6&֟d!'l)ɍc2̊#qQ.N2O!`iwMr'wVB?Kv>r%-^#[[2ic) ڈN| r]^u;q8Fa(1"26l8=zX:Sa>S)09 )P2?#C`֧4lMd(H+=\W#z # yR䍱uҦ&H'FCE7pNʼnCXأux 3"LySלSݣ i 5׃)Q6ӇG"1\F3ZUG 9`/K1)Čq4C6X,zԩ -:u|ҕD֝rJ=i$bm!r*e"=Sl2q5sQʱS4N @;"r=i [OZ8BIM%gAs ICC_PROFILEKCMSmntrRGB XYZ  :acspMSFTKODAROMM+KODA cprtHdesc\wtptrTRCgTRCbTRCrXYZgXYZbXYZ,dmnd@ndmddmmod(textCopyright (c) Eastman Kodak Company, 1999, all rights reserved.desc ProPhoto RGBProPhoto RGB ProPhoto RGBXYZ ,curvXYZ 4IXYZ ">XYZ -descKODAKKODAKKODAKdesc'Reference Output Medium Metric(ROMM) (Reference Output Medium Metric(ROMM) 'Reference Output Medium Metric(ROMM) mmod;)http://ns.adobe.com/xap/1.0/ Tim Horton 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255       }Adobed  !1AQa"q2#B3R$Cbr%4Sc5D!1AQ"a2q#BR3b$ ?/9+W@+4*G< @t)RAWdJp_j@ )W{7@dH ] ZO)RH[;ZA [ AD9VZH Z'dA?`\{ H3)"-& HbBbP@Pp t CP  W(]R*I@`QNJVmH1H!H1 {}aGxq)W@- ?Rt7@JW>H+oTB@T5W@@!J@ 6~@RH]Wnݐ _@!v+t (z  @ + J?t$5Z@J@'~!H1_I@ GAB H2G*]` ^@/ch H [ R+W@_?@/)R)& I_d>5L= @%pTmld8@{/9kdHZ=HH~ Rw@(0JQH J IJm-z}[ RD^ ]i0 @Rdzz +W?mGH%zZAe("Vփ&c )>)!+T_ZHU KL @y@~PRv@-{X@ )W +d@)0?otL @-R*M BKw @-Q)R\  ODO@ @@=Rm\&(oD+@!& ^$ _d^ 0+H T@)&z H=~?H L @ I}@~"cieD)W1)* P HR@ A1EWoT^"R }W+ێP ^P@%~G+(QR_) @% @mhR`v@-$ ^>ԀW`$ ]@/)˲HLy R[ QD+@-{  [ @'+Z \z dBJ& _@_R+W@% ^W   [v@-lJN&@U P L @!HV}UR`RdAW@OGR kW "R WRO L O@ G H@ THnx{R@%  II[ {}FxWd+@ H{~ @)& ^_Dؠ@@*$]d^{lZ@ Wt  @%p;TCtw@D T{ +(v?& ީ+@%z[  `dd L H @@Z@!)NP~ +@>) ^#W@*> 0_@zD[ R#0)W@( J @'J09@5VD)n @WA \ @- @'R $W@%w@*Atkh  d *v@d_{  ( ^@H^o )ߺ)D$ ~+}P _@Lk@ A1PB0 )W?H@?PJ@*`z 0) )0;P@B+P) @)gDH!H2)} H~~~!['(Z@"W@AbdB?iZ=ZVZ@c_dG+@-pOW ?Rk @-zJ@JTR_oTRiH|( @hB@"`@?D^ɂRi +J  @ oDA@"H@'RH!^T+R@@  r@JL { _O%R=ԿFx}D^1]H@% B UIR`}>"$cL @DW H>A)S2W" %  BRR^0) J@ #P@ _@%~ (]{ ^@)RT^?L #'+c@@!B}BAPRkdUD (`- BH+@R)dW)FxҀ @Z;$L @H L+@@?d~_ VW%&@(o@ \ @ I0=DJ@?R= @%_dH@+C DCJ@/(nTQV *)W虏o=W;l1_Ba}P)R  +@% }`_@lP Ov)TFx'0+@H@"T^A) )$HsHv@)0>\ 80JH L O)WR@W?D0+@kR@LW @&wH@Ji pZ _P R+)R ).eW ;q=Pe@"H`)RR p)R H) L H @Fx>ܠ@W?0d#߄= _$De0*@cIB36Wi( &bt ̔ CtWdHvA@)ZDj =-R+P`}& ] A0) (~ɀ@7H_d  =P p+[mRnM EH2W Wd@-"W@_&ct H @JL @1 @J@Rt^%& \lo`v?Ex½A?@d`}wH @@%mꙔ )2- +E@@"QP H+A @!1IDHR +A 2{_RRkPbDA@ԀJ ) 0) ( @?@U L=S J@-z II +&($U+HJL @R \ A$gaM7@:{.?D9,ގE U2,T_dH)P VH"WJPEZ RQL))+ @JTpZ)R+4Ex&$t)TH}Ho)W6+ AEd Q} b ^ؠ @W+t@)Ŕz @*+H } @%w9QHTH@'*)+  [ĜO KW喛}J?L<{9/N4|ex{Pv<$ I_g]FYncy=><}tI<|k;]?^_dD26%ƃM5c7t5$ 嬌bK+ܯ˿S}Go~Kzah(9ol /y>[N$z,q׶BR6W&NZOƳ%|۟z?s>,[0hc_Eso<\|~?I6kn;Mxls^iW,9ʽ@R+ }R ׷iL @{) +} _dBԿEx[ )W HU@% R{ _s?Dz@ W+ p ^(+(  @lO)UrOH1HdQ@2(  GtRHeR+?dH @%rZؠ C  @)7 m6vB(J~OǦ{uyYoq/_urܯg -u&kErN{s#=UvC1W߷&u&)>p$*E1_cdd⹳cL[et||)6򟯢KǗ~ǒ\g> $Ok7k:n|{~Q|w'K8[.)WA dWd H)d^+@- VL A#"`R@+ ExVdRHTGR)+BDmB`RkԠWdp _dk@% }> $v@h0J@- n"`PATR` PvA;@J)@-v@% H @- @JHsTH@+ @"P ^dAa5&Ǜqmu6\I*޳>+!8$5_ޣ;?Z8\t^KeÏϧhŅm;Jxޣ<5lVr] oe^qGu7m$+zzzBe O!=io'BK]E/|~밶MdVjxO BCX+\%( HD~z H" +)+ @+}="`zZ# @u~)OP \ @a{w@%+2D _0Z2 JL@%  TDJLR`)#-  I/DWe0 H1HR`VIR i`*@ HL H~ZH L H0_tIR@ +k@")?6,44XNyLf^.+ɖ?G.\ y~K+E;O:c#7-@{U,`d^~Qlضz)q\X6߫] IӓH4n wf)pZGsTĎq򧌷ʭX M}V$؍E{FRu}jZ mˌM"^^/|~=c<9ms$|pB;S o~w>?<6a |PW2-w@J+ H"Q%{ @)J@)^} ?Dx½0OZ @(ZPLӲ`RTI\$H0ZI^b@W8TZ@%$BԀ)*C)( Ŧ I)R R ȘZ%{p+d^z ;  H~_OdHPJ@{rTH`+ {n ~R XiV8ܮx0d]mzߕمfyGdJ+t?;|.v37ϲ# H{0a=Dul8X|0MSu~~)GnڟJq 6lse[-1ޅ$l_r~lQ-M,1PWkpGٴ %ywu|)|qzOFձlH{lT::&X_/<-(_J@- H NP ^V 2Wt)R VրOH!H0-R_JSG0V?TA HIH@ dRI\R@R @) ~!H)ZDZATi-v@%{ @')R C( A@@-} H 6KgETnez:Gt?O1W8s+͎ w_1G~#3ԟ|/˨9bn}4RWQU@%& I I @7,p[c8Ã$QH#.65g l.,>g ?IOֱEY|)~#F k 8HgTK&:< v$ePco0|_,_7qZ?2QHsgpX GMq!HnwarD4x_/xx͜xy\2 4^ށ~sϗ.W+_t6<8;4W6^cmoW.^^2D)oPꓦDXSbZc-$opAӡk/)q "`UiAWMn42;.ҩ1*li8MYeOEސ羻tquuшuJqhӹǖeZY֟fXqbv{,ll H!VJ@ ]!)W%l)2RA d^ ?+J~8@ؠ @ O   H TRH =PlJ@- ePD@-{ THsaRR+@@Gpda7^}$29s 7-O?Ep˫ZIt~1}WXY۵wL۸tCH6\.lń.9sr\y1+̋H|Ǝ]z|//p_'H{7mغ425n>Iw^+nɘ/Sls|7G˭ @'(" 0{KC@EV8ܯ7YdW/ϛ)Ox}O6I&&E[egrz &14a3yŷpP}d R-'^UX)ӷ @~]TT FZiiݥ.i m7(vͱG){i[c+r*ъw䑛~Rw m[w짰Z}Ǡu֘ٷkd2$4>bv,sSxYWZK[eމq"X|apVyKq\3,oz+Hfv{ABoy{tVxkf>P H1HbDbd?WPW( +G)R_}  HHHi}}b!CZ) @% z ) @R__To JAL_($& @% +3XS)_K'yj m__i2 _+>; ú{ib 27iaS\Ѩ Ím_z KKFҗV H&|1qY5 N[HdFČbӻ{tX8*{m>;c4m.:|&3ii7`a6;0serӥ|?רHw&e?>G~~>n}:T(&AdJ @ @%}&O@L D@M H5~HiVR) )RT_@H % T@-}b@J@@-zV!H@"`R@ $D4iH1^X9J_|xu~u?we S' GPe5WsZnZ~K3qYHʪr9ta2@],#[\CleqGF\Sb/@.ޫ۬R9H!Tyu8&>+Y RDryOgN7##wt JUi6&*I۰j6I,ŁZ⋆Ӱ2p&C!8ƹ:lutKŐ.S|wXHL1c ~Y_eeUpSҿ30cŭ/#],9xz,Ԏ'Ɍ$0澎P ~Sp~?1Yǝu]bmFg:gyxqjF +[t.\)/m}tXZl7ZTɰi7mұrZQo=v> ֲ:cDu6:0coGޢvp%; NEt؛F*YYl=A fuԂlg|1N=9G] q*։9}<@0^9HWM;;qLGg4VyYPc.;]~.Le=/[aǗcӚ&{5-?%#eo/.;(`R@%  H H U  ^P?"JL?kG*@Ƞ )WE @_kJ@ J@- H)Un@!1H!@l+ Uh~}B`R@ `()H!6L !Uh2&S'dxwDzX6+ֿFgkJ,-/~}nnnٙ^f|8g1!-'n˟):&DeXetHtLxi3qLF8Ӏ!ǺriɌa&l5Ƿ*x\9Zֲ<-4Qx4|sMB&Zhqآu1nN8=Qw c*cr/-E$Oiz!5Ž_ RN;_ =%ELG=+•>pZhe,>1ρkϯ~?98/>3#tQB[@5uRsg;p3wtn<'uٯxmƼXLJ[AoI//9eo_g's o{-vvD89Ѽap4Z8#Ю|9{KnOF1t"1/8w,D1q^9[Sq-sv Ym:Bq smq*c;a nV(pdak]]Np7qk*v8 -e4O7쟖0! J@ )R+VDk`*ǺL?ԿDxnZ@) )wL @@-d>`+"i )R@ ^tWtI]#!IHI]}PW(1PB )W@@b I_@TkD :{ 8}JZc_ g,Mi9g}'.uRHM,f96r5U݌>#H-;>뛒=>QYđ~}= 96C<Wvj+qOةvv AV-W|fzqrەLP`$V#+XNMbpflmvi˺ =u}VW-E iTŞ\i11J9qϺn=&-v$ǒȉkV7Jxyn#i2ڦ:É..sOwtq\ڭC^";y7O=&+]>`-pWz8q:YhC`E\As|LJ,ܽvqi.WY]qL}~˓ ~#VD^ь@e6Kj̍ә a/iݝOr 2cɒ(2 C\H4sVۄuN=%xӤʗ2yyhdDFwL wrn<>pH*n1|p9ʑDuh~gl1.,e<ִlK]Mk8XpyeiՇQ24_dM!d25Ywt/78o&^l_GLz܆auwG Q]g]kECWOy,kQ^,Z_b: qs+IUޓOd9fL=$܁ړJ.<x9>cw='ҩ2a;/-ʬQc-IG,|ISH.2tc4tvQZY6tUKk<&HiS2.uA^j,1,g7/쐒]AP7O>Im M;36OrVs_ltoH5q6,ê=?t)]Ɨ/ R+?AV&b+7@'y)R)J ? PD-{& @D^ +HW(t׶)R@HDHT^H E H)_P ]n)Rq0JUq-Ҧ7S,55fK|+w~0\G_+ˎsrKjX~.|8N^}`X9.!v(pо>4}N԰ 3x !{,n>M6x' c O#uOC}9Qr1?dxTX\yN'14;l:J4GnA|\,z2hvq*,ԁgKv7ۺa"\9Tޭ{沖\rDPd[Hѱn<>e7=,hxæ1$lJϲaty9̙ͩ~ hm *cUEˑŧ@qEM'Tգ.Gy"g8h .~O7C-d-c솳 /2H`PidE: _bxEL>dr"7O#/$n@,}<~q]uFab+_@v~3Ha~9q'/71Xn)c&䳉ZEW\YNYoq6")wV wLPM̕&IZ$"?n%U2-SHyE>V9]>9(4-/5vV2_ C?p;0O77d`3`.1i@oM7.;)"2ZKe`v*/SϏUygv8/p7ՎrwNxIykq =}=G|nkj/6y鎣{S{9)6~;QI+H2ͮպ+Zw5%+t6êÍixkt0OpKa=zn]ᗲת?)RZ@ ]DB W(JL+2_ AJZ@% (_b@'Ro\lZQ@Ht~}?dT ^HDHP H _iRaRD( @)RA@!dJt㼁5 s߂nM|BxnCW&_SZoj|woPx1q34W),5h:ܸ](׾mv:tyD*AXQ-k&׺$k0V7Tj19O;j,۩(}{?4q=qLsוQƍTcs,ڔW~KX`|z[q{:4-?0w5{yOGM^L/tˍqeQ56qsK;UVzkZ7&8g)$|)_0dG<Y'ƃa +j\u0۷I̶y1̐|k}wYe7@ϒhƤsXsD9YBw[YgYhLoL'A㕕㔱dhd%ǡ`ExUWQ܌f0X0ye,ϙlj>oJ3ޖاa{9:?uDO-=}C^LrxLԚ,61*o?M."3c aCSŌ*{'fν.$Ƽ8ZuJj`#䅮jFW KAVQ~u9|U1[+xd_}ӊk)͚dI!·9V ;Iy6v&;zcMrs˟Fy.;}o&8Ϻs>ZBփ;*P{ +IHW0J)tEnCx¿dEWJ@(@)HHW @-  Pt+W@% @; @v@@%~^?HJLZ ^@)Bn7_PVOlg,ny>QjNqR9,m~Xo>#@د#}>#jy'#!;wU?. ]=$Eo="9|?͎EKltcȷ'|8uS5dܸDkQVYMVFË!oCK@$49ݴLD_Oډ]}?'o\\N;Vه0hzZ\;syymP4˴|H#q{{}dpC]n?VKͣdH-G]]s9d5‹HYӦjX$,0v5}>vi2iޢfmMqX܍7/K:6A/n{Qxsv_1jo#.Hg"} +^@+"hv@% 0*@tU/0)  @* J@- D^R`J _  @- dVJ@-Z@))Dw$D L AEAAC{?qk>n6,rRA?UQ{t= ^d>*Ɏ7lxgZĘ :ֲ,tBQ;w~Ri#h <2ƴL m:f1 + Q@0-sƝ;%‹MjQ,qiqߤe.$yN&b֓⪆ui2o+d앤ŴN* ämlUX;ts2k߇ȉLq#y?bOЅ.XKi7wxFt,%ۃ,tBx`=N;QR[2 7=[е݇.*ֿ>V,lѐ^K g W/㯷6Oya2Uv۫.1a胚:ݻ4GmUMLoOP5 t쵛F#P!J^Au-?~\di0tw5w^lesA7U$6ӷŚhMZ\t4>1я'ԉ7McF]wU<6mMhFLl]<)/ȕe wۅͫ/g&?cƁWJ@._?s^?wv2K )R`WtAH@%}v@ohaR ( E H1Em/0@ @)p  ZL @)W(L J@@%&@)U @'0Z$=LSR@R@- @%l)0J@-$ .A<(9D]QI׼湻8W@|&ymjN|+gur_iMK"}VؤjgmxKy5c#zcCHXz"w-9)ĚwCkf\',o}"ǫ`9 h}ԼQ^$Yi[% 'xaݯxw?ψrgn>)TΊj{X'ϔѯ9Zku,V6}.ŒFJ!/?\Óϗ`^[|aT|;Igus!|Y8o;qi9r׷JG4{wsknrhgP}; ӞoFcޚ\+bKOyNZ<j(ݵl00\{gwo9 xIpjRc8ݷq\ϕ:5jۺs&o$S k$O rs@SaόS2zff2%!H~I?谸Xy74gFn<gmm+[~ʤ74|tFvʝ.,e,>oƭl1,$Q236mxqw]GY^w>{+ċQxR#;/E~e=U'oԽwD̨!FPa" L @% n)!PbBbA; }/0@@)R`0+W )RLT+dA0+ @U  @%  ] @+  +@)UP @% ))R^HӦ7FWN9Vv1C/O@Ŏ?×kl> 9fImص~<Ꝿ(q;#:M4dvO lnszZPaY.1훮Džb1i{5uƚ=w&]GgO松%lo{$"UǓSճ1ŧuY2++$bȱer垫Ǻ_ǫ:+\죗.N\7^e$)$;\WO+|+4>HEk+-4EiܣM6t|#e+@?USǗw%>pdsJGĄYc|@SDD\h 'EJƑЃ5oL&HV0K/Lkl>X;gEE> 'ρ )(s~cU?-K])&Iocz<NZ2]m2c߫~J;w˸C:xlHy}Atp?#5 ⽳uzC^:j*z{㇒rK|4 1mwr-{=o a*ӕӽB\76J74y|汝,k惘m¿F=7:A dtnl$56Mdz݂#F@vE^xoz E۷VOv1^Ϊ$}yFR"L?umb}j{qd׼Dvo¹XAψőq]sˏ<.7xփcI&6@dcŤoaEJ9QVN^ZHO~GKtU^iϺ[kXd24oGi9rOn^.Ӵ,w95!=-*6@zfO7U.^|=ֆ eKYWoTRWtbtI@W0)R* }PBd@'<Rk/О1 @-  H)~ɀ H H @'iW@dRHtH @- 1 _J+P H @%~Z@%  ^dRNno/\jTu>;^7~oHc3>0'~Hx_o!lw7X,-tw93!Ah#v^kбx wrWK#4 4)("6nP@o{k@MGڿM%NymNGL'}Ɨ.^^ZvVk` ,b(rS-ǘ5tm4+}ϷC x<lbwF&4.;t]U^.C"v'|o& / 4WPzms ڢ'ĝ#Ng0G$edM Q ۭцZRcea+]OFo7#֬'r۶`Im̆V|UA|¨FbIȍǸ@kiii Fe4K)W46Zq7[tď-mw,'h|k[wᢨ QӲ# >c{un8zaOH<&7 ]8٭~\G~-/ d-{Yv} lc,9Dl3@kHd}޷?!5o0]gӢr:Vyun{]{}o43[6&k=I7䭶$5w4Sw&6x-_Cswk6u2v#f1c4ݧzK]nMs_eL1-l wAOY$@چVDS45O'm~{eWSF+şP۷>#-8Rze5v6?!n, \AҎ?۝Э=890ˏON7^+ĘfCGYoM$ߘ%5ǡ47'2߲ &[RC7Lwkk'˓?|#9~&~=j>$=oKנ;I=?}sl=} H2R)Z; @ިRL R`RH&D_%RD_e%{pZ@ H @+^hz @+@Z@P WnP H^۠ @RdR \ @% 87+MhuSegۍKG$32 lRدNK_=D=q/./CNcI3ſx7"̏'7rۧ 7+Í⁌N_tƣ5k,uqqnm!=N++| H/a~ܧjf>Uy8mYxj\; s ڗ.i&ӱ)O-p״޽ g0AzU|S.QBA STq緢P`2##fisAv쮾?iuCp;8(j&_֝dͻtVVmA&CLB7xGl ;xg+S/,gG3N~S1ռ<<Vydywſ? bKOfFV0hZH t(<{r\P%Mauǥ{V⬭fL&&mzU+,4=MCɑuv.{-;gQqv| helR2xkK6,u]dܝo^ iy2Ah@~Tt8ߊ&cuHI$lEs Wۣu>#|yM{8$WN4\vuvc3-sLYl.Z\}z5<ۏ&ȑMw.7.hpalkhu|#.]\Å&Yd<.{}Uv>yio1K)އD`?dB}1-$1¤"GDgCqĒ6 %=  uRs5+H[= Y`.4UEUO UmdpDtmʎ7Ë;dmǵ`۷t,ڗS<ٲkoґ.P37P`\MaکOZ)lIgwFN'14qk\y%{^ 0u\ys":&̡o%O324S!] GW5aLu[WtS<;1Z3f#{ ^ǎ}?7Nϖ<64b(1clqF݀ a0c=G|wCc}Y]btq.4( % p: ,F]m\$-cA7{~Ay*l\62t}.LR+Ni$nYǔ_Ŀ Bɵ_n8ꩤ6-i;yF[-pi}\!qF1VɍH KIY\S4 du6Uܴ %`㸒ΣBw'| =B>_9- 5Ŭk7Q5!'HkkЗäa5u,8SvV0+LkXɅ [Jߚtf=;I<*卑k/@~4ndat i חɕʮa v$͌>8wKtI-n9>KnSc k'7+z[mJu3[#\l9=0t: //ߚ.lp8&`2L'tn3 kc_O}2'|lu,Y-h 5'de3#/m˒x^9ƅ;Af‰w.:g"p@?+Ly2ӗQ5[ZذvMPiW{ɕ4ק"ӷqeMo@M㸫r0dl,-c66vON}k Y%aq`$?ߖ:97пc^3ԛ!=K~an!ϭ}~ ϔOoXRÖ IH@R] Uۄײ@% 3 IH D@HzО0dH @)WZ@%  dC@ H(l }R)RdH@"WZ@% @w@+@% IW`Ӣq{ nM:^%C1)<ǃF|]k/>79c.Mo'Daxm~g}?M\O5 Ke`ܯ3_G\<3ZoKzM9yLJt yXc7.O+<oBMs\|ZZn^\S{i:VI%t<+b֣*|^a׽QJFuW!XW?rn9.&kxNLnoxsKBXc/O ꯔueчˋ."OGpq4l\I<1y 4\nmiOowv|CGX/H *2h85́յk^Ξ=_Oٓbk2Z㓎#/=!٫xۄe|wMolZ{|XZ8Tn._UO;8n8uE&_}A45o$PuW.RcuG&:RF|"9:C sHmƺ8hqc@bwb}yngcύ$/B_,uFªt#<W'CCbdqmۜM;fodhy o#zZ ^Dߵf,82I'WSAӰۊ dzXe>k`|O@ :D$1BV=M;ۍ\C?$ + yoɏ۞ "d) Q)ZJ([ͦ4gױ.7<J{+SJ1$7Qq P<թg%sDҾ,w]PXWvvCKKLn|9DehLu컧Qy|a`a=h9Ap,V8ul%LL i=!R` ٠q;m0Ȋ&8_hhmUu~1ZŨeMvKC$nݓiWiX&hoKH-OCk]>D,y!i%:&e%ĕKg!/F˚8F/)㥲82iSv{2-a٧moP73,Ivܻ^/0[cYƾv&>]2hbt1++)|.e|I-{@٣fƵǎ' UM8}M?z{͖wڸ # JL R6@)HH@-  @% QLR~Z)W)R $&WP~HZ@J@-$ _$ ^@%~JL H@%&vH L @) + ș e9]Fxw] 1JMGSeDneN.y33T23w=e.)TxC2fG4v JB+" ^Y&FQH~3|D̬uj,7Cҋ.#~GS0a]}_5SďpJBl}W+x̶Ƕtq,.0+Sx͈F7"Am޶䕫n=8ņ2zLypmI=-11͕Ѵ[9c]$X'n Uǝ'!e0`p#*cZ upI)Z{,όڃF3izlc!IX<\^ujE.+yYƶ5^B|Yv>$/i8Y,r㦧3A>)ܹkC1chd1$kXޯ-`,vQK\leӼiYf2,iQMKXkP f.<2؟+qfP<,쒽N펥ddy={Ỿ<:-?{f^Źs/GlX 3Z\L̜%{2*94㳻4^+V˒e1ϯ.X5`YU>Lr"tx˅fKh{sC{A_֙I|F+r,yquE')\5)9`u`]7QgynL6IJtӻzV,c[Wrх= }5nB7Ĩ-$^Rs%0Ӆm㶽ɱdx@*i%nѺێ_t`hce~s9ʛR>6VLdkE-sq61O.ys(ZMNޗ7p8BwA)keߣ{dTqv&azdWGMҗ\|Dz[}1x8\\ZFNIx>c>mƴ\ސ]ݸ k[c͕pФ&jyiu/p9wt~ڤos=mE,c um'A4|o. vry zNYRr3ftӼt=yy^k|騿j*Q3+ۯo{nw0&=E+Xǡ̙˄54[A ,|%t:IX#CȞBnqئ.ĐB~hoZ-k8e}78,7Ck ~i*nm,r쨧|n{^>֧(Λ߇^6u{-8cїn٢ӄaob ױ<95H.F6q{qnr j8re5XyS b=G y2ecUusc4!ᴹŒ467,m <ǝ͎X]e699C B\Iy'v ܕ2FRɓ ^K/]R|0vLMuM{c镦`]Q1OǓ'*WJ4u4~d)Ӣ$ Ƹp5X㻆cpkEҔZ2јd7n;{S;g9Rup9x81Ϳ_싖6+fuX2v_S[lÏl`Jp*Ԏ}t>ܯLH2"R  [$& Hؠ @'ӲiODH R)R {/О0@- RRiRI= P H)RD+[ )Rk@"@ @)z @+J@J2a< EOXY:KOQmL{'wߔPic6~U~wVRn5g .?ܻ{?𓵢x)L6|if|߫u#Gv d̓!D RWHm{^dqڇeSoҙr92^I?]xcw>cxĎX ;阸4\RyE$X8YJ˚TB; ,Ԥn:ZuH+ Ygrig35<(\E:@]}*k='m#nK&Jm^[ZXuVL?ۿ֞tSuwuTƘpgbK7S̫F}m448'K V?[WYt'dH<-xCGy&qRpcgSw]խ5͝g?tx1HckM׹dLowWw}x:.ac+x{YLVN.K]w|iOos1b]lWXewL/Wql3|k]"Yh_+㻺cv z z-|'.NLi?qoFo~<}S!HRH  IH+tH@@ ] \ WW [/О0@ZH_.j @@%RiR HL H @/+@- @] !RRQAo H  s!i/pE',nx:lnxpױp||v??n8My_uYr)4,Ng=>;,N.=ذG*6׆4R6x?a䌐]8巋avsν<櫣) WY >,p־ K]pхr0|*֣%aMA<KUهWfuO WPh "{z?[?/Gc\,W!4TyT*M+}=@߇1JĎqc23~6Wi<5z\ =ouuWI}N7Lv> ƛ/C<$ 69pv vἦ.k;t^0iS+(ی8.˫흳5zȜ yZT#%/"!Cɠ/&[o^ ("ot9]=T<|v^Dֲ易O_1sx_ MwA~NDycNFeb !lB-[}BY\|x7YqG$v6Cms,,cw+XX?ټ5N;YXg# lE7~Gκ:7PfKm%l/%#NcgS̡ոhE6o/68SXbqE叧 7X>ih@I'/7N/Y>__AzN/ο/~xkC`LL.Y}UVR+HR #dP IH} I H@U @Wtd('5/^1i&$~-Uzd@% @- @%p) t+P @@% A@ @%z @ H HH@J@ #: Yrzxf "DHCHNOr8?EdžKawTN ۽睾k길ie`2{' VKoܝn3M40Dn1Cp?#<ېxEqihEkZ;Iˮ2|ჩI˝_×gk`aywuitq/4u_>xbgWEw]`yM78Z[}pۮ|1Y-9k#f!}tFY^y:N/U3+JloHoq?e:y:i/EdGp!OGgO㟏>)kh|.˨ &KZًG$_.׸xDA8z/-SU߲l+Uԭ._+:+4mT7vF+؅Ϸ #X$b=7$ǹ6S|φ|gb8RCKh;I5Bf8nsR3|VsA`'2sa~ƌd-qOn\s/cs+2w<<8{Iכ7vˋ윌yF-#*)ݓ+`]ɜ h7ۂ}VWFsL5My%,k]4zUJhzfĎXȂ@[MF9vWnjyy37F 5&L|ۢsO |V9o'+PǓJ"I <#s& ▘<4ickzۋ^ާ]GvwdF! ;.KϨO瘞b7y^ cikӽHp嬷1LNSm&^ɲdF;kF'Y #wD7E&+@tO v?`;=:`kl _K ):' ?7mɅ5tcp\<v>ƞq`'3MŽ}79n7Cc$qܑ\i(5 pۍlm/LG(n1]<=E(}emq}_,Uin739Gl|+s=|D x2s4ʉqմeo}\N=/SMc_O+t)0+o R!0+%vL ? +bd+ H1I?`R R@?EdR`$ WRH @)V @+A)W@)W@P@@*+)RH \CA.4)l]u%ygaÏ>SÇxĆy'L[ߩ_?+5?Oǃ˚gkM.xxyrnkyM>>;N +^9R5'qsv:|{O[Nʗ-hu]#g4v!TOj?cce#hU|KVG_ ~oA|][M"g{iqn|X:H|cQ:W8;vVWmuTn7V"BIҩF1|?y0E@L6\_l48}OE[.bE;ގG`Еa^t%ߌ s >)xqrznNmtn{cD;Pσ0r>&Bdۄ{ٿ_xÐ}Wq1c{%o, zMڻ: k,]>c+hG%_.|p?/IG/&o1yݰt;.,ܹcǞ)s={U&tS<{=|7Skbz;qώ}C9sF{MwS%֎ίI[ o%FNΒ{o/Nť."`hےzw!v$N? 0_-xquR1ds,n/wO@\ gz]',1ff23q߷TS7Gkt>!&'S ŝMimp;; [#l횃݋H@V-Ǟ#Ҽ]1PSuR9dQ&jSIk[YaE.Ņ.;5Ë#m(!c &{"=y;\h.6h}8e%gWjtQ)jǨ2:WOu^޶᝵iڳd,GN.MKeO,,LJ,,Uqnn{+KGL08u^l/3j.Xʨ O.kշ겱ӎ:Fhox&ùNϱm-wGQ3R,b , "y:.96}z/nO/w>Kz8RU$柊^tn6"\iZH|[2u\\\.CȴG>U|S̝dž.kt)^?5^}RPl?QagVQ~ 8>ISMc,kl>v/fPfacq}]F<,nE!ߢ:p= iß=Ae!{c3]^dL6'msދknH.\457s~R[>.?U;/_Rhl?1:d5n7߅|ue'fE@&Cr|m{sKf @1eG̅F9gI㟢25P7 },x o~J2&̿>Z^0;]D˿~ΕaAnϊ0nz%_ŒC5Vm>rXL[Y^֖m'm]>-_⸶GX cf|{&]նIAӣ^3CsmU\w4|s_`?Vӣ[3{~/_Hs?3◙]8Ò㶷Vt%g G;N<87p֞K2t;E$>#pc"mM"/psP3}Ǩ''UKA!}80~G39kv?qwqUkekؗ\=?Мy+Tp&'xp x~G$ v e95pstyKu|vqu+10fF)SxXիdWL6{2- } 7@ E)bd8#m/^1k@)(߲_AUX@ @ !Wd0?@W J @++S呐AҷJsO ( r 4E?-j{}+<Mdd;`uZh-x7WsNI,WXq?5k>;e< wWfW]_˟컞YYoӝ=-۷pD1`#qH!<}ӑa x ױEMG1̍Dr^uW?%϶.Ɉ7kɾ<n: &Zvb<Kt1F%V &L?۔>Y ZǺw<9擣(s';goI!F:p ni}%#p$3F>BFLz>7ggrQuWz<9qWO+1Rot. 5LfLHߪ992|W/;.t!q]2 ?OrޯoS~m̊pp+8yWu?g`cHwL @%p)W @% R R=iz^)@P ArJ@- a^1HR)Ri)#%&bTdR_ )-w@'@%r+@ :tYm!y?)N:_O)k칳H%6ǧǪ/.vcÌi3!k'+eе]&sYOHi[>S\m"_M6|wu+~K,j?pmPstLQ.K.<H;d?uW .+k#"W|~c79)# *[z>-qfcZCIv#JuMsgqƉH煇&OWnȒu0tǯÝEbD{7]:H?9]^d*xh*N]$č(=ͳ[]WQW|aĂMNw=vu>i} S2uSZdcGcy3V\Bz^I~Nƺ3~K44z/7.r!|>k5qTUrqw⹿nԺ>aˢ`cGtXO [ .qQ~} @jScesfw ]~/sVyOO?#=C{-'fpM[M:c&!MnUvH˖O;A]Fߴ#vZ-+˱d൭qQH\C[#$QF^jqwC &?\HQoʎ֝Dq]pX?e8ɟw>WF w$7>fy~AŝӘe~y2:Hhs]N;\p|]'3?I&|L!?)8rWSϏnSq48ulQܴRa$ϐ!ǞWzĿ 罱I k;/w~W7ޡȃ%pNɘ?ea9exYRI)"-& ^NWAzMԒ7=&gu׾˨xQ 7?j߂\vN]|[өQtF8iM||0||R/^0@@" )R HH!H2lZ@  p% VJ @z @2W-n)RR>^+|՞=uMk-g;re99gt֙ evOkϣ cv /Lz:Yc^?aT4],r,`f=lv>v¹Xq4_6A+ 9+L/a&7nmÂ:bx^]jڶs xح0ƾ괮h,ת/6Y8Y "+,ٗ2tc'q|kX,D\|:׆bH-qu=Os϶q" /Yf7A)cw֗YV*QaŠ+lk`ljFy]Ⱦc"ZjSA{n5MZvWHt9AeG]=&}ܰ{}3wLcmsr[Q;gt3cܯ?~M 7EǃEe|Vh p3NJsP9rd־Saߘϓ!.p@//xzyq, Gf8-qz\.[.{r&~xbmZ΂c,Sc5mؕI q8|4fǙ\=67^6v:f9c8ntK/sq^;G6LbyteV1W!WH^,_O_rHFZfu ; un8c x^>g߲/:A)&iXZ[;ҋZ&4 NO_Ì,uźI/%;p>'O';-1r"Vѕaw}F#ōg3c!Ki)4[ܒI4K(Aq][P}/=ғ3;O{[1-[vtmqL6 t0(tqé+GMIU7\ #M]m+v3ߖi.^lgg2V9ccgW;8RZ.;[Rޖ.>A+szzo{6xGyhlM$yD`}zbÚC#.}SZ;)9=_>RغgڶUv.\'ǖȍ=a.SO"6';kri Fۭ$n_|;aAoz+(١sY۬XJm9kޏ82 ;^¬so@2@(0뺸)5$uWO* y%3l#` u7n|1ʔ?%:pNkc2?̉Xᑨ>&\ oC[9nY_QS\Q4xq?;._$*Y~S۷,nY]H_<ҼIpf!`ioShv}|wl{?:Cew_NB)R( q<g#V(͈ l壳' :.kgm.9v⌬i?+lY?z xp]x]XYfS$c5#zX\o7S1MR)Nc2B%cHw1{ 9uo_K6cGk6vY-{^.񾡅C-BO7ƅ&3İэo!=U͇ã| /C@ 瀼,=Q䚚u hƊgI3O۷%zceX$Wx1o%e^Z}_v+OK$5 4#rzl~ޮV>0D^#FUpyV}KuVG!k;sK>8:M;'!z@kXZީO/&JOРs {w3Hu6ig*_5O';--^dvdBhWwDԛy,MgD Wzʸךc9 R {$:gAji4FSչ#{V_)f5}V5ُtPhG9iOӼH㺻;[xτ#5p!ѝÁߏQ=W?'8|HOE`lqo MN{fa.ocotf&ƙd=O_'p|LlI[]%m71cMsO,>>v>V9 *^;]8IL؃ e(zt=4s ͖YHY5O' lX7s&$@據F]`Cu]윰{|:a{%V)柃s@8t57,rk }3%ŕ4xm%[H.}e8Zq[LnF.~Tm3H_n?E=-@ִ(j. ƈ";-$[UxOpgjU>$Z}Nzogc,Ҳ5!Y|t"Zk_cwXre*9z\7Ŏk/&,$+5-#b +3zLx.c $FjuЮz<2{t6W/Z}C1_``r__1W]?.Y~jm- @>g4 -gHdnqܯI%g/Z^6Cٶ$\ualH99?bAH? } _t))+~-+A H _? Hߪ pK`%^ԍQ>#a`WL @-l+LR &E%z,Lo47q[>qGi/9y8B] )9sV/0<3DqsʹB.CZJ90ecœˎe+i4 e˓൷cG!Z(]ǦNқ]EuwPVV9\OE>:3xC2 = ;tytjjuN1ɠd8y{)Ͷ9X.%Qlz[kOK.\/r ;EwN_t]blŢnxqh87~GQZӎݺ.=_W?O0FLM6];]$8u6?1$ɬ7EgğdeK6cc.᠚ ^Q$OŸj ub=vآkb=׫pN\X}=%G&c=MMvWooӲ'>*d;V \ ^+nٜo> |mOtE&.@$ÛrcbxrYgxgY4}BF΍Gꯛy 7sAV7O3eɆlzx]n |7~723:^n)=FR:1}4m<~>]M14m>dm7,Ÿ=Ӷ$6谻txK6f? xPtfVS X'>ٖ_ƾH9,5{}z6Kw\rrڬQ8tsIk^n}>y[e<<閪`692BCNɮ:adY# c9ESoc ` 45OTl -V$a.i?̪'?T4ݺ1:`h,GjZF ˞NH oOe p|t=StVл#v~m+aȔrtVAwo\wT3BK2u1retq։G"{/ˌߥ;Bh?j㥻rOwc&Ǐ3A] oFS0ߚ.iFMdž?qs:aV*H!#lY$m+.,vL֮Y)aLM2c`Isyv ݸh{]FnI(P?NUMXݿg0Ž]kK爌ѷ Y'OreBym1?vե/~$Z?+e4T.Txqt:v\M6읾ިǏ,||^<sg++wX#opy>Bc|E|=h!Ӳ n-j{Va9uux=mmztsݨjW|M` t#gY:q=j]G7Oɥtpc3sXMם>ZpM症O~.vƗ4~WX[ٖM_g sQzgzҗԾ$P@%  H [3xHvNsV1&( ]'{]-' Y?U3ߢkWk|0Pr(첵ю2*gۧL*Źke:g5q,<)ӯ׵OrN{$G/U+;MhՓ_TRMcjs8۝ s|'7a} `٥'I]S3dg1,m#ciܵ儑d C'#S$>-E`c>h%nu6wJ[$ ݋<ձ ^=kxKl: 5QD68.YŅ\%@p4ZW+ (xY2oH-%ˏ)?+f"!H {냏쮹]9dy- ϺxvWM,EDzzh ʹxxUO3H%ރܫŃğ>*?&LpFn;vqig_y:-գD,tc6رLR1㏨1.4=-htůo;]JIss[};ރm^1mq<CLmI( ߚ*㏇?ݤ~^$9Pqqmqb;|/i:֫6D{fc̙$ ݆5Y8q.^.G"߁O_o C,n;|CBH~&u[C2s;y>|:'daXg6㕟 yh=Gk d|/Q[Vu-)JH$XK)yYy^7O_1-'Z,Ɍ\z"U?wã'aeuwk?v>o /)kd IW!0ZJ @Z@  % ?T R3%v 6"A m6&`O5-3{t>lR}AT{ L& IiA Ai .vkŖ|?٠dx_Z0Ǚ#< |Oo~=Ww  3bH2er4sIY.Lcy_G<}^u$xY&X/ύGatB< /ܵxtX{Z/G;dMoN8%Iv>?Eů5%=5NI7#泻A0ʢ.k,Ԍ:NwɕSG&:?L}XLxH>qA*;}\x;%7:6*Iq͉ ˝EvXhګ/3IOy?ޘw:>;SMjp؏T,Wǂ kLưe vZ+'1?<Rꡱ "lf?{oC8!fH5bh}vQ1ݓɧbC2k"VB̲f+kP < ܐ9>wU$FyYؚ$d.ف }"E~Ld kqc[lt`=M|oKFE{|,Gn_k ʧ.\1p4ddu :@ SU.8>~,Iiyz'Ee||]kFOpx^rYǶfXqd#cK˾KUKy E0+ J@C‡*7G+mBW~П2Am?p;-WrӴ,I#k}ԹF9TG\W"mm?s˟^vxoe_V~]#*78Kx9vJCwac+Dۅ-,|VLlci6Y0uH"ɒw-R1GTZ=5 ;z$d00 S*}*{|t_klt/!|6=]gOJ7ZoKz53J8z~=grOXzcq(.yf 7o,7oMcf&+>kW6ޡ=W\18cn#-pc69sa1|^>j.vLso{'uד֯ 0u#68pYK~4oy6>?  (y '/K<):yO.>{^5YFF4u[X˯h dvĵ ]7s̱Ht.@7N{ҷ釬I .5m0:qTϷu}fFEt,B~u8r;RK'vY59\L;ZL.D#rd0ecV3M[4ǾFίn+{s#S:^m ,貉W3DF96+lUjPhoT,'.h @E;mBƇ5gJ=$04H#cikH,_ѬVJO ]\곶P,w]\\vF2 M=.}Ց>0X=[pMwQݤ 9)an8 >6XMǂS[자h@CӱemMcq'(} Lrßqݾ[N94]u4Bܯj'S0q'fu9cO$>^mOnGCR,YdvFT.-"w\n=rU=%mo|v4Mk%9Ysb8'Z1+u]S ~ 3X!5,-6bdVWp uqů>^Koߧ|]kd@)l_hT) RP H&&[\wE wA>HnS˜kbWI\/%޻/N2+@ H)%  @R)Rӝ)<h2IfyQiou*-47U4rw潔l3' -doD%{U/UJI ze#zI%W)$4I0퍎{y,}K̑t1 \]W<k甏^%nLA8CI+erscϏWdn= +嚺}O'v;wp$kZ*mk[rS|AieT\.>k/|D;nelۏk93!<5?w䮀FLperU'<+cC#eZƌmYWO;a]$U##bes7b<ڄrVyJ ^/-YE \Y|o#ZHqW"-0\}Ui:ޙ/f2rkϳqhݶW٪o>x ƒ'Cd$f8kw$K89#ϊ~季8K0wIke[VFxm9|?i}GT՝C?\w\\1/:6Ⱦve^2|i4ˑ1h ^O_n;?n4χn<##*X>BQ/ޛ>wD/ۯaCwcz,,M/E8gMXe_f{H8@mϺ^MquOgpOk($KHuɸ&OTqAh^NxnEf;ni3de۔hI>O[{~,'~v⻭S'ˣh5\l5cǧim!LGYW+ռrn?_{z'LY|FIQʫ;-1"=p[7}Q2($ǏutzѾ5]ұ<ܜhuEVSuwxVg-:+XY٤vjqg@1:9#{R6"1g>i!!J=,E~Z[^ajk$)fQ$ImU#φPoCJZ`iqۦ.D[ SmNg_|L`H$n8W{J׏Ւ57%> mg}[?ņG^).x%mÒc,WM;9d;We.>+9c TKC,ێ|F\{`<%v2gK8wSVH곾'VE|:gǏ8d5m_u[|ߏ+'|c&B @% Pr1%T|?Oʛ/'z_\n. vow|j/JF[tJ.9ϟ&Wg#+Z[h=v>rrmϪyO;굑×?kX52#]V8Z჏j4>7+ܷODm–y4­)VzVJq#q<Yeɮ8=95<[.|ާM4u{v :# ﲍlw˲,'ڋ˳beeYJيsL3 .fB 1Nj}s?@qgrʠ-{UŅK;ZT٭4ia԰geƷyqcșntfzwF./u[&][XR.s_ZwDnSx4gv{.:}H9br[eŹZk+mWO-I⯈`bcu7z,1u79<+2;|DkA$z<5_QrH,&/nWNm<\y\SI$%sWwM{ڼ+5,ƘWwW4m:<FQSE%s28efu|F?~?pxR~[W>/zBuBWz$ˇՑܫcKID xvkziUc|xa5?.<[ĒO Lir"{D2miYls G'N~mPUGˍ\׻MnKG+(WUra.ܣW5<N\`BxN8:ܚJӘ #]-|/s]ǩX'g3H 1;wQۂ"b, (tǏ8Mztqp~WNĒr&̆ _ܮaci̋`\ q#n_j<>aͷe1z-rVrsM7DzkL}U0"Z$oDM E{rzƾx]!Ιy&Ù| +_Q2~z?m<^@"F%`_۟lqˡTZue;|aׇ4-o29s"t1k.DwX&C~ta#M1e q玧Z,\8I 4G9,}e&u|Y˼w$y%fCo~VF[Kb%='dm 7McSf3{cn=Q|cu zZ7 wK>{:בXHF:C׽>]W |5;,ڥmOa{˃;Zi̙H56,v%^xi#t>Ycr<;%q% l쾞=ZiTYpe&~ĔxC,(򌽺{1X|S3Jtk7ǒ/_rG|U9?/,q TJ{Gkq-i5f^[Ɲ>&I`nh&1m''11{gH!xqC{ܴܝK6!cz宺x&>֓{q2)dnkZ[c v{U1o%}iz AK#c`7n>躞Տv~64;crnmyr{&9a2[:$8D>cGޕoXYd#} +ꩌ1U2zu2P_b-ktr^,zW3Fʎn- ~s6_]vW?3T-!iHmTz2T4en[ :shmXTO ?fEq)۸ou/xĤ"R P$b!_0J-$B l8<))2_m5L{r'eR#0ހ\ӊsVJU˟!9rVG}~ihuSiq`=ָ]n1̪ uӎIxd]\@55q -eJi)%0R<^4ƚdߎ?#kHOeuc:Ne~%ϟ?$.ybߥ|w[Lk:1fx7Wď͒+ƽk|͵)|N,p7bnL-jYrzkMG;ºE_tcPf~4;=.,kG+ ťǦ[q~QvFk^[miruj=Og8 =]=x%iW+WB}FXp[+\]O&Qq7}-cGÕ&熘wbޞ@Ҟhc7QkY܏&ۣ[n>͗7k .䦞N;.1r ,\ W=nwSbțU3bէnGa@=yI_˗Ot3+k+agqK1S$n}wWߦu'Hؚ;m$nzSsF;Xu85ŭ0gɗoE0G׿?!lPhj]yܼ(l C#ef>4@JWëGS+Uz#ý[{~N]޼_|1!s.u.?sx<1/c2QgP 1*ÇW6xkۮ?K8+,]i&yNuێ:g۴i|+AhZ +ξףϿ'8lo-cY`{;-m=lIef֭8&.96+(ow(Cmn1|Ɓ+xwHe%-{ZwsU'Ǐ/xynfz,~go/LcdM~clCZ{Rg^-nm2xNK#ِFWmYsf)roa %aqًIh:)h=K\kM%of3:z^f67y爗]Gk.clhz+cia2'>h16v(yy@-=;U$];H.=AϔAlUy}F#tn8>럛~Aƞbq9ͷAv\rrA-]Ge^<;/.6~Rh+)d=tSqd $-.tiS$M;ߪf -5s],x"FdkOIeqe>~Wo77Ptn^ٶ̲xLqYp\'t<Ć''v v/},3n+Aq^Ov/^e,7kL˳)]Jɂ,`uUqy}7[3H TXﵾ|wxh^c-Yk><&Rsso0;nZϲr13JE\D8c/A3>a؎>. ~GvƇ`\;<ܙ!J{}ӑUgjiF#r|ӣo t\/c2sz|SiVYxRH x>~|2e8>o][vggkb#pHΟ*~8KZvA='}{yW[|52\mvc7.KQ_#=ih초q*6l;c;GK.4M<9oS͑|>t}I\EMi_->.[o}' e<%eqOOۜWn\/JY"ng%s%WNOg %ΉT'/eƵxw]O5Di7['g=/1Kc6HZ Z,{XcŏuygVMNtZxoԬy7uwxy_Oi\P^s{7Nnvi{3協?aw_8|~>DмS{G\8wܬV?k5E{ReAdFE^__N|>qvֹD2cq_*xZe˨FA"]) KlaYv_ c+K%cc~Oܶ>%$Y;(쪺b m6ˢjB#zh628zu3"7t>UQp[abvM`Eb{,%x?(\~ %gc?U3K82^A4^ICϟ$j22=ctËuuZOS.]tuN ;f M -{ :6bV9Gww>2&c#MòQB2݀?J+=u| akz];k&[H?IXDl_E4nH[z#|EV hs_Ԧ`i#7zO|wŽG/Urg>_fcJG^}E<75[GQv>6<XxclPD8k( ׏|ҹ'xDʔXo e[W#/Ś[\!l 4<漼;8So|)3&ҵIck Uq,qCE>5-Rd/$='^_ş+}pҾ%h賢;p+e^5L &i)}67~WH3[d.C -?}})RR@-  @H@#DߢBwRdEֲ"Yڭ5|ɹghjYs,#Pqrlkr(7}T~nFneW"+<|Q9Uڻzk|9Kvvf^+6I M.rNoI"7{YtO+Yo|m\r3C3{|]xj{ISs] R-ǽK1Y;ZE[zVipxv!Ts&׫;Ǭr[3,bd~LvߧoNwUҲp` כˍ}K͆RUul84"KO .;rmu^`˔+mzGseݕdb#\yΖ<,cLyrj"G88Sb.Va>Bz@%dj*`ް>c\p='j<֓[HS}>x9}]^cHLykkZ>tĆ.>)oQZdWLÕ\9U#;L9>M ;&km'I)4GCAS|!V҄Nf?ޯ>wcφ~q. 2YĚ.k{1ܙcwr@f ز3As_XsatrfY#$twNqs[ӷ%k+QF啑"mPh9Agvǧֱ|FoIȹgKsxt''O4kTٹR'8sO7h>?-^W!oXVy|3{2BE]vY]UdžtdB8,Cape;ruZ&{h_ rC]IJܘiZau\ܓm-0O#9;MMH9_;.|Xxql1Pk/?w_MsXCLqdnQ?b]TۊS#]!J@;aѬyvn-$c2.O⧐I?-Z}O"F q%ÖNXf)du~$D\QzsŌΩ}RloZxrsvsg |ᰴ۫{>eɔ9._fw@%K۳]ñsypq9nXg<S9R[V^^_&MmSw-_A# hJ M+KCb^hڇsz|KH9%&ˏr'n@{-2]$JcZGpni%rqwc珪Íuh +B\}czov`t:6j2?#P^39o5&5&BW!kI/x @+P  ))RDi}ZMS3ul]A0 b)[t["L Ҵ6wJ~yǍ9&&v͛!|GYl~ 5P6;j q˓m;MeՌy]0ovyᷝo{ZIZQKZ}/'Q/W^Y/}H'<1ٗpZfpd7cek2y+ı[J&ʰJYYc`vqÎՃdc\"/1 R-b9m2bFֳ4Ϗ9?ү2y-.Pheb4ƃJLl 63#=DWIT7/e[*# ULז)>&#NdT RULr]- h#S-M)ە?Wu|Ax?Ok0!%=ysy}-exIoֹ'+]m'uˑ5C]ˉtHr8ώuGiێ@ oNu}z弴p/6xTCTsy+:T9芯R''Y+mD+quXU=˶xg{-t~3|7g=& k:Dn>r1ns?k .^Û LNc9\Qrt]}r 'Zx+ZH1/˫.qqN~WQ'x7䅔ݚƵy95L |S6ٸ>tF^1h<ײ˓R˥kycii}[I9MSn~-hf_ <'mBW'X^U]3Vdb Ьr"S@yS1u+r[Mpqת.^mM)F>vT >k5A,&pi_/_c5x=ۏ7.Y;4zw݈kl Ra.3.|%ǒKrP:-2W-G򗑰T6 w <h~HVf yX‹}ݞ@59jFf 6b$Ein@>y&$Nv)ּғK]_Ucuut@˟t_ wxwlvF{W{&G:k#O'Ue^R#KfZ-G1w!!9#&o~ݰJLgr)@`洧(1U4swO/x@%.lz߸@% a"` JSԙ/,\k,'7.|\G>NW&j&ZKy^o&Mf*lеZLXAr$XikF%8n-OWߺ8gqmr3gcbǛ0.a]Xd-юIGb>W4ks_-<}œkyrLL,$+G7|dgcA&v46= m}NE3[RSJV9ס&??d)> 3ba{ttvכ^N=F9w n~~#ٽi1pe dD9=Ƨ c/G#oM{q~ZhwSXdvvD,CjG1M\--.,1`}v*{7KDB.ösOZX8 ^P]x܈'L$~۞O6GޖwXd"'qDt rʀz*nJs!7T3*ɌHm_&K7U0"?$`ųu`we|ne4\kۺ-7} |*٨2lKIg3d药t胸n?Dy?ORjåx3XZhaYsGǍJҚ;dq$sG 呴 [j~yssneC8"جHep_ 蟀vv@4o5g8l(v] cR:\5[;"s/Hn/`< q+WxneؔC$SpyN0ʺ=#k#>~`\n6 >Q/p}===6m@ ׻m^Jxf5p<[:lOP5UM>:o1O['WbiwUǟW_Qˏv1sMwpLnhc,D0?\mqMonJV`{n {z 9Aܩ*/xA0$ctl-"64KcE 9zrod[Fi]+jrQCVvZ̓R5|7!cJV~\^|۟U˛ID sm*)k\9U3E`r*u\>8ԞX6?dh[&#*- ]]y"Uɝu7<ػk׆L^c inC",+;0{?~$yHȞB]$|,{qGdCAYфG# n==>?0Ԑ9>[WAV(nl0Ll rrDPa*=3Xݥ^A0Tk_<6珌. F1=}Ʀc?8Za|pvw:Sklk ߑksF@]8e,+ȓjM"L|llyP dd>? qܻ}O/7|Ho&+6/7JlE2ywG%PŧڿrbHb<-yxQQҴyt]FAw+i̪D~>@%2տ@v߲.GGc*> ň^J߇eXc韆gM^Lgu5s`3=ܯ;M>,p/b :eNs` p-x|r.Ұq[b& kE)uI%2-i}ZmTPpߤR>j7K&-k82"qᶾ^Q!۠)eYKNQv' C 7 a0ӲG>"v ',c0'@4O)=V9vz0@(˥KcLD阔z Oe@OtZ8Z/Z>OU;=!K"VvݬT.O̲R5UZjRneϞKHmˏ]EprdZKZPO{&e`k򪘘d{ƒKd[w#YC_djj6J{v[an+yx͝kۍ]f,Wx69F ,sEՆHĿ韜f8N>>Ym4<v^VQxU–/m:xOd 'E &GCwϦ ax{^oO]]GIy%Ӳ%2NIK8LlϮSj2BۣI̴6_nHSLRGY78}ΙseR"T%4%+D}%MQoS"(_ ďcw\o,xcBGƓW-;Y>sK,ec W`Jll;& ]h8uovMoGqU8{³NH7u5K 7hsk&Ў\U/Id.s L]:lD:˻emUt1M%:Y04KHߍvvȑkLwH ;YKuхɖ2#sZ;UT.H92d~ʎYl '{< +}jGɞU֓m`z0*>/!%.(4oZcYe u|j+U sB ?mظ/%i%|JFY~G-qnLlond8l,98z/WgpH{b㙦(oϩMJgBÃse{4 _0nc\߭Q_eYc~+;#}%VM'*vnwQjYU~k"ΡEOzx/Lv{]n_;Ǐ[?5_4.~]K&xBM>_"I# ~;!l;+?k*Y`\259u ? @ \evwmK^.֒?EÊe#+V"+ʛND9%Kj1NDOcL>e͟=6~7Oe-l8& ͷFƌ>QӑYzU?;W07Hʓss9d[2ήFu[cv\W͓lqk^w&M\y5} v@IڹZ;SC~ܩ-&G(UEqZA?tBUQj=hbSKȈ&4V6uWVވĸOElPχ|*ܶǛ~Im蹹|g~qDƱ5vIXtU7.[}ގG?ļ33IC_(iu8zy"Q"r*9vom/XK&>e<=%asOW /9ōŔzuKǿ )M\Řd:h{psۛ˲er)bwipgsz9ey^M6t\q\{˅ZYLii`'I otDAwAuIœlƏi8r+Kn߇"oC^m4/¹z|t0:q$I$|Ѿ@9ky}Frq{]w* RT 4O*kIYmT[<$0(Sƣnnՙj:VNt=-<4z˝DŽa7s>:L̮",xW7'M`]c+ i=Ls7h.߸)4i#UQ(]tRcMUpS(YOIWƿӊǎaIH9I)"vQjW-^m\nNFtw NqhrFۧzlxd{{hr=S;au6rsK;OHds,"&q+-w*a9dY̘QsgIQΜQܮ.^F2܀^F{\X4*b 벅, O0j't*]<ǹSK!F%j)^9iXqÑX i+X97Oy>[uՏ'\o:CXʕ]R>6qu? E7H.qe42u(zin*IvsXe9ly)w9LZ;Pu#$^$D}q6V<̌,R[ 6л8.1{-N|F<tיofu ێxyV[ɬU#+mySֹWr_*kxcA*u=*vW~.8J1J.+8$+W-:NT]$ׂA ,D#ZMu8x/vx'.v^\=YYur˙ ܞǺzqE;JwCG.Z`w4 iX >+y- YJn ^2AG{PG?dZǎ.cA.})1iy&D+jJb׻Q4hW9ⵖ赒OBq3q3At26K@epfQuscfGMȀp$1o_Us_n|ˆKdJ3/&:d]BW/Q?¸bqsCOrzOeeGwxi'"P()o~k씒8?Äx;þ)Z~4K BW ~9,7xz8֜PD9-'Im?1:+?7׀# p99o=ucy@ӸiŖ[r2 cM-'A ̒>o#/ݗâtyci x ^]=^c~.nx^^\o⻺+,}j:[rb~ŗv2+)]QQjVG;R5|̮hFdOob,~G[͓\/3/,u}J֚O-C'I̷emdky,/7g27#zw^'U~[֝A8o :[dl)^m,j:sG]|<;&\]e_v"+UerW"WթQ[4ȪjZE{OHKAy=>Nw'Z:ܯtwjCrZ;rxqv;rpї{қAzQr>TyYܕ1U͓\K i1Pee{6v뛓85ܝm ^yrsmH`Z;u $<8RpR[U:%7ךIoU4vdw?e%qX);Z[Eu1V92&acy69m㯌4kKKj/Gmy& ?WV;y&ާO]S:DUL_Cr=#5@ۅǜ{3a5pTOek+2|I*QZSMynkKL61˷V^_.^MEmuBgղɑǒ1;ʚ^JhNi 'Dd8YL{%1L.W,xRz8te~osunDGJZW-+2Mj㛗P  vVSN #tjeI'1gfr2m@"D i{i)4[Hgt6\ t]{8X\N:}ixr.*Hď͐w[pa܉1-cp0EDAL@ۃ =+Z7A Xc7]wHXpzE<<~L$2kdI:Ԇ` wS*ܣϷř> 9*W=- y>O *9 i;$RlmdƊ[vY F4;C]7}>g1Bor( tW"2]} q0Ym<`<I)c5tqvDn3/sRlcnܶKTv\2-;>7!DnVcfO3 +R5}rYtY$Ȓ+y~J[W'V3/i3C~d0:Nh;ʽF病rɏ ;,nuՇ;H%{ey{fĸIb[k pHڼӳ[ӺFniz:i͇#nl ] ~Gnw]7xi.ğ'prarXO0VS{ ߥr>2jn,$;wBVQH@-)[,1]dh {MtXdqye\~jwˬDw-ރ>o:۲ge?M{/#Zr5l̪Z5캽yUHҳXghZWͮ1ε-@۾ersyc'/Wqe/8aKϟysG!qstqt +fx]WAYEF[tl/2soPB+ᴟ{)$SjV/oEEdW"yE4֒*fȫgr\Sܮ#2(Q_;xfUܞm;!u[n+FW'4i7{j>.G1SϗȵSDuak396ͮ85̼}fQm g*rϓmLy\&}D;(SBPm$d%#&Ϫ6ԑ1tϴoti|R;CfiRYWP@V8|c<tR<~mk>YYeal\cTitU͞;wp+[byx:.̆5eǖ/.p ǫǖ?a ^,IniTmɍ2@O]N5u+'r\cꙒddHI4|SsɯZeЃO-wUS[~P|o<0mX@a h%+S# j^7Ե7Gs:ڟ wW.|ں_ۜw g2 ? ~ik?әHC(.#H)*uJG'&ZSNwcM.A~_Ѳ>b>U LWx~>pN?FelISXnsy@ + 6dMdUs0t109Ke7g3ZX0}wY'n}'nCR6->3I[E-oWܹ)˝4O{Z͓K;Q쏆z[t'<LGi5Gku\(Ej[L寚[6. n>+ƘUO2rz#n8cHv>>[}/#2zwar[dxV{U,m@{$1G'S{x}.\9;VMgS-PK &s*onO(ݻqħÙS1Cs?,wmwVL-hcmۤ4_kl}k^ 4N{#-|Yǥz.E&VtB wsN~ܕetۏcU;c{)ޣk89 s y:;}nׇ-28sjh<)x2'nNmwZ+%ÞH%pG]1-8 3+zNMD3[b齺z'%?GQh|BϭbM|c 2q66*859>Hp2a{>?9{y?-OpׯYʫEE#Ise\R@˓69y܍qPk#T$Y)O,XZ6eޮtwQOkyhcɌj${y|7X(Ո2zn핏4{ȭZuY4;W""~wEG;Iy@^uɤK76&⧗4w,#Y8n$3<*Mʹ.'9Wyv37Wڝfܪj@Ov~hQr9{rSW,0Qdamf ,듓6&N]F'#LqkY{&mA4̳ͬY+Eu7%H"ѵȎd7T! L%z([I%Sb7RccYK$7׋~'x\6$nSiiI'Hd{(qgYVخs]Ã\ܘ3x}ry1}IԻur umk8Nd 3갹ẓ[I;]{Ǔی^Ec=ꭚJx'wk\ɧK$!Ͱ^?Æq'7S[r̯  ivcilت[L\p ݻ,s74j\r;*=ˋH궙9Hs|ɇv^>4X$%G?f0bhцD4wX~_=?'B/E#^6nDf?<\O˭cu>xYWGߊZHiC?+N|;X1  0,w5WkySb 1$)= i㒂) 2&=-m5^2el1tmYc]EM7&Jb/\]f]K_C;VdדMY'zWgwiuO5R۶DxwGznː7 FM&,k+ct4D^OY3 f.>\W#Md*}Ur]^l_WH]QImg4mٮV]YYs92[> d gC[gvv.[یc4  , 4 "]82gY!c< Y1|$>:n@~PeŞ 6pm ]ZXuLK .Wu 0%, _A{u7W5ÓMGGEs[V6Gurܸcی ?W|le]vUaKf/{!?f rVbyw(xHGeWO=V=5<캺rҵԳ*Fj5.|TkjtO\ϵ D~i#Q'ug\|@[ED\nEXD7Y#$ iL;?2ޫʿHmQkI3WejSddlwYܚHײjYYNX\fZVm^fF%ϗ#|pC:g=xW9QpKf{k9=U.<6رfhwaT^Aaóws)uVwsl.EYY\Aw.LLUSf-r*,|LkUM-WY4ZϹZd%J]ʑx#o}Ǝ]OQˌ]8Gyk9l=8<#iӞUogWa$Z濘q&Wqbk_?Ta_B\,mYbi[ */QyMp×Xg%vqrOQ [/={;_O*gc)02oevmI59_8x1q=FXͻW>x?#&I H?33;Lk8oW$#lj\c|UZ ۖa<]*Onh*aF2߄!$J{HSOeޔء"X3!6<I>ʎMvo Zt7lrPe9N'`Z8c?9<;>x775M="œdN+ϨoXoƚ#Q5-k>=ٗ!.t+/'>y_oS}o-otS#iXEʑѵxkQev]QpHrm8~FrW$ry1c>;8rVDLK]SrZqn ii乤:Ȯη=/י,O-TaΦއ*{y'Լy>/ĐrƟDv哓qxsMK_2Y 4gŘTG#SF 9ugxqt6u_MKa3y`7cGn u4*]Ōׇe/$iSq3qi(]pawwgnH2eyȌSݵ͔ޛ^|gQ܀jl -qr]m?? 4)\$cEqE]~\$$[wIgc+4|uޔiq#i{F㻭{5xj@{Us`|~^5fK:Yx-VӧǗv) ! "[uNʆvJe`^7HiU\w^O,ntkK 3h-ɚCO3<]zmrlFtU/ʓ^v+el9vk |K,Q|ؒ6hx ;7&^OCrte&/0q_ie}.15s1@;(ˍSqi4ގ}_>\Uu;zvOisckt /'q|t^^]UV0LsʪG>5 r9ƭvrfG2յ"zo4F/oenJGL;ߞ,V%*I]e4{r1 ߺ6o6 z6!Ŏ4WZW,;I3΢Y3Հmgri#\˟bdFGVu͞NcX{\ZFIuɗ#y܋Y~v,ӾM9YȋS3=֓=Q9Gb{5 xv39SyqvY̩Ɓ6D8Ւ[~e\ʜjl0U˔H\ڬ Xe4"uϞk.$nK<;Q|HٶSٛ$j?tmrcTH=K$ۚy s-Q(yV׻R>=ї2H{YMi gklcx.ԣb5͓Xrg:=oZ&D1X^7#rr<}.8MHn6cI46 NX9z6C-i^}L<}VlI\I>9n@J&QajAxYrmM~0RFȈ՟@qq?On!8~$Z:"+VcmzXɌ물xp 4!ƻھI6x:ms^g'&k|Rw|'[[}gq78G^$rZaq7s=J=Fl7 0K* ?lܗtc$wZIRS ڴVظ:6^LfE 1yhoY圎?Ɲ@ 'z&$nFSnͻ˩^]|N[WZz#^{ hѿU2:(l,;k$p]~s˖^E׼QM-Ӿg &e|>q<_A)0t]?)o;]lZ]GF?TsL] #i/ǥysOE"r_:3s3y|Rw6.ϓ;-_a}CSk], `Wr%רGNK+==>yb=x`xcP#'6û>aCk5~qn7Q|v+@iӾmxW.^5{1_?ٝ+KAamۢd'*h'$Ov6{W̝ϒicͿPʽkq#Pپ~Gv8M2(yjWW ]szq4 ?@<OWu4vךY#dg[{elv#kd⺱ȷ}G^'N{+0V63Wlj?Ha艩:;5ý˻gӗ[L~ hn4S O*zw||9bfX ˞/dtcCp9=<6h]D XccǍX dqy$xo~ExI{Mł(]y t/,>X䷡w~W.6QJFs113>O,8_Of~/2O r8y2 emDժ6gA$mcCLMsU_E=mՄs_*79sIt+|5ͳdOq= 6~# {{V8J>PrULveMXsA4UMEkoƞ9& <܂pn: , -w@y7_OÓyr`A%;oW3> )ҦKI?𶜎 lF[Kdi>+bd22lEɮ]N㇫BRJ_7'g&7W?Գ둦+C} s2)ßzHvNYr Yܗ"i;Vw&)rfuɤw2^hrɦ1g7rd5\;.LD}&y5U$\d#&"Tv&g!vnUojpLcKO fq)ʜei /*3I[6[xYQد-ۀVrj+qːXaags-!'|]#ڋu޽B6l:=ϱ葟TP{b>gXw=ҚvVFl'VkYgWE–s5c5nJy97_iG\kG`ѰY\9$hZ.[-rWtz`l.L;?,!,{a.|МzK|4muӀY6ÏTj,ighpXah%f~< .UWܧ z1'QAFDZ͛xlͧL'xkAODZgxo ;þ ͈UcHtMxߠ\L_GѶxS@4`z4n>ZIx xhV7?,ɜN] Iu3ߖ9.;ssI5vem<3ʚ杣^ dRmo ?ďY n2Q=3[yvsc|C~⃧Rv>Xq$xm:Fw>rpgc{W^ewF-GQUG0Jtߧ6'>1!{g=֓uɟϨ2Kdu5n;8sчKu-͟u?M+8q$^yܮ+.BTOӾu NNh'OҺ$sF w.qaWQg~At QN,ymHut~2!']]?-FU1hHDz',Q ge]~.'u~clZwh6si߀vvl注eXGO>\94`das-mǦ?'4~s+68olc.V$$h߆y;cŞ7f׼E!后y5eeCLdBߟ[Q v;,&+2\+&4F6\kdm;wf85Fo?'Ă)C=}җ~[Mcw$s"ƈŒ\8[ҝ:!s{z.-:wQi SoFͨˌvvq%phwm,!Ea(iӃָkla׏yM mCSFd@=Ccڬs=cn?O,,l*iL]`m꼢lAhp|35qз{\~RU-cvc6S~Sr,lzڛi8:YE/w7~Y]FZ [SrrIr~ʲ1 5>:9P|Cl)aɝo;>gl^cl5/;+|f">L`m:,=G=˻&OxsQ2~cG-ox,yy4Op׫YUd굎\B9V8 <涑U]z$z>L |y'sy l. &7񦅝cC>;tq ᙄ8#ó;U;|[|>k h>Y.NbdO knW^[57^fcmqsgQLLcpV9}08(Un0wZLn4fD)8U._ wZv>3%x<}\xKsۏ.Dg8WtOQY{eR T oWɴu-VM~~דnκO{eʪͰI+M/B4Y$GtvGxN IӴlEHlG}Wu|ɷ LlWzcDgʙ4Y'{WOxWe28pA69TLVe6-L.xW[.&D1\M9@MM3%GtIt{u9h 70O#-t]C* r3$;:wpBÛܦkO!I1 ;'ӕɆǷEO?ю9P:[!; /~f|}Khi2p! t05q궹ޗ5Y"V!gApA`[^s\x⑑I/j.!ay{[$kLJ|Y,8-/0&/>kZ^Ʊ?3HVQ螓F< K"9b -El<9c윫Qb5uՌLRX[΍?uYyx%nr^GG[${Ăvy301Ddi+i>Tfj&:c ϟ7zn=ld-ͻ>V8PmJ``~?L|;nej{:Ϻ^W.k$|]כbѳK+粭fwjY\ӌ#%SOy]&զN]361㨅ß:{˘}5%lQ;eyV>>wed̻߅\Lj/"*E5Ȩ7ekrr4xXeb3l~'&mk#"\y*5ʶZj]ʐ]pOsI 7l7&u=ǡR]ǦUhӟvFSHEZ#'IQ*SLCtO[`x%Pv 0ET !pӝiS V}S_% _csm{H5^_CjsF;'./? ,8l(ίzxLkkU]$li.ߕV3W>Գ ,l3}ILf`u6`]W6^޿ӡʱ(3٦Ya>{}s^;*od/ܱGcSÖҧϹ)7rǁΈ^rk|t{x9GxXccI%?Mɿ i c-K'V};$ov,yߏ~+a|@=éz|Yڋq$'8hG;1:e6ҳu8׾M=9;׷7x3xK{Bǡ{:|Y-oQh G3^ _}F%WDy! #XƲ'*N{gQ D":s+a?v|VքvG(q wq^|}4#3E6 :chI>UcV4j1LOS^u8 ǁS8eODfy/< {X7y!H?e?|_x j9an;H7Uc=cgX{Ky@hoڈgn@9|Oa00 vCipdMl;~3.GtKX}o-Mn,g}ŕi6'P'U[eKMwÛ]ەخrۏ3G.l2:JW֖\+=7GFc2HOHzm{=_1ϗSuM@Y,yyk˘|~eǖ[C%K;UwUb g6u1rUW+Qj:W.lX ח˝֭Vܮ[`U~NoCKڀ[qnZ38{}7КsK[vKb/c.EȣXexֲծ\cs繷+5VW&?ZwQ>mr%^mM!ebHQrLh/MU;E#gv2**M;(-OEQoZFthp ͢8AS8dF ([*T>E\?m=JS[ַz&Zk{jZLzJjdz/q42 'py3\;~Xp-soou{jW6t_/T3}\;|#sÉ6S2h1ażi)VyUѿ\""l7|,n?v ȋ{43ˆT]Q= J;߄]cHֱTl%HU2|{|W~#|'phz`wOuw^4Zo i,LvJ#\{8bS3UslD$,k"dmG?EϿٹ?V3P(.l`^[ۚ\}NS*||u7Ek lvNw;갶ik+m+$BLn0:YiǸ]3[ҜI`k l$|L.s<^I|>gqϾ?uHrWuqH%5G uv恳DooZc&,e܎6T*_^Q\#ƠPF= ە[IR#o@$I#eau+hʰ Dh$ɞx[,lq4ws9]M唓{o:C4iZ|!&&>fK%ŤMj+y̭Ozonp[3tdHv>kZ:ww@ gBNGI,azoyeis^hR&˖_Բ;˃oQiVJ?z {:OC[8%geI~f[dt߆y=O.[ˡ<:$}_(!]}I8^d~Scdg*,gMޞd 0;\qiMK没saw/ビiOR)2^>~k.ߎ|`Ȅ/IHUL;?c|_K)Tmk.ܵv*jo!vܩr ƭ2`Bp *L=Lzk`Ƙ{-*Ok}3ÇVEw+w`$G~#CTvbiH1$6y ^w]&=x.&F4ntߙoP xlk$ҭڼ ƔdG'^.$]=6%{.A 6 |/s 74AnV߶cdL3ZgWG=aW8̅;>ZOFtɗ珯{i`șv0^DgF]NmyEp11uφ+t9@@^1ɒT<\+1MCX8myܞTXYŎ(\gy>Bhn:le5v~-=dG9Q6y>^ݵ,3'n(;fŋ P޷)VYUfdmPYe+?R w`mϘ\O(J(ɢcSIcźZk%"סņmNUɠxסk{~H[6}7+REJq&c<2iA豱(]KXz>~Ԫ%--"w즨r9QJ w;RFU6V_Ti Cl^-h3Vl+GWQD9¥i3ck$)D2VOg"iQۯ_=˘w8:YKĔdӵ<3!8s:XlVY/W.\wq N֜M4L\\:}'Cr_?#Q8kt\Ws̢T#b noms66]K]fG8Zw\|fG@=V2CEwգ†iTm.KrrvcNjrΗ?UN>[7kǷzKϝʪ4>Ox*)8?7n˷'Es-z64X88msȱƇZ=wǖR>:L }Ni#W˗.yoӳNÃu?`zWrwXsi`8LyrMn |GQ=n+9]YKc+qh&y^ / g-.q{y\Y![GHwc U9o.>9K#=M=ӗkq$}+7J,V<( &i¤A!TbEPL@tE lilxbz9pWk$UY%ǏLfl,tM`#d+_FI$Vsuuy3[^ gpl*EHԙ0ݎ>ϔ|'tnCT>4KZ)s1pQOur|8H1݈dh86Q{:,ĺF}Ǎ{[c5`Gqa_ŗi cVߢXc]ijZn|s3r+1dG'`iv*(ڦuhYG|"c>b9.Q@8<Wf͉ ,;]p~f}OթŁ8wr9mcch|j.f4k[bGDmve{(s:螘J 4@EFٿ3[oWsg<&}241F[n m[R#~LdK^2ydke?jT22,y}-m?yiaő!|'v["8p T'ctdØ`nJ.eǏt'o"|m80|]c&<ǃ$耫4$ޗ3cZH$>gz%}dy0woseu|;90aӏ([;Z$"ǁɆ#k@65sçoQ걾L9G!}sliŭ|z{$+W/զKFc[7+\\sӌ+!&~hNÙibZ4=G<ڋ) - qN QBPh dA{T5)!N{ssoJ& 11#tmI~;=/S:?9|GkOړ|]3յa_)ik[4/)]'ES5\ BcB$yVF w<^3YxӲ 2[2S^㷮1 o%/)Yl[簷"Ƿ4>ײ}~4HD;:ܪ1:&456pސ6oeg+,Op4p]Q7[uyQcE6S_&Zۺ鎕=zzgGR]6 M6I'/!><-cm{c,'Ⰻ*纚F-<?O|ڶ8N74 I= ^Q!>Ȟ\q~#hEmfÓҬ9釻o*]dmLΞ)[@QmOkh|.gNsmd|~*-0'qGjD6M{t͝j&ͫ,CatrFָs~-cG#@-9]lߝ~ܨ%Aq.,nɪ0)߭SM;ec:[tgg_zKkl2b3k;o~ZmwFj#+Z-e= &,OJ׿-*F&P8Tpj䩱p짴>RFߪ4)d/R"p?Tj}T68ɩ>Q{'zt];;u5}.($6  Gɾ8ȑBOVλ q捐_+kn9S]7Fm8՟!x[y/WWۗ4;#M#rvyy|ƞBz{L>Xi|]OrF>Tlbǒmu8Ҹd:0 eնKKW/S,v['a!6]^89nyn-tjXZT#lrQ|>OsoXG_{cHp|O8 cFxrl:fF;.~N|.|a&YM׶Y3,hdEX+@+;f/v㇇|&2fŗ77&bQp%]#KAVH5g̮1[F4xHn;t=WSF$E7C !y[Om8QqyOeD%&7Fw 7yi_34E(pmZ볺ʣ8`Fuh$2Zm܏uM0Ѵ܈r:Ckzl{Z#nӤZ'#NF6c:t8i-x^YjiWA$i1``hz.C|>=^dzPQq̅toˎhA-mx#Yߕ tUi:FĎySbׂ?)<&v&ߛ%e1[\cuTS ejˇ\6V7ˁKz7kop=~3Z]ԞCO%eq(V33ɯR8Ҷ~wv 'kLwnHεv͝@tk;ۥ۔)D{ZHfL\>HJTR;zJR |.ݙ}om ÞދH ^=i3+IUSJzk*cDamCrm [MlH%wFyOeR3di=YMFxm%Ʒ, .\= $G=W˫zRK`La^%Վf2H[-v^>k&Zt&\L\dl-;renSn|dp?wL{f9->}_rZ:,Hdt^IkΆ̰üm]e+2陎q(ݤh^vWWjwN×9dqءbGdߕpsnJ\Kޮ/ooU8/[(5x?cGFsl82^&M ÁcKsǫ,|_jMҽgr%6uǃ]zvW#?20M *w[bU#13}>\v&}&e6.;(Ɠ9Ohp 8YH@mӄ#oT;&K3K6FuQaJ2NO>d:lSp}O!8z3, {.L=}f=ec6I32򛋅C@ITѾ.>?\'h[}=Ocvtxה0g {\wӖ}\6?&=$SHq6vh4a5NJhkG -t㘤(Nlhq^I56ۏ.QWΞL8gUlB^[[{m&NA+$p(R+_*ht L3a?1-t^=qRv,$mDv\ܓQ>ڱ>K!pݼuZƽTj蓅C\gLHl G#ݕ+*s5f8/:0t;QcxGP9t.O|w yp ,Շ@Ȥv>F3-F} E9e.Dx1͕D+,|\\v#@B"WvuڝSY U0eq.M&G;w r..[Ɠ0)mG =GbWt-2Zbd=>to{@zz|$y̗-rI3f ZkpẬy^Ņ4=OrwoϿ-}&jɹEP1x LYdr$ܛ[9s]|"y5ܧ>ߪBL" uYBm>6I'Ii|̎,k!l+)( HrJ+4UVLCLT6V^ͼ2X#9Fh'i9詝_I;*gr`f#NDܙ6~r&J{nL] =Kn7smϻ(9U) 6ǬgYZJirS]WYعIպ`HTOeϓLlyLR7a+F|g;L?m8Y\o۷h#ӵ v<9*.;z\=ExL>׿ܥ8W/[Z.exn3 ~>8m/^n8,Dz{N~ EqFnV[FtWR L׾wb~.lW/y|ޛK L\8x8v˄rkٚ¯ͦf|q{8p=}n]L;gw WסJ&w>,(6HC+hLY\#}xU1Or4V&g+TX&ΥC4;_[*2xSٟ l=Y^FDnJ.4z82˺܃ L!# tS*^EU5;0Gm? ɍG}DJnV 2u>'bgcٲ΢-BSМ=,y"|{67Nc"ŖG)>ܣvx9vjdǁc#xcziS-kW CN3;;ƻG1ƅtc~^u౴x[AvG#.m@]X/OMw/EYg`e3C:Xrt3UcsC_w,:9fMy|͑葿B\u6[1Ny['{[<z֞dWh>)7ZRc]Sjm匜ni g7F9>ka+ ʔ~T*ەQDp-#+j*tr&;er)84!39Ȑ6Hbpp{ Gz_{>uDceю3O rqɦ乤v}› DNcwEmwHƴmk?T43rI'WHi͠}92< &pS!kɿT4#;B7K8{ +lrZ>;P-1M-7ZZ7!)7vV;oP} x?3m}>||lO>G6"+c'wlI굖\n ^g+hN&sFUxgLqgt@4CSH"ZjuJRPߺ&-vlcه)WJڽJYUcQ&5W5[b۰\7tn=/e"gj@Ǣѕ78%֑Ƀ܃I+IjTgW[Ib6i!Wiqt*m\/j.-e`xߕV+dh, q4ŀ䳡-u4;RU.=Գi_~*)&_)鹻hyYҧwg쾃e_v3=Ni.0Y(\GS(¬pՍOkXG+YV7C&$ʕ߆ǧZq9˽kćM> N-ZkxyqWM2oLwl8sj̹'*iIa55͟vV3oϵA~{oL̇2(xfKK@b[O\?2gx1|koDE9|8Ɵ Õlfg<\cxw& wSѵZ^\yLSd^8w WYg߅{oƌO3O0,'׺'[UsK$s _ >Xֶ0p6}imc_rxgz>+<=iHRW$g Y،IryH.qU"2ݒ-tp lnu 'LgEpy~_z¡5ZnThZ.L΋Ք1an f==A;Ҹw^^2B~.FMoɎl :,%~iFl "S&#G@Qc<_nP˃VL< DbM.%gՖ M:(ZrZ> ^CӨn6,2a"|[#WP&7ESo8`,؍Ϟ @Ȓ/qI&Sg7">-c|I+?qy{j=cϓ˚l M$ e[.'l Q?bNt_ ]j܏[Ǟe5vd3#}]MkWcx컎YÉ,  ܷݜyn7)%fھkW)}3>oQw NiN[;fX]5⼽Is2=F5Dw|?3OyW4xdkpEg<\-Orpy8x-;>'Q2B/PXԦsCQH'ێ #zaбFp?%Ɍ#3ӐVYKI>;ĠI>hڦ>LG7CœݸmōC1"5+z=9/Mo#7c}4 ss8 ekaq.6g85!k ؏D^5a \Yt#ȕ "mn7iqi5eÓk|ITƋ^_O5;oq9m'qqM Iz+i2Nl~ ˷JڧR1<}67Z925cd-^c]-RH%)ɳjH9AbA%z1=~0tRVճ4} {'IE>@l95N*Y ɛiM=V5[QJ t,zC.x+qU&I; RBkkޫY?X旸na4IgoǛħ1OeM;˒I|?g^|RtGLG64  ;9H-# YrDZ> ||3Ĭy w>깳ׯOϖz^w<a ΁?v}mskoj+<ֻ߆+KIhqv6޿VxtM[6σx[ƓF(4Ӽ䇲+we1C+4Oc7XV>Gj!{9u6uǻ2ZtzvWG S\([em^OD9ߎxwu <=JS]3e׋-/)oqO9q\ߤ'PhbУߖegH΃Ϗ%Й1,kÈizM}.麦#\0Kš=딵12o>|6fCysO^o%ˊgݓc{VqY6&KN4-WDdl6']ۗ\sr6%F9K׌35--lS,m\Jqt ϋFKLx;t=#D=F.oĝN-᷌?lT.~w]SakogU5Y8v^3;-s9ףn-~gqܙm# ~+Zkz]6+u4ooy5=>ӧ.>y'??mH;}/xcXcFVdtFCZpJ~qō dk97`d)Y$XI0p6ykXPoޯ"胷ڻZ,#c2VUj<(б21`k]kZ$Pf Km<*dwqĶ'o[n6:8Ɠ#C곰M^]QdIGM~O`i:Llq,vu14D֒S<-׀ #UkTQ^On/nMO$}ֹWzC{Yɳ<33%~6N̟%#ps O Yǿ 8p)g뇆c^O԰Α'h ؇:|WNxNx-o> p V韻>g7y74w {oy~%F&;5 >Vms- cge&_s}o;pćuW1ioǢhvFqD|#c&WdH8&H0dwbtzWW<黼OLXܝpiu+A{rwkÜgnظw .Lczoܾ}=t# OÆ8qbGLk\7|&Ymt2cgF.hX!y?fz*xÊ|9D6pwS S p9[qMV>1p!q'|%#0:pbG=e1x^}ָ߅iKECu&g95cu;r4\|y42)0Kf~KE1ǽ(;:|lf貣 kmk;w;(:;cbS tloGd3MZٺ5E{)nx_2Gt׵UW};*{ӷSn tփZvts߈9% ݛ\V1nxV4 Eɛֲ:3}tq]su9O x0wK,,Oh$lV#)t;\,m7XX2ebC {~[vۀWGxd˙7DPezrO+[(98Ό\@^Ii~pt=E$d:9Hp##mxk29s!!ߚMr^9s<#tC-ج41u':{⓬~v=5v4I0b. Ʋ<lg5mn+LJ"X2` % 1z'MoǏ9RJ8H).'wxei͌w6pOCȊY$`ku1ۓ]8O ''2'O81u75Q۶Rr!'{)NQFOS-Q-tng\*Llr~`ST8D:K'zQhcTN}*n2c>rpS7'1v;Rsl2uIa7WWExTĎi&4+ O9Cy-o6V5#zETRSZ=/MMHtAu <] \)5V>-fd;'"i_E&>ꦷ*"OY߸ɑױJ6IrL{Kc+G6yXr]=R:8/kޓX9]~>acKXF|5uׂ2f|=^IV_hд;2lx:{:"㮮.淬,qckZѷ%ig1co~2?v~# 8zn^g[57zGAˬ;|ĝq }|QܯkuL#ͭ#+Q ɓQ$gqJÒwi>?ķ~MVykǩy[j^6b-u^54tfǺY*@66Hџ#Oaj1`\x [LdOi9= 鉧w˓Mx{r[jsVq:ïzǎs]1غ6'Ϩjni:Cy;wQZwp\.hzvGǰ|;I\.ێ7#aoS\hwԳɵXd")jۤ#xV?=gQ\]f{e˗lx___uF)2!&?ٶ3|x>_[Đf Xeg UXqvǷ-]BZ4nrt["t;9k_I/#=NL}z4n'*Vzio|_^]q^ ܊UDqK,lz?Ws[_ >Ւ4n=(\etoꎅ/5߆a=V7{dΟu&? $/op;v=R8ǂ/5daq W?Tev׆Z иt6@?fh t]:Զl}忘w m6xopF>I&3JL1wc='4òA#hzߦAJ~z704l)I x5Xq^ΦSeV3K-]!tMx46J5X$eRj:;$knLrX34`7itcAk͕Cgi贐xEXY؋ ֒>igm\FzΛu=ø4_༎N?cKrO-x U%1AchQ4r:zQpcڗ#vۭ&CH]ǥtdi!b鴪M vQ(e7%FF԰%cV}l{vTvjDzr"bUuma}N[H.D$Zȓ4IZVVcQ'tX%6'M%7Ҧƒ+ʎ li(lISuUQqi (/e6U̪4E-IF |Hz!|m ~^Kz^l mEmHkjκ1:Kk(6dv_Vj:2d4@},ltwet#lp e./+s1g>62W7YPaŦ-y~glY2lLm{[ t0t\6<Dzǎ8FELy IO,cMn> ikxy&!}mg;x,hߊlG_wPlm%ŤlLl5 ?.v<>|;THj:3W$Q-s $c_E^3ʸj63\3`{sƝj5H@ZæȡeR"ӝMoK[0˖,Cw9a*E˖ݽL85b`ݩo.guC<6eyj;x8{.^ÃNҘ\ ؖ\zI%夓r|>=Mk2f|qH0t:\,Q7eYxsDIOmpO1?k{E탇~mOx;?1gq4ָϰm-y9.8uu׆ =͟U=KS&pGE' p67 t7S2u&#32%/Km xݳ잖23L'spc‹sl+|$u'&\W^׏<]/uG:0bӱ-CR;~XZ 4r궭'5R:lvO ᦑxhsX ^Iv9qZ:/s%r;ZPV Z p؊h듗9*p._kxy^YQkq[N.DrI?Guv;w~#z@t7t}~X^J`E.W<<\&I\y/G6X j2|6AF\s")>RwG $>9bѵֳ; [!hNݻdN,Z|=:c2갥oQ]S~ÿˌ0:Ҕk~]R1#" ^0#,xlsoalcSWbBɴ&@$gkq!x%TFhWvNi4=npP4&8a򹧃e?!ĎZ_s5;"Cp70t i e숼 k2浏ao.ߨg&[nG{c+-x/R;Gf+i5M 9ZEKp"Rn-0t5K va&+CKrQy@<\E:mޞ o^M4H[6#/ʟNzG/;~v)QH- thۺT'D|dc6q״!1kY{xua4)\ڸ)Z rnIȢir%œ\j]seEz3mfBA^hDS@")=%=6=;PupFqK"*5WX=B \-8U5Pץ\bU QZJ],re'M.l\Rcs,`>Ɂ[/LG߲E:gX~1488nrsz"6 l^׈љ;a'Ӥz||ߥ&-yxJ.I]%O k~_p삳]_;^MXXwT LlY2\Ⱦ7+73Es+Xޯ;ր5wqrG $)@|gutܳo5|]dW. |Q2.g6>K"?A1ÆoߟN[n oڻu|.V͌旴\EW.}u m5> m˩9ɔzc]ĞCsu=Ji_$Ǫ6PyW'ÿ=԰q4MHƗˆ\ר>S$7\ bUwouǪΝ͔E{~ryW\XͦΏF+sM>|Yvn; bikXߛuac5櫦FYqmqW1c+_XX(.k^I'G&F/jmgclzZ{,;=ͥhZGcwL\p 7kvn-׻}1c$1mMՃrG$r z6F݊wUǍk xX܊$poeRltɋ:3C@h7xߧ~2 wRaI:~Y2׀6Ez{N~N?'y26 xr娅;R H]w\u\9k'=>]'7.|~2sͽaY[jcKѴ:fcn};%LdR1NR +L">\s_F^DwGQWQo ?R8)ZB /~<㣇-Vri{=迂vKelEȜ!鸯'9szPԣ4*FP/.l/ONQ?_/Y>p.v7]c1-|1ۊNM+r̖W0ۖRhw m0ƾVdC[Zd1CE(ys^6mYO-օ^a oY)_4Un2;$>>&pgXmm4,pUN # 472\ tՌ0Ɖ*0yFkm]oF볎ced̈r#H8r??&Ndtc"r׽]VQj/XoOm8rq%hIan=;i)%EwQk[vSbL#{crKydokq?.nGݨ69lQR} G~R+Gpq%ݓTcpJ調Ĺùq m1?zqzָ),1Y$ U<5 4uOFƁ` FXN$8qlJԆ8,~फ़;9V3l!:O<;*^7N<F7 EV?ce uqQF rx Vut\ݮOIºD$boe;]|;mW`n97~a|GPZqyOa5.{mqz-qy=OCɯk^YZ2Z?^ۧ C\v! (QtU_ ;9W$2G)X[[yo:sG+)>ry6Ymljևw%e[sļ,ed!B,xx='Gú6$ySd5-/Kȫ#벏[/[䛳_'uOY:&^T.sn=aΧ˛-ZÇG2H3iV/ D +zZƴv5z:l0חhz/be^~6l8[%^c-z&cAbW`Իq'9ul' .w(<Te8k_mP :)aQMdf$L<0Yz@seޗ%0@p"˫ˡxڧuxtEIe4oVk9S:o hZ6sqT>g:en2x=&Cױ1BmiYcK=)$8:E:qǷpߞ1&(woPcKςW{-*B9 QZ@q+# vFM2ǁRLwnvWxuuYe90ۃpq:ā{vq:t0e)஼/3/{fd&,t0 Av>x2éi%cMq$~֞8Ϸ9,j1|7o^G\jsONjGL ?Yw]s-+슣jdQ<ҩ'eͫ+q\c^IK.vïM(ka}W,G'&]ddO1˛m~\rn83Q' 61cfc\K"xkMU8q5ۏu㌬o6St0c,ä%k#乻0>IM4qsMr˻+,*m9P0uc nƻ =*<uy6O dÝr2|vh h*6z;Ik6FѰxW8|Y٧v\(:101#Vp86 lBنRIjvsӂV[wLXHTûڵqF]'kld :;.!ǰ݀{}b6<8H3En{`ݲutLȚ@u x>2[dhEr&4fnxW; YѸFxe{sݾqE˳q U׆[eb<.;v]p ڭu:z,fI e:c`d'}YWl|0z#&?̺tʻ"lbGHQ6l Ĕz*e PEK ]ɰO*&xEmF.i7Ŝd]zlV6(e, ;TQ{ aF/,N=0sli"0Z\*,:߿TVmuKMLTT VdZ6?U63֘k?Ui*C2&(ɸ>M͸nTMWgWzIkoSҺg;Ʈ<'9zK":]Q|/۷䆲8h\#:+hc4i$uc7qLi-lNy/Un, [OG>wv֫s3 mG!&[^.ܛGt&gd1c\ *ZO>|BܹrMϲG?'.G oA&׊;F,L1 9D7P n25i}B6Yd}Kdr})H#pڹLDhtQUW>xX!i&&qmkE$Zx}/=ǏR}mtfd\9:YvqI>Yx|̮>g5)y>-/S59wIej.;0a/ټJR\bX?VyeOlJ7j恨kr2 ۢW mN+}ghlph &; -&͖8sYUgvocXMwAg{Sm7vbHoLCh?`Fʆ{G}4Z пoCeIG0dVnWZ@nWOnN~Y/+EKchİosOamv>RqYR}h@u⽘M?;(8t C@< F|?i-k;[I7QWsax)Eo;/-̍18u iZs/ =B7;dH}w:dsge&?t<7'&Gfd9_9.>L;e^c.ZϯYS7Pk8(ۇڒѥ}{-qe^n᳛WV>b+,sP 'tos)J-)_')7RF]i; '#Feh%qrN$8C+PʏM~Tm3-1q~O >f;/"Yl@ϛlk%KMck*gbE8;amSc<[$5u/őCS 6ϺgɞǓS47+'~4Ǎ =\NV%"Xj暞v0O^Wuo" n^9<$djA2Kb!v-r緝"Pv =1Y}~喜gesˉ6rVnl6ȟ)kZZd]<.NOg21$ŸHFx ]p㏚;o @ [ׇ$v\:!c<˶mrN^^Wwf}#F?&p#)"U~b䵑CO%{ZGt|eY?Ma܂+^,F,ߝp 1[2S E< OMx״W]ɸgDm{D^>>=x:Gľu1a/ܮN\Λk_@T0V6úO_[#k[(^&c'HtEgmDJmln\/)ZY3|?sKpne.,ySSm>FYr~]Ogǃ fDLI\:N =,h7~7>>K_ELj'r,'O>I9 S\0n4F#!cEO`ݽ)21 k4;;p#V dh>/Ƞu ]Iю+7yΚg E'??|+lZlya :1l_%z_oWL 645!)jO ̲ $޽UO7tgŒW dxcI ˗bko5EuC!QSyOr{)"|L\5i.64,)Ӂv⑥Bv7`{3Mey$/k$i<~ݽ&{LoƋ#yTO4/crꟍés;z8TK1 bU&V84+M[;Q.<5l:N(Xʴe Jxrcmmxy+n?n˦51{ov)y['a5N+},b4 ]v!͈Df5궔ii:,5i-c/OhD271-|R֛cVS8Yrco3OnCNlaB[c=eNeÛ,˃ Z[ŁǛYeVwX T|/]ŬoDF6gn6G;n/'&=]O@:G2(#~W[Xh\]I m#F>ҹwS,j;K*'ѰF(ELy10#:_Qh{Xm/{~ d5wN4;jo{-Su\lvg|Edufs~~;ee\ {0_ÆeK]ux|5,GVeqb>tW_Wt{k_kHcZzqv1c2b:XHؚҏQ%sO*f< ~FV|8#hz3M}G;xkCs-q=h{(|.؁L,¸Uv6~\3ugtcȱ:WE^3˛t? vfd`lL@?hej@2 ['n187<%j*3r$"{,.~^㏨eȋ&%kFSxyi/h1>,:b:^rpq~-y@0}VYMNȟI23wtk9SNa j D#٭>szŅo!'Qkᵿ)u+=EvFȒ~i"LC\O==Odi{Eu¸$mM2a >6À#}ӣ)lyeCD;2};pkC s.8f14t%|v Kw{,U>[sMklO|dF76 %)-$Ƴ-R hi66Km{7H̀|Q\[ksf㽧UǔezEfl.g/iygpM[̞gJ^\OzOejMZ~VMEsݟt3kLrLdi2&M/jU$<.p7qWn9#j:BJ!ܜ[nqems \XG-ɒ=d60nTQq-,DlaIWSǰ@V6}]ecY\Yxp ۏM6L7z^#ܬ*~o/=їOCfO:U.ǝ]ѥsl춊G9kWI54 _kJָ`@=9Vz8@ .C2qiDz2oޞwU|LpR~gnIqpuܝ(etG1/\We63=7vD0p*¿NjM8ZΑ?Pk8(ExO-;%%edL|%oc#uw^)x;Nn_:=!qE幽? Ê* -c(w7[Gs^;s2\ޖ00^ly<rI߿'إ<^W~&wlꊀemSPF&V:tF մ~c[}RmY}1L\rd9Ҿg&ُԯ;<们n>zu_t]&MA"yO߇_[ GkͫdKGjj$廻g#U+4g;$C~_?Mm4zTl(Rm$J !i:lwFxfOPQ)Fu{ZHΚ x͚$<z_NNӰa0Ɍe`9~;N(,m5i,wd'̷@$›cFmDmJO]mimH{CT丰ɕY<R6Ʒ<<sR׺V,6!#|ƇQbټVy0:Y\FX48ckw`R뛓pL-ns8]N/?V|~]^'wXl:ETPBU*'[+":~'IkMWȰeUaŴyrF%*֒+qY7+-JڜU< I>L查NcK ,qX]Wx kHpNm^rǻ5 ?Rnj%U,*l9f6\Goϧ>|[qxLi>+?ea2LmstwVI\O;Ex$R4Em1$n>Zmn6߲,tPDdD27%qR7 Zepd}cF$m TX'DݭUO( 2CuɖQK3zƱё36E)7uR,[RzwuXƦG'eN`ebXG(={.FO 9eTyz*${#ˍ껵)Eʝ6?׫& x1\mϾ)?\. |3 +.yqj$N&6@kȵ\|u]_Qdrl|P׼ߖ=WG~8+x&EL`)sgr穨ώCtdH3~tc\m+1V᧗\66 ꙮ Ń1!x,50z4S&.LYr};j$yt_l:./=gdAAw⢏xG.<G 5:oxx.[Fa|08F{?嗜=/kC@*{' ,KnXwiD-k 0"`}ЋJjl4Fa}ab:y;[t}:kPKqS,1}Y88$CKҴ*9 ca/e7&{ǝR}OO5nwK~ryEӃn<O,{\$!#qMtIW=Cg]tazU%ey|ğ<3翧/2fb|Ǹ|*Ϩnl//xGjZl&`h5Şw;]=EŽдjpA憀≿#&:z>˟|fz^$l>D|ca$8T\~}Mγ#z3Q=G3继]ycj`X Moxͮa 孜 ct/u<8!fYm1؂{Ț7[V.= YbK1knķ+Zox#"XxlXѲ,^忏xo$$OrJ[rzImؤzK}Hq}ȝwN nvwW0uӁ*0GL\"u3ߗL̺%da¾ezz]>8KFi' wt`sEs^I!m6_ lzU|}W%hو4QULqdYT.oU dyO  \rgc]ʐYEҚɕ8i+, _ϓO+yXWcM Le=5a+cS,-)c;k`[{.|li;i}E*9;|إN]9ֹC oږ\ݪY,peyj99؃ۢFx7ZͅpڽT㻡}:/p|Wc=}ɆoszzKFOtEɑ]]X͏ovOBAɤb~Y kn<|/-1c:O{uaϨI~'?05|L];!cXƽ=xMH9c%IٙXq~Y (~ǥ&蟅 Vk#0 9E//c~/1Y-cO CˋtLF`.N<8㧝>)~$Oxkq|@ge^z2Wsyrsrc.qFwfN.w\; VW\qzծdSyqi_G_LP?"W_wgp#YS/ԭa#.{%BΜoּ4AQrӣ'~i!e%9mG9mϲ,${-'<d 6v<<eG4:.vѫIKm/DIl@ ^Lb^Q yKWҲcdr\lvL~y֩kgW[<⚬sͼw*v E@M ou|Gu<.'!6%Ā8i!tb:";b:O4LK^h7xe39"ѱ/?O/ߦ'Eǘ"x%]JϗA4EUa5 ?l's}֘~Xu4+L#ŝMaa9KIk<ҍi|ye+ xJ֓lLHIlHVь%TJhnhc#Xs5.#dwxuKΐ]FvS/C xQs3&.^Q&]ZL|`U-4RRO;O.i) i;򦩊6c@p"Rs#cj%3' "৻c*9X8潓ݥ&00ѱZtɀ '[D6=F Lً \90ḭQ;rk3bb4pв8s6-cÙ,s~`Mp.>vZW/ǐa&~ yq/GIZ>5`n<ͿP$stվ\1M^nq}[F7Mٿe61ɾ0N*EQei"sauϕi#?(l/L|zɰ8>b@dU̙P-qɕk$=ʪQ4 N*|cU޶]x0}98Lb ocOA߂V&YMF8t\FќvY,< ~IW>;X <3yg-kz|n;1j4'c<[ -k\kN|qľ!Mf>\NY[pِG1n:Zr^;S=V?rx2>aұ;>#\{ruXsucW:\ٞ]DGgwU)V2-[_cߌ$ܐ#KvMxcɂyӥܱa9. 2);}W~W<.!$% O-cG-'w˓~"wMs F]xth;s7w?4m 8»-8q>,{qtg#Q`]<~,pnf[#IL)ۧ_蚞:h\=VR̲c<{u+W،Ye$Xor) IQ|0t K,|i uS[@'9u3ef IDX2FWOlu0Vu},fVe}zB1k^ٯwE%Zһ"Ly1a:rC[\+udُ7fV{_SFE+^|$,HGaIw㋟>_u[>S<s]rI> 71Ϩ^kY/)ld@esg˖~閃T9)hGYmKŲ/ -'-EONOz[]Cp13Cc=GOu{\sQf,&̏i[Q޶+Lx>Y&_4yjs'{uM}yr</dݍW`tC|j%quoqq70`@񝍧vyfX`٭`5ϪvDoWmWP5veXɖ2jshZrݗ R%t#󼞮ʚ~Nm8Wujƽ}Dэȕé$wZLvSp4OSC$=+N o 'vLSk`k@xzjJeMrz# ,l8c^2O pu9ǠMڿ8 1yg[Zh1@[EHT4> x : JSSqo1ÚXax2i$Ț\\_,/{lrdm ?e U7;}iNg,ryLI#mngOǦ6H ˂h%ċش9ZQdEǏ#zr@7ns YTٓt=],;8{/;y#~>kx/nfʑ-#^Q2񨛨|k]2K Lq*ɶˣi;n1!QF1e?eUьN`u+(cek">Ȝ#ai#sWEk=Mm,Nú63TSfeqVuM4vO$V{-|[qnv`"pV,-D Ӳy+hkj CnR U4G<[c$6}W&.iW5my&qd_ SSE=o=%`]?'W#H\ǖ8Qi<]O&3Rb܉ W<:We}ҵT:}R%8^-!Ϋ![zLy:r;3NBC;z_CyܙkxS`=4rv\[zwegOr}̍G2nl $MGL~;xwL̆9-~qǧhslwi͍[O$b7S7m&'dny|t} _ c%ھ!G|oVXB{ѳ bt9U0Z/4inNaX ǖG@ ydp,.^QJ^-i2?6guˌ!3.Cgcd""PVF7xY$Xxk;UjO{^n')m_`kZ߈r>dgZUߋ˒Ix/?:~[! ocf?]Oǎ<\LV9tvЙge!V8h`vXy:?c¾gwŘ hWޚ9WՏϓ^'Wa K:Χ$ٮO(ܞg7q1wgCmwZ>)I3˪xGUKMGn嵿4vçD,ˌekݠw1Ɵ@A&fD1uU@}>p_AƁ0S薻8lzn2 hnQz*ŧdadm=Wbr1G+ֶ:߸*JT6ekzHa;"aeh^8Η,&4j06 Ixxo[CO*&5\M<򱽚:Q0*G~xÞ%0!GdK){qK'"%:F_[ @>ˣ7ľ<=Idn5b¾XM0A=$YplrNn n8 l/<4j,rMIt7:`މ^Kކ9]5>ԕ,~s&]3 ciPv=DɋUˎH>rM}eҵr"A !4QTe$K,ߔޯ8oٲtw#Mun?&Q6g*RE{\'zw p--!9yÈ߲,EڦlFLWl珙wZ+ڴ1G.}M.^x9y-^L/!޳u>99ƫa6ƅqB;σ:nc[ag&ՓSMvz]|X&I2 mܫicua@:H!E0mx@g/OlE>th}\\x|O/-^|GAx#!X4ws`iay.O Ӎ19>] gUp+.Sξ1Lß(~LiU$.:煜lۃw@W) wer?:I#=;tYNg殹6Ƀ dd82Y˜+?|g=u݉;SNN?9-`$MRGwxv#O+L/&Y$kl% \TuKwӱDlxg1_( CuMng&Z3~\\fLox#}.wPv; &YTr+xZI,hnn-t7s$<}o+h=J_\Skix/'Cvot^_7:{ddO#ȚIy%HM<2+'}UFTÍY=DZf6^ |Q*۴]#3X0t>>n|!5@ףr_~baجv/@3"Sq{#V)w(1v%n)CuoSq{^^\Xdh8CذIюB y~$Bq]c8%r=u8ù6G;*F;ϱO_KG9@}L/LWSnO"7< j, H _<KfHe!#F$}rb[:Gp d:wr߅ČX2!ȖY<28lsH2Qu)j 3n7ҲV/ 8ni4SRzZZoRLfysa:i2I'amb˖oF"{Y􉝏U'>S큶 8LRetQ5{uyT0#2i=n.VHhʕX1$rj<鱼0@> =7of;rCIoMǪUՅF+aݎDcaލq*%֞;tps+@7U+7-SڴH琝eqSW[ENT^dSNYdZO~7[r}{U\cafn[ s'sYc~LwuXֳ$HZB#VUhne #'_TYVxc,o&8Qڽǎȡe-,_tn,R&L &uZ8]xeuD@.QVpZJKh*3#Gq2l-x ̴oSZj։4Cb]5rFF?DͭcvRm#wSجaڛ[cp *&gH|.| O> BRtPh6NME%L؟UrU.ʣ KLXNDW Oʽ Tg]𷕒$ǷITEJP:BS Q쥬d;kjys|~x\<5o5[JjQQj[''`vSc;SA0א71o]O 8e]8r8V,زiizs)gN9mC|i֛KMe>;oKINiRi+wn_ λ$KLH2+nc9K7S|s^#/ú\S6;N`^evǹ$avHs}Zxu?;6<0: Q˽H^j ,-rEٍ,""Ct\|͝t*3UO$ys],.QO]5gpv냟ʓ? 4&3{Ϡ%l&8}~FC3\v0D?_E7'_3׶K6""< 'M2| YbNK=eɷ|C9nzRҷi稟JM^P]ƞ8*ln7q0khk[pVӮSGpM`p<kz#eO.plgOgX^9sSAO#&AGd/%i|W|܏36Q+])T~E_Q8Ĺw8J=@YީOEw,U"-EWOQLJpn<4O '6Ι#F\[ de{?wqx9!K. ok%YHYfGoIQfc|k%w$m<m1setqӸ7FfHp-qTwxSl2Dޞ2wV2kOP,;֏ڗZ''YsKwZx3-nZmOPFFQ 4mbΝX$r&QdhPYoKZlȓu%(1$leLcs!Z:ei\3np{FT`C̜rDC#mUFʧ~+ x҆vMm<-3>,o(=F2C[ hyMlXEF#kA($D'CHhڭXC #[wc<5A%o@ʟj$Z6LbmrrFҚdŧFN#j><׈NVOM8q7?Ƀ^WH`#]lU\qF ahc4cZY!!Ai=oq"h4 fr@ MTI6Hv,o:\wi!sZHi8'ԬoDn\r]o0{@ q$=۲;٧/nKUf8>GuOFLT:NC`鍎bNEoE1VńdODLwt'/X\-&r9/ fFB\pgxږt3sbm4p>[}G,(ZH ;Wd ITSJ聴}V  RWt0qzM,c\!Գ;4vU䰇6Yq ۿ + Eɪֶ}G  sFA$_enGp<7}ף`ckc/M ݏɎ\5Ɛ3qwA=xwpO:g.P,5z)Վ? ccH| Ny*' {IM=X7+Guc>hZN T--.βs@+Lno>x3U``t8iGhl3|5r)z}R|qhuw"J=0rQѧ㫺 ֨!5XNs RZ?&H{oq6yq~,). 3ޠph7aǎۙf9p%t̂ kJZMKwK$4P=UˇNt.sH+-3"na# ah#o?KW25lYddň簱IhAQwvm]P7K,"vpi!eIq@=Y%fB襈8wsht`;zgrDitl̞r[~OM|N,m9ȓwK~~{=[S+oe 9BRls I ^֮RUM-?Ab;hDk(f-lq SB*{\Bxk,ָY[6+zKi\B;/1HZcibqK ܅9,; F92[rV鈺_84b_T #t2k;Nc {Z[h,bc$?22v3cr"P6gkjRim;)ϟAE),C,MC|qv0ʩ=2SM\\GA\A]yiϑ2@]8ʡV҄ ߕGMPe{FG&QO.FV9.S[<Ғ" ,-Fg5#a# l89X[=Xԭc6 "lxaM3#LrpJeeTq|--daHz/_q]\|6>Ѧ|svu/{Iه&Gټ̎)KM&IXl\1aI\ n2×,n񺮙i V\c$>8nӿ9zSkD͒<1~_ؗ׿k?g1V7k$ rdr:K+ݑc*Y= 1)@'`)i8y~=S'y{Ks'e>I›^%_~ WșKeacMd2gd{?Oٿnm 7)ctDlf_˪|sa/Tc84l3h:9+b9G7̳ 8y$5clz)ed+K21ͼA:$ΆmMd/Z~gQxxˋx&v[†3Uiu?1su;=N$"MN<ɕcf*,u1ŮiHި; D.~{?͋ Ǟ66vȯydJm?OhӽG<1Voޕ\ w\.5omyc5-A`kd:]ns6}熺= k\v9uiI?  8v 'U7n,+5sFF4cL3nډi5<2;0 \\3LNkڶ͟W5&/-2|с( rmvN>4LY`Qa5FyZkL9cTfDd(ؽ8utrK$q{x DMòFiAlelycɏsg|IϒяoNx [ܙ#t]$ {nB_{c|0I~C({Yȸ7uT[b=gh])7eٿ-*PmFY-`f4Xr=B&zu7Nl2;;'{ޯO˾g/?%zڊxg-" ʥ2AW2 ދLif`oPebцAVY;.rz Ik)0=S$ȫְT7Yмm"e[./йuoETi{-PmcK&,RƓ=WN~{NqȴtcRߎͺi{pǔ=8Mr1mI(0l!K|X]8,b^ظ~9wu6., > Re-I0t#HY6IjLmBtVFYUd$\aUNÿ9(i6QFNQ| N.+$ъUf݋i G6Me=*柵N+%ٮfkeY{[yYqy"E6LW h\@ر,zwXed`ylxXe MVY űF.M>z # <..:Me6"$D.dȼ{eDsA*mZO|QH4s3+Oդc]]63pM~L?,:oggt[1B8G eY5}>渲?1Ijq[Kroѥg?.~C_ˬf;Soa o<s,o4~<иx >OˎuUCKHHI=zg#`>3Hk{I7;kI_Lvq*ts}l 6in-4VnG1YڌӰqc_FqQ<HƺC1&|=|RKW+{ϒHNWy1ĝkUvF~#a3Q۰z{\ez\f<{_׼IO(kXucbw8fw~kyۥx'◉|xr3;KgMEi=FX_'W44? N-g_k?%a3>) &G)55Q+%qs$J+}1_gc\i#\Z+Rhlu 1n ~vc0ђfku53,}69Ήdmw'ײ_w:Olo[0 95[2:Z.^OT;̀m:0ּu׽mNzO}HDy>hѼ6GcvmU5liBd/b4.m6=kny^NKo<0+677-sN qm7ؓvj4O?/Rȓi"lǘs`quJc?^p|D"k&ad>WXo[Y'rMqniy0tY=qF2C8[;j-ךZclqۨ|-fK =bɇO[c\H@sUK4`}=Ƕ ".[ѽ:E.~7{/xN|zh$N8Ti7^X46kVuwc.k]u*glGu}7}2)z'K |9iŅe}w@֙oq}Rώ1]>W08xۨn91Vc.+lz`k)+XFSI1C>~t@DW(SNZMO_e4)r#X{ퟛ`nZlo9lso|rc{4" W~qx$ſ{?Y9|r Iw]/t43^`0HW|`ELܣl. G"2 SpZ+Sd9r]x}-|lgoؕë19c\Lzdw/qIvȻwrp'"lh n~=^< 2@ {B#,?(GYUpcOײ:! w*v T`_(JJXz.V&~~c1b\Oր;:9Q;xCQp0l|Vhc!ˬ|zxT|ٹyݚv.{6.qNrٻ%^|e3v[e 6J8IJ$,XÍV iv)sJ-w%5 [W4@9&ruǼ_|RN[B0 U6q9$h%./jjZ}c,!s{`>,idΉ$k]Xz%.D?ٜö4 rI8cB]RdK10c`34m'sBs&[ќ1兌l37;9_q[~7 l @sK=opGW<2{]O#TZDc ÇH;A ku\]y ۄKcKIޚ}V7//S=e7V&Nj!)^?W5|>V>˴? 1߲%\5 1q(w" wH(me1O:Lÿaܞ@O9-8ٜF2&66^fvw_ɗuZ}V3Oꦄ8=Ж^HBexb-Ե)6HZ '&&uz+lii)akSNM:h›BmE AB54w, fH+; D3g.~=g Ǒh9?;.!{ 8xx#Q|= ޓæ[!r GO!YXJǖoe.Vyx 2q%e6DCqϔȧ_n %hD=4@sH 2G8~:>cL4c.Æc{rg ۳G[6CF}RW| d5] c7.J^>~tú$IwSzؓ谘ɣtǀ츒kbLgp8e)ͣMl>&cs\ʲ'u4tc ,0"ĝ8k&\,w~՟da÷K s D'/ᇏ)2F`G <{WF.[ystG$̅팷S7ߑW9/q7+L2h@M ˓=>-Kh啥ld`En;ݬ[vg|-q{X17TY-%&Ul$0_A6Ih^bf1FwZ3$8 4;D~A}Hh#W7]u5s]v~ޫ8oKw?KKjvSqidW*4w6(lFYS#׷}gTyDY/;.ew," Ηr7e)$#3QZ#*{*@2omU],Wv6Uگ2o-qcjXɺZFuI$I"bT,qi($X'2 鰬KIҧ#+LsVI I ?&AӉ쫼m›ekzXbA&&=8[V66<|kʚ,鯱b;좚͑}m-JMMIXI@[)&94֋'-(Gf ذIhGk^/3RZ\m}:xjnґ!QJ4vT"qf?2%3iOgT7O.>I(ܴuaO}1厱It? ZؘrA /$Î&Dd.D.gǹqLy\ٮ(*5- 99)Uc!:G\%&,f"gxUUua»1Le^ܓZm`5MK I+c4-GI/ziغv8lS#^^SoxqjOQVOFΑPWb^Y@5ΐKZh;"f׷͚R䀵p K{; ٦_ᕀǂ%Ŭt[ڹlD! q:@^(-{K7͵gbo/D/)G@ xͣ.?l|0LHs Hޔ <7%Ʌ&<AkHf]Lp_,)dl8?ogwPr[$06"bAL~cG̿2r없PsH;lxxx|L9sraVeo=nY^3?yAǹqf񸞢7,:s)Wt=rxj$F="֍.U&LHjehڝܩS{׺9{vQciYmZG6&䳂k"gSܸRF.*ܱcrwhӸTeFpaYTy1_6lWɏ^VuLq}vZJ \^A;~,F1< >؟-9F%©FY;+{,i^v$/+9\(='Cqx m |z޸Y^cBagB?mвc6$*Ki)Lv$Z$MFɇ3#j$#'$BZ .{].3yN|I1iiׯ׆[Arpb$T) lVZ<κd(M)Q+"u? |C8+] wKV8IrC譋xCǙ%4P$K 9\[_/Mƿ%ռ; |EC,ӛrfv 2 ^nouU 1\V?m.Uo.>ES:ŏۺ1=~Q.<]1dox'ӏ&kfrkOkl"+SPꚶ12Y/Sl~SUļAV32vZƼ⯇y-Dz~qKݸ;O"p[t㺥}J6Y$;iEiIYD) A4t O uP ¬ji8M`))ZÃgW#&DoCS6QxNa2Vgaߋ^\ܹ!~~|c|قc6D Ȇ\9iNWQÍ>C|%bAtOL#(;qE^/+?_uÍϦ % sC>G6knqsU[Z10_Xen= 7߷euDD;]#@TGzF'˔֧Wa'A.1ç`m~<514 "wul\kS;_D /#lcﶟGd3.c_H@kr7߷N ʌ.?exwtsJ }6m[N1LqɶK,/AɕZ>&ct ;;o`WNآ?{;+Ͼn޿ϩ[x;*‡!\W9W R冺^Uk[kC1G'!Suq7?7#2C.DGrssewTX禃6%"7gbjS%<2+=r7R S=Qril4Q4ni9 ~HfL`S=⽊ s¹aJ`HaMe%E)&sK`c Хq!KP9ES#Fv*ٛ/lѤ R|<]Ꮜ _1Cx_qZJzV[r %AI7~8JjDڛ)cqk2f5ʋ$6`H$=(%~,me e'w)۽vYdϢʎR,l7#e{uw2&F/ЋOU{}X;E~!;5^I#C{&FWm͸;LU30q?Үn;ᣌ%G(mڑxF9=>l;~Z1GQI>8=B0)k)Ptv)`HhLDX*rOxx\\HvO?ղGfC]Fch=iZ7=.m1 09\좷uTػJPd6?Tf }8L6yTB/d&I@uUͣJtlV68u"CFde\?E80ץ .OurڶҴ0v,.iX'A+x4Xzynl /KjX$q?D $_Pg֗/>z}}OO_i1.shl{&s !PF]ւ x!7=e0ykk^znw-q&A lOnC CZʷ}¼1vC:1mJ2<:/pgm >NC}ߔ ;i=}*\qiZkiㆆE4v=4. P ~BCܾz6c/1޲4\oNþ>9ݑuy~Hϋ b;̀ӘO ?u.o7>| #Muep}'-?,/nVR6ݠ%SBlcSIeQegYFgi,h'()$vB6U#j >?SʩU^{Vq贁O0;m':|z+Hjߵ*P侸W]zIC;ݓ-'OCjiߝ+)) J]csMCkvG*W"y+*V1YSSj696Ռ06 'k8*J`գeY'd1;w q/j'E~oĭ~~w? ?#f-`qv[  wA9AaUhMlqJmFKbۍA8!Lʥ4$4wHj`j:>6Qe^ݑS3b.pvIA{=/g1{@ YdP`x!cGKZsh;j.x8al2I!cÇ(@G{"xx^G)sX2@s^N+R`?/%d)  ,oҘh:ۥ?Dr3e%iG74U I<9RD%=s3 "pbϻϚԵ, Ų4ރs=잙gڂn'"WKGG{{<e# ͓ }k?~/e,p)풝`nqO73h>vLEaǭe-Gdd-9KvR.{ OHK*=+&dJzMSnr&+5I+ J`Ҩiԙx=$G8Ib$ A29+{=I>9] ,4XF{BS_gyॣc;*]U@3(^$2 ;rT#6⃍Y!WNVv%q;p nQ<*"{$cJ{6gQ=;꜠L}#iDy_TCPedgfn oK`B`5D+[)f9L]l ~{&lǪ vRrGſn."z /G5цOfO;2Ηd/c6+%Ruh0*J+:'STǦ%fE=f@3 iA2z8oXE278Lho (dy!>s˃mnݖ[b2~meZ?.s5ył:k]<>W|57eL|ȡ6&ku5_Y<:|>tR2{xiBG8"iG "@ ZizSTh cc d?Q֙wvT0=q-luZU[& GTCFKtCKC&uPdAc #pokM0nD wpvˣM4_lh "YW Y'z8fn\FE2遧˚!|Fl61.jlD\I\.$UWOIɟWuTo}%^i4R5ꦦDv-E~9m{IÞ#̀6%D}}ИȏIW#_T0}Ѥ =.D~8&IMi3l\muM EwQB5+,m |z,i-a`7 - b>v%<%P]zU >A}CSdDIZolk#V'>+gx6GTj| ʡmG96}֒ղ7A|DSVpe!NU3_eTໍ>uM6A} H4JӶ[4ls/Gq- ;NKX`E')Sń *K)V`oWdd1t['gJPo@6` 2dP[6F+ UÕx"[ʿ>`2#cu.l2ʒ6 ^wq帄jC"D\X8M,uRƑA|:ib@dESM-ib P!:w6:D|[FZrN1ih"$Nv.N^}yc+W ϟ,kuދ>G|\%4%k[8}ULy\dҵlb:[ 8oUE.)i W\ sߧ}WӾxwbGE.Pi$5"(܃ ,kuh.va3c!Cd11rA5;5{|xY&Lw-zq>?03t)ᔽ?6ăiTgcdX X+v>]{O8sRdF%>.;wPxUl d,w,4+eXe3ʶLrAV0a Ҋr-(zzEF`]6ث^}7LճeP`wUs5M6*a>+()a=E9}ZL9:_b>w^GpLfT܍) Of?Oa|gdZ6Ǿ:~,q+B@ư6@A v"е,%0[Q+*4*Y[gS`vU;V \~h}Jj\I\_3RU$ IU V!\nhA0{Zf$Af7QYM%c~v ,<.|s $)aՔ,6oaj-ŅϕM:m6Mxg8*;Js"HJkhmq$syJgLШ$7` &L әuP{@"@) .l#NpLJSzAt4s'{ʠA!6mRApcմ<9OM=Y+ JGAq˺;EӦ'M*NXvEif+dAH,$@?NQ!3ÐLqi+E#.Ot3'q7H"oH)\1YO ;W)#ӣgᖯW?]'m?:6\ /?xf,>RXul[^?&W-se~&/r}xXM c:EuջW6\emvJQ4-ܥYӱHd))}}\8wR3Q I>**I6B6A|ܑY~;,+q=ܓOC\(8SܖCiw!R ڀ1=[6dv-m\')172n!f1(Hf&'m.J6L%|Ce6BKa*8:koB(qF9Yв>6gBőX Im6f4PhǷ ~٫hnūP  %z!NDʥWT- Ij\H}z!20^m _ .}&h:BUH PcJ {{`H]MF&쑥K~K$quX9^Kϧ_#ɚ==&=69:'$j0[hi,OMۺV5>6Px UUFuJp)`_[\AuꞋekSm"bwfe$}ʭ2˒x %^hR09ÿ 5]Uɐ..n}0ˑo |;tf1Jpn,kGȚaqKGtW#EM_d͸ۄlho=6dLHoǻ۶M_XnӲ1Myڏoe3Rzd >9r'kdrGF}FyYrݫvgG⌇4"myd{/[L|Ve1_Y;4GlJHodza<Ҁ5p7Oplb9vH\*E)Ѥm&e2Vg%+6L8Xm;F|\tw͈w+I%E }.I!\O7_HE;#dgQ}hm l$6 ݑGc_d@@<'lۍu<'yt~n9;f`A _PɓYǧ$2-E-m lН!E%,y#e3^zU)1{#feoتBԞmo?u򒽪B?URҶF6+iﲭ"NcJZ2#giș BUr,}6E0[,s Q8ErPocMxk.|b TXRĀ+PN6SgYt+n۪l \#.epVԨ$&LoT&]r2P;LaÏh#j$wO$oO@]:jl4w :;{Clwcպ dLqJONv՜Ce0H~G跦|8u(`h|9T| };Uo3e|2ŴUC+E԰[>#@$-.7o<@ -->RmՏ$DŽ_q@e 6۾lO@ T!ˑgguTŎ\w#*;Gv\5Q܉Jc{K,Yeo6c +z+ qe˷}>3@,,'?6}>(dQ4z \;I9UlKd :qw;}i=/=c9F;}]݀ƒYڤ<1@U*N0=џv:Ulnw!V!]US4`{~ F)=IOAi]$#چ\WFhڥD73fCdq\#`Mv bCń̢@: F͟B="or3)yuBl10Az$|ZQGSXe=>3f.`ӣ30F`L?eEIIGZJHo-T7(A>Ҁ.JӐlڋU"dQ=ȴ#`Uru4וUKxn TMuI(zrMZB=**s tΥ56t Q,\ [' +ߧ3~vۺn ;T 9&T#goaF#u@ۂa0Ɛ&Ԁg0& v06rbXll:(@:][8GMJR>V}|tdo!hDGgic9U3mg=3I"&m-'5 Z-dl&.:T|*4GI.N6W̽0lY{ƒ7iE2ǟa H5eP (ؼge)%$֒,=+%?}VִzTm~\oW \\)'ݵA\BV7/rhzDM0ߨ\|n|Ӣ‹1L`m(RaI: &qJw^H'[!?TF_zUPy>h(ihp}Jn~ef'Q+$pKi!-Ϫ;0+gf_D^kmO7OAjl9Z^&mK+:nR[C)6dmc ggjvGm܋iTl)X m-Fv mSi1v)6z%Q; @#6 u*ڂƱ0|4V-~;||@}Q$cqPDs)6;}GM&5%F麚imJ)2T"`Gx#Ծ6WJZcR{KM+滳cB#h%+} R0ࢄثgWQ2R#xGKzk*kxYdIm * ,EYF8YTvJLcRzE>r"o*A=U!@a㚥PuP#= >2URg/X5ɓEz Ч[*dAhBZ}ѣCwUFt!2n-2<$m$Fa杬K@>R=fiZ y15h"ea+ޠ\9Zcٵ w_vc xqc>ZWVק.֜?B.,նɏi 1X +64E\ޒ3f1WA FY}3D?`imZy!IƦ oj 0mTȿOc@9!=z q`ઔzbVlRBXzEV #`Ď=dλ7i9G#dJѶE@E=L;)B+#;Mѥ"XLjGk L<I㝶ۺI9tQi&_DQ 0S gL9&fp4qu">PR`ޑV;h'ʤl3kk쀕Ԅ6W)mSM.;E pKFsϷdײ3tߖ=^C뺸M[- D|ᣙ,Hl촄@>ȡ:46QU8C֖Y4Zڻr8^*.yR(Vcua*"4TiiJkzIQ%*[^"Q=3E鑒'x w8ʂ1L=DoSˊeSjQ00D~E~$ #>(l8xm#AmRJcdϤ"HmiieE-i;)ݩM`k;Uv*mT!#j`4DmR:'-˙ϧto+]v@Fu&hgWd?PG#fUkR[@ë́ d֏(r)#{'cTahsZcF6cqNa WjN=QNMt[@[ m[<m;Qɳ[k<k2,ѲCQ;}Z6 nAw˺FQ9|${WkJ/)&CkDξ@6@`!b2Ϫa>9HmZA{& 9*6E,Dlr+l5YC%Ly5ݔ^ݽ TXdmKA"6aA :1F4 ?S#Vd;۟EN~m\6ܫ]**˪I"JZkh%TdmKh%\3 gbva ,ZmYX^7MLl#H('rHQ="5S'?I;DeZ5=w&GE}P `Û`o 0q?8vT#X.2bHLsd쀃#$g8 o{G7V~i ɆL4wHW -l[%:?twnena]~mRCeʕJn{)*W 3N R#_d*"pd!sfRo~6aqHδ@6DުAdͯ r3{-2#cek+ƍqE-m8{(ϫkOchɷ-d ֞jk~A{d[VO+T7nF38vH...ghgi9HPaH g$īI I$Jɢ ; vZL_٫۔ |z {r lG==)ݹK1-p4G-wH0/( .'Bl ԙvgݒ}= 3})Dz@hȣa *{׸W6MBarj;9V1˷eU* -/[Y2b.؍aK gZsKIcNSw螑SXvM잓GU~,dL W 2w*&;_A>lmo\vF6KAhJU4ѐvFMv@4_ItsvSlm'F}[]#@①ˤvKAFqTB1cN?U4h,ccGaIs#ml;Dh&gCAp/[E- H葝n/O@;z$oJl~VU7pUr_zLd\o( x*{O9SFq;곫e6S7ʞ"Β&l,Eh,RcڬZjs+cii6i$MYBNݠ#.tz۔eވA*A24p1T\$> yا R7TJ}$g8t%d?PSA;lu}C-+c{#mMJmMbLK -V [T6I-2k7Km"TrZdR%%tp"|U ^ӽo\lQz$lŠ7( $4TN7H!DrHGt&>]At#FC`Z H,;+Ė<Ur SHVj;۔'jɦ\U jfʶ6[M |&V̥ҵ;^G`;U-o0&Rkp(m(pX2?߲z8OD}*&=z%N;[i誎xFZ4U Iz*zhVI !dGýΆjK@EWlhuDeM؈v~JB#FKkvLY >/$gD S`1d}$løIP^ds\v/T dz-$WH۳_upmFeQ$kKot ╦Գ-Vv֑Gu#|L=vUYѵ1UZVF(~*mO^TZ~i6czFZLZA$TTΡ_ePr &  ݾK&J6~A0~ݓ,"t 2qނrCw%Y+=M(EPUVf t8ve4=?EloF:Da荑ﺚm򆂥(oIDRR,coPu;&f.6$iB;\,o;&67D~T8^@B%lx?[#/`܄hnhD&׺`[zRAȿ uE|46,'^RR!怑-1۝A/JBͳVjYhjiM4ڮNOt YdjEU)mQN'[AgSilFG`mV.6xh5YGU-(.Dkv4txT0`{*qI=dM~hiiZ̋1&?>W9D'k= \%cx5})) }&%0o="`J,6V+6.{h2ci#Hn ʫAhk4I}Jc#Yk ?u!͹<]99AgZHfڽ t$GY2A17¨{w왐Lp; <{$ {#rKv$#a T$ \d}%=_Oi2 2Dq":'i'ȿL1vIA1sΡWSJ[(vM$mšKw4XSiie7N4{H_D@ZA-G荵qBVLaβiyW$`n2sڐ 9Þꡣ8nU۠/d;'tVI!ޏ=j#_DLC~->͠&bkhn~2n7@YÕ*/PdM}ӕ5Y$M(oz- OeTdup98ݴ~P4Z,)"c#TY㲒ѭoѠ1#M{EʴG_蔙[{RZ&Fo Mu`ֿ%͠=8 t =Q`bIhw CFv:Ng[ Az4dl4 9@?ǿo覃>etKHى:*_+#4E6VqRCD!&$mŠ@vۅ `ږVXǏ]Z[NoKiAFigzHma@"!4@# M'HL%Rd^2Uډa[ˤR[3Ng=ѰaͮSFR7J6nd>ީl8E J\ԞGz{'^d#5 F l3m0znʜKwYu#>-."aJX|&A%<ȍ%i,!U,%!-94lR\DCt@z$Bǥ$d`Umr"8i3ER7&<$]A1=N{U w<*06e($w R8zUVEDeQbhA*D OE4F)7S{ BF";2T&})TMC~A7];{#u8-$&ǂ6i lM@RήUM-"eƄ۔ #Cmh֌a LRlߙ&!ߺ&*(f7=h1~3$葝eR}U kU6U{{ͮF[\܅;›8 08KA A[M"(hJAԩс% 3{-= Z3 | N):B6 ؛}$6tJ߄JE|h=U"2ZeJ(eTE#GYhd0uVݶQIi0k,-`YZXbu5'ʣ”M$HmIl\'#nMd>T0q<6m67vOan>ٔwO`=?t;eͰ" L8JA߿[W*vHiF NRWH\$7~/~썹{&=8OdhyD U麋BG!N̓#aY>2zid{z:I26qI솅RIFG#*4"4i!QM1oOۺ+Y+]Db!\R?j߄"/Ri+:i__De=#0#MGT4bj7n m[w$HOUzKQBҍ{у`Tvݲ4I"ACo4tu4HokEUrlq&+66H $Kp  z[MK׺[}Ԫ/qݴ>MMlx򫆖`i@RfTRoNB~h*Jɷny"IkmVy6iT"MEsTI>F$ ;$dlRXM%64.v~viݿDAu=%0|ҳ?u-؞R yh3ꖌdD^7T yY3@d NS@_?#ԑ)Z2rue&2keYK1eh[CTqA]YKci9c;&L~jjk BI!芶#1Y=|1) Fƒϲ6z9О_P`\A&d= ~ H-g%i#h6;?-w) ʡU\q*àlX(#`#%/@K`MDGc%L ła](7jbirXfm LhuE4'7Vя#BzkGuVk YwSDFLTlatnkern 09Y B~t{%"S$$%%''))**--..//33 55 99 :: << IIJJNNRRUUZZ\\        .. //00 1122 FFGGHHJJUUWWXX YYZZ [[vvxxzz{{~~     w$$&&**--2244667788 99 :: << DD FFHHJJRRVVYYZZ[[\\              "" $$ && (( ** ,, .. //00 1122 FFGGHHII JJKK MMOOTTUUVVWW\\ ^^ ``aabb    \$%')*-./359:<IJNRUZ\  ./012FGHJUWXYZ[vxz{~ ,.DFLTlatn33fP Knewt  & &d  n@.~Hae~7& AWak    " 0 : D t !""""""""+"H"`"e% Ldh7& @V`j    0 9 D t !""""""""+"H"`"d%vRH-g`_Ktn\<( yvutg_V'{ߜߐߏߍ߉߆z^GD   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeiwpkvjsgul{scn9m|b2xelqhijymkfDdU(+7!!!hD DUs+@(Q CQ D+3! !~YU:e #@ Q D+3!3GBFBe||nF@CZ   Y C  D+3#53#533333#3###3#q~7pqpo{7rqq7C..ҭCR$!.@ BK0PX@.hfCQ CT CD@.hfkCQ CT DY@ "+#5.=332654'.'&5%53#54&"!f60y :b8Q.k3j2 ayGUl [DcRcfc>Kwf  #/3KPX@([[SCS DKPX@,[[SC  CSD@0[[ CSC  CSDYY@000303 +2654&" &546 2654&" &546  3~1./!n711//ánv\O\ZIIZ\fOP[ZIIZflI%.]@&   BKPX@SCS D@SC CSDY@ ,*"!+267&6 67#&' &654&#"$g*J*O2{o+V`^mNo&m ,}),9n¾+DEr*qСpVZ bR `{XJIdeR@Q D+33"3ue))euY22Y&e%e&]Ә]Vx}K PX@WSDK PX@WSDKPX@WSD@[OSGYYY@ +526544VY22Yud))d]-]&eۉe&[ye0@- BMQE+'-737 '#__"__y#{sꭤw^& +@(MYQE +5#53533#8ڶu $@!BkQ D+#!F} fR Y7D@MQE+5!Yv@Q D+353V/K PX@ C D@ C DY@ +33VTg &@#SCSD +$65&'&" &546 2EZOIA^cYN`I( (@%Bh C D +!#5>73"|76#"!56762![a N`P{l32/'X(:hlc;x)(Mkz `_ %.7!5!5  6,V:pU /s\Z!25@2B[SCSD!$+ &'&67&46 $26=#"3327>54."PEBL.(n7A:&%,V.0da0ކyjeej~poo"&fC7(t@ BK PX@%`[SCTD@&h[SCTDY@#"((%+$ &'532>5#"576 274&"7+x7lq\U1c/0/`%m1/%@Hq\AbVNrtr.@+YMQE+!!  ~ :@7BkYMQE  +#! !N/m-kj2A~(+% ~=tq$mh%j4.@+YMQE+5!5!h%WZ(+7-Zt>x0'+C@@&BhfSCQ D(((+(+*)''"++>=4.#"!5!23\L+4!!O YM3"GI<+JB~%$K0Z`?€ FD[].*at/9KPX@ 8 -.B@ 8 -.BYKPX@*   [ [SCS DKPX@'   [ [ WSD@,   [O [ WSDYY@ 10530919,*'%!  // + %63 #"&'#"&3273276! 327"3265&:(@pgJw;`!M(Ue\7:RJ;Zt;_ufo}F4zc`$F$lu_/&4 6@3hZ C D  +#!#!\vlb *&t :".@+B[S CS D%!%#!'+#!!2326=4&+5326=.+u{}Ť%_P@4JqcE+6BZA?-~noXjfEnk/@,hfSCTD&+$ 5763 !54&"26=!kzLls.422b$,u|ʎz| $@!S CS D  "% +%32654&+!2#XJCCRO¯`et .@+YQ CQ D +3!!!!!N2N (@%YQ C D +3!!!!\8,np"KPX B BYKPX@'hYSCSD@+hYSC CSDY@ "" +"43 #54&"26=#5!#'ϦF*3:4?qx)t}ybu?Yf &@#Y C D +3!3!!#  8 2@ C D+3!  D!@h CTD$+$ &5!3265!/=' :Ӓ dl> $@! B C D +3!! !  ;*6@ CR D+3!! S&@# B C D+3!!##MO  Zp #@ B C D +333#u@ E2nx @SCSD$+2654&" !2|/./7k̳Nz}4}ss|% *@'[S C D %!+3!2+326=.+͗ʑ\U35P^%J"nxh@ B?K PX@SCSDK PX@SCSD@SCSDYY$+.!22654&"x̤̳/./7^s %=z}4}ss|5@2 B[S C D+'!!2!&4&'32>=4&+V+D\[H 8k310W[;o[cuM.ps X_I%/@,hfSCTD+53264&/.546 #54&" a2-PW[e,}78ImoawbޥZ_̆m~oTdNv @Q C D+3#5!#z@ CTD+$ &5!2>5!i %t2  <1DeO8 #@ h C D +!!33IsG=`0 <1 &@# B C D +!333! إr n#R %@" B C D +! ! 33 j⯍0 { U *@'Bh C D +!!3!0!nAb .@+BQ CQ D +35!5!!bmee $@!Q CQ D+3!#3`@ C D+!3e^$@!Q CQ D+353#5!?r@ @BQD+!! r?@e80-4K!PX@ QD@MQEY@ +5!0ӷh(+%c^ k^ (K!PX@  &B@  &BYK PX@`SCSDK!PX@hSCSD@#hSC CSDYY@ %$!  ( (+267"&'54767>754&"!546 !5O~X,c?ѓ~hCg#}*q.8dii[C*`cA= &zW\mC-ҕE_v$[@ BK$PX@CSCS D@CSC CSDY&I#+%!!>32#"#&2654'&#" n@='6H;0'/!A88FnW!M{wf$dnO!:@7hfSCTD !!+"576 !54&"367654=!r[p1t1-AY  Gr[ҥFhk\oh|' nbK!PX@ B@ BYK PX@CSCSDK!PX@CSCSD@ CSC CSDYY@ +".54632!!52654'&#"yx#>g =!354&#"1"I.̝#6l@*X'<h{/ٜU,\PP̲(U{k09N6@3  BYSC D#+3#535462&#"3#tuC(RN~VFda%KPX@ B@ BYKPX@[SCTD@"[CSCTDY@ D%+% '726=#"&5!2325!2654&"aC]wRgPy* /{13&kLhXwH;ŗuiipse~,@)BCSC D"#+3!>32!4#" |Xj=BAQmcdVL)@&YC D+3!5!  $f=;L `@ BAKPX@YCTD@YXDY@   +"'5765!5!x? o @s( (@% BCC D +3!! !  2C7@C D+3!fUBKPX@SC D@CSC DY@"#"" +!4#"!4#"!!>32632^e=BbAA xa8QTOcNܣTa]KPXBBYKPX@SC D@CSC DY@ + !4&"!!>~;pA cAJ`QܬPnn\ ,@)SCSD  +%2654&""&5 >-.|.6!ԤJmlnnmoa%1V!x!@ BKPX@hCTCDK!PX@hTCSD@#hCTCQDYY@+!>2"&'2654'&#" z2]AfV2ye0,1"<;GO->/Wuyn$cn^K!PX@  B@  BYKPX@SCSCDK!PX@"SCSCSD@ SCSCQDYY@!+!25!!"'.52654&"n8 h6dJp@74'.Ӂr2F/gz~rz{% cKPX@ B@ BYKPX@SC D@CSC DY@   +2"!!>P 862ZܧXaR!%\K PX@#`fSCTD@$hfSCTDY"!+!2#54&" &=332654'.'&Rb.k3jۮf60y ~pRcfc>KwfayGUl /IK PX@ CQCTDK PX@ CQCT DK!PX@ CQCTD@Y CTDYYY@ +"&5#53!3#3`zz 7` k$5zs]KPXBBYKPX@CTD@C CTDY@ + !325!!5 .?y?g]Ya$& @CR D +!333a!Sh$,/@,BhC D+! #33333L"!Yb*C޾gCxNm$$ %@" BC D +! #33. 뚄 ?O *;KK+PX@hCTD@hXDY@ !+5326764'333#XW27`($XPd 6.lqXF .@+BQCQ D +35!5!!FJ>:1#6@3B[WSD"! ##+"&544>546;"3fDGG27.=4Ȕ3"#Y2BEEB2Y54'#535463 #ύ[MaW~ssq YUL+7ͦMKn2p} B@? B @?[OSG+'7&47'7627'"'6264&"[54ZWaaWZ66ZY\\{trs[baZX76WZabZX45| U<@9h  ZY  C D +3#!#535#53!3!3#<ҿԙ;n"z(@%UQ D+!!zT(>kW3;s@ 84(BKPX@#`^SCTD@%hfSCTDY@10.-33+%254.547.546 !4&#" &5!654'J!+3d|{.  $$ efm..+Ӭ-p-jxheceM g(Aˎ -p-G)K)PX@ %$ B@ %$ BYK PX@!`[OSGK)PX@"h[OSG@)hh[OSGYY@"!+"&'547>754'&"#&546 #5&267ue8w?i"? _C#P1gDOq_D1*~"AFV:n,NI5",LVyXGm  (+    C8*8Ga:EK PX@_MQE@kMQEY@ +!5!Z0Z^@MQE+5!Z^(.L@IB h  [[WSD.-+)$#! +!2#4&# >.  $$ 324&#!eF)4O)m+Ӭ-p-0%6TvQkL#|` -p-LZU5@MQE+5!Zh+G!@[OSG+264&" &6 MMM/DXZZZ;vp\ <@9YYMQ E    +5#53533#5!Pڶ5.@+hUSD +"#'4767632!!5476$&>U8gW&(k #L7UKbJHG D.UD>w>r^X3Z% BK PX@(``[XSDKPX@)`h[XSD@*hh[XSDYY@ !#+#'>  &=3264&+53>4&"`~xF5{"l!4HG8+Y#!(vNO`JVdJCFe?(+5%em&@#BS C D'+!.54763!##xL?<% k@MQE+53=C@ BK'PX@jTD@jOTHY%+254&'73#"'=]C(R䛄NG @UčN[L4 (@%BhQ D +#5>73B`A41V;U}F 0@-[OSG     +254&""&5!2U&d&Y1<'WXWX鮪аBGG  (+--8?8G  Z b@_ Bhf Y Z C  D    +!5!533##5>733 3EE8V9w  r'/wQ8DZ%) BK PX@3h` [ Y CQ  D@4hh [ Y CQ  DY@"&&&)&)('%%$#  +"#'46762!!54764&#5>733G(;p.I&c 0D4#8V9w  ꨑF@ߝ;v:izSRF=/wQ8S(37:@  :, BK PX@E`  h^[ [ \  Z C DKPX@F`  hf[ [ \  Z C D@Gh  hf[ [ \  Z C DYY@!44))98474765)3)3210/.-"##+#54632"&=3264&#"5367654'&"5!533#!3 3p{i<0wna/@*2O EE |&FF\FQ^ ce! C2rDX" ڰ++4'C$ ԰++4'v$++4'e$ ++4]'l$ ԰++4='j$ ԰++4 'j$ ԰++4>@;YY Q CQ  D +3!!!!!!#34:"6T#:nk&y&'C( ԰++&(v++c &(e ++86=&(j ԰++G'C, ԰++F'v,++g'e/, ++='j,, ԰++:&'++]'l1 ԰++nx'C2 ذ++nx&2v++nx&2e ++nxa'l2 ذ++nxA&2j  ذ++,: (+'7'77'Ф:^2r#:@7! B@?SCSD)*+."'&5!27#"'7265k-7ceUYFk`7ʈW}.0ons|j(%J$t9=}s,z'C8 Ѱ++z&8v++z&8e ++z:&8j Ѱ++ U'v<++0@-[ CSC D&!+3!32+326=4&+ ϕEf\T45Q^a^$hv(6@3 B[SCS D((/+346 +52654ᒑ4&"HW{` "(VhzTUpM<5}9vMTT'QIndLAI E79Cbk^'CD а++k^'vD ++k^&eDk^Y'lD а++k}9'jD а++k^'j0D а++k;7DN@* = < BK PX@0 `h  Y SC TD@1  hh  Y SC TDY@JIFE:9$$% +'5!#"&'#"&=67>7<&"!&546326 !276267354&"3;&Sa!&YHO$|+עCMw#.u F,c?C$$/'q TF˶*ZND;Tdn&P!6"/}WlIJmm'=[C*2n{k*fSnO&yFnV'CH ϰ++nV&Hv ++nV&He ++ge8&Hj ϰ++;'C а++;&vփ ++[&e#9&j  а++_*<@9#B  @[SD&% +24&''7&'77"&=6265."t;AG~oB-Aq^ଠ6G|3J83.tjQ,ndP\nZg o@+6tY'lQ а++n\'CR а++n\&Rv ++n\&Ren\Y'lR а++fd9&Rj а++^ ?@<YYMQE   +7!5!!*7h7**R*nS\!:@7!B@?SCSD(+&'"&!27"''265=(/?.xYC3e;}JA2dz-3 mon71uV!3mlzs'CX а++zs&Xv ++zs&Xe z9&Xj а++*;&v|\ ++u%o@ BKPX@!CSCSCD@!SCSCQDY@%%'+!>2#"&'2654.# w2[B:bt?*!,,59 fGO,>/xjz>0'&*;9'j\ а++4 'q$ ԰++k^'qD а++4h'h$ ++k^d&hD4&k9$++kh&k<D++nk&&v++nO&Fv ++nk&&e ++nO&Fenk6'i& ԰++nO2'iF а++nk&&f ++nO&Ff&'f  ++nP&Gr &'qƴ ++n&Gqvf f++ 'q[( ԰++nV'qH ϰ++h'h( ++nVc&hH ++6'i( ԰++nV1'iH ϰ++&(k++nV&Hk++c &(f ++nV&Hf ++np&*e ++da&Je#nph'h* ++dad&h Jnp6'i* ԰++da2'iJ а++n$p'qV* V++da/qpJ p++&+e& ++~&Ke++7I@F  Y C  QC  D +3!535!35!3#!#!M  aabJ2b~:@7B YCSC D"# +5!!!>32!4#"!#5  |Xj=BIImQmcdV9mb]'l, ԰++VY'l а++  'q, ԰++'q а++-h'h, ++!d'h 'k,++2'i'kа++++6'i, ԰++@C D+3! $B'-(,;L'MLD&-e] ++Y&deO$'qV. V++$'qVN V++ $@! BC D +3!! !  2W7&/vN++=&Ov++$'qV/ V++k$'qVO V++ KPX B BYK PX@`Q CR DKPX@ hQ CR D@$h CQ CR DYY@  +3!!#! S8t\0k$'qVO V++'x/++'xO %@" B CR D+57!7!! Sܸ1IPPs 1O @ BC D+!7!5 QAA6&1v++&Qv ++$'qV1 V++$'qVQ V++&1f2 ++&Qfnx &2q ذ++n\&Rq а++nxl'h2 ++n\d&hRn y&2m^ ذ++nq&RmP а++n>@;YS C S D  +!"&463!!3#!%3#"˸polF4,! cxҘinC".8S@P !Bh  Y SCT D6410+*%$  "" +"&5432632!276'! '2654&"354&#"ЮŔa\͝#8kA*XW_0~01}0''ob8 ++ls=&oiXz&8p ++zs&Xp_$I'qV6 V++R$!'qVV V++$'qGV7 V++/$I'qYVW V++AY @ BXD30+7365!"'A? pew ?zH8%@"BMQE+!#'.VVHQH8&@#BMQE+373NVVHRZ^@MQE+5!ZOd 6KPX@^S D@jS DY+ 532653̖E~DWL65Mb@MQE+5!J!@[OSG+264&""&462p??p?_}~~}NjMMj.~~~~f,*@'  BjTD +"&467327kQsAfG@A |-@*BO[SG!+"&"'>2;>7^Qs9_q MR64bTJ)0PC(+''qZo/at4ek@MQE+!kf*l=(+ 77黩ljgd5jgdl@KPX@_OSG@kOSGY"#+45! .#"#D=87+2654&" &546 2654&" &546 $2654&" &546  3~1./!ns~1./!n11//án\O\ZIIZ\fO\ZIIZ\f?PP[ZIIZfl9G$(+  $8GGv(+-8G 9@ C D+339*] 1@. BkZ D +5!5!3#3JJ]΁5ߕc/k,Q@Nh  h Y   YSC TD+*'&#"! $+$ =#535#535763 !54&"3#3#26=!kzWWWWLls.422ab$,u|ˆaz|R(+!!##!#5!# wn>'=w#/,%(+4#"'62#"&54> 276&#"327ѭ;t"ϛa 58u ")If"J5(Q:IX &B?Io?N=o:[2A#1"j|:$X~(+3!!#r (+35 5!! !rUDaq<@(+5!<9(+339*c(+!!!! J;l  (+"'#"&6 6 &"2724"r0M ~.GG6O-FGGs (+%#"'53265432&#"aN& ; dS2 <2I giF! (+$"'32327#$"'32327#l'Q9+H!/[U:l'Q9+H!/[UFi]Q ao*OWi]Q ao*OWg (+3#537#5!33#3!empi/WR  (+  5!>sq$mҳk  (+-5!kt>q"w (+%3# ! s7-79#?@<B Y S C D#"" +&#"3#!!!#535462&#"!5462(RtuC(RuߦVFN~VFN~9'KPX@ BKPX@  B@  BYYKPX@ SCQC DKPX@)SC SCQC DKPX@'SC QCQC DK(PX@% [ QCQC D@# [  YQC DYYYY@ # +!!!!#535462&#"%!!XtuC(RO $B~V9 h@ BK PX@YSC D@YSC DY@  +2!&"3#!#5354>ap$8tuf=79 ?\Nf9,%) K PX@  ! BKPX@  ! B@  ! BYYK PX@"    [Q C DKPX@'   O YQ C DK(PX@*    [ Q CQ C D@(    [  YQ C DYYY@)('&$"+!!!!!!#535462&#"!5462&#"%!!3XtuC(RuC(RO $G~V?G~V9(KPX@ "# BK$PX@ "#  B@ " #  BYYK PX@! Y S C DKPX@! Y S C DK$PX@+ YS C S C D@) YSC S C DYYY@((&$! $+54>32!&"3#!!!#535462&#"+fIao$8tuC(RNf=79 ?\N~VFD_< U~U5o$ y & #o[ DosRIdkkV[(^uY:Vg(iZzfh\C+1~AhZxa4n0n(D-nn_z8l<o#^ *bd`r0hknnn}9d4=nncR/zB&,4T*F]do n5R}b zkiLXaZ^ZhVv?Xe_m=tLZTZS4444444n000c08(G(F((:-nnnnn,^zzzz^ kkkkkkknnnng;;_nnnnf$^onzzzzT*T*4k4k4knnnnnnnnn n0n0n0n0n0cnndndndnd7(((((JD8=k k1---nnnnnnnn4_cR_cR_cR_cR /zzzzzzzzzzzzl<,^ T*^ *bF*bF*bFkn-Ja0nnd4e4k0M0n({o(ZLnndielzz_cR/8AZ<f]P<k9y"/zn}9_cR/l<,l<,l<,^ T*x<JwJP5[[] #^9=9T4R0 .r}<=9cls]itg R k"G99999FnHrD.lZbv 8 j : p B n  8 d < ,V8Txj"<j^ X@~(v&0Z Tp6pDV  J p !j"R"b"t"""""###0#B#T#f#x#######$$$,$J$$$$$%%@%%%%%%%&&&&&'' '2'>'P'''''(((V((((())v))))))))** *,*>*P*b*n********+ ++,+<+N+`+r+~+++++++, ,V,,,,,,---0-B-\-h-t------...,...../ /2/D/V/h/z///////080000111101B1T1`1l1x1111111222 222D2V2h2x222222223 3303<333333444 4,484D4P4b4t444444445 55(545F5R5d5p5555555556 6606X6~66677>7p77778>8889F9F9X9j9|9999999: ::0:B:T:f:x::::::; ;.;T;x;;<d>>>??"?4?N???@@*@J@l@l@A|ABC\O<$1n  bbi m yL '    6 P        N   % 4= 4q   4  Copyright (c) 2011-12, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Antonio'AntonioBoldAntonio BoldAntonio BoldVersion 1 ; ttfautohint (v0.94.20-1c74) -l 8 -r 50 -G 200 -x 0 -w "gG" -W -cAntonio-BoldAntonio is a trademark of vernon adams.Vernon AdamsVernon Adamshttp://newtypography.co.ukhttp://newtypography.co.ukThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLAntonioBoldCopyright (c) 2011-12, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Antonio'AntonioBoldAntonio BoldAntonio BoldVersion 1 ; ttfautohint (v0.94.20-1c74) -l 8 -r 50 -G 200 -x 0 -w "gG" -W -cAntonio-BoldAntonio is a trademark of vernon adams.Vernon AdamsVernon Adamshttp://newtypography.co.ukhttp://newtypography.co.ukThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLAntonioBold  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~glyph1glyph2uni00A0uni00ADuni00B2uni00B3uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaronOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflexTcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentuni01C4uni01C5uni01C6uni01C7uni01C8uni01C9uni01CAuni01CBuni01CCuni01F1uni01F2uni01F3uni01F4uni01F5uni0200uni0201uni0202uni0203uni0204uni0205uni0206uni0207uni0208uni0209uni020Auni020Buni020Cuni020Duni020Euni020Funi0210uni0211uni0212uni0213uni0214uni0215uni0216uni0217 Scommaaccent scommaaccentuni021Auni021Buni0237uni02C9uni0307uni030Funi0311uni0326uni0394uni03A9uni03BCuni1E02uni1E03uni1E0Auni1E0Buni1E1Euni1E1Funi1E40uni1E41uni1E56uni1E57uni1E60uni1E61uni1E6Auni1E6BWgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2074Eurouni2215uniF8FFuniFB00uniFB01uniFB02uniFB03uniFB04   & &, `f-, d P&ZE[X!#!X PPX!@Y 8PX!8YY Ead(PX! E 0PX!0Y PX f a PX` PX! ` 6PX!6``YYY+YY#PXeYY-, E %ad CPX#B#B!!Y`-,#!#! dbB #B *! C +0%QX`PaRYX#Y! @SX+!@Y#PXeY-,C+C`B-,#B# #Bab`*-, E EcEb`D`-, E +#%` E#a d PX!0PX @YY#PXeY%#aDD`-,EaD- ,` CJPX #BY CJRX #BY- , b c#a C` ` #B#- ,KTXDY$ e#x- ,KQXKSXDY!Y$e#x- , CUX CaB +YC%B %B %B# %PXC`%B #a *!#a #a *!C`%B%a *!Y CG CG`b EcEb`#DC>C`B-,ETX #B `a  BB` +m+"Y-,+-,+-,+-,+-,+-,+-,+-,+-,+-, +-,+ETX #B `a  BB` +m+"Y-,+-,+-,+-,+-,+-,+- ,+-!,+-",+-#, +-$, <`-%, ` ` C#`C%a`$*!-&,%+%*-', G EcEb`#a8# UX G EcEb`#a8!Y-(,ETX'*0"Y-),+ETX'*0"Y-*, 5`-+,EcEb+EcEb+D>#8**-,, < G EcEb`Ca8--,.<-., < G EcEb`CaCc8-/,% . G#B%IG#G#a Xb!Y#B.*-0,%%G#G#aE+e.# <8-1,%% .G#G#a #BE+ `PX @QX  &YBB# C #G#G#a#F`Cb` + a C`d#CadPXCaC`Y%ba# &#Fa8#CF%CG#G#a` Cb`# +#C`+%a%b&a %`d#%`dPX!#!Y# &#Fa8Y-2, & .G#G#a#<8-3, #B F#G+#a8-4,%%G#G#aTX. <#!%%G#G#a %%G#G#a%%I%aEc# Xb!YcEb`#.# <8#!Y-5, C .G#G#a ` `fb# <8-6,# .F%FRX ,1+!# <#B#8&+C.&+-?, G#B.,*-@, G#B.,*-A,-*-B,/*-C,E# . F#a8&+-D,#BC+-E,<+-F,<+-G,<+-H,<+-I,=+-J,=+-K,=+-L,=+-M,9+-N,9+-O,9+-P,9+-Q,;+-R,;+-S,;+-T,;+-U,>+-V,>+-W,>+-X,>+-Y,:+-Z,:+-[,:+-\,:+-],2+.&+-^,2+6+-_,2+7+-`,2+8+-a,3+.&+-b,3+6+-c,3+7+-d,3+8+-e,4+.&+-f,4+6+-g,4+7+-h,4+8+-i,5+.&+-j,5+6+-k,5+7+-l,5+8+-m,+e$Px0-KRXYc #D#pE (`f UX%aEc#b#D * **Y( ERD *D$QX@XD&QXXDYYYYDAntonio-Light.ttf000077500000000000000000001327441415770645300415170ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d/antonio FFTMgȬd,GDEF&H(GPOSzpGSUB D0OS/2W t`cmapmPV cvt /18fpgm zA gaspglyf*head#6hhea $hmtx*`loca=ϟ`maxp j namey(v@postָ prepx::`UW DU  0>DFLTlatnkern " 9pjt~B`<$$%%&&''))**--..// 33 99 :: << RRUU      .. 00 22 FFHHJJUUWWYY[[ttvvxx||     $$&&**--2266778899 :: << DD FF HHJJRRVVXXYYZZ[[\\                  ""##$$%%&&''(())**++,,--.. //00 1122 FFGGHHII JJKK MMOOTTUUVVWW\\]]^^__``aabb~~    E$%&')*-./39:<RU  .02FHJUWY[tvx| ,.DFLTlatnX,33fP Knewt  & &d  j@*~Hae~7& AWak    " 0 : D t !""""""""+"H"`"e% Ldh7& @V`j    0 9 D t !""""""""+"H"`"d%vRH-g`_KrlZ:&wtsre]T%yߚߎߍߋ߇߄x\EB   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeiwpkvjsgl{cn9m|b2xelqhijymkfDdU(+3!%!!D $hUDl@Q CQ D+73#3#A< e@Q D+3#3# @"ҝA"|7N@K  Z  Y C  D +#33#3#####53#533356{6Յ؃6{}aabbaaox/s@ BK0PX@)hf CSCQD@&hfU CSDY@ "+47673#54&"#&'&54=332654/&xP3Lk~7GMǃ|k\6IJ>OV7Pk[vK Jeg`zP /;?KPX@'[[SCS DKPX@+[[ CSCS D@/[[ CSC CSDYY@ ?> +4&"26576 ".576 ".54&"2653#:999ZYA@XCjiD=X@AYDijC9:99.C{WW{ ZZ%H44Ie&&e&H44He&&e{WW{ ZZ8 < +6V@.,*)'%  BKPX@SCS D@SC CSDY42(%'+>4&#"#&'#"&>75!267'3276ApMS2]y|P2jiDC<iiGxQaEZےETl^@ )l`a C>qb#HxvwS낤rkp&pn9|e@Q D+3#|A!$@!WSD +%3".54>3#"|[%$$%[| M  q+535+q%%b!@WSD!+52#532676545454'.#b|[%$$%[| M  9q+5ͼ5+q$ ; $93%@" BQD+37'#'7'7DDCDtuvztp@ %@"MYQE+33###53Vvvj j_@BkQ D+73##hM`s^XZ@MQE+!!XTdH@Q D+73#X@ C D+3#=< @SCSD+4&"26546  &PLLP L/®N$ "@Bh C D+3##5>:Y"|2# 53254&"'MQ%NK2:u3rD|".  <7ġStjgdU.;@8Bh[SCSD%%+4&"2>5632 &4676 #54&'&'" 8]1.d?Bp~5"G'%$n#3Z 87Yu%޲&N u |V8wK,PX@Q C DK-PX@hQ C DK.PX@Q C D@hQ C DYYY+!4"#?!8y]/$1R= kٹj"4G&>@;B[SCSD %$  +6&""26&'467.6  &FFDDJOGGzIRHA5EMOGְ̓aqkΛ.73w59W4;@8.Bh[SCSD%$+4&'&'"274>2"'.533265"'&5 -) D<.-n~KPX@9.BKPX@9.B@9.BYYKPX@)   [ [SCSDKPX@0 h  [ [SCSDKPX@5 h  [ O[SCSDKPX@6 h  [ [[SCSD@3 h  [ [[WSDYYYY@ ;:7520,+'# > >! +&#"26524'!"27# 4576!23 "&'#"&3273O^dL_^g] 9v]_NǕ s*oV uA|yTzH &}tb*ΖHpyp)KaY:zc`8$ -@*hZ C D  +3#!##S9:5 e (>@; B[S CS D (&    +#32676.#32>=4&!2#!pE/ %>ID =q,EN;|]?qd+ `HSll,^]rk @S CS D&$!"+4&+32765!2#!mX^{|&1A&q]qq (@%YQ CQ D+!!!!!!)92tPy3vn "@YQ C D+!!!!#)הtw%nAKPX@&hYSCS D@*hYSC CSDY@ ##+7632#4&"26=#5!#'#"6Nsz" <%  @Y C D+3#!#3!wB vG@ C D+3# ^!@h CTD$+3 &=332765}}:-j חыM 83? @ B C D+3 ##3\m@ CR D+3!!83vDBKPX@ C C D@h C DY+3###3g o;:+ @ B C D+3##3tk h .$^ @SCSD)+4&"2>56 #"'&5\=H2=d<2*L?*7"H7%Ҫ&&?lI‹(S| "@[S C D*"!#+54&+326!2+#n;Y\?22l}$9$I/¦˯Q2Zx)TO{" @ ?kSD"+632&'.54&"2>5;$*bwA$8=H2=d<2?ô^{"4r I(Ҫ&& '*@'B[S C D&$!#+4.+32>5!2#.=4&#'#o;@L71+=.IY#0;-o7|,d4yL9%s=9)¸d [./@,hfSCTD)%+> #54&'&#"#"&=32>54/.4b(: &K&v`գ% ?5fZҏJ((Qcnb.cG(vaɴ)du_ėa(@Q C D+!###(񥔸tl@ CTD$+3 &533265h~nZK=og?/@h C D+3#33Ǐ ^F @ B C D+3# #33gՓ| XbbJ @ B C D+# #33ۅ|ډ|UXIm  $@!Bh C D+3#33p–%p[ (@%BQ CQ D+!!!5!yOSfv}h@Q CQ D+!#3!kss@ C D+3#.@Q CQ D+!!53#jsAZ@BkD+3# #—e+0G@MQE+!!0u@y(+75LE(4@ 4)BK,PX@hSCS DK-PX@"hSC CSDK.PX@hSCS D@"hSC CSDYYY#+4>2#5#"&=467>754&'&"#267+8K\J8)0 gQvyc$_1340|`_G.03Ap(Sǽgr$#(K,PX@ !BK-PX@ !BK.PX@ !B@ !BYYYK PX@CSCSDK PX@CSCS DK,PX@CSCSDK-PX@CSC CSDK.PX@CSCSD@CSC CSDYYYYY(#+4&'&"2653>32"'#UZ63=9K j>1ND&46%W)%e=3#"'.5dT1F-8 Ym2'ֶ<)./\4Z~DM$5q-SpK @ BAK,PX@CSCS DK-PX@CSC CSDK.PX@CSCS D@CSC CSDYYY&"+4&"2>53#5#&'&56327;:A7'4-3W t/oE r}m.I4 -<@9hYSCTD)'#" $+54'&#"'76762!2>=3#"'.5% Xv 02T20I2$[E7 &Ѷ<)mɩ4X?[ bbkKiTrp1RpJT=0@-BYSC D"+4632&"3###53btQ6-p*ǖ芋y;@\q1q~*KPX@"B@"BYKPX@[SCSD@"[CSCSDY@ %$&+4&"3676 53"&'7326=#"'&53G? C\07K (A49bzMM[>3plCG8mjXN0(sIeTC3z}0@-BCSC D +"#3>2#4&wGeYRCcEfN8@QCC D+3#3#$V XO BK'PX@QCCTD@XQCDY+3#"'#527653Õa.h$$l=o( "@BCC D+33 ##Kg 6@C D+3# OBKPX@SC D@CSC DY@ #!+4#"#4&"#3>32>2#&s GVR3%xʛC-)VEWUGܕDdDT?CBKPX@SC D@CSC DY#+>2#4&#"#35xOBICcEWM<$@SCSD('#+'&#"26567632#"'&'&58D*rK4HbT2> (a:n5O݁+^ h&(LZ|"@ BK,PX@SCSCDK-PX@CSCSCDK.PX@SCSCD@CSCSCDYYY($+4."265632#"&'#3T(\62=85fg 3Y%W>~ՖI5 [@ BK2PX@SCSCD@CSCSCDY)+4&"2>576767253#"'&4O8@7(L(&D&46X8 ts2p<bbws5G%[q9L BKPX@SC D@CSC DY@ +2"#3>5Oy:@ ?R"ܧXax%/@,hfSCSD"+46 #54&" &=332654/&x7GMNJؓJ>OPk[pK߁g`zP- (@% CQCT D!+33#3#"'.5#53Ö<^h)tc-" 2ODtC BKPX@CS D@C CSDY!+32653#5"&53,JY}$cU$Df-w @CQ D+3#33ڕۆv( ($n9'@$BCQ D+3# #3333uZ ~( $8vZ"} @ BC D+# #33싫ۂ >=#@ hCTD!$+3+532764&'335462=46767.=4.#<^*@!\*^<21 28*s9 12EEo9ō 1MMg !tMM1 yHt3@0B@?O[SG#!+#"$"'632367>Dk(N9<C!JP]KO m1D ++.;@8*'BhfQ CQD&+47673#54'&"3276=3#5.5$qBg' J;LU c"2qCm;iBx3/\4ZwvMk;q-S0N>#;@8BhYSCQ D"! +!2#5#"!!!!5>54'#537=N2@z`GjI_gukV5fbg }, K@H B @?[OSG+6& 7'"''7&47'762Ȥ_WZ66ZY\\Y[54ZWaWZaaZX45Y[baZX7 <@9  h ZY  C D +33!!!#!5!5!5333p ӖXSR2RSz@UQ D+3#3#z5 9A@>$BhfSCSD1/-,)(+64.'&5462#54&#" &=33264'.'&4I66Q 92ZI>z2#5#"54>754."26c';+x QBlP  {(ء@'cM!._E R5\#C9[oF"\5(r~HJM)a}b3L))  (+ % L8. 8._a:Z=K PX@_MQE@kMQEY+!#!a}Z]0Zr^@MQE+!!ZsLn  2P@M*B h[  [WSD"!/.'%$#!2"2   +$  ,$  $23254&##32#4& @ Ƭ-p-Vijxt}{,Av@Dp-Ӭ>H4U^Th'A2.M)ZI+@MQE+7!!Z+qr!C!@[OSG+4."2>  &'CQYQB''CQYQB xa;;axa;;G/@,YYMQE+!!33###53vvyvj j'*@'&BhUSD(%+654.#"#7476767632!!546505$-6tN,WTw6M@MQE+3##@ BjTD%+254&'73#"']C(9 s(/ @UēZL gy "@BhQ D+3##5>5Do^-?n $J UvG#!@[OSG8#+4'&#"27654676232".5N6!Z &[5MD%9rr,:E$/*e?h&J7,қ lIa1()  (+55%755%.8.8_㠯_㠯dq S@P  Bh ZQ CQ  D   +33##5!5%3##5>%3#\mm`IGt`.Arx3v~RF i $K VDd!,0J@G*& Bhh[QCQ  D0/% +654.#"#5762!!546503##5>%3#a6$-7u*7Q7Q*hx.Gt`.Arx3vpXy"fS&LbxåQȮQI9n $K VD 37c@  BK PX@C ` `  O\Z C S C Q DK PX@D `  h  O\Z C S C Q DKPX@E h  h  O\Z C S C Q D@F h  h  [\Z C S CQ DYYY@! 76540/,+('#!  +33##5!5%"&=326&+53276&"#54623#\mm`|kai(1BP85&56 7 ''ZHCd<2Q'T@Wk7"HHYch>UH*&}?|$eSl(SA(%'Cw8 w++I&8v ++,&8e ++&8jw w++ I'v< ++ (@%[ CSC D)!!"+4&+3265332+#54ᒑ4&"# $b}LFcZa*"#DhPmsZIBC!WnŁr QM-WR|YE^JmNOl$ 'CrD r++E'vD ++'&eD'lrD r++z'jrD r++R'jrD r++~ Tm@jD  8B  hh Y S CS DONJH<:75.-'#TT +54."2626 !3237676=3#"'#"547676754.#"#547>$@440|`n-Hc&[U&E  /2nC=+VX0&Bp 'yjн9;VgiuL(2yz??[[~ɫ8g7iu3,.(y;7~LLTm?6vW$(6sW&yF 'C|rH r++E&Hv ++'&Hea&Hjr r++A 'Cr r++5E&v ++'&e&jr r++q/@@=/.-+B[SCSD5!4&"+.#"3265&#"#5327 &=632''hsGcBGElKGZ~5aO ;i 53c8jwdw0\H#r~p\$I5,'jr\ r++8$'qDv$ v++'qkrD r++8$#'h$ ++&hD8[0&k $ ++[+&k D ++I&&v ++E&Fv +++&&e ++'&Fe'iv& v++'irF r++*&&f ++&&Ff*&'f ++e&G&'q ++c&Gqj j++{'q2v( v++'qJrH r++q#'h( ++&hHq'ipv( v++'irH r++[v&(kJ  ++['k2 H ++q*&(f ++&&Hf+&*e ++~'&eJ#'h* ++~&hJ'iv* v++~'irJ r++'q{* {++~'qJ ++ +&+e ++.&Ke ++7D@AY  C Q C D  +!33##!##533!5BxxiiB^XRxvRB@?BYC SC D  +"##53533#>2#4&wGeYyeeyCcEfN 'lv, v++'lr r++'qv, v++'qr r++;#'h, ++"'h?['kT , ++;[|'ir'kP r++ ++R'iv, v++8@C D+3#$~'-, 2'ML^+&-eE ++Vc'&de=?'q{. {++('q{N {++( @BC D+33 ##Kg mI&/vF ++=I&Ov ++m'q{/ {++X'q{O {++ WBK PX@`Q CR D@hQ CR DY+3!!3##83O=*dv"'VO++'xS/++'xV!O!++m %@" B CR D+37!!5783;RzRv`FzFcb @ BC D+37#57Ζ,^^lPFF+I&1v ++E'vQ +++'q{1 {++'q{Q {+++*&1f ++&&fQ'gh2 ++'gNR ++"'h2 ++&hR- $&2m#u u++$!&Rmr r++: oK2PX@!YS  CS D@'`YS  CS DY@    ! +%#"3!!!!!!"'&4676^cGVMu4EJ\2"L~ebtPx2vL_\ĭ&Tq ER@O7Bh YS CS DEC:864.-)(%$ % +4.#"'4&"327676 !2>=3#"'#"'.567632/(mGQIK LM6#[F7 c5PKJ?*bT2Aj1"!yM~͂r܂0FzG'&JhTqu3S.||pLʏI&5v ++9E&Uv< ++'q{5 {++9'q{U {++*&5f ++9&&Ufi[I&6v ++xE&Vv ++[+&6e ++x'&Ve[&y6x&yV[*&6f ++x&&Vf(*&7f7 ++-p&W ++!'lw8 w++'lrX r++'qkw8 w++'qrX r++$'h8 ++&hXW&8jw w++R&Xjr r++< &'m2w8 w++X!'mNrX r++[&8k0  ++[&&Xk  ++F+&:e ++9'&Ze> +'e< ++='&e\ 'jv< v++p|I&=v ++RME&]v[ ++p['ikv= v++R:'iOr] r++pg*&=f ++R:&&]fk@BK PX@YSCSDK PX@YSCSD@YSCSDYY@ 2"!+432&"3##"'53265#53<>^MT&:O(^4#z>GjczBoIj*'7' ++&'8'&'8fG'-/ 'M/ .'MOQ'-1 #'M1 'MQ'='']'']fGI'v* ++~E'vJ ++ $'o$ ++4&o+D8$'p$ ++&pDq'o( ++&o Hq&(p ++&pHi'o`, ++j'oa++9'p, ++.;'p,,++)'o 2 ++&o R&2p ++&pR;'o25 ++9&oU&5p ++9;'pu,U,++4'o+8 ++P&oGX&8p ++;&p,X,++['q{6 {++x'q{V {++('q!{7 {++- 'q{W {++_c` !@BhQD!+%#"/527653`$3%"l=)'/BKPX@ kD@ jaY+3#'#xuVVv')&/BKPX@ kD@ jaY+3#'3;uxyvV&Zr^@MQE+!!Zs;S hKPX@WDKPX@CS DKPX@WD@jOSGYYY+3"&=32x@ab@ XgeXqtN@MQE+73#՟N$v'@$[OSG+$4&"2&46215\44\YYXXT<=R=3\y\\z[Q,'@$BjOTH$!+#"546733267,,TXX@IIl4BeFB>7W Qe@ BKPX@[SDKPX@S CSD@[SDYY!+%>2;>7"&" Uci ;b9 #a&J)[6R5 (+%7kʶ(NY@Q D+!! eR(+778CCxa/a/9<CK2PX@kSD@hiSDY@ !+5462&#"9^c@}<Sl_Xmp!mlBKPX@YDKPX@Q CDK%PX@YD@kMQEYYY+73##N>+d<('@$h CR D+7!#!I9{I FfKPX@ B@ BYKPX@S CQD@ CSCQDY!+32765453#5"'#3,J,,})$11R$Df'i% ++'ivE v++'iv' v++'idvG v++n'ijv) v++T='ikvI v++'i>v0 v++'irP r++'iv3 v++'irS r++['ilv6 v++x'irV r++('iv7 v++- 'ivW v++F$'C}v: v++9 'CrZ r++FI&:v ++9E&Zv ++F&:jv v++9&Zj;r r++ $'Cov< v++= 'COr\ r++xr|@MQE+!!xsdr@MQE+!!dHs@BVD+33!5j[_@BkQD+!##rj[VqK@BkQ D+7!##qwg]B} "@ BVD+33!533!5'h^6g]TT} %@" BkQD+!##%!##xg^xg]KKT %@" BkQ D+7!##%!##xg^xg^KK[28 @YQ D+3!!#!5!~ #8ft*t[28/@, YYQ D +!!!#!5!!5!3!2 ## *:tttfz @OSG!#+45432#"58  );MY]KPX@+ [  [ S CS DKPX@/ [  [ C SCS D@3 [  [ C SC CSDYY@]\[ZWVQPIH+4&"26576 ".54&"26576 ".576 ".54&"2653# ]9:99[X@@XCjjC}:999[X@@XCjjC$X@AYDijC9:99.C{WW{ ZZ%H44Ie&&e{WW{ ZZ%H44Ie&&e&H44He&&e{WW{ ZZ8 R$)(+ R8.x)(+55%.8_㠯^@ C D+3#F* 5@2 BYQ D +33##5!5鳹Ull[ilwNC4Q@Nhh  Y  YSC S  D43210/.-)(%+6 #54&'&#"3#3#2653 '&5#535#53)@.!0,_I@;4!FJ[oooo@I54zޖ жZb,^]rkbZ{ (+!###%3###3{q{m_r`W5W.6"QRe &(+&"2676264&"'632#"'&4>jsp"JJ&zz Vφ@~Y4&K)`MT-VL.˜32#"&'#"&6322Z~}2.}tZA84YYIIYXYYTfaOJY_s (+432&"#"'53265<>^MT&:O(^4#z>GzBo(+#"$"'632367#"$"'632367>2k(O9<C!>Dk(N9<C!U]KOohP]KO mX& ;  (+7!! ]%"C-oo-ʠ\ (+7!!55\%Cootp6r'  (+#33# bsasT%D@A B Y S C D%%"!# +54632&"3##!##5354632&"BbtQ6-p*ǖ4btQ6-p*Fy;@\q11qFy;@\TC@@BS CS CQC D# +!#!##5354632&"!5#53rbtQ6-p*$llqy;@(sTX@ BK.PX@YSC D@[Y DY@ +#&"3###53546 `ǖ!0|J.cq1qFsT'+U@R" # B  S CS CQ C D+*)(%$!#+!#!#!##5354632&"!54632&"3#$r4btQ6-p*btQ6-p*$kkkqy;@)y;@T'KPX@! " B@!  " BYKPX@+ YS C S C DK.PX@) YSC S C D@' [ Y S C DYY@''$# +546 #&"3##!##5354632&" !`ǖkbtQ6-p*FsC0|J.cq11qFy;@\OB_< UUHi & & i DQ \xd<|b(pXX<9$v&3oU8GW+1?hT-[\8uay^;wKw[A(n?:FJ"pd0jlh1bT\~VRMiZi1xF--39"={R]yQ4)>}5z1LLaZLZrV]pd_rgdTd\8\8\8\8\8\8d8a:ZN0XwwwwwkT9"ljjjjjzj1111aA5qMMMMMb$^o=r,\8j\8j\8jaaaahh11111y\~y\~y\~y\~7;"?;^V;=cwMwMwMiii[1x[1x[1x[1xA(F-:F39"="p{Rp{Rp{Rk:w:y\~\ j4\8j11ij9.w)MwM;ii4P[1xA(F-_Z;<$] <9 9d<ulhbTRKi[1xA(F-:F39:F39:F39"=xdUUq5[[] ^R=^Y4{Rf}=^YXs]tX ; \rGT<T8TTcT:Z6r6`*nTz 6Nr 2  F l   J t @ ~  z Dn.>(R~,xh.n2^TTdvR~Z(V~J !!!,!>!!!!!!!"""$"0"B"T"f"x"""##,#>#P#b#t#$$&$8$D$V$h$z%*%6%H%Z%f%x%%%%&$&6&H&Z&f&x&&''.'@'L'^'p''''( ((&(6(H(Z(l(x(((((((()) )2)>)P)b)t))))))))***(*:*L***+++&+8+D+V+p++++++++,,.,@,R,d,,,,--8-J-\-n--------..p.//"/4/F/X/d/v////////000$060H0Z0f0x000000011 1101B1T1f1x11222 2,282D2P2\2h2t2222222223 33(3:3L3^3p3333333344 44.4@4R4d4v44455X5p556(6D6\6x667&7|77777778 8808B8T8f8x888888899"9<9\9~999:,:T::;;;;<<<<==.=>=P=j==> >>8>V>x>x>??j?@y^H"/n  bbi n {L '     : T          N  2 4J 4~   4   Copyright (c) 2011-12, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Antonio'AntonioLightAntonio LightAntonio LightVersion 1 ; ttfautohint (v0.94.20-1c74) -l 8 -r 50 -G 200 -x 0 -w "gG" -W -cAntonio-LightAntonio is a trademark of vernon adams.Vernon AdamsVernon Adamshttp://newtypography.co.ukhttp://newtypography.co.ukThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLAntonioLightCopyright (c) 2011-12, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Antonio'AntonioLightAntonio LightAntonio LightVersion 1 ; ttfautohint (v0.94.20-1c74) -l 8 -r 50 -G 200 -x 0 -w "gG" -W -cAntonio-LightAntonio is a trademark of vernon adams.Vernon AdamsVernon Adamshttp://newtypography.co.ukhttp://newtypography.co.ukThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLAntonioLight  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni00A0uni00ADuni00B2uni00B3uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaronOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflexTcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentuni01C4uni01C5uni01C6uni01C7uni01C8uni01C9uni01CAuni01CBuni01CCuni01F1uni01F2uni01F3uni01F4uni01F5uni0200uni0201uni0202uni0203uni0204uni0205uni0206uni0207uni0208uni0209uni020Auni020Buni020Cuni020Duni020Euni020Funi0210uni0211uni0212uni0213uni0214uni0215uni0216uni0217 Scommaaccent scommaaccentuni021Auni021Buni0237uni02C9uni0307uni030Funi0311uni0326uni0394uni03BCuni1E02uni1E03uni1E0Auni1E0Buni1E1Euni1E1Funi1E40uni1E41uni1E56uni1E57uni1E60uni1E61uni1E6Auni1E6BWgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2074Eurouni2215uniF8FFffuniFB01uniFB02ffiffl & &, `f-, d P&ZE[X!#!X PPX!@Y 8PX!8YY Ead(PX! E 0PX!0Y PX f a PX` PX! ` 6PX!6``YYY+YY#PXeYY-, E %ad CPX#B#B!!Y`-,#!#! dbB #B *! C +0%QX`PaRYX#Y! @SX+!@Y#PXeY-,C+C`B-,#B# #Bab`*-, E EcEb`D`-, E +#%` E#a d PX!0PX @YY#PXeY%#aDD`-,EaD- ,` CJPX #BY CJRX #BY- , b c#a C` ` #B#- ,KTXDY$ e#x- ,KQXKSXDY!Y$e#x- , CUX CaB +YC%B %B %B# %PXC`%B #a *!#a #a *!C`%B%a *!Y CG CG`b EcEb`#DC>C`B-,ETX #B `a  BB` +m+"Y-,+-,+-,+-,+-,+-,+-,+-,+-,+-, +-,+ETX #B `a  BB` +m+"Y-,+-,+-,+-,+-,+-,+- ,+-!,+-",+-#, +-$, <`-%, ` ` C#`C%a`$*!-&,%+%*-', G EcEb`#a8# UX G EcEb`#a8!Y-(,ETX'*0"Y-),+ETX'*0"Y-*, 5`-+,EcEb+EcEb+D>#8**-,, < G EcEb`Ca8--,.<-., < G EcEb`CaCc8-/,% . G#B%IG#G#a Xb!Y#B.*-0,%%G#G#aE+e.# <8-1,%% .G#G#a #BE+ `PX @QX  &YBB# C #G#G#a#F`Cb` + a C`d#CadPXCaC`Y%ba# &#Fa8#CF%CG#G#a` Cb`# +#C`+%a%b&a %`d#%`dPX!#!Y# &#Fa8Y-2, & .G#G#a#<8-3, #B F#G+#a8-4,%%G#G#aTX. <#!%%G#G#a %%G#G#a%%I%aEc# Xb!YcEb`#.# <8#!Y-5, C .G#G#a ` `fb# <8-6,# .F%FRX ,1+!# <#B#8&+C.&+-?, G#B.,*-@, G#B.,*-A,-*-B,/*-C,E# . F#a8&+-D,#BC+-E,<+-F,<+-G,<+-H,<+-I,=+-J,=+-K,=+-L,=+-M,9+-N,9+-O,9+-P,9+-Q,;+-R,;+-S,;+-T,;+-U,>+-V,>+-W,>+-X,>+-Y,:+-Z,:+-[,:+-\,:+-],2+.&+-^,2+6+-_,2+7+-`,2+8+-a,3+.&+-b,3+6+-c,3+7+-d,3+8+-e,4+.&+-f,4+6+-g,4+7+-h,4+8+-i,5+.&+-j,5+6+-k,5+7+-l,5+8+-m,+e$Px0-KRXYc #D#pE (`f UX%aEc#b#D * **Y( ERD *D$QX@XD&QXXDYYYYDAntonio-Regular.ttf000077500000000000000000001355101415770645300420430ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d/antonio FFTMg,GDEF$H(GPOSp GSUB 0OS/2 `cmap]mWcvt /r8fpgm zA0 gaspglyf`lheado-6hhea $hmtx쀶 loca_ibmaxp VD name4"ldpostSC( prepx::UW{#U   0>DFLTlatnkern 4"9Y |Xt _$$%%&&''))**--..// 22 33 55 99 ::<<EEFFIINNRRUUZZ\\              ..//001122FFHHJJTT UUVV WWXX YYZZ [[uuvvwwyyzz}}                  l$%&')*-./2359:<EFINRUZ\    ./012FHJTUVWXYZ[uvwyz} ,.DFLTlatn33fP Knewt  & &d  l@,~Hae~7& AWak    " 0 : D t !""""""""+"H"`"e% Ldh7& @V`j    0 9 D t !""""""""+"H"`"d%vRH-g`_Ksm[;'xutsf^U&zߛߏߎߌ߈߅y]FC   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeiwpkvjsgtl{cn9m|b2xelqhijymkffD(+!!%!f4Dfx}@Q CQ D+3#3#KTGe@Q D+3#3#AFAF|RF@C  Z Y  C D+33#3#####53#5333#u6|zz{6uwO67rrOeX ,;@8BhfQ CQD"+#5.=332654'.'&5%53#54&"}{vA9 R  };*3|>lb&qpTh M ? ZHhN]e'3KPX@'[ [S C S DKPX@+[ [ CSC S D@/[ [ CSC C SDYY@ 10 +3#4&"26546  &546  &54&"265PD=4455M]݈]4456 lPQknUUn길길lPQknUUnB-U@-+)  BKPX@SCS D@SC CSDY$+&'326654&"#&' &7546 67buF:z0h9gWbecLfVHJ.[le']dhq테upe5@Q D+3#pAHDBK$PX@WSD@[OSGY+476767"3&'&0)*z6UF0EFNlo\^ #`2.A>\EK#PX@WSD@[OSGY@ +52#52>54&\j{UU{jF0Ex`ԋ`#a42uKA@ BKPX@ Q D@MQEY+37 '#'7%7QQPQ﬋~~wgq %@"MYQE+33##5#53Gqwy@BkQ D+7!##wejI|XX@MQE+!!X<Z@Q D+73#W@ C D+3#He+ !@SCSD+46  &5'&"27676545e[m@;1;UA$Tv.2/ "@Bh C D+3##5>E"|7>4."#V!"Au!}78# !),=H_$*fb؛b=҆+ ,r&(BKPX@-hh[SCTDKPX@-hh[SCTD@-hh[SCTDYY@ !#+ &5326&+532765454&"#546 p3=Sj97J&MN?˚jSNQ0n}*-`M 0@-  BZ C D +33##!5%Ց`Ml"<@9Bh[Q CTD%'A+63232# 532654&#"'!!O#D5m4/t3.8t)F/b\.PLUTX kdik5)@ !BKPX@%h[SCSDKPX@%h[SCSD@%h[SCSDYY@ %%%+6 #"'&56 #54&"4&#"327659A2I*x<71:T:\ B[<:Vkz5!qp.")>L å#{g"/@ BKPX@[SCSDKPX@[SCSD@[SCSDYY+46  &'&467&4&"2>564."2tmBPRFE{Q88 '$$*S8<R@b1F /c鲲ExGFiq8)-8C+@ +BKPX@%h[SCTDKPX@%h[SCTD@%h[SCTDYY@ &$+4676  &'53265#"%4.#"27C9$QMeNŐD)4c&4*S25ͻ+_Il32#>76764&"#3#%zl<)WE'5sfZ8j[aDN(<0\F[^^$/8=KPX@* 7 BK'PX@* 7 B@* 7 BYYKPX@*   [ [SCSDKPX@'   [ [WSDK'PX@,   [O [WSD@3  h   [O [WSDYYY@ 10420818,+(&#! // +24&'! 367# ! "&'#"&3273"3265&5`^ސ3O;cg 1pcnB{|Fh d I]e\9mp}Xh~O8zc`gn/GBi '@$hZ C D+3#!#!#M#2.  PS'.@+B[S CS D!(!#+ +!2#!4&+3265454'&+32>5>Ǐ:K8RX==9fu<3&(B%0E^ 't|+!KPX@$hfSCTDKPX@$hfSCTD@$hfSCTDYY$$+46767#54.#"26=3 |B'UB&%4(S?97͗ȼ,`sĩw'ȟ = @S CS D!#% +!2#!4&+32765KʘNYjj<"Ik4 (@%YQ CQ D+!!!!!!.C~ "@YQ C D+!!!!#0ԯ|-!͵BKPX@&hYSCS DKPX@&hYSCS DKPX@&hYSCS D@*hYSC CSDYYY@ #+7672#54&"26=#5!#' |HV*7B:?Mm;^$ᡈtӥdH @Y C D+3#!#3!y Uo@ C D+3# R!@h CTD"+3!"&=32>5Ʀ o/ Aن<#KmO @ B C D+3 ##3_J@ CR D+3!!E˫ @B C D+!###!} Qn>Yf @ B C D+3##3u  DR|4@SCSD#+7632 &4&"265|lUB'6@88,pXsɑ> "@[S C D!#& +!2+#4&+3265b<& 9T~X:zRMﵘ#|4 h@ B?K PX@SCSDK PX@SCSD@SCSDYY&+4&"2657632'.e6@88lUB'M-Sf椕ɑ ,pXs~I] M!*@'B[S C D!#$ +!2#&4&#'#4&+32>5qGZBDJK{IE<8@ u * 1=1@.j//@,hfSCTD*$$+&5463 #54.#"#"'&54=32>54/&|."2(KB5oΛBE&T4<] @h C D+3#33udW q@ @ B C D+3# #33Rͼ迖ȩ E7 @ B C D+3# #37y`<1 $@!Bh C D+3#33f0s (@%BQ CQ D+!!!5! ckjx@Q CQ D+!#3!a_s@ C D+3#sE@Q CQ D+!!53#aAv@BkD+!# #ɪe0:,KPX@ QD@MQEY+!!0u.y(+5yso~ &c@  BK'PX@hSCS D@"hSC CSDY#+2676 #5#"546%54&"#J~T+.pPG:lP?8.;9>S_kA&*Hi6YutNv4.!K'PX@ B@ BYK PX@CSCSDK PX@CSCSDK'PX@CSCSD@CSC CSDYYY$'#+3>32#"'#4.#"265n?5#L>x:$-,P70r:OvmY~+L6 $|%/@,hfSCTD#+4676 #54'&'"26=3# &5|;%Q:ED (8b/>ʢ-õ*\NNB[h+@b>m{Wa;g| [@ BK'PX@CSCS D@CSC CSDY'"+3#5#"&576324&"2765J8$ XF8_55:X; ~[7pXB4.2| &1@.hYSCSD(#+7632!2>=3".54.#"3|fP: @>-CyG6$/Z0 oXn`p-y@U3T8B2GE0@-BYSC D!+32&"3###53V?(^*́36Q w*KPX@  B@  BYKPX@[SCSD@#[CSCSDY@'% +253#"'7326=#"&54&"32767*F\yJmzQN02Jp56:P*2nK`JfVF>LrW-1@&@#BCSC D"+3>2#4#"#~{CUJIiT_]~d";KPX@QCC D@YC DY+3#3#$"J-"BKPX@QCCSDKPX@YCSD@YOQDYY@+27653"'53#P2aEmj8>8ul Zg "@BCC D+33 ##'M  &a@C D+3# gKPX@ B@ BYKPX@SC D@CSC DY@ ""#"+>32>32#4#"#4#"#3`|Y6&Uw|x vHL@LcFR`M]QpACBKPX@SC D@CSC DY+>2#4&"#3`}F|R=IiTLLVVi|"@SCSDF'&#+7632#"'&54'&#"323265|DZA(@$=(Q/>%O/mZ$ws<../)K'PX@ B@ BYK PX@SCSCDK'PX@!SCSCSD@SCSCQDYY&"+>32#"&'#3<5454'&'&"265`r@07^  c@73_EEtD2N M#'$+|K)PX@ B@ BYK PX@SCSCDK)PX@#SCSCSD@ SCSCQDYY@ +253#"'.5764&"2765|8_|4aGJ=E818m>uz4F/&nZ2g,d L BKPX@SC D@CSC DY@   +2"#3>`N,}=ܧXaX'/@,hfSCTD+"!+!"&=332654'.'&54632#54&"vA9 R èiB3|>lXqpTh M Ჯ+ZHhN]e.(MK!PX@ CQCT D@Y CT DY@ !+33#3#"&5#53͢6nV:gY6CBKPX@CT D@C CTDY"+3#5"&533265huṓHI$LasdR* @CQ D+3#33 տl#$P3T&@#BCQ D+3# #3333O &ww)$j B7 @ BC D+33# #+!"4#@ hCTD!$+3+532764'33.8D7Gi l,'}L @2jLj (@%BQCQ D+!!!5!e:J܍`!6@3 B[WSD!!+3"3#"&54ᒑ46K<[0SSS90[<{.]].{@x]@tx@QQtU@MQE+3#UW!+@(B[WSD% +323"+526=467.=4&#<{.]].{<[0SSS90[QQ@x]@tx@o?@@= B@?O[SG +232127"$"'6U9M"|k(On,+r*r\]N#, ++|,;@8'$BhfQ CQD+4676753#54'&'"26=3#5&'.5|;%@vqq?T (8b/>V=qq>1!õ*I F^h+@b>m{WaeHXF͍&J#;@8BhYSCQ D#! +!2#54&#"!!!!5>54'#53&[FAJ^!{hDġ\aN`6ZW} I@F B@ ?[OSG+7'"''7&47'76264&"WZ66ZY\\Y[54ZWa ۇ3WZabZX45Y[baZX7Vݖ1<@9  h ZY  C D +33#3###535#5333f>ttytt0z?=KPX@UQ D@YMQEY+3#3#zW4>d;2BK PX@"`^SCTD@$hfSCTDY#+46 #54&" &=332545454'&'&'&5467.'64&XOqAZC@a>گ7H]0bb*]PKEUQiJpυ֯=VshRv7MY&^\nk^1HF(XzLr >/P0lw2~MT@MQE+3#%3#gTTv)={K PX@/`^[ \  WSD@1hf[ \  WSDY@ 54# +462#54&#&26=3"&5$$  $"2>4.]b}+ vdQD(;]{,$6?5liV4RtJV  (+  % l8"8"GϚϚa@kMQE+!#!aeZ=^@MQE+!!Z^ 08M@J  Bh [  [W SD 7654/-,+*)&%   +$  $ 25'&#4&##3264&#26^-p-ݎS1-+EgA},Q.2p-Ӭ䄨m8nG ! >L,*^T]&r) ZO @MQE+!!Z  h+C !@[OSGF+6  %654'&#3232h=2g6*8rpSDP(T0=))@1` /@,YYMQE+33##5#53!!aǕ$@!hUSD$+467672!!5476'&"#NH(8Z()hJ"6&4*< JHqCQ*cD#%;%BK PX@(``[XSDK PX@)`h[XSD@*hh[XSDYY@ !#+462 &=326&+53676&"#mvxzxl$x);K383a+,6򬧠66}XbiqPTnd4Q(+%d]V)@&BS C D+!###$4676/6As'o$[u#>\@MQE+3#_"@BjTD%+254&'73#"'_]C(E ˛{9< @UĐTSZ "@BhQ D+3##5>.kM%H_X^qonr tqj+@tV  (+55-55%"8"8֣֣_~ @ BK PX@0hf  Z CQ C D@.hfY  Z C DY@ +3#3##5>33##5!5%!d7d=uwZZ~"9`Tj[[_ , BK PX@3h  h [ CQ CQ D@1h  h [Y CQ DY@ ,+'( +3#3##5>467632!!54676#"#!d7d=u3LF(6Z&(dVsw5P)"9`T JFlA5#_t$w)47b@  64 BK PX@C  `  h`[ \   ZS C  DK PX@D  `  hh[ \   ZS C  DKPX@E  h  hh[ \   ZS C  D@I  h  hh[ \   Z CS C  DYYY@5557573210/.-,+*)(!#+3#462"&=3264&+53676&"#33##5!5% xgnruqg"u(:G161^)!ZZ~+5즢22}Uago OSmj[[" ذ++Bis'C$ ++Bi'v4$4++Bib'e$ ++Bi>'l$ ++Bi'j$ ++Bi'j$ ++BU<@9 Y   YQ CQ D +!!!!!!!#2APE|+&y&s'Cq( ++&(v}44++b&(e ++9&(j ++Rs'C, ++J&v4,4++b'e#, ++m'j , ++6=&'ii++f>'l1 ++|4u'C2 ++|4&2v66++|4d&2e ++|4@'l2 ++s= &2j ++Lvz (+''7'7ddddhhhhK2r%:@7#B%$@?SCSD)+&'&"265#"''&576 7d@8OWcl;lUHQMkRt8F$Hc=(4~,pX^$=r'C8 ++=&8v33++=a&8e ++O&8j ++1'v4<4++O(@%[ CSC D!#'!+332+#4&+3265ΓN]dO9UX:YjqXZ⸝{+ BKPX@[SCS DKPX@[SCS D@[SCS DYY@ -#+476327+52>54ᒑ4&"#;IŜG\`I|hI aaK?>JZ|xMݰOGi3qRCT,ZCEXB~o'CD ++~'v0D 0++~^&eD~:'lD ++}G'jD ++~'jD ++~;FQ^@[( = <B  hh  Y S C SDQPLJED;:.#%! +632!2>=3#"'#"&=>754'&'&#"5"#56 264.#"3J: @00 dZ4GE&L2  BA̪@2L .pP"-k dmM5i娈Tz\o<1O“X{a>7e  ::6+5KXX,kBV@2nEn|&yF| o'CH ++| &Hv0 0++| ^&Hed.&Hj ++?o'C ++7&v0 0++^&eZ&j  ++h+B@?  B\CSD)(#! +24''7&'77 &=6.#"265@;TCx;*@(Uo [:U:=AML*1#~vya svn88VwϾ,_m 0NJrA:'lQ ++|o'CR ++|&Rv0 0++|^&Re|:'lR ++d.&Rj ++^ +@(YYMQE+!!!!!!^h**fg |S ":@7  B@"!?SCSD)+&'"265&7627#"''-.4R/"/_DB4e@VW?3d8 4%lk=mZ$ p6o'CX ++6&Xv0 0++6^&XeX&Xj  ++4'vq0\ 0++. _@ BK PX@CSCSCD@SCSCQDY&$+367632#"&'#4&"26589@/6]:r0#61lF""tD2;f/a.'j\ ++Bi'qo$ ++~'qD ++BiD'h$ ++~@&hDBi&k$++~/&kD++|+&&v44++|&Fv0 0++|+b&&e ++|^&Fe|+'i& ++|'iF ++|+b&&f ++|^&Ff=b&'f ++|&G=&'q ++|&GqEx x++'qD( ++| 'qmH ++D'h( ++| @&hH'i( ++| 'iH ++&(ky++| &Hk^++b&(f ++| ^&Hf|-b&*e ++w^&Je|-D'h* ++w@&hJ|-'i* ++w'iJ ++|b-'q* ++w/q@O&fJ O++Hb&+e  ++@\&Ke++7D@AY  C Q C D  +!33##!##533!_ooYYvxjjUvj@4@1BYCSC D" +33#>2#4#"##53~{CU͓WtIiT_]~(t@>'l, ++-:'l ++'q, ++'q ++D'h , ++@'h'ku,++'i'kq++++w'i, ++c@C D+3#$'-,-z"'MLRpb'e~- ++_8^&deFb'q. ++bg'qN ++g @BC D+33 ##'M7 &&/vJ44++=&Ov44++b'qz/ ++rba'qO ++\ WBK PX@`Q CR D@hQ CR DY+3!!3##EVZ1l˫ rba'qO ++'xy/y++Q'xO %@" B CR D+37!!57E쑑ARR"6::KY @ BC D+37#57ʹ͍?OOu0>>f&1v44++A&Qv0 0++bf'q1 ++bA'qQ ++fb&1f ++A^&Qf|4&2q| ++|&Rqm ++|4F'h2 ++|@&hR|h N&2mC ++|YH&Rm4 ++|]>@;YS C S D  +!!!!!!"&46#"z.|›RU>5Y{~ƀ|'8CE@BBh  Y SCSDCB>4'3#"'#"'&576324&#"3232654.#"3U: @>z1 DvQT@&DcC2\0?%N1!-k{smM5i`R{k.z@3lCqM&5v44++d&UvH0 0++bM'q5 ++bd'qU ++Mb&5f ++\w^&Ufj&6v33++X&Vv0 0++ja&6e ++X^&Vej&y6X&yVja&6f ++X^&Vfab&7fX ++.&W ++=='l8 ++6:'lX ++='q8 ++6'qX ++=C'h8 ++6@&hX=&8j ++6&Xj% ++r K'mM8 ++H'm^X ++=&8k\++U&Xk)++@b&:e ++3T^&Zef1b'e< ++4^&e\1'j< ++s&=v44++Lj&]va0 0++s'i= ++Lj'ie] ++sb&=f ++L^&]fkf@ BK PX@YSCSD@YSCSDY@ "" +7265#53432&"3##"'s4L+QX?K"HS;\!8?lb'7' ++A^'8'|:^'8G'-/-K"'M/-x"'MO'-1-y"'M1-M"'MQe'='']'|']G|-&*v44++w&Jv0 0++5i 'o/$ ++L &oFDBiK'p$ ++~G&pD  'o( ++3  &o-HK&(p ++| G&Hpr 'ol, ++_ 'oYK'p , ++G&pB4 'o<2 ++3 &o-R|4M&2p ++|G&RpLM 'oF5 ++d &oUMK&5p ++{dG&UpmL= 'oF8 ++]6 &oWX=J&8p ++6G&Xpjb'q6 ++Xb'qzV ++ba'q$7 ++.b('qhW ++P_)@&BOQD+27653"'5V1aFm>jvk 8^@BMQE+3#'#q虷VV^8^ @BMQE+3#3;蚸V^&ZW^@MQE+!!ZQ@ :K(PX@jS D@jOSGY!+3"&=3326{jvwj:F@ mutly3G@MQE+3#G)@&[OSG +&46264&"2pkkkk:f99fmmmm^EE^Eu,"@ BjTD$$+!3327#"&46U[mH<f/YFs ~f-@* BO[SG!+>2;>7"&"Xm{ Fj9]AJ)%_AR6%(+%_.W@MQE+!!h (+77^D^d2=d2SG@KPX@_OSG@kOSGY!$+454632&#"tuj=#"j`hxwC}{DBK PX@_MQE@kMQEY+73##UZ1l Bi'@$h CR D+3!%#M#K F6fKPX@  B@  BYKPX@S CQD@ CSCQDY"#+3#5#"'#33265huẂHI$LasdRS"'i% ۰++.'iE ذ++="'i' ۰++|'iG ذ++"'iv) ۰++GE&'iI ߰++'ir0 ++'iP ++>'i3 ++/'iS ++j'i6 ++X'iV ++a"'i7 ۰++.( 'iW Ű++@s'C: ++3To'CZ ++@&:v44++3T&Zv)0 0++@&:j ++3T&Zjc ++1s'Cy< ++4o'Cd\ ++x|@MQE+!!x<:D@MQE+!!<\@BVD+33!5 \Y\@BkQD+!##5}\Pa@BkQ D+7!##a.rVy~y "@ BVD+33!533!5ڄVVooy %@" BkQD+!##%!##v.sV7.rVffo %@" BkQ D+%!##%!##n.rV8.sVff[28 @YQ D+3!!#!5!`8f[28/@, YYQ D +3!!!!#!5!!5!`8f ]@OSG+462"xxxi F'3?KKPX@+  [[S C S  DKPX@/  [[ CSC S  D@3  [[ CSC C  S   DYY@IHCB=<7610+3#4&"26546  &54&"26546  &546  &54&"265PD=4455M]4455M]N]4455 lPQknUUn길lPQknUUn길c길lPQknUUnFt$V(+ F8"GϚtwV(+55%"8֣L@ C D+3#8C 0@-  BkZ D +33##5!5%\\'pac+1KPX@9hh  Y  YSC T  DKPX@9hh  Y  YSC T  D@9hh  Y  YSC T  DYY@10/.-,+*'&$$+46767#54.#"3#3#26=3 5#535#53|B'UB&%4(S?97͗eeeeȼ,`sĩw'aȟ ʔag(+3###3!###ό ϬW ~yet%4/((+&"'62# 476264.32>7&#"9.n,+d T.J )  h<=A3i)"y- !GvgK2 c*& X /Eb)\C(+!#!# >t (+!!!!5t#9CI<@(+!!<L(+3#8c:(+!##3܍l' &!(+>32#"&'#"&632."26 4&"29ByzG45Dvv?)uk>>juBp|+(|suFVPBG#?@<B Y S C D#"! +32&"3##!##53532&"!7V?(^*^́V?(^*36Q  I36QGr@  BK+PX@)SC SCQC D@" O  YQC DY@ ! +32&"!#!##533#V?(^*=́=36+$EE,G2@/ BYSC D""+4632#&#"3###53ȼ@`Q́돊/CVwQ GA%)KPX@ B@  BYKPX@/ S CS CQ C DK0PX@*  [ Q CQ C D@(  [  YQ C DYY@)('&%$! !+32&"!#!#!##53532&"!3#7V?(^*=^́V?(^*= 367$EEE/367,G?'K$PX@ ! BK2PX@ !  B@  !  BYYK$PX@ Y S C DK2PX@* YS C S C D@( YSC S C DYY@'&#""" +4632#&#"3##!##53532&"!7@`Q^́V?(^*돊/CVwQ  I36QAAQ_< U"U^_b F N & _ FfqXBp77\u(gwXWe/|r|`||k|q|g|C+1@TW~^B||ZR~|z|hj}<O@.7Dsds0y~p||}|oGwJb||%Xd.*34L]o!||&}Kz%WTRaZ^ZhVNdd__sZ_T_wBBBBBBB|9RJ6||||sLKD~~~~}~L~p|}|}|}|}d?7h||||d$^o|4.B~B~B~|p||p||p||p|||}|}|}|}|}||w|w|w|w7i ZR~bb=rrK|||||||N|\cj%Xcj%Xcj%Xcj%Xyd.O@3D4DsLsLsLkYR|" P YR||w5LB~ }3}|r_B3||L{L]cj%Xyd.PZ<u]<9B|oGzcj%X}d.O@3O@3O@3D4x<OOa5[[] ^F=LW4g0t}<=Lcls]wtT F gJGGfGdGGG<\4JDd~ T6d*~ z z 4 P 2R,XzvXF4<~NhLx(@6(Z\D^&L 0 !!!!""",">""""""""# ##,#>#P#b#t###$$&$8$J$\$n$%0%B%T%`%r%%&8&D&V&h&t&&&&&'0'B'T'f'r'''("(4(F(R(d(v((())").)>)N)`)r))))))))***&*8*J*V*h*z********+ ++.+B+T+f++,,,&,8,J,V,h,,,,,,,,--.->-N-`-r----..@.R.d.v......../ /\//000(0:0F0X0j0|00000000111*1<1H1Z1l1~1111111222$262H2Z2f222223333(343@3L3X3j3|33333333444$404B4N4`4l4~44444444555,5^55556 6<6j6666727f7777888,8>8P8b8t8888888999(9:9L9^9p9999::4:d:::;;<<<0 >N>r>>>>???r?@@A_R@"/n  bbipL'   ( B \       0  N 4 L 4d 4   4   .Copyright (c) 2011-12, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Antonio'AntonioRegularAntonio RegularAntonio RegularVersion 1 ; ttfautohint (v0.94.20-1c74) -l 8 -r 50 -G 200 -x 0 -w "gG" -W -cAntonio-RegularAntonio is a trademark of vernon adams.Vernon AdamsVernon Adamshttp://newtypography.co.ukhttp://newtypography.co.ukThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLAntonioRegularCopyright (c) 2011-12, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Antonio'AntonioRegularAntonio RegularAntonio RegularVersion 1 ; ttfautohint (v0.94.20-1c74) -l 8 -r 50 -G 200 -x 0 -w "gG" -W -cAntonio-RegularAntonio is a trademark of vernon adams.Vernon AdamsVernon Adamshttp://newtypography.co.ukhttp://newtypography.co.ukThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLAntonioRegular  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~glyph1glyph2uni00A0uni00ADuni00B2uni00B3uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaronOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflexTcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentuni01C4uni01C5uni01C6uni01C7uni01C8uni01C9uni01CAuni01CBuni01CCuni01F1uni01F2uni01F3uni01F4uni01F5uni0200uni0201uni0202uni0203uni0204uni0205uni0206uni0207uni0208uni0209uni020Auni020Buni020Cuni020Duni020Euni020Funi0210uni0211uni0212uni0213uni0214uni0215uni0216uni0217 Scommaaccent scommaaccentuni021Auni021Buni0237uni02C9uni0307uni030Funi0311uni0326uni0394uni03BCuni1E02uni1E03uni1E0Auni1E0Buni1E1Euni1E1Funi1E40uni1E41uni1E56uni1E57uni1E60uni1E61uni1E6Auni1E6BWgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2074Eurouni2215uniF8FFuniFB00uniFB01uniFB02uniFB03uniFB04 & &, `f-, d P&ZE[X!#!X PPX!@Y 8PX!8YY Ead(PX! E 0PX!0Y PX f a PX` PX! ` 6PX!6``YYY+YY#PXeYY-, E %ad CPX#B#B!!Y`-,#!#! dbB #B *! C +0%QX`PaRYX#Y! @SX+!@Y#PXeY-,C+C`B-,#B# #Bab`*-, E EcEb`D`-, E +#%` E#a d PX!0PX @YY#PXeY%#aDD`-,EaD- ,` CJPX #BY CJRX #BY- , b c#a C` ` #B#- ,KTXDY$ e#x- ,KQXKSXDY!Y$e#x- , CUX CaB +YC%B %B %B# %PXC`%B #a *!#a #a *!C`%B%a *!Y CG CG`b EcEb`#DC>C`B-,ETX #B `a  BB` +m+"Y-,+-,+-,+-,+-,+-,+-,+-,+-,+-, +-,+ETX #B `a  BB` +m+"Y-,+-,+-,+-,+-,+-,+- ,+-!,+-",+-#, +-$, <`-%, ` ` C#`C%a`$*!-&,%+%*-', G EcEb`#a8# UX G EcEb`#a8!Y-(,ETX'*0"Y-),+ETX'*0"Y-*, 5`-+,EcEb+EcEb+D>#8**-,, < G EcEb`Ca8--,.<-., < G EcEb`CaCc8-/,% . G#B%IG#G#a Xb!Y#B.*-0,%%G#G#aE+e.# <8-1,%% .G#G#a #BE+ `PX @QX  &YBB# C #G#G#a#F`Cb` + a C`d#CadPXCaC`Y%ba# &#Fa8#CF%CG#G#a` Cb`# +#C`+%a%b&a %`d#%`dPX!#!Y# &#Fa8Y-2, & .G#G#a#<8-3, #B F#G+#a8-4,%%G#G#aTX. <#!%%G#G#a %%G#G#a%%I%aEc# Xb!YcEb`#.# <8#!Y-5, C .G#G#a ` `fb# <8-6,# .F%FRX ,1+!# <#B#8&+C.&+-?, G#B.,*-@, G#B.,*-A,-*-B,/*-C,E# . F#a8&+-D,#BC+-E,<+-F,<+-G,<+-H,<+-I,=+-J,=+-K,=+-L,=+-M,9+-N,9+-O,9+-P,9+-Q,;+-R,;+-S,;+-T,;+-U,>+-V,>+-W,>+-X,>+-Y,:+-Z,:+-[,:+-\,:+-],2+.&+-^,2+6+-_,2+7+-`,2+8+-a,3+.&+-b,3+6+-c,3+7+-d,3+8+-e,4+.&+-f,4+6+-g,4+7+-h,4+8+-i,5+.&+-j,5+6+-k,5+7+-l,5+8+-m,+e$Px0-KRXYc #D#pE (`f UX%aEc#b#D * **Y( ERD *D$QX@XD&QXXDYYYYDSIL Open Font License.txt000077500000000000000000000104571415770645300426240ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d/antonioCopyright (c) 2011-12, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Antonio' This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.antonio_sample.pdf000066400000000000000000000625211415770645300403500ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d%PDF-1.4 % 1 0 obj << /Type /Catalog /Version /1.4 /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [3 0 R 4 0 R 5 0 R 6 0 R] /Count 4 >> endobj 3 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 7 0 R /Resources 8 0 R >> endobj 4 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 9 0 R /Resources 10 0 R >> endobj 5 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 11 0 R /Resources 12 0 R >> endobj 6 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 13 0 R /Resources 14 0 R >> endobj 7 0 obj << /Length 104 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攄&eVh*dq5(($/5Tp23ȁiCs4iw < endstream endobj 8 0 obj << /Font 15 0 R /XObject << /Form1 16 0 R >> >> endobj 9 0 obj << /Length 105 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*畄Vxg&j*dqu(($/5Tp23ȁiCs4i( endstream endobj 10 0 obj << /Font 17 0 R /XObject << /Form1 18 0 R >> >> endobj 11 0 obj << /Length 100 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%畄Vh*dq(($/5Tp23ȁiCs4i endstream endobj 12 0 obj << /Font 19 0 R /XObject << /Form1 20 0 R >> >> endobj 13 0 obj << /Length 102 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攸畄Vh*dq(($ /5Tp23ȁiCs4iY endstream endobj 14 0 obj << /Font 21 0 R /XObject << /Form1 22 0 R >> >> endobj 15 0 obj << /F1 23 0 R >> endobj 16 0 obj << /Length 5285 /Type /XObject /Subtype /Form /Resources << >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream x}ˮm)DےM;? :c-s(繦Wjz>pѴYB'3g\\=gu~΋ŸiOG!׻z{&paؐңt~@uy?u.jZZOC_5Wxك?ns~m f &B?]kyQ[/~~th=fuxi/h}e麷VuPڀ28%a|za#?6 @ZHG6{i?d/2ߴp~u}nDmmpKT`mt猛?Fap,"; lh򇤯`HZ]E1>-znzm6k2Jk9C Z8GCXQO\ vJ>i;6 who?+UmϦpO| rrSslu\΅^<} 5hKTm;e˲"AeZq|SH% țog5 R?AO[j~!cGcZ"'1%kM\2Ym;oP\9j]9'A㽽[6!tqu Yt+v_l%ZNUCO*G>4ԱYaֳvfDa.9x ZK˽ca^(;&y0)|ߎn}|葻}vAnF҃ûD.:0gM c7o }kpllޠM8P׻΃vw@b׈d<ԹW'FΒcmdMvxbeTQ H4/; (8@凲"dIi-ꩱhKNSƎ~1ʗYGw'#Kb%[OVxL44%T?]M=t37"Qf+"H<n=$<_=,FXҧ>Рؓ?`jO S:Vҳ7HaIx֍{"+G g yda!"ьEVc ?#+#F{Jd&#jdeBʁEV|f׿FAJYgId5--GVj9ZY-#+80j-r$l%mfKN!jY-#+Y-#+Y90jͼFV+sL5Z(GVk5q_6{fˑl[d%GV"rd@\%r`զ.FjBf"R4{f+=YZʁEV,9Y=G#GV޶-O"+GK#+kye_GVsj>%Oyv=v=hlV|nQTO>C 6+C"}&b!*Un|krK{w|:i8bj""S$C}v4=y;fOBӓb]Y䖛{:$jud)`{fgCD46jMj^e!R8@fQ" @kSFoLj:oX!ծ+`o p o ija5h$& 5׃_T`ecwN&Rx̀<;WO8S~lۆǽv͞8g&P,i|#yC齦o&,pk^͆5z)A:T 0o]ͩ>F`S2{Qk1EQJbb.ZuG뼯S&]N CT١Ld#2r% 5{e_ZC e2]mN%.0qϡn'l]}%Kb+dxj5AgqsKR8``$F6ـddqnI{!vWzxs%OXK.=W(!3+@jw=dfQv Z1ǩ"07Ew+X >V?}.ǹ%Y|i3)Cksu¡lS!-NƟ;tK3|cѯw_x]T6w=zLioӻB؏/y ǰ}[L;! E3jۥlQ NV9 34X<,3R Z?24A*Yk[ M`RDVS ATHΫV RlZ$&&0RimjAMVHԐt-Y[T)e5צ*kҚ0IL\uGR]א6z:^zRaC[JlhhMhMRMҼ XMBvV M+XWثdʋ`1dO>s=ys,5VL9z\VFOa]G 'Fpͬ/ݖ.&Kn`v ܮݩ;Keٵzb4#\#K7|/]rgoבuޯb쁅Y¢{}e3/n[a(RMC%X11+i>O?&wI20I 9Hd9 3 }4$HX&20<|cx.$#6l4M~h:췎c[QV'wrՙVA[S +hom[1Vؚ=Lquo6u@[Tu@[~3rR|i~KLv(XP{VVgO[(~Oou~:Z[m?_:ߊ[q#lFۀ㩉0B1ˆ\X$[6,0V|aiGXcRbrN GbHRVlYyl䊣Ͷe9&|WN#d9 | r&EIɩD)% GX@`G9 RUr@6ͥL(T @QjPr1Z , AK Mk5IH.U, KiX hxA MXu@`V B@%Ȇf8vx=GUR҆x~n>ZϨI*'re{$7M= $ɵ}{Tgr5QNeƠ"o ^'q)gv )iy?YJ4Dz8,^5 b<03WI%9ZJޏkq=O&GPɃ<+(Ikf/)LjqdY*Rr$Y,JGRq`&F 0'jybUy52~uٽL?JRg~Ͼ2JՏYO[/G~E*^8|녤z+ ,r s+Cfv0A {Rf#av w0;0 0Flf 0A Q9Ri6*(߹فI8faLaz5Fda66r$١mav`#>0;HLa6Q q5 JMفY(f#avىqHjMj:~~SM[l>f$I6`avmK-޷Բ3^t{4cj^ f= R}٣17JzCv=u@M#IRgbC~(#QHq{t\z/a'@$gY/VՆ jnaڰ[mxڰYmxP6VՆ ՆjobXmج6XmVv jn!Zmج6 /VՆljfjfjfjËՆjCڰYmxڰ[mج6XmVv Ն jnZmV{SERP,E(u$o)HNO Eg ,Sw1ή9ipJ.2%]Wd$LT-LcO g$5 @,.( g$ލ$]U. gԐpv lS>[91I86uϖpS>#O8LsIM8Z@,NpMpL?_qwdWJP[Z?tpJU'5E} ak,Lq\^Rs| OD w1YIk]HY xpXmj[Rs{C kmV {f 7^@FYh6 gܯG pbuoŒc_tK,k/E}sEefYX"0Rc"4%/iE_XNG_$Ag/cN͠4>nU Z\g3<??__"㟂ǯ_ endstream endobj 17 0 obj << /F1 23 0 R >> endobj 18 0 obj << /Length 169 /Type /XObject /Subtype /Form /Resources << /Font 24 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xU] 0t$ڂMj}BJVe,Yh\)$2a&7`ROW7+HHqX ^l@O=~ln> endobj 20 0 obj << /Length 169 /Type /XObject /Subtype /Form /Resources << /Font 25 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xU] 0t$ڂMj}BJVe,Yh\)$2a&7`ROW7+HHqX ^l@O=~ln> endobj 22 0 obj << /Length 169 /Type /XObject /Subtype /Form /Resources << /Font 26 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xU] 0t$ڂMj}BJVe,Yh\)$2a&7`ROW7+HHqX ^l@O=~ln> endobj 24 0 obj << /F1 27 0 R >> endobj 25 0 obj << /F1 28 0 R >> endobj 26 0 obj << /F1 29 0 R >> endobj 27 0 obj << /Type /Font /BaseFont /AAAJEE+Antonio-Regular /Subtype /Type0 /Encoding /Identity-H /DescendantFonts [30 0 R] /ToUnicode 31 0 R >> endobj 28 0 obj << /Type /Font /BaseFont /AAAJEE+Antonio-Regular /Subtype /Type0 /Encoding /Identity-H /DescendantFonts [32 0 R] /ToUnicode 33 0 R >> endobj 29 0 obj << /Type /Font /BaseFont /AAAJEE+Antonio-Regular /Subtype /Type0 /Encoding /Identity-H /DescendantFonts [34 0 R] /ToUnicode 35 0 R >> endobj 30 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /AAAJEE+Antonio-Regular /CIDSystemInfo 36 0 R /FontDescriptor 37 0 R /W [0 [500] 3 [246] 15 [226] 17 [260] 41 [364] 56 [470] 68 [452] 70 [430] 72 [436 304] 75 [473 246] 79 [245 699 474 446] 85 [318 393 299 473] 90 [566] 92 [386] 106 [477] 165 [452] 183 [446] 189 [473] ] /CIDToGIDMap 38 0 R >> endobj 31 0 obj << /Length 339 /Filter /FlateDecode >> stream x]݊0^ڂVbXwkh/|M]@8̗9щRw>T4˶4LCBN ?kf GYwL3n$lpEW+Wq,7"MVJV$=KeyY[p2 `O3(ƺ!S+dcW*®TV΅wi [kxJI g9 "H19r1 C@"0zn Q3r#`D}Jf8D1'a'.P9dx9rRۏ'@Hgr<ω77c4=_8w_q endstream endobj 32 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /AAAJEE+Antonio-Regular /CIDSystemInfo 39 0 R /FontDescriptor 40 0 R /W [0 [500] 3 [246] 15 [226] 17 [260] 41 [364] 56 [470] 68 [452] 70 [430] 72 [436 304] 75 [473 246] 79 [245 699 474 446] 85 [318 393 299 473] 90 [566] 92 [386] 106 [477] 165 [452] 183 [446] 189 [473] ] /CIDToGIDMap 41 0 R >> endobj 33 0 obj << /Length 339 /Filter /FlateDecode >> stream x]݊0^ڂVbXwkh/|M]@8̗9щRw>T4˶4LCBN ?kf GYwL3n$lpEW+Wq,7"MVJV$=KeyY[p2 `O3(ƺ!S+dcW*®TV΅wi [kxJI g9 "H19r1 C@"0zn Q3r#`D}Jf8D1'a'.P9dx9rRۏ'@Hgr<ω77c4=_8w_q endstream endobj 34 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /AAAJEE+Antonio-Regular /CIDSystemInfo 42 0 R /FontDescriptor 43 0 R /W [0 [500] 3 [246] 15 [226] 17 [260] 41 [364] 56 [470] 68 [452] 70 [430] 72 [436 304] 75 [473 246] 79 [245 699 474 446] 85 [318 393 299 473] 90 [566] 92 [386] 106 [477] 165 [452] 183 [446] 189 [473] ] /CIDToGIDMap 44 0 R >> endobj 35 0 obj << /Length 339 /Filter /FlateDecode >> stream x]݊0^ڂVbXwkh/|M]@8̗9щRw>T4˶4LCBN ?kf GYwL3n$lpEW+Wq,7"MVJV$=KeyY[p2 `O3(ƺ!S+dcW*®TV΅wi [kxJI g9 "H19r1 C@"0zn Q3r#`D}Jf8D1'a'.P9dx9rRۏ'@Hgr<ω77c4=_8w_q endstream endobj 36 0 obj << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> endobj 37 0 obj << /Type /FontDescriptor /FontName /AAAJEE+Antonio-Regular /Flags 4 /FontWeight 400.0 /ItalicAngle 0.0 /FontBBox [-78.61328 -327.14844 1409.1797 1163.0859] /Ascent 1143.5547 /Descent -298.82812 /CapHeight 859.375 /XHeight 732.4219 /StemV 193.41309 /FontFile2 45 0 R /CIDSet 46 0 R >> endobj 38 0 obj << /Length 79 /Filter /FlateDecode >> stream xc`F q,xeYq1;s0pI.n(/?- d(;Hs08j$ؒF endstream endobj 39 0 obj << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> endobj 40 0 obj << /Type /FontDescriptor /FontName /AAAJEE+Antonio-Regular /Flags 4 /FontWeight 400.0 /ItalicAngle 0.0 /FontBBox [-78.61328 -327.14844 1409.1797 1163.0859] /Ascent 1143.5547 /Descent -298.82812 /CapHeight 859.375 /XHeight 732.4219 /StemV 193.41309 /FontFile2 47 0 R /CIDSet 48 0 R >> endobj 41 0 obj << /Length 79 /Filter /FlateDecode >> stream xc`F q,xeYq1;s0pI.n(/?- d(;Hs08j$ؒF endstream endobj 42 0 obj << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> endobj 43 0 obj << /Type /FontDescriptor /FontName /AAAJEE+Antonio-Regular /Flags 4 /FontWeight 400.0 /ItalicAngle 0.0 /FontBBox [-78.61328 -327.14844 1409.1797 1163.0859] /Ascent 1143.5547 /Descent -298.82812 /CapHeight 859.375 /XHeight 732.4219 /StemV 193.41309 /FontFile2 49 0 R /CIDSet 50 0 R >> endobj 44 0 obj << /Length 79 /Filter /FlateDecode >> stream xc`F q,xeYq1;s0pI.n(/?- d(;Hs08j$ؒF endstream endobj 45 0 obj << /Length 3829 /Filter /FlateDecode /Length1 5816 >> stream xX{pTU?>t^N zoɤo7K$`QdGGp'P"aR\`qQQVtefu)v\j˭Bʵu ]wtuv7ps~|܄qX{L|ma:F覭m?)(Rsަ- l[q!e cNYSy!\ Wl}dG)a#[ /ekj(_^r'xmGX|IKY_26Ss|A̗Y^0Ch6w[/{k;[-D$D-vM,&b1!kxJ$V4+ ;H$܂ ]D" $C9Ju *PǓ<Cm(D4ڙq2k8.X'ݩD\O`/džω ֨I, V`z$%0H#}PdTš]d~=T'q=EN3mdnܐ6+Nz*}9HjX@X4 HB \@Y c-Ɠ= O[y,Q%6;we;"# k(GD?!XTHՑt>= Ni qb<:^}zE6W0w&Ί.K3azT ιb袶Ǚ(#Z)*"dH~ƗXR#ii2#-0 Nxf\n4W<+t> _ʞi^4/lolol5Ȧ4{!fi2V3 -JjQ845t~Q̫Auj7Ztm|mဨ'/5u&|VsUgh6~ 9{Rzh"YitwA+6@9@ր~."?"8WkAj F;Q97U7j9ȹ ) F vi8뎛Z0{PQ5: ߐ4Ys!Uv:n$vY"ζ))҅M xh :I X x[9y L\"*Hjt<"ܺ'qDѰr03d.94I9xPkE&rs_5DkԳePΫ:QcNbt֭I`Ŭ ] O`ǝ[[N̝XC8SlAt\B:rAG2Z j֑GtߒZmQΓiL93sv se+fQq8@C,%ߴ{ZZ7b啈l7&kiLpsese%a0DtU!b5a0DC" CDa% }!0D%Lu!!"N"Yb=a0D0Dg97OhA%ͬ&ez=hR2)n4Dtɤ:bRl9ĘM[L[ (ԣx933)ÌG@,HL;\~g=5sE^peS(U~;-ю7Jۦ^,dn:~[gK] ϋY^K4(\ʍ MՍ >e!ץw%֩-3~WOKl۰σ}r/=}Ċ'vG~ѣ ̗UEaV$@KYRab RgZtG - MMZԫp 5ⲓxUj58/iZږEO̵@sg~fȽ#O.hz㉣?oMe&Wn:@n4u, ;ArYArkVMIRJ%u:NZw67ɉRvb J!›_^emOѽl⿭Z~W/?_e%璣{P"8zGNZf^K 77!zK.ohf*aFf\MEAni&'ԏUYo 㑂 8zKf(٫cM] Ml*ı2X.EYΚY Y ,yj-f7[[u޼ ?o =ff;{']c|{nܱ`&'#j:rdjLb6Y ,x$iYls-GYFMd sͩŝcPdY.'WZnz3rS)RVSc5>6Wm~)LzȞk{nƿoZn[%<~p6e?TXSH g7|@MR QE)ŭcMxzݾ}K7VGǾ/&$.ڛBG/nn,H zȼqӭ^CidjG{`r"|U_(~8=K 1C~;+6Qles.++۸.,Ϥ |2|JU)a3ad,?ͤ~?aV ?Q0-w8f31|øYCl %_3[fpc֑ 82f> stream x+* endstream endobj 47 0 obj << /Length 3829 /Filter /FlateDecode /Length1 5816 >> stream xX{pTU?>t^N zoɤo7K$`QdGGp'P"aR\`qQQVtefu)v\j˭Bʵu ]wtuv7ps~|܄qX{L|ma:F覭m?)(Rsަ- l[q!e cNYSy!\ Wl}dG)a#[ /ekj(_^r'xmGX|IKY_26Ss|A̗Y^0Ch6w[/{k;[-D$D-vM,&b1!kxJ$V4+ ;H$܂ ]D" $C9Ju *PǓ<Cm(D4ڙq2k8.X'ݩD\O`/džω ֨I, V`z$%0H#}PdTš]d~=T'q=EN3mdnܐ6+Nz*}9HjX@X4 HB \@Y c-Ɠ= O[y,Q%6;we;"# k(GD?!XTHՑt>= Ni qb<:^}zE6W0w&Ί.K3azT ιb袶Ǚ(#Z)*"dH~ƗXR#ii2#-0 Nxf\n4W<+t> _ʞi^4/lolol5Ȧ4{!fi2V3 -JjQ845t~Q̫Auj7Ztm|mဨ'/5u&|VsUgh6~ 9{Rzh"YitwA+6@9@ր~."?"8WkAj F;Q97U7j9ȹ ) F vi8뎛Z0{PQ5: ߐ4Ys!Uv:n$vY"ζ))҅M xh :I X x[9y L\"*Hjt<"ܺ'qDѰr03d.94I9xPkE&rs_5DkԳePΫ:QcNbt֭I`Ŭ ] O`ǝ[[N̝XC8SlAt\B:rAG2Z j֑GtߒZmQΓiL93sv se+fQq8@C,%ߴ{ZZ7b啈l7&kiLpsese%a0DtU!b5a0DC" CDa% }!0D%Lu!!"N"Yb=a0D0Dg97OhA%ͬ&ez=hR2)n4Dtɤ:bRl9ĘM[L[ (ԣx933)ÌG@,HL;\~g=5sE^peS(U~;-ю7Jۦ^,dn:~[gK] ϋY^K4(\ʍ MՍ >e!ץw%֩-3~WOKl۰σ}r/=}Ċ'vG~ѣ ̗UEaV$@KYRab RgZtG - MMZԫp 5ⲓxUj58/iZږEO̵@sg~fȽ#O.hz㉣?oMe&Wn:@n4u, ;ArYArkVMIRJ%u:NZw67ɉRvb J!›_^emOѽl⿭Z~W/?_e%璣{P"8zGNZf^K 77!zK.ohf*aFf\MEAni&'ԏUYo 㑂 8zKf(٫cM] Ml*ı2X.EYΚY Y ,yj-f7[[u޼ ?o =ff;{']c|{nܱ`&'#j:rdjLb6Y ,x$iYls-GYFMd sͩŝcPdY.'WZnz3rS)RVSc5>6Wm~)LzȞk{nƿoZn[%<~p6e?TXSH g7|@MR QE)ŭcMxzݾ}K7VGǾ/&$.ڛBG/nn,H zȼqӭ^CidjG{`r"|U_(~8=K 1C~;+6Qles.++۸.,Ϥ |2|JU)a3ad,?ͤ~?aV ?Q0-w8f31|øYCl %_3[fpc֑ 82f> stream x+* endstream endobj 49 0 obj << /Length 3829 /Filter /FlateDecode /Length1 5816 >> stream xX{pTU?>t^N zoɤo7K$`QdGGp'P"aR\`qQQVtefu)v\j˭Bʵu ]wtuv7ps~|܄qX{L|ma:F覭m?)(Rsަ- l[q!e cNYSy!\ Wl}dG)a#[ /ekj(_^r'xmGX|IKY_26Ss|A̗Y^0Ch6w[/{k;[-D$D-vM,&b1!kxJ$V4+ ;H$܂ ]D" $C9Ju *PǓ<Cm(D4ڙq2k8.X'ݩD\O`/džω ֨I, V`z$%0H#}PdTš]d~=T'q=EN3mdnܐ6+Nz*}9HjX@X4 HB \@Y c-Ɠ= O[y,Q%6;we;"# k(GD?!XTHՑt>= Ni qb<:^}zE6W0w&Ί.K3azT ιb袶Ǚ(#Z)*"dH~ƗXR#ii2#-0 Nxf\n4W<+t> _ʞi^4/lolol5Ȧ4{!fi2V3 -JjQ845t~Q̫Auj7Ztm|mဨ'/5u&|VsUgh6~ 9{Rzh"YitwA+6@9@ր~."?"8WkAj F;Q97U7j9ȹ ) F vi8뎛Z0{PQ5: ߐ4Ys!Uv:n$vY"ζ))҅M xh :I X x[9y L\"*Hjt<"ܺ'qDѰr03d.94I9xPkE&rs_5DkԳePΫ:QcNbt֭I`Ŭ ] O`ǝ[[N̝XC8SlAt\B:rAG2Z j֑GtߒZmQΓiL93sv se+fQq8@C,%ߴ{ZZ7b啈l7&kiLpsese%a0DtU!b5a0DC" CDa% }!0D%Lu!!"N"Yb=a0D0Dg97OhA%ͬ&ez=hR2)n4Dtɤ:bRl9ĘM[L[ (ԣx933)ÌG@,HL;\~g=5sE^peS(U~;-ю7Jۦ^,dn:~[gK] ϋY^K4(\ʍ MՍ >e!ץw%֩-3~WOKl۰σ}r/=}Ċ'vG~ѣ ̗UEaV$@KYRab RgZtG - MMZԫp 5ⲓxUj58/iZږEO̵@sg~fȽ#O.hz㉣?oMe&Wn:@n4u, ;ArYArkVMIRJ%u:NZw67ɉRvb J!›_^emOѽl⿭Z~W/?_e%璣{P"8zGNZf^K 77!zK.ohf*aFf\MEAni&'ԏUYo 㑂 8zKf(٫cM] Ml*ı2X.EYΚY Y ,yj-f7[[u޼ ?o =ff;{']c|{nܱ`&'#j:rdjLb6Y ,x$iYls-GYFMd sͩŝcPdY.'WZnz3rS)RVSc5>6Wm~)LzȞk{nƿoZn[%<~p6e?TXSH g7|@MR QE)ŭcMxzݾ}K7VGǾ/&$.ڛBG/nn,H zȼqӭ^CidjG{`r"|U_(~8=K 1C~;+6Qles.++۸.,Ϥ |2|JU)a3ad,?ͤ~?aV ?Q0-w8f31|øYCl %_3[fpc֑ 82f> stream x+* endstream endobj xref 0 51 0000000000 65535 f 0000000015 00000 n 0000000078 00000 n 0000000153 00000 n 0000000272 00000 n 0000000392 00000 n 0000000513 00000 n 0000000634 00000 n 0000000812 00000 n 0000000875 00000 n 0000001054 00000 n 0000001118 00000 n 0000001293 00000 n 0000001357 00000 n 0000001534 00000 n 0000001598 00000 n 0000001631 00000 n 0000007067 00000 n 0000007100 00000 n 0000007432 00000 n 0000007465 00000 n 0000007797 00000 n 0000007830 00000 n 0000008162 00000 n 0000008265 00000 n 0000008298 00000 n 0000008331 00000 n 0000008364 00000 n 0000008514 00000 n 0000008664 00000 n 0000008814 00000 n 0000009186 00000 n 0000009600 00000 n 0000009972 00000 n 0000010386 00000 n 0000010758 00000 n 0000011172 00000 n 0000011247 00000 n 0000011547 00000 n 0000011700 00000 n 0000011775 00000 n 0000012075 00000 n 0000012228 00000 n 0000012303 00000 n 0000012603 00000 n 0000012756 00000 n 0000016675 00000 n 0000016762 00000 n 0000020681 00000 n 0000020768 00000 n 0000024687 00000 n trailer << /Root 1 0 R /ID [ ] /Size 51 >> startxref 24774 %%EOF atmospheric-composition.svg000066400000000000000000000206471415770645300422500ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dCreated with Highcharts x.x.xComposition of the AtmosphereNitrogen: 78.1%Oxygen: 21.0%Argon: 0.9%NitrogenOxygenArgonbarChart.pdf000066400000000000000000001076641415770645300370760ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d%PDF-1.4 % 1 0 obj << /Type /Catalog /Version /1.4 /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [3 0 R 4 0 R 5 0 R 6 0 R] /Count 4 >> endobj 3 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 7 0 R /Resources 8 0 R >> endobj 4 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 9 0 R /Resources 10 0 R >> endobj 5 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 11 0 R /Resources 12 0 R >> endobj 6 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 13 0 R /Resources 14 0 R >> endobj 7 0 obj << /Length 104 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攄&eVh*dq5(($/5Tp23ȁiCs4iw < endstream endobj 8 0 obj << /Font 15 0 R /XObject << /Form1 16 0 R >> >> endobj 9 0 obj << /Length 105 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*畄Vxg&j*dqu(($/5Tp23ȁiCs4i( endstream endobj 10 0 obj << /Font 17 0 R /XObject << /Form1 18 0 R >> >> endobj 11 0 obj << /Length 100 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%畄Vh*dq(($/5Tp23ȁiCs4i endstream endobj 12 0 obj << /Font 19 0 R /XObject << /Form1 20 0 R >> >> endobj 13 0 obj << /Length 102 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攸畄Vh*dq(($ /5Tp23ȁiCs4iY endstream endobj 14 0 obj << /Font 21 0 R /XObject << /Form1 22 0 R >> >> endobj 15 0 obj << /F1 23 0 R >> endobj 16 0 obj << /Length 8285 /Type /XObject /Subtype /Form /Resources << /ExtGState 24 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream x]ێem}8?$Bȃ|a; z$IIԩS=1jn(ޤ__zԔ?})5Gi_s?OO7.Bv"~M/?_~B-GC6ћ-jiK騎7֟u^Tg?!?'x"ȃYvk~y̷卌= (Z^/؋`G}Hz/-݂' io [[4L=j}ȔeK~+gλICSƏ56 =~=R}Q"&y1̠qzg@ߵIgw۟19wBC9|<̠`+E90sBpˡۯD7Ys`Qe},>g]~4C} ی^`?ʰ'd 5>g Y`_)oo&ῐ*]DT+ҲA\axY=,?vm $TBiCS$20Pe>BSE\]4*c:LcX׽ M{KydZ)4-,*42SʤlS]:r3J kVaQ&>eئ^[) ;h Pr\fϬi.LB4'?"{O4pWK$T9bj6ٌdiTEÉ  AJRՙ,Fw4+3j&=•ڌ4ٳyZ?9j4lYC *gM<l$׸QT%=YiIL=_ck֚]{b>"&AKuJr*>N%/Ԅom]Shg kS@#ɹx?õC6`[5 +wkdۼ7a&vl FאP_[S&@ 4̪OEg|[MX&)h*MXV'M#62YD&jitb_Nz&%L>tFk $.@PҗtFl=ecF]wtM0[mEsOƧ%+:ȵ9!0CVt6M4iO A’ [3况h04r\4sfЈsœ=bSJLSglby64$@ˍ¸~ I0x'o&6J~CZ-Dfd\޶i4"huN4i׿`aq[ȇ+CP\\"JE0Htrjb8P$Ui-fQA6@w`4 ʈ+(ay65].v%n hsKC4 /~G ;FDG~yDSPJRex?oi}$**ssMHiªA+'8R0u"u6(+jɐiANQ%ȭTF`Pki̻O{F$ ,Ω;pg+~_Tk:ǖj=(EZǒ/nҨeG #Fhvb hGO-DđsҖhƆ9I<]iCt"ǻ<bۘu`[֋u1\1I!y1ba4Ȃ ;]@e%愠ܱ#f,q =ҍtC D2BuFH$1'$Kqq֧]\bGw&Lm5zb631X8@FހXYi|%dӼSv;0ݞhx I<\- 0yɒ -?79ROpm$"<1]-p4GΙEh'-8M aυxsaIo#ƉlWR:@6whx ]1b{r|EA' R1\bJ +R9Jk Ic! ]jѐpHCQvDta)]1bOLլxP)ԅuO\w~qJC9 tvEF2ʤL16Ri;#U!:.L#k+@R&Gwa.5HAeTb):W@=J 0莓DTa|? E{MUqUQ-fa/1jܣh=l0|kG8$*wQ;vU, UU1,2qci6kǙ)kTgc۫SƱ> j BV'WDL唯" 3*mCɻLN LL|(%jmZNcHZ p,K5l+%[,lU(mtfe[L̻nkb[/rKu$kz(!=mzNG~,8(慂HJk=Q3ي_sX1:g=b;sg`)qtxqbjT:#-?{~'%fΝ옟>ۈ~&_:r޾[h&tSѺ>0=־ {)7kWvu8T>}$}I{QI%66 U7X^<RQwťrTFp_/5IW$ODT*WEfM`:"o^FGaDbo p& UrQ }S~h>CzXy,N,mz9hé:+Ғ"FVҩ$2S.^WѱMz\HEpS jNBϘ}Ri(Ǭ^r>Nd$Z+Ro$>joXکǔ&uDd0 (ŦFm1 ȱ6W*Ʈe <^Fk4=(;䷘XV³=YF 9T"ʹ,ڼW5ui$ٵ⣡ ^컨($cP8,H WɩrtunE,*HR{>iVQ\btj0T\P_gh}m1'c{F1za-b%<7*LS2 \}rmQT~mW2pW1YEfb$WQ~q]ӷU?LˣON  v x2E4ͫAN0bZ?ԮVD൨:W^^/ͦB!dC>~y#h\/+0]C.T\sqwZ!/ۯaǩew Jxt 5v];(޽uXY-^^[ZC4{y39Ao j-}.H N)x N Fcƈ#kw&lཋN wiLO}pz~:dti⯟NC췂t:"~:\d-F9uS:^ZPG8;ZpdI %Y@QC8 4Mv7 *HdM^5"a@1gZp M@4^n>hv{)|$HI,%Pָ7Q̶( '55f̢K"u,Z5_ݠ]+Aիk}99!}aD{8?!V"I`nRllTu=5&O"t| "j8DEn`i4lEEFYGYmtC1cBHe ʦ%l ԘC rߠ&ʥ- "7ukZxZ'&d\ o֤/D&|<Τ:KfhM5$Nց# =jzY}40|;=a5(|~A;8 YW}&ez!JK]Ȣv) fq~1V]"ǂm1% @03e67iT#pRpv6ڍFGZʦc@YiǴ$B䣝 ]CmLo$נ 0T# :Lw5F-̩ou97[5V.ڀ.mhP!!rÚ9(zb8 > 97xF]߿Afy 2..U1N|k/qY6M$4͟~>? |: 3u3gl.|F1x ,G303XOD]>cMP@ėπwj>Cz l'1{5iπ%x3(]>j3D`z3t3\0wZ?X',i@?O>c]>#  \C}6Х0  -i2gs[m#Xܴ|mT e>SYG,Po,oKS)bD+ī* =T$[{5)1MC7z}G\i KI>VRG(MqiRpzei~]vٔJ2[f&ai`5$n_.WxvP]#.Uj5^=r\.].=SLӠrr%8T,9&(\'}4 lF;n ]4c]. /*wm7j/7hUz\+ RarL]4J?3.cr~XG͚83v KHZ jT`[Wu53J5tKq?^>{Wq>Us~7xK7moT l؛H@L!/{  %؛=@Avy?L  bЈf7mothoې~7:^786 Ҩ~n{cc{!W.{94noX\B!~'#zBY?ͣx}$V/n[܍L7 j7\VɀHEn0 ߡg]~dm43~ֳFb lE7qѫ3:(( %6%۸o+*ɣ PEт# X|Y^?BnnDYl C|8.*zϺ{PnIm# ͦ. 3~1 a[ e [ Wm}B1@_n=_n+zkp їve;|v͓[f܂-Ys¦Yn? rp a6_[yr jl&eY:И9/Z܂B낰[Z=(¦Ynpv tބl]#oRL7Y-|WveEU նB I)΂vm@II Xn{n$i:`2[x ڋwE SA!`)㋓jV)*`| *;ÆW%B`īcjOf%cGܮO!PNhk1V?E*:G9`Si.MsDP*O.(7 *Ж0GTdYLEuz)2N&:jLv[훺g,Nf>E_sD,"O,B/>XhbO.v/A= 4b+5./ u]~> endobj 18 0 obj << /Length 8285 /Type /XObject /Subtype /Form /Resources << /ExtGState 25 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream x]ێem}8?$Bȃ|a; z$IIԩS=1jn(ޤ__zԔ?})5Gi_s?OO7.Bv"~M/?_~B-GC6ћ-jiK騎7֟u^Tg?!?'x"ȃYvk~y̷卌= (Z^/؋`G}Hz/-݂' io [[4L=j}ȔeK~+gλICSƏ56 =~=R}Q"&y1̠qzg@ߵIgw۟19wBC9|<̠`+E90sBpˡۯD7Ys`Qe},>g]~4C} ی^`?ʰ'd 5>g Y`_)oo&ῐ*]DT+ҲA\axY=,?vm $TBiCS$20Pe>BSE\]4*c:LcX׽ M{KydZ)4-,*42SʤlS]:r3J kVaQ&>eئ^[) ;h Pr\fϬi.LB4'?"{O4pWK$T9bj6ٌdiTEÉ  AJRՙ,Fw4+3j&=•ڌ4ٳyZ?9j4lYC *gM<l$׸QT%=YiIL=_ck֚]{b>"&AKuJr*>N%/Ԅom]Shg kS@#ɹx?õC6`[5 +wkdۼ7a&vl FאP_[S&@ 4̪OEg|[MX&)h*MXV'M#62YD&jitb_Nz&%L>tFk $.@PҗtFl=ecF]wtM0[mEsOƧ%+:ȵ9!0CVt6M4iO A’ [3况h04r\4sfЈsœ=bSJLSglby64$@ˍ¸~ I0x'o&6J~CZ-Dfd\޶i4"huN4i׿`aq[ȇ+CP\\"JE0Htrjb8P$Ui-fQA6@w`4 ʈ+(ay65].v%n hsKC4 /~G ;FDG~yDSPJRex?oi}$**ssMHiªA+'8R0u"u6(+jɐiANQ%ȭTF`Pki̻O{F$ ,Ω;pg+~_Tk:ǖj=(EZǒ/nҨeG #Fhvb hGO-DđsҖhƆ9I<]iCt"ǻ<bۘu`[֋u1\1I!y1ba4Ȃ ;]@e%愠ܱ#f,q =ҍtC D2BuFH$1'$Kqq֧]\bGw&Lm5zb631X8@FހXYi|%dӼSv;0ݞhx I<\- 0yɒ -?79ROpm$"<1]-p4GΙEh'-8M aυxsaIo#ƉlWR:@6whx ]1b{r|EA' R1\bJ +R9Jk Ic! ]jѐpHCQvDta)]1bOLլxP)ԅuO\w~qJC9 tvEF2ʤL16Ri;#U!:.L#k+@R&Gwa.5HAeTb):W@=J 0莓DTa|? E{MUqUQ-fa/1jܣh=l0|kG8$*wQ;vU, UU1,2qci6kǙ)kTgc۫SƱ> j BV'WDL唯" 3*mCɻLN LL|(%jmZNcHZ p,K5l+%[,lU(mtfe[L̻nkb[/rKu$kz(!=mzNG~,8(慂HJk=Q3ي_sX1:g=b;sg`)qtxqbjT:#-?{~'%fΝ옟>ۈ~&_:r޾[h&tSѺ>0=־ {)7kWvu8T>}$}I{QI%66 U7X^<RQwťrTFp_/5IW$ODT*WEfM`:"o^FGaDbo p& UrQ }S~h>CzXy,N,mz9hé:+Ғ"FVҩ$2S.^WѱMz\HEpS jNBϘ}Ri(Ǭ^r>Nd$Z+Ro$>joXکǔ&uDd0 (ŦFm1 ȱ6W*Ʈe <^Fk4=(;䷘XV³=YF 9T"ʹ,ڼW5ui$ٵ⣡ ^컨($cP8,H WɩrtunE,*HR{>iVQ\btj0T\P_gh}m1'c{F1za-b%<7*LS2 \}rmQT~mW2pW1YEfb$WQ~q]ӷU?LˣON  v x2E4ͫAN0bZ?ԮVD൨:W^^/ͦB!dC>~y#h\/+0]C.T\sqwZ!/ۯaǩew Jxt 5v];(޽uXY-^^[ZC4{y39Ao j-}.H N)x N Fcƈ#kw&lཋN wiLO}pz~:dti⯟NC췂t:"~:\d-F9uS:^ZPG8;ZpdI %Y@QC8 4Mv7 *HdM^5"a@1gZp M@4^n>hv{)|$HI,%Pָ7Q̶( '55f̢K"u,Z5_ݠ]+Aիk}99!}aD{8?!V"I`nRllTu=5&O"t| "j8DEn`i4lEEFYGYmtC1cBHe ʦ%l ԘC rߠ&ʥ- "7ukZxZ'&d\ o֤/D&|<Τ:KfhM5$Nց# =jzY}40|;=a5(|~A;8 YW}&ez!JK]Ȣv) fq~1V]"ǂm1% @03e67iT#pRpv6ڍFGZʦc@YiǴ$B䣝 ]CmLo$נ 0T# :Lw5F-̩ou97[5V.ڀ.mhP!!rÚ9(zb8 > 97xF]߿Afy 2..U1N|k/qY6M$4͟~>? |: 3u3gl.|F1x ,G303XOD]>cMP@ėπwj>Cz l'1{5iπ%x3(]>j3D`z3t3\0wZ?X',i@?O>c]>#  \C}6Х0  -i2gs[m#Xܴ|mT e>SYG,Po,oKS)bD+ī* =T$[{5)1MC7z}G\i KI>VRG(MqiRpzei~]vٔJ2[f&ai`5$n_.WxvP]#.Uj5^=r\.].=SLӠrr%8T,9&(\'}4 lF;n ]4c]. /*wm7j/7hUz\+ RarL]4J?3.cr~XG͚83v KHZ jT`[Wu53J5tKq?^>{Wq>Us~7xK7moT l؛H@L!/{  %؛=@Avy?L  bЈf7mothoې~7:^786 Ҩ~n{cc{!W.{94noX\B!~'#zBY?ͣx}$V/n[܍L7 j7\VɀHEn0 ߡg]~dm43~ֳFb lE7qѫ3:(( %6%۸o+*ɣ PEт# X|Y^?BnnDYl C|8.*zϺ{PnIm# ͦ. 3~1 a[ e [ Wm}B1@_n=_n+zkp їve;|v͓[f܂-Ys¦Yn? rp a6_[yr jl&eY:И9/Z܂B낰[Z=(¦Ynpv tބl]#oRL7Y-|WveEU նB I)΂vm@II Xn{n$i:`2[x ڋwE SA!`)㋓jV)*`| *;ÆW%B`īcjOf%cGܮO!PNhk1V?E*:G9`Si.MsDP*O.(7 *Ж0GTdYLEuz)2N&:jLv[훺g,Nf>E_sD,"O,B/>XhbO.v/A= 4b+5./ u]~> endobj 20 0 obj << /Length 8285 /Type /XObject /Subtype /Form /Resources << /ExtGState 26 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream x]ێem}8?$Bȃ|a; z$IIԩS=1jn(ޤ__zԔ?})5Gi_s?OO7.Bv"~M/?_~B-GC6ћ-jiK騎7֟u^Tg?!?'x"ȃYvk~y̷卌= (Z^/؋`G}Hz/-݂' io [[4L=j}ȔeK~+gλICSƏ56 =~=R}Q"&y1̠qzg@ߵIgw۟19wBC9|<̠`+E90sBpˡۯD7Ys`Qe},>g]~4C} ی^`?ʰ'd 5>g Y`_)oo&ῐ*]DT+ҲA\axY=,?vm $TBiCS$20Pe>BSE\]4*c:LcX׽ M{KydZ)4-,*42SʤlS]:r3J kVaQ&>eئ^[) ;h Pr\fϬi.LB4'?"{O4pWK$T9bj6ٌdiTEÉ  AJRՙ,Fw4+3j&=•ڌ4ٳyZ?9j4lYC *gM<l$׸QT%=YiIL=_ck֚]{b>"&AKuJr*>N%/Ԅom]Shg kS@#ɹx?õC6`[5 +wkdۼ7a&vl FאP_[S&@ 4̪OEg|[MX&)h*MXV'M#62YD&jitb_Nz&%L>tFk $.@PҗtFl=ecF]wtM0[mEsOƧ%+:ȵ9!0CVt6M4iO A’ [3况h04r\4sfЈsœ=bSJLSglby64$@ˍ¸~ I0x'o&6J~CZ-Dfd\޶i4"huN4i׿`aq[ȇ+CP\\"JE0Htrjb8P$Ui-fQA6@w`4 ʈ+(ay65].v%n hsKC4 /~G ;FDG~yDSPJRex?oi}$**ssMHiªA+'8R0u"u6(+jɐiANQ%ȭTF`Pki̻O{F$ ,Ω;pg+~_Tk:ǖj=(EZǒ/nҨeG #Fhvb hGO-DđsҖhƆ9I<]iCt"ǻ<bۘu`[֋u1\1I!y1ba4Ȃ ;]@e%愠ܱ#f,q =ҍtC D2BuFH$1'$Kqq֧]\bGw&Lm5zb631X8@FހXYi|%dӼSv;0ݞhx I<\- 0yɒ -?79ROpm$"<1]-p4GΙEh'-8M aυxsaIo#ƉlWR:@6whx ]1b{r|EA' R1\bJ +R9Jk Ic! ]jѐpHCQvDta)]1bOLլxP)ԅuO\w~qJC9 tvEF2ʤL16Ri;#U!:.L#k+@R&Gwa.5HAeTb):W@=J 0莓DTa|? E{MUqUQ-fa/1jܣh=l0|kG8$*wQ;vU, UU1,2qci6kǙ)kTgc۫SƱ> j BV'WDL唯" 3*mCɻLN LL|(%jmZNcHZ p,K5l+%[,lU(mtfe[L̻nkb[/rKu$kz(!=mzNG~,8(慂HJk=Q3ي_sX1:g=b;sg`)qtxqbjT:#-?{~'%fΝ옟>ۈ~&_:r޾[h&tSѺ>0=־ {)7kWvu8T>}$}I{QI%66 U7X^<RQwťrTFp_/5IW$ODT*WEfM`:"o^FGaDbo p& UrQ }S~h>CzXy,N,mz9hé:+Ғ"FVҩ$2S.^WѱMz\HEpS jNBϘ}Ri(Ǭ^r>Nd$Z+Ro$>joXکǔ&uDd0 (ŦFm1 ȱ6W*Ʈe <^Fk4=(;䷘XV³=YF 9T"ʹ,ڼW5ui$ٵ⣡ ^컨($cP8,H WɩrtunE,*HR{>iVQ\btj0T\P_gh}m1'c{F1za-b%<7*LS2 \}rmQT~mW2pW1YEfb$WQ~q]ӷU?LˣON  v x2E4ͫAN0bZ?ԮVD൨:W^^/ͦB!dC>~y#h\/+0]C.T\sqwZ!/ۯaǩew Jxt 5v];(޽uXY-^^[ZC4{y39Ao j-}.H N)x N Fcƈ#kw&lཋN wiLO}pz~:dti⯟NC췂t:"~:\d-F9uS:^ZPG8;ZpdI %Y@QC8 4Mv7 *HdM^5"a@1gZp M@4^n>hv{)|$HI,%Pָ7Q̶( '55f̢K"u,Z5_ݠ]+Aիk}99!}aD{8?!V"I`nRllTu=5&O"t| "j8DEn`i4lEEFYGYmtC1cBHe ʦ%l ԘC rߠ&ʥ- "7ukZxZ'&d\ o֤/D&|<Τ:KfhM5$Nց# =jzY}40|;=a5(|~A;8 YW}&ez!JK]Ȣv) fq~1V]"ǂm1% @03e67iT#pRpv6ڍFGZʦc@YiǴ$B䣝 ]CmLo$נ 0T# :Lw5F-̩ou97[5V.ڀ.mhP!!rÚ9(zb8 > 97xF]߿Afy 2..U1N|k/qY6M$4͟~>? |: 3u3gl.|F1x ,G303XOD]>cMP@ėπwj>Cz l'1{5iπ%x3(]>j3D`z3t3\0wZ?X',i@?O>c]>#  \C}6Х0  -i2gs[m#Xܴ|mT e>SYG,Po,oKS)bD+ī* =T$[{5)1MC7z}G\i KI>VRG(MqiRpzei~]vٔJ2[f&ai`5$n_.WxvP]#.Uj5^=r\.].=SLӠrr%8T,9&(\'}4 lF;n ]4c]. /*wm7j/7hUz\+ RarL]4J?3.cr~XG͚83v KHZ jT`[Wu53J5tKq?^>{Wq>Us~7xK7moT l؛H@L!/{  %؛=@Avy?L  bЈf7mothoې~7:^786 Ҩ~n{cc{!W.{94noX\B!~'#zBY?ͣx}$V/n[܍L7 j7\VɀHEn0 ߡg]~dm43~ֳFb lE7qѫ3:(( %6%۸o+*ɣ PEт# X|Y^?BnnDYl C|8.*zϺ{PnIm# ͦ. 3~1 a[ e [ Wm}B1@_n=_n+zkp їve;|v͓[f܂-Ys¦Yn? rp a6_[yr jl&eY:И9/Z܂B낰[Z=(¦Ynpv tބl]#oRL7Y-|WveEU նB I)΂vm@II Xn{n$i:`2[x ڋwE SA!`)㋓jV)*`| *;ÆW%B`īcjOf%cGܮO!PNhk1V?E*:G9`Si.MsDP*O.(7 *Ж0GTdYLEuz)2N&:jLv[훺g,Nf>E_sD,"O,B/>XhbO.v/A= 4b+5./ u]~> endobj 22 0 obj << /Length 8285 /Type /XObject /Subtype /Form /Resources << /ExtGState 27 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream x]ێem}8?$Bȃ|a; z$IIԩS=1jn(ޤ__zԔ?})5Gi_s?OO7.Bv"~M/?_~B-GC6ћ-jiK騎7֟u^Tg?!?'x"ȃYvk~y̷卌= (Z^/؋`G}Hz/-݂' io [[4L=j}ȔeK~+gλICSƏ56 =~=R}Q"&y1̠qzg@ߵIgw۟19wBC9|<̠`+E90sBpˡۯD7Ys`Qe},>g]~4C} ی^`?ʰ'd 5>g Y`_)oo&ῐ*]DT+ҲA\axY=,?vm $TBiCS$20Pe>BSE\]4*c:LcX׽ M{KydZ)4-,*42SʤlS]:r3J kVaQ&>eئ^[) ;h Pr\fϬi.LB4'?"{O4pWK$T9bj6ٌdiTEÉ  AJRՙ,Fw4+3j&=•ڌ4ٳyZ?9j4lYC *gM<l$׸QT%=YiIL=_ck֚]{b>"&AKuJr*>N%/Ԅom]Shg kS@#ɹx?õC6`[5 +wkdۼ7a&vl FאP_[S&@ 4̪OEg|[MX&)h*MXV'M#62YD&jitb_Nz&%L>tFk $.@PҗtFl=ecF]wtM0[mEsOƧ%+:ȵ9!0CVt6M4iO A’ [3况h04r\4sfЈsœ=bSJLSglby64$@ˍ¸~ I0x'o&6J~CZ-Dfd\޶i4"huN4i׿`aq[ȇ+CP\\"JE0Htrjb8P$Ui-fQA6@w`4 ʈ+(ay65].v%n hsKC4 /~G ;FDG~yDSPJRex?oi}$**ssMHiªA+'8R0u"u6(+jɐiANQ%ȭTF`Pki̻O{F$ ,Ω;pg+~_Tk:ǖj=(EZǒ/nҨeG #Fhvb hGO-DđsҖhƆ9I<]iCt"ǻ<bۘu`[֋u1\1I!y1ba4Ȃ ;]@e%愠ܱ#f,q =ҍtC D2BuFH$1'$Kqq֧]\bGw&Lm5zb631X8@FހXYi|%dӼSv;0ݞhx I<\- 0yɒ -?79ROpm$"<1]-p4GΙEh'-8M aυxsaIo#ƉlWR:@6whx ]1b{r|EA' R1\bJ +R9Jk Ic! ]jѐpHCQvDta)]1bOLլxP)ԅuO\w~qJC9 tvEF2ʤL16Ri;#U!:.L#k+@R&Gwa.5HAeTb):W@=J 0莓DTa|? E{MUqUQ-fa/1jܣh=l0|kG8$*wQ;vU, UU1,2qci6kǙ)kTgc۫SƱ> j BV'WDL唯" 3*mCɻLN LL|(%jmZNcHZ p,K5l+%[,lU(mtfe[L̻nkb[/rKu$kz(!=mzNG~,8(慂HJk=Q3ي_sX1:g=b;sg`)qtxqbjT:#-?{~'%fΝ옟>ۈ~&_:r޾[h&tSѺ>0=־ {)7kWvu8T>}$}I{QI%66 U7X^<RQwťrTFp_/5IW$ODT*WEfM`:"o^FGaDbo p& UrQ }S~h>CzXy,N,mz9hé:+Ғ"FVҩ$2S.^WѱMz\HEpS jNBϘ}Ri(Ǭ^r>Nd$Z+Ro$>joXکǔ&uDd0 (ŦFm1 ȱ6W*Ʈe <^Fk4=(;䷘XV³=YF 9T"ʹ,ڼW5ui$ٵ⣡ ^컨($cP8,H WɩrtunE,*HR{>iVQ\btj0T\P_gh}m1'c{F1za-b%<7*LS2 \}rmQT~mW2pW1YEfb$WQ~q]ӷU?LˣON  v x2E4ͫAN0bZ?ԮVD൨:W^^/ͦB!dC>~y#h\/+0]C.T\sqwZ!/ۯaǩew Jxt 5v];(޽uXY-^^[ZC4{y39Ao j-}.H N)x N Fcƈ#kw&lཋN wiLO}pz~:dti⯟NC췂t:"~:\d-F9uS:^ZPG8;ZpdI %Y@QC8 4Mv7 *HdM^5"a@1gZp M@4^n>hv{)|$HI,%Pָ7Q̶( '55f̢K"u,Z5_ݠ]+Aիk}99!}aD{8?!V"I`nRllTu=5&O"t| "j8DEn`i4lEEFYGYmtC1cBHe ʦ%l ԘC rߠ&ʥ- "7ukZxZ'&d\ o֤/D&|<Τ:KfhM5$Nց# =jzY}40|;=a5(|~A;8 YW}&ez!JK]Ȣv) fq~1V]"ǂm1% @03e67iT#pRpv6ڍFGZʦc@YiǴ$B䣝 ]CmLo$נ 0T# :Lw5F-̩ou97[5V.ڀ.mhP!!rÚ9(zb8 > 97xF]߿Afy 2..U1N|k/qY6M$4͟~>? |: 3u3gl.|F1x ,G303XOD]>cMP@ėπwj>Cz l'1{5iπ%x3(]>j3D`z3t3\0wZ?X',i@?O>c]>#  \C}6Х0  -i2gs[m#Xܴ|mT e>SYG,Po,oKS)bD+ī* =T$[{5)1MC7z}G\i KI>VRG(MqiRpzei~]vٔJ2[f&ai`5$n_.WxvP]#.Uj5^=r\.].=SLӠrr%8T,9&(\'}4 lF;n ]4c]. /*wm7j/7hUz\+ RarL]4J?3.cr~XG͚83v KHZ jT`[Wu53J5tKq?^>{Wq>Us~7xK7moT l؛H@L!/{  %؛=@Avy?L  bЈf7mothoې~7:^786 Ҩ~n{cc{!W.{94noX\B!~'#zBY?ͣx}$V/n[܍L7 j7\VɀHEn0 ߡg]~dm43~ֳFb lE7qѫ3:(( %6%۸o+*ɣ PEт# X|Y^?BnnDYl C|8.*zϺ{PnIm# ͦ. 3~1 a[ e [ Wm}B1@_n=_n+zkp їve;|v͓[f܂-Ys¦Yn? rp a6_[yr jl&eY:И9/Z܂B낰[Z=(¦Ynpv tބl]#oRL7Y-|WveEU նB I)΂vm@II Xn{n$i:`2[x ڋwE SA!`)㋓jV)*`| *;ÆW%B`īcjOf%cGܮO!PNhk1V?E*:G9`Si.MsDP*O.(7 *Ж0GTdYLEuz)2N&:jLv[훺g,Nf>E_sD,"O,B/>XhbO.v/A= 4b+5./ u]~> endobj 24 0 obj << /gs1 28 0 R >> endobj 25 0 obj << /gs1 29 0 R >> endobj 26 0 obj << /gs1 30 0 R >> endobj 27 0 obj << /gs1 31 0 R >> endobj 28 0 obj << /Type /ExtGState /BM /Compatible >> endobj 29 0 obj << /Type /ExtGState /BM /Compatible >> endobj 30 0 obj << /Type /ExtGState /BM /Compatible >> endobj 31 0 obj << /Type /ExtGState /BM /Compatible >> endobj xref 0 32 0000000000 65535 f 0000000015 00000 n 0000000078 00000 n 0000000153 00000 n 0000000272 00000 n 0000000392 00000 n 0000000513 00000 n 0000000634 00000 n 0000000812 00000 n 0000000875 00000 n 0000001054 00000 n 0000001118 00000 n 0000001293 00000 n 0000001357 00000 n 0000001534 00000 n 0000001598 00000 n 0000001631 00000 n 0000010085 00000 n 0000010118 00000 n 0000018572 00000 n 0000018605 00000 n 0000027059 00000 n 0000027092 00000 n 0000035546 00000 n 0000035649 00000 n 0000035683 00000 n 0000035717 00000 n 0000035751 00000 n 0000035785 00000 n 0000035840 00000 n 0000035895 00000 n 0000035950 00000 n trailer << /Root 1 0 R /ID [ ] /Size 32 >> startxref 36005 %%EOF barChart.svg000066400000000000000000000135151415770645300371130ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d Bar Chart Shoe Car Travel Computer 0 10 20 30 40 50 60 colortest.png000066400000000000000000000221621415770645300373660ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dPNG  IHDR":9 pHYs   IDATx՝r۸ykH& `rUmmَ,=}u[iz|Vޡy=mpL4T^ϗ޷#ؿsOijя~Gޟ'G>#3^UJi΂HBKiZOu2koAk]yqz5y ]ǯGwHBEVݕZ(Q롾 ]EFNJ \j_4kX~7 [?~?d^E4[tWiq[wo}}vpw󯿿8Yv7f_;g7]mT kcj =xB$`RzZ C=nS4u?EUi^~GUEU D| 9V, 냧oIx'>t7N>"1^@QQ^>ܿ1&H7vuPçoBh wgלMAW[O}gVի\a}iccT`.$ cI9T=ЏTz7H>*Sto^SJ3+R*cSEgܾĄ='fҚ/j܁z!Mlo[( C5汣TZ$m 3jaN&&ղG|axǏ Ow{:ңZMl_|7N=6 \!^vh[T͢iڜ"IB偼4#{.\r"E_|*2i? [grQ(9ڤv s ub;:/>ICآX>p74’PMk>0F{u 34kE;ȇeP/PB ݡ},QB:4y5MÈ %jɉpvY0* t‡5%BwN&nѣz6x|}6d+O'~a[B%'`3n$}l7<'JcG~{R>=l8Lc4BEd̲̄'bP'ű /W3 Cax7f bιՉ(O=OL_~kAz_(W|t b]G'}al%Gk ޯ*L[/h,顰bjT2Bu!١@T%:';:xhQ䴟u.p.wn|:<,:<ҕtswha qcY7!ʬ"ii\9T!nNYJ quRl0}3݀ij 2g< T~ȦܭU}nj;z^ g4ō&@ҽθ`M5Lz~I+zSo[LzJsx骻p U~>p6, ƀPbWrVQf-I|FB<]ߨ;s)A2s;>Gymڗv'fF_ nZ 4)L!;ry??lq|`%BAv[ 㵾w`"vSN}:ZX2sӱ ںIHҰ9T?x>,S4ƦWOwD}*!65M\Wgm"1J 0%N4E#I @.7@7wޔ&K BHa%EՂMpQIXCw~#$'qǿZXhU#&䔗(wy[.pg @~uHƭ!Rl E`NoÖ F,+٬K b?u= llytԣt܉ Ǵ4[=y <B;*| ?Qf|x!NM6,V3)1%)!ii|Ȗ [FPFέWҲ7dDF&ۓ5Wi>S/.!ifw1,!Mw:\\4U2A4Y"2j"?>=E PHcȤPi} (l>Q xT8Yꄼ5@LJh+"f[HmQa؛ʴa e#Xe>h3c3~pl.:S :hɥC~mK֭,I|۝gG{n$VjaR2[v.o֧.<(狅J9hnyLꀥE$5'Q5Ht^X$D oo#lG`+g(S%ֲO3oEw[g$IFc!yx З>=,%tH3f6/\,k_*}$)T~P2 uaeB`sZo+B)/y#GzS_`5Yxwn| 'L d7C͝R6%^׃|$I%;;di0Z ./~Cj@o |sZEn `c@MQZ!8(~ n:G,BcE&ޓo3)GnzߝDl+qtR9 )V~:sgN -Br+ECM66 7[2 `(-}0"0Y, !fR~3C\!#?z ߶(HԈdʔNyjkIp㑳oY.%J`ߔ&glଶ9J&ECa䨼ϯ|p&*P%%GH>5UN骜)y27@rcާC'fRԃaZIo@!@F5l [ ưR˓np>Mli4qﻪ2'EXN7|"+{Ѽy )?^z~ްn7}c:C⢗~ ;ը)F󞟀BRH8 oDIy(:O, u|PRu>x؇E縒^@b(Qoymy^\iϦyUJ"]6kKYqn`D㻮@bqM9+2d/,$'{(ݏ:.Z"KF1g?s=Gs8#[̈^;*C\ B~ RxA S`t$rjot۔GՋHsUI/H}(<#o-MfQR큖 E<ǓFv̸$4nm 4r73ko T!9̴*,M Y/k떱0f\^^"sAuGʆAÒ_R+l?qr<*e $C/Mc®D9ZLۧU=~VR&-U(kovC^BDQW<lLb.Ԯft R?Oq=5wvyy8k\ sU%;t|s΁ s7uV,BT0~49IH=D[1Hl #9<`JbD#&H%qcfgZ[+Fx; aPD@KP;02v^P%(wݧTAx<cK1B Ugo'?#oH웧:4yyDq(#BLEefń#+cIS՛3;׊Iw9ЎV-)4 ){szdiXXj!~}]~F5\bR!8 /EN^XNŽйf7l-fQfl9Oˡ}: $( j|*ʀNm 3MހD)&_I,, )x|xhΒBcΰ&61ٵjY}YZU.fT32sl<_#}#L7Wl.]1QqEy/_4Xd9Ercx)`F:#+>g?l2,Oes>mC wC9M<MmS`ϤpMP(B.btbVmZX虧'/;S:'޲ B*d#:bи: 0hGˬPN]%@5r$p ,4yak;.hPwUƞPg>>YG ~&l0{+u+3c }Bhӑ`]D~+pGqSf!'5!&RTUKB3WlGīr:a…[?*bvIb 3kť= t\ 9T.czݒoXz~BJ|Lƻ3A0a k!niۭ錳v އ'\`KL6L2χ݃k?֩x 9r}WYA;t[ O ppZ7yWdԀ@tg!Sh/X>q=Fϡk+t/{rnsȿI٢NdG5?<&v鱤hJ}Df%4`fn'3nc:?eP]֗^cqO?\ӌO!kuHs|XFP1m "m||΍L .$.mUC.d]@[̞flLN\kMx9awnɟ2udnK ] ԘI$'1[n0\hS'(#5 (nrmX .Z/s{7ѯzu 0Or^fItኁ3{h6[$$H}8?BЃi vܶs@QU?qKU'^glB8RF$팕%=cɅ٬߃?n_'IiR;A`{H~uLi޿ ?wjt7QĽA<= UY/t3B0H"@Pj1 l[LOe2J :Sݡ}X0)aؒ'KuDZR#jV:g32C3=(A1*_o!Gi Vxuho)޶q6:8Zf# "ѣuQ:sy:<QymaЊ+F熵5)fЫFdMIENDB`compuserver_msn_Ford_Focus.pdf000066400000000000000000012064171415770645300427050ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d%PDF-1.4 % 1 0 obj << /Type /Catalog /Version /1.4 /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [3 0 R 4 0 R 5 0 R 6 0 R] /Count 4 >> endobj 3 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 7 0 R /Resources 8 0 R >> endobj 4 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 9 0 R /Resources 10 0 R >> endobj 5 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 11 0 R /Resources 12 0 R >> endobj 6 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 13 0 R /Resources 14 0 R >> endobj 7 0 obj << /Length 104 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攄&eVh*dq5(($/5Tp23ȁiCs4iw < endstream endobj 8 0 obj << /Font 15 0 R /XObject << /Form1 16 0 R >> >> endobj 9 0 obj << /Length 105 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*畄Vxg&j*dqu(($/5Tp23ȁiCs4i( endstream endobj 10 0 obj << /Font 17 0 R /XObject << /Form1 18 0 R >> >> endobj 11 0 obj << /Length 100 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%畄Vh*dq(($/5Tp23ȁiCs4i endstream endobj 12 0 obj << /Font 19 0 R /XObject << /Form1 20 0 R >> >> endobj 13 0 obj << /Length 102 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攸畄Vh*dq(($ /5Tp23ȁiCs4iY endstream endobj 14 0 obj << /Font 21 0 R /XObject << /Form1 22 0 R >> >> endobj 15 0 obj << /F1 23 0 R >> endobj 16 0 obj << /Length 76962 /Type /XObject /Subtype /Form /Resources << /ExtGState 24 0 R /Shading 25 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xK%M6U o(@ $ŖEisǍY-kG?w|+k+} }V ǯ{?ï3#\Q ~#~2GG6g}Z>CHY{ujgK,K3vۡg?~akSͶ&5"&<ܵb{kջB Ödׯ>l^OGUq#$-"۷V{ƶV+ۆF KlgO@xhg}[Q1 (Rj@Z0'ݚ}ҶæZ!ƣf~[CCskaѰ8Kv1%a/0l`dO?KH3@?~ٿr+v .[/ðvR_v|1-1a'0[,h G{Qڰ8CX Iv8e;mqm37c5` \0}yj@r1Q>g[<`cձ ǂClvBTSJT۟j'YJτEÞ lq "m趁qpw^cy~vǰi8bW?M">C3&62[;k(oúnhm0MLx(хt>Y}^}\~֒E/ ږ=m؁b6/Jb.28anj[= O Fo9Q2k;d|-~gg.߈M'mυaK(F8"Qs㪤mx3<3>x  + ;J58"ӅuM&c6A6 J YhWinwJ5^R[^M}16)sZmSAgks!Ny0x1^f(. 8c&˥ Hۮ>Wo^j<ŒoNOĭϸNF" 9T广 wUؒ ͍-ԴAqA_|nVK5j7U)#ǠpLh؏Jw-T=@tLlr pۻxPۚ[@d*'̦[LUF*n7]f$ o5M瓲/sH.jR8/m=WS,]d|7ys-0_$;GyD]7VQؔ'$_%Nv]rA@JSu@qqtx@~]!"hVHˎtIty6~FL!Q4gTˏh.&-杇KKbƼ!L h3pzN$N{,E4"""dž"f2@?qdJ:4j(b~ u%! H6aՌ+q m'f*?.$TJMI 74PP1.TgΌ" Za)S"5}|n;5]`Q C%1Puo" *e .04eŋmqõ8lxv wLa1raP[ U#㸞|fTc"3/- cXUV%"¹~uoϭ &/M \"G{y((\O>۠]#uJt q Xz/ֵ )aʵw]lm Í9԰^rzp =Fg v`*{د[DZ[ա(Q4m,jnėqz(.8S\CtP˰uLfPAPA09#67oj;ی#RsxzU[IZaԎR;"-btW{0lYC @C)3FodBl(ű"2nTYg1E_m5:.l ՚cc9m[Kf|{PI/"744"7ht6eREb&`ơD| L``6" AFY;B@@8($8@bΈXF p4/PfRbpH C1GzO萭<rbZF"hX 07 Wnq9iU$d{$?fJ% ܀$ Y 2l)^ BO ,_6]%`o}+RWl,#l\hdP.E|;z9#UkDQ`Ro#"X믇R ,e33ឬ #l6G3IwϐH.ʹ>$B%f?I(+Mm_eaE K(}* i < dp|1 A~ {zE.lj9/lmi'0mm$I7[s*OA7bBjV|vGٌz7C\cnJbz]Ԑ?O D+èM7A\OxYtێ^;zQ+\ 4G]{]u,T \bN*=NAh4xfT~_Kx H~n?>ĈC Tbm{ _W.lR7>x3Gl@2Φ7icS0R'"tbg;D<=5w:MQONϻ:/ʘqD.2h\uY7Y#߷IG]]hm,^$?.JB oZ(a%sUh}R*e/Eorͯ@ *A^X9We/^PdoZsЛMeaDyYDxYց!qJ,oG=EiA[L!El&GHg'S`}30FI4诿sL%_6H'4LTAߙ ds!\=Kq\{q;^G}mЃ첮 d=˦M&.CNs3V03`X.~I;=۠'kUҽ"N]]|CO?֒ynFs1'/c3!?JT@kJ;N%OkJF]rѼ:9<׋7VW/t+m:KtӶ|~r)Thu;S_8XKMdnX>I2&] {1NS=AnBZTP_mkw"/81~Lg7ȭ{@sz=wHG痷q4_ m'@ӾU.yt |oZf.rC OyN’"x`ZK}34c tڝtgH9)m^ Cm߁vi;`MͬXK=WkzX4LvTȮ10Y<z-mcϥm 4EpAi>Eʖ _6ec:ikJ̷|O/)7=ڕi]soV(ri>^:vť| ~o wm 7>] '/hkڛΖ|_G+ƵNx)0Mс׎{î=l}X&q[@^KAXx.}QڋүO_;|zUbQ9F¿6kDӵ˥?䵯$j!s4\~(Ҳ'/-=r!hץ&N!gd5 dׯkAEVL+_}?nwt2 Wь}lC6>Ԫ{eufLGel{\r}[2͚E"юr‰!H6cg*HS7J()Uj+A} kH;n/A[-APU2 ›@@4s`HV[Al = EТџ%N09Ta1TSc^&]mХRX,&Ur[0 ΁-xz8Y)yγyzQ8p#m$_j×&eJ)7{iL;X;NV6[bJ ;Wf#A.0- &p[M0 `(q ̙BWuqΆ13YsMk=- !?VQPPͬèjKwnAahDքVA= ,# F:p2[u`{SԱ`}HJ܀L(.sG2 FR b3k`[`" ֫v+fϸ/<~FN[S BAvcN}y gMh>?f4{bLD{Qv,mPLŠE}'z NQ{2;d4A'tۃUNߔPLC2t ny^A˜5hB7 u>% ɠ +ٔ(^#FBB9q< L LFjB{mxP {^@4P HF)d=}(8x8`l{JR&B@ aB/P @P S }_;DBHo^hugrf Ѭl"N'}~3wwnNxŦXD5/;P:=B,iX; &rlU3P ن:tvEu Vm.~Uϖ M*ͼ#o!V~AuPT"_@R^ Y(BUcٯ2{G;86#Gaހ@cH`G^oo> -g{jcLfb8g_wUWJUDRrcb$ݦ2}7$:,1ZhQiYPʛULWPe<*2V6 JӲ9>=BDƎR iA*Kpu+.tX+{ aыҢ^FjQO &=ZgTsҏ3HMW;;9p^ (UK`*˦`6zqFh˜z2V&(M@|BPPmjc$!Vn$Q`tl X,ha؏"dap]'kj*&ˆX_L+*%Tؚ! p]Mg!;i;1hR jt1$N:B5Z ?m4dA1hÊy22] ;ؠ~!yt1Gը *5J8D]Ba/qEȝxDĪ3`B@Sػb6(nn]$|ag_h| A, 9j\5E9?lf2 VX" TBy#&)Xw šr ˌ^`5/:rK _OR8֟ԇQhS d`M6of ]v@㼞uC lFL%ei6F01,eCAds_~PIw7^6hunFѳ0feBc,x+ 7DoARG )ϔ>j?J"e(àA Vy+V  }5ɼmcV}g`W~qPFL4[c:HīKْ+A'~', @VwǪ6 DsZè 3dFeXs-9x@+@*}l#@?V AѐiVE^"]1!<+^EH@j E>Efpn@Ajޣ 7icܱN!ܠ2ѣ Fko㕤қVf9"M(yЄ'y>IŞ,g> 1,m~NT>Ξ. g|Z٫tϜޛng$jĴLoN$y@ח0w ^~mC21&?O yhS6~Of(~ioFȀ5߄ vdԾC" `feD tUܿ]Ғ? Wwr4A$)i2>~ 4s1:l 8r}O+ pAϾwHb1!:OZL k|9Rzq|cֻQCr,`V8n(|x'G1{X ѻ|kL wo|BU}LNk<7ҁ,k.a9c^Qit?G_Ğ7&^)'w^" K s/WV.x% ME&:F6yOtKz9 9QWWoƥ)1SL}%.ua!> EO`!Du^{46&Lݭ:V,?[0]Ốڭ3.1#f ÀSDE8@}8XJ?o\UOB p.GIlX:tBi"Ā'I~ *tƼ+}s2 ?#O ĥV:] ɳ!r:`&~ElE.ugTMl 2x <Þ:W=&PG |uj)gO8C)aG =S&)Gric07nI 3`I6mB!ccHL 'Rh͊ tB+PxG1qтK}PK i%]1ֶQr hXr%8N"=Halu.>Vnzgĥ(]M.HmwA;$2Jenj .컼 "π䅉D;@#^mn0KI ,d" Y)|)Y-ߦ ,W:{ [?DMm s!KPvh9%Y7e-ZoC Jd5O^hJ H; ҏ^Wo(V*~3)C};vNC4Udr)PjJ`C%giV؊aHWg n"JG?j%siV!(xz~Q7>X!2ʬy\Eceqg| oaůɑ 2t#'>Qo`1!9-]/¦~G; e]`wUi;۟3el EƠ[S}Zf#6dIRH"Iȑ.6p9 B>NX:"z$(:X82sk7xH1ExqzpGrQ!aIfLfPTU'*Sq0;:,6&o`/3[,nn'$dB]O.zB h]r] ΀FX]o&BcKiE0Qp^Fewg?~1 2uxӐ]3fmB -\0-i )n*S.hؘ?dle*Cf͖9A qӂFݔz$vp(4˵ ,0yP&6o/Kh s$ȩO(*Hv.ertdĿ~2] A'IK#\cR̶a/pʑֶHݔyD?=`7*.x1,9ǔڝZ rb3?LÚ?G~igrrPZRU3Ljz*ÖVY,5q;N=AJ35-{pȩ.nͯ@͗Y-Sbw6je&s}j uN~A$i`42B]D184>G0Y3Q^p=c5)q[BDUf6 ԥƑ %e>gc;L4ߍeR`t9 jkN 18!Hx73nMA0_pq?D3 ,X@Qs2-Kҿd fvg#HX!bl|N൞90(̛4;2m6)٨涾oi@dwHʂפK(3ԗכύCNNH8o 3h-G^%6`}'B{*}H=ӆԴ?ǼmfЁT )acўU]kcQ࠼?֐245 B"0.Lm\\Z=AԐҭ[A!M|)W2c0eq{&=jĘ%)+T'@*X;ޙv0W^+F<;F]Q]J %1;^NfUiA?i(ki7{GbxVLC]:٫T*DO La}c(te" 6L*؏CQ )}HmKgmڢ; y=pZq A BzR>RtLN6h+_BtΪkXh6DVJ i(" 1e,Nb_^"b.՜4m]y > $F9PٲҔ H8jN3x%jv`,PaQ`LQ*$V_X=5S:/|-= B@Qevn?-~n0j>" CBz}o ^boc *FRjۙ֬*u`5*##;@e2#OTU?go4FaTI2|e$BD:w#b)rZ_/hD`&j E؂_x,*dnVT'Q|wm]m%@65'JC#"<%Tb,֡G> |ae"Yyҽ*NmXmtz~Pe9 m{~/"l +U|~٢*!f6wSH2I A6cg~yφX4zF|HHBQ/h@yV(f5oxm?5ve{_{NI T F.K r YB\tP9,蕅ᨧQSd:È&Ha@Ts< ȨtLvRSњ9!R^g-6j˜VO|hNgiڦYrq=jI/ݽR~Qxc*eHWTOmx$ȷQ][T4TqFeJK8k@>m jU%F@ fX2KQM1iGE9}?  7&_\dU( sJU؈ƞXM;1ȇi*R'@ϣJFfu w?SlµgsWчQח/Z0]Lnvjd 5ࠌrMBRХ.$<IupF.`>mKίevPAr3C.J.AG#0dTȧC UTb2y+X`9f=QIGV*}}z~%@\!tTF)U> r̘; @"4NAp!`9Ir_~q,DTh6wKZs,rփ jssPL汞R6V4mo)̎44(*r*Dc6l T v)* w0PgeSW9/˾(K,P,5ҠrC%ʹ@@ %ovvs[=; s!-7Q#W Lq8P*rdEu"fFu'¹%2A+(?Bt *Bg,]dXP͞pE)*\e-؊#LeBi N'Loژ v kԠȟYo)w; cjF[XorOBB́hq>;逪%PH݁etiꖤkƇ)Vf`ay@(8R@ ":cJ;fUx/s!)B]EecP%E4M;dI~h)z/eI)u$;lFȇ k ڬ,U%\Zu;Z ȉs @jQo3A H".ddH@[ѐwYY!RupF.woP>:fF;R``CdPP[EU*r^f <}Xj3C7?`G߆CO0f'@*l?8ʫiiC Ȼ 8W]%BIFwCZ" JqQޮzt3 OM_'mH2P1{',9Q~Ct0T %p;2LfG<<{x>*m#jhJF5=A`C ![sͪz($LSc&ycfY&2%^R*FG0> MaK23C<- R2б/"}O"GJI7I1] WCu8XhlZa8ȨYO f1ZG4Y,ʒi%` _)^!9}+.3L:6*r`! CS!X==62C(z 5|АW?yF3Dь5 K_TAi8Mm4䱹 /)XS[u>^XS3A'>48Y8dTJ/@j632zF!fI(cNjj!:=4ZN >|G4CEL uYZ^豿6_6qYoutS~=k<,[eY-KW NGP:q^e(õ-Qnt@/Uim0$:e[qԲK2gR6VdgD?3|z;u Y~Л]WE 3>mCܦK,mg葹'kj clp2}9,el她B7% $4c4ܥ!N 7a:lE.qҜ)&'x3J ?ԬI$AWԪfa ,=5$ʼnT5#Kd̔ώbq:dH ϪW Q$,=&6Žx'|3K Xb#.UQv_\RlV?m 0/QKF8Rq%GN@cZ}#iP̀ T=T7E 0m z )t(MXn\m" DHmn;(EjƐvuLfl2AqE88,+ =hj,D.ƥxc ) r}5I EhB)`a4dn~6\H*X%\IOZkS8Vr_K/\"@^B(o֗FrЄb 7+("/ϼ٢W#g$/C-t=v{EЯ;Tu/7,F]#ȲB"Inm?}}/ v|S!zo*re 3c2"T '="m,޸ (h [ 0@:ivh3s cx`ءAAqyǰ$3`L jk? z^y+) hMWj=ؤJKW3on7vA:uK8F3k7Y*\:MJT%.3.bAXֶ#} ƴ?;PFx7W"ݒ8&~K~l 4|upr c" @K ˽+˞[0,ŠcUM!&97$sNޖK+ gpIb9\ՃN%脡)ЧVhWn1.ے~YrQ\F̡a̮dJP f?PJLjA!d~Dr2iN]>3!O;suAR5(WBa߳aN깔0(7mMfj//DP9lPBX[5vW F՘ 'c@\34Fg-&wtCKyTpn.dz@fuZGf|ZVF23Na2]1y%} ׀i<9d `(["nK+diAb^Eց y64C1Oƒ6 m_T>JMb-֊y`nз-2H{6Y H ŅN}9)wjP^q6-aNW KB.yuh U͘bQ.ysdfߚ[Pg Mq,<1gE*O}?fZF6upmAyPڔpN 4z\{S礍ueB+mqg..Gاp ؠt꘶R+BNۉ}kumXE˥س.ͧ> b09X-`=c).^L8=LqmD$!ۈJdDn)k. %xw]bU*UxEG_EobYMvVuDuJȊ)FB (=v6"YE19Թ"Z^[wLrYĵq&B@TjFbp<1itE&;'+ xgBfb`DmPAHY#܇̥DXrȎ4'4gQB_JHQysHN} )2޳5zKJoQJ(ڙAaeH4$W .p0V (ZR4XU[:7͈M0d8S!%`X  եŽ. .9 ͩa+*@{3IilNuuCPW u*:-EVR !cܣjhc c |nġ^T` OlF$&(tP2SP kHA( d3<9{N{Bm}ˬaSxʱ be+I7RTnЍiCzΚF!WAȇF&8@rBW}*aFI8T lېΰ*+{;#QPvfcT$KsJ~Eo0bA]~+0{=.N@#e;U/aj:ٙ*Vfc [{`#ԙz~s8J;M=_$!B-{%ݲ'k#۠ܖS?u⼍ziwpDEZhjWHh0#J!a4vv mSiU Tg%WPd\9rJVbY̗uey& H3 c#94Vn+?Ѹ< bpTYIJ{urzh.%$RBz`\[S RFBBjdx`t TeR0b3!gI~(%HH] ΌHYvn_gw"DwL(=46b# I{ Cap묤CтV$(z0|% (1}Y)=}UW++ͱJrѐU JU&ҧ 3ST\a8n8aqgowY2` VZDr$qH8cv}_8 7 1'{n\IN VXV 23(;]]m`C,Zt16R"7dV}{0Fyxȡx/eя=RPKKra ۑYntb^ M' #l"-LL@ Hl(V|=! 9vk c_TU͒X=a_8ReRZ%ÃfNNfbow6BMWCuXʨϺ*YwN @ Auh̐ŽJuL^IxoL3+p^q̥BD'D?nY"xN,4x8+p-(AZv/{r 5=wN}a]%{(1-erF; c 3$ ˱Mtgsss?~?+L*AMh PcM#^?&>m Z:Gբ蒇2qY'i(4MJJ6I%2i3o6!{* @B'~X*ر+2KclFcGs -Aw#I;GSID$|mz!ʝkB~Z}ԅr; ]u&]XcRWz(JO e@(dc)7@6d`HҘ7ȶ'lJbnT\pհȰvf0$ (2=ݎUׁHaȬ}dh4"R*͜|:%ۋ^?2dhp'W}F3s K0bQ-3YTo^?*seTaY0"f/}z)L !Z{{ڄ )` E̦a-* FVf-'g0nDF>-h(F']:"AԳwȐD*O`uGӫcs#A; / ̀#|lCд 5GəF o4s߼Gk*>7q]=fT3 v${dm APn?lq*.Yg[5B=0"mi+U\5^ T/ 3֝[,$CB 4@ n={c!.Ϻu3wdB&َtOK,Ffl'dCN"pH 8Dx';,O '+XV"UDbg*1xaUY_B Svj@<x؂Qa@]ds e3#, ,n]Q%+TR6^*0{VR 3WV?O$xcB[ԀDC Tbc+sl\L\ Ps'pt?l^$Cbjhrp[0G*eq|m{{ yN3='ehmzja 1_CEJsjͻUնt-.>v|Mj;'ɽwKi7\f08XV]6gQȤ,ݎ( HMc3]z=wLQ,ߟ7u]B9)5%i({5d̏J8|lӆel|f~B|}zn2koB ΞAԬqΜu{7!9j֮Ym/RzwQg& p2D ϳSM0vXZZS& 8؉55K_95ִ7b9ۋ2}hNRfF<WsȮ|֛fn[[f6,~[0zY?Bz,L6BW'"P9LrB'd]F޴{K7^ > r(uI8A9|}F,֤x.hL\17!zNpuin湜~=/0k'H1M2KH0XPC3]F3m'QT/X@􋖢pMG1y;>5WdD|j zk2%r݆=7W>ދZ0xJӇ7KytF,Vl-*O1Cu\UXh4N \[*C"z;>h=υ"-Oa4+7Ee \7EC3Ǩ[135\^#{;p{9VY亡vtȇ+ ,Io?gW$ks*f-fCW.H @tT11E6CIn5y2 z!ľ\QG=wǻ\|OU i3F2ѧW/{òFp㤙 {vbt7!q*t1g$mV4Fӱ*LOfHZɞcSfjŲP*־ɳ!U:z4≒<ћ;M\+^ߔTaU7u&\tzdnUzrΗPg>iuiB٧]!\sNO٤ Q+f]ORs ɇj&FѮr07k1j%D/gW{;)*NJ%+^P6kkpU[|?e&{3vt-#eo_j H- wHK8; na~=_vT[:uTe)8l;CzpdzؚgFhOFQ+XT0A„'qRF}T fI+垍Y,Cdm-smXrPtg.I+)QGڲ*pG:ŕ͚`j59zgGb`E3"e u@O;EC8 #PX] J&ZgNU&j~b\Hz,I4OT)= .qv~Au ,j IӴ>z /]F6-1%++ yIˊl1v11Q 8F_V?㺺8h5{X86n緛P FZ:}r/N1.6PU޸D\\jܾqEbV[9:;m9yWq'DjjI '=m $KLi36<èwu[z X)CURG&ބTWήk65\$R{c(t⼭M< Bz }<Ҽm*Q@߶Y'{&r{B1[8/e2jUTưW}m 'Lcee37 mB;jc͒wJȝ;}e1.oT~K>ArfP.LH 6n9::KʟAoi`=* el̘4f~=0<?Y皛L<7EC-NN>(wKLvD7 xiF((5<Eqn˙ɖ |7~2O7;?*H~ <)1,5{M0OIt NDWŪ oU*1,q;){Xj W*iLG[ 7h[ ) 2ffE͢9Uajc/ַY=QuN[娖l(+;n lUm`ݲGvEuY>lױ,YcˮB\%J<#CmX%0jŷ͖W4i(-R&0q'\a",``#`m^Oz`WeE,{~U7rm̪0Ąx\!4fcO[+ >~fIeGEY~D1MV8rlS?cJEC5:T~zC hN&a#7~ y30RE:A7j}z`sq߈1:J:ޠYcSCnV{n[K(6-Qp w)禛=a]\FҬ܊iG{协YӅ@ٲ#3;rrB3K6;ܽ5cpem{Uv^d2a|ʊb#X ۴O8{Qbz*:Me\,&ap{IBVP]U"2 3/&8̒(S`>uI( 4^>a~'6X793-F2eVS>hw~mϏ0pFl&LJ?Zox3qֿ|s%Εޜ+M:^!؜E NJs"S㝕3)_[)zAh,9*ʹO|OJJ?ZvroM-cg)ʟ {D_" OWS*3~4@ų* bl2k۝"~Mħ.⍲D|"7⻈r5􊛨%fyzX[K¬TJ)}zp_uw]Lr/U}Qgfu#suL4\JuT捞qy,pFEDRiGDk 8!$?B"=$R<"ż[+_Ͻz؟Ǝo;g$ "k%á_~"O}ۻoBy8 mKC@[>MYtʛ0#6'GxJN`bKCLLJQo%[`˂0r4g N,x&]yYJё煿+~diyyJ"pΑU^'J̱SԒf kZ{ul{Ypn0_cҧk L[0F $IFA kQDt652h\pXȞc' SVz`@4.+ee inq{[Ȭgm{Fj ]Hj6L\+%" (wy4V[gsb6m'o۱߿`,Ƴ@Qgrhr1Ǻ( ⁍aMڶ,&k`V1q\m{ز.92UEu`lj4?{c<\ _ϻ0M>lUCZq:qjϣOq+Kecv2z;>IOk8di ֨FO(X]gZq{/=Y%,&?0opäi?TqCρ1* [:U8`H9 t*F ETXm^e C[砟VNFy[By_~sUAimУκ/SZn>c~gIA /w?|v@e5HO )کoڄ}q Wޗ}9.aIW0w|X3ڜP6pBON)CnRcolH7k(?QK|cq㌶6y fQ慲jLflWXmMʶwi?Wuҭ|<t3bQfҜeF9U2;hoeLsRH[RP$=.S7(mE'2-0sFejTi>هbgʶ9;x#B~ԸVrn)^⮰SkFc𙲩`SKMv*\T; 8hN9Bǽa#Jkm/v_S9%՟LQo%畧ON~1樦gN)d,BjwyWߛ_g~w{8ˑq7bGf^4]&˦d!9(=0U]?9;̢:)gEmxiOVڦ:n[7Ni>h&6#wL~XhWm}M 2gMD3SmgVLصH)/s۫nD=I3HwqFgWvÜ} ]ۺrYO]ClkMc96>U'? ;=YiD'=7; -Sk^ncE@q@I;5i |}Ɍm1Lo)R^DkmNL+Zqrv0]ÌCB$EsXooz7ֲ/z4vquҶqF{z{\ xRfj.y=>P\/.yIQbWNYsɆ?0g07|禙<-ٖF;vX.Ze}6hje"m4%7K|3r{4x6g1O4.籝Ӹ\sԢ<}" 8e3盦 Ѷq!L?r }vyu8U4lV4v+Q3PRX]EMZkpZ  x{nPWV՚d%v@%ܑ7%zc?+R++& e)5j<'b-2EK& ԉڝ哃 qAFFuj|)Rq :0C;@ށD A)nx,₊lZN#R2"T4t/qx@0.roB ȯ-"':ހoXWe.9Bu}=^<?GH/ȷZA ֞sjFbԐ׎B_ RPnTʈ7tاA5~,CU sԶpo+8^|Hq YjE)-V 8*D!6&O=ZJuBKod~$0%{.[a:D03C .FϡS>*\XZڃQ*@+lB{Ym/m<{8 '| 3`9EE9',h".Ar4äBA"H"{7Jy2T4#4g X\GC*tfq57ܴDKKpሢ-IBıhs'ho`,UÊGJQz Ip "Wԏ,5P̓`]hًF7@\" 7Hը>n#ryAlg HO!zɗɎv_bO*$c3F;$WEA"l5؉þC~;7]ERY்*W]dPxnr\Ȫ.y?8BkoTRT W0BRr eG1 GgUY:ߔL F%'=ae>Q.% N2:&k߮{&^D# .Kts3\wzve-lE[Iəޫ+A`7=!R>\2 54r_Up9u&.Z@r'|N[cdh61 #¸_2ubY8"1A-Z#bZCE o=3{x ; A =E[1oǷm3; MbHya}V2kV$vXq:eu;l-;Re[eBkp^58+@~gA + sk:ùIT HyrՊV+靅hMe+ޚ '>h 'FߟJRN(["B0xM|Oː5r#M4u%~0 8J<Q>AChW 4aF{X _*\!8h5+Fu@aN [-,TBƉbC?ww *jxu2Vqȉyozh hG]^f~O)r%sNKw|}S.v,#ɂUIp&0yrD^_ؚ;llCUmGj>ײ2~}<hpuqK%T,wX[/* ,?Z+jכԹ`Fd$\y cJ1?@ 2RZ_r#p̓Uw9?vVbs:e}ʥ[Mềgdzq bpBI#{M^&Z)ġCK+ŌPߍstu_J.|.da\JX:ᶁ^2kL9ӫCv9;Q7|ky?åŚ&=Bx#bл~k '}=5vVOth +{e %7MBvamabPT Zdlnt?c=]iQ{hM 2NKY"OI32؋ZM UŌ󱎻P/ZJ:D DUlH{ 'k$`/hK~dp =N\k _nsպxW2쬉 7m܋A,^`cvnD&® yYSE>.N6†#sx'aXv$I"!h AaJlOF;$v.ѷgRA$xΜɛrRn 4f"aRi7##+S n7p-d3-#Ǵ7<]>x%p]ыO9aN6{fȀCx#WlG9DS5尭>8}V_GBtJ;(A= <] 11^_BE܊]ĈN~Y7kvsI!'D<4,q.†zUM-i~s<)R H@I ^m>+C$1`zQM#Qkn/*L7<6lNL\(%dC(QH2>'h?8@'R߃Fl!Qq :")s ZyMï1lSN߂ *{}oC\ P`UC:s}W \I JF޿[Q`uEmVAIEn ;PWʡ+~'Fv+EZ(̚Ga+>_;V>Z*e_I@*UUBJkCO 7;haU 慤d[)[F\C ZDlcNLIv@V aN1'/R:K9ʾ9;U,q7YFJA_@J u X񷋉I;]%.8drjXvà{7ebvA9e 3l7,އhNх{6tE!J4eOug`&_&ɨ!z끟kzG>Қ&Q!QsX\юe& vRU5v P.yfe?.03p>N9%$7#gfX-BF  ;-#I;0zF2ɽyc1#EqKYF '4[FmgV8cqR,/,7G܆x>"e|VwT촆HZMy|10^sܴ (zk0 MBIa f vWݾY YC =;WմcP•%z=Բp&KHM']?EN(RC][0ze+('nց[=adcb}jAX{s7kh\` 1<&W sIE0{*#>Scv^z: &H(B6`@:뗎aN.Sb_>ԝv2d ͯ#낳JU֬bq`h{m Mg-'dӽ`-8-bT;۰U,ʨkonmwk8Ak<en̼TCr:s&{:9ձA @zY} Ҭ0uO%cUYK:OpfLĚ)`1)_٨>H(b(k$]^?+i2j.ڜ_L.RTmr7Z4)X>u[ CLlu-y]LcH}OVz=7}V;C'ۋ! yX @@+QɽRFBuҗjWwi4ѣFe& d@R\HԥȘ3RoJ8>)KYnfnPns$8OM36J`㾷J0 tIi13B9m Wgp7 iQx>bR7'Sᐭ~0!$TC_"_8ty~thTVI]5e)$_>5oj.W2 ƃAqu=z(E- ] [\jGT.mQy5[*RI4˨#4JߖKC`^_9gAiL+*7H\`$zR*-sŵX̺enG=/|QaF~5Qqwj *ch"}2oh9^L6r4suw-{ sl} @ a__Z(fN SAڸ)ǚ2`gXJeY(RmVsLZPSwX{SkM bs|Ŕ^h]2:!<Y2(Źv;5f29L.es1|KM(K|`U7/5FTY/toxt)6e_ܘ ; PXV2w8#'ث'ݬoҮ:K*w=* Æ Rvڒ7ADdmV YfiqfGov>p{ Beҏ7_D6?P^o!t>5GKUfW8?XAML\!bJ y&tm:X_=)?]YMآӗ6tԶȒ)7锟ASW#v~4L}]vʏy'_#훾-TLn);.֭M JG qȁ/M7ycֵ7w۪1;ӡ ߇kTÃks,<ج5kS2s R<(ml~(~S|2yW϶)],P`²Wǂ",Ҿ7 q]>*ӞM5evo׀ΌW`k[ &zÜ!]tH'oGZG(Iezc^d !fΖI9gn UJ2E)_rٕZ􅴠NgL 00_l\7L镥m \MT7sj1mK0%d)E[+qӝFG4 82Fc ML}Jy*b]HZ#Uh8dvZ m=5-hEpai)VeN엥QEPi\ ;%#Y`aPsaSzPe`ģk)MmR{f]fH?R mZ;u^Ao!BaX Z%nĐщB'襇xLҭԶo@W.%%.X NA-i @b/+1#nc?Œ Ыڠ)uqR-+) K|`UBC]yз ;~=eV*Lnb_SP(H.bBsʈy(F ö +[v!ыFQ2M^5b沝Xyi)ƒIǘaH؋4ݟ t:d}Cq1V*@K3 ׹!dι0}!5! ]oJ[wKXE!w3$h`vPɦWOv-E鼛*e=UI,}e&eFoO"4ً2- 5жLS@81uՇQaq9R a;F5 )nr9)GXL.IѲ}S 'jtW\<?FgIjwcTV5Uq5B`fO}l#'jH?aaQ,i4m,ʚUu苴SLU",,cxdmH',,:ZZrc خlQlP/E*nR 2ٺz_ӛn(fNo=tFdLJUEП߿5S,m gRƲAJcfNgF0G-tS(NXMmYhBox\&-u*}biNzwΞ7A U֣"ݒ(]#n-^5L|c&!^&St3>dֶ@myXeF0Rz/(9cIᕡarbLd\bS \"B~*ϷπZYϪ>R_W[%o^L^HhZRTfߏ an;+/A( vM vc0]`ۡ*[5Tllr Es*nHў 1:߷?GI_V.<1?0C^f.,r֍yjtZzH(X=Y{n\=ۙ¡T|q>8zp㢩8m 1]aLZ+H5P /+~.uٳH:6LQm z?@ !2 [a՗90~rCrx]RaCR5y4wd)(DP9y1MUVyh&,FG^,Yj%^\iՅZ80|eu~E/Uz9E-_YcXE?C}TwD^3H(àR :bX+膢aP2&6fK |~ň V"|OԶۛ_šd:TqU顗6J dԬO>&+FMpniPi$l_# 'Y'^5XvSL&/ _Bbx݇:؇9L21:%BA *"dYKTSϢ5@ kX"@ٺB1qq?ss#<<$NPpM(r4!N}>碙DE"fݐD/j^.-^AtфIѾ5c-fgj~B&(OROӉI0l7`F' ț ]u[!*Iƒoe%Dj"%֡Z@ʶXsQ(ʕ:b}JeTz⬍|0|X/>lR`&(VAmQ,.ԑ& %a܇2I-M2?vJG 0!d" Ths@70;j%IZ h RB)U DS(7cȌ,։]ذ-NKʌ"nM] UPjVֆ$krX S7V'lT%mdD5`0չXh K ^Y۷*{}16=_J͙TlwÚoř5 sN0bk0|,ZT(44[NQPWmQ4XfwJ\r~gO<=Gn4N՜H'7$%EY !m1eGgd䪶}CkaNav ̎5{d@y~%CJxHPZ(azhM=xj% HQ7Rv#uKRUA/D`)(% i:> ubp Tx_SeYt.XO)44 x^İޥZ9`^M2S CTs`[nVR d|}F֓fU̕R)b)T >gsl !'7VӐ]4K9J5O@) 5T cc3"M)B׋'B fmlhj0j9){9n%ܪcuygFL{}AWfm*09_ R( f}MD'Ruf+"K6MŰ }ѼKof*heۨ;WM1˹rEg{%Z;@c&]r1 hF^Ep尯K~)u sm.̋㵍*hɪ찙g}){e2o|I9n&C?9-}ΘxMфX=9bx bѶҢmL=%ZhpC.b>vH]CK+V ,}ir~ ز̎}&}߿&s PhP #iɫAz@b[F P"YoG%U~6d n,׃zo]}_҄ڡ eG8SAoWpM%'-ژeҎA7 ~YT6)%}=z ~-"3bO?GMJR(85z#ET-Q U<{}= 5 w5q:0Ar C#HFkjԃ@XU9R݆-ÛEy7_蕂ћmNH4ZX %1(fz ~5 YpѱA] h2o r |+v!.9U4a~OG hwo؂ya 2/G:"ːm)f)PZ3Ą|IH*+IǦAX۶}a\@6ҋU YuZEq۟Cv_~ވbrvWMde( ٌҎޔ uȩV9WKvI!i_)9ᘔ^z)8S&6ؔ"$m\Q.$|3`/7ZB,[lt+n^`U 9d[V[i(_^Չ!^,yQ5>U5FBUP8d:# 8j[)y"4$(v.bHr |mMƪT4jA<9}Akuc7 )t(ssFeb40=wΓM33(ԭK }^n4H+%(1AF61s6 l~Mid.)ԒLQ 9xeqmlMzU]3cއ̳FI.Aս3v樽~u4!rÕjI(KQm~.!~n;Z{~[桿Ƃw1|*?~ *@+ĨDF8&)NIVk9GWQ=Ȁ!ӋI:YF'{WiyN}PCpZW&h#78j Co} Լ`*Yv(e52\oMQ8};&! zt7U =vQݔ^ I(A|=w bUjq(̊#fEs-zhR'6[LsRt.UUGmPxKCYmjQ_>JS>ΕA/>'k; -7d)YRb4 ٦j]k{nj,hjxi@\?XQqV*S>VEb~[Ah=#I~cL-%(M^vj4'8.2lz; }ǚ9wPU3M79>jZsT埾E=Lad2qpoߋZ%e=?1L`SA)}BAc z!>gE2M =']ιTndo(Wx<=*u(sjimvyޔ vr}{q}=to9F8e⊍Ljb~my'K)3 mb:(Zu7sAQl۝??ǘ)/<+E ӮC_:ktzB\bأٿK h^>B҂1H)ѲRJc=h1v?U%pd:c߿g.GW,_FCӖOçW{|F(^OO̓ӫ=y>=MOէ_~1yu {}Uf5"=F~ 0ob ’P8/@ jՓ9 EYꊋַ!V,}r+mYQL<SٙgK>ģ1^%nZ1GUg%qAj<\[&.1dGވwFAg&(("3V3{?z?NMydˀX;?|s:?892WK[RUXcQ JaS~(/+9-y|i2$,$Tw[;@E-" f34~h"sO6Yhr Z5Y>s*殇5Xz2~f:mQXۻL[+HM5^B)1{ `RlpLŸ-bk9nM/)~mZ+p{P*\kqZx0{ [($0{ѿv=V` j~V1X13Rn}yg=}*wu G5}/gbL< p axjI3w"vZiQ4ė`̉gYP e2<-,&UkyoA}QhT=`8'tOGk]-‡!vڨl?B&B(DܹG̶',e!Iû?B_&"+i?9O3)| b>:?áOAScPkȷb,*μxV Y^T/ #7A9&VGrDܪ]Dt6/9jaBJn'UA^ƠP$QrHP<*͙K\e%ye9͐Zg!o3ϽszpgH=q K 㿇>> iR.O|,䙝(5Gi~,aAB{X#e\qrFmSbNcp !/NsOnL)imzLOV]2Z~MqZyy'2Qnm?Z󬫅a/.PdXR??&sc$L3D_48Sw.&-e)S ʉ܉\U"-1xͱIg>$).P<.!<'L#@*OezX?.qΘqceF~?ߟMu^CFEucv'zf`fnwe 4[ɻ͜q~WgncPe/t7*x/$co08>.zUc*p0_RXy<<,Wjg M.<"u)/4wEm nZL\P BI}+ý/L5U6MkuTQJ arm,t9 b@*qB.3 P~,΁u1$ۨ9%Vŕyu0ӊ?WCwgr'9GD1Mlq0,.fQmaӨCJxU(Lji5k`͟_ ^ućQ[|{3cg6 ^owūZ?gk-#jp|5Qw`iyms W믹Hj>:'7$>G jaIʞkQPG[z$-m˴ffg&;Ê+)bǴOd6•LR۸Is{ϛ]3KHH֛DD틩}ePf͢[b' \-dh{(l=m[~""P/QoO\,B:a:(=ykZxX6wW3Yxx G#ܡUˏ5*-(o28K@0l^)lV^H]5>ô󾐈gXc)qc$67k۔ )֪>,KhЮ Q_s9 ֒v>s:xi 6 ?è1kv^-Z6% QֱE~pk_l.o#(Kə:Jr2S[n dso9=0@WU"/zZ; 4/b:}^!Q&+}[Wl{l0O߇e:{tx%}W]hilibUlsOܳ*4 O&^c&ns5Yfκ^o[ppZg|YMu'c\v(L=$1XZJވB{:!zb.F,'3TN=(ök K}Iy7;r'nM]PL`1A.ڽeQެ۞CCWVfǥ[,y_-; OL6Ӯ8 "r˾dzߏ՜l;{lQ Fڧ$@eb/YIfg|Yٙs7AQhhC'AWȍޓ`lwW!{Ac x{W/Vmgk `4*H:L>4bC}6" J pDB wN2NJe슈)^u!Xŀ Ћbfƚ;6!De(Q2̬5#<ʁ%@ZTt9~n)P4Ŕ>*PnAXQ#c4.`i]2\\>?/=E(C׸s_ oy|\00yOHF0{FLJ.F̰G֥ q1q \J\e&5EV{v$*6•VD>\a?jnjXsfF&jǯ}oQB^ .;Kup7)!eQ0s!%{2riֲEfǦES(;eu64>\k9K4mH+sH XH4eǰb<ȮyU"ʖ:n*-4aUN}` s1Pn3T> հR' #w-iڮ[S4|r:.v))O6{fנ.V$>~.oAX: ;6&p/+IkmdX*U6lR'tQDll84N3jֺ";_:Tt*L#\SY%W!X%NXKne*&k<w unȺF`IȘVPvŚu}w).Uqè%E0L*-ۙ $eeYv6!~RNU&B&. 봦ﱖNK&WM<y)ݡwO 5cЧ|:]N3);^2_I.*.m?Dߡ 7Smȱ$@vNcsj[-Ç`lk]\G0=ɔL'YtIs CGn zyI__t;N#࢙8BeըhE-KY6 3y#羯jj0lc׏Q{y!` ;0FDFLfŐJ+œVZ*VWr o.`PxȓQ]\T}=iaio$hn33 IbEbS}14[3 2k\jTge>^L(@WYPZ=eэت'4e vgU]qΦ&g>]R21/i8;GגeFa=rՓmԐlšZ$yJ=&,/T,s<)|mV^i)$6 >ڶ7Q/3͏mė8J=C)C mI蚹trs:tKh%UU˒=a l dZTCI<:kжu*u>@*&s,Lj;0ͲLо3%!$N 5,^d5̝Y>Ŏ˿-.SԐFjmjQ؉[H lMO99yc|x=NѬGkjMi$98_>Ē {~*}QY,=ȵТ^c0sQ 'l)T@]+lDٔROM']A2éCU'?Ħ];b|/,L*GFhM҅%/F/YfTDo8gR{1k rap>L?B iqP5ݦ5hB 4Gs1}4zw*bܒ/tsEb uK~;LSǽvov+v+q;xu򾭻4)7EvGon 07sH?c zEcqΊZZ? UZ I[<zҼ~b{<|GrUe_3-=)淰yLcCv-u"FO6eEBym:vcaU.D%dB˕8Sh7k@NLΥz؎?<\J5{v)T-i9!Vѩ R:5tV?^3pu}f8HpFZךr #0CwK שּׂl|Cn{6ڧڪ`Dլ`MwKal JT ]ȃm֙.⽔n̾ߏ'$z,o[ElB]Sw$}[# P1< xQ&uY5ͽy9FLgel}:jF/Dz~[<^ouכoz.-z"y_?1Ua;]lBu&\L^ ,xRR]Ak_+i&b"r@ lr2<*F` gXU#9⍗-A!!.S) ϴdҗ^\/ G|ΕǑrC$Bcw ?Rw Ć!]]*:x+Ki ~E_T2l,J'BP9ȌiR2QL?XR0 G9@rLp7{vAh#ɔ-z'̪q\VRZ :Y3" [#W\[:7-eA1Ie.bYv~uc8 <.^EtKe覨ym;4V ;g˲սDVc7k_Z7#l` 4j~/5gf|p1y_z|WtoR;F^[qEuF ߂4)f zw,([t2gT|1͠x+l^ikWp"!i9[sH?^łi-Cèa|D4[ hQ]?(:(7Ol=h.V JgL K 0дK P sX ';A-\Јo+)4Y0"0* 0i7Ak|Q2#|G-4(VUo Z0G%LmZmtbSoJ1|QF6hq0wB-"(snJ"I;NûP3Wpz2 0^J\S]79H& koY2|TOUD.nPʠV҃A!D?kH*TA7hS̮JJ-򶴵Yl S^#3ưJ]m0+M@1y?m,F}}mix;1@(P@GAa]{@"n>C s>[48*ǒιYu"Nw;$EI&$Rx2D ӑ>׃+2}T 㟑QGb_MY--_.|N`rs2ni/$_a8lOs!ȝ]R3 Wo36˹,"|o8;%D<=qL.ҾwH3Tk^Tm a1 ӄyfcϋ&aW$$1f0##t5I#t K)8a>7WZ96Cq:KAMơ3='/~=_k npEGaԡtt:d@ac&hPYR)ƼM$xe0;,ʗKlϩ=~ (]OsԱ<KmP͇>Tw8?UL%Pj|%0-L=[kpEMNۻW)osN;xN~DMK ]ήK]'i6ǩqM/ <SyG $(ܝ")&-j ˛]};?sͥ$<ړq!Rw:"䅗MCZԀ&}}3n>ܘm9[@WjFܭsAq"4dF5 &c_6@,6vz'Eh Jr/a&50A8 E%zϩ*l=ǁT o-+ $|(WqÈC00:, `&c0@@IPA$pA|K`bZ$NxL3({hAMѡ(-UECP .p ?驀Y QQ?C3a :EEO05֓cE cqhBRpK"B @ ޯ(|ޭe@ Y]I)iXczIpfU6qKHV4 ea|2 |$-+w!SpTg!/Z@jY븴 @ebc @RQɎC ~3wr:ٟufKң ]vpV21-3!/5M .? 7}s@/kOoCg,n"04L) ʩ.KG2|EKasDa@ٕZѭk_@wo skZ;&Wr?ד93$n[rNQJX=C\̜:ľhXI[2",N7-c{dܯ FkDK&&D\?#bO^L?q `ጁH2 $ K2r 4~p#!R,sЍ 5KİYTuZf"Y\zgm!\${`2A+!`G}K_Ȍ!fR^ 9 P H8roHR<.L½{h w@u&vGw Q_YNJzSňn܆ ;&*I\H'Z;Ѱr;1M⛙3P\=Rզ49ZY:-@Cr?,Sp)"sE_mr:LILBWi )(߁gAzqJ/*aGuF}T NX2JB`5xz̋1-E.@Ɠ>כ3 :k'"G\VㄠڧT"c3kMv1ڒR_:1\@7-Kn"SxIC3qk)0t9uP(=+TRKjbɩ)"S9%##{΋Aup22@g),/ZeN(^d&(IJ:3ZE5.7~E.ߕMA?El\>nmeڃX(MI{ٗsm6JpCB(w:/5P }tEp{o S #RW ob , !Ed/-wh>7Y1}^_zɥ!=rrԠ#%&(4q{*t!'"I})hx8h(|XDFku]hk85DL?h_MCC6 n]˨= $C3(8NgPRV"W$ILb^/:|[2i Ղr]$2 ` 4"?vpGE}Kh?XӠ1#.@>vskbˤ&|"w2eމ˱s_Jӥ 屌sΧBA۴BKa #C$3pS(I|ޚT{:VaY.25''LD6yȪ3sw>3ߛ̊v(Ÿlנ"h][ɑalOLGwYUZ 3k% ۴O g͋&># UH}[hb!پshc1:,TpKK+KDY}Z↭Z1KV@CG/F5sB=MK+ ,y1u wñ4GYBnVFxM8C$‰VQ(`yN4Aʝv?+o/V3%ϓ|ʶCs]mBQ ŰZ Xxx*v8@;;`Eh;v9yvf&[uA%^B,řVsg䁢V+?5kV-೪7% Ɉ=..$ bi\zZ V/U@PC_;Geb2dF1t A{DOkv[]ܛ Vѡ" Jl, }L=}O1*ü2P-(c@Fh JW vErψ:MykSCm`bC51G4Ϣo}gP5xn0,:.D=HL^0G^셩}؏2.$3~q^Hu &[J!m%:[ݣ"e> $=gD"qdzNЄ{ycuo tBx[%^+y#"+ &oЦ<"o1`A)`tr{δ1s1 #c z.D<5+Nlnj>h+Z(# e/f&u^Ē s^;=o`2ɱ<"J jHgdH%sL48kj`Be P\pN!|{ߌȭn#nP?/;d$7;۷K֡:Դ FsRF*<S-y_27.kZ kAZ m}Nu79* @.\7y,qdHa6e7Q<P#QC >,NQtFaBB1}՜*O/{m_2P b~]ZҲ^+p/-Z@v0}vJoVV_{ ?W =JXv 2 WфWDBO'ϒp !iw(_~=BLjJq…b;FK+;F-lqAǨ\f,PK?h>89@^wdܚl.Ԡ'H ЙŵYxˮӝg tIn0g8b(Dk> _(Cs s9}X4_ b*~@a*O7:82ptyBwA'sZrTɿguUd&ASPdu$>apA2ϵ3ḑ1*/3\tmC(;&ti/@k\&:_8#sjy5* '㹐eUם/ĞnDf'QX󾖜zP. e=i(Sh3J3yJէTk1To͒ϬN%͠ဧZ$># GEPh;zkUƯnAp{09`yOTx'z"8heX q2mk^4RF]7 0SboGY̛TQ^[/x")ӁJUl!XGJP8⺍ݝ0bBdxjLܧz%턪>O$1_\ӭA)i@Y(⶛Y Ӥ1p Dh3Nz_*En68`T5&+kczR_3F߄P}[a ܭUg"-\d V/g8$V"gĄC)5PXtFaskt~%U_$l 0 :m':J? y;LQOCF8  _boy_.76ncb4ˏ1$ .K5>n s'ͧ@؄h@ؽOuZFT]Hx}%Ve?Qy4'/ !_HF4}FDt}]8`4[[Rb&̜jxOR83/~eӸ=t!_]bBћ|P~ bJi!kt\޷y2+PUH7ԴUC@6Gs/Cv;)eۧNߴ<_aMM@ZSu@E}O+Մ]8҈r9{Ϯ5&^$З$IUE/]DpdaBRqrx5K@_RDwyk}ZKZb8 7c "tFat g|` p{;niԒ$E< "-͔f6 LpB;1ISnǚ&4UMrAdR1UbyXa(%jp@#H|fs$ÐdFaȁ*I`ɍ+ i4=+'%d56t|A< UX"ee@vljtέh"QWqH:Å%8RB4͈)vY-")\{uOW4ր"wșCLU&:sօ;\EˋT@kh libw\.5\̏3{^;aUe!>OFGfXd"n^994?IUm9!2i.LsӧϬ,t֨txݔ<5 BQs'ce>< 7 uʐyc2n@:Oh m\:xitTߜRP@ eLʤO4<7t}{uMcIsZGI>L (V}1KdkF.Yg7UO-s|-C..B_nKBdB :/N.7\fO6-uS9{`㕥<ͩOx'l7*5/5.xd8{XC +Đ"LԈ1Uev>ߺ, .E0eaw#B=Y x@Lq$5%ϱ)3E 6{`qwqHuڈ.6 ՋÛh:*N(grxIԮ:ba7(}?|oH.7$)lg_33$7@YYAk<;08˹"9coYZK:7LlRۡ?ԤEk訾jNwH^jl60]k$Ucyw٧[dn^<*x\t-7ݠr{QA+Uv(cBJZNH eY.#aPJ>752$١ 0;hbP .` 9SS)DX pe%BC3(Kï#,Ef}sL P^ JwZ̔ Dx{Hlm^IY[X\6۳o ;5鿎1ZV'Bqh3д艑lNf FArg#uaU}"hݴbhp_TR*/j߇#%Gˤ(*Rd / 2'p=|٥>>K ?7dxK8Y'@W@0('' Z&\% Av浃gyln,n5_B8{! Y x>n&=AUA p~L,cU_%iOvoe`\67#r8::MP aq7T3qz%43ԸPűFy#f؍ʎt-\Vϒ 6g޼R"5F]+%w?h}Ò?͉Ti9݉N,.uaIկDArsVRciXCy|i4BPy}5ALo`t?!{ysZc:_Zg-)"H{ E*BFP]E?@~exAi{eDɲ.pOL -2v <&V]:9xGuǛXJJ{JI['hʣC8+c8ϓk 雭p07ꦫ^08!ڼd` s]mHj;@:iTش*FSCGhO$,:;B^gF%;Yui1Ii!'|ȅ.{ߖ[;>tR伉YeĖvFN@'q)7U择J_i)sxO bқy4&8D%e}qA-2ٹ:T|d@T1r@ ?\J_*nbҜ?vB>t嶏m!<"0iB(cm<t=3L-+P}ƒ/EwͧZZzl}.fҩ=ĢADg(Udr}QSGuXT!8wo^X 8$^ mpNiJ kXr߳6LJ L9䍅Vz" I,P`>ME*hr" P`iv]1ĐSP' 7h }h_[ʹ˽bo4%ΤhwNLkn"!PϔM'<>6oZ̈́S** C_~NG~O?'R?32+}_[̈́:ƔPFٕT$@Zz²^ 8Y "T6y7\Lmu92 4df z=ORdB $9j ->v\pm5+BDi-' x<%? 1Og89 P`!6ϵ?/>6oZ,4O&:"f1#t #giO)Ar+c( 8E@Oa8{uz;Dbշvf 8sYá+ŨӁࣙa-LcR|l?vD>v#GDͮ\ZUa l󈐸 }j4ϓ BF0AoQgc7k3C U Cc'ن¥SI o^([g>P..u|m5/ @jtBյŭQcfݘNQ'#xqTvf jg(3AӪs};5ANF\sχCXx;Vz0)MEOlh]%hC8HL<\T-Ktp˭ޝWLdžM+Kű 9\B0%gCz?SRڰ KH\o}O]y!  j~ة(kQt:ѳhtWZ90&ӫKg~+\ǭ?;IwSddj}8Ōp":!M8!tCyGt(tA,Cց8ɶɄIӝ:c٭8;pvu8Ssh➀b| zQ'#.@~bQm!Ea3BXoڤ!W_*FdS1N=:3[|:@;Up86 y5:."r_}ͷEPZbwXջm&ߧ%Og3.(!k]91x/^*P_<"!Q [-=>vfz#jgmvKZ sm_VLx]I>,% {?_)!N#@{#_|3Dv'ȏVBgo;uC24@ΐ! e5F&[H{0wsZmvfVo;?+`tl9dƜ-zC#o, ym0u!4]'q|kLT\[kYopO?3$zP?o3lyۗcFhxi3"qRhWp>?WsCR% Vht&énU,g@//C c8ç}Iuյ\K[uJKɟT\taM4`hW_~ D`~#Mrg/w)(3%w !Ҷr.L.4wđ h *0 8CbTO ls\iCa.39-9wOe\~JA6jfGaj!z X%khdxrΔ#ȗW=<"?~k>%)zl,ސqBlr g!yDR~`f+L._)Rm>v4Wn3Ǜy:y<#j wr~CRM 84ؽ?5#oWg?kX ~ұeхkm>ğY {#sϚbޓ~C"C~\tµ;)Fu$7vyZ6vϵ+PxRLqTASDwҢt@g(!Ws04<*j~td3 uYSF1ص+}NkwZenf棼6ϵ@hj^t>O?ʦ̢:R6-lGc~ q[U[kƟ;M\PVx:  @j)>>f$ɼQ#Jn*+([Iқ-պ$V 2^{{h-@;Njn7H=GFEU ҝf: : 0yƲ 3t%F`~mڝ OIX˶t;\)^T{9~rwej$>|:h'YTY+TW`uK:(sz+'~yoƹ#ʈt.kTgJ *&PF,.D P(Q@Fbk}ӽe&N "w9pJ| j]wT yp.3Px_2cOBk}9o]V'}Aikb[4k3dʳcX(" ̓~kk}f纃$Dޖ9a~ek_v  v˜D'thҤY*-pKN p<6ϯ4u绾n A #I_Bɳ\8OE+; _ij9K8fsk}ӌx ,Y|쌮$Q8?gn2rG72zK!¥2ʭ'N׏E2jϱw|| G6oy-F*yKW^VeEQ;{\oԕu$xѳ I\]W# VԚkWC- /-VS|'5k}TO`*4+8\RDDjUd1gg' [5S*etYX$^܏t}f-UTŃ`Va,t>67] e`9) FZ3+ g+Ȟ U.U0ZA arHG%eVpK4m |lNRy' tc<82htޟY57ok&0 63ޕ+(f~ k 4HAK_UWŝ tx>ZJ777s,,mzh!/c y,җϟ qni߉ -Mh<67Lӓ}Bmϩj`(}z|oZpGcX'y;/ˉ11 ? Muf|ZukLLZ#[sZD>|&xމpϥ# Rn[ǁQȠYL(ɷi}~,_:Z):cQai@}y/ϡ a2x.o@|m_cZbeu嗿L ȝ u;#Pgfҝm TZyEa[c|;֫EV#l?%?Lrb^x_:V5 Өuk"%8%y^9DZ@G!tͱh[j?50y VBwœU/>Rtq'r4IR-mD>vDD0!;G 5BW? d[jOO9fQLqoin;V{n4}>>D?ѭtmu!ţ,kSK^} zm LJ>2Z6d{U~dw?,*q>}c;KA\||'D9/#b|~{5uX+_Gf;SV,N+dS\j+vȇ;-5<&Ƌ.Yt?bCW [z\ x?:,E Ӧ/i;_!^HBS uWacDsDz:o!A50ײ;OtQڐ+>{U"S:8.]H+'f2XYAAؗ$0΂(}rWxb1@΁tMKB}~z󜘧ݛhM+Z8c~h}*6DC}@C$}!鳋T>#ԂY1ד(3l1_!{1xsT"֚$pGSKEVftH؎ "D;$c`{^LwpM~>' QTHLEƠ:1NX3<G\d}vjXiLmHRȾJQ\ lY7_!N`}x"U\ q‰ӅdY7,g.èy$8&(#Nݲ~L35jҌe{eD KąJB\2;n;jDGL[,xq e|-סּ %]d2" ʹǯvA H##5++' M7Al@28d^uKfva@_Gzo#'21Oz:Eza@O8e}yy ʔ9E-T.w bYv%HީVuDp߂ұBڐl $sțبteEpQ o5*̾TEΠNPI#ny_%6ѓx^C +\Tf $"K]_[Aw |?}2elYjoBO7,>h;ōXMx2pw (t@C8t ?2/px }tl~fC̙i@L HKGv"tG{9K$DiGy}<_MQ0`-xNs9􆠥.")^l[('"/Q8_+ի D |OۀE2t@!c˦tiΎy6@pYcv}:©Du[|G:M_sf}Ru^`~wFk ҧGyHcb@zAkisjC"(AF$nľ0.+C|kXC:OmP#+`h7T<`=\, :em$VOh2Sɿ"h W%S0\uB΂~>-%F[ NF&|=ÿ'N( B+E*9@Q qm_!<Ahr #6$* ٩èbv]cʪ>Y}G_|;J>VP 2ʲɥ7.X{.Ja DZqYu;,8juyd*-D_5y横'C{G25@j,bsP&{넔c{Ye{!7$?8Ee^k"ĩ%E;E1qgG+VN ͧ!8%C7}:(Pr<oxuXA{9P~w&WR}Ĭ.YzVneXin=ɸK‘.=x!LHBY9) 3 샷~+G0b:6#:N9 #,)p%}jv4.8ƣy-/55I:hrRCG-jP A,: aiq ZPEte7 v<T#y;FyxRa>z*xl#qjG,BmI\Ⱈ=zd8hC!yL0+ngHk^d-`3vK뜻Wxa@Y`6B۝o,X| Jxdˁcfo>'b (G2݅1+]zLI)td{NY>#TD bpK-6G cȜb!{5T8$"jm$Pu4q}r?51(0U jqKr伶?O~fmq‚T2+y=zadt"#>-^!1A+_Gy{aUMiNҞƑ{Cʨ2$x(I8ס!w^$ Ŋ/SxƊd$څņۅ) s2/`4QᘅsɅ8}iڕ1YIβ~jTwpF&{hƻútLiUkǙAF&Ud8m%V n Yq ~KÅ.%)ofDΣIFuBBUAX *jhXLnLc % Dfރn&nwR]-s̽3m8CmQ}Zpl .8>rwjfTܼsg\Y&`a~{Y2|K9;*^m *OY "]kՉ`AICanc0@CܯDJWAzotnWFjsS-;) aWғ4+|pi0Q槊ZVެ@PÎiSp4?{[}G>XC'qF:+JOyxP(CjCQʼn->3f ~>jz &38G(6QK/95?"TEM9?`QOKc;PuVRkPz*,a\% B4f^%DۦQ88uZޡ+{X KC*)7hWKA g6 z÷"V~SimL,#UmZm']ŲTpTq9 z>q"1MqS%M 2 ]6]<6ʈˍ=vKڞ"M_[콸$חVӝYas Q}Nٰ)bu^1 WԆtJQ(/#Ǩ }%_B5~=X!\?ya:Ν6;($>pq.M] X׼ן!qQxUAQ2,bb'Z֘ۦ/ Hޞ!+4`EJC?D|w i:!6Z_GTlLr8shӏ.&%AҸC-K@M(cù"$Pٔ^N&&YHD=T!T#_jХ,>Wt+jMH|Y.;"5"Ȱm4\5S"\E= }2wnm#Цj!/C!Cм_;\}_kf?6 %2ڃ?d3gUf> ȹ$! k g0lCPA*U-8M|s=gU WĀɹzX#6䷨Bꤍ"<xF\]_S ƌ JC^|3 si4^ަ"z?z` 8T`PQj@ar}W8[ېt0_SElq9f}w]{2]L<#)eap€WNpVmI0Dqe  ∁ʡ-PÙ0w°bc1_щS sEU8^>^qY0>M: QpЈ.̶#ACwBC9?73oD{ί9 |Z]ƀ2MC"j8 [$//c RNÜ NtTk4@;ؑ8 Gۥ-$^Nuh"\Bu`gݮQznFo endstream endobj 17 0 obj << /F1 23 0 R >> endobj 18 0 obj << /Length 76962 /Type /XObject /Subtype /Form /Resources << /ExtGState 26 0 R /Shading 27 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xK%M6U o(@ $ŖEisǍY-kG?w|+k+} }V ǯ{?ï3#\Q ~#~2GG6g}Z>CHY{ujgK,K3vۡg?~akSͶ&5"&<ܵb{kջB Ödׯ>l^OGUq#$-"۷V{ƶV+ۆF KlgO@xhg}[Q1 (Rj@Z0'ݚ}ҶæZ!ƣf~[CCskaѰ8Kv1%a/0l`dO?KH3@?~ٿr+v .[/ðvR_v|1-1a'0[,h G{Qڰ8CX Iv8e;mqm37c5` \0}yj@r1Q>g[<`cձ ǂClvBTSJT۟j'YJτEÞ lq "m趁qpw^cy~vǰi8bW?M">C3&62[;k(oúnhm0MLx(хt>Y}^}\~֒E/ ږ=m؁b6/Jb.28anj[= O Fo9Q2k;d|-~gg.߈M'mυaK(F8"Qs㪤mx3<3>x  + ;J58"ӅuM&c6A6 J YhWinwJ5^R[^M}16)sZmSAgks!Ny0x1^f(. 8c&˥ Hۮ>Wo^j<ŒoNOĭϸNF" 9T广 wUؒ ͍-ԴAqA_|nVK5j7U)#ǠpLh؏Jw-T=@tLlr pۻxPۚ[@d*'̦[LUF*n7]f$ o5M瓲/sH.jR8/m=WS,]d|7ys-0_$;GyD]7VQؔ'$_%Nv]rA@JSu@qqtx@~]!"hVHˎtIty6~FL!Q4gTˏh.&-杇KKbƼ!L h3pzN$N{,E4"""dž"f2@?qdJ:4j(b~ u%! H6aՌ+q m'f*?.$TJMI 74PP1.TgΌ" Za)S"5}|n;5]`Q C%1Puo" *e .04eŋmqõ8lxv wLa1raP[ U#㸞|fTc"3/- cXUV%"¹~uoϭ &/M \"G{y((\O>۠]#uJt q Xz/ֵ )aʵw]lm Í9԰^rzp =Fg v`*{د[DZ[ա(Q4m,jnėqz(.8S\CtP˰uLfPAPA09#67oj;ی#RsxzU[IZaԎR;"-btW{0lYC @C)3FodBl(ű"2nTYg1E_m5:.l ՚cc9m[Kf|{PI/"744"7ht6eREb&`ơD| L``6" AFY;B@@8($8@bΈXF p4/PfRbpH C1GzO萭<rbZF"hX 07 Wnq9iU$d{$?fJ% ܀$ Y 2l)^ BO ,_6]%`o}+RWl,#l\hdP.E|;z9#UkDQ`Ro#"X믇R ,e33ឬ #l6G3IwϐH.ʹ>$B%f?I(+Mm_eaE K(}* i < dp|1 A~ {zE.lj9/lmi'0mm$I7[s*OA7bBjV|vGٌz7C\cnJbz]Ԑ?O D+èM7A\OxYtێ^;zQ+\ 4G]{]u,T \bN*=NAh4xfT~_Kx H~n?>ĈC Tbm{ _W.lR7>x3Gl@2Φ7icS0R'"tbg;D<=5w:MQONϻ:/ʘqD.2h\uY7Y#߷IG]]hm,^$?.JB oZ(a%sUh}R*e/Eorͯ@ *A^X9We/^PdoZsЛMeaDyYDxYց!qJ,oG=EiA[L!El&GHg'S`}30FI4诿sL%_6H'4LTAߙ ds!\=Kq\{q;^G}mЃ첮 d=˦M&.CNs3V03`X.~I;=۠'kUҽ"N]]|CO?֒ynFs1'/c3!?JT@kJ;N%OkJF]rѼ:9<׋7VW/t+m:KtӶ|~r)Thu;S_8XKMdnX>I2&] {1NS=AnBZTP_mkw"/81~Lg7ȭ{@sz=wHG痷q4_ m'@ӾU.yt |oZf.rC OyN’"x`ZK}34c tڝtgH9)m^ Cm߁vi;`MͬXK=WkzX4LvTȮ10Y<z-mcϥm 4EpAi>Eʖ _6ec:ikJ̷|O/)7=ڕi]soV(ri>^:vť| ~o wm 7>] '/hkڛΖ|_G+ƵNx)0Mс׎{î=l}X&q[@^KAXx.}QڋүO_;|zUbQ9F¿6kDӵ˥?䵯$j!s4\~(Ҳ'/-=r!hץ&N!gd5 dׯkAEVL+_}?nwt2 Wь}lC6>Ԫ{eufLGel{\r}[2͚E"юr‰!H6cg*HS7J()Uj+A} kH;n/A[-APU2 ›@@4s`HV[Al = EТџ%N09Ta1TSc^&]mХRX,&Ur[0 ΁-xz8Y)yγyzQ8p#m$_j×&eJ)7{iL;X;NV6[bJ ;Wf#A.0- &p[M0 `(q ̙BWuqΆ13YsMk=- !?VQPPͬèjKwnAahDքVA= ,# F:p2[u`{SԱ`}HJ܀L(.sG2 FR b3k`[`" ֫v+fϸ/<~FN[S BAvcN}y gMh>?f4{bLD{Qv,mPLŠE}'z NQ{2;d4A'tۃUNߔPLC2t ny^A˜5hB7 u>% ɠ +ٔ(^#FBB9q< L LFjB{mxP {^@4P HF)d=}(8x8`l{JR&B@ aB/P @P S }_;DBHo^hugrf Ѭl"N'}~3wwnNxŦXD5/;P:=B,iX; &rlU3P ن:tvEu Vm.~Uϖ M*ͼ#o!V~AuPT"_@R^ Y(BUcٯ2{G;86#Gaހ@cH`G^oo> -g{jcLfb8g_wUWJUDRrcb$ݦ2}7$:,1ZhQiYPʛULWPe<*2V6 JӲ9>=BDƎR iA*Kpu+.tX+{ aыҢ^FjQO &=ZgTsҏ3HMW;;9p^ (UK`*˦`6zqFh˜z2V&(M@|BPPmjc$!Vn$Q`tl X,ha؏"dap]'kj*&ˆX_L+*%Tؚ! p]Mg!;i;1hR jt1$N:B5Z ?m4dA1hÊy22] ;ؠ~!yt1Gը *5J8D]Ba/qEȝxDĪ3`B@Sػb6(nn]$|ag_h| A, 9j\5E9?lf2 VX" TBy#&)Xw šr ˌ^`5/:rK _OR8֟ԇQhS d`M6of ]v@㼞uC lFL%ei6F01,eCAds_~PIw7^6hunFѳ0feBc,x+ 7DoARG )ϔ>j?J"e(àA Vy+V  }5ɼmcV}g`W~qPFL4[c:HīKْ+A'~', @VwǪ6 DsZè 3dFeXs-9x@+@*}l#@?V AѐiVE^"]1!<+^EH@j E>Efpn@Ajޣ 7icܱN!ܠ2ѣ Fko㕤қVf9"M(yЄ'y>IŞ,g> 1,m~NT>Ξ. g|Z٫tϜޛng$jĴLoN$y@ח0w ^~mC21&?O yhS6~Of(~ioFȀ5߄ vdԾC" `feD tUܿ]Ғ? Wwr4A$)i2>~ 4s1:l 8r}O+ pAϾwHb1!:OZL k|9Rzq|cֻQCr,`V8n(|x'G1{X ѻ|kL wo|BU}LNk<7ҁ,k.a9c^Qit?G_Ğ7&^)'w^" K s/WV.x% ME&:F6yOtKz9 9QWWoƥ)1SL}%.ua!> EO`!Du^{46&Lݭ:V,?[0]Ốڭ3.1#f ÀSDE8@}8XJ?o\UOB p.GIlX:tBi"Ā'I~ *tƼ+}s2 ?#O ĥV:] ɳ!r:`&~ElE.ugTMl 2x <Þ:W=&PG |uj)gO8C)aG =S&)Gric07nI 3`I6mB!ccHL 'Rh͊ tB+PxG1qтK}PK i%]1ֶQr hXr%8N"=Halu.>Vnzgĥ(]M.HmwA;$2Jenj .컼 "π䅉D;@#^mn0KI ,d" Y)|)Y-ߦ ,W:{ [?DMm s!KPvh9%Y7e-ZoC Jd5O^hJ H; ҏ^Wo(V*~3)C};vNC4Udr)PjJ`C%giV؊aHWg n"JG?j%siV!(xz~Q7>X!2ʬy\Eceqg| oaůɑ 2t#'>Qo`1!9-]/¦~G; e]`wUi;۟3el EƠ[S}Zf#6dIRH"Iȑ.6p9 B>NX:"z$(:X82sk7xH1ExqzpGrQ!aIfLfPTU'*Sq0;:,6&o`/3[,nn'$dB]O.zB h]r] ΀FX]o&BcKiE0Qp^Fewg?~1 2uxӐ]3fmB -\0-i )n*S.hؘ?dle*Cf͖9A qӂFݔz$vp(4˵ ,0yP&6o/Kh s$ȩO(*Hv.ertdĿ~2] A'IK#\cR̶a/pʑֶHݔyD?=`7*.x1,9ǔڝZ rb3?LÚ?G~igrrPZRU3Ljz*ÖVY,5q;N=AJ35-{pȩ.nͯ@͗Y-Sbw6je&s}j uN~A$i`42B]D184>G0Y3Q^p=c5)q[BDUf6 ԥƑ %e>gc;L4ߍeR`t9 jkN 18!Hx73nMA0_pq?D3 ,X@Qs2-Kҿd fvg#HX!bl|N൞90(̛4;2m6)٨涾oi@dwHʂפK(3ԗכύCNNH8o 3h-G^%6`}'B{*}H=ӆԴ?ǼmfЁT )acўU]kcQ࠼?֐245 B"0.Lm\\Z=AԐҭ[A!M|)W2c0eq{&=jĘ%)+T'@*X;ޙv0W^+F<;F]Q]J %1;^NfUiA?i(ki7{GbxVLC]:٫T*DO La}c(te" 6L*؏CQ )}HmKgmڢ; y=pZq A BzR>RtLN6h+_BtΪkXh6DVJ i(" 1e,Nb_^"b.՜4m]y > $F9PٲҔ H8jN3x%jv`,PaQ`LQ*$V_X=5S:/|-= B@Qevn?-~n0j>" CBz}o ^boc *FRjۙ֬*u`5*##;@e2#OTU?go4FaTI2|e$BD:w#b)rZ_/hD`&j E؂_x,*dnVT'Q|wm]m%@65'JC#"<%Tb,֡G> |ae"Yyҽ*NmXmtz~Pe9 m{~/"l +U|~٢*!f6wSH2I A6cg~yφX4zF|HHBQ/h@yV(f5oxm?5ve{_{NI T F.K r YB\tP9,蕅ᨧQSd:È&Ha@Ts< ȨtLvRSњ9!R^g-6j˜VO|hNgiڦYrq=jI/ݽR~Qxc*eHWTOmx$ȷQ][T4TqFeJK8k@>m jU%F@ fX2KQM1iGE9}?  7&_\dU( sJU؈ƞXM;1ȇi*R'@ϣJFfu w?SlµgsWчQח/Z0]Lnvjd 5ࠌrMBRХ.$<IupF.`>mKίevPAr3C.J.AG#0dTȧC UTb2y+X`9f=QIGV*}}z~%@\!tTF)U> r̘; @"4NAp!`9Ir_~q,DTh6wKZs,rփ jssPL汞R6V4mo)̎44(*r*Dc6l T v)* w0PgeSW9/˾(K,P,5ҠrC%ʹ@@ %ovvs[=; s!-7Q#W Lq8P*rdEu"fFu'¹%2A+(?Bt *Bg,]dXP͞pE)*\e-؊#LeBi N'Loژ v kԠȟYo)w; cjF[XorOBB́hq>;逪%PH݁etiꖤkƇ)Vf`ay@(8R@ ":cJ;fUx/s!)B]EecP%E4M;dI~h)z/eI)u$;lFȇ k ڬ,U%\Zu;Z ȉs @jQo3A H".ddH@[ѐwYY!RupF.woP>:fF;R``CdPP[EU*r^f <}Xj3C7?`G߆CO0f'@*l?8ʫiiC Ȼ 8W]%BIFwCZ" JqQޮzt3 OM_'mH2P1{',9Q~Ct0T %p;2LfG<<{x>*m#jhJF5=A`C ![sͪz($LSc&ycfY&2%^R*FG0> MaK23C<- R2б/"}O"GJI7I1] WCu8XhlZa8ȨYO f1ZG4Y,ʒi%` _)^!9}+.3L:6*r`! CS!X==62C(z 5|АW?yF3Dь5 K_TAi8Mm4䱹 /)XS[u>^XS3A'>48Y8dTJ/@j632zF!fI(cNjj!:=4ZN >|G4CEL uYZ^豿6_6qYoutS~=k<,[eY-KW NGP:q^e(õ-Qnt@/Uim0$:e[qԲK2gR6VdgD?3|z;u Y~Л]WE 3>mCܦK,mg葹'kj clp2}9,el她B7% $4c4ܥ!N 7a:lE.qҜ)&'x3J ?ԬI$AWԪfa ,=5$ʼnT5#Kd̔ώbq:dH ϪW Q$,=&6Žx'|3K Xb#.UQv_\RlV?m 0/QKF8Rq%GN@cZ}#iP̀ T=T7E 0m z )t(MXn\m" DHmn;(EjƐvuLfl2AqE88,+ =hj,D.ƥxc ) r}5I EhB)`a4dn~6\H*X%\IOZkS8Vr_K/\"@^B(o֗FrЄb 7+("/ϼ٢W#g$/C-t=v{EЯ;Tu/7,F]#ȲB"Inm?}}/ v|S!zo*re 3c2"T '="m,޸ (h [ 0@:ivh3s cx`ءAAqyǰ$3`L jk? z^y+) hMWj=ؤJKW3on7vA:uK8F3k7Y*\:MJT%.3.bAXֶ#} ƴ?;PFx7W"ݒ8&~K~l 4|upr c" @K ˽+˞[0,ŠcUM!&97$sNޖK+ gpIb9\ՃN%脡)ЧVhWn1.ے~YrQ\F̡a̮dJP f?PJLjA!d~Dr2iN]>3!O;suAR5(WBa߳aN깔0(7mMfj//DP9lPBX[5vW F՘ 'c@\34Fg-&wtCKyTpn.dz@fuZGf|ZVF23Na2]1y%} ׀i<9d `(["nK+diAb^Eց y64C1Oƒ6 m_T>JMb-֊y`nз-2H{6Y H ŅN}9)wjP^q6-aNW KB.yuh U͘bQ.ysdfߚ[Pg Mq,<1gE*O}?fZF6upmAyPڔpN 4z\{S礍ueB+mqg..Gاp ؠt꘶R+BNۉ}kumXE˥س.ͧ> b09X-`=c).^L8=LqmD$!ۈJdDn)k. %xw]bU*UxEG_EobYMvVuDuJȊ)FB (=v6"YE19Թ"Z^[wLrYĵq&B@TjFbp<1itE&;'+ xgBfb`DmPAHY#܇̥DXrȎ4'4gQB_JHQysHN} )2޳5zKJoQJ(ڙAaeH4$W .p0V (ZR4XU[:7͈M0d8S!%`X  եŽ. .9 ͩa+*@{3IilNuuCPW u*:-EVR !cܣjhc c |nġ^T` OlF$&(tP2SP kHA( d3<9{N{Bm}ˬaSxʱ be+I7RTnЍiCzΚF!WAȇF&8@rBW}*aFI8T lېΰ*+{;#QPvfcT$KsJ~Eo0bA]~+0{=.N@#e;U/aj:ٙ*Vfc [{`#ԙz~s8J;M=_$!B-{%ݲ'k#۠ܖS?u⼍ziwpDEZhjWHh0#J!a4vv mSiU Tg%WPd\9rJVbY̗uey& H3 c#94Vn+?Ѹ< bpTYIJ{urzh.%$RBz`\[S RFBBjdx`t TeR0b3!gI~(%HH] ΌHYvn_gw"DwL(=46b# I{ Cap묤CтV$(z0|% (1}Y)=}UW++ͱJrѐU JU&ҧ 3ST\a8n8aqgowY2` VZDr$qH8cv}_8 7 1'{n\IN VXV 23(;]]m`C,Zt16R"7dV}{0Fyxȡx/eя=RPKKra ۑYntb^ M' #l"-LL@ Hl(V|=! 9vk c_TU͒X=a_8ReRZ%ÃfNNfbow6BMWCuXʨϺ*YwN @ Auh̐ŽJuL^IxoL3+p^q̥BD'D?nY"xN,4x8+p-(AZv/{r 5=wN}a]%{(1-erF; c 3$ ˱Mtgsss?~?+L*AMh PcM#^?&>m Z:Gբ蒇2qY'i(4MJJ6I%2i3o6!{* @B'~X*ر+2KclFcGs -Aw#I;GSID$|mz!ʝkB~Z}ԅr; ]u&]XcRWz(JO e@(dc)7@6d`HҘ7ȶ'lJbnT\pհȰvf0$ (2=ݎUׁHaȬ}dh4"R*͜|:%ۋ^?2dhp'W}F3s K0bQ-3YTo^?*seTaY0"f/}z)L !Z{{ڄ )` E̦a-* FVf-'g0nDF>-h(F']:"AԳwȐD*O`uGӫcs#A; / ̀#|lCд 5GəF o4s߼Gk*>7q]=fT3 v${dm APn?lq*.Yg[5B=0"mi+U\5^ T/ 3֝[,$CB 4@ n={c!.Ϻu3wdB&َtOK,Ffl'dCN"pH 8Dx';,O '+XV"UDbg*1xaUY_B Svj@<x؂Qa@]ds e3#, ,n]Q%+TR6^*0{VR 3WV?O$xcB[ԀDC Tbc+sl\L\ Ps'pt?l^$Cbjhrp[0G*eq|m{{ yN3='ehmzja 1_CEJsjͻUնt-.>v|Mj;'ɽwKi7\f08XV]6gQȤ,ݎ( HMc3]z=wLQ,ߟ7u]B9)5%i({5d̏J8|lӆel|f~B|}zn2koB ΞAԬqΜu{7!9j֮Ym/RzwQg& p2D ϳSM0vXZZS& 8؉55K_95ִ7b9ۋ2}hNRfF<WsȮ|֛fn[[f6,~[0zY?Bz,L6BW'"P9LrB'd]F޴{K7^ > r(uI8A9|}F,֤x.hL\17!zNpuin湜~=/0k'H1M2KH0XPC3]F3m'QT/X@􋖢pMG1y;>5WdD|j zk2%r݆=7W>ދZ0xJӇ7KytF,Vl-*O1Cu\UXh4N \[*C"z;>h=υ"-Oa4+7Ee \7EC3Ǩ[135\^#{;p{9VY亡vtȇ+ ,Io?gW$ks*f-fCW.H @tT11E6CIn5y2 z!ľ\QG=wǻ\|OU i3F2ѧW/{òFp㤙 {vbt7!q*t1g$mV4Fӱ*LOfHZɞcSfjŲP*־ɳ!U:z4≒<ћ;M\+^ߔTaU7u&\tzdnUzrΗPg>iuiB٧]!\sNO٤ Q+f]ORs ɇj&FѮr07k1j%D/gW{;)*NJ%+^P6kkpU[|?e&{3vt-#eo_j H- wHK8; na~=_vT[:uTe)8l;CzpdzؚgFhOFQ+XT0A„'qRF}T fI+垍Y,Cdm-smXrPtg.I+)QGڲ*pG:ŕ͚`j59zgGb`E3"e u@O;EC8 #PX] J&ZgNU&j~b\Hz,I4OT)= .qv~Au ,j IӴ>z /]F6-1%++ yIˊl1v11Q 8F_V?㺺8h5{X86n緛P FZ:}r/N1.6PU޸D\\jܾqEbV[9:;m9yWq'DjjI '=m $KLi36<èwu[z X)CURG&ބTWήk65\$R{c(t⼭M< Bz }<Ҽm*Q@߶Y'{&r{B1[8/e2jUTưW}m 'Lcee37 mB;jc͒wJȝ;}e1.oT~K>ArfP.LH 6n9::KʟAoi`=* el̘4f~=0<?Y皛L<7EC-NN>(wKLvD7 xiF((5<Eqn˙ɖ |7~2O7;?*H~ <)1,5{M0OIt NDWŪ oU*1,q;){Xj W*iLG[ 7h[ ) 2ffE͢9Uajc/ַY=QuN[娖l(+;n lUm`ݲGvEuY>lױ,YcˮB\%J<#CmX%0jŷ͖W4i(-R&0q'\a",``#`m^Oz`WeE,{~U7rm̪0Ąx\!4fcO[+ >~fIeGEY~D1MV8rlS?cJEC5:T~zC hN&a#7~ y30RE:A7j}z`sq߈1:J:ޠYcSCnV{n[K(6-Qp w)禛=a]\FҬ܊iG{协YӅ@ٲ#3;rrB3K6;ܽ5cpem{Uv^d2a|ʊb#X ۴O8{Qbz*:Me\,&ap{IBVP]U"2 3/&8̒(S`>uI( 4^>a~'6X793-F2eVS>hw~mϏ0pFl&LJ?Zox3qֿ|s%Εޜ+M:^!؜E NJs"S㝕3)_[)zAh,9*ʹO|OJJ?ZvroM-cg)ʟ {D_" OWS*3~4@ų* bl2k۝"~Mħ.⍲D|"7⻈r5􊛨%fyzX[K¬TJ)}zp_uw]Lr/U}Qgfu#suL4\JuT捞qy,pFEDRiGDk 8!$?B"=$R<"ż[+_Ͻz؟Ǝo;g$ "k%á_~"O}ۻoBy8 mKC@[>MYtʛ0#6'GxJN`bKCLLJQo%[`˂0r4g N,x&]yYJё煿+~diyyJ"pΑU^'J̱SԒf kZ{ul{Ypn0_cҧk L[0F $IFA kQDt652h\pXȞc' SVz`@4.+ee inq{[Ȭgm{Fj ]Hj6L\+%" (wy4V[gsb6m'o۱߿`,Ƴ@Qgrhr1Ǻ( ⁍aMڶ,&k`V1q\m{ز.92UEu`lj4?{c<\ _ϻ0M>lUCZq:qjϣOq+Kecv2z;>IOk8di ֨FO(X]gZq{/=Y%,&?0opäi?TqCρ1* [:U8`H9 t*F ETXm^e C[砟VNFy[By_~sUAimУκ/SZn>c~gIA /w?|v@e5HO )کoڄ}q Wޗ}9.aIW0w|X3ڜP6pBON)CnRcolH7k(?QK|cq㌶6y fQ慲jLflWXmMʶwi?Wuҭ|<t3bQfҜeF9U2;hoeLsRH[RP$=.S7(mE'2-0sFejTi>هbgʶ9;x#B~ԸVrn)^⮰SkFc𙲩`SKMv*\T; 8hN9Bǽa#Jkm/v_S9%՟LQo%畧ON~1樦gN)d,BjwyWߛ_g~w{8ˑq7bGf^4]&˦d!9(=0U]?9;̢:)gEmxiOVڦ:n[7Ni>h&6#wL~XhWm}M 2gMD3SmgVLصH)/s۫nD=I3HwqFgWvÜ} ]ۺrYO]ClkMc96>U'? ;=YiD'=7; -Sk^ncE@q@I;5i |}Ɍm1Lo)R^DkmNL+Zqrv0]ÌCB$EsXooz7ֲ/z4vquҶqF{z{\ xRfj.y=>P\/.yIQbWNYsɆ?0g07|禙<-ٖF;vX.Ze}6hje"m4%7K|3r{4x6g1O4.籝Ӹ\sԢ<}" 8e3盦 Ѷq!L?r }vyu8U4lV4v+Q3PRX]EMZkpZ  x{nPWV՚d%v@%ܑ7%zc?+R++& e)5j<'b-2EK& ԉڝ哃 qAFFuj|)Rq :0C;@ށD A)nx,₊lZN#R2"T4t/qx@0.roB ȯ-"':ހoXWe.9Bu}=^<?GH/ȷZA ֞sjFbԐ׎B_ RPnTʈ7tاA5~,CU sԶpo+8^|Hq YjE)-V 8*D!6&O=ZJuBKod~$0%{.[a:D03C .FϡS>*\XZڃQ*@+lB{Ym/m<{8 '| 3`9EE9',h".Ar4äBA"H"{7Jy2T4#4g X\GC*tfq57ܴDKKpሢ-IBıhs'ho`,UÊGJQz Ip "Wԏ,5P̓`]hًF7@\" 7Hը>n#ryAlg HO!zɗɎv_bO*$c3F;$WEA"l5؉þC~;7]ERY்*W]dPxnr\Ȫ.y?8BkoTRT W0BRr eG1 GgUY:ߔL F%'=ae>Q.% N2:&k߮{&^D# .Kts3\wzve-lE[Iəޫ+A`7=!R>\2 54r_Up9u&.Z@r'|N[cdh61 #¸_2ubY8"1A-Z#bZCE o=3{x ; A =E[1oǷm3; MbHya}V2kV$vXq:eu;l-;Re[eBkp^58+@~gA + sk:ùIT HyrՊV+靅hMe+ޚ '>h 'FߟJRN(["B0xM|Oː5r#M4u%~0 8J<Q>AChW 4aF{X _*\!8h5+Fu@aN [-,TBƉbC?ww *jxu2Vqȉyozh hG]^f~O)r%sNKw|}S.v,#ɂUIp&0yrD^_ؚ;llCUmGj>ײ2~}<hpuqK%T,wX[/* ,?Z+jכԹ`Fd$\y cJ1?@ 2RZ_r#p̓Uw9?vVbs:e}ʥ[Mềgdzq bpBI#{M^&Z)ġCK+ŌPߍstu_J.|.da\JX:ᶁ^2kL9ӫCv9;Q7|ky?åŚ&=Bx#bл~k '}=5vVOth +{e %7MBvamabPT Zdlnt?c=]iQ{hM 2NKY"OI32؋ZM UŌ󱎻P/ZJ:D DUlH{ 'k$`/hK~dp =N\k _nsպxW2쬉 7m܋A,^`cvnD&® yYSE>.N6†#sx'aXv$I"!h AaJlOF;$v.ѷgRA$xΜɛrRn 4f"aRi7##+S n7p-d3-#Ǵ7<]>x%p]ыO9aN6{fȀCx#WlG9DS5尭>8}V_GBtJ;(A= <] 11^_BE܊]ĈN~Y7kvsI!'D<4,q.†zUM-i~s<)R H@I ^m>+C$1`zQM#Qkn/*L7<6lNL\(%dC(QH2>'h?8@'R߃Fl!Qq :")s ZyMï1lSN߂ *{}oC\ P`UC:s}W \I JF޿[Q`uEmVAIEn ;PWʡ+~'Fv+EZ(̚Ga+>_;V>Z*e_I@*UUBJkCO 7;haU 慤d[)[F\C ZDlcNLIv@V aN1'/R:K9ʾ9;U,q7YFJA_@J u X񷋉I;]%.8drjXvà{7ebvA9e 3l7,އhNх{6tE!J4eOug`&_&ɨ!z끟kzG>Қ&Q!QsX\юe& vRU5v P.yfe?.03p>N9%$7#gfX-BF  ;-#I;0zF2ɽyc1#EqKYF '4[FmgV8cqR,/,7G܆x>"e|VwT촆HZMy|10^sܴ (zk0 MBIa f vWݾY YC =;WմcP•%z=Բp&KHM']?EN(RC][0ze+('nց[=adcb}jAX{s7kh\` 1<&W sIE0{*#>Scv^z: &H(B6`@:뗎aN.Sb_>ԝv2d ͯ#낳JU֬bq`h{m Mg-'dӽ`-8-bT;۰U,ʨkonmwk8Ak<en̼TCr:s&{:9ձA @zY} Ҭ0uO%cUYK:OpfLĚ)`1)_٨>H(b(k$]^?+i2j.ڜ_L.RTmr7Z4)X>u[ CLlu-y]LcH}OVz=7}V;C'ۋ! yX @@+QɽRFBuҗjWwi4ѣFe& d@R\HԥȘ3RoJ8>)KYnfnPns$8OM36J`㾷J0 tIi13B9m Wgp7 iQx>bR7'Sᐭ~0!$TC_"_8ty~thTVI]5e)$_>5oj.W2 ƃAqu=z(E- ] [\jGT.mQy5[*RI4˨#4JߖKC`^_9gAiL+*7H\`$zR*-sŵX̺enG=/|QaF~5Qqwj *ch"}2oh9^L6r4suw-{ sl} @ a__Z(fN SAڸ)ǚ2`gXJeY(RmVsLZPSwX{SkM bs|Ŕ^h]2:!<Y2(Źv;5f29L.es1|KM(K|`U7/5FTY/toxt)6e_ܘ ; PXV2w8#'ث'ݬoҮ:K*w=* Æ Rvڒ7ADdmV YfiqfGov>p{ Beҏ7_D6?P^o!t>5GKUfW8?XAML\!bJ y&tm:X_=)?]YMآӗ6tԶȒ)7锟ASW#v~4L}]vʏy'_#훾-TLn);.֭M JG qȁ/M7ycֵ7w۪1;ӡ ߇kTÃks,<ج5kS2s R<(ml~(~S|2yW϶)],P`²Wǂ",Ҿ7 q]>*ӞM5evo׀ΌW`k[ &zÜ!]tH'oGZG(Iezc^d !fΖI9gn UJ2E)_rٕZ􅴠NgL 00_l\7L镥m \MT7sj1mK0%d)E[+qӝFG4 82Fc ML}Jy*b]HZ#Uh8dvZ m=5-hEpai)VeN엥QEPi\ ;%#Y`aPsaSzPe`ģk)MmR{f]fH?R mZ;u^Ao!BaX Z%nĐщB'襇xLҭԶo@W.%%.X NA-i @b/+1#nc?Œ Ыڠ)uqR-+) K|`UBC]yз ;~=eV*Lnb_SP(H.bBsʈy(F ö +[v!ыFQ2M^5b沝Xyi)ƒIǘaH؋4ݟ t:d}Cq1V*@K3 ׹!dι0}!5! ]oJ[wKXE!w3$h`vPɦWOv-E鼛*e=UI,}e&eFoO"4ً2- 5жLS@81uՇQaq9R a;F5 )nr9)GXL.IѲ}S 'jtW\<?FgIjwcTV5Uq5B`fO}l#'jH?aaQ,i4m,ʚUu苴SLU",,cxdmH',,:ZZrc خlQlP/E*nR 2ٺz_ӛn(fNo=tFdLJUEП߿5S,m gRƲAJcfNgF0G-tS(NXMmYhBox\&-u*}biNzwΞ7A U֣"ݒ(]#n-^5L|c&!^&St3>dֶ@myXeF0Rz/(9cIᕡarbLd\bS \"B~*ϷπZYϪ>R_W[%o^L^HhZRTfߏ an;+/A( vM vc0]`ۡ*[5Tllr Es*nHў 1:߷?GI_V.<1?0C^f.,r֍yjtZzH(X=Y{n\=ۙ¡T|q>8zp㢩8m 1]aLZ+H5P /+~.uٳH:6LQm z?@ !2 [a՗90~rCrx]RaCR5y4wd)(DP9y1MUVyh&,FG^,Yj%^\iՅZ80|eu~E/Uz9E-_YcXE?C}TwD^3H(àR :bX+膢aP2&6fK |~ň V"|OԶۛ_šd:TqU顗6J dԬO>&+FMpniPi$l_# 'Y'^5XvSL&/ _Bbx݇:؇9L21:%BA *"dYKTSϢ5@ kX"@ٺB1qq?ss#<<$NPpM(r4!N}>碙DE"fݐD/j^.-^AtфIѾ5c-fgj~B&(OROӉI0l7`F' ț ]u[!*Iƒoe%Dj"%֡Z@ʶXsQ(ʕ:b}JeTz⬍|0|X/>lR`&(VAmQ,.ԑ& %a܇2I-M2?vJG 0!d" Ths@70;j%IZ h RB)U DS(7cȌ,։]ذ-NKʌ"nM] UPjVֆ$krX S7V'lT%mdD5`0չXh K ^Y۷*{}16=_J͙TlwÚoř5 sN0bk0|,ZT(44[NQPWmQ4XfwJ\r~gO<=Gn4N՜H'7$%EY !m1eGgd䪶}CkaNav ̎5{d@y~%CJxHPZ(azhM=xj% HQ7Rv#uKRUA/D`)(% i:> ubp Tx_SeYt.XO)44 x^İޥZ9`^M2S CTs`[nVR d|}F֓fU̕R)b)T >gsl !'7VӐ]4K9J5O@) 5T cc3"M)B׋'B fmlhj0j9){9n%ܪcuygFL{}AWfm*09_ R( f}MD'Ruf+"K6MŰ }ѼKof*heۨ;WM1˹rEg{%Z;@c&]r1 hF^Ep尯K~)u sm.̋㵍*hɪ찙g}){e2o|I9n&C?9-}ΘxMфX=9bx bѶҢmL=%ZhpC.b>vH]CK+V ,}ir~ ز̎}&}߿&s PhP #iɫAz@b[F P"YoG%U~6d n,׃zo]}_҄ڡ eG8SAoWpM%'-ژeҎA7 ~YT6)%}=z ~-"3bO?GMJR(85z#ET-Q U<{}= 5 w5q:0Ar C#HFkjԃ@XU9R݆-ÛEy7_蕂ћmNH4ZX %1(fz ~5 YpѱA] h2o r |+v!.9U4a~OG hwo؂ya 2/G:"ːm)f)PZ3Ą|IH*+IǦAX۶}a\@6ҋU YuZEq۟Cv_~ވbrvWMde( ٌҎޔ uȩV9WKvI!i_)9ᘔ^z)8S&6ؔ"$m\Q.$|3`/7ZB,[lt+n^`U 9d[V[i(_^Չ!^,yQ5>U5FBUP8d:# 8j[)y"4$(v.bHr |mMƪT4jA<9}Akuc7 )t(ssFeb40=wΓM33(ԭK }^n4H+%(1AF61s6 l~Mid.)ԒLQ 9xeqmlMzU]3cއ̳FI.Aս3v樽~u4!rÕjI(KQm~.!~n;Z{~[桿Ƃw1|*?~ *@+ĨDF8&)NIVk9GWQ=Ȁ!ӋI:YF'{WiyN}PCpZW&h#78j Co} Լ`*Yv(e52\oMQ8};&! zt7U =vQݔ^ I(A|=w bUjq(̊#fEs-zhR'6[LsRt.UUGmPxKCYmjQ_>JS>ΕA/>'k; -7d)YRb4 ٦j]k{nj,hjxi@\?XQqV*S>VEb~[Ah=#I~cL-%(M^vj4'8.2lz; }ǚ9wPU3M79>jZsT埾E=Lad2qpoߋZ%e=?1L`SA)}BAc z!>gE2M =']ιTndo(Wx<=*u(sjimvyޔ vr}{q}=to9F8e⊍Ljb~my'K)3 mb:(Zu7sAQl۝??ǘ)/<+E ӮC_:ktzB\bأٿK h^>B҂1H)ѲRJc=h1v?U%pd:c߿g.GW,_FCӖOçW{|F(^OO̓ӫ=y>=MOէ_~1yu {}Uf5"=F~ 0ob ’P8/@ jՓ9 EYꊋַ!V,}r+mYQL<SٙgK>ģ1^%nZ1GUg%qAj<\[&.1dGވwFAg&(("3V3{?z?NMydˀX;?|s:?892WK[RUXcQ JaS~(/+9-y|i2$,$Tw[;@E-" f34~h"sO6Yhr Z5Y>s*殇5Xz2~f:mQXۻL[+HM5^B)1{ `RlpLŸ-bk9nM/)~mZ+p{P*\kqZx0{ [($0{ѿv=V` j~V1X13Rn}yg=}*wu G5}/gbL< p axjI3w"vZiQ4ė`̉gYP e2<-,&UkyoA}QhT=`8'tOGk]-‡!vڨl?B&B(DܹG̶',e!Iû?B_&"+i?9O3)| b>:?áOAScPkȷb,*μxV Y^T/ #7A9&VGrDܪ]Dt6/9jaBJn'UA^ƠP$QrHP<*͙K\e%ye9͐Zg!o3ϽszpgH=q K 㿇>> iR.O|,䙝(5Gi~,aAB{X#e\qrFmSbNcp !/NsOnL)imzLOV]2Z~MqZyy'2Qnm?Z󬫅a/.PdXR??&sc$L3D_48Sw.&-e)S ʉ܉\U"-1xͱIg>$).P<.!<'L#@*OezX?.qΘqceF~?ߟMu^CFEucv'zf`fnwe 4[ɻ͜q~WgncPe/t7*x/$co08>.zUc*p0_RXy<<,Wjg M.<"u)/4wEm nZL\P BI}+ý/L5U6MkuTQJ arm,t9 b@*qB.3 P~,΁u1$ۨ9%Vŕyu0ӊ?WCwgr'9GD1Mlq0,.fQmaӨCJxU(Lji5k`͟_ ^ućQ[|{3cg6 ^owūZ?gk-#jp|5Qw`iyms W믹Hj>:'7$>G jaIʞkQPG[z$-m˴ffg&;Ê+)bǴOd6•LR۸Is{ϛ]3KHH֛DD틩}ePf͢[b' \-dh{(l=m[~""P/QoO\,B:a:(=ykZxX6wW3Yxx G#ܡUˏ5*-(o28K@0l^)lV^H]5>ô󾐈gXc)qc$67k۔ )֪>,KhЮ Q_s9 ֒v>s:xi 6 ?è1kv^-Z6% QֱE~pk_l.o#(Kə:Jr2S[n dso9=0@WU"/zZ; 4/b:}^!Q&+}[Wl{l0O߇e:{tx%}W]hilibUlsOܳ*4 O&^c&ns5Yfκ^o[ppZg|YMu'c\v(L=$1XZJވB{:!zb.F,'3TN=(ök K}Iy7;r'nM]PL`1A.ڽeQެ۞CCWVfǥ[,y_-; OL6Ӯ8 "r˾dzߏ՜l;{lQ Fڧ$@eb/YIfg|Yٙs7AQhhC'AWȍޓ`lwW!{Ac x{W/Vmgk `4*H:L>4bC}6" J pDB wN2NJe슈)^u!Xŀ Ћbfƚ;6!De(Q2̬5#<ʁ%@ZTt9~n)P4Ŕ>*PnAXQ#c4.`i]2\\>?/=E(C׸s_ oy|\00yOHF0{FLJ.F̰G֥ q1q \J\e&5EV{v$*6•VD>\a?jnjXsfF&jǯ}oQB^ .;Kup7)!eQ0s!%{2riֲEfǦES(;eu64>\k9K4mH+sH XH4eǰb<ȮyU"ʖ:n*-4aUN}` s1Pn3T> հR' #w-iڮ[S4|r:.v))O6{fנ.V$>~.oAX: ;6&p/+IkmdX*U6lR'tQDll84N3jֺ";_:Tt*L#\SY%W!X%NXKne*&k<w unȺF`IȘVPvŚu}w).Uqè%E0L*-ۙ $eeYv6!~RNU&B&. 봦ﱖNK&WM<y)ݡwO 5cЧ|:]N3);^2_I.*.m?Dߡ 7Smȱ$@vNcsj[-Ç`lk]\G0=ɔL'YtIs CGn zyI__t;N#࢙8BeըhE-KY6 3y#羯jj0lc׏Q{y!` ;0FDFLfŐJ+œVZ*VWr o.`PxȓQ]\T}=iaio$hn33 IbEbS}14[3 2k\jTge>^L(@WYPZ=eэت'4e vgU]qΦ&g>]R21/i8;GגeFa=rՓmԐlšZ$yJ=&,/T,s<)|mV^i)$6 >ڶ7Q/3͏mė8J=C)C mI蚹trs:tKh%UU˒=a l dZTCI<:kжu*u>@*&s,Lj;0ͲLо3%!$N 5,^d5̝Y>Ŏ˿-.SԐFjmjQ؉[H lMO99yc|x=NѬGkjMi$98_>Ē {~*}QY,=ȵТ^c0sQ 'l)T@]+lDٔROM']A2éCU'?Ħ];b|/,L*GFhM҅%/F/YfTDo8gR{1k rap>L?B iqP5ݦ5hB 4Gs1}4zw*bܒ/tsEb uK~;LSǽvov+v+q;xu򾭻4)7EvGon 07sH?c zEcqΊZZ? UZ I[<zҼ~b{<|GrUe_3-=)淰yLcCv-u"FO6eEBym:vcaU.D%dB˕8Sh7k@NLΥz؎?<\J5{v)T-i9!Vѩ R:5tV?^3pu}f8HpFZךr #0CwK שּׂl|Cn{6ڧڪ`Dլ`MwKal JT ]ȃm֙.⽔n̾ߏ'$z,o[ElB]Sw$}[# P1< xQ&uY5ͽy9FLgel}:jF/Dz~[<^ouכoz.-z"y_?1Ua;]lBu&\L^ ,xRR]Ak_+i&b"r@ lr2<*F` gXU#9⍗-A!!.S) ϴdҗ^\/ G|ΕǑrC$Bcw ?Rw Ć!]]*:x+Ki ~E_T2l,J'BP9ȌiR2QL?XR0 G9@rLp7{vAh#ɔ-z'̪q\VRZ :Y3" [#W\[:7-eA1Ie.bYv~uc8 <.^EtKe覨ym;4V ;g˲սDVc7k_Z7#l` 4j~/5gf|p1y_z|WtoR;F^[qEuF ߂4)f zw,([t2gT|1͠x+l^ikWp"!i9[sH?^łi-Cèa|D4[ hQ]?(:(7Ol=h.V JgL K 0дK P sX ';A-\Јo+)4Y0"0* 0i7Ak|Q2#|G-4(VUo Z0G%LmZmtbSoJ1|QF6hq0wB-"(snJ"I;NûP3Wpz2 0^J\S]79H& koY2|TOUD.nPʠV҃A!D?kH*TA7hS̮JJ-򶴵Yl S^#3ưJ]m0+M@1y?m,F}}mix;1@(P@GAa]{@"n>C s>[48*ǒιYu"Nw;$EI&$Rx2D ӑ>׃+2}T 㟑QGb_MY--_.|N`rs2ni/$_a8lOs!ȝ]R3 Wo36˹,"|o8;%D<=qL.ҾwH3Tk^Tm a1 ӄyfcϋ&aW$$1f0##t5I#t K)8a>7WZ96Cq:KAMơ3='/~=_k npEGaԡtt:d@ac&hPYR)ƼM$xe0;,ʗKlϩ=~ (]OsԱ<KmP͇>Tw8?UL%Pj|%0-L=[kpEMNۻW)osN;xN~DMK ]ήK]'i6ǩqM/ <SyG $(ܝ")&-j ˛]};?sͥ$<ړq!Rw:"䅗MCZԀ&}}3n>ܘm9[@WjFܭsAq"4dF5 &c_6@,6vz'Eh Jr/a&50A8 E%zϩ*l=ǁT o-+ $|(WqÈC00:, `&c0@@IPA$pA|K`bZ$NxL3({hAMѡ(-UECP .p ?驀Y QQ?C3a :EEO05֓cE cqhBRpK"B @ ޯ(|ޭe@ Y]I)iXczIpfU6qKHV4 ea|2 |$-+w!SpTg!/Z@jY븴 @ebc @RQɎC ~3wr:ٟufKң ]vpV21-3!/5M .? 7}s@/kOoCg,n"04L) ʩ.KG2|EKasDa@ٕZѭk_@wo skZ;&Wr?ד93$n[rNQJX=C\̜:ľhXI[2",N7-c{dܯ FkDK&&D\?#bO^L?q `ጁH2 $ K2r 4~p#!R,sЍ 5KİYTuZf"Y\zgm!\${`2A+!`G}K_Ȍ!fR^ 9 P H8roHR<.L½{h w@u&vGw Q_YNJzSňn܆ ;&*I\H'Z;Ѱr;1M⛙3P\=Rզ49ZY:-@Cr?,Sp)"sE_mr:LILBWi )(߁gAzqJ/*aGuF}T NX2JB`5xz̋1-E.@Ɠ>כ3 :k'"G\VㄠڧT"c3kMv1ڒR_:1\@7-Kn"SxIC3qk)0t9uP(=+TRKjbɩ)"S9%##{΋Aup22@g),/ZeN(^d&(IJ:3ZE5.7~E.ߕMA?El\>nmeڃX(MI{ٗsm6JpCB(w:/5P }tEp{o S #RW ob , !Ed/-wh>7Y1}^_zɥ!=rrԠ#%&(4q{*t!'"I})hx8h(|XDFku]hk85DL?h_MCC6 n]˨= $C3(8NgPRV"W$ILb^/:|[2i Ղr]$2 ` 4"?vpGE}Kh?XӠ1#.@>vskbˤ&|"w2eމ˱s_Jӥ 屌sΧBA۴BKa #C$3pS(I|ޚT{:VaY.25''LD6yȪ3sw>3ߛ̊v(Ÿlנ"h][ɑalOLGwYUZ 3k% ۴O g͋&># UH}[hb!پshc1:,TpKK+KDY}Z↭Z1KV@CG/F5sB=MK+ ,y1u wñ4GYBnVFxM8C$‰VQ(`yN4Aʝv?+o/V3%ϓ|ʶCs]mBQ ŰZ Xxx*v8@;;`Eh;v9yvf&[uA%^B,řVsg䁢V+?5kV-೪7% Ɉ=..$ bi\zZ V/U@PC_;Geb2dF1t A{DOkv[]ܛ Vѡ" Jl, }L=}O1*ü2P-(c@Fh JW vErψ:MykSCm`bC51G4Ϣo}gP5xn0,:.D=HL^0G^셩}؏2.$3~q^Hu &[J!m%:[ݣ"e> $=gD"qdzNЄ{ycuo tBx[%^+y#"+ &oЦ<"o1`A)`tr{δ1s1 #c z.D<5+Nlnj>h+Z(# e/f&u^Ē s^;=o`2ɱ<"J jHgdH%sL48kj`Be P\pN!|{ߌȭn#nP?/;d$7;۷K֡:Դ FsRF*<S-y_27.kZ kAZ m}Nu79* @.\7y,qdHa6e7Q<P#QC >,NQtFaBB1}՜*O/{m_2P b~]ZҲ^+p/-Z@v0}vJoVV_{ ?W =JXv 2 WфWDBO'ϒp !iw(_~=BLjJq…b;FK+;F-lqAǨ\f,PK?h>89@^wdܚl.Ԡ'H ЙŵYxˮӝg tIn0g8b(Dk> _(Cs s9}X4_ b*~@a*O7:82ptyBwA'sZrTɿguUd&ASPdu$>apA2ϵ3ḑ1*/3\tmC(;&ti/@k\&:_8#sjy5* '㹐eUם/ĞnDf'QX󾖜zP. e=i(Sh3J3yJէTk1To͒ϬN%͠ဧZ$># GEPh;zkUƯnAp{09`yOTx'z"8heX q2mk^4RF]7 0SboGY̛TQ^[/x")ӁJUl!XGJP8⺍ݝ0bBdxjLܧz%턪>O$1_\ӭA)i@Y(⶛Y Ӥ1p Dh3Nz_*En68`T5&+kczR_3F߄P}[a ܭUg"-\d V/g8$V"gĄC)5PXtFaskt~%U_$l 0 :m':J? y;LQOCF8  _boy_.76ncb4ˏ1$ .K5>n s'ͧ@؄h@ؽOuZFT]Hx}%Ve?Qy4'/ !_HF4}FDt}]8`4[[Rb&̜jxOR83/~eӸ=t!_]bBћ|P~ bJi!kt\޷y2+PUH7ԴUC@6Gs/Cv;)eۧNߴ<_aMM@ZSu@E}O+Մ]8҈r9{Ϯ5&^$З$IUE/]DpdaBRqrx5K@_RDwyk}ZKZb8 7c "tFat g|` p{;niԒ$E< "-͔f6 LpB;1ISnǚ&4UMrAdR1UbyXa(%jp@#H|fs$ÐdFaȁ*I`ɍ+ i4=+'%d56t|A< UX"ee@vljtέh"QWqH:Å%8RB4͈)vY-")\{uOW4ր"wșCLU&:sօ;\EˋT@kh libw\.5\̏3{^;aUe!>OFGfXd"n^994?IUm9!2i.LsӧϬ,t֨txݔ<5 BQs'ce>< 7 uʐyc2n@:Oh m\:xitTߜRP@ eLʤO4<7t}{uMcIsZGI>L (V}1KdkF.Yg7UO-s|-C..B_nKBdB :/N.7\fO6-uS9{`㕥<ͩOx'l7*5/5.xd8{XC +Đ"LԈ1Uev>ߺ, .E0eaw#B=Y x@Lq$5%ϱ)3E 6{`qwqHuڈ.6 ՋÛh:*N(grxIԮ:ba7(}?|oH.7$)lg_33$7@YYAk<;08˹"9coYZK:7LlRۡ?ԤEk訾jNwH^jl60]k$Ucyw٧[dn^<*x\t-7ݠr{QA+Uv(cBJZNH eY.#aPJ>752$١ 0;hbP .` 9SS)DX pe%BC3(Kï#,Ef}sL P^ JwZ̔ Dx{Hlm^IY[X\6۳o ;5鿎1ZV'Bqh3д艑lNf FArg#uaU}"hݴbhp_TR*/j߇#%Gˤ(*Rd / 2'p=|٥>>K ?7dxK8Y'@W@0('' Z&\% Av浃gyln,n5_B8{! Y x>n&=AUA p~L,cU_%iOvoe`\67#r8::MP aq7T3qz%43ԸPűFy#f؍ʎt-\Vϒ 6g޼R"5F]+%w?h}Ò?͉Ti9݉N,.uaIկDArsVRciXCy|i4BPy}5ALo`t?!{ysZc:_Zg-)"H{ E*BFP]E?@~exAi{eDɲ.pOL -2v <&V]:9xGuǛXJJ{JI['hʣC8+c8ϓk 雭p07ꦫ^08!ڼd` s]mHj;@:iTش*FSCGhO$,:;B^gF%;Yui1Ii!'|ȅ.{ߖ[;>tR伉YeĖvFN@'q)7U择J_i)sxO bқy4&8D%e}qA-2ٹ:T|d@T1r@ ?\J_*nbҜ?vB>t嶏m!<"0iB(cm<t=3L-+P}ƒ/EwͧZZzl}.fҩ=ĢADg(Udr}QSGuXT!8wo^X 8$^ mpNiJ kXr߳6LJ L9䍅Vz" I,P`>ME*hr" P`iv]1ĐSP' 7h }h_[ʹ˽bo4%ΤhwNLkn"!PϔM'<>6oZ̈́S** C_~NG~O?'R?32+}_[̈́:ƔPFٕT$@Zz²^ 8Y "T6y7\Lmu92 4df z=ORdB $9j ->v\pm5+BDi-' x<%? 1Og89 P`!6ϵ?/>6oZ,4O&:"f1#t #giO)Ar+c( 8E@Oa8{uz;Dbշvf 8sYá+ŨӁࣙa-LcR|l?vD>v#GDͮ\ZUa l󈐸 }j4ϓ BF0AoQgc7k3C U Cc'ن¥SI o^([g>P..u|m5/ @jtBյŭQcfݘNQ'#xqTvf jg(3AӪs};5ANF\sχCXx;Vz0)MEOlh]%hC8HL<\T-Ktp˭ޝWLdžM+Kű 9\B0%gCz?SRڰ KH\o}O]y!  j~ة(kQt:ѳhtWZ90&ӫKg~+\ǭ?;IwSddj}8Ōp":!M8!tCyGt(tA,Cց8ɶɄIӝ:c٭8;pvu8Ssh➀b| zQ'#.@~bQm!Ea3BXoڤ!W_*FdS1N=:3[|:@;Up86 y5:."r_}ͷEPZbwXջm&ߧ%Og3.(!k]91x/^*P_<"!Q [-=>vfz#jgmvKZ sm_VLx]I>,% {?_)!N#@{#_|3Dv'ȏVBgo;uC24@ΐ! e5F&[H{0wsZmvfVo;?+`tl9dƜ-zC#o, ym0u!4]'q|kLT\[kYopO?3$zP?o3lyۗcFhxi3"qRhWp>?WsCR% Vht&énU,g@//C c8ç}Iuյ\K[uJKɟT\taM4`hW_~ D`~#Mrg/w)(3%w !Ҷr.L.4wđ h *0 8CbTO ls\iCa.39-9wOe\~JA6jfGaj!z X%khdxrΔ#ȗW=<"?~k>%)zl,ސqBlr g!yDR~`f+L._)Rm>v4Wn3Ǜy:y<#j wr~CRM 84ؽ?5#oWg?kX ~ұeхkm>ğY {#sϚbޓ~C"C~\tµ;)Fu$7vyZ6vϵ+PxRLqTASDwҢt@g(!Ws04<*j~td3 uYSF1ص+}NkwZenf棼6ϵ@hj^t>O?ʦ̢:R6-lGc~ q[U[kƟ;M\PVx:  @j)>>f$ɼQ#Jn*+([Iқ-պ$V 2^{{h-@;Njn7H=GFEU ҝf: : 0yƲ 3t%F`~mڝ OIX˶t;\)^T{9~rwej$>|:h'YTY+TW`uK:(sz+'~yoƹ#ʈt.kTgJ *&PF,.D P(Q@Fbk}ӽe&N "w9pJ| j]wT yp.3Px_2cOBk}9o]V'}Aikb[4k3dʳcX(" ̓~kk}f纃$Dޖ9a~ek_v  v˜D'thҤY*-pKN p<6ϯ4u绾n A #I_Bɳ\8OE+; _ij9K8fsk}ӌx ,Y|쌮$Q8?gn2rG72zK!¥2ʭ'N׏E2jϱw|| G6oy-F*yKW^VeEQ;{\oԕu$xѳ I\]W# VԚkWC- /-VS|'5k}TO`*4+8\RDDjUd1gg' [5S*etYX$^܏t}f-UTŃ`Va,t>67] e`9) FZ3+ g+Ȟ U.U0ZA arHG%eVpK4m |lNRy' tc<82htޟY57ok&0 63ޕ+(f~ k 4HAK_UWŝ tx>ZJ777s,,mzh!/c y,җϟ qni߉ -Mh<67Lӓ}Bmϩj`(}z|oZpGcX'y;/ˉ11 ? Muf|ZukLLZ#[sZD>|&xމpϥ# Rn[ǁQȠYL(ɷi}~,_:Z):cQai@}y/ϡ a2x.o@|m_cZbeu嗿L ȝ u;#Pgfҝm TZyEa[c|;֫EV#l?%?Lrb^x_:V5 Өuk"%8%y^9DZ@G!tͱh[j?50y VBwœU/>Rtq'r4IR-mD>vDD0!;G 5BW? d[jOO9fQLqoin;V{n4}>>D?ѭtmu!ţ,kSK^} zm LJ>2Z6d{U~dw?,*q>}c;KA\||'D9/#b|~{5uX+_Gf;SV,N+dS\j+vȇ;-5<&Ƌ.Yt?bCW [z\ x?:,E Ӧ/i;_!^HBS uWacDsDz:o!A50ײ;OtQڐ+>{U"S:8.]H+'f2XYAAؗ$0΂(}rWxb1@΁tMKB}~z󜘧ݛhM+Z8c~h}*6DC}@C$}!鳋T>#ԂY1ד(3l1_!{1xsT"֚$pGSKEVftH؎ "D;$c`{^LwpM~>' QTHLEƠ:1NX3<G\d}vjXiLmHRȾJQ\ lY7_!N`}x"U\ q‰ӅdY7,g.èy$8&(#Nݲ~L35jҌe{eD KąJB\2;n;jDGL[,xq e|-סּ %]d2" ʹǯvA H##5++' M7Al@28d^uKfva@_Gzo#'21Oz:Eza@O8e}yy ʔ9E-T.w bYv%HީVuDp߂ұBڐl $sțبteEpQ o5*̾TEΠNPI#ny_%6ѓx^C +\Tf $"K]_[Aw |?}2elYjoBO7,>h;ōXMx2pw (t@C8t ?2/px }tl~fC̙i@L HKGv"tG{9K$DiGy}<_MQ0`-xNs9􆠥.")^l[('"/Q8_+ի D |OۀE2t@!c˦tiΎy6@pYcv}:©Du[|G:M_sf}Ru^`~wFk ҧGyHcb@zAkisjC"(AF$nľ0.+C|kXC:OmP#+`h7T<`=\, :em$VOh2Sɿ"h W%S0\uB΂~>-%F[ NF&|=ÿ'N( B+E*9@Q qm_!<Ahr #6$* ٩èbv]cʪ>Y}G_|;J>VP 2ʲɥ7.X{.Ja DZqYu;,8juyd*-D_5y横'C{G25@j,bsP&{넔c{Ye{!7$?8Ee^k"ĩ%E;E1qgG+VN ͧ!8%C7}:(Pr<oxuXA{9P~w&WR}Ĭ.YzVneXin=ɸK‘.=x!LHBY9) 3 샷~+G0b:6#:N9 #,)p%}jv4.8ƣy-/55I:hrRCG-jP A,: aiq ZPEte7 v<T#y;FyxRa>z*xl#qjG,BmI\Ⱈ=zd8hC!yL0+ngHk^d-`3vK뜻Wxa@Y`6B۝o,X| Jxdˁcfo>'b (G2݅1+]zLI)td{NY>#TD bpK-6G cȜb!{5T8$"jm$Pu4q}r?51(0U jqKr伶?O~fmq‚T2+y=zadt"#>-^!1A+_Gy{aUMiNҞƑ{Cʨ2$x(I8ס!w^$ Ŋ/SxƊd$څņۅ) s2/`4QᘅsɅ8}iڕ1YIβ~jTwpF&{hƻútLiUkǙAF&Ud8m%V n Yq ~KÅ.%)ofDΣIFuBBUAX *jhXLnLc % Dfރn&nwR]-s̽3m8CmQ}Zpl .8>rwjfTܼsg\Y&`a~{Y2|K9;*^m *OY "]kՉ`AICanc0@CܯDJWAzotnWFjsS-;) aWғ4+|pi0Q槊ZVެ@PÎiSp4?{[}G>XC'qF:+JOyxP(CjCQʼn->3f ~>jz &38G(6QK/95?"TEM9?`QOKc;PuVRkPz*,a\% B4f^%DۦQ88uZޡ+{X KC*)7hWKA g6 z÷"V~SimL,#UmZm']ŲTpTq9 z>q"1MqS%M 2 ]6]<6ʈˍ=vKڞ"M_[콸$חVӝYas Q}Nٰ)bu^1 WԆtJQ(/#Ǩ }%_B5~=X!\?ya:Ν6;($>pq.M] X׼ן!qQxUAQ2,bb'Z֘ۦ/ Hޞ!+4`EJC?D|w i:!6Z_GTlLr8shӏ.&%AҸC-K@M(cù"$Pٔ^N&&YHD=T!T#_jХ,>Wt+jMH|Y.;"5"Ȱm4\5S"\E= }2wnm#Цj!/C!Cм_;\}_kf?6 %2ڃ?d3gUf> ȹ$! k g0lCPA*U-8M|s=gU WĀɹzX#6䷨Bꤍ"<xF\]_S ƌ JC^|3 si4^ަ"z?z` 8T`PQj@ar}W8[ېt0_SElq9f}w]{2]L<#)eap€WNpVmI0Dqe  ∁ʡ-PÙ0w°bc1_щS sEU8^>^qY0>M: QpЈ.̶#ACwBC9?73oD{ί9 |Z]ƀ2MC"j8 [$//c RNÜ NtTk4@;ؑ8 Gۥ-$^Nuh"\Bu`gݮQznFo endstream endobj 19 0 obj << /F1 23 0 R >> endobj 20 0 obj << /Length 76962 /Type /XObject /Subtype /Form /Resources << /ExtGState 28 0 R /Shading 29 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xK%M6U o(@ $ŖEisǍY-kG?w|+k+} }V ǯ{?ï3#\Q ~#~2GG6g}Z>CHY{ujgK,K3vۡg?~akSͶ&5"&<ܵb{kջB Ödׯ>l^OGUq#$-"۷V{ƶV+ۆF KlgO@xhg}[Q1 (Rj@Z0'ݚ}ҶæZ!ƣf~[CCskaѰ8Kv1%a/0l`dO?KH3@?~ٿr+v .[/ðvR_v|1-1a'0[,h G{Qڰ8CX Iv8e;mqm37c5` \0}yj@r1Q>g[<`cձ ǂClvBTSJT۟j'YJτEÞ lq "m趁qpw^cy~vǰi8bW?M">C3&62[;k(oúnhm0MLx(хt>Y}^}\~֒E/ ږ=m؁b6/Jb.28anj[= O Fo9Q2k;d|-~gg.߈M'mυaK(F8"Qs㪤mx3<3>x  + ;J58"ӅuM&c6A6 J YhWinwJ5^R[^M}16)sZmSAgks!Ny0x1^f(. 8c&˥ Hۮ>Wo^j<ŒoNOĭϸNF" 9T广 wUؒ ͍-ԴAqA_|nVK5j7U)#ǠpLh؏Jw-T=@tLlr pۻxPۚ[@d*'̦[LUF*n7]f$ o5M瓲/sH.jR8/m=WS,]d|7ys-0_$;GyD]7VQؔ'$_%Nv]rA@JSu@qqtx@~]!"hVHˎtIty6~FL!Q4gTˏh.&-杇KKbƼ!L h3pzN$N{,E4"""dž"f2@?qdJ:4j(b~ u%! H6aՌ+q m'f*?.$TJMI 74PP1.TgΌ" Za)S"5}|n;5]`Q C%1Puo" *e .04eŋmqõ8lxv wLa1raP[ U#㸞|fTc"3/- cXUV%"¹~uoϭ &/M \"G{y((\O>۠]#uJt q Xz/ֵ )aʵw]lm Í9԰^rzp =Fg v`*{د[DZ[ա(Q4m,jnėqz(.8S\CtP˰uLfPAPA09#67oj;ی#RsxzU[IZaԎR;"-btW{0lYC @C)3FodBl(ű"2nTYg1E_m5:.l ՚cc9m[Kf|{PI/"744"7ht6eREb&`ơD| L``6" AFY;B@@8($8@bΈXF p4/PfRbpH C1GzO萭<rbZF"hX 07 Wnq9iU$d{$?fJ% ܀$ Y 2l)^ BO ,_6]%`o}+RWl,#l\hdP.E|;z9#UkDQ`Ro#"X믇R ,e33ឬ #l6G3IwϐH.ʹ>$B%f?I(+Mm_eaE K(}* i < dp|1 A~ {zE.lj9/lmi'0mm$I7[s*OA7bBjV|vGٌz7C\cnJbz]Ԑ?O D+èM7A\OxYtێ^;zQ+\ 4G]{]u,T \bN*=NAh4xfT~_Kx H~n?>ĈC Tbm{ _W.lR7>x3Gl@2Φ7icS0R'"tbg;D<=5w:MQONϻ:/ʘqD.2h\uY7Y#߷IG]]hm,^$?.JB oZ(a%sUh}R*e/Eorͯ@ *A^X9We/^PdoZsЛMeaDyYDxYց!qJ,oG=EiA[L!El&GHg'S`}30FI4诿sL%_6H'4LTAߙ ds!\=Kq\{q;^G}mЃ첮 d=˦M&.CNs3V03`X.~I;=۠'kUҽ"N]]|CO?֒ynFs1'/c3!?JT@kJ;N%OkJF]rѼ:9<׋7VW/t+m:KtӶ|~r)Thu;S_8XKMdnX>I2&] {1NS=AnBZTP_mkw"/81~Lg7ȭ{@sz=wHG痷q4_ m'@ӾU.yt |oZf.rC OyN’"x`ZK}34c tڝtgH9)m^ Cm߁vi;`MͬXK=WkzX4LvTȮ10Y<z-mcϥm 4EpAi>Eʖ _6ec:ikJ̷|O/)7=ڕi]soV(ri>^:vť| ~o wm 7>] '/hkڛΖ|_G+ƵNx)0Mс׎{î=l}X&q[@^KAXx.}QڋүO_;|zUbQ9F¿6kDӵ˥?䵯$j!s4\~(Ҳ'/-=r!hץ&N!gd5 dׯkAEVL+_}?nwt2 Wь}lC6>Ԫ{eufLGel{\r}[2͚E"юr‰!H6cg*HS7J()Uj+A} kH;n/A[-APU2 ›@@4s`HV[Al = EТџ%N09Ta1TSc^&]mХRX,&Ur[0 ΁-xz8Y)yγyzQ8p#m$_j×&eJ)7{iL;X;NV6[bJ ;Wf#A.0- &p[M0 `(q ̙BWuqΆ13YsMk=- !?VQPPͬèjKwnAahDքVA= ,# F:p2[u`{SԱ`}HJ܀L(.sG2 FR b3k`[`" ֫v+fϸ/<~FN[S BAvcN}y gMh>?f4{bLD{Qv,mPLŠE}'z NQ{2;d4A'tۃUNߔPLC2t ny^A˜5hB7 u>% ɠ +ٔ(^#FBB9q< L LFjB{mxP {^@4P HF)d=}(8x8`l{JR&B@ aB/P @P S }_;DBHo^hugrf Ѭl"N'}~3wwnNxŦXD5/;P:=B,iX; &rlU3P ن:tvEu Vm.~Uϖ M*ͼ#o!V~AuPT"_@R^ Y(BUcٯ2{G;86#Gaހ@cH`G^oo> -g{jcLfb8g_wUWJUDRrcb$ݦ2}7$:,1ZhQiYPʛULWPe<*2V6 JӲ9>=BDƎR iA*Kpu+.tX+{ aыҢ^FjQO &=ZgTsҏ3HMW;;9p^ (UK`*˦`6zqFh˜z2V&(M@|BPPmjc$!Vn$Q`tl X,ha؏"dap]'kj*&ˆX_L+*%Tؚ! p]Mg!;i;1hR jt1$N:B5Z ?m4dA1hÊy22] ;ؠ~!yt1Gը *5J8D]Ba/qEȝxDĪ3`B@Sػb6(nn]$|ag_h| A, 9j\5E9?lf2 VX" TBy#&)Xw šr ˌ^`5/:rK _OR8֟ԇQhS d`M6of ]v@㼞uC lFL%ei6F01,eCAds_~PIw7^6hunFѳ0feBc,x+ 7DoARG )ϔ>j?J"e(àA Vy+V  }5ɼmcV}g`W~qPFL4[c:HīKْ+A'~', @VwǪ6 DsZè 3dFeXs-9x@+@*}l#@?V AѐiVE^"]1!<+^EH@j E>Efpn@Ajޣ 7icܱN!ܠ2ѣ Fko㕤қVf9"M(yЄ'y>IŞ,g> 1,m~NT>Ξ. g|Z٫tϜޛng$jĴLoN$y@ח0w ^~mC21&?O yhS6~Of(~ioFȀ5߄ vdԾC" `feD tUܿ]Ғ? Wwr4A$)i2>~ 4s1:l 8r}O+ pAϾwHb1!:OZL k|9Rzq|cֻQCr,`V8n(|x'G1{X ѻ|kL wo|BU}LNk<7ҁ,k.a9c^Qit?G_Ğ7&^)'w^" K s/WV.x% ME&:F6yOtKz9 9QWWoƥ)1SL}%.ua!> EO`!Du^{46&Lݭ:V,?[0]Ốڭ3.1#f ÀSDE8@}8XJ?o\UOB p.GIlX:tBi"Ā'I~ *tƼ+}s2 ?#O ĥV:] ɳ!r:`&~ElE.ugTMl 2x <Þ:W=&PG |uj)gO8C)aG =S&)Gric07nI 3`I6mB!ccHL 'Rh͊ tB+PxG1qтK}PK i%]1ֶQr hXr%8N"=Halu.>Vnzgĥ(]M.HmwA;$2Jenj .컼 "π䅉D;@#^mn0KI ,d" Y)|)Y-ߦ ,W:{ [?DMm s!KPvh9%Y7e-ZoC Jd5O^hJ H; ҏ^Wo(V*~3)C};vNC4Udr)PjJ`C%giV؊aHWg n"JG?j%siV!(xz~Q7>X!2ʬy\Eceqg| oaůɑ 2t#'>Qo`1!9-]/¦~G; e]`wUi;۟3el EƠ[S}Zf#6dIRH"Iȑ.6p9 B>NX:"z$(:X82sk7xH1ExqzpGrQ!aIfLfPTU'*Sq0;:,6&o`/3[,nn'$dB]O.zB h]r] ΀FX]o&BcKiE0Qp^Fewg?~1 2uxӐ]3fmB -\0-i )n*S.hؘ?dle*Cf͖9A qӂFݔz$vp(4˵ ,0yP&6o/Kh s$ȩO(*Hv.ertdĿ~2] A'IK#\cR̶a/pʑֶHݔyD?=`7*.x1,9ǔڝZ rb3?LÚ?G~igrrPZRU3Ljz*ÖVY,5q;N=AJ35-{pȩ.nͯ@͗Y-Sbw6je&s}j uN~A$i`42B]D184>G0Y3Q^p=c5)q[BDUf6 ԥƑ %e>gc;L4ߍeR`t9 jkN 18!Hx73nMA0_pq?D3 ,X@Qs2-Kҿd fvg#HX!bl|N൞90(̛4;2m6)٨涾oi@dwHʂפK(3ԗכύCNNH8o 3h-G^%6`}'B{*}H=ӆԴ?ǼmfЁT )acўU]kcQ࠼?֐245 B"0.Lm\\Z=AԐҭ[A!M|)W2c0eq{&=jĘ%)+T'@*X;ޙv0W^+F<;F]Q]J %1;^NfUiA?i(ki7{GbxVLC]:٫T*DO La}c(te" 6L*؏CQ )}HmKgmڢ; y=pZq A BzR>RtLN6h+_BtΪkXh6DVJ i(" 1e,Nb_^"b.՜4m]y > $F9PٲҔ H8jN3x%jv`,PaQ`LQ*$V_X=5S:/|-= B@Qevn?-~n0j>" CBz}o ^boc *FRjۙ֬*u`5*##;@e2#OTU?go4FaTI2|e$BD:w#b)rZ_/hD`&j E؂_x,*dnVT'Q|wm]m%@65'JC#"<%Tb,֡G> |ae"Yyҽ*NmXmtz~Pe9 m{~/"l +U|~٢*!f6wSH2I A6cg~yφX4zF|HHBQ/h@yV(f5oxm?5ve{_{NI T F.K r YB\tP9,蕅ᨧQSd:È&Ha@Ts< ȨtLvRSњ9!R^g-6j˜VO|hNgiڦYrq=jI/ݽR~Qxc*eHWTOmx$ȷQ][T4TqFeJK8k@>m jU%F@ fX2KQM1iGE9}?  7&_\dU( sJU؈ƞXM;1ȇi*R'@ϣJFfu w?SlµgsWчQח/Z0]Lnvjd 5ࠌrMBRХ.$<IupF.`>mKίevPAr3C.J.AG#0dTȧC UTb2y+X`9f=QIGV*}}z~%@\!tTF)U> r̘; @"4NAp!`9Ir_~q,DTh6wKZs,rփ jssPL汞R6V4mo)̎44(*r*Dc6l T v)* w0PgeSW9/˾(K,P,5ҠrC%ʹ@@ %ovvs[=; s!-7Q#W Lq8P*rdEu"fFu'¹%2A+(?Bt *Bg,]dXP͞pE)*\e-؊#LeBi N'Loژ v kԠȟYo)w; cjF[XorOBB́hq>;逪%PH݁etiꖤkƇ)Vf`ay@(8R@ ":cJ;fUx/s!)B]EecP%E4M;dI~h)z/eI)u$;lFȇ k ڬ,U%\Zu;Z ȉs @jQo3A H".ddH@[ѐwYY!RupF.woP>:fF;R``CdPP[EU*r^f <}Xj3C7?`G߆CO0f'@*l?8ʫiiC Ȼ 8W]%BIFwCZ" JqQޮzt3 OM_'mH2P1{',9Q~Ct0T %p;2LfG<<{x>*m#jhJF5=A`C ![sͪz($LSc&ycfY&2%^R*FG0> MaK23C<- R2б/"}O"GJI7I1] WCu8XhlZa8ȨYO f1ZG4Y,ʒi%` _)^!9}+.3L:6*r`! CS!X==62C(z 5|АW?yF3Dь5 K_TAi8Mm4䱹 /)XS[u>^XS3A'>48Y8dTJ/@j632zF!fI(cNjj!:=4ZN >|G4CEL uYZ^豿6_6qYoutS~=k<,[eY-KW NGP:q^e(õ-Qnt@/Uim0$:e[qԲK2gR6VdgD?3|z;u Y~Л]WE 3>mCܦK,mg葹'kj clp2}9,el她B7% $4c4ܥ!N 7a:lE.qҜ)&'x3J ?ԬI$AWԪfa ,=5$ʼnT5#Kd̔ώbq:dH ϪW Q$,=&6Žx'|3K Xb#.UQv_\RlV?m 0/QKF8Rq%GN@cZ}#iP̀ T=T7E 0m z )t(MXn\m" DHmn;(EjƐvuLfl2AqE88,+ =hj,D.ƥxc ) r}5I EhB)`a4dn~6\H*X%\IOZkS8Vr_K/\"@^B(o֗FrЄb 7+("/ϼ٢W#g$/C-t=v{EЯ;Tu/7,F]#ȲB"Inm?}}/ v|S!zo*re 3c2"T '="m,޸ (h [ 0@:ivh3s cx`ءAAqyǰ$3`L jk? z^y+) hMWj=ؤJKW3on7vA:uK8F3k7Y*\:MJT%.3.bAXֶ#} ƴ?;PFx7W"ݒ8&~K~l 4|upr c" @K ˽+˞[0,ŠcUM!&97$sNޖK+ gpIb9\ՃN%脡)ЧVhWn1.ے~YrQ\F̡a̮dJP f?PJLjA!d~Dr2iN]>3!O;suAR5(WBa߳aN깔0(7mMfj//DP9lPBX[5vW F՘ 'c@\34Fg-&wtCKyTpn.dz@fuZGf|ZVF23Na2]1y%} ׀i<9d `(["nK+diAb^Eց y64C1Oƒ6 m_T>JMb-֊y`nз-2H{6Y H ŅN}9)wjP^q6-aNW KB.yuh U͘bQ.ysdfߚ[Pg Mq,<1gE*O}?fZF6upmAyPڔpN 4z\{S礍ueB+mqg..Gاp ؠt꘶R+BNۉ}kumXE˥س.ͧ> b09X-`=c).^L8=LqmD$!ۈJdDn)k. %xw]bU*UxEG_EobYMvVuDuJȊ)FB (=v6"YE19Թ"Z^[wLrYĵq&B@TjFbp<1itE&;'+ xgBfb`DmPAHY#܇̥DXrȎ4'4gQB_JHQysHN} )2޳5zKJoQJ(ڙAaeH4$W .p0V (ZR4XU[:7͈M0d8S!%`X  եŽ. .9 ͩa+*@{3IilNuuCPW u*:-EVR !cܣjhc c |nġ^T` OlF$&(tP2SP kHA( d3<9{N{Bm}ˬaSxʱ be+I7RTnЍiCzΚF!WAȇF&8@rBW}*aFI8T lېΰ*+{;#QPvfcT$KsJ~Eo0bA]~+0{=.N@#e;U/aj:ٙ*Vfc [{`#ԙz~s8J;M=_$!B-{%ݲ'k#۠ܖS?u⼍ziwpDEZhjWHh0#J!a4vv mSiU Tg%WPd\9rJVbY̗uey& H3 c#94Vn+?Ѹ< bpTYIJ{urzh.%$RBz`\[S RFBBjdx`t TeR0b3!gI~(%HH] ΌHYvn_gw"DwL(=46b# I{ Cap묤CтV$(z0|% (1}Y)=}UW++ͱJrѐU JU&ҧ 3ST\a8n8aqgowY2` VZDr$qH8cv}_8 7 1'{n\IN VXV 23(;]]m`C,Zt16R"7dV}{0Fyxȡx/eя=RPKKra ۑYntb^ M' #l"-LL@ Hl(V|=! 9vk c_TU͒X=a_8ReRZ%ÃfNNfbow6BMWCuXʨϺ*YwN @ Auh̐ŽJuL^IxoL3+p^q̥BD'D?nY"xN,4x8+p-(AZv/{r 5=wN}a]%{(1-erF; c 3$ ˱Mtgsss?~?+L*AMh PcM#^?&>m Z:Gբ蒇2qY'i(4MJJ6I%2i3o6!{* @B'~X*ر+2KclFcGs -Aw#I;GSID$|mz!ʝkB~Z}ԅr; ]u&]XcRWz(JO e@(dc)7@6d`HҘ7ȶ'lJbnT\pհȰvf0$ (2=ݎUׁHaȬ}dh4"R*͜|:%ۋ^?2dhp'W}F3s K0bQ-3YTo^?*seTaY0"f/}z)L !Z{{ڄ )` E̦a-* FVf-'g0nDF>-h(F']:"AԳwȐD*O`uGӫcs#A; / ̀#|lCд 5GəF o4s߼Gk*>7q]=fT3 v${dm APn?lq*.Yg[5B=0"mi+U\5^ T/ 3֝[,$CB 4@ n={c!.Ϻu3wdB&َtOK,Ffl'dCN"pH 8Dx';,O '+XV"UDbg*1xaUY_B Svj@<x؂Qa@]ds e3#, ,n]Q%+TR6^*0{VR 3WV?O$xcB[ԀDC Tbc+sl\L\ Ps'pt?l^$Cbjhrp[0G*eq|m{{ yN3='ehmzja 1_CEJsjͻUնt-.>v|Mj;'ɽwKi7\f08XV]6gQȤ,ݎ( HMc3]z=wLQ,ߟ7u]B9)5%i({5d̏J8|lӆel|f~B|}zn2koB ΞAԬqΜu{7!9j֮Ym/RzwQg& p2D ϳSM0vXZZS& 8؉55K_95ִ7b9ۋ2}hNRfF<WsȮ|֛fn[[f6,~[0zY?Bz,L6BW'"P9LrB'd]F޴{K7^ > r(uI8A9|}F,֤x.hL\17!zNpuin湜~=/0k'H1M2KH0XPC3]F3m'QT/X@􋖢pMG1y;>5WdD|j zk2%r݆=7W>ދZ0xJӇ7KytF,Vl-*O1Cu\UXh4N \[*C"z;>h=υ"-Oa4+7Ee \7EC3Ǩ[135\^#{;p{9VY亡vtȇ+ ,Io?gW$ks*f-fCW.H @tT11E6CIn5y2 z!ľ\QG=wǻ\|OU i3F2ѧW/{òFp㤙 {vbt7!q*t1g$mV4Fӱ*LOfHZɞcSfjŲP*־ɳ!U:z4≒<ћ;M\+^ߔTaU7u&\tzdnUzrΗPg>iuiB٧]!\sNO٤ Q+f]ORs ɇj&FѮr07k1j%D/gW{;)*NJ%+^P6kkpU[|?e&{3vt-#eo_j H- wHK8; na~=_vT[:uTe)8l;CzpdzؚgFhOFQ+XT0A„'qRF}T fI+垍Y,Cdm-smXrPtg.I+)QGڲ*pG:ŕ͚`j59zgGb`E3"e u@O;EC8 #PX] J&ZgNU&j~b\Hz,I4OT)= .qv~Au ,j IӴ>z /]F6-1%++ yIˊl1v11Q 8F_V?㺺8h5{X86n緛P FZ:}r/N1.6PU޸D\\jܾqEbV[9:;m9yWq'DjjI '=m $KLi36<èwu[z X)CURG&ބTWήk65\$R{c(t⼭M< Bz }<Ҽm*Q@߶Y'{&r{B1[8/e2jUTưW}m 'Lcee37 mB;jc͒wJȝ;}e1.oT~K>ArfP.LH 6n9::KʟAoi`=* el̘4f~=0<?Y皛L<7EC-NN>(wKLvD7 xiF((5<Eqn˙ɖ |7~2O7;?*H~ <)1,5{M0OIt NDWŪ oU*1,q;){Xj W*iLG[ 7h[ ) 2ffE͢9Uajc/ַY=QuN[娖l(+;n lUm`ݲGvEuY>lױ,YcˮB\%J<#CmX%0jŷ͖W4i(-R&0q'\a",``#`m^Oz`WeE,{~U7rm̪0Ąx\!4fcO[+ >~fIeGEY~D1MV8rlS?cJEC5:T~zC hN&a#7~ y30RE:A7j}z`sq߈1:J:ޠYcSCnV{n[K(6-Qp w)禛=a]\FҬ܊iG{协YӅ@ٲ#3;rrB3K6;ܽ5cpem{Uv^d2a|ʊb#X ۴O8{Qbz*:Me\,&ap{IBVP]U"2 3/&8̒(S`>uI( 4^>a~'6X793-F2eVS>hw~mϏ0pFl&LJ?Zox3qֿ|s%Εޜ+M:^!؜E NJs"S㝕3)_[)zAh,9*ʹO|OJJ?ZvroM-cg)ʟ {D_" OWS*3~4@ų* bl2k۝"~Mħ.⍲D|"7⻈r5􊛨%fyzX[K¬TJ)}zp_uw]Lr/U}Qgfu#suL4\JuT捞qy,pFEDRiGDk 8!$?B"=$R<"ż[+_Ͻz؟Ǝo;g$ "k%á_~"O}ۻoBy8 mKC@[>MYtʛ0#6'GxJN`bKCLLJQo%[`˂0r4g N,x&]yYJё煿+~diyyJ"pΑU^'J̱SԒf kZ{ul{Ypn0_cҧk L[0F $IFA kQDt652h\pXȞc' SVz`@4.+ee inq{[Ȭgm{Fj ]Hj6L\+%" (wy4V[gsb6m'o۱߿`,Ƴ@Qgrhr1Ǻ( ⁍aMڶ,&k`V1q\m{ز.92UEu`lj4?{c<\ _ϻ0M>lUCZq:qjϣOq+Kecv2z;>IOk8di ֨FO(X]gZq{/=Y%,&?0opäi?TqCρ1* [:U8`H9 t*F ETXm^e C[砟VNFy[By_~sUAimУκ/SZn>c~gIA /w?|v@e5HO )کoڄ}q Wޗ}9.aIW0w|X3ڜP6pBON)CnRcolH7k(?QK|cq㌶6y fQ慲jLflWXmMʶwi?Wuҭ|<t3bQfҜeF9U2;hoeLsRH[RP$=.S7(mE'2-0sFejTi>هbgʶ9;x#B~ԸVrn)^⮰SkFc𙲩`SKMv*\T; 8hN9Bǽa#Jkm/v_S9%՟LQo%畧ON~1樦gN)d,BjwyWߛ_g~w{8ˑq7bGf^4]&˦d!9(=0U]?9;̢:)gEmxiOVڦ:n[7Ni>h&6#wL~XhWm}M 2gMD3SmgVLصH)/s۫nD=I3HwqFgWvÜ} ]ۺrYO]ClkMc96>U'? ;=YiD'=7; -Sk^ncE@q@I;5i |}Ɍm1Lo)R^DkmNL+Zqrv0]ÌCB$EsXooz7ֲ/z4vquҶqF{z{\ xRfj.y=>P\/.yIQbWNYsɆ?0g07|禙<-ٖF;vX.Ze}6hje"m4%7K|3r{4x6g1O4.籝Ӹ\sԢ<}" 8e3盦 Ѷq!L?r }vyu8U4lV4v+Q3PRX]EMZkpZ  x{nPWV՚d%v@%ܑ7%zc?+R++& e)5j<'b-2EK& ԉڝ哃 qAFFuj|)Rq :0C;@ށD A)nx,₊lZN#R2"T4t/qx@0.roB ȯ-"':ހoXWe.9Bu}=^<?GH/ȷZA ֞sjFbԐ׎B_ RPnTʈ7tاA5~,CU sԶpo+8^|Hq YjE)-V 8*D!6&O=ZJuBKod~$0%{.[a:D03C .FϡS>*\XZڃQ*@+lB{Ym/m<{8 '| 3`9EE9',h".Ar4äBA"H"{7Jy2T4#4g X\GC*tfq57ܴDKKpሢ-IBıhs'ho`,UÊGJQz Ip "Wԏ,5P̓`]hًF7@\" 7Hը>n#ryAlg HO!zɗɎv_bO*$c3F;$WEA"l5؉þC~;7]ERY்*W]dPxnr\Ȫ.y?8BkoTRT W0BRr eG1 GgUY:ߔL F%'=ae>Q.% N2:&k߮{&^D# .Kts3\wzve-lE[Iəޫ+A`7=!R>\2 54r_Up9u&.Z@r'|N[cdh61 #¸_2ubY8"1A-Z#bZCE o=3{x ; A =E[1oǷm3; MbHya}V2kV$vXq:eu;l-;Re[eBkp^58+@~gA + sk:ùIT HyrՊV+靅hMe+ޚ '>h 'FߟJRN(["B0xM|Oː5r#M4u%~0 8J<Q>AChW 4aF{X _*\!8h5+Fu@aN [-,TBƉbC?ww *jxu2Vqȉyozh hG]^f~O)r%sNKw|}S.v,#ɂUIp&0yrD^_ؚ;llCUmGj>ײ2~}<hpuqK%T,wX[/* ,?Z+jכԹ`Fd$\y cJ1?@ 2RZ_r#p̓Uw9?vVbs:e}ʥ[Mềgdzq bpBI#{M^&Z)ġCK+ŌPߍstu_J.|.da\JX:ᶁ^2kL9ӫCv9;Q7|ky?åŚ&=Bx#bл~k '}=5vVOth +{e %7MBvamabPT Zdlnt?c=]iQ{hM 2NKY"OI32؋ZM UŌ󱎻P/ZJ:D DUlH{ 'k$`/hK~dp =N\k _nsպxW2쬉 7m܋A,^`cvnD&® yYSE>.N6†#sx'aXv$I"!h AaJlOF;$v.ѷgRA$xΜɛrRn 4f"aRi7##+S n7p-d3-#Ǵ7<]>x%p]ыO9aN6{fȀCx#WlG9DS5尭>8}V_GBtJ;(A= <] 11^_BE܊]ĈN~Y7kvsI!'D<4,q.†zUM-i~s<)R H@I ^m>+C$1`zQM#Qkn/*L7<6lNL\(%dC(QH2>'h?8@'R߃Fl!Qq :")s ZyMï1lSN߂ *{}oC\ P`UC:s}W \I JF޿[Q`uEmVAIEn ;PWʡ+~'Fv+EZ(̚Ga+>_;V>Z*e_I@*UUBJkCO 7;haU 慤d[)[F\C ZDlcNLIv@V aN1'/R:K9ʾ9;U,q7YFJA_@J u X񷋉I;]%.8drjXvà{7ebvA9e 3l7,އhNх{6tE!J4eOug`&_&ɨ!z끟kzG>Қ&Q!QsX\юe& vRU5v P.yfe?.03p>N9%$7#gfX-BF  ;-#I;0zF2ɽyc1#EqKYF '4[FmgV8cqR,/,7G܆x>"e|VwT촆HZMy|10^sܴ (zk0 MBIa f vWݾY YC =;WմcP•%z=Բp&KHM']?EN(RC][0ze+('nց[=adcb}jAX{s7kh\` 1<&W sIE0{*#>Scv^z: &H(B6`@:뗎aN.Sb_>ԝv2d ͯ#낳JU֬bq`h{m Mg-'dӽ`-8-bT;۰U,ʨkonmwk8Ak<en̼TCr:s&{:9ձA @zY} Ҭ0uO%cUYK:OpfLĚ)`1)_٨>H(b(k$]^?+i2j.ڜ_L.RTmr7Z4)X>u[ CLlu-y]LcH}OVz=7}V;C'ۋ! yX @@+QɽRFBuҗjWwi4ѣFe& d@R\HԥȘ3RoJ8>)KYnfnPns$8OM36J`㾷J0 tIi13B9m Wgp7 iQx>bR7'Sᐭ~0!$TC_"_8ty~thTVI]5e)$_>5oj.W2 ƃAqu=z(E- ] [\jGT.mQy5[*RI4˨#4JߖKC`^_9gAiL+*7H\`$zR*-sŵX̺enG=/|QaF~5Qqwj *ch"}2oh9^L6r4suw-{ sl} @ a__Z(fN SAڸ)ǚ2`gXJeY(RmVsLZPSwX{SkM bs|Ŕ^h]2:!<Y2(Źv;5f29L.es1|KM(K|`U7/5FTY/toxt)6e_ܘ ; PXV2w8#'ث'ݬoҮ:K*w=* Æ Rvڒ7ADdmV YfiqfGov>p{ Beҏ7_D6?P^o!t>5GKUfW8?XAML\!bJ y&tm:X_=)?]YMآӗ6tԶȒ)7锟ASW#v~4L}]vʏy'_#훾-TLn);.֭M JG qȁ/M7ycֵ7w۪1;ӡ ߇kTÃks,<ج5kS2s R<(ml~(~S|2yW϶)],P`²Wǂ",Ҿ7 q]>*ӞM5evo׀ΌW`k[ &zÜ!]tH'oGZG(Iezc^d !fΖI9gn UJ2E)_rٕZ􅴠NgL 00_l\7L镥m \MT7sj1mK0%d)E[+qӝFG4 82Fc ML}Jy*b]HZ#Uh8dvZ m=5-hEpai)VeN엥QEPi\ ;%#Y`aPsaSzPe`ģk)MmR{f]fH?R mZ;u^Ao!BaX Z%nĐщB'襇xLҭԶo@W.%%.X NA-i @b/+1#nc?Œ Ыڠ)uqR-+) K|`UBC]yз ;~=eV*Lnb_SP(H.bBsʈy(F ö +[v!ыFQ2M^5b沝Xyi)ƒIǘaH؋4ݟ t:d}Cq1V*@K3 ׹!dι0}!5! ]oJ[wKXE!w3$h`vPɦWOv-E鼛*e=UI,}e&eFoO"4ً2- 5жLS@81uՇQaq9R a;F5 )nr9)GXL.IѲ}S 'jtW\<?FgIjwcTV5Uq5B`fO}l#'jH?aaQ,i4m,ʚUu苴SLU",,cxdmH',,:ZZrc خlQlP/E*nR 2ٺz_ӛn(fNo=tFdLJUEП߿5S,m gRƲAJcfNgF0G-tS(NXMmYhBox\&-u*}biNzwΞ7A U֣"ݒ(]#n-^5L|c&!^&St3>dֶ@myXeF0Rz/(9cIᕡarbLd\bS \"B~*ϷπZYϪ>R_W[%o^L^HhZRTfߏ an;+/A( vM vc0]`ۡ*[5Tllr Es*nHў 1:߷?GI_V.<1?0C^f.,r֍yjtZzH(X=Y{n\=ۙ¡T|q>8zp㢩8m 1]aLZ+H5P /+~.uٳH:6LQm z?@ !2 [a՗90~rCrx]RaCR5y4wd)(DP9y1MUVyh&,FG^,Yj%^\iՅZ80|eu~E/Uz9E-_YcXE?C}TwD^3H(àR :bX+膢aP2&6fK |~ň V"|OԶۛ_šd:TqU顗6J dԬO>&+FMpniPi$l_# 'Y'^5XvSL&/ _Bbx݇:؇9L21:%BA *"dYKTSϢ5@ kX"@ٺB1qq?ss#<<$NPpM(r4!N}>碙DE"fݐD/j^.-^AtфIѾ5c-fgj~B&(OROӉI0l7`F' ț ]u[!*Iƒoe%Dj"%֡Z@ʶXsQ(ʕ:b}JeTz⬍|0|X/>lR`&(VAmQ,.ԑ& %a܇2I-M2?vJG 0!d" Ths@70;j%IZ h RB)U DS(7cȌ,։]ذ-NKʌ"nM] UPjVֆ$krX S7V'lT%mdD5`0չXh K ^Y۷*{}16=_J͙TlwÚoř5 sN0bk0|,ZT(44[NQPWmQ4XfwJ\r~gO<=Gn4N՜H'7$%EY !m1eGgd䪶}CkaNav ̎5{d@y~%CJxHPZ(azhM=xj% HQ7Rv#uKRUA/D`)(% i:> ubp Tx_SeYt.XO)44 x^İޥZ9`^M2S CTs`[nVR d|}F֓fU̕R)b)T >gsl !'7VӐ]4K9J5O@) 5T cc3"M)B׋'B fmlhj0j9){9n%ܪcuygFL{}AWfm*09_ R( f}MD'Ruf+"K6MŰ }ѼKof*heۨ;WM1˹rEg{%Z;@c&]r1 hF^Ep尯K~)u sm.̋㵍*hɪ찙g}){e2o|I9n&C?9-}ΘxMфX=9bx bѶҢmL=%ZhpC.b>vH]CK+V ,}ir~ ز̎}&}߿&s PhP #iɫAz@b[F P"YoG%U~6d n,׃zo]}_҄ڡ eG8SAoWpM%'-ژeҎA7 ~YT6)%}=z ~-"3bO?GMJR(85z#ET-Q U<{}= 5 w5q:0Ar C#HFkjԃ@XU9R݆-ÛEy7_蕂ћmNH4ZX %1(fz ~5 YpѱA] h2o r |+v!.9U4a~OG hwo؂ya 2/G:"ːm)f)PZ3Ą|IH*+IǦAX۶}a\@6ҋU YuZEq۟Cv_~ވbrvWMde( ٌҎޔ uȩV9WKvI!i_)9ᘔ^z)8S&6ؔ"$m\Q.$|3`/7ZB,[lt+n^`U 9d[V[i(_^Չ!^,yQ5>U5FBUP8d:# 8j[)y"4$(v.bHr |mMƪT4jA<9}Akuc7 )t(ssFeb40=wΓM33(ԭK }^n4H+%(1AF61s6 l~Mid.)ԒLQ 9xeqmlMzU]3cއ̳FI.Aս3v樽~u4!rÕjI(KQm~.!~n;Z{~[桿Ƃw1|*?~ *@+ĨDF8&)NIVk9GWQ=Ȁ!ӋI:YF'{WiyN}PCpZW&h#78j Co} Լ`*Yv(e52\oMQ8};&! zt7U =vQݔ^ I(A|=w bUjq(̊#fEs-zhR'6[LsRt.UUGmPxKCYmjQ_>JS>ΕA/>'k; -7d)YRb4 ٦j]k{nj,hjxi@\?XQqV*S>VEb~[Ah=#I~cL-%(M^vj4'8.2lz; }ǚ9wPU3M79>jZsT埾E=Lad2qpoߋZ%e=?1L`SA)}BAc z!>gE2M =']ιTndo(Wx<=*u(sjimvyޔ vr}{q}=to9F8e⊍Ljb~my'K)3 mb:(Zu7sAQl۝??ǘ)/<+E ӮC_:ktzB\bأٿK h^>B҂1H)ѲRJc=h1v?U%pd:c߿g.GW,_FCӖOçW{|F(^OO̓ӫ=y>=MOէ_~1yu {}Uf5"=F~ 0ob ’P8/@ jՓ9 EYꊋַ!V,}r+mYQL<SٙgK>ģ1^%nZ1GUg%qAj<\[&.1dGވwFAg&(("3V3{?z?NMydˀX;?|s:?892WK[RUXcQ JaS~(/+9-y|i2$,$Tw[;@E-" f34~h"sO6Yhr Z5Y>s*殇5Xz2~f:mQXۻL[+HM5^B)1{ `RlpLŸ-bk9nM/)~mZ+p{P*\kqZx0{ [($0{ѿv=V` j~V1X13Rn}yg=}*wu G5}/gbL< p axjI3w"vZiQ4ė`̉gYP e2<-,&UkyoA}QhT=`8'tOGk]-‡!vڨl?B&B(DܹG̶',e!Iû?B_&"+i?9O3)| b>:?áOAScPkȷb,*μxV Y^T/ #7A9&VGrDܪ]Dt6/9jaBJn'UA^ƠP$QrHP<*͙K\e%ye9͐Zg!o3ϽszpgH=q K 㿇>> iR.O|,䙝(5Gi~,aAB{X#e\qrFmSbNcp !/NsOnL)imzLOV]2Z~MqZyy'2Qnm?Z󬫅a/.PdXR??&sc$L3D_48Sw.&-e)S ʉ܉\U"-1xͱIg>$).P<.!<'L#@*OezX?.qΘqceF~?ߟMu^CFEucv'zf`fnwe 4[ɻ͜q~WgncPe/t7*x/$co08>.zUc*p0_RXy<<,Wjg M.<"u)/4wEm nZL\P BI}+ý/L5U6MkuTQJ arm,t9 b@*qB.3 P~,΁u1$ۨ9%Vŕyu0ӊ?WCwgr'9GD1Mlq0,.fQmaӨCJxU(Lji5k`͟_ ^ućQ[|{3cg6 ^owūZ?gk-#jp|5Qw`iyms W믹Hj>:'7$>G jaIʞkQPG[z$-m˴ffg&;Ê+)bǴOd6•LR۸Is{ϛ]3KHH֛DD틩}ePf͢[b' \-dh{(l=m[~""P/QoO\,B:a:(=ykZxX6wW3Yxx G#ܡUˏ5*-(o28K@0l^)lV^H]5>ô󾐈gXc)qc$67k۔ )֪>,KhЮ Q_s9 ֒v>s:xi 6 ?è1kv^-Z6% QֱE~pk_l.o#(Kə:Jr2S[n dso9=0@WU"/zZ; 4/b:}^!Q&+}[Wl{l0O߇e:{tx%}W]hilibUlsOܳ*4 O&^c&ns5Yfκ^o[ppZg|YMu'c\v(L=$1XZJވB{:!zb.F,'3TN=(ök K}Iy7;r'nM]PL`1A.ڽeQެ۞CCWVfǥ[,y_-; OL6Ӯ8 "r˾dzߏ՜l;{lQ Fڧ$@eb/YIfg|Yٙs7AQhhC'AWȍޓ`lwW!{Ac x{W/Vmgk `4*H:L>4bC}6" J pDB wN2NJe슈)^u!Xŀ Ћbfƚ;6!De(Q2̬5#<ʁ%@ZTt9~n)P4Ŕ>*PnAXQ#c4.`i]2\\>?/=E(C׸s_ oy|\00yOHF0{FLJ.F̰G֥ q1q \J\e&5EV{v$*6•VD>\a?jnjXsfF&jǯ}oQB^ .;Kup7)!eQ0s!%{2riֲEfǦES(;eu64>\k9K4mH+sH XH4eǰb<ȮyU"ʖ:n*-4aUN}` s1Pn3T> հR' #w-iڮ[S4|r:.v))O6{fנ.V$>~.oAX: ;6&p/+IkmdX*U6lR'tQDll84N3jֺ";_:Tt*L#\SY%W!X%NXKne*&k<w unȺF`IȘVPvŚu}w).Uqè%E0L*-ۙ $eeYv6!~RNU&B&. 봦ﱖNK&WM<y)ݡwO 5cЧ|:]N3);^2_I.*.m?Dߡ 7Smȱ$@vNcsj[-Ç`lk]\G0=ɔL'YtIs CGn zyI__t;N#࢙8BeըhE-KY6 3y#羯jj0lc׏Q{y!` ;0FDFLfŐJ+œVZ*VWr o.`PxȓQ]\T}=iaio$hn33 IbEbS}14[3 2k\jTge>^L(@WYPZ=eэت'4e vgU]qΦ&g>]R21/i8;GגeFa=rՓmԐlšZ$yJ=&,/T,s<)|mV^i)$6 >ڶ7Q/3͏mė8J=C)C mI蚹trs:tKh%UU˒=a l dZTCI<:kжu*u>@*&s,Lj;0ͲLо3%!$N 5,^d5̝Y>Ŏ˿-.SԐFjmjQ؉[H lMO99yc|x=NѬGkjMi$98_>Ē {~*}QY,=ȵТ^c0sQ 'l)T@]+lDٔROM']A2éCU'?Ħ];b|/,L*GFhM҅%/F/YfTDo8gR{1k rap>L?B iqP5ݦ5hB 4Gs1}4zw*bܒ/tsEb uK~;LSǽvov+v+q;xu򾭻4)7EvGon 07sH?c zEcqΊZZ? UZ I[<zҼ~b{<|GrUe_3-=)淰yLcCv-u"FO6eEBym:vcaU.D%dB˕8Sh7k@NLΥz؎?<\J5{v)T-i9!Vѩ R:5tV?^3pu}f8HpFZךr #0CwK שּׂl|Cn{6ڧڪ`Dլ`MwKal JT ]ȃm֙.⽔n̾ߏ'$z,o[ElB]Sw$}[# P1< xQ&uY5ͽy9FLgel}:jF/Dz~[<^ouכoz.-z"y_?1Ua;]lBu&\L^ ,xRR]Ak_+i&b"r@ lr2<*F` gXU#9⍗-A!!.S) ϴdҗ^\/ G|ΕǑrC$Bcw ?Rw Ć!]]*:x+Ki ~E_T2l,J'BP9ȌiR2QL?XR0 G9@rLp7{vAh#ɔ-z'̪q\VRZ :Y3" [#W\[:7-eA1Ie.bYv~uc8 <.^EtKe覨ym;4V ;g˲սDVc7k_Z7#l` 4j~/5gf|p1y_z|WtoR;F^[qEuF ߂4)f zw,([t2gT|1͠x+l^ikWp"!i9[sH?^łi-Cèa|D4[ hQ]?(:(7Ol=h.V JgL K 0дK P sX ';A-\Јo+)4Y0"0* 0i7Ak|Q2#|G-4(VUo Z0G%LmZmtbSoJ1|QF6hq0wB-"(snJ"I;NûP3Wpz2 0^J\S]79H& koY2|TOUD.nPʠV҃A!D?kH*TA7hS̮JJ-򶴵Yl S^#3ưJ]m0+M@1y?m,F}}mix;1@(P@GAa]{@"n>C s>[48*ǒιYu"Nw;$EI&$Rx2D ӑ>׃+2}T 㟑QGb_MY--_.|N`rs2ni/$_a8lOs!ȝ]R3 Wo36˹,"|o8;%D<=qL.ҾwH3Tk^Tm a1 ӄyfcϋ&aW$$1f0##t5I#t K)8a>7WZ96Cq:KAMơ3='/~=_k npEGaԡtt:d@ac&hPYR)ƼM$xe0;,ʗKlϩ=~ (]OsԱ<KmP͇>Tw8?UL%Pj|%0-L=[kpEMNۻW)osN;xN~DMK ]ήK]'i6ǩqM/ <SyG $(ܝ")&-j ˛]};?sͥ$<ړq!Rw:"䅗MCZԀ&}}3n>ܘm9[@WjFܭsAq"4dF5 &c_6@,6vz'Eh Jr/a&50A8 E%zϩ*l=ǁT o-+ $|(WqÈC00:, `&c0@@IPA$pA|K`bZ$NxL3({hAMѡ(-UECP .p ?驀Y QQ?C3a :EEO05֓cE cqhBRpK"B @ ޯ(|ޭe@ Y]I)iXczIpfU6qKHV4 ea|2 |$-+w!SpTg!/Z@jY븴 @ebc @RQɎC ~3wr:ٟufKң ]vpV21-3!/5M .? 7}s@/kOoCg,n"04L) ʩ.KG2|EKasDa@ٕZѭk_@wo skZ;&Wr?ד93$n[rNQJX=C\̜:ľhXI[2",N7-c{dܯ FkDK&&D\?#bO^L?q `ጁH2 $ K2r 4~p#!R,sЍ 5KİYTuZf"Y\zgm!\${`2A+!`G}K_Ȍ!fR^ 9 P H8roHR<.L½{h w@u&vGw Q_YNJzSňn܆ ;&*I\H'Z;Ѱr;1M⛙3P\=Rզ49ZY:-@Cr?,Sp)"sE_mr:LILBWi )(߁gAzqJ/*aGuF}T NX2JB`5xz̋1-E.@Ɠ>כ3 :k'"G\VㄠڧT"c3kMv1ڒR_:1\@7-Kn"SxIC3qk)0t9uP(=+TRKjbɩ)"S9%##{΋Aup22@g),/ZeN(^d&(IJ:3ZE5.7~E.ߕMA?El\>nmeڃX(MI{ٗsm6JpCB(w:/5P }tEp{o S #RW ob , !Ed/-wh>7Y1}^_zɥ!=rrԠ#%&(4q{*t!'"I})hx8h(|XDFku]hk85DL?h_MCC6 n]˨= $C3(8NgPRV"W$ILb^/:|[2i Ղr]$2 ` 4"?vpGE}Kh?XӠ1#.@>vskbˤ&|"w2eމ˱s_Jӥ 屌sΧBA۴BKa #C$3pS(I|ޚT{:VaY.25''LD6yȪ3sw>3ߛ̊v(Ÿlנ"h][ɑalOLGwYUZ 3k% ۴O g͋&># UH}[hb!پshc1:,TpKK+KDY}Z↭Z1KV@CG/F5sB=MK+ ,y1u wñ4GYBnVFxM8C$‰VQ(`yN4Aʝv?+o/V3%ϓ|ʶCs]mBQ ŰZ Xxx*v8@;;`Eh;v9yvf&[uA%^B,řVsg䁢V+?5kV-೪7% Ɉ=..$ bi\zZ V/U@PC_;Geb2dF1t A{DOkv[]ܛ Vѡ" Jl, }L=}O1*ü2P-(c@Fh JW vErψ:MykSCm`bC51G4Ϣo}gP5xn0,:.D=HL^0G^셩}؏2.$3~q^Hu &[J!m%:[ݣ"e> $=gD"qdzNЄ{ycuo tBx[%^+y#"+ &oЦ<"o1`A)`tr{δ1s1 #c z.D<5+Nlnj>h+Z(# e/f&u^Ē s^;=o`2ɱ<"J jHgdH%sL48kj`Be P\pN!|{ߌȭn#nP?/;d$7;۷K֡:Դ FsRF*<S-y_27.kZ kAZ m}Nu79* @.\7y,qdHa6e7Q<P#QC >,NQtFaBB1}՜*O/{m_2P b~]ZҲ^+p/-Z@v0}vJoVV_{ ?W =JXv 2 WфWDBO'ϒp !iw(_~=BLjJq…b;FK+;F-lqAǨ\f,PK?h>89@^wdܚl.Ԡ'H ЙŵYxˮӝg tIn0g8b(Dk> _(Cs s9}X4_ b*~@a*O7:82ptyBwA'sZrTɿguUd&ASPdu$>apA2ϵ3ḑ1*/3\tmC(;&ti/@k\&:_8#sjy5* '㹐eUם/ĞnDf'QX󾖜zP. e=i(Sh3J3yJէTk1To͒ϬN%͠ဧZ$># GEPh;zkUƯnAp{09`yOTx'z"8heX q2mk^4RF]7 0SboGY̛TQ^[/x")ӁJUl!XGJP8⺍ݝ0bBdxjLܧz%턪>O$1_\ӭA)i@Y(⶛Y Ӥ1p Dh3Nz_*En68`T5&+kczR_3F߄P}[a ܭUg"-\d V/g8$V"gĄC)5PXtFaskt~%U_$l 0 :m':J? y;LQOCF8  _boy_.76ncb4ˏ1$ .K5>n s'ͧ@؄h@ؽOuZFT]Hx}%Ve?Qy4'/ !_HF4}FDt}]8`4[[Rb&̜jxOR83/~eӸ=t!_]bBћ|P~ bJi!kt\޷y2+PUH7ԴUC@6Gs/Cv;)eۧNߴ<_aMM@ZSu@E}O+Մ]8҈r9{Ϯ5&^$З$IUE/]DpdaBRqrx5K@_RDwyk}ZKZb8 7c "tFat g|` p{;niԒ$E< "-͔f6 LpB;1ISnǚ&4UMrAdR1UbyXa(%jp@#H|fs$ÐdFaȁ*I`ɍ+ i4=+'%d56t|A< UX"ee@vljtέh"QWqH:Å%8RB4͈)vY-")\{uOW4ր"wșCLU&:sօ;\EˋT@kh libw\.5\̏3{^;aUe!>OFGfXd"n^994?IUm9!2i.LsӧϬ,t֨txݔ<5 BQs'ce>< 7 uʐyc2n@:Oh m\:xitTߜRP@ eLʤO4<7t}{uMcIsZGI>L (V}1KdkF.Yg7UO-s|-C..B_nKBdB :/N.7\fO6-uS9{`㕥<ͩOx'l7*5/5.xd8{XC +Đ"LԈ1Uev>ߺ, .E0eaw#B=Y x@Lq$5%ϱ)3E 6{`qwqHuڈ.6 ՋÛh:*N(grxIԮ:ba7(}?|oH.7$)lg_33$7@YYAk<;08˹"9coYZK:7LlRۡ?ԤEk訾jNwH^jl60]k$Ucyw٧[dn^<*x\t-7ݠr{QA+Uv(cBJZNH eY.#aPJ>752$١ 0;hbP .` 9SS)DX pe%BC3(Kï#,Ef}sL P^ JwZ̔ Dx{Hlm^IY[X\6۳o ;5鿎1ZV'Bqh3д艑lNf FArg#uaU}"hݴbhp_TR*/j߇#%Gˤ(*Rd / 2'p=|٥>>K ?7dxK8Y'@W@0('' Z&\% Av浃gyln,n5_B8{! Y x>n&=AUA p~L,cU_%iOvoe`\67#r8::MP aq7T3qz%43ԸPűFy#f؍ʎt-\Vϒ 6g޼R"5F]+%w?h}Ò?͉Ti9݉N,.uaIկDArsVRciXCy|i4BPy}5ALo`t?!{ysZc:_Zg-)"H{ E*BFP]E?@~exAi{eDɲ.pOL -2v <&V]:9xGuǛXJJ{JI['hʣC8+c8ϓk 雭p07ꦫ^08!ڼd` s]mHj;@:iTش*FSCGhO$,:;B^gF%;Yui1Ii!'|ȅ.{ߖ[;>tR伉YeĖvFN@'q)7U择J_i)sxO bқy4&8D%e}qA-2ٹ:T|d@T1r@ ?\J_*nbҜ?vB>t嶏m!<"0iB(cm<t=3L-+P}ƒ/EwͧZZzl}.fҩ=ĢADg(Udr}QSGuXT!8wo^X 8$^ mpNiJ kXr߳6LJ L9䍅Vz" I,P`>ME*hr" P`iv]1ĐSP' 7h }h_[ʹ˽bo4%ΤhwNLkn"!PϔM'<>6oZ̈́S** C_~NG~O?'R?32+}_[̈́:ƔPFٕT$@Zz²^ 8Y "T6y7\Lmu92 4df z=ORdB $9j ->v\pm5+BDi-' x<%? 1Og89 P`!6ϵ?/>6oZ,4O&:"f1#t #giO)Ar+c( 8E@Oa8{uz;Dbշvf 8sYá+ŨӁࣙa-LcR|l?vD>v#GDͮ\ZUa l󈐸 }j4ϓ BF0AoQgc7k3C U Cc'ن¥SI o^([g>P..u|m5/ @jtBյŭQcfݘNQ'#xqTvf jg(3AӪs};5ANF\sχCXx;Vz0)MEOlh]%hC8HL<\T-Ktp˭ޝWLdžM+Kű 9\B0%gCz?SRڰ KH\o}O]y!  j~ة(kQt:ѳhtWZ90&ӫKg~+\ǭ?;IwSddj}8Ōp":!M8!tCyGt(tA,Cց8ɶɄIӝ:c٭8;pvu8Ssh➀b| zQ'#.@~bQm!Ea3BXoڤ!W_*FdS1N=:3[|:@;Up86 y5:."r_}ͷEPZbwXջm&ߧ%Og3.(!k]91x/^*P_<"!Q [-=>vfz#jgmvKZ sm_VLx]I>,% {?_)!N#@{#_|3Dv'ȏVBgo;uC24@ΐ! e5F&[H{0wsZmvfVo;?+`tl9dƜ-zC#o, ym0u!4]'q|kLT\[kYopO?3$zP?o3lyۗcFhxi3"qRhWp>?WsCR% Vht&énU,g@//C c8ç}Iuյ\K[uJKɟT\taM4`hW_~ D`~#Mrg/w)(3%w !Ҷr.L.4wđ h *0 8CbTO ls\iCa.39-9wOe\~JA6jfGaj!z X%khdxrΔ#ȗW=<"?~k>%)zl,ސqBlr g!yDR~`f+L._)Rm>v4Wn3Ǜy:y<#j wr~CRM 84ؽ?5#oWg?kX ~ұeхkm>ğY {#sϚbޓ~C"C~\tµ;)Fu$7vyZ6vϵ+PxRLqTASDwҢt@g(!Ws04<*j~td3 uYSF1ص+}NkwZenf棼6ϵ@hj^t>O?ʦ̢:R6-lGc~ q[U[kƟ;M\PVx:  @j)>>f$ɼQ#Jn*+([Iқ-պ$V 2^{{h-@;Njn7H=GFEU ҝf: : 0yƲ 3t%F`~mڝ OIX˶t;\)^T{9~rwej$>|:h'YTY+TW`uK:(sz+'~yoƹ#ʈt.kTgJ *&PF,.D P(Q@Fbk}ӽe&N "w9pJ| j]wT yp.3Px_2cOBk}9o]V'}Aikb[4k3dʳcX(" ̓~kk}f纃$Dޖ9a~ek_v  v˜D'thҤY*-pKN p<6ϯ4u绾n A #I_Bɳ\8OE+; _ij9K8fsk}ӌx ,Y|쌮$Q8?gn2rG72zK!¥2ʭ'N׏E2jϱw|| G6oy-F*yKW^VeEQ;{\oԕu$xѳ I\]W# VԚkWC- /-VS|'5k}TO`*4+8\RDDjUd1gg' [5S*etYX$^܏t}f-UTŃ`Va,t>67] e`9) FZ3+ g+Ȟ U.U0ZA arHG%eVpK4m |lNRy' tc<82htޟY57ok&0 63ޕ+(f~ k 4HAK_UWŝ tx>ZJ777s,,mzh!/c y,җϟ qni߉ -Mh<67Lӓ}Bmϩj`(}z|oZpGcX'y;/ˉ11 ? Muf|ZukLLZ#[sZD>|&xމpϥ# Rn[ǁQȠYL(ɷi}~,_:Z):cQai@}y/ϡ a2x.o@|m_cZbeu嗿L ȝ u;#Pgfҝm TZyEa[c|;֫EV#l?%?Lrb^x_:V5 Өuk"%8%y^9DZ@G!tͱh[j?50y VBwœU/>Rtq'r4IR-mD>vDD0!;G 5BW? d[jOO9fQLqoin;V{n4}>>D?ѭtmu!ţ,kSK^} zm LJ>2Z6d{U~dw?,*q>}c;KA\||'D9/#b|~{5uX+_Gf;SV,N+dS\j+vȇ;-5<&Ƌ.Yt?bCW [z\ x?:,E Ӧ/i;_!^HBS uWacDsDz:o!A50ײ;OtQڐ+>{U"S:8.]H+'f2XYAAؗ$0΂(}rWxb1@΁tMKB}~z󜘧ݛhM+Z8c~h}*6DC}@C$}!鳋T>#ԂY1ד(3l1_!{1xsT"֚$pGSKEVftH؎ "D;$c`{^LwpM~>' QTHLEƠ:1NX3<G\d}vjXiLmHRȾJQ\ lY7_!N`}x"U\ q‰ӅdY7,g.èy$8&(#Nݲ~L35jҌe{eD KąJB\2;n;jDGL[,xq e|-סּ %]d2" ʹǯvA H##5++' M7Al@28d^uKfva@_Gzo#'21Oz:Eza@O8e}yy ʔ9E-T.w bYv%HީVuDp߂ұBڐl $sțبteEpQ o5*̾TEΠNPI#ny_%6ѓx^C +\Tf $"K]_[Aw |?}2elYjoBO7,>h;ōXMx2pw (t@C8t ?2/px }tl~fC̙i@L HKGv"tG{9K$DiGy}<_MQ0`-xNs9􆠥.")^l[('"/Q8_+ի D |OۀE2t@!c˦tiΎy6@pYcv}:©Du[|G:M_sf}Ru^`~wFk ҧGyHcb@zAkisjC"(AF$nľ0.+C|kXC:OmP#+`h7T<`=\, :em$VOh2Sɿ"h W%S0\uB΂~>-%F[ NF&|=ÿ'N( B+E*9@Q qm_!<Ahr #6$* ٩èbv]cʪ>Y}G_|;J>VP 2ʲɥ7.X{.Ja DZqYu;,8juyd*-D_5y横'C{G25@j,bsP&{넔c{Ye{!7$?8Ee^k"ĩ%E;E1qgG+VN ͧ!8%C7}:(Pr<oxuXA{9P~w&WR}Ĭ.YzVneXin=ɸK‘.=x!LHBY9) 3 샷~+G0b:6#:N9 #,)p%}jv4.8ƣy-/55I:hrRCG-jP A,: aiq ZPEte7 v<T#y;FyxRa>z*xl#qjG,BmI\Ⱈ=zd8hC!yL0+ngHk^d-`3vK뜻Wxa@Y`6B۝o,X| Jxdˁcfo>'b (G2݅1+]zLI)td{NY>#TD bpK-6G cȜb!{5T8$"jm$Pu4q}r?51(0U jqKr伶?O~fmq‚T2+y=zadt"#>-^!1A+_Gy{aUMiNҞƑ{Cʨ2$x(I8ס!w^$ Ŋ/SxƊd$څņۅ) s2/`4QᘅsɅ8}iڕ1YIβ~jTwpF&{hƻútLiUkǙAF&Ud8m%V n Yq ~KÅ.%)ofDΣIFuBBUAX *jhXLnLc % Dfރn&nwR]-s̽3m8CmQ}Zpl .8>rwjfTܼsg\Y&`a~{Y2|K9;*^m *OY "]kՉ`AICanc0@CܯDJWAzotnWFjsS-;) aWғ4+|pi0Q槊ZVެ@PÎiSp4?{[}G>XC'qF:+JOyxP(CjCQʼn->3f ~>jz &38G(6QK/95?"TEM9?`QOKc;PuVRkPz*,a\% B4f^%DۦQ88uZޡ+{X KC*)7hWKA g6 z÷"V~SimL,#UmZm']ŲTpTq9 z>q"1MqS%M 2 ]6]<6ʈˍ=vKڞ"M_[콸$חVӝYas Q}Nٰ)bu^1 WԆtJQ(/#Ǩ }%_B5~=X!\?ya:Ν6;($>pq.M] X׼ן!qQxUAQ2,bb'Z֘ۦ/ Hޞ!+4`EJC?D|w i:!6Z_GTlLr8shӏ.&%AҸC-K@M(cù"$Pٔ^N&&YHD=T!T#_jХ,>Wt+jMH|Y.;"5"Ȱm4\5S"\E= }2wnm#Цj!/C!Cм_;\}_kf?6 %2ڃ?d3gUf> ȹ$! k g0lCPA*U-8M|s=gU WĀɹzX#6䷨Bꤍ"<xF\]_S ƌ JC^|3 si4^ަ"z?z` 8T`PQj@ar}W8[ېt0_SElq9f}w]{2]L<#)eap€WNpVmI0Dqe  ∁ʡ-PÙ0w°bc1_щS sEU8^>^qY0>M: QpЈ.̶#ACwBC9?73oD{ί9 |Z]ƀ2MC"j8 [$//c RNÜ NtTk4@;ؑ8 Gۥ-$^Nuh"\Bu`gݮQznFo endstream endobj 21 0 obj << /F1 23 0 R >> endobj 22 0 obj << /Length 76962 /Type /XObject /Subtype /Form /Resources << /ExtGState 30 0 R /Shading 31 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xK%M6U o(@ $ŖEisǍY-kG?w|+k+} }V ǯ{?ï3#\Q ~#~2GG6g}Z>CHY{ujgK,K3vۡg?~akSͶ&5"&<ܵb{kջB Ödׯ>l^OGUq#$-"۷V{ƶV+ۆF KlgO@xhg}[Q1 (Rj@Z0'ݚ}ҶæZ!ƣf~[CCskaѰ8Kv1%a/0l`dO?KH3@?~ٿr+v .[/ðvR_v|1-1a'0[,h G{Qڰ8CX Iv8e;mqm37c5` \0}yj@r1Q>g[<`cձ ǂClvBTSJT۟j'YJτEÞ lq "m趁qpw^cy~vǰi8bW?M">C3&62[;k(oúnhm0MLx(хt>Y}^}\~֒E/ ږ=m؁b6/Jb.28anj[= O Fo9Q2k;d|-~gg.߈M'mυaK(F8"Qs㪤mx3<3>x  + ;J58"ӅuM&c6A6 J YhWinwJ5^R[^M}16)sZmSAgks!Ny0x1^f(. 8c&˥ Hۮ>Wo^j<ŒoNOĭϸNF" 9T广 wUؒ ͍-ԴAqA_|nVK5j7U)#ǠpLh؏Jw-T=@tLlr pۻxPۚ[@d*'̦[LUF*n7]f$ o5M瓲/sH.jR8/m=WS,]d|7ys-0_$;GyD]7VQؔ'$_%Nv]rA@JSu@qqtx@~]!"hVHˎtIty6~FL!Q4gTˏh.&-杇KKbƼ!L h3pzN$N{,E4"""dž"f2@?qdJ:4j(b~ u%! H6aՌ+q m'f*?.$TJMI 74PP1.TgΌ" Za)S"5}|n;5]`Q C%1Puo" *e .04eŋmqõ8lxv wLa1raP[ U#㸞|fTc"3/- cXUV%"¹~uoϭ &/M \"G{y((\O>۠]#uJt q Xz/ֵ )aʵw]lm Í9԰^rzp =Fg v`*{د[DZ[ա(Q4m,jnėqz(.8S\CtP˰uLfPAPA09#67oj;ی#RsxzU[IZaԎR;"-btW{0lYC @C)3FodBl(ű"2nTYg1E_m5:.l ՚cc9m[Kf|{PI/"744"7ht6eREb&`ơD| L``6" AFY;B@@8($8@bΈXF p4/PfRbpH C1GzO萭<rbZF"hX 07 Wnq9iU$d{$?fJ% ܀$ Y 2l)^ BO ,_6]%`o}+RWl,#l\hdP.E|;z9#UkDQ`Ro#"X믇R ,e33ឬ #l6G3IwϐH.ʹ>$B%f?I(+Mm_eaE K(}* i < dp|1 A~ {zE.lj9/lmi'0mm$I7[s*OA7bBjV|vGٌz7C\cnJbz]Ԑ?O D+èM7A\OxYtێ^;zQ+\ 4G]{]u,T \bN*=NAh4xfT~_Kx H~n?>ĈC Tbm{ _W.lR7>x3Gl@2Φ7icS0R'"tbg;D<=5w:MQONϻ:/ʘqD.2h\uY7Y#߷IG]]hm,^$?.JB oZ(a%sUh}R*e/Eorͯ@ *A^X9We/^PdoZsЛMeaDyYDxYց!qJ,oG=EiA[L!El&GHg'S`}30FI4诿sL%_6H'4LTAߙ ds!\=Kq\{q;^G}mЃ첮 d=˦M&.CNs3V03`X.~I;=۠'kUҽ"N]]|CO?֒ynFs1'/c3!?JT@kJ;N%OkJF]rѼ:9<׋7VW/t+m:KtӶ|~r)Thu;S_8XKMdnX>I2&] {1NS=AnBZTP_mkw"/81~Lg7ȭ{@sz=wHG痷q4_ m'@ӾU.yt |oZf.rC OyN’"x`ZK}34c tڝtgH9)m^ Cm߁vi;`MͬXK=WkzX4LvTȮ10Y<z-mcϥm 4EpAi>Eʖ _6ec:ikJ̷|O/)7=ڕi]soV(ri>^:vť| ~o wm 7>] '/hkڛΖ|_G+ƵNx)0Mс׎{î=l}X&q[@^KAXx.}QڋүO_;|zUbQ9F¿6kDӵ˥?䵯$j!s4\~(Ҳ'/-=r!hץ&N!gd5 dׯkAEVL+_}?nwt2 Wь}lC6>Ԫ{eufLGel{\r}[2͚E"юr‰!H6cg*HS7J()Uj+A} kH;n/A[-APU2 ›@@4s`HV[Al = EТџ%N09Ta1TSc^&]mХRX,&Ur[0 ΁-xz8Y)yγyzQ8p#m$_j×&eJ)7{iL;X;NV6[bJ ;Wf#A.0- &p[M0 `(q ̙BWuqΆ13YsMk=- !?VQPPͬèjKwnAahDքVA= ,# F:p2[u`{SԱ`}HJ܀L(.sG2 FR b3k`[`" ֫v+fϸ/<~FN[S BAvcN}y gMh>?f4{bLD{Qv,mPLŠE}'z NQ{2;d4A'tۃUNߔPLC2t ny^A˜5hB7 u>% ɠ +ٔ(^#FBB9q< L LFjB{mxP {^@4P HF)d=}(8x8`l{JR&B@ aB/P @P S }_;DBHo^hugrf Ѭl"N'}~3wwnNxŦXD5/;P:=B,iX; &rlU3P ن:tvEu Vm.~Uϖ M*ͼ#o!V~AuPT"_@R^ Y(BUcٯ2{G;86#Gaހ@cH`G^oo> -g{jcLfb8g_wUWJUDRrcb$ݦ2}7$:,1ZhQiYPʛULWPe<*2V6 JӲ9>=BDƎR iA*Kpu+.tX+{ aыҢ^FjQO &=ZgTsҏ3HMW;;9p^ (UK`*˦`6zqFh˜z2V&(M@|BPPmjc$!Vn$Q`tl X,ha؏"dap]'kj*&ˆX_L+*%Tؚ! p]Mg!;i;1hR jt1$N:B5Z ?m4dA1hÊy22] ;ؠ~!yt1Gը *5J8D]Ba/qEȝxDĪ3`B@Sػb6(nn]$|ag_h| A, 9j\5E9?lf2 VX" TBy#&)Xw šr ˌ^`5/:rK _OR8֟ԇQhS d`M6of ]v@㼞uC lFL%ei6F01,eCAds_~PIw7^6hunFѳ0feBc,x+ 7DoARG )ϔ>j?J"e(àA Vy+V  }5ɼmcV}g`W~qPFL4[c:HīKْ+A'~', @VwǪ6 DsZè 3dFeXs-9x@+@*}l#@?V AѐiVE^"]1!<+^EH@j E>Efpn@Ajޣ 7icܱN!ܠ2ѣ Fko㕤қVf9"M(yЄ'y>IŞ,g> 1,m~NT>Ξ. g|Z٫tϜޛng$jĴLoN$y@ח0w ^~mC21&?O yhS6~Of(~ioFȀ5߄ vdԾC" `feD tUܿ]Ғ? Wwr4A$)i2>~ 4s1:l 8r}O+ pAϾwHb1!:OZL k|9Rzq|cֻQCr,`V8n(|x'G1{X ѻ|kL wo|BU}LNk<7ҁ,k.a9c^Qit?G_Ğ7&^)'w^" K s/WV.x% ME&:F6yOtKz9 9QWWoƥ)1SL}%.ua!> EO`!Du^{46&Lݭ:V,?[0]Ốڭ3.1#f ÀSDE8@}8XJ?o\UOB p.GIlX:tBi"Ā'I~ *tƼ+}s2 ?#O ĥV:] ɳ!r:`&~ElE.ugTMl 2x <Þ:W=&PG |uj)gO8C)aG =S&)Gric07nI 3`I6mB!ccHL 'Rh͊ tB+PxG1qтK}PK i%]1ֶQr hXr%8N"=Halu.>Vnzgĥ(]M.HmwA;$2Jenj .컼 "π䅉D;@#^mn0KI ,d" Y)|)Y-ߦ ,W:{ [?DMm s!KPvh9%Y7e-ZoC Jd5O^hJ H; ҏ^Wo(V*~3)C};vNC4Udr)PjJ`C%giV؊aHWg n"JG?j%siV!(xz~Q7>X!2ʬy\Eceqg| oaůɑ 2t#'>Qo`1!9-]/¦~G; e]`wUi;۟3el EƠ[S}Zf#6dIRH"Iȑ.6p9 B>NX:"z$(:X82sk7xH1ExqzpGrQ!aIfLfPTU'*Sq0;:,6&o`/3[,nn'$dB]O.zB h]r] ΀FX]o&BcKiE0Qp^Fewg?~1 2uxӐ]3fmB -\0-i )n*S.hؘ?dle*Cf͖9A qӂFݔz$vp(4˵ ,0yP&6o/Kh s$ȩO(*Hv.ertdĿ~2] A'IK#\cR̶a/pʑֶHݔyD?=`7*.x1,9ǔڝZ rb3?LÚ?G~igrrPZRU3Ljz*ÖVY,5q;N=AJ35-{pȩ.nͯ@͗Y-Sbw6je&s}j uN~A$i`42B]D184>G0Y3Q^p=c5)q[BDUf6 ԥƑ %e>gc;L4ߍeR`t9 jkN 18!Hx73nMA0_pq?D3 ,X@Qs2-Kҿd fvg#HX!bl|N൞90(̛4;2m6)٨涾oi@dwHʂפK(3ԗכύCNNH8o 3h-G^%6`}'B{*}H=ӆԴ?ǼmfЁT )acўU]kcQ࠼?֐245 B"0.Lm\\Z=AԐҭ[A!M|)W2c0eq{&=jĘ%)+T'@*X;ޙv0W^+F<;F]Q]J %1;^NfUiA?i(ki7{GbxVLC]:٫T*DO La}c(te" 6L*؏CQ )}HmKgmڢ; y=pZq A BzR>RtLN6h+_BtΪkXh6DVJ i(" 1e,Nb_^"b.՜4m]y > $F9PٲҔ H8jN3x%jv`,PaQ`LQ*$V_X=5S:/|-= B@Qevn?-~n0j>" CBz}o ^boc *FRjۙ֬*u`5*##;@e2#OTU?go4FaTI2|e$BD:w#b)rZ_/hD`&j E؂_x,*dnVT'Q|wm]m%@65'JC#"<%Tb,֡G> |ae"Yyҽ*NmXmtz~Pe9 m{~/"l +U|~٢*!f6wSH2I A6cg~yφX4zF|HHBQ/h@yV(f5oxm?5ve{_{NI T F.K r YB\tP9,蕅ᨧQSd:È&Ha@Ts< ȨtLvRSњ9!R^g-6j˜VO|hNgiڦYrq=jI/ݽR~Qxc*eHWTOmx$ȷQ][T4TqFeJK8k@>m jU%F@ fX2KQM1iGE9}?  7&_\dU( sJU؈ƞXM;1ȇi*R'@ϣJFfu w?SlµgsWчQח/Z0]Lnvjd 5ࠌrMBRХ.$<IupF.`>mKίevPAr3C.J.AG#0dTȧC UTb2y+X`9f=QIGV*}}z~%@\!tTF)U> r̘; @"4NAp!`9Ir_~q,DTh6wKZs,rփ jssPL汞R6V4mo)̎44(*r*Dc6l T v)* w0PgeSW9/˾(K,P,5ҠrC%ʹ@@ %ovvs[=; s!-7Q#W Lq8P*rdEu"fFu'¹%2A+(?Bt *Bg,]dXP͞pE)*\e-؊#LeBi N'Loژ v kԠȟYo)w; cjF[XorOBB́hq>;逪%PH݁etiꖤkƇ)Vf`ay@(8R@ ":cJ;fUx/s!)B]EecP%E4M;dI~h)z/eI)u$;lFȇ k ڬ,U%\Zu;Z ȉs @jQo3A H".ddH@[ѐwYY!RupF.woP>:fF;R``CdPP[EU*r^f <}Xj3C7?`G߆CO0f'@*l?8ʫiiC Ȼ 8W]%BIFwCZ" JqQޮzt3 OM_'mH2P1{',9Q~Ct0T %p;2LfG<<{x>*m#jhJF5=A`C ![sͪz($LSc&ycfY&2%^R*FG0> MaK23C<- R2б/"}O"GJI7I1] WCu8XhlZa8ȨYO f1ZG4Y,ʒi%` _)^!9}+.3L:6*r`! CS!X==62C(z 5|АW?yF3Dь5 K_TAi8Mm4䱹 /)XS[u>^XS3A'>48Y8dTJ/@j632zF!fI(cNjj!:=4ZN >|G4CEL uYZ^豿6_6qYoutS~=k<,[eY-KW NGP:q^e(õ-Qnt@/Uim0$:e[qԲK2gR6VdgD?3|z;u Y~Л]WE 3>mCܦK,mg葹'kj clp2}9,el她B7% $4c4ܥ!N 7a:lE.qҜ)&'x3J ?ԬI$AWԪfa ,=5$ʼnT5#Kd̔ώbq:dH ϪW Q$,=&6Žx'|3K Xb#.UQv_\RlV?m 0/QKF8Rq%GN@cZ}#iP̀ T=T7E 0m z )t(MXn\m" DHmn;(EjƐvuLfl2AqE88,+ =hj,D.ƥxc ) r}5I EhB)`a4dn~6\H*X%\IOZkS8Vr_K/\"@^B(o֗FrЄb 7+("/ϼ٢W#g$/C-t=v{EЯ;Tu/7,F]#ȲB"Inm?}}/ v|S!zo*re 3c2"T '="m,޸ (h [ 0@:ivh3s cx`ءAAqyǰ$3`L jk? z^y+) hMWj=ؤJKW3on7vA:uK8F3k7Y*\:MJT%.3.bAXֶ#} ƴ?;PFx7W"ݒ8&~K~l 4|upr c" @K ˽+˞[0,ŠcUM!&97$sNޖK+ gpIb9\ՃN%脡)ЧVhWn1.ے~YrQ\F̡a̮dJP f?PJLjA!d~Dr2iN]>3!O;suAR5(WBa߳aN깔0(7mMfj//DP9lPBX[5vW F՘ 'c@\34Fg-&wtCKyTpn.dz@fuZGf|ZVF23Na2]1y%} ׀i<9d `(["nK+diAb^Eց y64C1Oƒ6 m_T>JMb-֊y`nз-2H{6Y H ŅN}9)wjP^q6-aNW KB.yuh U͘bQ.ysdfߚ[Pg Mq,<1gE*O}?fZF6upmAyPڔpN 4z\{S礍ueB+mqg..Gاp ؠt꘶R+BNۉ}kumXE˥س.ͧ> b09X-`=c).^L8=LqmD$!ۈJdDn)k. %xw]bU*UxEG_EobYMvVuDuJȊ)FB (=v6"YE19Թ"Z^[wLrYĵq&B@TjFbp<1itE&;'+ xgBfb`DmPAHY#܇̥DXrȎ4'4gQB_JHQysHN} )2޳5zKJoQJ(ڙAaeH4$W .p0V (ZR4XU[:7͈M0d8S!%`X  եŽ. .9 ͩa+*@{3IilNuuCPW u*:-EVR !cܣjhc c |nġ^T` OlF$&(tP2SP kHA( d3<9{N{Bm}ˬaSxʱ be+I7RTnЍiCzΚF!WAȇF&8@rBW}*aFI8T lېΰ*+{;#QPvfcT$KsJ~Eo0bA]~+0{=.N@#e;U/aj:ٙ*Vfc [{`#ԙz~s8J;M=_$!B-{%ݲ'k#۠ܖS?u⼍ziwpDEZhjWHh0#J!a4vv mSiU Tg%WPd\9rJVbY̗uey& H3 c#94Vn+?Ѹ< bpTYIJ{urzh.%$RBz`\[S RFBBjdx`t TeR0b3!gI~(%HH] ΌHYvn_gw"DwL(=46b# I{ Cap묤CтV$(z0|% (1}Y)=}UW++ͱJrѐU JU&ҧ 3ST\a8n8aqgowY2` VZDr$qH8cv}_8 7 1'{n\IN VXV 23(;]]m`C,Zt16R"7dV}{0Fyxȡx/eя=RPKKra ۑYntb^ M' #l"-LL@ Hl(V|=! 9vk c_TU͒X=a_8ReRZ%ÃfNNfbow6BMWCuXʨϺ*YwN @ Auh̐ŽJuL^IxoL3+p^q̥BD'D?nY"xN,4x8+p-(AZv/{r 5=wN}a]%{(1-erF; c 3$ ˱Mtgsss?~?+L*AMh PcM#^?&>m Z:Gբ蒇2qY'i(4MJJ6I%2i3o6!{* @B'~X*ر+2KclFcGs -Aw#I;GSID$|mz!ʝkB~Z}ԅr; ]u&]XcRWz(JO e@(dc)7@6d`HҘ7ȶ'lJbnT\pհȰvf0$ (2=ݎUׁHaȬ}dh4"R*͜|:%ۋ^?2dhp'W}F3s K0bQ-3YTo^?*seTaY0"f/}z)L !Z{{ڄ )` E̦a-* FVf-'g0nDF>-h(F']:"AԳwȐD*O`uGӫcs#A; / ̀#|lCд 5GəF o4s߼Gk*>7q]=fT3 v${dm APn?lq*.Yg[5B=0"mi+U\5^ T/ 3֝[,$CB 4@ n={c!.Ϻu3wdB&َtOK,Ffl'dCN"pH 8Dx';,O '+XV"UDbg*1xaUY_B Svj@<x؂Qa@]ds e3#, ,n]Q%+TR6^*0{VR 3WV?O$xcB[ԀDC Tbc+sl\L\ Ps'pt?l^$Cbjhrp[0G*eq|m{{ yN3='ehmzja 1_CEJsjͻUնt-.>v|Mj;'ɽwKi7\f08XV]6gQȤ,ݎ( HMc3]z=wLQ,ߟ7u]B9)5%i({5d̏J8|lӆel|f~B|}zn2koB ΞAԬqΜu{7!9j֮Ym/RzwQg& p2D ϳSM0vXZZS& 8؉55K_95ִ7b9ۋ2}hNRfF<WsȮ|֛fn[[f6,~[0zY?Bz,L6BW'"P9LrB'd]F޴{K7^ > r(uI8A9|}F,֤x.hL\17!zNpuin湜~=/0k'H1M2KH0XPC3]F3m'QT/X@􋖢pMG1y;>5WdD|j zk2%r݆=7W>ދZ0xJӇ7KytF,Vl-*O1Cu\UXh4N \[*C"z;>h=υ"-Oa4+7Ee \7EC3Ǩ[135\^#{;p{9VY亡vtȇ+ ,Io?gW$ks*f-fCW.H @tT11E6CIn5y2 z!ľ\QG=wǻ\|OU i3F2ѧW/{òFp㤙 {vbt7!q*t1g$mV4Fӱ*LOfHZɞcSfjŲP*־ɳ!U:z4≒<ћ;M\+^ߔTaU7u&\tzdnUzrΗPg>iuiB٧]!\sNO٤ Q+f]ORs ɇj&FѮr07k1j%D/gW{;)*NJ%+^P6kkpU[|?e&{3vt-#eo_j H- wHK8; na~=_vT[:uTe)8l;CzpdzؚgFhOFQ+XT0A„'qRF}T fI+垍Y,Cdm-smXrPtg.I+)QGڲ*pG:ŕ͚`j59zgGb`E3"e u@O;EC8 #PX] J&ZgNU&j~b\Hz,I4OT)= .qv~Au ,j IӴ>z /]F6-1%++ yIˊl1v11Q 8F_V?㺺8h5{X86n緛P FZ:}r/N1.6PU޸D\\jܾqEbV[9:;m9yWq'DjjI '=m $KLi36<èwu[z X)CURG&ބTWήk65\$R{c(t⼭M< Bz }<Ҽm*Q@߶Y'{&r{B1[8/e2jUTưW}m 'Lcee37 mB;jc͒wJȝ;}e1.oT~K>ArfP.LH 6n9::KʟAoi`=* el̘4f~=0<?Y皛L<7EC-NN>(wKLvD7 xiF((5<Eqn˙ɖ |7~2O7;?*H~ <)1,5{M0OIt NDWŪ oU*1,q;){Xj W*iLG[ 7h[ ) 2ffE͢9Uajc/ַY=QuN[娖l(+;n lUm`ݲGvEuY>lױ,YcˮB\%J<#CmX%0jŷ͖W4i(-R&0q'\a",``#`m^Oz`WeE,{~U7rm̪0Ąx\!4fcO[+ >~fIeGEY~D1MV8rlS?cJEC5:T~zC hN&a#7~ y30RE:A7j}z`sq߈1:J:ޠYcSCnV{n[K(6-Qp w)禛=a]\FҬ܊iG{协YӅ@ٲ#3;rrB3K6;ܽ5cpem{Uv^d2a|ʊb#X ۴O8{Qbz*:Me\,&ap{IBVP]U"2 3/&8̒(S`>uI( 4^>a~'6X793-F2eVS>hw~mϏ0pFl&LJ?Zox3qֿ|s%Εޜ+M:^!؜E NJs"S㝕3)_[)zAh,9*ʹO|OJJ?ZvroM-cg)ʟ {D_" OWS*3~4@ų* bl2k۝"~Mħ.⍲D|"7⻈r5􊛨%fyzX[K¬TJ)}zp_uw]Lr/U}Qgfu#suL4\JuT捞qy,pFEDRiGDk 8!$?B"=$R<"ż[+_Ͻz؟Ǝo;g$ "k%á_~"O}ۻoBy8 mKC@[>MYtʛ0#6'GxJN`bKCLLJQo%[`˂0r4g N,x&]yYJё煿+~diyyJ"pΑU^'J̱SԒf kZ{ul{Ypn0_cҧk L[0F $IFA kQDt652h\pXȞc' SVz`@4.+ee inq{[Ȭgm{Fj ]Hj6L\+%" (wy4V[gsb6m'o۱߿`,Ƴ@Qgrhr1Ǻ( ⁍aMڶ,&k`V1q\m{ز.92UEu`lj4?{c<\ _ϻ0M>lUCZq:qjϣOq+Kecv2z;>IOk8di ֨FO(X]gZq{/=Y%,&?0opäi?TqCρ1* [:U8`H9 t*F ETXm^e C[砟VNFy[By_~sUAimУκ/SZn>c~gIA /w?|v@e5HO )کoڄ}q Wޗ}9.aIW0w|X3ڜP6pBON)CnRcolH7k(?QK|cq㌶6y fQ慲jLflWXmMʶwi?Wuҭ|<t3bQfҜeF9U2;hoeLsRH[RP$=.S7(mE'2-0sFejTi>هbgʶ9;x#B~ԸVrn)^⮰SkFc𙲩`SKMv*\T; 8hN9Bǽa#Jkm/v_S9%՟LQo%畧ON~1樦gN)d,BjwyWߛ_g~w{8ˑq7bGf^4]&˦d!9(=0U]?9;̢:)gEmxiOVڦ:n[7Ni>h&6#wL~XhWm}M 2gMD3SmgVLصH)/s۫nD=I3HwqFgWvÜ} ]ۺrYO]ClkMc96>U'? ;=YiD'=7; -Sk^ncE@q@I;5i |}Ɍm1Lo)R^DkmNL+Zqrv0]ÌCB$EsXooz7ֲ/z4vquҶqF{z{\ xRfj.y=>P\/.yIQbWNYsɆ?0g07|禙<-ٖF;vX.Ze}6hje"m4%7K|3r{4x6g1O4.籝Ӹ\sԢ<}" 8e3盦 Ѷq!L?r }vyu8U4lV4v+Q3PRX]EMZkpZ  x{nPWV՚d%v@%ܑ7%zc?+R++& e)5j<'b-2EK& ԉڝ哃 qAFFuj|)Rq :0C;@ށD A)nx,₊lZN#R2"T4t/qx@0.roB ȯ-"':ހoXWe.9Bu}=^<?GH/ȷZA ֞sjFbԐ׎B_ RPnTʈ7tاA5~,CU sԶpo+8^|Hq YjE)-V 8*D!6&O=ZJuBKod~$0%{.[a:D03C .FϡS>*\XZڃQ*@+lB{Ym/m<{8 '| 3`9EE9',h".Ar4äBA"H"{7Jy2T4#4g X\GC*tfq57ܴDKKpሢ-IBıhs'ho`,UÊGJQz Ip "Wԏ,5P̓`]hًF7@\" 7Hը>n#ryAlg HO!zɗɎv_bO*$c3F;$WEA"l5؉þC~;7]ERY்*W]dPxnr\Ȫ.y?8BkoTRT W0BRr eG1 GgUY:ߔL F%'=ae>Q.% N2:&k߮{&^D# .Kts3\wzve-lE[Iəޫ+A`7=!R>\2 54r_Up9u&.Z@r'|N[cdh61 #¸_2ubY8"1A-Z#bZCE o=3{x ; A =E[1oǷm3; MbHya}V2kV$vXq:eu;l-;Re[eBkp^58+@~gA + sk:ùIT HyrՊV+靅hMe+ޚ '>h 'FߟJRN(["B0xM|Oː5r#M4u%~0 8J<Q>AChW 4aF{X _*\!8h5+Fu@aN [-,TBƉbC?ww *jxu2Vqȉyozh hG]^f~O)r%sNKw|}S.v,#ɂUIp&0yrD^_ؚ;llCUmGj>ײ2~}<hpuqK%T,wX[/* ,?Z+jכԹ`Fd$\y cJ1?@ 2RZ_r#p̓Uw9?vVbs:e}ʥ[Mềgdzq bpBI#{M^&Z)ġCK+ŌPߍstu_J.|.da\JX:ᶁ^2kL9ӫCv9;Q7|ky?åŚ&=Bx#bл~k '}=5vVOth +{e %7MBvamabPT Zdlnt?c=]iQ{hM 2NKY"OI32؋ZM UŌ󱎻P/ZJ:D DUlH{ 'k$`/hK~dp =N\k _nsպxW2쬉 7m܋A,^`cvnD&® yYSE>.N6†#sx'aXv$I"!h AaJlOF;$v.ѷgRA$xΜɛrRn 4f"aRi7##+S n7p-d3-#Ǵ7<]>x%p]ыO9aN6{fȀCx#WlG9DS5尭>8}V_GBtJ;(A= <] 11^_BE܊]ĈN~Y7kvsI!'D<4,q.†zUM-i~s<)R H@I ^m>+C$1`zQM#Qkn/*L7<6lNL\(%dC(QH2>'h?8@'R߃Fl!Qq :")s ZyMï1lSN߂ *{}oC\ P`UC:s}W \I JF޿[Q`uEmVAIEn ;PWʡ+~'Fv+EZ(̚Ga+>_;V>Z*e_I@*UUBJkCO 7;haU 慤d[)[F\C ZDlcNLIv@V aN1'/R:K9ʾ9;U,q7YFJA_@J u X񷋉I;]%.8drjXvà{7ebvA9e 3l7,އhNх{6tE!J4eOug`&_&ɨ!z끟kzG>Қ&Q!QsX\юe& vRU5v P.yfe?.03p>N9%$7#gfX-BF  ;-#I;0zF2ɽyc1#EqKYF '4[FmgV8cqR,/,7G܆x>"e|VwT촆HZMy|10^sܴ (zk0 MBIa f vWݾY YC =;WմcP•%z=Բp&KHM']?EN(RC][0ze+('nց[=adcb}jAX{s7kh\` 1<&W sIE0{*#>Scv^z: &H(B6`@:뗎aN.Sb_>ԝv2d ͯ#낳JU֬bq`h{m Mg-'dӽ`-8-bT;۰U,ʨkonmwk8Ak<en̼TCr:s&{:9ձA @zY} Ҭ0uO%cUYK:OpfLĚ)`1)_٨>H(b(k$]^?+i2j.ڜ_L.RTmr7Z4)X>u[ CLlu-y]LcH}OVz=7}V;C'ۋ! yX @@+QɽRFBuҗjWwi4ѣFe& d@R\HԥȘ3RoJ8>)KYnfnPns$8OM36J`㾷J0 tIi13B9m Wgp7 iQx>bR7'Sᐭ~0!$TC_"_8ty~thTVI]5e)$_>5oj.W2 ƃAqu=z(E- ] [\jGT.mQy5[*RI4˨#4JߖKC`^_9gAiL+*7H\`$zR*-sŵX̺enG=/|QaF~5Qqwj *ch"}2oh9^L6r4suw-{ sl} @ a__Z(fN SAڸ)ǚ2`gXJeY(RmVsLZPSwX{SkM bs|Ŕ^h]2:!<Y2(Źv;5f29L.es1|KM(K|`U7/5FTY/toxt)6e_ܘ ; PXV2w8#'ث'ݬoҮ:K*w=* Æ Rvڒ7ADdmV YfiqfGov>p{ Beҏ7_D6?P^o!t>5GKUfW8?XAML\!bJ y&tm:X_=)?]YMآӗ6tԶȒ)7锟ASW#v~4L}]vʏy'_#훾-TLn);.֭M JG qȁ/M7ycֵ7w۪1;ӡ ߇kTÃks,<ج5kS2s R<(ml~(~S|2yW϶)],P`²Wǂ",Ҿ7 q]>*ӞM5evo׀ΌW`k[ &zÜ!]tH'oGZG(Iezc^d !fΖI9gn UJ2E)_rٕZ􅴠NgL 00_l\7L镥m \MT7sj1mK0%d)E[+qӝFG4 82Fc ML}Jy*b]HZ#Uh8dvZ m=5-hEpai)VeN엥QEPi\ ;%#Y`aPsaSzPe`ģk)MmR{f]fH?R mZ;u^Ao!BaX Z%nĐщB'襇xLҭԶo@W.%%.X NA-i @b/+1#nc?Œ Ыڠ)uqR-+) K|`UBC]yз ;~=eV*Lnb_SP(H.bBsʈy(F ö +[v!ыFQ2M^5b沝Xyi)ƒIǘaH؋4ݟ t:d}Cq1V*@K3 ׹!dι0}!5! ]oJ[wKXE!w3$h`vPɦWOv-E鼛*e=UI,}e&eFoO"4ً2- 5жLS@81uՇQaq9R a;F5 )nr9)GXL.IѲ}S 'jtW\<?FgIjwcTV5Uq5B`fO}l#'jH?aaQ,i4m,ʚUu苴SLU",,cxdmH',,:ZZrc خlQlP/E*nR 2ٺz_ӛn(fNo=tFdLJUEП߿5S,m gRƲAJcfNgF0G-tS(NXMmYhBox\&-u*}biNzwΞ7A U֣"ݒ(]#n-^5L|c&!^&St3>dֶ@myXeF0Rz/(9cIᕡarbLd\bS \"B~*ϷπZYϪ>R_W[%o^L^HhZRTfߏ an;+/A( vM vc0]`ۡ*[5Tllr Es*nHў 1:߷?GI_V.<1?0C^f.,r֍yjtZzH(X=Y{n\=ۙ¡T|q>8zp㢩8m 1]aLZ+H5P /+~.uٳH:6LQm z?@ !2 [a՗90~rCrx]RaCR5y4wd)(DP9y1MUVyh&,FG^,Yj%^\iՅZ80|eu~E/Uz9E-_YcXE?C}TwD^3H(àR :bX+膢aP2&6fK |~ň V"|OԶۛ_šd:TqU顗6J dԬO>&+FMpniPi$l_# 'Y'^5XvSL&/ _Bbx݇:؇9L21:%BA *"dYKTSϢ5@ kX"@ٺB1qq?ss#<<$NPpM(r4!N}>碙DE"fݐD/j^.-^AtфIѾ5c-fgj~B&(OROӉI0l7`F' ț ]u[!*Iƒoe%Dj"%֡Z@ʶXsQ(ʕ:b}JeTz⬍|0|X/>lR`&(VAmQ,.ԑ& %a܇2I-M2?vJG 0!d" Ths@70;j%IZ h RB)U DS(7cȌ,։]ذ-NKʌ"nM] UPjVֆ$krX S7V'lT%mdD5`0չXh K ^Y۷*{}16=_J͙TlwÚoř5 sN0bk0|,ZT(44[NQPWmQ4XfwJ\r~gO<=Gn4N՜H'7$%EY !m1eGgd䪶}CkaNav ̎5{d@y~%CJxHPZ(azhM=xj% HQ7Rv#uKRUA/D`)(% i:> ubp Tx_SeYt.XO)44 x^İޥZ9`^M2S CTs`[nVR d|}F֓fU̕R)b)T >gsl !'7VӐ]4K9J5O@) 5T cc3"M)B׋'B fmlhj0j9){9n%ܪcuygFL{}AWfm*09_ R( f}MD'Ruf+"K6MŰ }ѼKof*heۨ;WM1˹rEg{%Z;@c&]r1 hF^Ep尯K~)u sm.̋㵍*hɪ찙g}){e2o|I9n&C?9-}ΘxMфX=9bx bѶҢmL=%ZhpC.b>vH]CK+V ,}ir~ ز̎}&}߿&s PhP #iɫAz@b[F P"YoG%U~6d n,׃zo]}_҄ڡ eG8SAoWpM%'-ژeҎA7 ~YT6)%}=z ~-"3bO?GMJR(85z#ET-Q U<{}= 5 w5q:0Ar C#HFkjԃ@XU9R݆-ÛEy7_蕂ћmNH4ZX %1(fz ~5 YpѱA] h2o r |+v!.9U4a~OG hwo؂ya 2/G:"ːm)f)PZ3Ą|IH*+IǦAX۶}a\@6ҋU YuZEq۟Cv_~ވbrvWMde( ٌҎޔ uȩV9WKvI!i_)9ᘔ^z)8S&6ؔ"$m\Q.$|3`/7ZB,[lt+n^`U 9d[V[i(_^Չ!^,yQ5>U5FBUP8d:# 8j[)y"4$(v.bHr |mMƪT4jA<9}Akuc7 )t(ssFeb40=wΓM33(ԭK }^n4H+%(1AF61s6 l~Mid.)ԒLQ 9xeqmlMzU]3cއ̳FI.Aս3v樽~u4!rÕjI(KQm~.!~n;Z{~[桿Ƃw1|*?~ *@+ĨDF8&)NIVk9GWQ=Ȁ!ӋI:YF'{WiyN}PCpZW&h#78j Co} Լ`*Yv(e52\oMQ8};&! zt7U =vQݔ^ I(A|=w bUjq(̊#fEs-zhR'6[LsRt.UUGmPxKCYmjQ_>JS>ΕA/>'k; -7d)YRb4 ٦j]k{nj,hjxi@\?XQqV*S>VEb~[Ah=#I~cL-%(M^vj4'8.2lz; }ǚ9wPU3M79>jZsT埾E=Lad2qpoߋZ%e=?1L`SA)}BAc z!>gE2M =']ιTndo(Wx<=*u(sjimvyޔ vr}{q}=to9F8e⊍Ljb~my'K)3 mb:(Zu7sAQl۝??ǘ)/<+E ӮC_:ktzB\bأٿK h^>B҂1H)ѲRJc=h1v?U%pd:c߿g.GW,_FCӖOçW{|F(^OO̓ӫ=y>=MOէ_~1yu {}Uf5"=F~ 0ob ’P8/@ jՓ9 EYꊋַ!V,}r+mYQL<SٙgK>ģ1^%nZ1GUg%qAj<\[&.1dGވwFAg&(("3V3{?z?NMydˀX;?|s:?892WK[RUXcQ JaS~(/+9-y|i2$,$Tw[;@E-" f34~h"sO6Yhr Z5Y>s*殇5Xz2~f:mQXۻL[+HM5^B)1{ `RlpLŸ-bk9nM/)~mZ+p{P*\kqZx0{ [($0{ѿv=V` j~V1X13Rn}yg=}*wu G5}/gbL< p axjI3w"vZiQ4ė`̉gYP e2<-,&UkyoA}QhT=`8'tOGk]-‡!vڨl?B&B(DܹG̶',e!Iû?B_&"+i?9O3)| b>:?áOAScPkȷb,*μxV Y^T/ #7A9&VGrDܪ]Dt6/9jaBJn'UA^ƠP$QrHP<*͙K\e%ye9͐Zg!o3ϽszpgH=q K 㿇>> iR.O|,䙝(5Gi~,aAB{X#e\qrFmSbNcp !/NsOnL)imzLOV]2Z~MqZyy'2Qnm?Z󬫅a/.PdXR??&sc$L3D_48Sw.&-e)S ʉ܉\U"-1xͱIg>$).P<.!<'L#@*OezX?.qΘqceF~?ߟMu^CFEucv'zf`fnwe 4[ɻ͜q~WgncPe/t7*x/$co08>.zUc*p0_RXy<<,Wjg M.<"u)/4wEm nZL\P BI}+ý/L5U6MkuTQJ arm,t9 b@*qB.3 P~,΁u1$ۨ9%Vŕyu0ӊ?WCwgr'9GD1Mlq0,.fQmaӨCJxU(Lji5k`͟_ ^ućQ[|{3cg6 ^owūZ?gk-#jp|5Qw`iyms W믹Hj>:'7$>G jaIʞkQPG[z$-m˴ffg&;Ê+)bǴOd6•LR۸Is{ϛ]3KHH֛DD틩}ePf͢[b' \-dh{(l=m[~""P/QoO\,B:a:(=ykZxX6wW3Yxx G#ܡUˏ5*-(o28K@0l^)lV^H]5>ô󾐈gXc)qc$67k۔ )֪>,KhЮ Q_s9 ֒v>s:xi 6 ?è1kv^-Z6% QֱE~pk_l.o#(Kə:Jr2S[n dso9=0@WU"/zZ; 4/b:}^!Q&+}[Wl{l0O߇e:{tx%}W]hilibUlsOܳ*4 O&^c&ns5Yfκ^o[ppZg|YMu'c\v(L=$1XZJވB{:!zb.F,'3TN=(ök K}Iy7;r'nM]PL`1A.ڽeQެ۞CCWVfǥ[,y_-; OL6Ӯ8 "r˾dzߏ՜l;{lQ Fڧ$@eb/YIfg|Yٙs7AQhhC'AWȍޓ`lwW!{Ac x{W/Vmgk `4*H:L>4bC}6" J pDB wN2NJe슈)^u!Xŀ Ћbfƚ;6!De(Q2̬5#<ʁ%@ZTt9~n)P4Ŕ>*PnAXQ#c4.`i]2\\>?/=E(C׸s_ oy|\00yOHF0{FLJ.F̰G֥ q1q \J\e&5EV{v$*6•VD>\a?jnjXsfF&jǯ}oQB^ .;Kup7)!eQ0s!%{2riֲEfǦES(;eu64>\k9K4mH+sH XH4eǰb<ȮyU"ʖ:n*-4aUN}` s1Pn3T> հR' #w-iڮ[S4|r:.v))O6{fנ.V$>~.oAX: ;6&p/+IkmdX*U6lR'tQDll84N3jֺ";_:Tt*L#\SY%W!X%NXKne*&k<w unȺF`IȘVPvŚu}w).Uqè%E0L*-ۙ $eeYv6!~RNU&B&. 봦ﱖNK&WM<y)ݡwO 5cЧ|:]N3);^2_I.*.m?Dߡ 7Smȱ$@vNcsj[-Ç`lk]\G0=ɔL'YtIs CGn zyI__t;N#࢙8BeըhE-KY6 3y#羯jj0lc׏Q{y!` ;0FDFLfŐJ+œVZ*VWr o.`PxȓQ]\T}=iaio$hn33 IbEbS}14[3 2k\jTge>^L(@WYPZ=eэت'4e vgU]qΦ&g>]R21/i8;GגeFa=rՓmԐlšZ$yJ=&,/T,s<)|mV^i)$6 >ڶ7Q/3͏mė8J=C)C mI蚹trs:tKh%UU˒=a l dZTCI<:kжu*u>@*&s,Lj;0ͲLо3%!$N 5,^d5̝Y>Ŏ˿-.SԐFjmjQ؉[H lMO99yc|x=NѬGkjMi$98_>Ē {~*}QY,=ȵТ^c0sQ 'l)T@]+lDٔROM']A2éCU'?Ħ];b|/,L*GFhM҅%/F/YfTDo8gR{1k rap>L?B iqP5ݦ5hB 4Gs1}4zw*bܒ/tsEb uK~;LSǽvov+v+q;xu򾭻4)7EvGon 07sH?c zEcqΊZZ? UZ I[<zҼ~b{<|GrUe_3-=)淰yLcCv-u"FO6eEBym:vcaU.D%dB˕8Sh7k@NLΥz؎?<\J5{v)T-i9!Vѩ R:5tV?^3pu}f8HpFZךr #0CwK שּׂl|Cn{6ڧڪ`Dլ`MwKal JT ]ȃm֙.⽔n̾ߏ'$z,o[ElB]Sw$}[# P1< xQ&uY5ͽy9FLgel}:jF/Dz~[<^ouכoz.-z"y_?1Ua;]lBu&\L^ ,xRR]Ak_+i&b"r@ lr2<*F` gXU#9⍗-A!!.S) ϴdҗ^\/ G|ΕǑrC$Bcw ?Rw Ć!]]*:x+Ki ~E_T2l,J'BP9ȌiR2QL?XR0 G9@rLp7{vAh#ɔ-z'̪q\VRZ :Y3" [#W\[:7-eA1Ie.bYv~uc8 <.^EtKe覨ym;4V ;g˲սDVc7k_Z7#l` 4j~/5gf|p1y_z|WtoR;F^[qEuF ߂4)f zw,([t2gT|1͠x+l^ikWp"!i9[sH?^łi-Cèa|D4[ hQ]?(:(7Ol=h.V JgL K 0дK P sX ';A-\Јo+)4Y0"0* 0i7Ak|Q2#|G-4(VUo Z0G%LmZmtbSoJ1|QF6hq0wB-"(snJ"I;NûP3Wpz2 0^J\S]79H& koY2|TOUD.nPʠV҃A!D?kH*TA7hS̮JJ-򶴵Yl S^#3ưJ]m0+M@1y?m,F}}mix;1@(P@GAa]{@"n>C s>[48*ǒιYu"Nw;$EI&$Rx2D ӑ>׃+2}T 㟑QGb_MY--_.|N`rs2ni/$_a8lOs!ȝ]R3 Wo36˹,"|o8;%D<=qL.ҾwH3Tk^Tm a1 ӄyfcϋ&aW$$1f0##t5I#t K)8a>7WZ96Cq:KAMơ3='/~=_k npEGaԡtt:d@ac&hPYR)ƼM$xe0;,ʗKlϩ=~ (]OsԱ<KmP͇>Tw8?UL%Pj|%0-L=[kpEMNۻW)osN;xN~DMK ]ήK]'i6ǩqM/ <SyG $(ܝ")&-j ˛]};?sͥ$<ړq!Rw:"䅗MCZԀ&}}3n>ܘm9[@WjFܭsAq"4dF5 &c_6@,6vz'Eh Jr/a&50A8 E%zϩ*l=ǁT o-+ $|(WqÈC00:, `&c0@@IPA$pA|K`bZ$NxL3({hAMѡ(-UECP .p ?驀Y QQ?C3a :EEO05֓cE cqhBRpK"B @ ޯ(|ޭe@ Y]I)iXczIpfU6qKHV4 ea|2 |$-+w!SpTg!/Z@jY븴 @ebc @RQɎC ~3wr:ٟufKң ]vpV21-3!/5M .? 7}s@/kOoCg,n"04L) ʩ.KG2|EKasDa@ٕZѭk_@wo skZ;&Wr?ד93$n[rNQJX=C\̜:ľhXI[2",N7-c{dܯ FkDK&&D\?#bO^L?q `ጁH2 $ K2r 4~p#!R,sЍ 5KİYTuZf"Y\zgm!\${`2A+!`G}K_Ȍ!fR^ 9 P H8roHR<.L½{h w@u&vGw Q_YNJzSňn܆ ;&*I\H'Z;Ѱr;1M⛙3P\=Rզ49ZY:-@Cr?,Sp)"sE_mr:LILBWi )(߁gAzqJ/*aGuF}T NX2JB`5xz̋1-E.@Ɠ>כ3 :k'"G\VㄠڧT"c3kMv1ڒR_:1\@7-Kn"SxIC3qk)0t9uP(=+TRKjbɩ)"S9%##{΋Aup22@g),/ZeN(^d&(IJ:3ZE5.7~E.ߕMA?El\>nmeڃX(MI{ٗsm6JpCB(w:/5P }tEp{o S #RW ob , !Ed/-wh>7Y1}^_zɥ!=rrԠ#%&(4q{*t!'"I})hx8h(|XDFku]hk85DL?h_MCC6 n]˨= $C3(8NgPRV"W$ILb^/:|[2i Ղr]$2 ` 4"?vpGE}Kh?XӠ1#.@>vskbˤ&|"w2eމ˱s_Jӥ 屌sΧBA۴BKa #C$3pS(I|ޚT{:VaY.25''LD6yȪ3sw>3ߛ̊v(Ÿlנ"h][ɑalOLGwYUZ 3k% ۴O g͋&># UH}[hb!پshc1:,TpKK+KDY}Z↭Z1KV@CG/F5sB=MK+ ,y1u wñ4GYBnVFxM8C$‰VQ(`yN4Aʝv?+o/V3%ϓ|ʶCs]mBQ ŰZ Xxx*v8@;;`Eh;v9yvf&[uA%^B,řVsg䁢V+?5kV-೪7% Ɉ=..$ bi\zZ V/U@PC_;Geb2dF1t A{DOkv[]ܛ Vѡ" Jl, }L=}O1*ü2P-(c@Fh JW vErψ:MykSCm`bC51G4Ϣo}gP5xn0,:.D=HL^0G^셩}؏2.$3~q^Hu &[J!m%:[ݣ"e> $=gD"qdzNЄ{ycuo tBx[%^+y#"+ &oЦ<"o1`A)`tr{δ1s1 #c z.D<5+Nlnj>h+Z(# e/f&u^Ē s^;=o`2ɱ<"J jHgdH%sL48kj`Be P\pN!|{ߌȭn#nP?/;d$7;۷K֡:Դ FsRF*<S-y_27.kZ kAZ m}Nu79* @.\7y,qdHa6e7Q<P#QC >,NQtFaBB1}՜*O/{m_2P b~]ZҲ^+p/-Z@v0}vJoVV_{ ?W =JXv 2 WфWDBO'ϒp !iw(_~=BLjJq…b;FK+;F-lqAǨ\f,PK?h>89@^wdܚl.Ԡ'H ЙŵYxˮӝg tIn0g8b(Dk> _(Cs s9}X4_ b*~@a*O7:82ptyBwA'sZrTɿguUd&ASPdu$>apA2ϵ3ḑ1*/3\tmC(;&ti/@k\&:_8#sjy5* '㹐eUם/ĞnDf'QX󾖜zP. e=i(Sh3J3yJէTk1To͒ϬN%͠ဧZ$># GEPh;zkUƯnAp{09`yOTx'z"8heX q2mk^4RF]7 0SboGY̛TQ^[/x")ӁJUl!XGJP8⺍ݝ0bBdxjLܧz%턪>O$1_\ӭA)i@Y(⶛Y Ӥ1p Dh3Nz_*En68`T5&+kczR_3F߄P}[a ܭUg"-\d V/g8$V"gĄC)5PXtFaskt~%U_$l 0 :m':J? y;LQOCF8  _boy_.76ncb4ˏ1$ .K5>n s'ͧ@؄h@ؽOuZFT]Hx}%Ve?Qy4'/ !_HF4}FDt}]8`4[[Rb&̜jxOR83/~eӸ=t!_]bBћ|P~ bJi!kt\޷y2+PUH7ԴUC@6Gs/Cv;)eۧNߴ<_aMM@ZSu@E}O+Մ]8҈r9{Ϯ5&^$З$IUE/]DpdaBRqrx5K@_RDwyk}ZKZb8 7c "tFat g|` p{;niԒ$E< "-͔f6 LpB;1ISnǚ&4UMrAdR1UbyXa(%jp@#H|fs$ÐdFaȁ*I`ɍ+ i4=+'%d56t|A< UX"ee@vljtέh"QWqH:Å%8RB4͈)vY-")\{uOW4ր"wșCLU&:sօ;\EˋT@kh libw\.5\̏3{^;aUe!>OFGfXd"n^994?IUm9!2i.LsӧϬ,t֨txݔ<5 BQs'ce>< 7 uʐyc2n@:Oh m\:xitTߜRP@ eLʤO4<7t}{uMcIsZGI>L (V}1KdkF.Yg7UO-s|-C..B_nKBdB :/N.7\fO6-uS9{`㕥<ͩOx'l7*5/5.xd8{XC +Đ"LԈ1Uev>ߺ, .E0eaw#B=Y x@Lq$5%ϱ)3E 6{`qwqHuڈ.6 ՋÛh:*N(grxIԮ:ba7(}?|oH.7$)lg_33$7@YYAk<;08˹"9coYZK:7LlRۡ?ԤEk訾jNwH^jl60]k$Ucyw٧[dn^<*x\t-7ݠr{QA+Uv(cBJZNH eY.#aPJ>752$١ 0;hbP .` 9SS)DX pe%BC3(Kï#,Ef}sL P^ JwZ̔ Dx{Hlm^IY[X\6۳o ;5鿎1ZV'Bqh3д艑lNf FArg#uaU}"hݴbhp_TR*/j߇#%Gˤ(*Rd / 2'p=|٥>>K ?7dxK8Y'@W@0('' Z&\% Av浃gyln,n5_B8{! Y x>n&=AUA p~L,cU_%iOvoe`\67#r8::MP aq7T3qz%43ԸPűFy#f؍ʎt-\Vϒ 6g޼R"5F]+%w?h}Ò?͉Ti9݉N,.uaIկDArsVRciXCy|i4BPy}5ALo`t?!{ysZc:_Zg-)"H{ E*BFP]E?@~exAi{eDɲ.pOL -2v <&V]:9xGuǛXJJ{JI['hʣC8+c8ϓk 雭p07ꦫ^08!ڼd` s]mHj;@:iTش*FSCGhO$,:;B^gF%;Yui1Ii!'|ȅ.{ߖ[;>tR伉YeĖvFN@'q)7U择J_i)sxO bқy4&8D%e}qA-2ٹ:T|d@T1r@ ?\J_*nbҜ?vB>t嶏m!<"0iB(cm<t=3L-+P}ƒ/EwͧZZzl}.fҩ=ĢADg(Udr}QSGuXT!8wo^X 8$^ mpNiJ kXr߳6LJ L9䍅Vz" I,P`>ME*hr" P`iv]1ĐSP' 7h }h_[ʹ˽bo4%ΤhwNLkn"!PϔM'<>6oZ̈́S** C_~NG~O?'R?32+}_[̈́:ƔPFٕT$@Zz²^ 8Y "T6y7\Lmu92 4df z=ORdB $9j ->v\pm5+BDi-' x<%? 1Og89 P`!6ϵ?/>6oZ,4O&:"f1#t #giO)Ar+c( 8E@Oa8{uz;Dbշvf 8sYá+ŨӁࣙa-LcR|l?vD>v#GDͮ\ZUa l󈐸 }j4ϓ BF0AoQgc7k3C U Cc'ن¥SI o^([g>P..u|m5/ @jtBյŭQcfݘNQ'#xqTvf jg(3AӪs};5ANF\sχCXx;Vz0)MEOlh]%hC8HL<\T-Ktp˭ޝWLdžM+Kű 9\B0%gCz?SRڰ KH\o}O]y!  j~ة(kQt:ѳhtWZ90&ӫKg~+\ǭ?;IwSddj}8Ōp":!M8!tCyGt(tA,Cց8ɶɄIӝ:c٭8;pvu8Ssh➀b| zQ'#.@~bQm!Ea3BXoڤ!W_*FdS1N=:3[|:@;Up86 y5:."r_}ͷEPZbwXջm&ߧ%Og3.(!k]91x/^*P_<"!Q [-=>vfz#jgmvKZ sm_VLx]I>,% {?_)!N#@{#_|3Dv'ȏVBgo;uC24@ΐ! e5F&[H{0wsZmvfVo;?+`tl9dƜ-zC#o, ym0u!4]'q|kLT\[kYopO?3$zP?o3lyۗcFhxi3"qRhWp>?WsCR% Vht&énU,g@//C c8ç}Iuյ\K[uJKɟT\taM4`hW_~ D`~#Mrg/w)(3%w !Ҷr.L.4wđ h *0 8CbTO ls\iCa.39-9wOe\~JA6jfGaj!z X%khdxrΔ#ȗW=<"?~k>%)zl,ސqBlr g!yDR~`f+L._)Rm>v4Wn3Ǜy:y<#j wr~CRM 84ؽ?5#oWg?kX ~ұeхkm>ğY {#sϚbޓ~C"C~\tµ;)Fu$7vyZ6vϵ+PxRLqTASDwҢt@g(!Ws04<*j~td3 uYSF1ص+}NkwZenf棼6ϵ@hj^t>O?ʦ̢:R6-lGc~ q[U[kƟ;M\PVx:  @j)>>f$ɼQ#Jn*+([Iқ-պ$V 2^{{h-@;Njn7H=GFEU ҝf: : 0yƲ 3t%F`~mڝ OIX˶t;\)^T{9~rwej$>|:h'YTY+TW`uK:(sz+'~yoƹ#ʈt.kTgJ *&PF,.D P(Q@Fbk}ӽe&N "w9pJ| j]wT yp.3Px_2cOBk}9o]V'}Aikb[4k3dʳcX(" ̓~kk}f纃$Dޖ9a~ek_v  v˜D'thҤY*-pKN p<6ϯ4u绾n A #I_Bɳ\8OE+; _ij9K8fsk}ӌx ,Y|쌮$Q8?gn2rG72zK!¥2ʭ'N׏E2jϱw|| G6oy-F*yKW^VeEQ;{\oԕu$xѳ I\]W# VԚkWC- /-VS|'5k}TO`*4+8\RDDjUd1gg' [5S*etYX$^܏t}f-UTŃ`Va,t>67] e`9) FZ3+ g+Ȟ U.U0ZA arHG%eVpK4m |lNRy' tc<82htޟY57ok&0 63ޕ+(f~ k 4HAK_UWŝ tx>ZJ777s,,mzh!/c y,җϟ qni߉ -Mh<67Lӓ}Bmϩj`(}z|oZpGcX'y;/ˉ11 ? Muf|ZukLLZ#[sZD>|&xމpϥ# Rn[ǁQȠYL(ɷi}~,_:Z):cQai@}y/ϡ a2x.o@|m_cZbeu嗿L ȝ u;#Pgfҝm TZyEa[c|;֫EV#l?%?Lrb^x_:V5 Өuk"%8%y^9DZ@G!tͱh[j?50y VBwœU/>Rtq'r4IR-mD>vDD0!;G 5BW? d[jOO9fQLqoin;V{n4}>>D?ѭtmu!ţ,kSK^} zm LJ>2Z6d{U~dw?,*q>}c;KA\||'D9/#b|~{5uX+_Gf;SV,N+dS\j+vȇ;-5<&Ƌ.Yt?bCW [z\ x?:,E Ӧ/i;_!^HBS uWacDsDz:o!A50ײ;OtQڐ+>{U"S:8.]H+'f2XYAAؗ$0΂(}rWxb1@΁tMKB}~z󜘧ݛhM+Z8c~h}*6DC}@C$}!鳋T>#ԂY1ד(3l1_!{1xsT"֚$pGSKEVftH؎ "D;$c`{^LwpM~>' QTHLEƠ:1NX3<G\d}vjXiLmHRȾJQ\ lY7_!N`}x"U\ q‰ӅdY7,g.èy$8&(#Nݲ~L35jҌe{eD KąJB\2;n;jDGL[,xq e|-סּ %]d2" ʹǯvA H##5++' M7Al@28d^uKfva@_Gzo#'21Oz:Eza@O8e}yy ʔ9E-T.w bYv%HީVuDp߂ұBڐl $sțبteEpQ o5*̾TEΠNPI#ny_%6ѓx^C +\Tf $"K]_[Aw |?}2elYjoBO7,>h;ōXMx2pw (t@C8t ?2/px }tl~fC̙i@L HKGv"tG{9K$DiGy}<_MQ0`-xNs9􆠥.")^l[('"/Q8_+ի D |OۀE2t@!c˦tiΎy6@pYcv}:©Du[|G:M_sf}Ru^`~wFk ҧGyHcb@zAkisjC"(AF$nľ0.+C|kXC:OmP#+`h7T<`=\, :em$VOh2Sɿ"h W%S0\uB΂~>-%F[ NF&|=ÿ'N( B+E*9@Q qm_!<Ahr #6$* ٩èbv]cʪ>Y}G_|;J>VP 2ʲɥ7.X{.Ja DZqYu;,8juyd*-D_5y横'C{G25@j,bsP&{넔c{Ye{!7$?8Ee^k"ĩ%E;E1qgG+VN ͧ!8%C7}:(Pr<oxuXA{9P~w&WR}Ĭ.YzVneXin=ɸK‘.=x!LHBY9) 3 샷~+G0b:6#:N9 #,)p%}jv4.8ƣy-/55I:hrRCG-jP A,: aiq ZPEte7 v<T#y;FyxRa>z*xl#qjG,BmI\Ⱈ=zd8hC!yL0+ngHk^d-`3vK뜻Wxa@Y`6B۝o,X| Jxdˁcfo>'b (G2݅1+]zLI)td{NY>#TD bpK-6G cȜb!{5T8$"jm$Pu4q}r?51(0U jqKr伶?O~fmq‚T2+y=zadt"#>-^!1A+_Gy{aUMiNҞƑ{Cʨ2$x(I8ס!w^$ Ŋ/SxƊd$څņۅ) s2/`4QᘅsɅ8}iڕ1YIβ~jTwpF&{hƻútLiUkǙAF&Ud8m%V n Yq ~KÅ.%)ofDΣIFuBBUAX *jhXLnLc % Dfރn&nwR]-s̽3m8CmQ}Zpl .8>rwjfTܼsg\Y&`a~{Y2|K9;*^m *OY "]kՉ`AICanc0@CܯDJWAzotnWFjsS-;) aWғ4+|pi0Q槊ZVެ@PÎiSp4?{[}G>XC'qF:+JOyxP(CjCQʼn->3f ~>jz &38G(6QK/95?"TEM9?`QOKc;PuVRkPz*,a\% B4f^%DۦQ88uZޡ+{X KC*)7hWKA g6 z÷"V~SimL,#UmZm']ŲTpTq9 z>q"1MqS%M 2 ]6]<6ʈˍ=vKڞ"M_[콸$חVӝYas Q}Nٰ)bu^1 WԆtJQ(/#Ǩ }%_B5~=X!\?ya:Ν6;($>pq.M] X׼ן!qQxUAQ2,bb'Z֘ۦ/ Hޞ!+4`EJC?D|w i:!6Z_GTlLr8shӏ.&%AҸC-K@M(cù"$Pٔ^N&&YHD=T!T#_jХ,>Wt+jMH|Y.;"5"Ȱm4\5S"\E= }2wnm#Цj!/C!Cм_;\}_kf?6 %2ڃ?d3gUf> ȹ$! k g0lCPA*U-8M|s=gU WĀɹzX#6䷨Bꤍ"<xF\]_S ƌ JC^|3 si4^ަ"z?z` 8T`PQj@ar}W8[ېt0_SElq9f}w]{2]L<#)eap€WNpVmI0Dqe  ∁ʡ-PÙ0w°bc1_щS sEU8^>^qY0>M: QpЈ.̶#ACwBC9?73oD{ί9 |Z]ƀ2MC"j8 [$//c RNÜ NtTk4@;ؑ8 Gۥ-$^Nuh"\Bu`gݮQznFo endstream endobj 23 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 24 0 obj << /gs1 32 0 R >> endobj 25 0 obj << /sh1 33 0 R /sh2 34 0 R /sh3 35 0 R /sh4 36 0 R /sh5 37 0 R /sh6 38 0 R /sh7 39 0 R /sh8 40 0 R /sh9 41 0 R >> endobj 26 0 obj << /gs1 42 0 R >> endobj 27 0 obj << /sh1 43 0 R /sh2 44 0 R /sh3 45 0 R /sh4 46 0 R /sh5 47 0 R /sh6 48 0 R /sh7 49 0 R /sh8 50 0 R /sh9 51 0 R >> endobj 28 0 obj << /gs1 52 0 R >> endobj 29 0 obj << /sh1 53 0 R /sh2 54 0 R /sh3 55 0 R /sh4 56 0 R /sh5 57 0 R /sh6 58 0 R /sh7 59 0 R /sh8 60 0 R /sh9 61 0 R >> endobj 30 0 obj << /gs1 62 0 R >> endobj 31 0 obj << /sh1 63 0 R /sh2 64 0 R /sh3 65 0 R /sh4 66 0 R /sh5 67 0 R /sh6 68 0 R /sh7 69 0 R /sh8 70 0 R /sh9 71 0 R >> endobj 32 0 obj << /Type /ExtGState /BM /Compatible >> endobj 33 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [288.96695 260.0847 362.7389 260.0847] /Function 72 0 R /Extend [true true] >> endobj 34 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [62.614033 312.46118 62.614033 249.53098] /Function 73 0 R /Extend [true true] >> endobj 35 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [331.74832 286.57516 316.94485 286.57516] /Function 74 0 R /Extend [true true] >> endobj 36 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [268.11453 244.84204 157.08119 274.5907] /Function 75 0 R /Extend [true true] >> endobj 37 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [137.185 279.10965 269.465 279.10965] /Function 76 0 R /Extend [true true] >> endobj 38 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [173.42406 278.20303 292.787 347.12076] /Function 77 0 R /Extend [true true] >> endobj 39 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [330.7992 312.46118 306.8633 312.46118] /Function 78 0 R /Extend [true true] >> endobj 40 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [147.85909 229.50494 375.82358 229.50494] /Function 79 0 R /Extend [true true] >> endobj 41 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [93.58854 241.65936 41.11003 241.65936] /Function 80 0 R /Extend [true true] >> endobj 42 0 obj << /Type /ExtGState /BM /Compatible >> endobj 43 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [288.96695 260.0847 362.7389 260.0847] /Function 81 0 R /Extend [true true] >> endobj 44 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [62.614033 312.46118 62.614033 249.53098] /Function 82 0 R /Extend [true true] >> endobj 45 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [331.74832 286.57516 316.94485 286.57516] /Function 83 0 R /Extend [true true] >> endobj 46 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [268.11453 244.84204 157.08119 274.5907] /Function 84 0 R /Extend [true true] >> endobj 47 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [137.185 279.10965 269.465 279.10965] /Function 85 0 R /Extend [true true] >> endobj 48 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [173.42406 278.20303 292.787 347.12076] /Function 86 0 R /Extend [true true] >> endobj 49 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [330.7992 312.46118 306.8633 312.46118] /Function 87 0 R /Extend [true true] >> endobj 50 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [147.85909 229.50494 375.82358 229.50494] /Function 88 0 R /Extend [true true] >> endobj 51 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [93.58854 241.65936 41.11003 241.65936] /Function 89 0 R /Extend [true true] >> endobj 52 0 obj << /Type /ExtGState /BM /Compatible >> endobj 53 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [288.96695 260.0847 362.7389 260.0847] /Function 90 0 R /Extend [true true] >> endobj 54 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [62.614033 312.46118 62.614033 249.53098] /Function 91 0 R /Extend [true true] >> endobj 55 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [331.74832 286.57516 316.94485 286.57516] /Function 92 0 R /Extend [true true] >> endobj 56 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [268.11453 244.84204 157.08119 274.5907] /Function 93 0 R /Extend [true true] >> endobj 57 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [137.185 279.10965 269.465 279.10965] /Function 94 0 R /Extend [true true] >> endobj 58 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [173.42406 278.20303 292.787 347.12076] /Function 95 0 R /Extend [true true] >> endobj 59 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [330.7992 312.46118 306.8633 312.46118] /Function 96 0 R /Extend [true true] >> endobj 60 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [147.85909 229.50494 375.82358 229.50494] /Function 97 0 R /Extend [true true] >> endobj 61 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [93.58854 241.65936 41.11003 241.65936] /Function 98 0 R /Extend [true true] >> endobj 62 0 obj << /Type /ExtGState /BM /Compatible >> endobj 63 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [288.96695 260.0847 362.7389 260.0847] /Function 99 0 R /Extend [true true] >> endobj 64 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [62.614033 312.46118 62.614033 249.53098] /Function 100 0 R /Extend [true true] >> endobj 65 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [331.74832 286.57516 316.94485 286.57516] /Function 101 0 R /Extend [true true] >> endobj 66 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [268.11453 244.84204 157.08119 274.5907] /Function 102 0 R /Extend [true true] >> endobj 67 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [137.185 279.10965 269.465 279.10965] /Function 103 0 R /Extend [true true] >> endobj 68 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [173.42406 278.20303 292.787 347.12076] /Function 104 0 R /Extend [true true] >> endobj 69 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [330.7992 312.46118 306.8633 312.46118] /Function 105 0 R /Extend [true true] >> endobj 70 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [147.85909 229.50494 375.82358 229.50494] /Function 106 0 R /Extend [true true] >> endobj 71 0 obj << /ShadingType 2 /ColorSpace /DeviceRGB /Coords [93.58854 241.65936 41.11003 241.65936] /Function 107 0 R /Extend [true true] >> endobj 72 0 obj << /FunctionType 3 /Functions [108 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 73 0 obj << /FunctionType 3 /Functions [109 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 74 0 obj << /FunctionType 3 /Functions [110 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 75 0 obj << /FunctionType 3 /Functions [111 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 76 0 obj << /FunctionType 3 /Functions [112 0 R 113 0 R 114 0 R] /Bounds [0.25 0.5] /Encode [0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 77 0 obj << /FunctionType 3 /Functions [115 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 78 0 obj << /FunctionType 3 /Functions [116 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 79 0 obj << /FunctionType 3 /Functions [117 0 R 118 0 R 119 0 R] /Bounds [0.25 0.5] /Encode [0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 80 0 obj << /FunctionType 3 /Functions [120 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 81 0 obj << /FunctionType 3 /Functions [121 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 82 0 obj << /FunctionType 3 /Functions [122 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 83 0 obj << /FunctionType 3 /Functions [123 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 84 0 obj << /FunctionType 3 /Functions [124 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 85 0 obj << /FunctionType 3 /Functions [125 0 R 126 0 R 127 0 R] /Bounds [0.25 0.5] /Encode [0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 86 0 obj << /FunctionType 3 /Functions [128 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 87 0 obj << /FunctionType 3 /Functions [129 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 88 0 obj << /FunctionType 3 /Functions [130 0 R 131 0 R 132 0 R] /Bounds [0.25 0.5] /Encode [0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 89 0 obj << /FunctionType 3 /Functions [133 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 90 0 obj << /FunctionType 3 /Functions [134 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 91 0 obj << /FunctionType 3 /Functions [135 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 92 0 obj << /FunctionType 3 /Functions [136 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 93 0 obj << /FunctionType 3 /Functions [137 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 94 0 obj << /FunctionType 3 /Functions [138 0 R 139 0 R 140 0 R] /Bounds [0.25 0.5] /Encode [0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 95 0 obj << /FunctionType 3 /Functions [141 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 96 0 obj << /FunctionType 3 /Functions [142 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 97 0 obj << /FunctionType 3 /Functions [143 0 R 144 0 R 145 0 R] /Bounds [0.25 0.5] /Encode [0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 98 0 obj << /FunctionType 3 /Functions [146 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 99 0 obj << /FunctionType 3 /Functions [147 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 100 0 obj << /FunctionType 3 /Functions [148 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 101 0 obj << /FunctionType 3 /Functions [149 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 102 0 obj << /FunctionType 3 /Functions [150 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 103 0 obj << /FunctionType 3 /Functions [151 0 R 152 0 R 153 0 R] /Bounds [0.25 0.5] /Encode [0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 104 0 obj << /FunctionType 3 /Functions [154 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 105 0 obj << /FunctionType 3 /Functions [155 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 106 0 obj << /FunctionType 3 /Functions [156 0 R 157 0 R 158 0 R] /Bounds [0.25 0.5] /Encode [0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 107 0 obj << /FunctionType 3 /Functions [159 0 R] /Bounds [] /Encode [0.0 1.0] /Domain [0.0 1.0] >> endobj 108 0 obj << /FunctionType 2 /C0 [0.6392157 0.6392157 0.6392157] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 109 0 obj << /FunctionType 2 /C0 [0.7176471 0.7176471 0.7176471] /C1 [0.2784314 0.2784314 0.2784314] /N 1 /Domain [0.0 1.0] >> endobj 110 0 obj << /FunctionType 2 /C0 [0.63529414 0.40392157 0.27450982] /C1 [0.92156863 0.6313726 0.24705882] /N 1 /Domain [0.0 1.0] >> endobj 111 0 obj << /FunctionType 2 /C0 [0.7176471 0.7176471 0.7176471] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 112 0 obj << /FunctionType 2 /C0 [0.4 0.4 0.4] /C1 [0.5294118 0.5294118 0.5294118] /N 1 /Domain [0.0 1.0] >> endobj 113 0 obj << /FunctionType 2 /C0 [0.5294118 0.5294118 0.5294118] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 114 0 obj << /FunctionType 2 /C0 [0.35686275 0.35686275 0.35686275] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 115 0 obj << /FunctionType 2 /C0 [0.8980392 0.8980392 0.8980392] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 116 0 obj << /FunctionType 2 /C0 [0.8 0.8 0.8] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 117 0 obj << /FunctionType 2 /C0 [0.06666667 0.06666667 0.06666667] /C1 [0.5294118 0.5294118 0.5294118] /N 1 /Domain [0.0 1.0] >> endobj 118 0 obj << /FunctionType 2 /C0 [0.5294118 0.5294118 0.5294118] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 119 0 obj << /FunctionType 2 /C0 [0.35686275 0.35686275 0.35686275] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 120 0 obj << /FunctionType 2 /C0 [0.6784314 0.6784314 0.6784314] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 121 0 obj << /FunctionType 2 /C0 [0.6392157 0.6392157 0.6392157] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 122 0 obj << /FunctionType 2 /C0 [0.7176471 0.7176471 0.7176471] /C1 [0.2784314 0.2784314 0.2784314] /N 1 /Domain [0.0 1.0] >> endobj 123 0 obj << /FunctionType 2 /C0 [0.63529414 0.40392157 0.27450982] /C1 [0.92156863 0.6313726 0.24705882] /N 1 /Domain [0.0 1.0] >> endobj 124 0 obj << /FunctionType 2 /C0 [0.7176471 0.7176471 0.7176471] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 125 0 obj << /FunctionType 2 /C0 [0.4 0.4 0.4] /C1 [0.5294118 0.5294118 0.5294118] /N 1 /Domain [0.0 1.0] >> endobj 126 0 obj << /FunctionType 2 /C0 [0.5294118 0.5294118 0.5294118] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 127 0 obj << /FunctionType 2 /C0 [0.35686275 0.35686275 0.35686275] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 128 0 obj << /FunctionType 2 /C0 [0.8980392 0.8980392 0.8980392] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 129 0 obj << /FunctionType 2 /C0 [0.8 0.8 0.8] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 130 0 obj << /FunctionType 2 /C0 [0.06666667 0.06666667 0.06666667] /C1 [0.5294118 0.5294118 0.5294118] /N 1 /Domain [0.0 1.0] >> endobj 131 0 obj << /FunctionType 2 /C0 [0.5294118 0.5294118 0.5294118] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 132 0 obj << /FunctionType 2 /C0 [0.35686275 0.35686275 0.35686275] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 133 0 obj << /FunctionType 2 /C0 [0.6784314 0.6784314 0.6784314] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 134 0 obj << /FunctionType 2 /C0 [0.6392157 0.6392157 0.6392157] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 135 0 obj << /FunctionType 2 /C0 [0.7176471 0.7176471 0.7176471] /C1 [0.2784314 0.2784314 0.2784314] /N 1 /Domain [0.0 1.0] >> endobj 136 0 obj << /FunctionType 2 /C0 [0.63529414 0.40392157 0.27450982] /C1 [0.92156863 0.6313726 0.24705882] /N 1 /Domain [0.0 1.0] >> endobj 137 0 obj << /FunctionType 2 /C0 [0.7176471 0.7176471 0.7176471] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 138 0 obj << /FunctionType 2 /C0 [0.4 0.4 0.4] /C1 [0.5294118 0.5294118 0.5294118] /N 1 /Domain [0.0 1.0] >> endobj 139 0 obj << /FunctionType 2 /C0 [0.5294118 0.5294118 0.5294118] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 140 0 obj << /FunctionType 2 /C0 [0.35686275 0.35686275 0.35686275] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 141 0 obj << /FunctionType 2 /C0 [0.8980392 0.8980392 0.8980392] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 142 0 obj << /FunctionType 2 /C0 [0.8 0.8 0.8] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 143 0 obj << /FunctionType 2 /C0 [0.06666667 0.06666667 0.06666667] /C1 [0.5294118 0.5294118 0.5294118] /N 1 /Domain [0.0 1.0] >> endobj 144 0 obj << /FunctionType 2 /C0 [0.5294118 0.5294118 0.5294118] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 145 0 obj << /FunctionType 2 /C0 [0.35686275 0.35686275 0.35686275] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 146 0 obj << /FunctionType 2 /C0 [0.6784314 0.6784314 0.6784314] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 147 0 obj << /FunctionType 2 /C0 [0.6392157 0.6392157 0.6392157] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 148 0 obj << /FunctionType 2 /C0 [0.7176471 0.7176471 0.7176471] /C1 [0.2784314 0.2784314 0.2784314] /N 1 /Domain [0.0 1.0] >> endobj 149 0 obj << /FunctionType 2 /C0 [0.63529414 0.40392157 0.27450982] /C1 [0.92156863 0.6313726 0.24705882] /N 1 /Domain [0.0 1.0] >> endobj 150 0 obj << /FunctionType 2 /C0 [0.7176471 0.7176471 0.7176471] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj 151 0 obj << /FunctionType 2 /C0 [0.4 0.4 0.4] /C1 [0.5294118 0.5294118 0.5294118] /N 1 /Domain [0.0 1.0] >> endobj 152 0 obj << /FunctionType 2 /C0 [0.5294118 0.5294118 0.5294118] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 153 0 obj << /FunctionType 2 /C0 [0.35686275 0.35686275 0.35686275] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 154 0 obj << /FunctionType 2 /C0 [0.8980392 0.8980392 0.8980392] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 155 0 obj << /FunctionType 2 /C0 [0.8 0.8 0.8] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 156 0 obj << /FunctionType 2 /C0 [0.06666667 0.06666667 0.06666667] /C1 [0.5294118 0.5294118 0.5294118] /N 1 /Domain [0.0 1.0] >> endobj 157 0 obj << /FunctionType 2 /C0 [0.5294118 0.5294118 0.5294118] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 158 0 obj << /FunctionType 2 /C0 [0.35686275 0.35686275 0.35686275] /C1 [0.35686275 0.35686275 0.35686275] /N 1 /Domain [0.0 1.0] >> endobj 159 0 obj << /FunctionType 2 /C0 [0.6784314 0.6784314 0.6784314] /C1 [0.21960784 0.21960784 0.21960784] /N 1 /Domain [0.0 1.0] >> endobj xref 0 160 0000000000 65535 f 0000000015 00000 n 0000000078 00000 n 0000000153 00000 n 0000000272 00000 n 0000000392 00000 n 0000000513 00000 n 0000000634 00000 n 0000000812 00000 n 0000000875 00000 n 0000001054 00000 n 0000001118 00000 n 0000001293 00000 n 0000001357 00000 n 0000001534 00000 n 0000001598 00000 n 0000001631 00000 n 0000078779 00000 n 0000078812 00000 n 0000155960 00000 n 0000155993 00000 n 0000233141 00000 n 0000233174 00000 n 0000310322 00000 n 0000310425 00000 n 0000310459 00000 n 0000310589 00000 n 0000310623 00000 n 0000310753 00000 n 0000310787 00000 n 0000310917 00000 n 0000310951 00000 n 0000311081 00000 n 0000311136 00000 n 0000311280 00000 n 0000311427 00000 n 0000311574 00000 n 0000311720 00000 n 0000311863 00000 n 0000312008 00000 n 0000312153 00000 n 0000312300 00000 n 0000312445 00000 n 0000312500 00000 n 0000312644 00000 n 0000312791 00000 n 0000312938 00000 n 0000313084 00000 n 0000313227 00000 n 0000313372 00000 n 0000313517 00000 n 0000313664 00000 n 0000313809 00000 n 0000313864 00000 n 0000314008 00000 n 0000314155 00000 n 0000314302 00000 n 0000314448 00000 n 0000314591 00000 n 0000314736 00000 n 0000314881 00000 n 0000315028 00000 n 0000315173 00000 n 0000315228 00000 n 0000315372 00000 n 0000315520 00000 n 0000315668 00000 n 0000315815 00000 n 0000315959 00000 n 0000316105 00000 n 0000316251 00000 n 0000316399 00000 n 0000316545 00000 n 0000316651 00000 n 0000316757 00000 n 0000316863 00000 n 0000316969 00000 n 0000317115 00000 n 0000317221 00000 n 0000317327 00000 n 0000317473 00000 n 0000317579 00000 n 0000317685 00000 n 0000317791 00000 n 0000317897 00000 n 0000318003 00000 n 0000318149 00000 n 0000318255 00000 n 0000318361 00000 n 0000318507 00000 n 0000318613 00000 n 0000318719 00000 n 0000318825 00000 n 0000318931 00000 n 0000319037 00000 n 0000319183 00000 n 0000319289 00000 n 0000319395 00000 n 0000319541 00000 n 0000319647 00000 n 0000319753 00000 n 0000319860 00000 n 0000319967 00000 n 0000320074 00000 n 0000320221 00000 n 0000320328 00000 n 0000320435 00000 n 0000320582 00000 n 0000320689 00000 n 0000320826 00000 n 0000320960 00000 n 0000321099 00000 n 0000321236 00000 n 0000321352 00000 n 0000321489 00000 n 0000321629 00000 n 0000321766 00000 n 0000321885 00000 n 0000322022 00000 n 0000322159 00000 n 0000322299 00000 n 0000322436 00000 n 0000322573 00000 n 0000322707 00000 n 0000322846 00000 n 0000322983 00000 n 0000323099 00000 n 0000323236 00000 n 0000323376 00000 n 0000323513 00000 n 0000323632 00000 n 0000323769 00000 n 0000323906 00000 n 0000324046 00000 n 0000324183 00000 n 0000324320 00000 n 0000324454 00000 n 0000324593 00000 n 0000324730 00000 n 0000324846 00000 n 0000324983 00000 n 0000325123 00000 n 0000325260 00000 n 0000325379 00000 n 0000325516 00000 n 0000325653 00000 n 0000325793 00000 n 0000325930 00000 n 0000326067 00000 n 0000326201 00000 n 0000326340 00000 n 0000326477 00000 n 0000326593 00000 n 0000326730 00000 n 0000326870 00000 n 0000327007 00000 n 0000327126 00000 n 0000327263 00000 n 0000327400 00000 n 0000327540 00000 n trailer << /Root 1 0 R /ID [ ] /Size 160 >> startxref 327677 %%EOF compuserver_msn_Ford_Focus.svg000066400000000000000000011746141415770645300427360ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d image/svg+xml displayWebStats.svg000066400000000000000000002470641415770645300405170ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d Interactive Web Statistics via SVG HELP MODE Unique Weekly Visits By Browser Chrome/OtherChrome/2.0.xChrome/1.0.xChrome/0.5-IE/OtherIE/8.0xIE/7.0xIE/6.0xIE/5.5-Firefox/OtherFirefox/3.1.xFirefox/3.0.xFirefox/2.0.xFirefox/1.5-Safari/OtherSafari/4.0.xSafari/3.1.xSafari/3.0.xSafari/2.0-Opera/OtherOpera/10.0Opera/9.5xOpera/9.0xOpera/8.5- 150030004500600075002006200720082009 2006200720082009 Opera/8.5-Opera/9.0xOpera/9.5xOpera/10.0Opera/OtherSafari/2.0-Safari/3.0.xSafari/3.1.xSafari/4.0.xSafari/OtherFirefox/1.5-Firefox/2.0.xFirefox/3.0.xFirefox/3.1.xFirefox/OtherIE/5.5-IE/6.0xIE/7.0xIE/8.0xIE/OtherChrome/0.5-Chrome/1.0.xChrome/2.0.xChrome/Other%8.5-Opera4%%9.0x%9.5x%10.0%X%2.0-Safari3%%3.0.x%3.1.x%4.0.x%X%1.5-Firefox27%3%2.0.x21%3.0.x%3.1.x%X37%5.5-IE65%18%6.0x10%7.0x%8.0x%X%0.5-Chrome2%%1.0.x%2.0.x%XDistribution for 2009-01-09Total Browser Hits: 1937 Browser Legend Opera 8.5-Opera 9.0xOpera 9.5xOpera 10.0Opera OtherSafari 2.0-Safari 3.0.xSafari 3.1.xSafari 4.0.xSafari OtherFirefox 1.5-Firefox 2.0.xFirefox 3.0.xFirefox 3.1.xFirefox OtherIE 5.5-IE 6.0xIE 7.0xIE 8.0xIE OtherChrome 0.5-Chrome 1.0.xChrome 2.0.xChrome Other Click and drag these red and green grippies! This is a scrollbar gump-bench.svg000066400000000000000000000046151415770645300374130ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d Bench, Forest Gump Box of Chocolates Bench heart.pdf000066400000000000000000000103471415770645300364420ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d%PDF-1.4 % 1 0 obj << /Type /Catalog /Version /1.4 /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [3 0 R 4 0 R 5 0 R 6 0 R] /Count 4 >> endobj 3 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 7 0 R /Resources 8 0 R >> endobj 4 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 9 0 R /Resources 10 0 R >> endobj 5 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 11 0 R /Resources 12 0 R >> endobj 6 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 13 0 R /Resources 14 0 R >> endobj 7 0 obj << /Length 104 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攄&eVh*dq5(($/5Tp23ȁiCs4iw < endstream endobj 8 0 obj << /Font 15 0 R /XObject << /Form1 16 0 R >> >> endobj 9 0 obj << /Length 105 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*畄Vxg&j*dqu(($/5Tp23ȁiCs4i( endstream endobj 10 0 obj << /Font 17 0 R /XObject << /Form1 18 0 R >> >> endobj 11 0 obj << /Length 100 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%畄Vh*dq(($/5Tp23ȁiCs4i endstream endobj 12 0 obj << /Font 19 0 R /XObject << /Form1 20 0 R >> >> endobj 13 0 obj << /Length 102 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攸畄Vh*dq(($ /5Tp23ȁiCs4iY endstream endobj 14 0 obj << /Font 21 0 R /XObject << /Form1 22 0 R >> >> endobj 15 0 obj << /F1 23 0 R >> endobj 16 0 obj << /Length 171 /Type /XObject /Subtype /Form /Resources << /ExtGState 24 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xM 1 9ŻLҖR . PQQav ZB%M4Vq%Óezթs=MV w;5(["68 2 Z3䎎fcJqu^`}BRC')&oRZL2x<*y')U endstream endobj 17 0 obj << /F1 23 0 R >> endobj 18 0 obj << /Length 171 /Type /XObject /Subtype /Form /Resources << /ExtGState 25 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xM 1 9ŻLҖR . PQQav ZB%M4Vq%Óezթs=MV w;5(["68 2 Z3䎎fcJqu^`}BRC')&oRZL2x<*y')U endstream endobj 19 0 obj << /F1 23 0 R >> endobj 20 0 obj << /Length 171 /Type /XObject /Subtype /Form /Resources << /ExtGState 26 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xM 1 9ŻLҖR . PQQav ZB%M4Vq%Óezթs=MV w;5(["68 2 Z3䎎fcJqu^`}BRC')&oRZL2x<*y')U endstream endobj 21 0 obj << /F1 23 0 R >> endobj 22 0 obj << /Length 171 /Type /XObject /Subtype /Form /Resources << /ExtGState 27 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xM 1 9ŻLҖR . PQQav ZB%M4Vq%Óezթs=MV w;5(["68 2 Z3䎎fcJqu^`}BRC')&oRZL2x<*y')U endstream endobj 23 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 24 0 obj << /gs1 28 0 R >> endobj 25 0 obj << /gs1 29 0 R >> endobj 26 0 obj << /gs1 30 0 R >> endobj 27 0 obj << /gs1 31 0 R >> endobj 28 0 obj << /Type /ExtGState /BM /Compatible >> endobj 29 0 obj << /Type /ExtGState /BM /Compatible >> endobj 30 0 obj << /Type /ExtGState /BM /Compatible >> endobj 31 0 obj << /Type /ExtGState /BM /Compatible >> endobj xref 0 32 0000000000 65535 f 0000000015 00000 n 0000000078 00000 n 0000000153 00000 n 0000000272 00000 n 0000000392 00000 n 0000000513 00000 n 0000000634 00000 n 0000000812 00000 n 0000000875 00000 n 0000001054 00000 n 0000001118 00000 n 0000001293 00000 n 0000001357 00000 n 0000001534 00000 n 0000001598 00000 n 0000001631 00000 n 0000001970 00000 n 0000002003 00000 n 0000002342 00000 n 0000002375 00000 n 0000002714 00000 n 0000002747 00000 n 0000003086 00000 n 0000003189 00000 n 0000003223 00000 n 0000003257 00000 n 0000003291 00000 n 0000003325 00000 n 0000003380 00000 n 0000003435 00000 n 0000003490 00000 n trailer << /Root 1 0 R /ID [<8EFAF1EA64DE7144BBCE89F4AB6990A3> <8EFAF1EA64DE7144BBCE89F4AB6990A3>] /Size 32 >> startxref 3545 %%EOF heart.svg000066400000000000000000000004061415770645300364630ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d horizontal-gradient.svg000066400000000000000000000074461415770645300413570ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dCreated with Highcharts x.x.xNo data to displayjson.svg000066400000000000000000000010431415770645300363270ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d long-gradient.svg000066400000000000000000000077261415770645300401260ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d Created with Highcharts x.x.x No data to display near-square-gradient.svg000066400000000000000000000074521415770645300414060ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dCreated with Highcharts x.x.xNo data to displayopenhtml_536.svg000066400000000000000000000011531415770645300376030ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d openhtml_538_gradient.svg000066400000000000000000005643221415770645300414760ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d patternfill.pdf000066400000000000000000000361121415770645300376610ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d%PDF-1.4 % 1 0 obj << /Type /Catalog /Version /1.4 /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [3 0 R 4 0 R 5 0 R 6 0 R] /Count 4 >> endobj 3 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 7 0 R /Resources 8 0 R >> endobj 4 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 9 0 R /Resources 10 0 R >> endobj 5 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 11 0 R /Resources 12 0 R >> endobj 6 0 obj << /Type /Page /MediaBox [0.0 0.0 595.27563 841.8898] /Parent 2 0 R /Contents 13 0 R /Resources 14 0 R >> endobj 7 0 obj << /Length 104 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攄&eVh*dq5(($/5Tp23ȁiCs4iw < endstream endobj 8 0 obj << /Font 15 0 R /XObject << /Form1 16 0 R >> >> endobj 9 0 obj << /Length 105 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*畄Vxg&j*dqu(($/5Tp23ȁiCs4i( endstream endobj 10 0 obj << /Font 17 0 R /XObject << /Form1 18 0 R >> >> endobj 11 0 obj << /Length 100 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%畄Vh*dq(($/5Tp23ȁiCs4i endstream endobj 12 0 obj << /Font 19 0 R /XObject << /Form1 20 0 R >> >> endobj 13 0 obj << /Length 102 /Filter /FlateDecode >> stream xs 2P w((KPT!$,(X(ri槤*%攸畄Vh*dq(($ /5Tp23ȁiCs4iY endstream endobj 14 0 obj << /Font 21 0 R /XObject << /Form1 22 0 R >> >> endobj 15 0 obj << /F1 23 0 R >> endobj 16 0 obj << /Length 310 /Type /XObject /Subtype /Form /Resources << /Pattern 24 0 R /ColorSpace 25 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xMj0 :N'ۦP(0@[ha~%JŬlz/_| p!Dv!dG!s?m Jo@Vq.{Aqw8<~> 02.^{a5gժz_A?5J@,/aB gXWKO2v b $6[u\y" 8i6u@^v]c|QI ,{p}JT)pR oz==:nӫ{HF*8HLU endstream endobj 17 0 obj << /F1 23 0 R >> endobj 18 0 obj << /Length 310 /Type /XObject /Subtype /Form /Resources << /Pattern 26 0 R /ColorSpace 27 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xMj0 :N'ۦP(0@[ha~%JŬlz/_| p!Dv!dG!s?m Jo@Vq.{Aqw8<~> 02.^{a5gժz_A?5J@,/aB gXWKO2v b $6[u\y" 8i6u@^v]c|QI ,{p}JT)pR oz==:nӫ{HF*8HLU endstream endobj 19 0 obj << /F1 23 0 R >> endobj 20 0 obj << /Length 310 /Type /XObject /Subtype /Form /Resources << /Pattern 28 0 R /ColorSpace 29 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xMj0 :N'ۦP(0@[ha~%JŬlz/_| p!Dv!dG!s?m Jo@Vq.{Aqw8<~> 02.^{a5gժz_A?5J@,/aB gXWKO2v b $6[u\y" 8i6u@^v]c|QI ,{p}JT)pR oz==:nӫ{HF*8HLU endstream endobj 21 0 obj << /F1 23 0 R >> endobj 22 0 obj << /Length 310 /Type /XObject /Subtype /Form /Resources << /Pattern 30 0 R /ColorSpace 31 0 R >> /BBox [0.0 0.0 400.0 400.0] /Filter /FlateDecode >> stream xMj0 :N'ۦP(0@[ha~%JŬlz/_| p!Dv!dG!s?m Jo@Vq.{Aqw8<~> 02.^{a5gժz_A?5J@,/aB gXWKO2v b $6[u\y" 8i6u@^v]c|QI ,{p}JT)pR oz==:nӫ{HF*8HLU endstream endobj 23 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 24 0 obj << /p1 32 0 R /p2 33 0 R /p3 34 0 R >> endobj 25 0 obj << /cs1 [/Pattern] /cs2 [/Pattern] /cs3 [/Pattern] >> endobj 26 0 obj << /p1 35 0 R /p2 36 0 R /p3 37 0 R >> endobj 27 0 obj << /cs1 [/Pattern] /cs2 [/Pattern] /cs3 [/Pattern] >> endobj 28 0 obj << /p1 38 0 R /p2 39 0 R /p3 40 0 R >> endobj 29 0 obj << /cs1 [/Pattern] /cs2 [/Pattern] /cs3 [/Pattern] >> endobj 30 0 obj << /p1 41 0 R /p2 42 0 R /p3 43 0 R >> endobj 31 0 obj << /cs1 [/Pattern] /cs2 [/Pattern] /cs3 [/Pattern] >> endobj 32 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 44 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 33 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 45 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 34 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 46 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 35 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 47 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 36 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 48 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 37 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 49 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 38 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 50 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 39 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 51 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 40 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 52 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 41 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 53 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 42 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 54 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 43 0 obj << /Length 27 /Type /Pattern /PatternType 1 /Resources << /Shading 55 0 R >> /PaintType 1 /TilingType 3 /BBox [0.0 0.0 400.0 400.0] /XStep 400.0 /YStep 400.0 >> stream 0 0 400 400 re W n /sh1 sh endstream endobj 44 0 obj << /sh1 56 0 R >> endobj 45 0 obj << /sh1 56 0 R >> endobj 46 0 obj << /sh1 57 0 R >> endobj 47 0 obj << /sh1 58 0 R >> endobj 48 0 obj << /sh1 58 0 R >> endobj 49 0 obj << /sh1 59 0 R >> endobj 50 0 obj << /sh1 60 0 R >> endobj 51 0 obj << /sh1 60 0 R >> endobj 52 0 obj << /sh1 61 0 R >> endobj 53 0 obj << /sh1 62 0 R >> endobj 54 0 obj << /sh1 62 0 R >> endobj 55 0 obj << /sh1 63 0 R >> endobj 56 0 obj << /AntiAlias true /ShadingType 3 /ColorSpace /DeviceRGB /Coords [200.0 200.0 0.0 200.0 200.0 200.0] /Function 64 0 R /Extend [true true] >> endobj 57 0 obj << /AntiAlias true /ShadingType 3 /ColorSpace /DeviceRGB /Coords [280.0 160.0 0.0 280.0 160.0 200.0] /Function 65 0 R /Extend [true true] >> endobj 58 0 obj << /AntiAlias true /ShadingType 3 /ColorSpace /DeviceRGB /Coords [200.0 200.0 0.0 200.0 200.0 200.0] /Function 66 0 R /Extend [true true] >> endobj 59 0 obj << /AntiAlias true /ShadingType 3 /ColorSpace /DeviceRGB /Coords [280.0 160.0 0.0 280.0 160.0 200.0] /Function 67 0 R /Extend [true true] >> endobj 60 0 obj << /AntiAlias true /ShadingType 3 /ColorSpace /DeviceRGB /Coords [200.0 200.0 0.0 200.0 200.0 200.0] /Function 68 0 R /Extend [true true] >> endobj 61 0 obj << /AntiAlias true /ShadingType 3 /ColorSpace /DeviceRGB /Coords [280.0 160.0 0.0 280.0 160.0 200.0] /Function 69 0 R /Extend [true true] >> endobj 62 0 obj << /AntiAlias true /ShadingType 3 /ColorSpace /DeviceRGB /Coords [200.0 200.0 0.0 200.0 200.0 200.0] /Function 70 0 R /Extend [true true] >> endobj 63 0 obj << /AntiAlias true /ShadingType 3 /ColorSpace /DeviceRGB /Coords [280.0 160.0 0.0 280.0 160.0 200.0] /Function 71 0 R /Extend [true true] >> endobj 64 0 obj << /FunctionType 3 /Functions [72 0 R 73 0 R 74 0 R 75 0 R] /Bounds [0.2 0.4 0.9] /Encode [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 65 0 obj << /FunctionType 3 /Functions [76 0 R 77 0 R 78 0 R 79 0 R] /Bounds [0.2 0.4 0.9] /Encode [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 66 0 obj << /FunctionType 3 /Functions [80 0 R 81 0 R 82 0 R 83 0 R] /Bounds [0.2 0.4 0.9] /Encode [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 67 0 obj << /FunctionType 3 /Functions [84 0 R 85 0 R 86 0 R 87 0 R] /Bounds [0.2 0.4 0.9] /Encode [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 68 0 obj << /FunctionType 3 /Functions [88 0 R 89 0 R 90 0 R 91 0 R] /Bounds [0.2 0.4 0.9] /Encode [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 69 0 obj << /FunctionType 3 /Functions [92 0 R 93 0 R 94 0 R 95 0 R] /Bounds [0.2 0.4 0.9] /Encode [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 70 0 obj << /FunctionType 3 /Functions [96 0 R 97 0 R 98 0 R 99 0 R] /Bounds [0.2 0.4 0.9] /Encode [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 71 0 obj << /FunctionType 3 /Functions [100 0 R 101 0 R 102 0 R 103 0 R] /Bounds [0.2 0.4 0.9] /Encode [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0] /Domain [0.0 1.0] >> endobj 72 0 obj << /FunctionType 2 /C0 [1.0 1.0 0.0] /C1 [0.0 1.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 73 0 obj << /FunctionType 2 /C0 [0.0 1.0 0.0] /C1 [1.0 0.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 74 0 obj << /FunctionType 2 /C0 [1.0 0.0 0.0] /C1 [0.0 0.0 1.0] /N 1 /Domain [0.0 1.0] >> endobj 75 0 obj << /FunctionType 2 /C0 [0.0 0.0 1.0] /C1 [0.5019608 0.5019608 0.5019608] /N 1 /Domain [0.0 1.0] >> endobj 76 0 obj << /FunctionType 2 /C0 [1.0 1.0 0.0] /C1 [0.0 1.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 77 0 obj << /FunctionType 2 /C0 [0.0 1.0 0.0] /C1 [1.0 0.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 78 0 obj << /FunctionType 2 /C0 [1.0 0.0 0.0] /C1 [0.0 0.0 1.0] /N 1 /Domain [0.0 1.0] >> endobj 79 0 obj << /FunctionType 2 /C0 [0.0 0.0 1.0] /C1 [0.5019608 0.5019608 0.5019608] /N 1 /Domain [0.0 1.0] >> endobj 80 0 obj << /FunctionType 2 /C0 [1.0 1.0 0.0] /C1 [0.0 1.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 81 0 obj << /FunctionType 2 /C0 [0.0 1.0 0.0] /C1 [1.0 0.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 82 0 obj << /FunctionType 2 /C0 [1.0 0.0 0.0] /C1 [0.0 0.0 1.0] /N 1 /Domain [0.0 1.0] >> endobj 83 0 obj << /FunctionType 2 /C0 [0.0 0.0 1.0] /C1 [0.5019608 0.5019608 0.5019608] /N 1 /Domain [0.0 1.0] >> endobj 84 0 obj << /FunctionType 2 /C0 [1.0 1.0 0.0] /C1 [0.0 1.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 85 0 obj << /FunctionType 2 /C0 [0.0 1.0 0.0] /C1 [1.0 0.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 86 0 obj << /FunctionType 2 /C0 [1.0 0.0 0.0] /C1 [0.0 0.0 1.0] /N 1 /Domain [0.0 1.0] >> endobj 87 0 obj << /FunctionType 2 /C0 [0.0 0.0 1.0] /C1 [0.5019608 0.5019608 0.5019608] /N 1 /Domain [0.0 1.0] >> endobj 88 0 obj << /FunctionType 2 /C0 [1.0 1.0 0.0] /C1 [0.0 1.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 89 0 obj << /FunctionType 2 /C0 [0.0 1.0 0.0] /C1 [1.0 0.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 90 0 obj << /FunctionType 2 /C0 [1.0 0.0 0.0] /C1 [0.0 0.0 1.0] /N 1 /Domain [0.0 1.0] >> endobj 91 0 obj << /FunctionType 2 /C0 [0.0 0.0 1.0] /C1 [0.5019608 0.5019608 0.5019608] /N 1 /Domain [0.0 1.0] >> endobj 92 0 obj << /FunctionType 2 /C0 [1.0 1.0 0.0] /C1 [0.0 1.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 93 0 obj << /FunctionType 2 /C0 [0.0 1.0 0.0] /C1 [1.0 0.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 94 0 obj << /FunctionType 2 /C0 [1.0 0.0 0.0] /C1 [0.0 0.0 1.0] /N 1 /Domain [0.0 1.0] >> endobj 95 0 obj << /FunctionType 2 /C0 [0.0 0.0 1.0] /C1 [0.5019608 0.5019608 0.5019608] /N 1 /Domain [0.0 1.0] >> endobj 96 0 obj << /FunctionType 2 /C0 [1.0 1.0 0.0] /C1 [0.0 1.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 97 0 obj << /FunctionType 2 /C0 [0.0 1.0 0.0] /C1 [1.0 0.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 98 0 obj << /FunctionType 2 /C0 [1.0 0.0 0.0] /C1 [0.0 0.0 1.0] /N 1 /Domain [0.0 1.0] >> endobj 99 0 obj << /FunctionType 2 /C0 [0.0 0.0 1.0] /C1 [0.5019608 0.5019608 0.5019608] /N 1 /Domain [0.0 1.0] >> endobj 100 0 obj << /FunctionType 2 /C0 [1.0 1.0 0.0] /C1 [0.0 1.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 101 0 obj << /FunctionType 2 /C0 [0.0 1.0 0.0] /C1 [1.0 0.0 0.0] /N 1 /Domain [0.0 1.0] >> endobj 102 0 obj << /FunctionType 2 /C0 [1.0 0.0 0.0] /C1 [0.0 0.0 1.0] /N 1 /Domain [0.0 1.0] >> endobj 103 0 obj << /FunctionType 2 /C0 [0.0 0.0 1.0] /C1 [0.5019608 0.5019608 0.5019608] /N 1 /Domain [0.0 1.0] >> endobj xref 0 104 0000000000 65535 f 0000000015 00000 n 0000000078 00000 n 0000000153 00000 n 0000000272 00000 n 0000000392 00000 n 0000000513 00000 n 0000000634 00000 n 0000000812 00000 n 0000000875 00000 n 0000001054 00000 n 0000001118 00000 n 0000001293 00000 n 0000001357 00000 n 0000001534 00000 n 0000001598 00000 n 0000001631 00000 n 0000002126 00000 n 0000002159 00000 n 0000002654 00000 n 0000002687 00000 n 0000003182 00000 n 0000003215 00000 n 0000003710 00000 n 0000003813 00000 n 0000003868 00000 n 0000003938 00000 n 0000003993 00000 n 0000004063 00000 n 0000004118 00000 n 0000004188 00000 n 0000004243 00000 n 0000004313 00000 n 0000004537 00000 n 0000004761 00000 n 0000004985 00000 n 0000005209 00000 n 0000005433 00000 n 0000005657 00000 n 0000005881 00000 n 0000006105 00000 n 0000006329 00000 n 0000006553 00000 n 0000006777 00000 n 0000007001 00000 n 0000007035 00000 n 0000007069 00000 n 0000007103 00000 n 0000007137 00000 n 0000007171 00000 n 0000007205 00000 n 0000007239 00000 n 0000007273 00000 n 0000007307 00000 n 0000007341 00000 n 0000007375 00000 n 0000007409 00000 n 0000007566 00000 n 0000007723 00000 n 0000007880 00000 n 0000008037 00000 n 0000008194 00000 n 0000008351 00000 n 0000008508 00000 n 0000008665 00000 n 0000008826 00000 n 0000008987 00000 n 0000009148 00000 n 0000009309 00000 n 0000009470 00000 n 0000009631 00000 n 0000009792 00000 n 0000009957 00000 n 0000010054 00000 n 0000010151 00000 n 0000010248 00000 n 0000010363 00000 n 0000010460 00000 n 0000010557 00000 n 0000010654 00000 n 0000010769 00000 n 0000010866 00000 n 0000010963 00000 n 0000011060 00000 n 0000011175 00000 n 0000011272 00000 n 0000011369 00000 n 0000011466 00000 n 0000011581 00000 n 0000011678 00000 n 0000011775 00000 n 0000011872 00000 n 0000011987 00000 n 0000012084 00000 n 0000012181 00000 n 0000012278 00000 n 0000012393 00000 n 0000012490 00000 n 0000012587 00000 n 0000012684 00000 n 0000012799 00000 n 0000012897 00000 n 0000012995 00000 n 0000013093 00000 n trailer << /Root 1 0 R /ID [<8976FA3B25BD24F6DCA383ED119E415F> <8976FA3B25BD24F6DCA383ED119E415F>] /Size 104 >> startxref 13209 %%EOF pixeltest.png000066400000000000000000000006071415770645300373710ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dPNG  IHDR22? pHYs  9IDATha0 !d\.ʠMH>۾03]!tpEgqK#23?CX/ IJߊ8fP-aXxx,-_ O%@I/Pk`a.v.?k98ȍ9ok 2+`=![~ o~X^o]>+"LDռ8>ekeZ֫#Y2 X $(e64{ƛTt Q_u,M DIM0J< O dP͞ڭC5 yg>:@mIENDB`square-gradient.svg000066400000000000000000000074521415770645300404630ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dCreated with Highcharts x.x.xNo data to displaytall-gradient-downward-slope.svg000066400000000000000000000074371415770645300430650ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dCreated with Highcharts x.x.xNo data to displaytall-gradient.svg000066400000000000000000000074451415770645300401210ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2dCreated with Highcharts x.x.xNo data to display watermark.svg000066400000000000000000000016221415770645300373560ustar00rootroot00000000000000pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/graphics2d/src/test/resources/de/rototor/pdfbox/graphics2d TEST WATERMARK test watermark pdfbox-graphics2d-pdfboxgraphics2d-parent-0.34/pom.xml000066400000000000000000000122411415770645300230150ustar00rootroot00000000000000 4.0.0 PDFBox-Graphics2d - Parent Graphics2D Bridge for Apache PDFBox de.rototor.pdfbox pdfboxgraphics2d-parent 0.34 pom https://github.com/rototor/pdfbox-graphics2d Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt repo graphics2d extended-tests rototor Emmeran Seehuber rototor@rototor.de http://www.rototor.de architect developer Europe/Berlin https://github.com/rototor/pdfbox-graphics2d scm:git:https://github.com/rototor/pdfbox-graphics2d.git pdfboxgraphics2d-parent-0.34 ossrh https://oss.sonatype.org/content/repositories/snapshots ossrh https://oss.sonatype.org/service/local/staging/deploy/maven2/ org.apache.pdfbox pdfbox 2.0.25 junit junit 4.13.2 test org.apache.xmlgraphics batik-swing 1.14 test org.apache.xmlgraphics xmlgraphics-commons 2.6 test com.twelvemonkeys.imageio imageio-jpeg 3.6.4 test org.jfree jfreechart 1.0.19 test org.apache.maven.plugins maven-compiler-plugin 3.8.0 1.6 1.6 org.apache.maven.plugins maven-gpg-plugin 1.6 sign-artifacts verify sign org.apache.maven.plugins maven-source-plugin 3.0.1 attach-sources jar-no-fork org.apache.maven.plugins maven-javadoc-plugin 3.1.0 8 attach-javadocs jar org.sonatype.plugins nexus-staging-maven-plugin 1.6.7 true ossrh https://oss.sonatype.org/ true org.apache.maven.plugins maven-release-plugin 2.5.3 true false release deploy false org.apache.maven.plugins maven-jar-plugin 3.1.2 de.rototor.pdfbox.graphics2d UTF-8