Quantcast

svn - r36572 - in trunk/docs: . developer developer/guide developer/guide/Building developer/guide/Building/Downloads developer/guide/Building/Using Maven developer/guide/Communication developer/guide/Design and Architecture developer/guide/Documentation developer/guide/Project Conventions developer/guide/Project Conventions/Source Code developer/guide/Project Conventions/Testing JUnit developer/guide/Project Procedures developer/guide/Roles and Responsibilities developer/images

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

svn - r36572 - in trunk/docs: . developer developer/guide developer/guide/Building developer/guide/Building/Downloads developer/guide/Building/Using Maven developer/guide/Communication developer/guide/Design and Architecture developer/guide/Documentation developer/guide/Project Conventions developer/guide/Project Conventions/Source Code developer/guide/Project Conventions/Testing JUnit developer/guide/Project Procedures developer/guide/Roles and Responsibilities developer/images

svn_geotools
Author: jive
Date: 2011-02-11 09:22:48 -0800 (Fri, 11 Feb 2011)
New Revision: 36572

Added:
   trunk/docs/developer/
   trunk/docs/developer/conf.py
   trunk/docs/developer/guide/
   trunk/docs/developer/guide/Building/
   trunk/docs/developer/guide/Building/Building.txt
   trunk/docs/developer/guide/Building/Downloads/
   trunk/docs/developer/guide/Building/Downloads/Downloads.txt
   trunk/docs/developer/guide/Building/Downloads/Java Install.txt
   trunk/docs/developer/guide/Building/Downloads/Maven Install.txt
   trunk/docs/developer/guide/Building/Downloads/Oracle (Optional).txt
   trunk/docs/developer/guide/Building/Downloads/Sphinx (Optional).txt
   trunk/docs/developer/guide/Building/Downloads/Subversion Install.txt
   trunk/docs/developer/guide/Building/Java.txt
   trunk/docs/developer/guide/Building/Source Code.txt
   trunk/docs/developer/guide/Building/Using Maven/
   trunk/docs/developer/guide/Building/Using Maven/Generating Javadocs.txt
   trunk/docs/developer/guide/Building/Using Maven/Maven Build.txt
   trunk/docs/developer/guide/Building/Using Maven/Maven Eclipse Plugin.txt
   trunk/docs/developer/guide/Building/Using Maven/Maven Local Settings.txt
   trunk/docs/developer/guide/Building/Using Maven/Maven Snapshots.txt
   trunk/docs/developer/guide/Building/Using Maven/Maven Testing.txt
   trunk/docs/developer/guide/Building/Using Maven/Maven Tips.txt
   trunk/docs/developer/guide/Building/Using Maven/Project Object Model (POM) Files.txt
   trunk/docs/developer/guide/Building/Using Maven/Remote Repositories.txt
   trunk/docs/developer/guide/Building/Using Maven/Using Maven.txt
   trunk/docs/developer/guide/Building/Using Subversion.txt
   trunk/docs/developer/guide/Communication/
   trunk/docs/developer/guide/Communication/Communication.txt
   trunk/docs/developer/guide/Communication/Email.txt
   trunk/docs/developer/guide/Communication/Internet Relay Chat.txt
   trunk/docs/developer/guide/Communication/Issue Tracker.txt
   trunk/docs/developer/guide/Communication/Websites.txt
   trunk/docs/developer/guide/Design and Architecture/
   trunk/docs/developer/guide/Design and Architecture/Architecture.txt
   trunk/docs/developer/guide/Design and Architecture/Design and Architecture.txt
   trunk/docs/developer/guide/Design and Architecture/Modular Design.txt
   trunk/docs/developer/guide/Documentation/
   trunk/docs/developer/guide/Documentation/Confluence Tips and Tricks.txt
   trunk/docs/developer/guide/Documentation/Documentation.txt
   trunk/docs/developer/guide/Documentation/GeoTools 2.0 Documentation.txt
   trunk/docs/developer/guide/Documentation/Reference Material.txt
   trunk/docs/developer/guide/Documentation/Welcome and Tutorials.txt
   trunk/docs/developer/guide/Introduction.txt
   trunk/docs/developer/guide/Project Conventions/
   trunk/docs/developer/guide/Project Conventions/Code Profiling.txt
   trunk/docs/developer/guide/Project Conventions/Module Directory Structure.txt
   trunk/docs/developer/guide/Project Conventions/Naming Conventions.txt
   trunk/docs/developer/guide/Project Conventions/Project Conventions.txt
   trunk/docs/developer/guide/Project Conventions/Refactoring.txt
   trunk/docs/developer/guide/Project Conventions/Source Code/
   trunk/docs/developer/guide/Project Conventions/Source Code/Avoid assumptions.txt
   trunk/docs/developer/guide/Project Conventions/Source Code/Coding Style.txt
   trunk/docs/developer/guide/Project Conventions/Source Code/Converting URLs to Files.txt
   trunk/docs/developer/guide/Project Conventions/Source Code/Do not return null.txt
   trunk/docs/developer/guide/Project Conventions/Source Code/Exception handling.txt
   trunk/docs/developer/guide/Project Conventions/Source Code/Logging.txt
   trunk/docs/developer/guide/Project Conventions/Source Code/Source Code.txt
   trunk/docs/developer/guide/Project Conventions/Source Code/Use of Assertions, IllegalArgumentException and NPE.txt
   trunk/docs/developer/guide/Project Conventions/Testing JUnit/
   trunk/docs/developer/guide/Project Conventions/Testing JUnit/Example Test Case.txt
   trunk/docs/developer/guide/Project Conventions/Testing JUnit/Online Tests.txt
   trunk/docs/developer/guide/Project Conventions/Testing JUnit/Test Data.txt
   trunk/docs/developer/guide/Project Conventions/Testing JUnit/Testing JUnit.txt
   trunk/docs/developer/guide/Project Conventions/Versioning.txt
   trunk/docs/developer/guide/Project Procedures/
   trunk/docs/developer/guide/Project Procedures/Building the Website.txt
   trunk/docs/developer/guide/Project Procedures/Continuous Integration.txt
   trunk/docs/developer/guide/Project Procedures/Creating your own Module.txt
   trunk/docs/developer/guide/Project Procedures/GeoTools change proposal.txt
   trunk/docs/developer/guide/Project Procedures/Gold Star Quality Assurance Check.txt
   trunk/docs/developer/guide/Project Procedures/Hacking.txt
   trunk/docs/developer/guide/Project Procedures/How to add a 3rd party jar.txt
   trunk/docs/developer/guide/Project Procedures/How to cut a release.txt
   trunk/docs/developer/guide/Project Procedures/Making a major API shift.txt
   trunk/docs/developer/guide/Project Procedures/Project Procedures.txt
   trunk/docs/developer/guide/Project Procedures/Supporting your module.txt
   trunk/docs/developer/guide/Project Procedures/Working on a stable branch.txt
   trunk/docs/developer/guide/Reference.txt
   trunk/docs/developer/guide/Roles and Responsibilities/
   trunk/docs/developer/guide/Roles and Responsibilities/Committers.txt
   trunk/docs/developer/guide/Roles and Responsibilities/Contributors.txt
   trunk/docs/developer/guide/Roles and Responsibilities/Module Maintainers.txt
   trunk/docs/developer/guide/Roles and Responsibilities/Project Management Committee.txt
   trunk/docs/developer/guide/Roles and Responsibilities/Roles and Responsibilities.txt
   trunk/docs/developer/guide/Tools.txt
   trunk/docs/developer/guide/index.txt
   trunk/docs/developer/images/
   trunk/docs/developer/images/ccAttribution.png
   trunk/docs/developer/images/eclipseUTF8.png
Modified:
   trunk/docs/build.xml
   trunk/docs/pom.xml
Log:
Developers Guide, GEOT-3428

Modified: trunk/docs/build.xml
===================================================================
--- trunk/docs/build.xml 2011-02-11 14:20:58 UTC (rev 36571)
+++ trunk/docs/build.xml 2011-02-11 17:22:48 UTC (rev 36572)
@@ -37,6 +37,13 @@
       <param name="id" value="tutorial"/>
       <param name="build" value="html"/>
     </antcall>
+    <!-- uncomment for developers guide -->
+    <!--
+    <antcall target="sphinx">
+      <param name="id" value="developer"/>
+      <param name="build" value="html"/>
+    </antcall>
+    -->
     <!-- uncomment for pdf -->
     <!--antcall target="pdf">
       <param name="id" value="tutorial"/>

Added: trunk/docs/developer/conf.py
===================================================================
--- trunk/docs/developer/conf.py                        (rev 0)
+++ trunk/docs/developer/conf.py 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,136 @@
+import sys, os
+sys.path.append(os.path.abspath('..'))
+from common import *
+
+# The suffix of source filenames.
+source_suffix = '.txt'
+
+# The encoding of source files.
+#source_encoding = 'utf-8'
+
+# The master toctree document.
+master_doc = 'guide/index'
+
+# Options for HTML output
+# -----------------------
+
+html_title='GeoTools %s Developer' % release
+html_theme = 'geotools-tutorial'
+
+# -- General configuration -----------------------------------------------------
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+#
+# extension for pdf
+# extensions = ['sphinx.ext.autodoc','rst2pdf.pdfbuilder']
+
+# options for pdf
+# pdf_documents = [
+#  ('quickstart/eclipse', u'eclipseQuickstart', u'Eclipse Quickstart', u'Jody Garnett\\Micheal Bedward'),
+#  ('quickstart/netbeans', u'eclipseQuickstart', u'Eclipse Quickstart', u'Jody Garnett\\Micheal Bedward'),
+#]
+
+# A comma-separated list of custom stylesheets. Removed 'kerning' to prevent failure on mac
+#
+#
+pdf_stylesheets = ['sphinx','a4']
+
+# Create a compressed PDF
+# Use True/False or 1/0
+# Example: compressed=True
+#pdf_compressed = False
+
+# A colon-separated list of folders to search for fonts. Example:
+# pdf_font_path = ['/usr/share/fonts', '/usr/share/texmf-dist/fonts/']
+
+# Language to be used for hyphenation support
+#pdf_language = "en_US"
+
+# Mode for literal blocks wider than the frame. Can be
+# overflow, shrink or truncate
+pdf_fit_mode = "shrink"
+
+# Section level that forces a break page.
+# For example: 1 means top-level sections start in a new page
+# 0 means disabled
+#pdf_break_level = 0
+
+# When a section starts in a new page, force it to be 'even', 'odd',
+# or just use 'any'
+#pdf_breakside = 'any'
+
+# Insert footnotes where they are defined instead of
+# at the end.
+#pdf_inline_footnotes = True
+
+# verbosity level. 0 1 or 2
+#pdf_verbosity = 0
+
+# If false, no index is generated.
+#pdf_use_index = True
+
+# If false, no modindex is generated.
+#pdf_use_modindex = True
+
+# If false, no coverpage is generated.
+#pdf_use_coverpage = True
+
+# Name of the cover page template to use
+#pdf_cover_template = 'sphinxcover.tmpl'
+
+# Documents to append as an appendix to all manuals.
+#pdf_appendices = []
+
+# Enable experimental feature to split table cells. Use it
+# if you get "DelayedTable too big" errors
+#pdf_splittables = False
+
+# Set the default DPI for images
+#pdf_default_dpi = 72
+
+# Enable rst2pdf extension modules (default is empty list)
+# you need vectorpdf for better sphinx's graphviz support
+#pdf_extensions = ['vectorpdf']
+
+# Page template name for "regular" pages
+#pdf_page_template = 'cutePage'
+
+
+
+# Options for LaTeX output
+# ------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, document class [howto/manual]).
+latex_documents = [
+  ('quickstart/eclipse', 'EclipseQuickstart.tex', u'Eclipse Quickstart', u'Jody Garnett /and Micheal Bedward','howto'),
+  ('quickstart/netbeans', 'NetBeansQuickstart.tex', u'Netbeans Quickstart', u'Jody Garnett /and Micheal Bedward','howto'),
+  ('feature/csv2shp', 'FeatureTutorial.tex', u'Feature Tutorial',u'Jody Garnett /and Micheal Bedward','howto'),
+  ('geometry/geometrycrs', 'GeometryCRS.tex', u'Geometry and CRS Tutorial',u'Jody Garnett /and Micheal Bedward','howto'),
+  ('filter/query', 'Query.tex', u'Query Tutorial',u'Jody Garnett /and Micheal Bedward','howto'),
+ # ('raster/image', 'Image.tex', u'Image Tutorial',u'Jody Garnett /and Micheal Bedward','howto'),
+  ('map/style', 'Style.tex', u'Style Tutorial',u'Jody Garnett /and Micheal Bedward','howto'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_use_modindex = True

Added: trunk/docs/developer/guide/Building/Building.txt
===================================================================
--- trunk/docs/developer/guide/Building/Building.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Building.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,14 @@
+************
+Building
+************
+
+Covers the development environment and building instructions to work on the GeoTools library.
+
+.. toctree::
+   :maxdepth: 1
+  
+   Java
+   Downloads/Downloads
+   Source Code
+   Using Subversion
+   Using Maven/Using Maven
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Downloads/Downloads.txt
===================================================================
--- trunk/docs/developer/guide/Building/Downloads/Downloads.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Downloads/Downloads.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,47 @@
+Downloads
+=========
+
+Before using or developing GeoTools you should download and install the software listed here.
+
+Apache Maven 2.2.1
+
+* http://maven.apache.org/download.html
+
+* Apache build tool used for GeoTools. Excels as managing dependencies.
+
+Java 2 Software Developers Kit (Java 5)
+
+Java Advanced Imaging
+
+* Java Advanced Imaging API 1.1.3
+  https://jai.dev.java.net/binary-builds.html
+
+* Java extension for image processing
+
+Java ImageIO:
+
+* Java Image I/O Tools 1.1
+  https://jai-imageio.dev.java.net/binary-builds.html
+
+* Low-level image Access
+
+Java ImageIO-Ext:
+* url needed
+
+Oracle (Optional):
+* Ojdbc14.jar
+
+ArcSDE (Optional):
+* Not downloadable - Included on CD
+
+DB2:
+* db2jcc.jar
+
+.. toctree::
+   :maxdepth: 1
+  
+   Java Install
+   Maven Install
+   Subversion Install
+   Oracle (Optional)
+   Sphinx (Optional)
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Downloads/Java Install.txt
===================================================================
--- trunk/docs/developer/guide/Building/Downloads/Java Install.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Downloads/Java Install.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,122 @@
+Java Install
+-------------
+
+As mentioned in the previous section we use a stable (ie old) version of Java to build the GeoTools library.
+
+Java 2 Standard Edition Software Developers Kit
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1. Download a JDK
+2. Use the one click installer
+3. When it asks if you want to install a JRE you can say yes
+
+Be careful with Java 6
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The API has changed in a few areas so making use of Java 6 for building is a little risky (you may accidentally use a new method).
+
+GeoTools requires a Java 1.5 SDK for versions 2.5 and above; for older versions of java please use GeoTools 2.4.
+
+Why JAVA_HOME does not work on Windows
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+How to Build using Java 5 and run using Java 6 on windows.
+
+Several projects expect to make use of a JRE 6 runtime environment (simply for the speed benefit). If your computer is set up with both a JDK 1.5 for building GeoTools; and a JDK 6 for your other projects you will need to sort out how to switch between them.
+
+One technique is to set up a batch file similar to the following:
+
+1. Hunt down the cmd.exe ( Start menu > Accessories > Command Prompt) and right click to send it to the desktop
+2. Edit the desktop cmd.exe short cut and change the target to::
+      
+      %SystemRoot%\system32\cmd.exe /k C:\java\java15.bat
+3. Create the C:\java\java15.bat file mentioned above::
+  
+      set ANT_HOME=C:\java\apache-ant-1.6.5
+      set M2_HOME=C:\java\maven-2.0.9
+      set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_19
+      
+      set PATH=%JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Subversion\bin;%M2_HOME%\bin;%ANT_HOME%\bin
+
+4. Please note that the construction of the PATH above is very important; JAVA_HOME\bin must appear
+   before SystemRoot\system32 as the system32 contains a stub java.exe that looks up the correct
+   version of java to run in the registry.
+  
+
+5.   You can see in the above screen snap that the **My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft > Java Development Kit > CurrentVersion** is set to **1.6**. The **1.6** entry documents the path to the version of java to run. Placing JAVA_HOME on the path before System32 shortcuts this annoying "feature".
+
+Java Extensions
+---------------
+
+GeoTools is now able to build with just a normal Java Software Developers Kit. You should be aware that several of our raster formats are capable of making use of native code packaged up as Java extensions.
+
+Java Developers Kit:
+* Can make use of JAI and ImageIO if they have been installed into your JDK
+Java Runtime Environment:
+* Can make use of JAI and ImageIO if you have installed them into your JRE
+
+These extensions end up adding:
+* some jars into your lib folder
+* some dlls into your bin folder
+
+Please follow the installation instructions carefully.
+
+Java Advanced Imaging
+^^^^^^^^^^^^^^^^^^^^^
+
+Download this Version of JAI
+* Java Advanced Imaging API 1.1.3
+
+
+1. Download JAI for your JDK by clicking on the above link.
+   Example: jai-1_1_3-lib-windows-i586-jdk.exe
+2. Use the one click installer to install JAI into your JDK
+3. Download JAI for your JRE by clicking on the above link.
+   Example: jai-1_1_3-lib-windows-i586-jre.exe
+4. Use the one click installer to install JAI into your JRE
+
+If you are working on linux you will of course need to choose the appropriate download.
+
+For More Information
+* Java Media Home Page: http://java.sun.com/products/java-media/jai/index.jsp
+
+Java Image IO
+^^^^^^^^^^^^^
+
+Download this Version of ImageIO
+* JAI Image I/O Tools 1.1
+
+1. Download ImageIO for your JDK by clicking on the above link. Example: jai_imageio-1_1-lib-windows-i586-jdk.exe
+
+2. Download ImageIO for your JRE by clicking on the above link. Example: jai_imageio-1_1-lib-windows-i586-jre.exe
+
+If you are working on linux you will of course need to choose the appropriate download.
+
+Alternate ImageIO-Ext Install
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The installer from the ImageIO-Ext website can be used to install into your JAVA_HOME (ie the JDK). If you like you can use this to install the software; and then copy the required jars into your JRE by hand (they end up in JAVA_HOME/jre/ext/libs and need to be copied into JRE/ext/libs
+
+Alternate CLASSPATH Install
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This is only needed if the windows one-click installers don't work for you:
+* Perhaps you have several JDKs installed on your system?
+* Perhaps you are on Linux?
+* Perhaps you are on Mac and the version of JAI/ImageIO included with your operating system is out of date?
+
+The goal is to place the required jars into your lib/ext directory of both your JDK (for compiling) and your JRE (for running).
+
+Optional: Mac ImageIO
+^^^^^^^^^^^^^^^^^^^^^
+
+Java Advanced Imaging is included with recent releases of Mac OS (but that may be changing in the future).
+
+The JAI ImageIO extension is not available as a download for the mac. However, you can use the jar from the Linux/windows download to get “pure java” functionality without hardware acceleration:
+1. Copy the jars to ~/Library/Java/Extensions
+2. Check that the files are present as expected:
+  
+   * clibwrapper_jiio.jar
+   * jai_core.jar
+   * mlibwrapper_jai.jar
+   * jai_codec.jar
+   * jai_imageio.jar

Added: trunk/docs/developer/guide/Building/Downloads/Maven Install.txt
===================================================================
--- trunk/docs/developer/guide/Building/Downloads/Maven Install.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Downloads/Maven Install.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,64 @@
+Maven Install
+-------------
+
+We use Maven 2 for our build environment, this page simply set's it up for you. Actual build instructions will happen later.
+Reference:
+* http://maven.apache.org/
+* http://maven.apache.org/start/install.html
+
+Download and Install Maven
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+1. Download Maven. Last tested with Maven 2.2.1
+2. Unzip the maven download to your computer:
+  
+   Example: C:\java\apache-maven-2.2.1.
+  
+   If you do not have an unzip program may we recommend: http://www.7-zip.org/
+
+3. You need to have the following environmental variables set for maven to work:
+  
+   * JAVA_HOME = C:\j2sdk1.4.2_07\
+    
+     Location of your JDK installation
+  
+   * M2_HOME = C:\java\apache-maven-2.2.1
+    
+     Location of your maven installation
+  
+   * PATH = %PATH%;%JAVA_HOME%\bin;%M2_HOME%\bin
+    
+     Include java and maven bin directory in your PATH
+
+4. Open up a cmd window and type the following::
+    
+     >mvn --version
+     Apache Maven 2.2.1 (r801777; 2009-08-07 05:16:01+1000)
+     Java version: 1.6.0_17
+     Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
+     Default locale: en_US, platform encoding: MacRoman
+     OS name: "mac os x" version: "10.6.3" arch: "x86_64" Family: "mac"
+
+Do not use Apt-Get
+^^^^^^^^^^^^^^^^^^
+
+It is very tempting to use apt-get to install maven, ubuntu users I am looking at you!
+
+Please be careful of the maven provided out of the box by unbuntu::
+  
+   Apache Maven 2.2.1 (rdebian-1)
+
+It is not actually apache maven as provided by apache; and it has a build failure with::
+   [INFO] ------------------------------------------------------------------------
+   [INFO] Building Cross-modules javadoc
+   [INFO]    task-segment: [install]
+   [INFO] ------------------------------------------------------------------------
+   [INFO] [plugin:descriptor {execution: default-descriptor}]
+   [WARNING] Using platform encoding (UTF-8 actually) to read mojo metadata, i.e. build is platform dependent!
+   [INFO] Applying mojo extractor for language: java
+   [INFO] Mojo extractor for language: java found 0 mojo descriptors.
+   [INFO] Applying mojo extractor for language: bsh
+   [INFO] Mojo extractor for language: bsh found 0 mojo descriptors.
+   [INFO] ------------------------------------------------------------------------
+   [ERROR] BUILD ERROR
+   [INFO] ------------------------------------------------------------------------
+   [INFO] Error extracting plugin descriptor: 'No mojo definitions were found for plugin: org.geotools.maven:javadoc.
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Downloads/Oracle (Optional).txt
===================================================================
--- trunk/docs/developer/guide/Building/Downloads/Oracle (Optional).txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Downloads/Oracle (Optional).txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,32 @@
+Oracle (Optional)
+-----------------
+
+In order to use the Oracle module you need the proprietary JDBC driver from Oracle.
+
+This page provides instructions for the plugins/jdbc/jdbc-oracle plugin:
+* The old unsupported Oracle datastore can be built with similar instructions, but you'll have to use -Doracle.jdbc in place of -Doracle when creating the Eclipse projects
+* As of Oracle 10.2 oracle has decided to "seal" its jar files (a security option that can be turned on in the manifest file). This option limits access to package-protected members to classes defined in the package and in the same JAR file. This means that the only way to create a connection is via a DataSource (and we are not there yet since we still use JDBC Drivers).
+Please download a driver from the 10.1.x series in order to avoid the above problem.
+
+Download the Driver and place into the Repository
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Unlike most external libraries used in GeoTools, we cannot redistribute this jar. However, you can obtain them from the Oracle website, free of charge, after registering:
+1. Download the Oracle JDBC Driver: http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html
+2. Once you download the jar, you should place them in the Oracle Maven repository directory::
+      
+      mvn install:install-file -Dfile=ojdbc14.jar -DgroupId=com.oracle
+   -D artifactId=ojdbc14 -Dversion=10.2.0.3.0 -Dpackaging=jar
+
+Switching between Oracle Profiles with oracle.jdbc property
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The oracle modules are all set up to work with a pretend "mock" jdbc driver in order to compile. To actually use the real thing you are going to need to set the oracle.jdbc property.
+
+You will need to do this each time on the command line (as of Maven 2.0.4 there is no way to set a property in your setting.xml file that can be used to configure other profiles):
+
+Here is an example that builds eclipse .classpath and .project files using the real driver::
+  
+   mvn eclipse:eclipse -Doracle
+
+If the property is not set the “dummy” jdbc driver will be used.

Added: trunk/docs/developer/guide/Building/Downloads/Sphinx (Optional).txt
===================================================================
--- trunk/docs/developer/guide/Building/Downloads/Sphinx (Optional).txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Downloads/Sphinx (Optional).txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,76 @@
+Sphinx (Optional)
+-----------------
+
+To build the geotools "doc" folder you will need to install the components of the sphinx documentation system.
+
+Reference:
+* http://docs.geoserver.org/latest/en/docguide/install.html
+* http://stackoverflow.com/questions/1815080/easy-install-pil-fails
+
+Windows Sphinx Install
+^^^^^^^^^^^^^^^^^^^^^^
+
+Install Python:
+1. Python version 2.7 has been verified to work: http://www.python.org/download/releases/2.7/
+2. You will need to add it to your path. it installed into C:Python27 for me::
+    
+     set 'PYTHON=C:\Python27\'
+     set 'PATH=%PATH%;%PYTHON%'
+
+3. You will need Setup Tools for Python 2.7
+   http://pypi.python.org/pypi/setuptools#downloads
+  
+4. Install and add Setup Tools to your path::
+        
+        run 'set SETUPTOOLS=C:\Python27\Scripts'
+        run 'set PATH=%PATH%;%SETUPTOOLS%'
+
+5. Install Sphinx (We are using Sphinc 0.6.6 in order to be compatible with rst2pdf)::
+  
+        easy-install sphinx==0.6.6
+  
+
+rst2pdf Optional Install
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+You can optionally install rst2pdf to build pdf documentation:
+
+1. Install Visual Studio 2008 Express Edition (this provides windows with a C compiler). It is a free download on the Microsoft site.
+   You need to be sure to use the 2008 edition so that easy_install will compile something that can actually be linked to the Python executable.
+
+2. Use easy install to produce rst2pdf::
+      
+      easy_install rst2pdf
+      
+3. This depends on the Python Image Library (which it can probably build now that you have a compiler).
+4. If you cannot manage to build you can download a precompiled Python Image Library (PIL) from here:
+  
+   * http://effbot.org/downloads/#pil (download the one for python 2.7)
+
+Mac Sphinx Install
+^^^^^^^^^^^^^^^^^^
+
+1. On OSX Use macports to install Python 2.7::
+    
+     sudo port install python27
+     sudo port install python_select
+     sudo python_select python27
+    
+2. You can use macports to install Python Image Library::
+    
+     sudo port install py27-pil
+    
+3. You can now use python easy_install to install Sphinx 0.6.6::
+    
+     sudo easy_install sphinx==0.6.6
+
+4. To build the PDF targets you will also need rst2pdf.::
+    
+     sudo easy_install rst2pdf
+
+5. If you uses easy_install to grab the python image library it easy to get compile errors.
+
+Linux Sphinx Install
+^^^^^^^^^^^^^^^^^^^^
+
+Use apt-get and easy install.
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Downloads/Subversion Install.txt
===================================================================
--- trunk/docs/developer/guide/Building/Downloads/Subversion Install.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Downloads/Subversion Install.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,230 @@
+Subversion Install
+------------------
+
+Subversion is an advanced version management tool with the same command line syntax as CVS.
+
+SVN offers the GeoTools project:
+* the ability to version directories and renames
+* the change to get off of the SourceForge CVS repository
+
+Reference:
+* Subversion Book (http://svnbook.red-bean.com/svnbook/index.html)
+
+Although links to various IDE interfaces will be made available, no GUI will substitute for an understanding of the underlying subversion versioning model, and how the system is actually doing work.
+
+Subversion Install
+^^^^^^^^^^^^^^^^^^
+
+Here are the installation instructions for SVN Windows:
+
+Command line access is similar to cvs. Once again, your best reference is the subversion book.
+
+The svn tool can be downloaded from here:
+* http://subversion.apache.org
+* http://www.sliksvn.com/en/download
+
+The use of the windows shell extension Tortoise (http://tortoisesvn.tigris.org/) is recommended in conjunction with the command line. IDE integration is available for both NetBeans and Eclipse.
+
+Please note that whatever client you use; we need to ask you to configure subversion correctly to work with our repository.
+* If you don't do this every java file you edit will appear to be 100% modified!
+* We do not wish to accidentally commit “.class” files
+* We mark the various source code files so that line feeds are handled consistently (CRLF)
+* We mark the various image formats so that they are committed with the correct mime type allowing you to visually browse the repository.
+
+Configuration file location:
+* Windows XP: C:\Documents and Settings\ %USERID% \Application Data\Subversion\config
+* Vista: C:\Users\ %USERID% \App Data\Roaming\Subversion\config
+* Windows7: C:\Users\ %USERID% \App Data\Roaming\Subversion\config
+* Linux: ~/.subversion/config
+* Mac: ~/.subversion/config
+
+Windows Setup  for SVN Command Line
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+1. Download a win32 installer from here: http://www.sliksvn.com/en/download
+2. Run the installer you downloaded. Our if you downloaded the zip file, please unzip the archive and the bin folder to %PATH%
+3. Copy the config file to where subversion keeps its configuration:
+  
+   * Windows XP: C:\Documents and Settings\ %USERID% \Application Data\Subversion\config
+   * Vista: C:\Users\ %USERID% \App Data\Roaming\Subversion\config
+   * Windows7: C:\Users\ %USERID% \App Data\Roaming\Subversion\config
+
+4. You’ll need to have view system folders turned on to see "Application Data" in explorer.
+   Subversion should have an example config file there already.
+5. (Optional) change any of your client settings in the config file
+6. (Optional) change your servers file to account for any firewalls
+
+Eclipse
+^^^^^^^
+
+Eclipse has plugin support for subversion:
+* Subclipse: http://subclipse.tigris.org/
+* Subversive
+
+The eclipse IDE assumes on directory per project; while the GeoTools library is split up into a number of smaller projects. As such we will still perform a checkout on the command line. Installing subversion support into eclipse will allow you to commit from the repository.
+
+SVN Linux
+^^^^^^^^^
+
+Linux setup for svn command line access:
+1. If svn is not already installed, get it here:
+  
+   http://subversion.apache.org
+  
+   Most distributions already have it installed.
+  
+2. Install/compile the package
+3. Copy the config file to: ~/.subversion/config
+4. (Optional) change any of your client settings in the config file
+
+SVN Netbeans
+^^^^^^^^^^^^
+
+1. A netbeans profile is available here: http://vcsgeneric.netbeans.org/profiles/
+2. To ignore the ubiquitous .svn folders click the filesystem node and set the “Ignored Files” property to include: .svn
+
+SVN Tortoise for Windows
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+A windows shell extension is available: http://tortoisesvn.tigris.org/ 
+
+This is highly recommended for developers uncomfortable with the command line.
+
+ToroiseSVN Checkout of Geotools:
+1. Create a folder for geotools to live in: C:\java\geotools
+2. Navigate to the folder, and right-click
+3. Select "Checkout ..."
+  
+   * URL of Repository: http://svn.geotools.org/geotools/trunk
+   * Checkout directory: C:\java\geotools
+   * Revision: Head Revision
+  
+4. Press OK
+
+Sample Config
+^^^^^^^^^^^^^
+
+subversion **config** file::
+
+    ### This file configures various client-side behaviors.
+    ###
+    ### The commented-out examples below are intended to demonstrate
+    ### how to use this file.
+    
+    ### Section for authentication and authorization customizations.
+    ### Set store-auth-creds to 'no' to avoid storing your subversion
+    ### credentials in the auth/ area of your config directory.
+    ### It defaults to 'yes'.  Note that this option only prevents
+    ### saving of *new* credentials;  it doesn't invalidate existing
+    ### caches.  (To do that, remove the cache files by hand.)
+    # [auth]
+    # store-auth-creds = no
+    
+    ### Section for configuring external helper applications.
+    ### Set editor to the command used to invoke your text editor.
+    ###   This will override the environment variables that Subversion
+    ###   examines by default to find this information ($EDITOR,
+    ###   et al).
+    ### Set diff-cmd to the absolute path of your 'diff' program.
+    ###   This will override the compile-time default, which is to use
+    ###   Subversion's internal diff implementation.
+    ### Set diff3-cmd to the absolute path of your 'diff3' program.
+    ###   This will override the compile-time default, which is to use
+    ###   Subversion's internal diff3 implementation.
+    ### Set diff3-has-program-arg to 'true' or 'yes' if your 'diff3'
+    ###   program accepts the '--diff-program' option.
+    # [helpers]
+    # editor-cmd = editor (vi, emacs, notepad, etc.)
+    # diff-cmd = diff_program (diff, gdiff, etc.)
+    # diff3-cmd = diff3_program (diff3, gdiff3, etc.)
+    # diff3-has-program-arg = [true | false]
+    
+    ### Section for configuring tunnel agents.
+    # [tunnels]
+    ### Configure svn protocol tunnel schemes here.  By default, only
+    ### the 'ssh' scheme is defined.  You can define other schemes to
+    ### be used with 'svn+scheme://hostname/path' URLs.  A scheme
+    ### definition is simply a command, optionally prefixed by an
+    ### environment variable name which can override the command if it
+    ### is defined.  The command (or environment variable) may contain
+    ### arguments, using standard shell quoting for arguments with
+    ### spaces.  The command will be invoked as:
+    ###   <command> <hostname> svnserve -t
+    ### (If the URL includes a username, then the hostname will be
+    ### passed to the tunnel agent as <user>@<hostname>.)  If the
+    ### built-in ssh scheme were not predefined, it could be defined
+    ### as:
+    # ssh = $SVN_SSH ssh
+    ### If you wanted to define a new 'rsh' scheme, to be used with
+    ### 'svn+rsh:' URLs, you could do so as follows:
+    # rsh = rsh
+    ### Or, if you wanted to specify a full path and arguments:
+    # rsh = /path/to/rsh -l myusername
+    ### On Windows, if you are specifying a full path to a command,
+    ### use a forward slash (/) or a paired backslash (\\) as the
+    ### path separator.  A single backslash will be treated as an
+    ### escape for the following character.
+    
+    ### Section for configuring miscelleneous Subversion options.
+    [miscellany]
+    ### Set global-ignores to a set of whitespace-delimited globs
+    ### which Subversion will ignore in its 'status' output.
+    
+    global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* *.class
+    
+    ### Set log-encoding to the default encoding for log messages
+    # log-encoding = latin1
+    ### Set use-commit-times to make checkout/update/switch/revert
+    ### put last-committed timestamps on every file touched.
+    # use-commit-times = yes
+    ### Set enable-auto-props to 'yes' to enable automatic properties
+    ### for 'svn add' and 'svn import', it defaults to 'no'.
+    ### Automatic properties are defined in the section 'auto-props'.
+    
+    enable-auto-props = yes
+    
+    ### Section for configuring automatic properties.
+    ### The format of the entries is:
+    ###   file-name-pattern = propname[=value][;propname[=value]...]
+    ### The file-name-pattern can contain wildcards (such as '*' and
+    ### '?').  All entries which match will be applied to the file.
+    ### Note that auto-props functionality must be enabled, which
+    ### is typically done by setting the 'enable-auto-props' option.
+    [auto-props]
+    *.java       = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Id
+    *.sql        = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Id
+    *.c          = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Id
+    *.cpp        = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Id
+    *.h          = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Id
+    *.txt        = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Id
+    *.sgml       = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Id
+    *.properties = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Id
+    *.xml        = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Id
+    *.classpath  = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Id
+    *.project    = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Id
+    *.sld        = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Id
+    *.gml        = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Id
+    *.xsl        = svn:mime-type=text/xsl;svn:eol-style=native;svn:keywords=Id
+    *.html       = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Id
+    *.css        = svn:mime-type=text/css;svn:eol-style=native;svn:keywords=Id
+    *.dsp        = svn:eol-style=CRLF
+    *.bat        = svn:eol-style=CRLF
+    *.dsw        = svn:eol-style=CRLF
+    *.sh         = svn:eol-style=native;svn:executable;svn:keywords=Id
+    *.png        = svn:mime-type=image/png
+    *.jpg        = svn:mime-type=image/jpeg
+    *.gif        = svn:mime-type=image/gif
+    *.tif        = svn:mime-type=image/tiff
+    *.zip        = svn:mime-type=application/zip
+    *.sxw        = svn:mime-type=application/zip
+    *.sxc        = svn:mime-type=application/zip
+    *.sxi        = svn:mime-type=application/zip
+    *.utf        = svn:mime-type=application/octet-stream
+    *.ttf        = svn:mime-type=application/octet-stream
+    *.shp        = svn:mime-type=application/octet-stream
+    *.shx        = svn:mime-type=application/octet-stream
+    *.dbf        = svn:mime-type=application/octet-stream
+    *.mif        = svn:mime-type=application/octet-stream
+    *.mid        = svn:mime-type=application/octet-stream
+    Makefile     = svn:mime-type=text/plain;svn:eol-style=native
+    README       = svn:mime-type=text/plain;svn:eol-style=native
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Java.txt
===================================================================
--- trunk/docs/developer/guide/Building/Java.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Java.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,26 @@
+Java
+=====
+
+GeoTools is written in the Java Programming Language. The library is targeted for Java 5 (to reflect strong Java Enterprise Edition use) with the understanding that many developers are using Java 6.
+
+Java Runtime Environment:
+* Java 6 - while the build process will work; please set code generation to 1.5 levels and avoid the use of new Java 6 methods
+* Java 5- - GeoTools 2.5.x and above
+* Java 1.4 - GeoTools versions 2.4.x and below
+* GeoTools is known to work with JRE provided by IBM, Apple and OpenJDK.
+
+Java Extension:
+* Java Advanced Imaging is used to process rasters. If you have installed the native support into your JRE you can take advantage of hardware acceleration.
+* Java Image IO - used to support additional raster formats
+* ImageIO-Ext - used to support additional geospatial raster formats
+
+Current Language Policy
+-----------------------
+
+Our policy is waiting for the majority of our users before migrating to a new version of the Java language. In general we are held up by the slow migration of Java Enterprise Edition environments such as websphere.
+
+IDE Settings
+
+When developing GeoTools please change your compile options to:
+
+* Produce 5.0 compliant code
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Source Code.txt
===================================================================
--- trunk/docs/developer/guide/Building/Source Code.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Source Code.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,60 @@
+Source Code
+============
+
+The GeoTools source code is organised into the following structure:
+
+* build/ - java projects that help with our build process
+* demo/ - example code and demos
+* docs/ - modules/library/ - the core library allowing your application to be spatial
+* modules/extensions/ - extensions built on top of the library that do useful things
+* modules/plugins/ - plugins that work with the core library to support additional formats
+* modules/unsupported/ - community code that is not ready yet, but you may find interesting
+* spike/ - scratch space for ideas and experiments and collaboration
+
+Download Source Code
+^^^^^^^^^^^^^^^^^^^^^
+
+Source code releases are made available on a monthly basis and are available on the downloads page:
+
+* http://sourceforge.net/projects/geotools/files
+
+Source code encoding is UTF-8.
+
+Subversion Checkout of Source Code
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+GeoTools makes use of the Subversion revision control system (as mentioned in downloads above). It is an advanced version management tool with the same command line syntax as CVS.
+
+You do not need any special permission to have read-only access to the source code. Please just check out the code and have fun. If you are interested in getting commit permission later you can look into Developers Guide Roles and Responsibilities.
+
+1. Our Subversion Install page contains detailed instructions for setting up subversion to
+   work on GeoTools.
+2. Copy the provided config file to the correct location for your platform.
+  
+   * Windows XP: C:\Documents and Settings\USER\Application Data\Subversion\config
+   * Windows Vista: C:\Users\USER\AppData\Roaming\Subversion\config
+   * Linux: ~/.subversion/config
+   * Mac: ~/.subversion/config
+  
+3. Danger - please set up the config file - If you do not do this binary and xml files may get messed up (subversion uses this config file to tell when to change linefeeds between windows and linux)
+3. Navigate to where you want the checkout with the command line::
+    
+     C:\java>
+    
+4. Checkout geotools using svn (a new directory "trunk" will be created)::
+    
+     C:\java>svn co http://svn.osgeo.org/geotools/trunk trunk
+    
+5. This will create a trunk directory that contains the source code for this project
+
+Notes:
+* You may also use subversion to checkout a stable version of geotools::
+    
+    C:\java>svn co http://svn.osgeo.org/geotools/branches/2.7.x stable
+    
+* Take the time to read the subversion book before diving into subversion:
+  http://svnbook.red-bean.com/svnbook/index.html 
+* Although links to various IDE interfaces will be made available, no GUI will substitute for an understanding of the underlying subversion versioning model, and how the system is actually doing work.
+* If you are interested you can also use https::
+    
+    C:\java> svn co https://svn.osgeo.org/geotools/trunk

Added: trunk/docs/developer/guide/Building/Using Maven/Generating Javadocs.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Generating Javadocs.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Generating Javadocs.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,68 @@
+Generating Javadocs
+-------------------
+
+Javadoc can be generated using the standard mvn javadoc:javadoc command.
+
+* It can be generated for an individual module::
+    
+     cd modules/main/cql
+     mvn javadoc:javadoc
+
+* “Aggregated” javadocs for the entire GeoTools project can be generated from root using::
+    
+     mvn javadoc:javadoc
+
+Dependencies in aggregated javadoc
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+As of October 2006, aggregated javadoc using maven-javadoc-plugin version 2.0 fails to resolve all external dependencies like JTS or GeoAPI. It may be related to MJAVADOC-66, but the later said that the bug is already fixed. Waiting for the next maven-javadoc-plugin release in the hope that it will be fixed there.
+
+JAR files for distribution
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Use Java 6 for this; because we use some fancy tags (mentioned below) you will need to use Java 6 here
+JAR files are created by invoking:
+1. mvn javadoc:javadoc
+2. mvn javadoc:jar
+3. The javadocs are created in the target directory for each module.
+
+Custom javadoc tags
+^^^^^^^^^^^^^^^^^^^
+Geotools code contains a few custom javadoc tags, including:
+* Tag: @Source
+  
+  The file URL, usually provided by SVN itself::
+    
+     @Source $URL$
+
+* Tag: @Tutorial
+  
+  Link a tutorial page on this server.
+
+These custom tags are processed by taglets provided in the GeoTools maven/javadoc module. These taglets are automatically used by the javadoc tools when using the javadoc:javadoc goal.
+
+Modifying the javadoc configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The **trunk/pom.xml** file contains the javadoc:javadoc goal configuration. This configuration includes custom taglets, hyperlink to external libraries like JTS, list of package to exclude, etc.
+
+Excluded packages are:
+* com.*
+* org.geotools.maven.*
+* org.geotools.resources.*.
+
+When Maven fails to generate the javadoc
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Building Javadoc produces many "warnings" and "errors". Only errors cause the build to stop.
+GeoTools javadocs produce a lot of warnings making it difficult to spot the error that caused javadoc to fail.
+
+1. Thankfully the following Unix command is very helpful::
+      
+      mvn javadoc:javadoc | grep "error"
+  
+2. The above gives a much smaller output, typically only about 5 lines. So we can spot immediately the cause of javadoc failure, for example something like::
+      
+      modules/library/referencing/src/main/java/org/geotools/referencing/factory/epsg/package.html:
+      error - Close body tag missing from HTML file
+  
+3. In the above example  adding the missing </BODY> tag as suggested by the error message would the javadoc generation.
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Using Maven/Maven Build.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Maven Build.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Maven Build.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,233 @@
+Maven Build
+------------
+
+Several GeoTools modules depend on other GeoTools modules, so the first thing you will want to do is perform a full build so that you have a jar from each module installed in your local repository.
+
+Your First Build
+^^^^^^^^^^^^^^^^
+
+1. Start by going to where you have the source code::
+    
+     cd C:\java\geotools\trunk
+2. And check that we actually have the source code::
+    
+     C:\java\geotools\trunk>dir
+      Volume in drive C is INTERNAL
+      Volume Serial Number is 3CA5-71DD
+      Directory of C:\java\geotools\trunk
+     26/04/2007  11:12 AM    <DIR>          .
+     26/04/2007  11:12 AM    <DIR>          ..
+     11/01/2007  12:25 AM    <DIR>          build
+     01/12/2006  01:27 AM    <DIR>          demo
+     04/11/2006  01:04 PM    <DIR>          doc
+     16/07/2006  07:56 AM    <DIR>          licenses
+     07/04/2007  10:36 AM    <DIR>          modules
+     26/04/2007  11:12 AM            52,450 pom.xml
+     22/10/2006  09:11 AM             3,705 README.txt
+     26/04/2007  10:08 AM    <DIR>          target
+                    2 File(s)         56,155 bytes
+                    8 Dir(s)  15,264,776,192 bytes free
+3. Make sure you are connected to the internet
+4. Start your first build::
+    
+     C:\java\geotools\trunk>mvn install
+5. If all is well, Maven should download the required .jar files and build GeoTools modules.
+6. At the end of this process it will display a list of all the modules which were built and installed correctly.::
+    
+     ... BUILD SUCCESS
+7. The first build takes a while due to the download time for the .jar files.
+
+Build Failure
+^^^^^^^^^^^^^
+
+It is all well and good to recognise a successful build, but how do you recognise a build that has failed?
+
+1. If your build fails you will get feedback like this::
+    
+     [INFO] ------------------------------------------------------------------------
+     [ERROR] BUILD FAILURE
+     [INFO] ------------------------------------------------------------------------
+     [INFO] There are test failures.
+     [INFO] ------------------------------------------------------------------------
+     [INFO] For more information, run Maven with the -e switch
+     [INFO] ------------------------------------------------------------------------
+     [INFO] Total time: 7 minutes 56 seconds
+     [INFO] Finished at: Mon Nov 20 12:15:48 PST 2006
+     [INFO] Final Memory: 23M/42M
+     [INFO] ------------------------------------------------------------------------
+2. You need to scan back through the output and find the "<<< FAILURE!"::
+    
+     Running org.geotools.data.mif.MIFDataStoreTest
+     Tests run: 9, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 6.703 sec <<< FAILURE!
+3. You can open the test results of the indicated failure in order to see what went wrong.
+   Test results are contained in the target directory.
+
+Expected Build times
+^^^^^^^^^^^^^^^^^^^^
+
+Depending on your hardware and internet connection:
+* Building the first time, where maven needs to download everything, may take 20 to 30 minuets.
+* Future builds check for the most recent .jar files from the internet. The checking is based of md5 checksums and does not take long. Building subsequently may take 10 minuets depending on your hardware and internet connection.
+* After everything is downloaded can build “offline” and avoid the checking of mdf5 checksums resulting in a faster build of 5-7 minuets.
+* Finally you can turn off tests (danger!) and build offline to get a build under 2 minuets
+Tips to speed up a build:
+* Do not do a “clean” build if you do not have to
+* Rebuild a single module after you have modified it
+* Update your “settings.xml” file to point to a “mirror” in your country - allowing you to download closer to home
+
+Really Building All Modules
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+GeoTools plays host to a number of experiment "unsupported" modules; if you would like to help out on any of these modules (or get a preview of new features)::
+  
+   mvn install -Dall
+
+The "-Dall" acts as a switch to part engages several profiles; you can also do this by hand with -P
+
+The following “profiles” are included by the “-Dall”:
+* -Pgdal include modules that depend on having gdal installed into your JRE
+* -Ppending several experimental modules
+* -Praster
+* -Pswing
+* -Pworkflow process and wps support
+
+Not included with -Dall
+* -Parchive modules that no longer work
+
+Building Offline
+^^^^^^^^^^^^^^^^
+
+When working offline, you can bypass the checking of md5 and downloading files. To do this use the following::
+  
+   C:\java\geotools\trunk>mvn -o install
+
+By avoiding the check of md5 files you can take drastically reduce build time.
+
+Building an Individual module
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Provided you have done at least one complete build you should be able to build individual modules one-at-a-time.
+1. Change to the modules home directory::
+    
+     cd modules/library/cql
+    
+2. Use maven to compile - it should do a complete build::
+    
+      mvn compile
+
+3. Use maven to update the local repository - it should run the test cases and install the jar in the local
+   repository for other modules (or applications) to use when they build.::
+    
+     mvn install
+
+If you have not done a full build yet then the build may fail because it can't find the jar for a module it depends on.
+
+An error caused by not having another GT2 module installed can be a little misleading::
+  
+   Error: unable to download main-2.1.x.jar
+
+This is because Maven:
+* failed to find main-2.1,x.jar in the local repository where a full build should have put it
+* tried to download the file from the internet (and failed)
+
+If you see an error like that, either do a full build or change into the module which is missing (main in this case) and type.::
+  
+   maven install
+
+Avoiding Tests
+^^^^^^^^^^^^^^
+
+You may also notice that running the tests takes a fair amount of time. While these tests need to be run before you commit for the day, you may want to forgo the wait while experimenting.
+
+The following will build the tests - but not run them::
+  
+   mvn -DskipTests install
+
+This is useful for installing the postgis module test jar; which is used by the postgis-version module as a dependency.
+
+The following will not even build the tests::
+  
+   mvn -Dmaven.test.skip=true install
+
+Common Build Problems
+^^^^^^^^^^^^^^^^^^^^^
+
+The following common problems occur during a::
+   mvn -U clean install
+
+Failure of Metadata RangeSetTest
+""""""""""""""""""""""""""""""""
+
+This looks like the following::
+  
+   [INFO] ----------------------------------------------------------------------------
+   [INFO] Building Metadata
+   [INFO]    task-segment: [clean, install]
+   [INFO] ----------------------------------------------------------------------------
+   [INFO] [clean:clean]
+   ...
+   Running org.geotools.util.RangeSetTest
+   Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.031 sec <<< FAILURE!
+
+Navigating into the directory to look at the actual error::
+  
+   C:\java\geotools\trunk\modules\library\metadata\target\surefire-reports>more *RangeSetTest.txt
+   -------------------------------------------------------------------------------
+   Test set: org.geotools.util.RangeSetTest
+   -------------------------------------------------------------------------------
+   Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.031 sec <<< FAILURE!
+   testRangeRemoval(org.geotools.util.RangeSetTest)  Time elapsed: 0 sec  <<< ERROR!
+   java.lang.NoClassDefFoundError: javax/media/jai/util/Range
+           at org.geotools.util.RangeSetTest.testRangeRemoval(RangeSetTest.java:58)
+
+This indicates that Java Advanced Imaging has not been installed into the JRE (please see the dependencies section and try again).
+
+On GeoTools trunk you can try the following experimental option. This will download and use just the JAI jar files, you wont get native performance - but for a build do you even care?::
+   mvn install -Pnojai
+
+Failure of GridCoverageRendererTest
+"""""""""""""""""""""""""""""""""""
+
+This looks like the following::
+  
+   [INFO] ----------------------------------------------------------------------------
+   [INFO] Building Render
+   [INFO]    task-segment: [install]
+   [INFO] ----------------------------------------------------------------------------
+   ...
+   Running org.geotools.renderer.lite.GridCoverageRendererTest
+   Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.062 sec <<< FAILURE!
+   Details:
+  
+   C:\java\geotools\trunk\modules\library\render\target\surefire-reports>more *GridCoverageRendererTest.txt
+   -------------------------------------------------------------------------------
+   Test set: org.geotools.renderer.lite.GridCoverageRendererTest
+   -------------------------------------------------------------------------------
+   Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.062 sec <<< FAILURE!
+   testPaint(org.geotools.renderer.lite.GridCoverageRendererTest)  Time elapsed: 0.047 sec  <<< ERROR!
+   java.lang.NullPointerException
+        at org.geotools.renderer.lite.GridCoverageRendererTest.getGC(GridCoverageRendererTest.java:103)
+        at org.geotools.renderer.lite.GridCoverageRendererTest.testPaint(GridCoverageRendererTest.java:163)
+  
+   testReproject(org.geotools.renderer.lite.GridCoverageRendererTest)  Time elapsed: 0 sec  <<< ERROR!
+   java.lang.NullPointerException
+        at org.geotools.renderer.lite.GridCoverageRendererTest.getGC(GridCoverageRendererTest.java:103)
+        at org.geotools.renderer.lite.GridCoverageRendererTest.testReproject(GridCoverageRendererTest.java:199)
+
+This indicates that Image IO support has not been installed into the JRE (please see the dependencies section and try again).
+
+Unable to Delete Directory on Windows
+"""""""""""""""""""""""""""""""""""""
+
+Build systems like maven (that smash files around for a living) are generally incompatible with Microsoft Indexing Service.
+From Lim Goh on email
+
+I would also like to point out for future reference that the Windows
+Indexing Service is not 100% compatible with maven, and causes some
+maven builds to break. Developers who use Windows 7 64-bit (or
+anything close like Vista or 32-bit) may have unsuccessful build due
+to "unable to delete directory". If that happens please try to disable
+Windows Indexing Service for the entire svn working copy and try
+again. Hopefully this will fix the problem.
+
+With this in mind it is also advisable for mac developers to “ignore” build directories from Time Machine (as the files change constantly and Time Machine will burn up your space trying to keep track of it all).
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Using Maven/Maven Eclipse Plugin.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Maven Eclipse Plugin.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Maven Eclipse Plugin.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,84 @@
+Maven Eclipse Plugin
+--------------------
+
+Maven can be used to work with the Eclipse IDE. While direct integration is currently underway (thanks to Sonyatype) we are documenting the traditional approach here for reference.
+Creating .project and .classpath files
+
+You can use maven to set up the files needed for eclipse::
+  
+   mvn eclipse:eclipse -DoutputDirectory=bin -Dall
+
+This will produce the following files for each module:
+* .classpath file
+* .project file
+
+The way to read the above line is we are using the eclipse plugin, and we are asking it to do the goal eclipse. The other options are to specify a default output directory (so that eclipse and maven do not both use target/classes and trip on each other). The -Dall switch is used to include the unsupported modules.
+
+If you like you can just do a simple::
+  
+   C:\java\geotools\trunk\>mvn eclipse:eclipse
+
+Because maven and eclipse will both use **target/classes** you will need to perform a clean when switching between maven and eclipse for building.
+
+You can then import all the GeoTools projects into your Eclipse IDE.
+
+Customising the Name of the Generated Projects
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You can customise the generated project names a little bit (useful you have an existing project like GeoServer with its own "main" project)::
+  
+   mvn eclipse:eclipse -Declipse.projectNameTemplate="[groupId].[artifactId]"
+
+An alternative approach could be::
+  
+   mvn eclipse:eclipse -Declipse.projectNameTemplate="gt2-trunk-[artifactId]"
+
+For more information see the maven eclipse plugin documentation.
+
+Working With Many Projects
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+After you have imported the above files you may notice something - there are a lot of projects.
+
+For better performance in your IDE you can the open projects to those you are working on:
+
+1. Close all the eclipse projects (just "close" them don't delete them)
+2. Then pick the module you're interested in, and open it. It will ask you if you'd like to open dependent projects, and you should say "yes".
+3. Then go to the eclipse package manager "filters" setting (little "v" in the upper right) and choose to "hide closed projects”.
+4. Now you're looking at about 6-8 GeoTools projects that are easily eclipse buildable (all dependencies on SNAPSHOTS and what-not are handled by eclipse:eclipse) fairly small and well cross-referenced.
+
+Creating .project and .classpath files with source code
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In addition to downloading jars, maven can also download the associated source code. As source code is often much larger you are warned:
+1. Generate with source code (THIS MAY TAKE TWO HOURS)::
+      
+      mvn eclipse:eclipse -DdownloadSources=true
+  
+2. Downloading the source code will make sure eclipse has enough information to display javadocs.
+   When coding the correct argument names will be displayed.
+
+Cleaning up the .project and .classpath files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1. To remove generated .project and .classpath files::
+      
+      mvn eclipse:clean
+
+2.  The way to read the above line is we are using the eclipse plugin, and we are asking it to do the goal clean.
+
+Tips and Tricks for working with Eclipse
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+1. The GeoTools codebase uses "UTF-8" - so you will need to tell eclipse about it.
+   Under workspace preferences you can change the **Text file encoding** by selecting
+   **Other** and choosing UTF-8 from the list.
+
+.. image:: /images/eclipseUTF8.png
+
+2. GeoTools has defined formatting settings you can import.
+  
+   * build/eclipse/formatter.xml
+
+3. GeoTools has defined templates you can import:
+  
+   * build/eclipse/codetemplates.xml
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Using Maven/Maven Local Settings.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Maven Local Settings.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Maven Local Settings.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,64 @@
+Maven Local Settings
+--------------------
+
+On your machine you will find a directory in called 'm2'. This is where maven stores all downloaded jars and installed projects.
+
+* Linux: ~/.m2
+* Windows XP: C:\Documents and Settings\USER\.m2
+* Windows 7: C:\Users\USER\.m2
+
+The format of this directory is:
+* .m2/repository - this is your local repository where jars have been downloaded or installed
+* .m2/settings.xml - configuration file for site specific settings such as mirror to download from
+* .m2/profiles.xml - configuration file for profiles (not often used)
+
+settings.xml
+^^^^^^^^^^^^
+
+You can provide an optional settings.xml file in this directory that is used to describe configuration and resources available on your machine.
+
+Examples of use:
+* set heap size (so you can have a faster build?)
+* turn on / off online tests
+* select testing profiles (so you can test against a local database, or geoserver install)
+
+Example configuring ibiblio as your mirror of the central maven repository:
+
+.. code-block:: xml
+  
+   settings.xml
+   <settings>
+     <mirrors>
+       <mirror>
+         <id>ibiblio.org</id>
+         <name>ibiblio Mirror of http://repo1.maven.org/maven2/</name>
+         <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
+         <mirrorOf>central</mirrorOf>
+       </mirror>
+     </Mirrors>
+   </Settings>
+
+Much of the advice on testing will depend on creating one of these files and updating it.
+
+Local Repository
+^^^^^^^^^^^^^^^^
+
+You should see that any third party jars, such as JTS, will have been installed in this repository. You should also see that all successful module builds (e.g. main, referencing...) have had their jars installed in a directory called org/geotools.
+
+Tip:
+* Consider placing the repository on a different drive than that used for compiling for a faster build
+
+Configuring the heap size
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The Maven build may requires a fair amount of memory. For example some JUnit tests are known to fail on Maven 2 with the default heap size. If you need the maximal heap size increased, and may be configured as below (on Windows command line):
+
+  set MAVEN_OPTS=-Xmx384M
+
+Configuring a proxy server
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+If you are behind a firewall, you will need maven to use a proxy server.
+
+* http://maven.apache.org/guides/mini/guide-proxies.html
+
+The above link shows how modify the settings.xml file in your .m2 directory.

Added: trunk/docs/developer/guide/Building/Using Maven/Maven Snapshots.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Maven Snapshots.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Maven Snapshots.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,60 @@
+Maven Snapshots
+---------------
+
+The current **live** jar published by GeoTools is known as a SNAPSHOT. Projects that want to work directly with GeoTools will depend “SNAPSHOT” rather than specifying a version number.
+
+Dependency SNAPSHOT Changes
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We depend on a "snapshot" of several projects (usually project GeoTools community members are involved such as ImageIO-EXT). In these cases an email will be sent to the developer list asking people to "update with -U"
+
+To respond to one of these emails include "-u" in your next build.
+1. Update::
+    
+     svn up
+    
+2. build using the -U option::
+      
+      mvn clean install -U -Dmaven.test.skip=true
+
+The above example skipped the tests (which is common when you are trying for a quick update), please note by definition that "-U" is not compatible with the "-o" offline mode.
+
+Deploy GeoTools SNAPSHOT
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you are working on GeoServer or uDig or another project that depends on the latest greatest GeoTools release you will need to know how to deploy a SNAPSHOT (so members of your developer community do not get compile errors).
+
+Usually do this after a commit:
+1. Update to make sure you are not missing out on anyones work::
+    
+     svn up
+    
+2. Build with tests to make sure your commit is not fatal::
+    
+     mvn clean install
+    
+3. Commit - remember to include any Jira numbers in your log message::
+      
+      svn commit -m "Change to fix shapefile charset handling, see GEOT-1437"
+      
+4. Ensure your ~/.m2/settings.xml has your webdav credentials (these are the same as your svn access credentials)::
+      
+      <?xml version="1.0" encoding="ISO-8859-1"?>
+      <settings>
+        <offline>false</offline> <!-- set to true to build udig offline -->
+        <servers>
+          <server>
+            <id>refractions</id>
+            <username>NAME</username>
+            <password>PASSOWRD</password>
+          </server>
+        </servers>  
+      </settings>
+
+5. Deploy for members of your community::
+      
+      mvn deploy -Dmaven.test.skip=true
+
+6. Let your community know via email!
+
+Note a nightly build machine will also generate SNAPSHOTS each day.
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Using Maven/Maven Testing.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Maven Testing.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Maven Testing.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,67 @@
+Maven Testing
+-------------
+
+To just run tests for a module::
+  
+   cd modules/library/main
+   mvn test
+
+Several of the "profiles" described on this page can be used on conjuction::
+  
+   mvn test -o -P interactive,stress
+
+Logging
+^^^^^^^
+
+By default logging information is considered a test result:
+* the logs from testing end up in target/surefire-reports sub-directory of each module
+* There should be XML and TXT files for the results of each test. Be sure to check both, as one of the wrinkles of maven makes it so the output isn't always exactly the same.
+
+Run a Single Test
+^^^^^^^^^^^^^^^^^
+
+To run a single test::
+   mvn -Dtest=Rendering2DTest test
+
+If you are having problems with logging output levels be sure to read the logging section under coding conventions.
+
+Online Testing
+^^^^^^^^^^^^^^
+
+Many tests require an online resource to run such as a remote server.
+
+These tests are excluded from the default build as often these online resources are not available and as a result case tests to fail. The naming convention for these tests is to name them as "OnlineTest".
+
+Examples:
+* PostgisDataStoreAPIOnlineTest.java
+* WMS1_0_0_OnlineTest.java
+
+To execute online tests during a build, the online profiles is used::
+  
+   mvn test -P online
+
+Additionally many of these online tests depend on connection parameters being supplied describing the server to connect to. For more information on the use of these "test fixture" files please see the project contentions section on online tests.
+
+Interactive Tests
+^^^^^^^^^^^^^^^^^
+
+Some tests (particularly of rendering technology) like to pop up images and the practice drawing.
+
+To run these tests::
+  
+   mvn test -P interactive
+
+Stress Testing
+^^^^^^^^^^^^^^
+
+Stress tests can roughly be defined as tests that do not add much test coverage to a module, and take a extended amount of time to run.
+
+These tests are excluded from the default build as they are time consuming. The naming convention for these tests is to name them as StressTest.
+
+Examples:
+* GMLParserStressTest.java
+* WFSIonicStressTest.java
+
+To execute stress tests during a build, the stress profiles is used::
+  
+   mvn test -P stress

Added: trunk/docs/developer/guide/Building/Using Maven/Maven Tips.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Maven Tips.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Maven Tips.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,14 @@
+Maven Tips
+----------
+
+Maven has a fair few tricks and tips associated with its use. The major benefit is with a consistent project structure (and pom.xml description) a number of plugins can be used.
+
+The following can be done in any individual module.
+
+Generate a Web Site
+^^^^^^^^^^^^^^^^^^^
+Maven reports can be generated by the following command, to be executed from the directory that contains the parent pom.xml file::
+  
+   mvn site:site
+
+The site are created in target/site directory of every module. An aggregated javadoc is also created in the parent target/site/apidocs directory.
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Using Maven/Project Object Model (POM) Files.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Project Object Model (POM) Files.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Project Object Model (POM) Files.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,75 @@
+Project Object Model (POM) Files
+--------------------------------
+
+Complete documentation for the project.xml file for maven can be found at the maven site, and in particular in the project descriptor part of the reference section.
+
+We only show the things specific to a GeoTools **module pom.xml** file here.
+
+Extending a Parent Module
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The <parent> section allows one pom.xml file to inherit items from another. Modules should extend the pom.xml within the module, plugin, extension or demo directory they belong to:
+
+.. code-block:: xml
+  
+   <parent>
+     <groupId>org.geotools</groupId>
+     <artifactId>gt-module</artifactId>
+     <version>2.2-SNAPSHOT</version>
+   </Parent>
+
+Id
+^^
+
+The id should reflect the name of the module.
+We use a “gt” prefix to avoid conflicts (as the groupId org.geotools does not appears in the final JAR filenames)
+
+Examples:
+* gt-main
+* gt-referencing.
+
+This policy allows our “gt-main.jar” to avoid conflict with a application “main” jar created that makes use of GeoTools.
+
+Dependency Management
+^^^^^^^^^^^^^^^^^^^^^
+
+Dependencies are specified within the  pom.xml file, but care should be taken to handle this in a consistent manner.
+
+New dependencies on another GeoTools module, should use:
+* groupId - identify the project
+* artifactId - identify the jar within that project
+* version - ${project.version} to match the current build
+
+Sample pom.xml dependency entry::
+  
+   <dependency>
+      <groupId>org.geotools</groupId>
+      <artifactId>gt-main</artifactId>
+      <version>${project.version}</version>
+   </Dependency>
+
+New dependencies on a third-party jar need to be handled in two parts.
+
+The dependency is supplied in the pom.xml file::
+  
+   <dependency>
+      <groupId>javax.media</groupId>
+      <artifactId>jai_codec</artifactId>
+      <!-- The version number is specified in the parent POM. -->
+      <scope>test</scope>
+   </Dependency>
+
+And the dependency version is supplied in the “root” pom.xml file in the dependency management section.
+
+Dependency Version Changes
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When a dependency changes you will need to update the root pom.xml "dependency management section" to reflect the new version number.
+
+You should be able to locate an entry like this and change the version number::
+  
+   <dependency>
+      <groupId>net.java.dev.swing-layout</groupId>
+      <artifactId>swing-layout</artifactId>
+      <version>1.0.2</version>
+   </dependency>
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Using Maven/Remote Repositories.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Remote Repositories.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Remote Repositories.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,18 @@
+Remote Repositories
+-------------------
+
+There are repositories of jars required by GeoTools stored online. These repositories are listed in the root pom.xml file.
+
+You can browse them online at:
+
+* http://download.osgeo.org/webdav/geotools/ (Release repository)
+* http://repo.opengeo.org/ (SNAPSHOT repository)
+* http://www.ibiblio.org/maven2 (Mirror of main maven repository)
+
+Reducing Internet Downloads
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+There are several tools to allow your development team to share a local mirror.
+
+* http://maven.apache.org/repository-management.html
+

Added: trunk/docs/developer/guide/Building/Using Maven/Using Maven.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Maven/Using Maven.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Maven/Using Maven.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,36 @@
+Using Maven
+============
+
+**Maven** is a Java project management and project comprehension tool, or - in other words - yet another build tool. It can use Ant and a number of other open source utilities and brings them together in an easy-to-use build tool.
+
+Project Files
+^^^^^^^^^^^^^
+
+The key part of maven is the use of project files (ie pom.xml). You will find a pom.xml file in all active modules. The project file tells you the name of the module, who maintains it, who develops it, what version it has reached and what it depends on.
+
+Note: that as all the modules have some things in common, the module project files actually extend one which can be found in the GeoTools root directory.
+
+The most important part of the project file is the dependencies section as maven uses this to determine what order to build the modules in and what support jars to download when needed (if we move over to maven exclusively we will no longer need the extbin folder).
+
+Use of Notepad
+^^^^^^^^^^^^^^
+The windows implementation of notepad messes up **pom.xml** byte order - causing trouble for mac developers working on our project. Please consider using a notepad replacement such as notepad2.
+
+Trouble looks like::
+  
+   Reason: Parse error
+   reading POM. Reason: only whitespace content allowed before start tag
+   and not \ud4 (position: START_DOCUMENT seen \ud4... @1:1)
+
+.. toctree::
+   :maxdepth: 1
+  
+   Maven Build
+   Maven Testing
+   Maven Tips
+   Maven Snapshots
+   Generating Javadocs
+   Maven Eclipse Plugin
+   Project Object Model (POM) Files
+   Maven Local Settings
+   Remote Repositories
\ No newline at end of file

Added: trunk/docs/developer/guide/Building/Using Subversion.txt
===================================================================
--- trunk/docs/developer/guide/Building/Using Subversion.txt                        (rev 0)
+++ trunk/docs/developer/guide/Building/Using Subversion.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,109 @@
+Using Subversion
+================
+
+The following helpful subversion tips, as so many others, are attributed to IanS and have been stolen from his email.
+
+Subversion Repository
+^^^^^^^^^^^^^^^^^^^^^
+
+The GeoTools svn repository holds the source code for GeoTools:
+* http://svn.osgeo.org/geotools/
+
+This repository is setup with the following versions of GeoTools:
+* http://svn.osgeo.org/geotools/trunk - this is what we are currently working on
+* http://svn.osgeo.org/geotools/tags - contains our official releases
+* http://svn.osgeo.org/geotools/branches - stable development branches; and wild experiments are located here
+
+Since SVN also provides web access, all these addresses can be navigated with a web browser.
+
+Typical Development Environment
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Typically, a developer will create a local 'geotools' directory, move into that directory, and do a checkout of GeoTools trunk by ending up with::
+  
+   geotools/
+   geotools/trunk/
+
+The latter “geotools/trunk” directory has all the files used to build GeoTools. All directories, 'trunk' and below will each have a hidden '.svn' directory which holds the repository information.
+
+Developers working on branches will create often create a directory for the branch they wish to work on and change into that directory before checking out the branch of their interest with a command like ending up with::
+  
+   geotools/
+   geotools/trunk
+   geotools/stable
+
+This is often used when working on trunk to verify a bug fix; and then backporting the fix to the stable branch.
+
+Ignoring Files
+^^^^^^^^^^^^^^
+
+Subversion uses a config file for your local ignores. It's very handy to set this up.
+Here are the vital lines from the GeoTools config file used during setup::
+  
+   [GEOTOOLS:miscellany]
+   ### Set global-ignores to a set of whitespace-delimited globs
+   ### which Subversion will ignore in its 'status' output.
+   global-ignores = *.so *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.class CVS .nbattrs .nbintdb
+
+As you can see these settings ignore a bunch of temporary files, mac specific files and others.
+
+Ignoring Specific files
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+You can set the "svn:ignore" property on a directory; listing a specific file to ignore::
+  
+   svn propset svn:ignore target .
+
+The above line is used to ignore the target directory for the current folder (ie "." ); this is used so you don't accidentally commit all the generated source code and classes.
+
+This makes those status and commit routines so much cleaner. This works on a folder by folder basis - that is, sub folders do not inherit their parents' props.
+
+1. You could also ignore several things at once (one per line)::
+    
+     set EDITOR=notepad
+     svn propedit svn:ignore .
+2. Notepad will be opened allowing you to type::
+    
+     target
+     *.patch
+     Thumbs.db
+
+Status / Update Differences
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Subversion allows you to work locally (off-line) in some cases. If you make changes, svn status applies to only the local state. svn update will sync with the repository.
+
+One of my favourite cvs commands was cvs -n -q update -d which says be quiet, make no changes, but tell me what you would do.
+
+Here is how to check what woudl be updated with subversion::
+  
+   svn -u status
+
+Another nice feature is that you can revert any local changes offline::
+  
+   svn revert
+
+This is especially handy if you are doing lots of automated changes (like replacing a mucked-up author's name in a project.xml file) and you make a mistake. Instead of a lengthy remote refresh, "clean" local copies are used.
+
+Info
+^^^^
+
+Tells you about your checkout::
+  
+   svn info
+
+Invaluable for finding those pesky urls and in terms of branches and tags, tells you where you are.
+
+Log
+^^^
+
+Tells you info about commits/revisions::
+  
+   svn log
+
+Blame
+^^^^^
+
+My favourite. Annotates a document with who changed what and when::
+  
+   svn blame Sample.java
\ No newline at end of file

Added: trunk/docs/developer/guide/Communication/Communication.txt
===================================================================
--- trunk/docs/developer/guide/Communication/Communication.txt                        (rev 0)
+++ trunk/docs/developer/guide/Communication/Communication.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,13 @@
+*************
+Communication
+*************
+
+The GeoTools Project practices “open development” with project communication taking place using a range of public forums.
+
+.. toctree::
+   :maxdepth: 1
+  
+   Email
+   Issue Tracker
+   Internet Relay Chat
+   Websites
\ No newline at end of file

Added: trunk/docs/developer/guide/Communication/Email.txt
===================================================================
--- trunk/docs/developer/guide/Communication/Email.txt                        (rev 0)
+++ trunk/docs/developer/guide/Communication/Email.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,9 @@
+Email
+-------------------
+
+Much of the development discussion happens on the geotools-devel mailing list.
+
+ * http://lists.sourceforge.net/lists/listinfo/geotools-devel
+ * http://sourceforge.net/mailarchive/forum.php?forum=geotools-devel
+
+If your query is more general, e.g. you need help with how to use GeoTools, please use the geotools-gt2-users mailing list.
\ No newline at end of file

Added: trunk/docs/developer/guide/Communication/Internet Relay Chat.txt
===================================================================
--- trunk/docs/developer/guide/Communication/Internet Relay Chat.txt                        (rev 0)
+++ trunk/docs/developer/guide/Communication/Internet Relay Chat.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,19 @@
+Internet Relay Chat
+-------------------
+GeoTools developers use an IRC channel for real time collaboration (for situations where email is too slow) - this is also a suitable venue for questions.
+If you are new to IRC, you will need to find an IRC client. The later versions of Netscape and Mozilla have IRC built in, and you can connect to a GeoTools meeting simply by using the URL:
+irc://irc.freenode.net/geotools.
+
+The information you need to configure your IRC client are:
+* Server - Pick one from Freenode Servers
+* Channel - #geotools
+* Port - 6667
+
+Logs from IRC meetings are stored on this wiki:
+* http://docs.codehaus.org/pages/viewrecentblogposts.action?key=GEOTOOLS
+
+IRC Breakout Meetings
+^^^^^^^^^^^^^^^^^^^^^
+
+Occasionally breakout IRC meetings will be announced on the geotools-devel mailing list around specific topics of interest.
+Anyone is free to start a meeting; we ask that an email be sent out and a time negotiated on the email list allowing interested parties to attend.
\ No newline at end of file

Added: trunk/docs/developer/guide/Communication/Issue Tracker.txt
===================================================================
--- trunk/docs/developer/guide/Communication/Issue Tracker.txt                        (rev 0)
+++ trunk/docs/developer/guide/Communication/Issue Tracker.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,15 @@
+Issue Tracker
+-------------------
+
+GeoTools tracks tasks, issues and bugs with its JIRA tracker, generously provided by Atlassian and hosted by CodeHaus.
+
+This is where all bugs should be reported, in addition to requested features and improvements.
+* http://jira.codehaus.org/secure/BrowseProject.jspa?id=10270
+
+Filling out all fields is specially important for bug reports:
+* including component(s)
+* affected versions of geotools ( a release or code from SVN? )
+* A description of what caused the problem (example code that reproduces the problem) along with any stack traces
+* The Java Version and the type of operating system you are using
+* You may wish to attach log files, or screen snapshots to the Jira task
+* If you are reporting failed tests during the maven build, check the test reports in <module>/target/surefire-reports for further details
\ No newline at end of file

Added: trunk/docs/developer/guide/Communication/Websites.txt
===================================================================
--- trunk/docs/developer/guide/Communication/Websites.txt                        (rev 0)
+++ trunk/docs/developer/guide/Communication/Websites.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,30 @@
+Websites
+--------
+
+GeoTools maintains a number of public websites:
+* http://geotools.org/
website generated using sphinx operated by OSGeo
+* http://geotoolsnews.blogspot.com/
Blog operated by google
+* http://docs.codehaus.org/display/GEOTOOLS/Homehttp://docs.codehaus.org/display/GEOTDOC/Homehttp://docs.codehaus.org/display/GEOT/Home
Confluence wiki used for developer collaboration operated by CodeHaus
+* http://jira.codehaus.org/secure/BrowseProject.jspa?id=10270

JIRA Issue Tracker operated by CodeHaus
+* http://xircles.codehaus.org/projects/geotools
CodeHaus project page (for confluence and jira project permissions)
+* http://svn.geotools.org/
svn source code repository operated by OSGeo
+* http://sourceforge.net/projects/geotools/
Used for project downloads.
+
+GeoTools has entries on a number of other public websites:
+* http://freshmeat.net/projects/geotools/
+* http://www.ohloh.net/p/geotools
+
+Confluence
+^^^^^^^^^^
+
+Confluence has been used since March 2004 to allow anyone (developers and users) to create and update GeoTools documentation.
+Because of spammers our procedure to get read/write access to the wiki has gotten a tad annoying. It is documented at the bottom of our home page:
+1. Create an account for confluence: http://docs.codehaus.org/signup.action
+2. Create an account for codehaus: http://xircles.codehaus.org/signup
+3. Go to your personal details page: http://xircles.codehaus.org/my/details
+4. Use the form to fill in your Confluence Username from step one. http://xircles.codehaus.org/projects/geotools
+5. Go to the GeoTools project page: http://xircles.codehaus.org/projects/geotools
+6. And click on Apply to join as a developer
+7. Wait for a GeoTools Project Management Committee Member to grant you permission
+8. Once you have an account, you just need to login and click on the edit button to modify a page.
+Confluence uses a simple markup language, and a quick reference is given on the right side of pages you are editing. One way to start contributing to the wiki documentation is to fix mistakes, clarify confusing content or by contributing to the documentation for areas of the GeoTools code base you are familiar with.
\ No newline at end of file

Added: trunk/docs/developer/guide/Design and Architecture/Architecture.txt
===================================================================
--- trunk/docs/developer/guide/Design and Architecture/Architecture.txt                        (rev 0)
+++ trunk/docs/developer/guide/Design and Architecture/Architecture.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,8 @@
+Architecture
+============
+
+Detailed Model
+--------------
+
+Plugin Extension Model
+----------------------
\ No newline at end of file

Added: trunk/docs/developer/guide/Design and Architecture/Design and Architecture.txt
===================================================================
--- trunk/docs/developer/guide/Design and Architecture/Design and Architecture.txt                        (rev 0)
+++ trunk/docs/developer/guide/Design and Architecture/Design and Architecture.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,9 @@
+***********************
+Design and Architecture
+***********************
+
+.. toctree::
+   :maxdepth: 1
+  
+   Architecture
+   Modular Design

Added: trunk/docs/developer/guide/Design and Architecture/Modular Design.txt
===================================================================
--- trunk/docs/developer/guide/Design and Architecture/Modular Design.txt                        (rev 0)
+++ trunk/docs/developer/guide/Design and Architecture/Modular Design.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,14 @@
+Modular Design
+==============
+
+Module Categories
+-----------------
+
+Data Access
+-----------
+
+Patterns
+--------
+
+Abstract Factory
+^^^^^^^^^^^^^^^^

Added: trunk/docs/developer/guide/Documentation/Confluence Tips and Tricks.txt
===================================================================
--- trunk/docs/developer/guide/Documentation/Confluence Tips and Tricks.txt                        (rev 0)
+++ trunk/docs/developer/guide/Documentation/Confluence Tips and Tricks.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,55 @@
+Confluence Tips and Tricks
+==========================
+
+Page Hierarchies
+^^^^^^^^^^^^^^^^
+
+Related wiki pages can be grouped into hierarchies. For example, all tutorials are children of the Tutorials page. You can set a page's 'parent page' property to make it a child of the parent. Using a hierarchical organization makes the hundreds of wiki pages easier to navigate in the directory view of the wiki.
+
+Hierarchies also allows wiki macros to be used to create table of contents of the child pages (as done for the FAQ and Reference pages). The table of contents is organized alphabetically. If you need the pages to be ordered, prepend numbers to them. The following macro creates a table of content of all the child pages:
+
+ {children:all=true|excerpt=true}
+
+The above macro also includes page excerpts in the table of contents. An excerpt can be created with the following wiki tag:
+
+ {excerpt}an excerpt{excerpt}
+
+Use of pages and Links
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Link early link often, and the pages will come.
+
+Feel free to link to pages that don't exist yet, or to reference terms a reader may not know. Undefined pages act as reminders to write new content, and can be found from the Reports on the Space Summary page.
+
+Linking to References
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Since all references are on their own page, they can just be linked like any other page. For example:
+
+The design of the \[GEOTDOC:GCE\] was influenced by the \[GEOTDOC:Web Map Server\] specification.
+
+Including page content in other pages
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Sometimes you will want to include information in one page in many different pages. You can use the following tag to accomplish this:
+
+ {include:quicklinks}
+
+Special Characters
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Unfortunately the Confluence wiki software does not like page names with '?' characters. Also, pages with '-' characters in their names do not link correctly on the http://geotools.codehaus.org/ view of the wiki.
+
+Use of Attachments
+
+The confluence system allows the use of images:
+
+1. Upload the picture as an attachment
+2. Refer to it: !my-image.png
+
+Use of Export
+^^^^^^^^^^^^^^^^
+
+Export to PDF and html work. The series of check boxes used to specify each page is a bit clunky but life will go on.
+
+We will probably make use of export to html (and provide a custom style sheet) when exporting the developers guide for release.
\ No newline at end of file

Added: trunk/docs/developer/guide/Documentation/Documentation.txt
===================================================================
--- trunk/docs/developer/guide/Documentation/Documentation.txt                        (rev 0)
+++ trunk/docs/developer/guide/Documentation/Documentation.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,15 @@
+**************
+Documentation
+**************
+
+The chapter covers some writing guidelines for GeoTools documentation, along with some tips and tricks for working with Confluence.
+
+You may wish to review *Websites* page which covers how to get edit access for the wiki.
+
+.. toctree::
+   :maxdepth: 1
+  
+   Welcome and Tutorials
+   Reference Material
+   Confluence Tips and Tricks
+   GeoTools 2.0 Documentation
\ No newline at end of file

Added: trunk/docs/developer/guide/Documentation/GeoTools 2.0 Documentation.txt
===================================================================
--- trunk/docs/developer/guide/Documentation/GeoTools 2.0 Documentation.txt                        (rev 0)
+++ trunk/docs/developer/guide/Documentation/GeoTools 2.0 Documentation.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,18 @@
+GeoTools 2.0 Documentation
+==========================
+
+The following pages were used to collection information for the GeoTools 2.0 release - information is being migrated to the user guide as needed.
+
+* Tutorials - Use for lessons and discussions, with sample code, about the geotools codebase. Such tutorials can be printed out and referenced as the library is learned. UML diagrams are also common here.
+
+* Snippets - A place for small pieces of sample code that do not have to be full worked examples. Some Snippets may latter be further developed into tutorials.
+
+* Articles Non-coding documents (miscellaneous).
+
+* FAQ - Answers to questions that new users and developers may have.
+
+* RnD - Proposed new features for the geotools library.
+
+* Home - (aka Developers Guide) A place for project procedures and standards.
+
+* Reference - A list of abbreviations and acronyms. New references are added as children pages to the reference pages. If you want to go the extra mile you can provide an information hierarchy for things like OGC Specifications, GIS Terms, Definitions and so on.
\ No newline at end of file

Added: trunk/docs/developer/guide/Documentation/Reference Material.txt
===================================================================
--- trunk/docs/developer/guide/Documentation/Reference Material.txt                        (rev 0)
+++ trunk/docs/developer/guide/Documentation/Reference Material.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,113 @@
+Reference Material
+==================
+
+The bulk of our user guide is devoted to reference material, on a module by module basis. Please keep in mind that this is reference material focused on results - ie code examples to accomplish a specific purpose.
+
+We do not need a bunch of design documentation here, show us what your code can do.
+
+You may want to briefly introduce any new concepts specific to your module, but please leave the definitions of what things are to the javadocs.
+
+As an example:
+
+* When documenting Main you can mention what a Feature is used for - since DefaultFeature is the first implementation a user will have used.
+
+* When documenting WFS you can mention what a Web Feature Server is - since that is the new concept for your plugin, but please don't define what a Feature again.
+
+Focus on useful results and examples, leave the background information to the specifications and welcome section.
+
+Do not:
+
+* You do not need to go all out and define the interfaces - we have javadocs for that.
+
+General Approach
+^^^^^^^^^^^^^^^^^
+
+The GeoTools user guide is set up as a one two punch:
+
+1. The Javadocs define the Concepts (users can see what a class is when they look at a tooltip in their IDE)
+
+2. The Reference Material here provides example code
+
+The expected Use of this material is (honestly):
+
+1. User finds the wiki page using google
+2. They cut and paste the source code into their program
+   (They may curse a bit as they hunt down dependencies but that is not your fault)
+3. Their IDE can show them the Javadocs for any classes (incase they wonder what something is).
+
+With this in mind our goal is to provide code examples showing how to perform common tasks.
+
+Documenting a Module
+^^^^^^^^^^^^^^^^^^^^
+
+Each page of documentation is prefixed with a number; in order to ensure order when exporting the user guide. If possible try and use a {toc} (table of contents) tag near the top to allow users to quickly navigate down the page.::
+  
+   A FeatureCollection is used to represent a set of Features (often returned as the result of a query):
+   {toc}
+  
+   Related:
+   * [02 FeatureSource]
+  
+   h1. Creating a FeatureCollection
+  
+   h2. Using FeatureSource.getFeatures()
+  
+   h2. Using FeatureCollections.newInstance()
+  
+   h1. Using a FeatureCollection
+  
+   h2. FeatureVisitor
+  
+   h2. Iterator
+  
+   h2. Feature Iterator
+
+It looks like using a number to prefix the page name may not be strictly required anymore (since a new update to Confluence lets us set page order)
+
+Code Examples
+^^^^^^^^^^^^^^
+
+Please isolate complete working examples as a demo module. For most quick examples taking content from your tests cases will be just fine. Please remember to mention the wiki page in your javadocs, so we can keep the two in sync.
+
+If you are really lazy you can provide link to your test case in from the wiki - so users can check if the example code is still valid.
+
+Documenting Plug-ins for a Module
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Each module that allows plug-ins should have the plug-ins listed as child pages; there is no need to "prefix" these pages with a number as Alphabetical order will be fine (every plugin is considered equal).
+
+Extensions
+^^^^^^^^^^^
+
+The extensions are functionality that are built "on top" of the core library; we have a child page for each extensions.
+
+Unsupported
+^^^^^^^^^^^
+
+Unsupported modules (that bother to have any documentation at all) are listed here - one child page for each unsupported module. This is mostly used as a staging area when an unsupported module is getting ready and meeting its documentation requirements.
+
+Advanced
+^^^^^^^^
+
+Advanced Materials cover "Integration" of GeoTools with facilities provided by an existing application.
+
+* Easy: Logging (teaching GeoTools how to make use of an application's existing logging facilities)
+
+* Medium: Making use of a Java EE application server that shares JDBC Connection Pools between running applications
+
+* Hard: An organisation that has a single EPSG database for a workgroup (and have registered this database as a JNDI service).
+
+All of these issues boil down to careful application of:
+
+* Factories (how you can teach uDig new tricks)
+* Hints (generally used to inject your own Factory into GeoTools)
+
+Guides
+^^^^^^^
+
+Advanced Guides on specific topics; the target audience is now a fellow GeoTools developer who wishes to implement a new plugin.
+
+Deprecated
+^^^^^^^^^^
+
+A collection of old reference material that is now outdated; copy old code examples here as API is updated.
\ No newline at end of file

Added: trunk/docs/developer/guide/Documentation/Welcome and Tutorials.txt
===================================================================
--- trunk/docs/developer/guide/Documentation/Welcome and Tutorials.txt                        (rev 0)
+++ trunk/docs/developer/guide/Documentation/Welcome and Tutorials.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,32 @@
+Welcome and Tutorials
+======================
+
+The Welcome section of the Users Guide is devoted to introduction material and tutorials.
+
+Since there is no module maintainer for overview and background knowledge of this nature we need to be very careful that it is always up to date.
+
+All example code used in the wiki must be present in the demo folder.
+By making use of the demo folder we will ensure that the code:
+
+* Compiles and Functions
+* Is kept up todate as API changes occur
+
+It is the responsibility of those making an API change to update the example code, and associated wiki pages. Please be kind and include a link to the wiki page in your demo code javadocs.
+
+Guidelines for Writing
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When writing for the welcome section please consider the target audience as experienced in Java, but not experienced with spatial constructs and ideas. We must focus on results, not correctness.
+
+Here are some examples:
+
+* Introduce the concept of a Feature, but not Java Generics
+* Show first, explain after - given your target audience showing them the source code first will put them at ease. That way when you are talking about what a Feature means afterwords they will know to pay attention (it is after all a real concept that they must deal with in the form of a Java interface).
+* Leave the specifications out of it as much as possible. You can link to the specifications as "related information", and talk about ideas such as ISO Geometry - but do not drive people crazy. They are here to get a job done - it is your job to understand the specification so they do not have to.
+* You can create a "Welcome for..." page if you have a different target audience in mind.
+
+Use of Example Code
+^^^^^^^^^^^^^^^^^^^^
+
+Please add any example code to the demo/example project; so you can be sure it compiles.
+

Added: trunk/docs/developer/guide/Introduction.txt
===================================================================
--- trunk/docs/developer/guide/Introduction.txt                        (rev 0)
+++ trunk/docs/developer/guide/Introduction.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,70 @@
+************
+Introduction
+************
+
+This guide is intended for programmers wishing to improve the GeoTools library itself.  The User Guide is intended for programmers wishing to use GeoTools as a code library.
+
+Think of this document as the “Care and Feeding” instructions we used to create the library for your use.
+
+Document Overview
+-------------------
+
+This document provides comprehensive java software development processes tailored for open source projects. It covers processes, conventions, and recommended tools. The guide aims to help developers quickly get up to speed with best practices. You are not expected to read this guide cover-to-cover. You probably should be familiar with the contents and reference the appropriate section when you need it. Documentation aims to be concise with references elsewhere on the web for details like installation instructions.
+
+This guide is written in a modular fashion so that different projects can easily add, delete, or modify sections. It is hoped that this guide will become the de-facto standard software developers guide for java-based open source projects. For this guide to be useful it needs to be continually added to and improved as tools are developed, processes improved and projects grow.
+
+Please consider improving or adding a section if you feel it is required. Only free, cross-platform tools are recommended here. Where applicable, widely-accepted conventions and open standards are used. It has been satisfying to discover the breadth of quality free and open source tools which support software development. It is hoped that this document will highlight areas where tools can be improved or developed and encourage developers to focus on these areas. This guide has been used as the basis for Generguide - A Generic Software Developer's Guide.
+
+System Overview
+-------------------
+
+GeoTools is an open source, Java GIS toolkit for developing standards compliant solutions. Its modular architecture allows extra functionality to be easily incorporated.
+
+GeoTools aims to support OpenGIS and other relevant standards as they are developed. GeoTools code is built using the latest Java tools and environments and will continue to leverage the capabilities of future Java environments and official extensions as and when the technologies are released and have been through the first maintenance cycle.
+
+It is not the intention of the GeoTools project to develop finished products or applications, but it is the intention to interact and support fully other initiatives and projects which would like to use the GeoTools toolkit to create such resources.
+
+The GeoTools project is divided into separate modules, each of which implements a specific requirement. Only a subset of these modules is usually required to build an application based on GeoTools.
+
+Document License
+-------------------
+
+The original wiki documentation was distributed under the free documentation license:
+
+.. code-block:: java
+  
+   Copyright (c) 2004 Open Geospatial Foundation
+  
+   Permission is granted to copy, distribute and/or modify this document under the
+   terms of the GNU Free Documentation License, Version 1.1 or any later version
+   published by the Free Software Foundation; with the Invariant Sections being with no
+   Invariant Sections, with the Front-Cover Texts being no Front-Cover Texts, and with
+   the Back-Cover Texts being no Back-Cover Texts.
+
+This generated documentation is distributed using creative commons with attribution.
+
+For details see http://creativecommons.org/licenses/by/3.0/ 
+
+.. image:: /images/ccAttribution.*
+
+Source License
+-------------------
+
+The source code of the GeoTools library is distributed under the LGPL license:
+
+.. code-block:: java
+  
+   GeoTools - The Open Source Java GIS Toolkit http://geotools.org
+   (C) 2004-2010, Open Source Geospatial Foundation (OSGeo)
+  
+   This library is free software; you can redistribute it and/or modify it under
+   the terms of the GNU Lesser General Public License as published by the Free
+   Software Foundation; version 2.1 of the License.
+  
+   This library is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+   FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+
+A few select files have additional license:
+* Code contributed by government members is often contributed as public domain
+* To facilitate adopting of the GeoTools library the example code used in the user guide is also public domain

Added: trunk/docs/developer/guide/Project Conventions/Code Profiling.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Code Profiling.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Code Profiling.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,79 @@
+Code Profiling
+===============
+
+Code profilers are tools which analyse performance and memory of applications. We have several good free tools that we have used.
+
+YourKit
+-------
+
+YourKit is a CPU and memory profiler for Java applications.
+Can be run stand alone or integrated with various IDEs.
+For a full list of features, please refer the YourKit pages
+
+* http://www.yourkit.com/
+
+License management
+^^^^^^^^^^^^^^^^^^^
+
+YourKit is a commercial product, which provides open source project
+committers with free licenses.
+
+Geotools PMC has been granted 10 licenses, each one can be used by at most
+one developer in a given period of time.
+Andrea Aime is managing the licenses now, so if you feel like using
+YourKit for profiling the gt2 source code base please:
+
+check that at least one license it available or
+ask someone to step down and give the license to you
+ask Andrea Aime about the license file
+update this page to allow us to track the licenses used.
+License list
+
+* license 1: Andrea Aime
+* license 2: Simone Giannecchini
+* license 3: Justin Deoliveira
+* license 4: Gabriel Roldan
+* license 5: available
+* license 6: available
+* license 7: available
+* license 8: Jody Garnett
+* license 9: Christophe Rousson
+* license 10: Daniele Romagnoli
+
+Eclipse Profiler PlugIn
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The following eclipse profiler is recommended:
+
+* http://eclipsecolorer.sourceforge.net/index_profiler.html
+
+HPJMeter
+^^^^^^^^
+
+HPJMeter analyses profiling data from hprof (provided with JDK).
+
+To invoke hprof, run java with the following options::
+  
+   -Xrunhprof:cpu=samples,thread=n,depth=40,cutoff=0,format=a
+
+At the end of the run you'll find a java.hprof.txt file that can be opened with HPJMeter.
+
+If you are running from Netbeans:
+
+1. Select Tools -> Options -> Debugging and Executing -> Execution Types -> right click -> New -> External Executor
+
+2. Rename the new executor HProf External Executor (or whatever you like).
+3. till in the Options dialog box, open HProf External Executor -> Properties -> External Process and in arguments add at the beginning::
+      
+      -Xrunhprof:cpu=samples,thread=n,depth=40,cutoff=0,format=a {assertEnabled}
+
+4. hprof will be launched every time you select this kind of executor.
+5. Go to: HProf External Executor -> Expert -> Working Directory
+6. Set a working directory: Eg /home/<username>/tmp/hprof
+7. Hprof dumps the resulting text file in this directory. This setting modifies the working directory of the java JVM. Make sure the working directory exists, otherwise the executor won't work.
+8. Close the options dialog and select the file you want to profile
+9. Select (right click on file to profile) -> Properties -> Execution -> Executor
+10. Set to the HProf External Profiler.
+11. Run your application, test or stress test
+
+At the end of the run you'll find a java.hprof.txt file that can be opened with HPJMeter.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Module Directory Structure.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Module Directory Structure.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Module Directory Structure.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,105 @@
+Module Directory Structure
+==========================
+
+Geotools 2.4 and above complies to the Maven 2 standard layout with an extension regarding module hierarchy.
+
+This section provides a summary where module is the module name and category is one of library, plugin, extension, demo or unsupported.
+
+Module Structure
+^^^^^^^^^^^^^^^^^
+
+Module is strucutured
+* modules/category/module/pom.xml
+  
+  Provides metadata about the module for maven
+
+* modules/category/module/src/site
+  
+  Files for Maven to automatically generate the site
+
+* modules/category/module/src/site/site.xml
+  
+  Layout file for the site, required to add a menu entry for the review information
+
+* modules/category/module/src/site/apt/review.apt
+  
+  Almost Plain Text file for copyright and licensing info
+
+* modules/category/module/src/main/java
+  
+  Module Java source files
+
+* modules/category/module/src/main/resources
+  
+  Resources to be included in the JAR file
+
+* modules/category/module/src/test/java
+
+  JUnit tests source files
+
+* modules/category/module/src/test/resources
+  
+  Resources required for tests only
+
+* modules/category/module/target
+  
+  Automatically created for Maven output (details below)
+
+Module Targets:
+
+* modules/category/module/target/classes
+  
+  Generated class files, results of last 'maven compile'
+
+* modules/category/module/target/site
+  
+  Files for the automatic website, from 'maven site:site'
+
+* modules/category/module/target/site/apidocs
+  
+  Generated javadocs, from last 'maven javadoc:javadoc'
+
+* modules/category/module/target/surefire-reports
+  
+  Logs from junit, from last 'maven test'
+
+* modules/category/module/target/test-classes
+  
+  Generated junit classfiles, from last 'maven test'
+
+* modules/category/module/target/module-2.4-SNAPSHOT.jar
+  
+  Generated jar file, from last 'maven install'
+
+Module Categories
+^^^^^^^^^^^^^^^^^^
+
+* modules/library/ - this is the core library
+  
+  * opengis - interfaces for standard GIS concepts
+  * api - stable interfaces
+  * referencing - default implementations of opengis interfaces
+  * coverage - enables raster support
+  * main default implementations  
+  * jdbc - enables database support
+  * render - implementation of SLD based rendering system
+  * cql - implementation of plain text filter
+  * Xml - support for xml
+
+* modules/plugin/ - modules that dynamically integrate to the GeoTools library at runtime
+  
+  * jdbc-postgis - plugin allowing jdbc to work with postgis database
+  * epsg-hsql - plugin allowing referencing to work with epsg codes
+  * Shapefile - plugin providing shapefile support
+
+* modules/extension/ - extensions and extras built using the library
+  
+  * brewer - generate styles from for a feature collection
+
+* modules/unsupported/ - modules that are not ready yet, or are orphaned and no longer have a contact person
+  
+  * oracle - legacy oracle datastore
+  * process - framework for spatial processes
+  * wps - client for web processing service
+
+* demo/ - small working examples, usually part of a tutorial

Added: trunk/docs/developer/guide/Project Conventions/Naming Conventions.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Naming Conventions.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Naming Conventions.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,125 @@
+Naming Conventions
+===================
+
+Naming conventions is another one of those things that are fun to learn working with a new codebase. We tend to follow normal Java naming for things; we have had some fun with unicode variable names over the years so please be careful and think of others.
+
+Naming Files and Directories
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+GeoTools makes use of the following naming conventions.
+
+* Directory
+  
+  ext/validation
+  
+  Directory names shall be all lower case with no spaces.
+
+* Package
+  
+  org.geotools.filter
+  
+  Packages are all lower case with no spaces and should be located in *org.geotools package*
+
+* Interface
+  
+  DataStore
+  
+  GeoTools interfaces are usually located in the *gt-opengis* or *gt-api* modules. Interfaces should be called XXX.java
+
+* Implementation
+  
+  ShapefileDataStore
+  
+  Append the name of the interface being implemented
+
+* Default
+  
+  DefaultQuery
+  QueryImpl
+  
+  Default implementations should be called DefaultXXX.java or XXXImpl.java
+
+* Abstract
+  
+  AbstractDataStore
+  
+  Abstract implementations should be called AbstractXXX.java
+
+* Javadoc
+  
+  doc-files/
+  
+  Javadoc makes use of doc-files directories in the package hierarchy to allow the inclusion of rich content in generated api documentation.
+
+* JUnit
+  
+  test-data/
+  
+  JUnit test cases make use of test-data directories in the package hierarchy
+
+* Test
+  
+  SampleTest
+  
+  JUnit test, picked up by maven build process
+
+* online test
+  
+  ServerOnlineTest
+  
+  JUnit test making use of line resource such as a web service
+
+Some versions of windows do not distinguish between upper and lower case, and in unix, writing spaces in filenames is painful.
+
+Notes:
+
+* both test-data and doc-files do not follow the package naming convention allowing them to be easily distinguished from normal code
+* both Test and OnineTest are picked out by the maven build process for special treatment
+
+Naming Conventions
+^^^^^^^^^^^^^^^^^^
+
+We tend to follow normal java development naming conventions. Classes start with Capital letters and use CamelCase, variable start with a lower case letter and use camelCase, constants and enumerations are ALL_CAPITALS etc..
+
+* Interface
+  
+  Renderer
+  
+  Use camel case and start with a capital letter
+
+* Interface
+  
+  RendererFactory
+  
+  When defining an interface you often need a factory to handle construction
+
+* Class
+  
+  DefaultRenderer
+  
+  Use camel case and start with a capital letter. Try and end with the interface name
+
+* Class
+  
+  RendererImpl
+  
+  Used to quickly implement an interface when we expect only one implementation
+
+* Variable
+  
+  xDelta
+  
+  Start with lower case using camel case to separate words
+
+* Constant
+  
+  MAX_LIMIT
+  
+  Use all capitals and an underscore to separate words. This applies to enumeration constants as well
+
+Tools that can Help
+^^^^^^^^^^^^^^^^^^^^
+
+* FindBugs http://findbugs.sourceforge.net/
+* PMD http://pmd.sourceforge.net/
+
+Running these static analysis tools on your code will find all sorts of mistakes; in addition to checking that your names follow accepted practice.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Project Conventions.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Project Conventions.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Project Conventions.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,14 @@
+*******************
+Project Conventions
+*******************
+
+.. toctree::
+   :maxdepth: 1
+  
+   Source Code/Source Code
+   Naming Conventions
+   Module Directory Structure
+   Refactoring
+   Code Profiling
+   Testing JUnit/Testing JUnit
+   Versioning
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Refactoring.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Refactoring.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Refactoring.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,100 @@
+Refactoring
+============
+
+Refactoring is the process of restructuring/renaming your code to ensure your design remains clean as your requirements and functionality change and grow with time.
+
+Refactoring is best explored using the excelent book writen my Martin Fowler.
+
+Subversion Warning
+^^^^^^^^^^^^^^^^^^
+
+SVN wants to know what you are doing, please use the svn move name1 name2 command
+when refactoring to let svn keep track of history information.
+
+This is especially important when using either of the tools at the end of this page - although we can hope that more complete svn intergration is available for Eclipse shortly.
+
+Changing public API
+^^^^^^^^^^^^^^^^^^^
+
+Before to refactor a method, make sure that it did not have public access in the previous Geotools release.
+
+* If it was public, then we need to go through a "deprecate, then remove" cycle.
+* If not was not public, go ahead with with the refactoring.
+
+For example consider the following method::
+  
+   /**
+    * Do some stuff.
+    */
+   public void devolution(double x, double y) {
+       // Do something
+   }
+
+Suppose that Geotools 2.3 is already released and we are working on Geotools 2.4. Suppose that we want to add a String argument to the above method. Do not refactor this method directly like this:
+
+WRONG::
+  
+   /**
+    * Do some stuff.
+    */
+   public void devolution(String method, double x, double y) {
+       // Do something
+   }
+
+Instead, duplicate the method for at least one Geotools release:
+
+Better::
+  
+   /**
+    * Do some stuff.
+    *
+    * @deprecated Replaced by {@link #foo(String,double,double)}.
+    */
+   public void devolution(double x, double y) {
+       foo(someDefaultTitle, x, y);
+   }
+  
+   /**
+    * Do some stuff.
+    *
+    * @since 2.4
+    */
+   public void devolution(String method, double x, double y) {
+       // Do something
+   }
+
+Note the @since 2.4 javadoc tag. It is an important hint for both users and the module maintainer, so do not forget it. The deprecated method can be removed in Geotools 2.5.
+
+Keep methods private
+^^^^^^^^^^^^^^^^^^^^^
+
+Does it sound like tedious to apply the above procedure everytime we want to refactor a method? Then keep your methods private!! Hide the internal mechanic as much as possible and declare public only the methods that are really expected to be used. If you need to share the internal mechanic with other classes that perform a related work, consider the package private access (chances are that related classes are declared in the same package). Think very hard before to give public access to a method. In case of doubt, keep it private until we get more experience about that particular method. It is much easier to turn a private method into a public one later than trying to change an already public method.
+Giving public access to a private method
+
+Wanting to turn a private method into a public one? Before to do so, make sure that the method is declared at the right place for public access. In many cases, private methods are convenience methods performing some work that are only indirectly related to the main purpose of the enclosing class. For example an Apple class may have a compareOranges private method for whatever internal reason. If you need public access to this method, replacing the private keyword by public is not enough! Consider moving this method to the Orange class. Keep also in mind that the method will now be used in a wider context than it originaly did, so check if it made any assumptions that need to be revisited.
+
+Refactoring tools
+^^^^^^^^^^^^^^^^^
+
+RefactorIt
+   To ease refactoring you can use RefactorIt which provides tools to:
+  
+   * research, probe and understand existing source code,
+   * move, organise and transform existing code,
+   * and provide code metrics.
+   * More details can be found from the online help.
+  
+   RefactorIt is commercial, but provides free licences for Open Source projects like Geotools.
+   See the RefactorIt web pages for details. It can be plugged into a variety of IDEs, including
+   Netbeans.
+  
+   Installation in to GEOTOOLS:Netbeans fairly strait forward through
+   **Tools -> RefactorIt -> Project Options**, although setting up soucepath and classpath is a
+   difficult if some of the geotools files don't compile. You will need to either remove the
+   offending files, get them to compile or remove them from RefactorIt's sourcepath.
+
+Eclipse Developers Guide Refactoring
+   Eclipse has many refactorings available, mostly through context menus.
+
+Netbeans Refactoring
+   Netbeans has many refactorings available, mostly through context menus.

Added: trunk/docs/developer/guide/Project Conventions/Source Code/Avoid assumptions.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Source Code/Avoid assumptions.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Source Code/Avoid assumptions.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,103 @@
+Avoid Assumptions
+------------------
+
+A new code has been added or an existing code has been modified, and everything seems to work fine? Then why some reviewers push for what seem useless details? Why not just wait to see if somebody complains?
+
+Because approximative code often work only for some specific cases. It is more difficult to figure out six months later what is going wrong, than to think hard about corners at the time the code is first written. Real examples from geotools code:
+
+Attention to equals and hashCode contract
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The **org.geotools.geometry.GeneralEnvelope** class implements the equals method with a strict comparison: equals returns true only if two envelopes are of the same class and have identical coordinates (e.g. e1.x == e2.x). It may sound like a good idea to relax this rule and compare the coordinates only up to some tolerance error (e.g. abs(e1.x - e2.x) < EPS), since rounding errors in various calculation algorithms may produce slightly different floating point numbers for conceptually identical envelopes.
+
+Actually, it is not a good idea to define the standard equals(Object) method in this relaxed way. First of all, the EPS tolerance level is arbitrary and should be provided explicitly by the user. Second and most important, such relaxation violates the equals and hashCode contract in the Object class. The contract stipulate that if e1.equals(e2) == true, than e1.hashCode() == e2.hashCode(). If the hash code value is computed from the envelope coordinates, then a relaxed equals implementation will wrongly return true even if the hash codes are actually different.
+
+The consequence is a GeneralEnvelope that seems to work conveniently, but a **java.util.HashMap** that work randomly when such envelopes are used as keys. The user may have the feeling that there is a bug in Sun's implementation of HashMap, while actually it is caused by oversight in GeneralEnvelope.equals(Object) implementation.
+
+Attention to String used as keys
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Strings are often used as keys, either in **java.util.Map** or some kind of named object. They are dangerous when used in more than one place without the help of compile time constants.
+
+Examples::
+  
+   // String Literal's as Keys
+   map.put("No data", value);
+  
+   // Will not work because of the upper-case 'D'
+   value = map.get("No Data");
+  
+   // Will work only in English or unsupported locales!
+   value = map.get(Vocabulary.format(VocabularyKeys.NO_DATA));
+
+Consider using a static constants instead::
+  
+   // Static Constants as Keys
+   private static final String NO_DATA = "No data";
+  
+   map.put(NO_DATA, value);
+   value = map.get(NO_DATA);
+
+Note this static constant can still be used for generating human readable messages; it is simply used as a key to look up the appropriate translation.
+
+Use AffineTransform mathematic
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Incorrect Use of Transform::
+  
+   public void foo(CoordinateReferenceSystem crs, AffineTransform transform) {
+       boolean isLongitudeFirst = crs.getCoordinateSystem().getAxis(0)
+            .getDirection().absolute().equals(AxisDirection.EAST);
+       double scaleX = (isLongitudeFirst) ? transform.getScaleX() : transform.getShearY();
+       double scaleX = (isLongitudeFirst) ? transform.getScaleY() : transform.getShearX();
+   }
+
+The above code is wrong for two reasons described below:
+
+* Do not make assumption on AffineTransform based on the coordinate reference system
+  
+  What the isLongitudeFirst line above really try to do is to determine if the affine transform interchanges the x and y axis. But as the name suggests, isLongitudeFirst just said if the first axis is longitude. It implicitly assumes that the axis are exclusively (longitude, latitude) or (latitude, longitude), which is a wrong assumption. Oceanographers will want to display (time, latitude) images for example, in which case the above code will wrongly believes that axis are interchanged.
+  
+  To be strict, we need at least the sourceCRS and targetCRS in order to determine if some axis were interchanged. In addition, if isLongitudeFirst is used only for selecting affine transform coefficients, it would be much safer to determine the "axis interchange" state from the affine transform rather than from the CRS. Keep in mind that this is a user-supplied affine transform and we have no guarantee that the user built it in the same way that we would. Maybe the user wants an arbitrary rotation? Maybe he uses a (latitude, depth) coordinate system? So if you really want to determine if axis were interchanged, consider using something like transform.getShearX() != 0, or yet better XAffineTransform.getSwapXY(transform) == -1 (a static convenience method that perform more elaborated mathematic than the naive former test).
+
+* Use mathematic invariants when possible (avoid special cases)
+  
+  In the vast majority of cases, code don't need to determine if axis were interchanged. If a code tries to fetch different affine transform coefficients according some "axis interchanged" state, chances are that the code is just not using proper affine transform mathematic.
+
+  Incorrect Axis Interchange with Modal Code::
+    
+     public void foo(AffineTransform gridToWorld) {
+         double scaleX = Math.abs(swapXY ? gridToWorld.getShearY() : gridToWorld.getScaleX());
+         double scaleX = Math.abs(swapXY ? gridToWorld.getShearX() : gridToWorld.getScaleY());
+         double xUpperLeft = (swapXY) ? gridToWorld.getTranslateY() : gridToWorld.getTranslateX();
+         double yUpperLeft = (swapXY) ? gridToWorld.getTranslateX() : gridToWorld.getTranslateY();
+     }
+  
+  Correct Axis Interchange with Model Code::
+    
+     public void foo(AffineTransform gridToWorld) {
+         AffineTransform worldToGrid = gridToWorld.createInverse();
+         double scaleX = 1 / XAffineTransform.getScaleX0(worldToGrid);
+         double scaleX = 1 / XAffineTransform.getScaleY0(worldToGrid);
+         double xUpperLeft = -worldToGrid.getTranslateX() * scaleX;
+         double yUpperLeft = -worldToGrid.getTranslateY() * scaleY;
+         // TODO: in case of flipping, there is a sign issue.
+         // See XAffineTransform.getFlip(...) javadoc.
+     }
+  
+  Note that swapXY vanished completely in the later code, providing that we work on the right affine transform (worldToGrid rather than gridToWorld in the above example). The XAffineTransform.getScaleX0 method uses an identity that work for any rotation, not just axis swapping (which is a 90° rotation + flip) like the former code.
+  
+  If you are tempted to fetch different coefficients in an affine transform according some conditions, it is worth to take a paper and a pencil, write down the matrix and see if the equations can be written in some form invariant to rotation, flipping or axis swapping. This is often possible and leads to more robust and generic code.
+  
+  It may sound like paranoiac, but it is not. Old Geotools code was assuming (longitude,latitude) axis order in all cases, for example through unconditional calls to AffineTransform.getScaleX(). It required a great amount of energy from nice volunter in order to handle the (latitude,longitude) axis order as well. Unfortunatly the initial fix for this axis order issue, based on the "Axis Interchange with Modal Code" approach, has just pushed the problem a little bit further away. The code will fails for the next great Geotools step: 3D-Coverage. Users will want to see 2D slices using a wide range axis that are not longitude or latitude. It is better to make the best possible use of affine transform mathematic early than revisiting again the whole Geotools code base as in the "axis order issue" case.
+
+Prefer MathTransform over GridRange - Envelope pair
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In some place of GeoTools API, a MathTransform is inferred automatically from a grid range and an envelope. For example the GeneralGridGeometry class provides the following constructors::
+  
+   public GeneralGridGeometry(GridRange gridRange, Envelope userRange);
+   public GeneralGridGeometry(GridRange gridRange, MathTransform gridToCRS, CoordinateReferenceSystem crs);
+
+While the GridRange - Envelope pair seems easier and more intuitive, it is also ambiguous. There is no way to infer a MathTransform from this pair without making some assumptions on axis order and axis reversal. For example GeneralGridGeometry assumes that the y axis must be reversed in order to match the direction used in most screen devices (y values increasing down). Only the constructor with MathTransform argument is unambiguous.
+
+GridRange - Envelope pairs are provided as a convenience for helping users to get their first math transform right in a majority (but not all) cases. From that point, Geotools code should perform all their internal work on MathTransform, never on Envelope. Need to expand an envelope? Compute a scale affine transform and concatenate it with the user math transform. Need to translate, flip or swap axis? Same approach: express your change as an other transform, then concatenate.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Source Code/Coding Style.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Source Code/Coding Style.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Source Code/Coding Style.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,84 @@
+Coding Style
+------------
+
+Coding conventions describe the coding styles developers should use when writing code.
+
+For example, whether you use 2, 4, or 8 space indents. Standardising on a coding style across a project improves legibility of the code, and automatic code formatters make conforming to these standards easy.
+
+Sun Coding Conventions and a little bit more
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We follow:
+
+* Sun’s coding convention: http://java.sun.com/docs/codeconv/
+* but allow for 100 characters in width
+* developers should use spaces for indentations, not tabulations.
+  The tab width (4 or 8 spaces) is not the same on all editors.
+
+But what about the header?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The header for all core GeoTools code is::
+  
+   /*
+    *    GeoTools - The Open Source Java GIS Toolkit
+    *    http://geotools.org
+    *
+    *    (C) 2004-2010, Open Source Geospatial Foundation (OSGeo)
+    *
+    *    This library is free software; you can redistribute it and/or
+    *    modify it under the terms of the GNU Lesser General Public
+    *    License as published by the Free Software Foundation;
+    *    version 2.1 of the License.
+    *
+    *    This library is distributed in the hope that it will be useful,
+    *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    *    Lesser General Public License for more details.
+    */
+
+The header for all demo code is::
+  
+   /*
+    *    GeoTools - The Open Source Java GIS Toolkit
+    *    http://geotools.org
+    *
+    *    (C) 2004-2009, Open Source Geospatial Foundation (OSGeo)
+    *
+    *    This file is hereby placed into the Public Domain. This means anyone is
+    *    free to do whatever they wish with this file. Use it well and enjoy!
+    */
+
+Use of Formatting Tools
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+Get it right the first time - seriously. You cannot expect to go in and reformat your code later in time - because that would make applying fixes between branches of GeoTools needless difficult.
+
+If you are going to take the time to use one of these tools - do so on the first commit. And before every commit. After the code is branched you are stuck.
+
+If you must:
+   If you must change the formatting in an existing file; please be sure to do so with a distinct commit. Do not combine code modification (ie a bug fix) with changing the file around to make it look pretty.
+   You need to do this as a separate commit in order to have any confidence you can apply patches fixes as they are developed for other branches in the past.
+
+Eclipse
+^^^^^^^^
+
+Here are some eclipse settings that you can import when working on geotools work:
+
+* http://svn.osgeo.org/geotools/trunk/build/eclipse/codetemplates.xml
+* http://svn.osgeo.org/geotools/trunk/build/eclipse/formatter.xml
+
+To use:
+
+1. Open up Window > Preferences and navigate to the **Java > Code Style > Formatter** page
+
+2. Press the import button and select the file from your GeoTools check out (located in build/eclipse.formatter.xml)
+
+3. Change to the Java > Code Style > Code Templates page
+4. Import the template definition from your geotools check out (located in build/eclipse/codetemplates.xml)
+5. These files will have the header already to go for you; the right format options and so on.
+
+NetBeans
+^^^^^^^^^
+
+NetBeans also has the sun settings built in; please modify these defaults to match our project.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Source Code/Converting URLs to Files.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Source Code/Converting URLs to Files.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Source Code/Converting URLs to Files.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,48 @@
+Converting URLs to Files
+-------------------------
+
+Converting a File to a URL is difficult across different versions of Java; and across different platforms is tough.
+
+=================================== ==================================================
+File                                URL
+=================================== ==================================================
+file.txt                            file:file.txt
+/Users                              file:/Users
+C:\                                 file:///C:/
+C:\Users                            file:///C:/Users
+C:\direct with a space\file.txt     file://C:/directory%20with%20a%20space/file.txt
+\\host.org\share\directory\file.txt file://///host.org/share/directory/file.txt
+/Users/Jody/java                    file:///Users/Jody/java/
+=================================== ==================================================
+
+**DataUtiltiies** provides a couple of methods to centralise the handling of platform eccentricities, and ensure the correct encoding and decoding of characters such as spaces that are permitted in file paths but not in URLs. Use them wherever possible.
+
+DataUtilities.fileToURL
+^^^^^^^^^^^^^^^^^^^^^^^
+Here is how to create a URL for a File in GeoTools::
+  
+   URL url = DataUtilities.fileToURL(file);
+
+The official Java 6 way to do this is to use::
+  
+   URL url = file.toURI().toURL(); // can produce problems on Mac OSX
+
+The traditional Java 1.4 way is now deprecated::
+  
+   URL url = file.toURL(); // will produce invalid URL if spaces are in the path
+
+DataUtilities.urlToFile
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+When presented with a URL it is hard to know what to do - since we cannot know how a user has constructed the URL. So we have to assume the worst and try every possible way to untangle
+the provided URL.
+
+We have spent a lot of time trying to package up a nice clean way of doing this for our code::
+  
+   File f = DataUtilities.urlToFile(url);
+
+An early workaround for Java 1.4 code was to use the file authority information (to account for drive letters like "C:" and "D:"). If you find any of this code please update it to use DataUtilities.urlToFile(url).::
+  
+   File f = url.getAuthority() == null ?
+               new File( url.getPath() ) :
+               new File("//" + url.getAuthority() + url.getPath());

Added: trunk/docs/developer/guide/Project Conventions/Source Code/Do not return null.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Source Code/Do not return null.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Source Code/Do not return null.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,116 @@
+Do not return null
+------------------
+
+We will be on the lookout for any code that returns **null** when performing a code review.
+
+Stop
+^^^^
+
+Exceptions contains valuable informations about what may have gone wrong. Eating all exceptions is especially bad. Catch only the most specific exceptions you are expecting.
+
+Do not eat exceptions::
+  
+   try {
+      do_some_stuff();
+   } catch (Exception e) {
+      return null; // BAD PRACTICE  - DO NOT RETURN "null"
+   }
+
+An alternative is to invokes some convenience unexpectedException method from the org.geotools.util.Logging class.
+
+Log the exception::
+
+   try {
+       do_some_stuff();
+   }
+   catch (SomeSpecificException e){
+      LOG.warning("Could not do some stuff: " + e);
+      return SOME_EMPTY_OBJECT;
+   }
+
+How to stop returning null? Use one of the many "NullObjects" available to you as a stand in. You are expecting the person calling you to do something when you retuned **null** right? A NullObject is set up to capture exactly what you expect them to do.
+
+Here is an example::
+  
+   if (userSelected == null ){
+      // null filter indicating user has not selected anything
+      return Filter.EXCLUDE;
+   }
+
+To return a “null” list::
+  
+   try {
+       return a_set;
+   }
+   catch (SomeSpecificException e){
+      Logging.unexpectedException(LOG, e);
+      return Collections.EMPTY_LIST;
+   }
+
+How to return a "null" Expression::
+  
+   try {
+      return a_expression;
+   }
+   catch (SomeSpecificException e){
+      Logging.unexpectedException(LOG, e);
+      return Expression.NULL;
+   }
+
+How to return a "null" Filter (negative)::
+  
+   // Often used if it a programmer error encountering a limitation (say SQL encoding)
+   try {
+       return a_filter;
+   }
+   catch (SomeSpecificException e){
+       Logging.unexpectedException(LOG, e);
+       return Expression.EXCLUDES;
+   }
+
+How to return a "null" Filter (positive)::
+  
+   // Often used if it is a "data problem", return too much data rather then none
+   try {
+       return a_filter;
+   }
+   catch (SomeSpecificException e){
+       Logging.unexpectedException(LOG, e);
+       return Expression.INCLUDES;
+   }
+
+If you need additional "NullObjects" email the devel list and we will make them happen. We probably should have a NullDataStore and a NullFeatureSource for example ... or throw an Exception.
+
+Drop
+^^^^
+
+Drop the pretence that everything is okay, if you are in a situation where you are returning null chances are there is a real problem around ... so throw some kind of Exception. This should be used when you have defined your limitations in the javadocs, and the programmer has neglected to read them.
+
+This may require use of runtime exceptions, or the interface you are implementing may already provide a checked exception for you to throw.
+
+Programming Error::
+  
+   try {
+       do_some_stuff();
+   } catch (SomeSpecificException e) {
+       return (IOException) new IOException("Could not do some stuff (did you read the javadocs?): "+e).initCause(e);
+   }
+
+Roll
+^^^^
+
+As a last possible effort; Roll with the flow (but be sure to "log the cause" so client code can notice something is wrong):
+
+Log the Cause::
+  
+   try {
+      do_some_stuff();
+   } catch (SomeSpecificException e) {
+      Logging.unexpectedException(LOG, e);
+      return null; // hope the calling code can figure it out
+   }
+
+Be sure to use the warning level (we are still making an assumption) - and client code should know about it). And do not worry about filling up the test case results with garbage; testing code that expected to produce warnings happens all the time (the test case code can change the logging level to "Info" and then set it back).
+
+
+Document generated by Confluence on Feb 04, 2011 21:47
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Source Code/Exception handling.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Source Code/Exception handling.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Source Code/Exception handling.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,125 @@
+Exception handling
+--------------------
+
+Exception handling in a GIS system is a little different than in other systems because data is usually much more valuable than the software itself. So:
+
+* On one side, the software should try hard to cope with minor problems in the data and do a best effort operation, instead of throwing an exception right away.
+* On the other side, best effort handling may hide data problems that the user should be aware of. For some peoples using GIS for decision purpose, a wrong answer is much worst than no answer at all. Some users will want an exception right away rather than risking a wrong decision based on uncorrectly processed data.
+
+Striking a balance is not easy, but nevertheless, the following guidelines do apply.
+
+Let the User Recover from Exceptions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If the API allows for exceptions, and the user is supposedly able to recover from them and keep on doing work, do throw the exception.::
+  
+   try {
+     // some code that may throw an exception
+   } finally {
+       // cleanup whatever resource was used and let exceptions go
+   }
+
+Don't Break the Chain
+^^^^^^^^^^^^^^^^^^^^^
+
+If a different exception class is needed, either chain the old one or at least log it, but don't let the old exception fade away in thin air::
+  
+   try {
+     // some code that may throw an exception
+   } catch(IllegalAttributeException e) {
+     throw new DatastoreException("Error occurred while building feature type", e);
+   } finally {
+     // cleanup whatever resource was used and let exceptions go
+   }
+
+An alternative (but the chained exception above is preferred)::
+  
+   try {
+     // some code that may throw an exception
+   } catch(IllegalAttributeException e) {
+     LOGGER.log(Level.FINE, "Attribute building error occurred", e);
+     throw new DatastoreException("Error occurred while building feature type");
+   } finally {
+     // cleanup whatever resource was used and let exceptions go
+   }
+
+Converting to Runtime Exception (only in no checked exception is appropriate - in such case, consider adding one before to fallback on RuntimeException)::
+  
+   try {
+     // some code that may throw an exception
+   } catch(IllegalAttributeException e) {
+     throw (RuntimeException) new RuntimeException("Error occurred while building feature type").initCause( e);
+   } finally {
+     // cleanup whatever resource was used and let exceptions go
+   }
+
+Provide warning when Making Assumptions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If a legitimate return value can be returned when an exception occurs (bbox computations for example), do return the legitimate value, but log the exception as a warning (don't let it disappear).
+
+The unexpectedException convenience method in org.geotools.util.Logging helps log these situtations::
+  
+   try {
+     // some code that may throw an exception
+   } catch(DataSourceException e) {
+     LOGGER.log(Level.WARNING, "Could not determine bounding box - assuming valid CRS area", e);
+     return new ReferencedEnvelope(-180,180,-90,90); // empty bounds
+   } finally {
+     // cleanup whatever resource was used and let exceptions go
+   }
+
+Otherwise
+^^^^^^^^^
+
+Otherwise, please try to keep on going.
+
+It is important (for example, during rendering) to avoid blocking because of a handful of bad Feature objects.
+
+Provide some way to log the exceptions and report them to the user for later inspection. It is recommended to process all unexpected exceptions into a unexpectedException method that can be overridden giving developers a chance to stop the process if the error is critical to their application.
+
+Here is an example::
+  
+   // Paint the map.
+   public void paint() {
+     Iterator it = featureCollection.iterator();
+     String fid;
+     try {
+       while (it.hasNext()) {
+         try {
+           Feature feature = (Feature) it.next();
+           fid = feature.getId();
+           // some code that may throw an exception  
+         } catch (IllegalAttributeException e) {
+           // Feature was invalid - continue to the next one..
+           unexpectedException("Skipping invliad Feature", e);
+         } catch (NullPointerException e2) {
+           unexpectedException("Problem working with Feature", e);
+         }
+       }
+     }
+     catch (IOException io) {
+       if (LOGGER.isLoggable(Level.FINER)) {
+         // example of "guarding" an expensive logging statement
+         unexpectedException("Feature ("+fid+") failed:"+ io.getMessage(), e);
+    }
+    throw (IOException) new IOException("Problem processing "+featureCollection);
+     }
+     finally {
+       featureCollection.close(it);
+     }
+   }
+  
+   /**
+    * Invoked when an unexpected exception occurred. The default    implementation
+    * log the exception at the warning level. Subclasses can override this
+    * method if they need to handle the exception in an other way (for example
+    * throwing an other exception, if failure to render a feature is critical).
+    */
+   protected void unexpectedException(String message, Throwable e) {
+     LOGGER.log(Level.FINE, message, e);
+   }
+
+So, to sum up, never, ever throw away exceptions, either throw or log them. Failing to do so makes debugging really hard, especially when all you have is a log file from one of your users!
+
+As for logging, in the case where the exception is not thrown, think hard about the level you'll use to log exceptions, and follow the logging guidelines to avoid wasting CPU cycles in it. Sometimes it's a nice compromise to just log the exception message at WARNING or FINE level, and log the stack trace at a FINEST level.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Source Code/Logging.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Source Code/Logging.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Source Code/Logging.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,159 @@
+Logging
+-------
+
+We use the logging package bundled into J2SE 1.4 and above (java.util.logging). An overview is available on line in the Sun's SDK documentation. An other valuable source of inspiration is Logging in NetBeans.
+
+GeoTools typically (but not always) uses one logger per package and is named after the package name. Private classes or implementations sometime use the name of their public counterpart.
+
+Getting a Logger
+^^^^^^^^^^^^^^^^
+
+The Java way to get a logger is to invoke Logger.getLogger(String). However in the GeoTools library, this call is replaced by a call to Logging.setLogger(String) where Logging is a class in the org.geotools.util.logging package.
+
+Example::
+  
+   import org.geotools.util.logging.Logging;
+  
+   class MyClass {
+      void method() {
+        Logger logger = Logging.getLogger("org.geotools.mypackage");
+        logger.config("There is some configuration information.");
+     }
+   }
+
+Logger Declaration
+^^^^^^^^^^^^^^^^^^
+
+The logger may be declared in the class's static fields or returned by a class's static method. This is not mandatory but suggested if it is going to be used in many places.
+
+Example::
+  
+   import java.util.logging.Logger;
+   import org.geotools.util.logging.Logging:
+  
+   public class GMLDataStore {
+       /** The logger for the GML Data Store */
+       private static final Logger LOGGER = Logging.getLogger("org.geotools.data.gml.GMLDataStore");
+   }
+
+Logging Messages
+^^^^^^^^^^^^^^^^
+
+Message can be conveniently logged using one of 7 predefined levels. The levels in descending order are:
+========== ================================ ====================================================
+Level      Displayed on standard output     Comments
+========== ================================ ====================================================
+Severe     yes by default                   highest value
+Warning    yes by default                   non-fatal warning to bring to user attention
+Info       yes by default                   message for end users (not debugging information)
+Config     no unless configured             configuration information (services available, etc.)
+Fine       no unless configured             information for developers (high level)
+Finer      no unless configured             common when entering, returning, or an exception
+Finest     no unless configured             most verbose output
+========== ================================ ====================================================
+
+A convenience method exists in Logger for each of those levels::
+  
+   LOGGER.info("There is a message of interest for ordinary user");
+  
+
+Do not use the logging info level as a replacement of System.out.println for displaying debug information to the console.
+  
+The info level is for end users. Use the fine, finer or finest levels for debug information, and setup yours $JAVA_HOME/jre/lib/logging.properties file accordingly (see Logging Configuration below).
+
+Entering/Existing Logger
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+There is three more convenience methods: entering, exiting and throwing when entering and exiting a method, or when we are about to terminate a method with an exception.::
+  
+   public Object myMethod(String myArgument) {
+       LOGGER.entering("MyClass", "MyMethod", myArgument);
+       // ... do some process here
+       LOGGER.exiting("MyClass", "MyMethod", myReturnValue);
+       return myReturnValue;
+   }
+
+Minimising Logger output
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When logging a message, the logger will include detailed information such as date and time, source class and method name, current thread, etc.
+
+In order to minimise  the amount of information logged, it may be useful to merge consecutive logging into a single log statement.
+
+This is especially appropriate if the many logs are actually different parts of a multi-lines message. Using distinct logger calls can result in an output interleaved with the logging from an other thread. Merging the logging is not appropriate if the log messages are conceptually unrelated.
+
+Wasteful use of logging::
+  
+   LOGGER.finer("Value for A is "+A);
+   LOGGER.finer("Value for B is "+B);
+   LOGGER.finer("Value for C is "+C);
+
+Good use of logging::
+   LOGGER.finer("Computed values: A="+A+"; B="+B+"; C="+C);
+
+Selective Logging
+^^^^^^^^^^^^^^^^^^
+
+If the log message is expensive to construct, then consider enclosing it in a if statement.::
+  
+   if (LOGGER.isLoggable(Level.FINER)) {
+      LOGGER.finer("Current state = "+someVeryExpensiveMethodCall());
+   }
+
+Logging Configuration
+^^^^^^^^^^^^^^^^^^^^^^
+
+To change the default logging setting, edit the following file:
+
+* $JAVA_HOME/jre/lib/logging.properties
+
+To define a default configuration level provide a the **.level** property to the minimal level of interest for you::
+  
+   .level= FINER
+
+You can specify a different level to be shown to the console (than is saved out to xml). To define the java.util.logging.ConsoleHandler.level property to the minimal level you want to see on the console::
+  
+   # Limit the message that are printed on the console to FINE and above.
+   java.util.logging.ConsoleHandler.level = FINE
+   java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+   java.util.logging.ConsoleHandler.encoding = Cp850
+
+Note the **encoding** property. For Windows user, it should be set to the value displayed by chcp on the command line. Linux and Unix users may ignore this line since Unix systems do a more intelligent work with page codes.
+
+To list detailed messages for a specific module you can define a different logging level may be specified for each module.::
+  
+   org.geotools.gml.level = FINE
+   org.geotools.referencing.level = INFO
+
+Provides fairly detailed logging message from the GML module, but not from the referencing module.
+
+Log4J interoperability
+^^^^^^^^^^^^^^^^^^^^^^
+
+Geotools can produces a console output similar to the Log4J one (single-line instead of multi-line log message) if the following code is invoked once at application starting time::
+  
+   Logging.ALL.forceMonolineConsoleOutput();
+  
+
+Alternatively, this formatter can also be configured in the logging.properties without the need for the above-cited method call. See the **MonolineFormatter** javadoc for details.
+
+The logging output can also be redirected to the real Log4J framework (or any other framework supported by Apache's Common Logging) if the following code is invoked once at application starting time:
+
+Logging.ALL.setLoggerFactory("org.geotools.util.logging.Log4JLoggerFactory");
+
+Why not common-logging?
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The common-logging API is basically a set of println functions with name (info, trace, debug, etc.). Java logging API provides the same convenience methods, but is also richer. We use some of its extra capabilities in GeoTools code base:
+
+* ResourceBundle support for localization.
+* Logging of stack traces.
+* Information on source class and method names.
+* Information about which thread produced the logging.
+* Can be used through Java Monitoring and Management system.
+
+Log4J offers similar functionalities with a wider range of handler implementations. On the other hand, Java logging is more closely tied to the JVM, which avoid some ClassLoader problems that prevent usage of Log4J in some environments.
+
+We are not claiming that Java logging in superior to Log4J, neither we are forcing peoples to use Java logging. We push for usage of Java logging API, which may very well redirect to Log4J under the hood through java.util.logging.Log4JLoggerFactory implementations.
+
+Commons-logging is widely used in server containers, but other communities like scientists face a different picture. For example the NetCDF library developped by University Corporation for Atmospheric Research (UCAR) uses SLF4J, yet other logging framework that aims to be a replacement for commons-logging.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Source Code/Source Code.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Source Code/Source Code.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Source Code/Source Code.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,13 @@
+Source Code
+===========
+
+.. toctree::
+   :maxdepth: 1
+  
+   Coding Style
+   Do not return null
+   Logging
+   Exception handling
+   Avoid assumptions
+   Converting URLs to Files
+   Use of Assertions, IllegalArgumentException and NPE
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Source Code/Use of Assertions, IllegalArgumentException and NPE.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Source Code/Use of Assertions, IllegalArgumentException and NPE.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Source Code/Use of Assertions, IllegalArgumentException and NPE.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,63 @@
+Use of Assertions, IllegalArgumentException and NPE
+----------------------------------------------------
+
+The Java language has for a couple of years now made an assert keyword available; this keyword can be used to perform debug only checks. While there are several uses of this facility, a common one is to check method parameters on private (not public) methods. Other uses are post-conditions and invariants.
+
+Reference:
+
+* http://download.oracle.com/javase/6/docs/technotes/guides/language/assert.html
+
+Pre-conditions (like argument checks in private methods) are typically easy targets for assertions. Post-conditions and invariants are sometime less straightforward but more valuable, since non-trivial conditions have more risks to be broken.
+
+* Example 1: After a map projection in the referencing module, an assertion performs the inverse map projection and checks the result with the original point (post-condition).
+
+* Example 2: In DirectPosition.equals(Object) implementations, if the result is true, then the assertion ensures that hashCode() are identical as required by the Object contract.
+
+Use Assert to check Parameters on Private methods
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Here is an example::
+  
+   private double scale( int scaleDenominator ){
+       assert scaleDenominator > 0;
+       return 1 / (double) scaleDenominator;
+   }
+
+You can enable assertions with the following command line parameter::
+
+   java -ea MyApp
+
+You can turn only GeoTools assertions with the following command line parameter:
+
+   java -ea:org.geotools MyApp
+
+You can disable assertions for a specific package as shown here:
+
+   java -ea:org.geotools -da:org.geotools.referencing MyApp
+
+Use IllegalArgumentExceptions to check Parameters on Public Methods
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The use of asserts on public methods is strictly discouraged; because the mistake being reported has been made in client code - be honest and tell them up front with an IllegalArgumentException when they have screwed up.::
+  
+   public double toScale( int scaleDenominator ){
+       if( scaleDenominator > 0 ){
+           throw new IllegalArgumentException( "scaleDenominator must be greater than 0");
+       }
+       return 1 / (double) scaleDenominator;
+   }
+
+Use NullPointerException where needed
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If possible perform your own null checks; throwing a IllegalArgumentException or NullPointerException with detailed information about what has gone wrong.::
+  
+   public double toScale( Integer scaleDenominator ){
+       if( scaleDenominator == null ){
+           throw new NullPointerException( "scaleDenominator must be provided");
+       }
+       if( scaleDenominator > 0 ){
+           throw new IllegalArgumentException( "scaleDenominator must be greater than 0");
+       }
+       return 1 / (double) scaleDenominator;
+   }

Added: trunk/docs/developer/guide/Project Conventions/Testing JUnit/Example Test Case.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Testing JUnit/Example Test Case.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Testing JUnit/Example Test Case.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,54 @@
+Example TestCase
+----------------
+
+Example JUnit 3 Test Case::
+  
+   package org.geotools.module;
+  
+   import org.geotools.map.BoundingBox;
+  
+   /**
+    * Unit test for BoundingBox.
+    */
+   public class HelloWorldTest extends TestCase {
+  
+       /** Test suite for this test case */
+       private TestSuite suite = null;
+      
+       /**
+        * Constructor with test name.
+        */
+       public HelloWorldTest(String testName) {
+           super(testName);
+       }
+  
+       /**
+        * Main for test runner.
+        */
+       public static void main(String[] args) {
+           junit.textui.TestRunner.run(suite());
+       }
+  
+       /**
+        * Required suite builder.
+        * @return A test suite for this unit test.
+        */
+       public static Test suite() {
+           TestSuite suite = new TestSuite(HelloWorldTest.class);
+           return suite;
+       }
+      
+       /**
+        * Initialize variables
+        */
+       protected void setUp() {
+           // initialize variables
+       }
+      
+       /** Test normal constuctors. */
+       public void testHello(){
+           assertTrue("HelloWorld should return null is true",HelloWorld.isNull());
+       }
+   }
+
+Testing with JUnit is as easy as copying HelloWorldTest.java and adding more tests, and then executing it. If you want more information, look at the JUnit documentation or read one of the many JUnit tutorials.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Testing JUnit/Online Tests.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Testing JUnit/Online Tests.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Testing JUnit/Online Tests.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,114 @@
+Online Tests
+------------
+
+We make use of a naming convention, ie ensure the name of your TestCase ends in OnlineTest, to indicate the use of external web services and databases. If a unit test requires a network connection to pass, it is an online test.
+
+These tests will be skipped as part of the normal build process, but will be executed by certain build boxes.
+
+JUnit 3 OnlineTestCase
+^^^^^^^^^^^^^^^^^^^^^^^
+
+JUnit 3 online tests should extend the OnlineTestCase class, since it will extract connection parameters from fixture properties files in the user's **~/.geotools** directory with minimal hassle.
+
+Test cases extending this class will need to implement the getFixtureId() method which will return the identifier for a fixture. A fixture id of "postgis.typical" will attempt to read the file "~/.geotools/postgis/typical.properties".
+
+Fixture property files allow site-specific connection information such as database authentication credentials to be provided outside the public GeoTools code base.
+
+For example, a developer might provide access to a test database in their own PostGIS instance, but not want to share this online resource with the public. Fixture property files make it easy for other developers to configure online tests to use their own private resources.
+
+JUnit 4 OnlineTestSupport
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+JUnit 4 online tests should extend OnlineTestSupport, which provides the same functionality as OnlineTestCase.
+
+Behaviour of Online Test Cases
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The default behaviour of OnlineTestCase is that, if connect() throws an exception, the test suite is disabled, causing each test to pass without being run. In addition, exceptions thrown by disconnect() are ignored. This behaviour allows tests to be robust against transient outages of online resources, but also means that local software failures in connect() or disconnect() will be silent. To have exceptions thrown by connect() and disconnect() cause tests to fail, set skip.on.failure=false in the fixture property file. This restores the traditional behaviour of unit tests, that is, that exceptions cause unit tests to fail.
+
+Each module should try to provide default fixture files pointing to publicly accessible servers. Users running online tests will copy these defaults and customize them accordingly. If a fixture file is missing, its tests will not be run; therefore, if one deletes the ~/.geotools/oracle directory, for example, all oracle online tests will be disabled.
+
+For more details see: Online Test Fixtures, which defines the identity of each fixture and what its expected qualities and contents are.
+
+Example OnlineTestCase Use
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Example use (using PostgisOnlineTestCase)::
+  
+   public abstract class PostgisOnlineTestCase extends OnlineTestCase {
+       protected DataStore dataStore;
+      
+       protected abstract String getFixtureId();
+      
+       protected void connect() throws Exception {
+           Map params = getParams();
+           dataStore = new PostgisDataStoreFactory().createDataStore(params);
+       }
+      
+       public Map getParams() {
+           Map params = new HashMap();
+          
+           params.put(PostgisDataStoreFactory.DBTYPE.key, "postgis");
+           params.put(PostgisDataStoreFactory.HOST.key, fixture.getProperty("host"));
+           params.put(PostgisDataStoreFactory.PORT.key, fixture.getProperty("port"));
+           params.put(PostgisDataStoreFactory.SCHEMA.key, fixture.getProperty("schema"));
+           params.put(PostgisDataStoreFactory.DATABASE.key, fixture.getProperty("database"));
+           params.put(PostgisDataStoreFactory.USER.key, fixture.getProperty("user"));
+           params.put(PostgisDataStoreFactory.PASSWD.key, fixture.getProperty("password"));
+          
+           if (fixture.containsKey("wkbEnabled")) {
+               params.put(PostgisDataStoreFactory.WKBENABLED.key, fixture.getProperty("wkbEnabled"));
+           }
+           if (fixture.containsKey("looseBbox")) {
+               params.put(PostgisDataStoreFactory.LOOSEBBOX.key, fixture.getProperty("looseBbox"));
+           }
+           return params;
+       }
+       protected void disconnect() throws Exception {
+           dataStore = null;
+       }
+   }
+
+Example LocalPostgisOnlineTest
+
+And here is a sample use::
+  
+   class LocalPostgisOnlineTest extends PostgisOnlineTestCase  {
+       protected abstract String getFixtureId(){
+           return "local";
+       }
+   }
+
+As a rule of thumb, online tests should not fail if a server is unavailable.
+Example Fixture
+
+Example fixture ~/.geotools/postgis/local.properties::
+  
+   host=localhost
+   port=15234
+   schema=bc
+   user=postgres
+   passwd=postgres
+   database=bc
+   wkbEnabled=true
+
+
+In windows you cannot create a ".geotools" folder!
+
+1. Open up a CMD window
+2. cd to your home directory and use mkdir
+    
+    C:\Documents and Settings\Fred>mkdir .geotools
+
+3. And set up any fixtures you need:
+    
+    C:\Documents and Settings\Fred>cd .geotools
+    C:\Documents and Settings\Fred\.geotools>mkdir postgis
+    C:\Documents and Settings\Fred\.geotools>cd postgis
+    C:\Documents and Settings\Fred\.geotools\postgis>notepad typical.properties
+
+4. And use the as a guide: http://svn.geotools.org/geotools/trunk/gt/build/fixtures/
+  
+   Examples:
+  
+   * PostgisOnlineTestCase - Abstract Testcase class which connects to a specified database and creates a datastore
+   * PostgisPermissionOnlineTest - Simple online test which makes use of PostgisOnlineTestCase

Added: trunk/docs/developer/guide/Project Conventions/Testing JUnit/Test Data.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Testing JUnit/Test Data.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Testing JUnit/Test Data.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,103 @@
+Test Data
+---------
+
+If your tests require test data, there are a couple of things to keep in mind.
+
+There are two guidelines for handling of data required for testing:
+
+* Java: test data (xml files, png files, whatever) should be stored in a test-data directory next to your test case (the use of test-data makes it obvious that the directory is not a package, similar to the use of doc-files for javadoc).
+* Maven: The maven build system recommends that all test resources be placed into src/test/resources.
+
+Combining these two guidelines we end up with the following::
+  
+   src/main/java/org/geotools/example/Fred (the class under test)
+   src/test/java/org/geotools/example/FredTest
+   src/test/resources/org/geotools/example/test-data/fred.xml
+
+TestData Utility Class
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The TestData class provides several convenience methods to aid in this process.::
+  
+   import junit.framework.TestCase;
+   import org.geotools.test.TestData;
+   // ... snip other imports ...
+  
+   public class MyTest extends TestCase {
+       public void testImage() throws IOException {
+           InputStream in = TestData.openStream( this, "my_data.properties" );
+           Properties properties = new Properties( in );
+           in.close();
+           assertTrue( properties.contains("something") );
+       }
+   }
+
+TestData provides the following methods:
+
+* file( this, "filename" ): File
+* url( this, "filename" ): URL
+* openStream( this, "filename" ): InputStream
+* openReader( this, "filename" ): BufferedReader
+* openChannel( this, "filename" ): ReadableByteChannel
+* temp( this, "filename" ): File (uses default suffix of ".tmp")
+
+You can also use the the standard java construct for temporary files::
+  
+   File victim = File.createTempFile( "graph", "tmp" );
+   victim.deleteOnExit();
+
+The main extra that **TestData.temp( this, "filename" )** offers is a predictable location for your temp file, rather than the System specific location. It also make a harder attempt to delete the file on program termination.
+
+Note: temporary files are kind of magic and have a random number inserted between the prefix and suffix (in order to keep them unique).
+
+Open streams must be closed
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+When using any openFoo method, don't forget to close the resource after usage! Do not rely on object finalisation for that. Temporary files are not deleted on program termination if some streams to that files still open.
+
+Sharing test files across many modules
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Some test files are used by many modules. A typical example is the statepop shape file. Shared files must be in the test-data directory of the sample-data module.
+
+They can been read as in the following example::
+  
+   import junit.framework.TestCase;
+   import org.geotools.TestData;
+   // ... snip other imports ...
+  
+   public class MyTest extends TestCase {
+       public void testShapefile() throws IOException {
+           ReadableByteChannel channel = TestData.openChannel("shapes/statepop.shp");
+           ShapefileReader     reader  = new ShapefileReader(channel, new Lock());
+          
+           // ... Peforms tests here ...
+          
+           channel.close();
+       }
+   }
+
+Note the differences compared to the first example above in this page:
+
+* Import the TestData class from org.geotools rather than org.geotools.resources. This is needed in order to get access to the org/geotools/test-data directory provided in the sample-data module.
+
+* Invoke TestData.openFoo(filename) method without this argument value. This is because we want TestData to searchs resources into the shared org/geotools/test-data directory instead of some other test-data owned by the module performing the tests.
+
+* Because the statepop.shp files is bundled into the sample-data JAR file, it is available as an URL only. Consequently, some operations usually available for files (like random access) may not be available for shared resources.
+
+But I need a Filename
+^^^^^^^^^^^^^^^^^^^^^
+
+Even if the code you are testing wants a filename you can still use the above constructs. The call to TestData.copy(this, ...) copies the named file from the shared resources to the caller test-data directory, which enable access as a file.
+
+Example of staging a file for testing::
+  
+   TestData.copy( this, "my.shp" );
+   File file = TestData.file( this, "my.shp" );
+   System.out.println( file.getAbsolutePath() );
+   // Something like: C:\....\test-data\my.shp"
+
+Temporary filename::
+  
+   File temp = TestData.temp( this, "my.shp" );
+   System.out.println( temp.getAbsolutePath() );
+   // Something like: C:\....\test-data\my12345.shp"
+

Added: trunk/docs/developer/guide/Project Conventions/Testing JUnit/Testing JUnit.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Testing JUnit/Testing JUnit.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Testing JUnit/Testing JUnit.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,69 @@
+Testing JUnit
+=============
+
+As you code, you should write a unit test for each class to test the functionality and robustness of the class. This is made much easier by using JUnit.
+JUnit is very good at:
+
+* capturing a Jira bug report in a reproducible manner
+* allowing you to specify exactly the behaviour your want - before you start coding
+* unit testing
+
+The general idea:
+
+* If you are testing src/org/geotools/module/HelloWorld.java
+* create a file test/org/geotools/module/HelloWorldTest.java
+* any public void methods starting with test will be run by JUnit
+* maven will run all tests for your module using: mvn test
+* tests can be ignored using you pom.xml file
+* maven will not "release" your module into the repository while it still fails unit testing
+
+Code Coverage vs Regression Testing
+------------------------------------
+
+Code Coverage reports are available via::
+  
+   mvn site
+
+The percentage reported is based on the lines of code your test cases manage to test, please limit this to "real" tests - although we demand 60% test coverage for supported modules we would much rather this is produced honestly.
+
+Creating boiler plate tests that just call assertEquals against every method, and cutting and pasting the current result is an example of a regression test. While this will catch changes in our codebase it is not nearly as useful as actually testing for what you expect.
+
+Use of Maven Test Profiles
+--------------------------
+
+You can also make use of maven profiles to isolate long running tests from the day to day grind of other GeoTools developers.
+
+* Install with all normal tests:
+  
+  mvn install
+
+*  Install with online tests (will connect to servers around the world):
+  
+   mvn -P online install
+
+*  Install with stress tests (long running tests that try to break the code using many threads):
+  
+   mvn -P stress install
+
+You can combine profiles as needed::
+  
+   mvn -P online,stress install
+
+Build Time Targets
+------------------
+To keep build times down (so tests are run at all) we ask you to stay in the following time limits.
+
+* 20 seconds for a module
+* 5 seconds for a plugin
+* 5 seconds for an ext
+
+Tests on unsupported modules are not subject to a time limit, to run your tests in an unsupported module you will need to make use of the provided profile::
+  
+   mvn -P unsupported install
+
+.. toctree::
+   :maxdepth: 1
+  
+   Example Test Case
+   Online Tests
+   Test Data
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Conventions/Versioning.txt
===================================================================
--- trunk/docs/developer/guide/Project Conventions/Versioning.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Conventions/Versioning.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,61 @@
+Versioning
+===========
+
+Each GeoTools module contains it's own version number. Version numbers are based on 3 digits::
+  
+   <major>.<minor>.<patch>
+
+* Major (first digit), is incremented to indicate that a module has lost full compatibility to earlier versions. So you can safely upgrade to later versions of a module so long as the major version has not changed.
+
+* Minor (second digit) is incremented whenever new features are added.
+  Modules are forward compatible across minor versions, but usually not backward compatible.
+
+* Patch (last digit) is for bug fixes. It is used to indicate fixes in bugs only. No new features were made and full compatibility is preserved.
+
+In practice
+^^^^^^^^^^^
+
+The above is theory. In practice, we released some patch versions that contained new features. We also released minor versions that were not forward compatible with older releases (usually through the removal of deprecated methods). This policy on numbering may be revisited later in order to better match the current practice.
+
+Version Number and Maven
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Maven is intimently aware of version numbers (in fact they have been seeing each other for some time).
+
+Maven tracks the following information:
+
+* `gt/pom.xml` - id is used to name the project (gt2eclipse will use this)
+* `gt/pom.xml` - groupId is used to name the maven repository folder
+* `module/*/pom.xml` - name is used for the display name (website and output)
+* `module/*/pom.xml` - id is used to generate the name of the jar (and track dependency)
+* `module/*/pom.xml` - groupId is used to name the target maven repository folder dependency
+
+The module version number is set in the <version> element in::
+  
+   <module>/pom.xml
+
+Maven uses this value during the build process to figure out what to call generated jars.
+
+* Name: GeoTools
+* ID: gt-geotools
+* groupId: org.geotools
+* CurrentVersion = 2.4-SNAPSHOT
+
+* Name: Main Module
+* ID: gt-main
+* GroupId: org.geotools
+* CurrentVersion: 2.4-SNAPSHOT
+
+Tagging Releases
+^^^^^^^^^^^^^^^^^
+
+The release process has changed a bit since moving to subversion for details please see **How to cut a release** under project procedures.
+
+@since javadoc tag
+^^^^^^^^^^^^^^^^^^^
+
+Every public and protected class, interface, method or field should have a @since javadoc tag. If the Geotools 2.2 release is under development, then every new API should be identified with a @since 2.2 tag. For the end user, it means that:
+
+* All classes and methods with a @since 2.0 or @since 2.1 javadoc tag are safe. Because they were there is previous releases, they will not change except for bug fixes (a few of them may be deprecated however).
+
+* Any classes and methods with a @since 2.2 javadoc tag may be modified, moved or deleted without warning until the 2.2 final release.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Building the Website.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Building the Website.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Building the Website.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,49 @@
+Building the Website
+==========================
+
+This page describes how the geotools.org and docs.geotools.org sites are built and how to modify and maintain them.
+
+Server Setup
+^^^^^^^^^^^^^
+
+The sites are generously hosted by osgeo and live on the server projects.osgeo.osuosl.org.
+
+All the site files are located at /osgeo/geotools/htdocs. This directory contains two main sub directories:
+
+* web - Root of the main geotools.org site
+
+* docs - Root of docs.geotools.org site
+
+Under the docs folder are two folders:
+
+* stable - Root of docs for current stable branch
+
+* latest - Root of docs for trunk
+
+Under each of the stable|latest folders are the folder:
+
+* userguide - Root of user guide for that branch
+* javadocs - Root of the javadocs for that branch
+
+The apache configuration files are located in the /etc/apache2/sites-available directory.
+
+The script /home/geotools/update_site.sh is used to update the published site once doc artifacts are uploaded to the server. See below section.
+
+Server Access
+^^^^^^^^^^^^^^^
+
+The site is built and owned by a user named "geotools". In order to login to the server as the geotools user you must obtain the appropriate private key. Contact the PSC to obtain the private key and copy it into your .ssh directory.
+
+Once the private key has been obtained one can log into the server with the following command::
+  
+   ssh -i ~/.ssh/id_rsa_geotools [hidden email]
+
+Site and Doc Generation
+^^^^^^^^^^^^^^^^^^^^^^^^
+The site and docs are generated by the two hudson jobs:
+
+* http://hudson.opengeo.org/hudson/view/geotools/job/geotools-2.6.x-docs
+
+* http://hudson.opengeo.org/hudson/view/geotools/job/geotools-trunk-docs
+
+Upon successful builds the docs and sites are uploaded directly to the server. Once uploaded the update_site.sh is used to unpack the artifacts into the web root and publish the site.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Continuous Integration.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Continuous Integration.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Continuous Integration.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,10 @@
+Continuous Integration
+==========================
+
+THe GeoTools code base is monitored by build server which will schedule a compile shortly after each commit is made.
+
+The results of a failed build are emailed to the geotools developer list. And again when the build is fixed.
+
+* http://hudson.opengeo.org/hudson/view/geotools/
+
+If you require access to the above sever (in order to kick off a job manually) please contact a PMC member for appropriate credentials.
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Creating your own Module.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Creating your own Module.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Creating your own Module.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,224 @@
+Creating your own Module
+==========================
+
+So you want to do something wild, exciting, and cough dangerous? Chances are people have encouraged you in your GeoTools endeavour (we all love volunteers!). The following document outlines some guidelines to help make all of our lives easier (including yours).
+
+The first section deals with communication and the rest show where new code can be incorporated into GeoTools.
+
+Give warning - Get Permission
+------------------------------
+Lets follow a couple of steps - just to start out with. The goal here is to let everyone know what is happening, and see if other are willing/able to help.
+
+Step One: Email the List
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Someone on the list may already have plans, or they might help, they may even do step number two for you...
+
+  To: [hidden email]
+  CC: [hidden email]
+  Subject: Proposed Fish module
+  
+  Hi Jody, I noticed that the geotools library lacks support for the small fish POJO objects you keep mentioning in your examples.
+  
+  I would like to add this feature, by making use of Hibernate DataStore with a H2 backend. It will serve as an example use for new users and will be funny.
+  
+  Sincerely,
+  ARandomDeveloper
+
+Most likely Jody will respond with the request that you make a Wiki page, (Jody is good that way).
+
+Step Two: Set up a Wiki page
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We use the wiki for collaboration, and sometimes even documentation. Make sure you have access to the wiki (if you have not already), and set up a page describing your idea.
+
+1. Login to Confluence
+2. Navigate to the RnD page
+3. Select "Add Content" > and then "Add Page"
+
+You can add as much, or as little, details as you require to communicate. Feel free to attach any design documents you have to the page, introduce yourself and so on. It is always good to highlight any deadlines you have associated with the work.
+
+Step Three: Ask via Email
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We are not too formal, we just want to keep the lines of communication open.::
+
+  To: [hidden email]
+  CC: [hidden email]
+  Subject: SVN Access request for Fish module
+  
+  Well as requested I have read the developers guide (some of it looks out of date?),
+  and created a wiki page for my proposed module:
+  
+     http://docs.codehaus.org/display/GEOTOOLS/Fish
+  
+  I think all I need is svn access and I can get going.
+  
+  Sincerely,
+  ARandomDeveloper
+
+Even if if you do already have svn access is nice to email and let people review that wiki page. You never know, people may offer to help
+
+Hopefully the email discussion will settle down, (perhaps with skill testing question about the developers guide), leaving you armed with an svn password.
+
+Step Four: Read the Developers Guide
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This gives you something to do while waiting for feedback or authorisation from a GeoTools PMC member, and makes you up to speed with the conventions you need to know to effectively work with others.
+
+Step Five: Create a little slice of SVN
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The modules/unsupported/ directory is there to welcome your experimental work; that is what the directory is for - a little RnD.
+
+1. Create a skeleton
+  
+   The first step is to create a skeleton module for you work. The easiest way to do this is to copy, within svn, an existing module and alter that.
+
+2. svn copy
+  
+   Choose a module that is close to what you want, copy it to capture the 5.3 Module Directory Structure, and gut the src/main/java, src/test/java and pom.xml files. Make sure to not copy the hidden .svn directories.
+  
+3. We have an "example" module all ready for you to copy:
+  
+    svn cp http://svn.geotools.org/geotools/trunk/gt/modules/unsupported/example
+       http://svn.geotools.org/geotools/trunk/gt/modules/unsupported/fish
+
+4. That should give you a working skeleton for your work.
+
+5. Edit the base files
+  
+   All modules have a standard set of files, which are detailed in the Module Directory page. We need to edit these to match the new module's name and purpose.
+  
+6. pom.xml
+  
+   We start by getting the pom.xml configured since maven will need that to work against the module. The following will start you out:
+  
+   Change all occurances of the word example to the name of your module::
+    
+     <groupId>org.geotools</groupId>
+     <artifactId>example</artifactId>
+       <packaging>jar</packaging>
+       <name>Example</name>
+       <description>
+         Supply a quick description here.
+       </description>
+      
+   Supply information about yourself::
+    
+     <developer>
+      <id>YOURID</id>
+      <name>YOUR NAME</name>
+        <email>[hidden email]</email>
+        <organization>University, Organisation or Company</organization>
+        <organizationUrl>http://organization.url</organizationUrl>
+        <timezone>YOUR_OFFSET_IN_HOURS</timezone>
+        <roles>
+          <role>Java Developer</role>
+        </roles>
+      </developer>
+
+   Note: YOURID should be your SVN login name.
+
+7. src/site/apt/review.apt
+  
+   This file describes the origin of the contents of your module and needs to be used to track any issues of copyright and licensing related to the module. We need to know about any code which was not written directly by those with svn access. For example, if the module depends on an external library, we need to know how it is that we are able to re-distribute that library under the LGPL. All modules should have such a file so, if you started by copying a module such as the example module, you should have an example of the file, the contents which are required and the formatting needed for those files.
+
+8. Edit some code
+  
+   Finally, your time to shine. Add your code to the src/main/java/ and src/test/java/ directories. If you need to add resources, these can live in the src/main/resources/ and src/test/resources/ directories.
+
+9. Ask for forgiveness
+  
+   Before committing your new module, you should make everyone aware you are about to do so by sending another email to let everyone know you are getting under way. Sometimes what you are asking so so strange that nobody will reply, and as a guideline I wait about three days before going ahead.
+  
+10. Do send a final email out to the list and maybe ask the exhaulted leader to speak up.
+      
+      TO: [hidden email]
+      CC: [hidden email]
+      CC: [hidden email]
+      Subject: Starting work on Fish
+      
+      Hi Developers and/or PMC,
+      
+      The PMC is really busy, or exhausted from that last geotools breakout IRC has not gotten back to me.
+      
+      I have started the "unsupported/fish" module where I will prototype a hibernate datastore fish example. When complete I would like to get feedback from the list, it may be a candidate for inclusion in demo.
+      
+      Thanks,
+      ARandomDeveloper
+
+11. Commit to svn
+    
+    Once you have a working base, commit to the shared svn and we are off and running...
+
+12. But what about ... Questions
+    
+    The Developers Guide should cover, or provide links to, information on:
+    
+    1. updating your pom.xml
+    2. creating a test profile
+    3. using svn ignore on your "target" directory
+    
+    In addition to answering most of the questions a new developer might have---its what we use to answer our own questions.
+    
+    Beyond that, there are the mailing lists for users and for developers.
+
+Step Six: Include Yourself in the Build
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Once your module is stable and you are keeping it compiling as you work, you can include it in the shared build. This means everyone will have to compile your module whenever they compile the rest of GeoTools.
+
+When you first do this commit, you should take special care. Ideally you will work with someone else who can confirm that the build works with their setup and you would try a test compile with a blank maven repository to ensure that others can access all the dependencies on which your module depends.
+
+1. Edit the pom.xml
+  
+   Navigate to the unsupported/pom.xml file and update the list::
+    
+     <modules>
+       <module>jpox</module>
+       ...
+       <module>fish</module>
+     </modules>
+
+2. Try a build
+  
+   First you should make sure that your module can build as part of the entire GeoTools build using maven clean install.
+  
+   Then you should try again, this time with a blank maven repository. First, backup or remove the maven repository which, by default, is hidden your home directory as ~/.m2/repository/. Then, run a full build once again using maven clean install. This build will need an internet connection and will take a while to download all the dependencies from the various servers. The build may even fail due to network issues; you may need to re-run the command, perhaps a few hours later, to work around temporary network or mirror issues.
+  
+   Ideally, you would then ask someone else, hopefully using a platform with a different architecture, to add the module to their build. If they succeed we can be fairly sure the module will build for everyone.
+
+3. Commit
+  
+Then you can commit your one line change. Welcome to the build!
+  
+   Try to do this on a day when you will be around for the next few hours and available to deal with any problems which might arise. Your commit will probably trigger the automatic build systems to run a build. If they fail, they will send messages out to the developer's mailing list and to the IRC channel. If you can resolve the issues right away, you can avoid being kicked out of the build by someone else whose build suddenly starts failing when compiling or testing your module.
+
+Step Seven: Bon Voyage
+^^^^^^^^^^^^^^^^^^^^^^^
+
+We all hope your work is a success and will eventually migrate from the land of radical development into the core GeoTools library. When you feel ready, you may decide to declare your module formally "supported" , at which point it could be moved into the modules/plugin/ or modules/extension/ directories. Eventually, the work could even become part of the core library.
+
+Pearls of wisdom
+^^^^^^^^^^^^^^^^^^^^^^^
+
+Before we leave you here are some pearls of wisdom for you on your road to success:
+
+* Do not break the Build
+  
+  We do have this nice rule about breaking the build: don't.
+  
+  Make sure you run a full maven install and test cycle before you commit: do a mvn clean install without using either the -DskipTests or the -Dmaven.test.skip=true flag. Yes, it takes longer; yes, it will save you some day.
+
+* Communicate early and often
+  
+  Try and send email to the developers list about your progress. Once a week during active development is cool, or drop by the weekly IRC meeting. Ask for help, offer advice---it will all help you benefit from the expertise of others.
+
+* Re-write your code
+  
+  Code only becomes polished and elegant when you have reworked it. You will improve as a coder as you work so re-writing old code will help you catch things the old-you used to write (yuck!) and replace them with things the new-you writes (aaaah).
+
+* Unit tests are your friends
+  
+  Developing a well structured test suite is almost as valuable as developing a good set of code. A well structured test suite can help you develop high quality, robust, correct code.

Added: trunk/docs/developer/guide/Project Procedures/GeoTools change proposal.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/GeoTools change proposal.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/GeoTools change proposal.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,2 @@
+GeoTools change proposal
+==========================
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Gold Star Quality Assurance Check.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Gold Star Quality Assurance Check.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Gold Star Quality Assurance Check.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,2 @@
+Gold Star Quality Assurance Check
+==================================
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Hacking.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Hacking.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Hacking.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,2 @@
+Hacking
+==========================
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/How to add a 3rd party jar.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/How to add a 3rd party jar.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/How to add a 3rd party jar.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,2 @@
+How to add a 3rd party jar
+==========================
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/How to cut a release.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/How to cut a release.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/How to cut a release.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,4 @@
+How to cut a release
+==========================
+
+  Announcement
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Making a major API shift.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Making a major API shift.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Making a major API shift.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,2 @@
+Making a major API shift
+==========================
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Project Procedures.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Project Procedures.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Project Procedures.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,18 @@
+******************
+Project Procedures
+******************
+
+.. toctree::
+   :maxdepth: 1
+  
+   Building the Website
+   Continuous Integration
+   Creating your own Module
+   GeoTools change proposal
+   Gold Star Quality Assurance Check
+   Hacking
+   How to add a 3rd party jar
+   How to cut a release
+   Making a major API shift
+   Supporting your module
+   Working on a stable branch
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Supporting your module.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Supporting your module.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Supporting your module.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,2 @@
+Supporting your module
+==========================
\ No newline at end of file

Added: trunk/docs/developer/guide/Project Procedures/Working on a stable branch.txt
===================================================================
--- trunk/docs/developer/guide/Project Procedures/Working on a stable branch.txt                        (rev 0)
+++ trunk/docs/developer/guide/Project Procedures/Working on a stable branch.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,3 @@
+Working on a stable branch
+==========================
+

Added: trunk/docs/developer/guide/Reference.txt
===================================================================
--- trunk/docs/developer/guide/Reference.txt                        (rev 0)
+++ trunk/docs/developer/guide/Reference.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,14 @@
+*********
+Reference
+*********
+
+
+* Version
+
+  * ArcSDE
+  * DB2
+  * JAI
+  * JDK
+  * JRE
+  * Maven
+  * Oracle

Added: trunk/docs/developer/guide/Roles and Responsibilities/Committers.txt
===================================================================
--- trunk/docs/developer/guide/Roles and Responsibilities/Committers.txt                        (rev 0)
+++ trunk/docs/developer/guide/Roles and Responsibilities/Committers.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,74 @@
+Comitters
+=========
+
+Contributors who give frequent and valuable contributions to a subproject of GeoTools can have their status promoted to that of a formal "Committer" to GeoTools.
+
+Responsibilities
+----------------
+A Committer has write access to the whole source code repository which entails certain responsibilities.
+
+* Committers must coordinate their efforts with the maintainers of any modules they wish to modify or extend, i.e. committers need to ask permission. Contact details for each module's maintainer can be found in the source code as part of the pom.xml file or in the Module Matrix. If committers are working in their own module, then they are themselves maintainers of that module and they can do as they wish in that module only.
+
+* Committers are expected to follow GeoTools conventions. They are required to read this developer's guide. Committers are responsible for any code they submit which means they are required to know and correctly document the origin of any code they submit and required to ensure they are legally allowed to submit and share that code.
+
+* Committers are required to submit clean code. Code formatting should follow the project guidelines.
+
+* Committers must not submit data files without prior approval. We want to include only the minimal amount of data necessary, and have that all contained in the sample-data module. If new data is needed in that module, we can add the data there.
+
+Otherwise, Committers have one primordial responsibility:
+
+* Thou shalt not break the build.
+
+This means that all code should be run through a full maven install and test cycle::
+  
+   mvn clean install
+  
+prior to commit. Yes, this takes time; yes, it is necessary.
+
+Process
+-------
+
+In order for a Contributor to become a Committer, another Committer can nominate that Contributor or the Contributor can ask for Committer status.
+
+Once a Contributor is nominated, all existing committers will vote. If there are at least 3 positive votes and no negative votes, the Contributor will be considered a Committer and can gain write access to the source code repository.
+
+Welcome letter
+--------------
+
+This is an example offer letter that should be sent to the volunteer after 3 positive votes have been received::
+
+   Dear Contributor,
+  
+   The GeoTools project would like to offer you commit privileges. If you are interested in having commit
+   privileges, please create an OSGeo user id on this page http://www.osgeo.org/osgeo_userid/
+   and pass on your user id to myself or any other member of GeoTools.
+  
+   GeoTools is a member of the Open Source Geospatial Foundation, we have attached a copy of the
+   GeoToolsContributorsAgreement to this email. The attachment contains instructions for use, and the
+   mailing address for the OSGeo foundation is on the first page.
+  
+   We all hope that you accept this invitation.
+  
+   GeoTools Project Management Committee
+
+   Attachment:
+  
+    * GeotoolsAssignmentToOSGeo.pdf
+
+Getting write access to the repository
+------------------------------------------
+
+Once we have confirmation that you have sent in the document any GeoTools committer can grant you access to the project:
+
+1. Create an osgeo login id using this page:
+   http://www.osgeo.org/osgeo_userid/
+
+2. Send an email with your id to the mailing list (or any GeoTools committer you know) and they can add you using the following link:
+   https://www.osgeo.org/cgi-bin/auth/ldap_group.py?group=geotools
+
+For more information on the OSGeo SVN Repository facilities you can visit http://wiki.osgeo.org/wiki/Subversion
+
+Lapses due to Inactivity
+------------------------
+
+At times, Committers may go inactive for a variety of reasons. A Committer who has been inactive for 12 months or more may lose their status as a Committer. Getting access back is as simple as re-requesting it on the project's Developer mailing list.
\ No newline at end of file

Added: trunk/docs/developer/guide/Roles and Responsibilities/Contributors.txt
===================================================================
--- trunk/docs/developer/guide/Roles and Responsibilities/Contributors.txt                        (rev 0)
+++ trunk/docs/developer/guide/Roles and Responsibilities/Contributors.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,31 @@
+Contributors
+============
+
+Anyone can contribute to the GeoTools project by editing the web site, by writing documentation, by answering questions on the email list, or by contributing code directly into the project.
+
+Initially, newcomers to the project generally participate in an informal role. These types of contributors have no long term responsibility to the project.
+
+Easy informal code contributions
+--------------------------------
+
+Informal participants can contribute small modifications to the project code by submitting a patch as an attachment to a JIRA task.
+
+The best way to make a code contribution is to develop a formal patch against a checkout of the code from the SVN branch for which the code is being developed. That is, a contributor uses SVN to obtain the code of the branch, edits the files on that checkout, does a full maven build and test to make sure the patch compiles cleanly, and then uses the 'svn diff' command to generate a patch against the branch. Next, the contributor opens a JIRA issue against the subsystem in which the patch was made. The subject of the item should describe the contribution and ideally mention that a patch is attached.
+
+JIRA will automatically notify the maintainer of the module since that is the best person to do the code review. If no one answers or comments in the subsequent few days, then the contributor can contact the developers' mailing list to let everyone know about the patch and find someone else competent to review the code and integrate the contribution into the code base or provide a request for improvements to the patch.
+
+Large contributions
+——————————----------
+
+Informal participants can also contribute larger contributions following essentially the same process as that just described for small code contributions but also including the formal transfer of the copyright over the contribution to the Open Source Geospatial Foundation (OSGeo).
+
+Patches submitted to JIRA for large contributions should include the contributor name in the list of authors of the class documentation for any file in which the contributor has made significant changes. That is the contributor's name should be added using the @author javadoc tag.
+
+GeoTools Contributor Agreement
+———————————————---------------
+
+Geotools has adopted a formal policy as part of the process of joining the Open Source Geospatial Foundation (OSGeo). All new contributors will be required to transfer copyright to the foundation.
+
+Contributors wishing to become Committers must print out a copy of the copyright assignment document and either sign it themselves or have their employer sign the document, depending on the circumstances governing when and where the Contributor develops the code. It is up to the Contributor to understand the legal status of the code which the Contributor produces. The document should be sent to the address on the first page of the document. Any questions should be addressed to the developers' mailing list.
+
+Signing a GeoTools Contribution Agreement" is intended to serve several purposes such as shielding the contributor from a direct legal attack by users of the code, enabling the Foundation to represent the interests of the Geotools project in a legal forum, and enabling the GeoTools project to switch licenses when necessary.

Added: trunk/docs/developer/guide/Roles and Responsibilities/Module Maintainers.txt
===================================================================
--- trunk/docs/developer/guide/Roles and Responsibilities/Module Maintainers.txt                        (rev 0)
+++ trunk/docs/developer/guide/Roles and Responsibilities/Module Maintainers.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,47 @@
+Module Maintainers
+====================
+
+Module maintainers are the lifeblood of GeoTools. They own a specific module and make the majority of project decisions related to their module. In GeoTools, module maintainers have the most direct responsibility and say over the code in the project, via their module.
+
+Module Maintainer Responsibilities
+----------------------------------
+
+Formal "Supported" Modules
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Module maintainers have the three most critical responsibilities in GeoTools:
+
+1. Thine module shalt not break the build.
+
+2. You must keep your module up to date
+  
+   * Your source code must meet the developers guide to the letter
+   * Your test code coverage is measured by the build box (you can provide a profile - if normal JUnit tests take too long)
+   * Your module code up should be up to date with other released modules (no deprecations)
+
+3. You must keep your external documentation up to date
+  
+   * The Jira issue tracker should be up to date
+   * Your module's wiki page should be accurate (see Module Matrix for the complete list)
+   * Your module should have a couple of pages of User Guide
+
+If these requirements are not met for a release, or if the module maintainer cannot be found, the module will revert to unsupported status.
+
+Maintainers are removed by their own choice or a 75% majority of the PMC. If a volunteer is found for an abandoned module the PMC will need a 75% majority to appoint them.
+
+Experimental "Unsupported" Modules
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We have a "relaxed" set of requirements for "unsupported" modules - providing a great opportunity for experiments and new contributors to get involved:
+
+1. Thine module shalt not break the build.
+2. You must keep your module up to date
+  
+    * Set up a module wiki page (see Module Matrix for the complete list)
+    * Recommended: user documentation will help reduce the amount of email you recieve (see 16 Unsupported for examples)
+
+We have no process for "volunteering" to work on an unsupported module at this time; email the developer list and we will figure it out.
+
+Reference:
+ * Creating your own Module
+ * Supporting your module
\ No newline at end of file

Added: trunk/docs/developer/guide/Roles and Responsibilities/Project Management Committee.txt
===================================================================
--- trunk/docs/developer/guide/Roles and Responsibilities/Project Management Committee.txt                        (rev 0)
+++ trunk/docs/developer/guide/Roles and Responsibilities/Project Management Committee.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,66 @@
+Project Management Committee
+============================
+
+Module maintainers who have an interest in the greater direction of the project may have their status promoted to that of a Project Management Committee Member. This committee is the official managing body of the Project and is responsible for setting overall project direction.
+
+The PMC makes all decisions that cannot be resolved by module maintainers. The PMC strives to make as few technical decisions as possible, preferring to leave technical decisions to module maintainers and a general consensus process.
+
+The GeoTools Project Management Committee
+-----------------------------------------
+
+The GeoTools PMC is the formal "Project Steering Committee" that reports to the Open Source Geospatial Foundation on behalf of the library.
+
+Current PMC members:
+
+* Andrea Aime
+* Ben Caradoc-Davies
+* Christian Mueller
+* Ian Turton
+* Justin Deoliveira
+* Jody Garnett (current OSGeo representative)
+* Michael Bedward
+* Simone Giannecchini
+
+Our thanks to previous PMC members:
+
+* Andrea Aime
+* Artur Hefczyc
+* Cameron Shorter
+* Chris Holmes
+* David Blasby
+* Ian Schneider
+* Martin Desruisseaux
+* David Zwiers
+* Richard Gould
+* Rob Hranac
+* Rueben Schulz
+
+Responsibilities
+----------------
+
+PMC members:
+
+* It is recommended that PMC members maintain a released module
+  
+  * Alternatives such documentation or user list have worked for previous PMC members such as Rueben Schulz)
+
+* Must be willing to do whatever dirty work is necessary to keep the project moving forward.
+
+  * getting releases out on time (within a week of a request, or according to a schedule)
+  * making a representative available to the OSGeo foundation
+
+Nominations
+-----------
+
+In order to become a Member, someone on the PMC must nominate the Committer. The individual may then be approved with a 75% majority of the PMC.
+
+Stepping Down
+-------------
+If you are unable to maintain your responsibilities as a PMC member, please feel free to step down at any time. Thank you so much for your contributions.
+
+If we cannot find you (especially when voting on proposals) it becomes very difficult to keep the project functioning. After two months time we will send out a search party and nominate your replacement.
+
+Honoured Founder
+----------------
+
+We would like to thank the founder of the GeoTools library: James Macgill
\ No newline at end of file

Added: trunk/docs/developer/guide/Roles and Responsibilities/Roles and Responsibilities.txt
===================================================================
--- trunk/docs/developer/guide/Roles and Responsibilities/Roles and Responsibilities.txt                        (rev 0)
+++ trunk/docs/developer/guide/Roles and Responsibilities/Roles and Responsibilities.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,11 @@
+***************************
+Roles and Responsibilities
+***************************
+
+.. toctree::
+   :maxdepth: 1
+  
+   Contributors
+   Committers
+   Module Maintainers
+   Project Management Committee

Added: trunk/docs/developer/guide/Tools.txt
===================================================================
--- trunk/docs/developer/guide/Tools.txt                        (rev 0)
+++ trunk/docs/developer/guide/Tools.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,15 @@
+*****
+Tools
+*****
+
+* Eclipse Developers Guide
+  * Eclipse FAQ
+  * Eclipse Setup and Build
+* Eclipse Modeling Framework
+* IDEA4
+* IDEA Project File Generation with Maven
+* ImageIO
+* Java Emitter Templates
+* NetBeans developers guide
+* Omondo
+* YourKit profiler
\ No newline at end of file

Added: trunk/docs/developer/guide/index.txt
===================================================================
--- trunk/docs/developer/guide/index.txt                        (rev 0)
+++ trunk/docs/developer/guide/index.txt 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,17 @@
+#########################
+GeoTools Developers Guide
+#########################
+
+.. toctree::
+   :maxdepth: 1
+  
+   Introduction
+   Building/Building
+   Communication/Communication
+   Roles and Responsibilities/Roles and Responsibilities
+   Project Conventions/Project Conventions
+   Documentation/Documentation
+   Project Procedures/Project Procedures
+   Design and Architecture/Design and Architecture
+   Tools
+   Reference
\ No newline at end of file

Added: trunk/docs/developer/images/ccAttribution.png
===================================================================
--- trunk/docs/developer/images/ccAttribution.png                        (rev 0)
+++ trunk/docs/developer/images/ccAttribution.png 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,54 @@
+�PNG
+
+ +IHDRXc�
+�
+CiCCPICC Profilex��wTSY��{/��B�z +MJ�z�^E%$B �WDWi�"�".��Y+�XX�/�"������e_�e����ǜߛ;s�ܙ��<(��BQ&�@�H"��`���1��D��py�YA��?/3u��L���u���� +a2?�����KНBА�|A6�<��s%Y2�$���4���QV�q�6����d���QY�Y� ��;Pޒ#�����#�|e�ti��7(�3�l0�]"ॠl�2E�AyJ�,N���24O8�Y���� Әg´vtd3}������q�|&'3#�+Z��;ˢ����L���֎��, ��_�_�z�;�z���e��A��o�o��l��������fK,�e����� �@�Y�a��%E"�r����͵
+x��~������a�y��֎�)H�J�%LYQy��R13;��0Ybt��8+�Yy�� �b�=*
+�2�(m��/�3EL��:��f� �/s���#�/�
+7�� `hd���GW��} $F�ˋ��2�(����\�~���d��� �`���oB�����-�� �� ܀�� ĂŀR@�\�
+���{@9�5�4����ep�}�>#���� Ax�
+� 5H2�� � +͇��@( ���dHI�U�F�*�ʡ�P�#t
+�]�z���4� ����aM���ٰ;G���dx)�΃�åp5| n�/���>x~O!!# Da!l��#qH"F� H R�4 mH'r D&����abXg�/&��,Ŭ�lÔc�`�1�[�!�$�#�����a��~�l26��-��b����}��k���p��X\*n%nn�w׃�M��x5�����%�||���?�C � 6oBAD�@(!%�%�F 3D�щL����5�6� +�q��H2"��"H����RR���%�L�%;�C�B�:r)�8�
+y��D1�p(�)e;�0�<�.�%�J5��Q��vj�"���M�B�O�/�V�B�Y�W�<Q�@�]~��
+���7�'�
+�
+���
+�S
+
+S�4Ek�`� �m�G�*�)� ����JyJ��.* +���C��6�jh�h#t݈�GO���w�'���m����)W(�Qd C�#�Q�8��g�S�TqW�lUiP�U�V���*P-PmT�S}��T�RKS۩֢�P�n�����_�����9�9sN̹�k�j�i��8�ѥ1���飙�Y�yQsB��妕��[�ָ6M{��P{��9�Le�;3�Y��`N�h���Hu�t����F�n�m�}�G�c�%���kכ����_�_�πh�6H1�k�i0mhdm�ٰ�p�H���h�Q��c����R�j��&8�I��>������i�i�� +3���Lh�Ϭ�k�h.2�6`QX�V=kȂah����⹥�e��N�NˏVvV�V5V�����7X�Y�icjó���=�:�{�ڹ�s_ؚ�
+l��ޱ���m�k��`�`/�o�w�wHp�t`��!�m�+�XGǵ���:�;I�N8���rNs>�<6�h�`^ͼa]��A����� ��t�q�V�>v�s�պ������s�a�!�h��8qVs�{"�>���^J^�^�^��u����'}�|V��������������M�;������<4 +��A�A��,0X Z� ��w? 1
+Y�s(.4$�"�I�uت��pZ���#<"�"�GGJ#ۣ��ꢦ�=���c,cV�\�U�ƶ����j�z-ܳp$�.>?��Ѣe��.V_�����%�%'� � G�s���ܩD����I������������I.I�Ic�.ɻ��S\SJR&�a��E�ojU�tZp��O�������S"%Q��#S+sYfO�YV~��R��{�N�ĵ�P���V ��K7I�r��T�ɍ�=�Lq�hY�r��[����^��J�J���U:�֯Z���hM���zk�֎��Ywd=i}��_6Xm(��jc�ƶ<ͼuyÛ|6�����6;o�ڂ�"�ҽu�ֲ� ��
+�
+K
+�o�m����w��}ڞ���Ⱦh��ю���;�+�(���y7sw��W{��Zb[R���W�w�4���L�lG����
+���J�ʭ�����z���o�Ҭ*�zw@x��A���Ն�%�p�r=������}]�zma�âÃGŽt�9���8ZT�K�Ǐ����� +������������~�?p��$�d�O?U6њ
+����͓-)-����=��O��9�5�l����:�+�(�):K:�w�ӹ��g����|a�}I��1ow�vt_
+�t��勝�箸\9}���k�k-��7w�u5�b�KS�}w� +��7o����9���{��˷�n_�[����g ~`�������/��ܛ����A�C��%�4U�j�k����!ϡ���������'�'%�ڣuc6c�ǽ�o>]�t�Yֳ�����|n��?��蚌�y!~���m/�^~e�}*d����3�o��y�~��.���L�{���&�>||�)�ӧ��������IDATh�ZMlTU>3�6�Pa����eßtI[q�Lct��LhL�JEC�Ni'`;1�Y��i;�D�m�I���F]��m�������0�3e^���ܹ�ݟs���y�{�qJ��]�
+�c0W�/�p�������"΋��\��ˁ?���#��0��qhƙ���R���S3)J�Pg����iB� ײa�����,@Vp�$��e;� t� �����V�n�<��f(�
+��^#=@����������K���Cto�^��W�����J�y����x�R3،i�!)� �c�O +�7�Pbn.���)�m�����櫨����aڸyCZ��X��}�w
+�d*ʒ�9��G��1�I���2j�дh�4MO�)���h�� �ɘd>@���_t*~���]9���i���R���^)��XCu�u��s�ȳ�?�`�䏬�.�n1sij�DW“a�ʕ��������d2I7oޤD"Aw����k��A����e�<%e�|�N�v-���'�S}]MLL�|���"�'  �D���Rj����p���h(����\�.�mhh���zBy6���E(�Ж��|IO,�S45e�fM�
+� n��t�h�޽{��ٳ�xj�l~�q߾}َo���Q�A0�� � M�5����0E"�9�,�ƍޫ���D�kӍ-WO���#��6v\���ʍ`s1ެƃ�udD_��X�I�+&n簹j.6��\ �1j��+���i�A2�� +r���@�,T�]�6̶�v�t��V貥�F�q��^��L�l�(�:6�I�����7���*���j>�,��p�e*̀�%(ۄ���i�}
+U6�b���z ����� દ��� �� �h0�d�͗�� [�d��.�m+d.� +�Aƫ +88Д�����RMM��h4�M���m^�jqOw���F{N�4(���Q@�&}�
+��ڄ+0. 
+ ��6� �pmB���w��4��h+���rQ.6���s3 ����r&e�٧Ϯ���B���n�:�7|GPyy�xz��ٳ�T���{���~�#c���[�z�s�er��C����aS���d�kv}�c0�o +�ʢu2�>�NC 2���-�6�mB�R����U����;�:&�768R��X�I4��I���. +�I��5���0f!�`'���Z AU�a�pCC��ի�<h�^��6]���"�Ɓ�hsA�?n$\!#�����Q�6��x�B��Q1�JRJ���ЫV��jY����6?��AX�È<�8�Q�w��t9�OuЧ�b���pl>k�[Uh�B{�C��j?���P�HTnq�����B!`<��9p�.�A��݆:h;�g��[�d� �{r�c�$6����@@�yk�g>����=���A���w���5�/. �l<
+�U��z��^��
+M2���pB�- +`+l M_��{��NuM!� � ͛/�^�i +�&o�z8����b1���ُqr���!mk�yl���cp9ѱ������l� 6��?;�g�E��s8r��6���6��~{�ԡ�
+�Õ��܈}d��Hx���������%� �І�ꝡ�Ag��Fχ�������7+�hC��q�+7;��khdP6P�R.^/أ��a�ɟ{�M�$��}s�k�w��6����(z�Y>����w�{|�*��{�q�N�ٞ���?��A$�h2��3�_;|H=�G�f���<.f�{��9����3^/��l�i?��4�'bsA����}���I҅���l�#������@Áy��F[�����Lck-jЖY�@<��c�6PS�=�B��3���5��{���[�ىv��OE I6�vY�|�Vp���qض}mzq=��xԘ81*X�]�d~u�*]�xy��U9!�R&���k?��95��ɗ� ��SKa�����?��z��IEND�B`�
\ No newline at end of file

Added: trunk/docs/developer/images/eclipseUTF8.png
===================================================================
--- trunk/docs/developer/images/eclipseUTF8.png                        (rev 0)
+++ trunk/docs/developer/images/eclipseUTF8.png 2011-02-11 17:22:48 UTC (rev 36572)
@@ -0,0 +1,917 @@
+�PNG
+
+ +IHDR�P����iCCPICC Profilex�XgTM�����e�q�K��Y@r�s�"���D�"A��J0L�(@D�w�=��{ν������3ݵ��]�SO�o����d�#�blM�i�.�4�;�|��76J����me@��/�wu�b����?������ +��5��F����3���`��g��_Əvq�?x|�������D�#z{�@�Wh �������(�0�� +���=��
+��ŗa,��z�{{��K��w��?k� ��aplT�w�߇��[xX<�_���#����x��a�h�~�W�^3�QI1��Aq4=�J�R4�_)���<���ڮ��K��b{����(o�6���X�7.�[��c��p�p��7>&�}�� +�� �N������π
+����V��O� �@8�ˉ� 8 �@.8N�rP +΃F�
+�A'�z�� ��` L�i0�
+؀  � *� �C"�$��Aڐd�B.�E@��A�� B�P +�]���^h��B��� ZG D �!��E�!��{�"�HFd"���ZD �ыx�x��@�#~#��dC
+ ��jH����AB� K���6� +�C�K�r��AQQ4�4Je�r@�Q�Py�rT#�u�5�ZDm�Ih�$Zm�vF��Y�t=�:�>�5z���`�0t�*�� ��`�0U�K��0f
+���rb%�ZX+�76��-ö`�b_`��k8���3ƹ�"p��E�� � n���  �`��ǐ�p�����s�i� +<O�k���!���R|�>~�D  �B0!�PJ�LxD�$�!2%�Dwb<1��@�!�%.�H$Q�.ɕG�'5��IHk�TFF3F?�4�
+���ߙ�D���<���J��2=gZ 3�E�do�!r��<J�M�R�)V�pJ�"e�2ˌee6b�c�d>���<EER��T_�j�>u��Bg1c a�eieyƲ��̪���z����6��M�͌-��$[;��:;/��?�q�6�����9�8^s�s�8�8C9 8;9�s��$�l���r��Z�f�������n�~ǃ����I�9���7/� ooo?��.__1��9~*�601�]��4V�-�VJ�G[�0��x&�!Ht��$�^/�& T,�'�(�/l)|P�Y����H����"��tQ'�c����t�=��L#��E�Պ�Lj����W�I $�%�$*$�K"$U$�%�$���R�RR�R��Di=��f�I6 � �N��²���e������������g�ߐ�� ��P��J��h���إ�SIR�_��e����1�>�-U��6�9UaU/�J�Q55k�<�G�hu}�4�[�4T4�4�5~hJk�j^Ԝ�C�㿧nϔ����V�ք6M�K�������N��']!]?�z�=q�����r�1���W +4 R +z ��&�9�ό���ʍ> 7/�(������M�M LG�x�|͚����M�{Ϝhng^n��B�"��%�r�e���>�}�:����U��{k�u��M���M��[yۃ��v��.ڭ��۟�ss�w�sdrtwlr\u2t*t�p�uNu~������uut�w��f�v�m�]�=�}ă�q�c���3���~����z����.zmz[y�z��1��Y�5�=�;��W�7��_�?�P0�X8�T�l\�3�4�:d5�*�!t'�)�R8.�+�;�9"4�^$_���(ɨ���h���ы1�1��P�GlW L�Ƌ���L�N�HXKtL�z�r ���$���I3���RP)�)}>8���Zs:�s�/M(-3m:�$��0�p��� ��Œ�#NGnd�f�gN59ڜŘ�5zL�Xu6*;8��q��eǷs�r����n���=>!���N~@���*'Ϟœ�85R�S�XH)L.�*�,�(��/��z�D��� �L�R�Ү2�Se��A�+�+.U�T�\��zqV�l[5oun���sojLj:jEkK�c�'��R�X���څ�z�����F��{M�MMy.�lF4�7ϵ�� ��v�I��\b��{\�����ו�v����jWۮ�\��N���u$u,vuNt�t +w��y��M�� +�nU�f�}��N杝��w�D�,��N����w�u��޳���=0~��P���GZ�n +h t?V{��D�I�S����?Sy��\�yא�Ѝ�=�w^��}i���+�WO^�{=<�0�f�}t�ߛٷao�Kx�1�>��yO~_��C�G�&T&nON>�d�il�wj�s�����/�/%3�3M�
+���熾�}�����X��F�V�]���?�.:/N����+o�s�aYi����+�+�9k�k���<\wZ��H��n�n�o��6�� �ى��������H.P������J���_�]9�'�Q��LpLC��5B������dA&"'Qv�A��& ˎ���1H3,�j��Fs&2�Be�SQ,hV,��
+�Ww.�U�1~M] L�FhFDQ4��X�C�_�Ԧ��l��[E_��ʓ��j��y��KZ�ڶ:'t��c � ��ߘb̔�z��������jņ�V�N�����1��s�K��m�!�I���^do��������[@x`JP^pyȹ��p��H�(�hj C,2v;n#~#a�" �LI�:(�*z��Ɠ�~�9�pud's��R�±���r���:1��v*��OQ�i�$�̷2��kU�g��ϝ��T�^�xA�ޠ�@㵦�-���m�/m]�jw��~���`�r{�� +��~��o� ������^���e���{��4�����|{hix���˞W�_W��f�9�6�]�X��{����?�P�X�l�2%?��y`��KЌ�,z��\�W�_��,X}c�6���ǭű_�K�;ל7�wv`�Ca�(���g�]0qC�0���}��-�e���Q��^�eL1V����W&���vR.c0�Y�� �-��7�E�U�N"�[�Ǟ7������A�Y�J8[�)�+�*�)�,-' {V�JQIi��q�v�7j�|�z{"������ ���]64�6��K6�Y�Xj�3���v�� +����sHqLw�v�w)v�p�qo��ym�W�����c~��'�������:���G�G�G E�b�ciq�� r��Ԓ��RdJ�� ��sf� !f�"��dm[�^͡�F�M�۞�S \�^��4�ϙ�����
+��=Uΰ'?w�f�i]ᅏ +�ư��� -�~m嗆���ծ_+����eԝy��-�m�;)w;z��������#€�c�'aO��<�~�;t|�苴�ɯ�^G���F��y{�ݑ���Y�}��>0���y������Y�9ӯ�� ��T�s|���w���/�%�e�����k�7\����Ȱ��8�6pVpf��0��= :=�}`"�3���N+*���8a&����)����;� �De�)�Q�q���lI�P�3��,$��*�v}�M����.�I�u�S�g�_� + �
+�Va���y��J�%�%G���Kee�����z�(�+며�|Q�T�Vw��X�|�紖���BgX��^����`���Q������/�^��{�̹�G-N[:���7nUkf�n��}iWk�`����t׹�%�Uˍ���G�g�~w/5of��G�u~i��j���Š��u!I�a�a�����Q�Q+�]1 �ұ�qE�:��L�Jޓ"u�'�|�! +����q�O�ڑ�̕���ֲ9�[�d����O?�{��`�����tU�d)�,��zş*�}��yl����†�MȋF��-���/��<�n|��:�#��c� +�Iڷ��j���3�v���ģ��LO�m��e��~��u���w���>��X}�XA����:�nL��P����R�" ���X��^@��_׿�,�Eނ�B58f��1���r=�U�2Y���Gy�*Pchn�+��Ï���af���lvg��ǽb�b�ah�c�>��@'$�����$Ri�Q�1�q�Ɏ���O�&/S�)�����TNju�%��+�?�ix�}d�e��H�Dpr�r��v��ɓ�+�;��������d!���"N�̢C�B1Gq.����R:�Lқ2�e���Rx�8�4�ܧrC��Z�z�F���=Ǵ2��t�u+���{ ��SM�L�͒�֘X��'`ee�n�n�®�>��ґ�qƩ�9���U�M̝����E���� +�+���.� [���ԍ
+�>s'v9^,ab���dzJ��;��i���#��kYY���5��yC�'�
+���;KLϼ*�,����Z�.�q<�W�P��Xs1�%����i��5��;�Sݽ7+����޳~(7������-��Fj�
+���`6��YeF�+u���O�%��+���k���7�6I��[���m�������r��8@����@� .">#iHd��厪BM�����ΤS1�X�[���)��1P<�V�F���/p��O�"j���I椋���WL{�.�)�4�"ŗ2�l�|�*C����R���Z���V�.�~�C�c�ӟs���[�{�'�W��_2��[Z������e�0a1�Y�f�0�"}K��I OII��a�2We�ȵ�7(�)�S*W.T9�zL�z�F�fԞP�`�`�(�t�|�s� +��L0�t3��1�e�V|�V6Gl��Z�����N�Ώ]��V���x�z����~��'�o��("j��Y�=3�����Xt�A�v������Vҵ��$ݗu���qr�cnm޷|Փ٧&
+�����K\���I����V����k�u�C^�nHl�kfj���y��=�~S�dw�����wuz����?z"4H.6,����>*�>&�^��d�g�/W�L���.�uj9r��z~m{]fcϦ�vkp��_�[�^8VdAʈl�8R ���G�E]D��5�Y,�} ��v�cX���G��{D��6��%�;�P2 �R�)#�T,��ňe���M��{ +�'�W-w8�/#��>���A!ma)>Q*� � ���K��x��ee���g9�L�cU�T_��5�5���i}���u�+�a�b�f|�d�L}o���\�Y3�F{�l'�s�+p������Q�#�n���� F�F�E_�U��JPLlO�Mn=(�ښ&�~;��H�Q(��XY�d�Lnz��|����nb���N��1-=S6S�^�W5Y�s�j��� "�u�bM��Z:�/]�yb�5�������ݭ7��nޕ�����oz����C�G͏��M�[�-�*��_���y=2J��v`�k<�}Ç�|���:?c�]���L����?�P�����W�����$��c��o��V�W�Vo��=���e�k�����F��Ħ�f����-�-����G[;۪�Q�M۟v�w�wN�<صl���n��]�?��,��-`�`gg�vgg�<�l�5jӻ�2�pM�{/�v����j��� pHYs  �� IDATx��E��{r�'��A�Y��Y �i +�몫�a͊�F ���sŒ(����Ι<���=��_�Ad]�{��}{�g�q�=��UoU�������ڸ��+Z�b���\]Y�'mv�d3i�f5�\6{A��l6-�M�d�
+�!����fΤ�~_��ӭ�����;�Y%�t��ф��-����Z�%���Wt��"nK��%���<�`�eO�?��JN*���j�XLE[QUe��c�d2��y��S(� +�j�Y Y�b��EM��6{(�DZ�V��b������$�dX$�,���5$�ć���?e �%�_I���YM��� ���(JV�����Y���Lb.jZ���}K4�O�3�d�v;@�(�����!�����*|w;]|��r6;�ܔ�f EO���Y�&�%�~���A��
+��r�b���j��lv7h�t�2���f1���(������d��b��pؘ���t�LZ�����t:�v�Aq�by�x��s�X4 �g�X\;%r+Ojjt��-���-�C*:)�� y��{|~^ v&���_(�#--��zTVV�\.d�f]�g���d���n:=NJ�L�ͩddJ�:���|�H������\N/�&�YӳȂ�!�a2�B!"�-���fjV�J�J��(�^�@Y�� 33�bv0ә\����|q�L��k��\n[S�v���tY�Ʉ 5J&��������>�ev� L|�P�!�D����l�r�D"�rحn�C�frZ��j����]s�����*`����s;����A�+�%߹�OmW�B��YV���������pQ[��l1��6����讻6��U�穓�״�N}��p �g�F<��]�J(y�^�l��T�&�M$Ӳ �V�Y��`���Re%��Z�F2�n��vz z�]M-ՠ���� +��uHe2R��UU�X��iE6���� d!B� +X�h<��k �
+�O�3࿥���׽W��W�@Y��̅�Y2l��6܁���1�]N7��jΛ$u���k�.�*ɚ��i����m�t����rpƔenBk�B ����d�ڬ.�h�*�Xt;=^کk��T���Ւ�
+�-��b��d��f�7���tX�.[kK#���bN�R���R:�NjTOH�/WK�괂W�/>oƖ�(T�p���J�h�@IȪ�*Q&��2M��T�TU�PE�`�\���d�I�����p{|��{�~إ"��6K"����[�����|i~cS+$0E ����S&F"x�eO&����
+T�H"iEuw�mk��A�-�7�K���T�E�UK�i�0��]H�㱄0����,���g0�l.���'f�@��(!OF��rX2�ؗ�?3at:��+߲g�Q��m&]�`0+��n1� x"5`��iC.�l/tQ�}Ў
+�V�IŊh�j�n)Z���Z(��'�ݰn�Q�jkBr:Q�k>��j1�6��T��eu�/�� �---|X�p����M6�dM$����vyy
+,=���{@1�Ql�8U��y�U]]m�x��x4Ү���'�DQH��>~��%�1[l-7[��'�pi �j��^��K��j���@5�G��\�]�T����f
+��bn.�PJ�_�S�-fv
+�͕J$]v Rpyz�k���Zl������zg������5�ˍ�DbE��*���+�(K�_���I�0�lLg,c�L����׮^y�!�T�e7;,FU�_�.�T��<����. �dwa�Գh��2��.�TC�d:�uŋ�m5U|U�@QWʼ.�s
+lm@�#�~����4I�%i��>UQ��p����/��%Wk�:Pp2�D�u:<�d�nw�3�`�b��g+a�T��P2�\�Ȥ�>Zi�l�y@����|��;��n_��?���S/9_Q�w�~S�xb
+9=_�H����U]��זU�Y��b�K,��X]YMzl��qX�1���&�j��O� f)��i�YU�|�Zp����x Ɗ� x�9+�������t��\|��֨'��\,'���pA���L��TR�n:@Y�ʟ�Q�V��*�^�"��
+���ӂ�E�O?3r�٬���,�vI�P�≔��V�ܑG�+mfk,�j�5��Վ��ml�C�MEC�O�����GZvl�,�SL�`�(愡��q�X��7�E�?��B^3,�דU2nؒ� �E #���Q�VWTT�bQ`Q�CrE���=����39���P�"�I*
+�S,���
+� r�N�kY+���;����V�ү��k~Xkݱc��]��-Y��I'�
+W�3v�A*1@~���ƍ]����CϞ}��(��h�-�٫WCsCV��譳n�
+Wy=�k���&�����o�1⛥�N8iRee���OeҩL���ֻg����>{��X0k�|/��R�n��t��q��������8���jjf̘���h����� P��)K�,�����b���@��d�SjHz2�g��;z�2'g�&{��=� +8z��{<���C� <v���;��;
+a*>L
+HҲ�E� 5�k������Bͦ�l��q�a=3j���2x@�>���Q��ţQ�d�Dc����/Q� V�t̅Kb����2� .�N�8�y����kw„�]4}���.��O<�ꫯ�:�� ��ԩӜ9sЪ(+��k��a*�-��ZV������<. �w�F��Wۮn钯O;��v�]��;��{�9�7��ƍ�V�^}�UW�o_�z"� �) ���^|��cO<����ПG}x�cO;��8h6nނ�<���te�M��L9s�Y;�n���{ݕ�/�v��o�u�]w}��L�~��ӗ|�d���'�{�g�#.�l�K�^�…�Ϝ9s���&�|��˯���3s�n����+�G$��$��甮���%P��(<�Ē�x
+y��@�d,�u��1�G��I�#������b���f�?�r�s�B&�"���~]�ً-ڱ}��l�^��r9 g��� +��s��Q��GV�X��� +\ 0M9���V3�#ڳ�:��c?X�ɀc{<�h,U]U���/467��!�4r�H�wEM"H
+tRנ��k��1i��p�� ؍���O?�5��.�MɁ��gY��$t� ���VW����{�үV�Z�uۮG0_�֮^�t�7GqD x�gh�m��F]��T,���C��E�p� ++V}w��R?�kh�u�W��������� ��M�/dѷoߋ�M�i���C{��?>�|����v�{�3b�nݻ�1�@���=4㭷�r��/�{���|Ӭ=z��� t����G�=|��K�F���Z������e �%�/J�� Y�U�*��}�9�d�'>�4���Ѵ�6U���m6MHS���&f� + ������Be�Kq(���w��-܀��Ţ�������S����p�����"��3h� ~�j�_��'�l{_�͛G�x;W`���ޝw�y�Eq?P,�vY����w�]Ç +a�=�u��ک�b�ͳ��s����D���$n_[g��"/E��Z��#�˥��3�s�<�чtPw �m$����1
+̺uV�#����+a�D�%t�օE)�Nx}�x�u���3/� +�<p� �"|����ДH���s'2�
+�Eee5�O�4���}�1E� � +.���|�,�K��S"�| �Jg�/л��~��0�D݀�Z�ȃPx +�! ��� �_P9�Gղh�}���!C�I��)�P���\n9�PfJ&��.�*=����t��DbQ��I�����7abAQނ�٬@�H� +�sm�+�].r ʸ�nb��R b��z� B����{�]w�y�<pQ�
+�J�QZI���:]fO:���g_,:e�pEE׮]?�l���k_WCӰ�����}&���u|�
+�N������ +��aU� ��׸c���7hU�˙��:z�}��+�z�՗&�z�aC E��T�\^m׾��ٮ��%_������y�YSΜq�5�-�@��� �˗/�o��+r;rK$R���{aԱc22�r�4�m>?�G�u�����|�,�� �Oؽ�/�e�;EH��l��+G�9�5l *9��o�/c�H.�;�2OC�
+yS�����kM���%HtX�C�0m178X\Nؗ5�^�/`�qP�u뾏��m���I|7j6���h
+�_.YzхӚv5��N�x�A����+
+�Νۏ<�H�g5�d&���3<��B�KP�={���j��}��+/��ϷL�vNr��-�ٮ���#b2i�^�^Z΂߇�:���Y��aÆAV +
+8��}����‹/�'s�w��y�G�W{�.�R ���$�Sl��kj�No��6��5W��z +���|��׻t�2��Q�v����8y��M�6\w��X:&�|��.�h,����_{�UV� +�6t���
+�o�����7o�|�l'�\s͒%K�l����O574b�5E3��M.��,���E �>��a�� +�)��(���O�v�
+ʥH���#O9��^��;��Ɲ8|��?�Q�D��+�@\��s�1PK�k���A ���'�x�� +~�Q�L:�O9�w���G�8�lwd���*�.���#�2Y�����a����&(*0[�;���/�/4[�͌�ρ��iK�c(�x�/��|�pn�`{� ��P\. f�
+�5�B��!s7V�����S��f�e�~���w�}�}��С����Y7��73/���u��BE����UMU�SO>�0ƌ�ƶn�zѴ� �1��+/G��A���]��Æ����/�N=���O<pP����q�-��z�o/���M7ވ��ɧ�8��S�͛;��/�tfZV&L<�hi��z���Ǝ���[ ��7�L"���e ��@��=� �����y +�x2b�;|� Vds��hl�:]A6�$�
+ۛ�+n"JW �%���P�p���~s��hx|!��nXl +{")YwzB��p��lH���~8v��`��hX��X2� ���Ѧ!IJ�[ơ��8�a�6<|��AȊ�/�� �
+4�'�C���;"t�JĴgO+�n2 �|2!S.;%�Ê�g�65(���G\"D���6����;x+�_�](Z�^��',R��Bl����S����8��j���z}�Tb{+��Ģ�6��]�! 6���߸�����#G�r�a#(�'%�I��5��qOT����g�!�/)+&B��mCI'����]����>o��x �l=7!P:� +.K�P�
+�|�,���YNZp�8/}� O/_S�i5g�q�C�%��G֡={a�h!,�� h�x*+����}n�X������y�sI|��M���=�0��w +���&��~�����x�U'��A襬�Sr�� +�*�=y�Ov�ޕ/R,q�
+���
+���]n_2�P���^tJ�g!Xj��rE6����C���t:� + Ō�Ū
+DFⱚ�
+p�:E�H���l�95����͂Y���lǣR��Ԅ"��oKk,�j��ڳe�h!vAbS�$��aZeӶ&�g��.?q�F�h� WW#J6�������0{**R����e� ��8�>��<�\��!�����i��L,dm1�%���[񟻿|�,��T�&�f�y�舛,b~�Y%/y���r��<�C�Dډ/�T���8aP.��!
+[ ��3"h�-�%�g�L��=<-@2���Mt�، +c-:܁^����8�ۛ�d].���jq���� �k�!R�T�E���E򅳅"��� �����O ���/�9�4L{Z�Q:�N���-v�ڽ�@\�>m{k$� �8�� �����G��Y���q�fk)��E7!�:v �2̤e�N�W��lCGqfK!x�Ǜ=��F�b�{x���xET'�qr\�g�2�Vv8�J�f�!��t�G��>6�z�)��.�.:�N�q���di{b�?�=9�����|�,�H��[pO���s�� �ۈ�/�"��iikc6��h�DKl!4�`���l���l��}�����i�.�1�]O:eŠYz)�Y(��2@{"U5�vy�J�d�rS8@��ai`wUUE,Ek.m3������6����?��먡���sqڴ5��K�q��p���l���������m�U�dK;�K�Onl
+?t��OWڮ�Jkӂ�5�?\�}���On���jX��v����� /��,���K �}��).�<�A����θ_���O��7�E�%HWJ�#��tC��}O������DQ� ��k�����-��}��iC�������O�p�?��%x���J+����,���8�t�C��A���E���~���}�|ߕ�__~Q��_�)�[�@Ye �J%PF�_iǕ�]�@Y�& �Q��$��k�(K�W*�2J�J;�\���7I����&A�_S�@Y�R �Q�W�q�j�%P���I���޿�U�ה%P�@Y�B �Å~��.W�,����7I���{o�Mo.��,����5H`�q꿆���X�@Ye �/H���_z�e �%�+�@%E�U�jYe �/H���� B/��,��~E��%ێ�h;L�������m�?�<�|���$q(�8r�h�k4s[�{�5q�8~�C"��_|8)�t����L��&mǵ��������YA����k;nohƾ�r�����w�5���ڎ?�'��S����N����������H��b?��_�}��J�'q��vq}_���[H��,���J�d�҅���S8�G��S�K~�CJ���ꝶ�so��_�X~��s��o�ד���l���'Q�}��O�{����P�����2۾����q��m��v�T�/��w�'��-����Tgќ�������Oq[[�"5!�Ti��+�t�(��]������e_�����e{��������|���Y?����x��$Q}q@⾃��*_�4>y��qcۄ��K[�{o�����b�'~��Xʿ�c�G���lE�1N��sL&�Q�dw ��s'i� +)/� ��ÛW8[�l&�$)zȟ4�T��x�����9.دi�Ir��f
+�"l9q�1�4"�P�l�\�g�r�.Y+I���H�C�6��9;S��OF7 o�|rb�8�S�p��jy�Q1ҭI&�$�Z����v;Ǡ[l6�^:� �E.�q�'���L��bvk:�Y(�8d��r9��b'$M���ɜ�s^3X�(����$�ٰ��6qV��y�f3��9��"�s�9��$Y($��$݇�a�4ʔ$��{8�8'���T���41[�:-��p�z&�)��'�����@$��(�ǐ���Q�#N*-�4* b��y�X�g�R&��������vqؽ�I˳�YMV�,�(g>sX)�O�������eD���%�|L��t8l�<G���JR�T��&+ܣky��GΏ�ɢk{�.RM�30��a���pCt(g�r�?���ů6���A�E�Hd�g9�?W S�;�$g�j$2%�8�Y܉�i8���T&� q�ShB��9Z�D������-� ��.r&k[�e�<�bЙ���Ԋln�Kd�+J�WM�!}@�F�luN�)�ǫ�:��x�_a$P����+A�a��8ʚsgIE�#��8��_ + S���I�dD�tX���(��F�ZX��n��cc�!M�R�й�'��8mщ(���hK=�㺨����d�5ɊFVUS�^�ҕHE~<H�U+R����"�#QX#<UN�nZ&0�D��(���E'Зv�G�j<)f(�T�dttN5g�g }��X�I� 3b ���P8 �v��F�b�"�-G�"X�����獔m+M1�Y��0�"AX)�����ˏ�������F���%?Y +[[[�������H���dV !Z^�8����eYi׾y��B�5�'�g͚j��o�.���brf2E%C�)�@�=ˤ���Aǜx8S�� +R��U}>/�5H��KY�q�VdNGg����q�`� IDAT-i�L֬Zp؜sNID�p��l�IV
+��)F?��T%K���I�!Uѽ��d��
+����e� ��Dbh�e�7��}�uǎ�v�֓����f!�Ξ9����R��ef��{T=��� ��R%��I2'1nbє��1K2�;�����P�㖝���+�v�,R"��E���H�a�r�{N��"7&�B[�l�T�d���VD:r&�X��P�5��X��s��<��N�lȤ��/�y�cǎU�Um�������p8�2� �Y�C��F2'�BΤg���NR'�R�p�K䷳��4�!� �SW�ԙ��]ng<��?n\���}z�� �32#���:�L��#�Jڜ6=��BuS+MeH9�)׼����p��Yɺ������4��']N;i�8֚�1Ul&�U����(�JYFb����[-t�Df�?,���2i8��$H���|c [�Y�{>/��f��r�[���5U���xE��*�c�� �X���:m6R��D&� xXR\/C��f�9�$֘�R�)��tء"���;o�w�f��s�ϩ�F1�u�.�UAv�H�%�[��Wv���vgd��r���b�#g���khn���k�,��x�_�z����߰a�ҥݺ��HS�� �/�#�����tn���S� ҠkX�H���|>WSsٛ)��ދ�T��:� ��AVd2��!z��~��u�e�����G�uUu{��,x��9Op�x��\�상@@+��2��8Ĝ �4�SQ5^f)���k{�|�c5�!Q����1 ?u��d�a=����n�~1d],�BM��v�i�x��|�X�g�KNc'k��I�v�i�vء�ԫ硑H -���E����7���$�ͻs�N��@3�'r���[�d���x��W�;�����t��| ^Uf,��2C�H]'������l�5��.Cs��!���
+K�W����j���� �V�/�Je�C�f�a�! ��u:��頧*��4��44H�ۤ���j)���y��REK�o�Š\��n�-WTs9���� +��]{���� ��4�F����?}��I'\է�e���c�߶5fX|�`E4�JFRա�Y#�,���� �AO���r6��_�M�N��e� O�����nIދE9U�k��ʐ���APQz�㬐4���}5r*�˚�L�a�9-���T�]!hY"�
+�q��j�V:��A&5����Ϟ={�ȑ�&���Sᆌ�R��j��i}-�Q)���b�y8`EE��* 8���ܛ�����>�\���x�.�ìfAC'��~�٢?�6�e�2�=dlw��!�y�ab�E"��K F?A�Fv2���J<�J�J���Ě���v8cф�S�����hk �I�)�N���U�����`^۶m@A,xPeuj ��\��}^��L�`0�^D6;�OA7� W�Bᥛs ;bMHN'��P(d�L8 A<k$���մ���!����!;H ��2yM�K.��>
+�*�A��!
+�����Y^_w��?�[K�����B**Hhć��6o�y�����F��:%�d t��l�����N�V��9�����`T�u>_H2lU��X��LdG����(4!Z I�����A�A"�`V/��A~M$RBK��6���P%R� :�AB* 3X��ۙ3g�?z���pRCFunjjrZmՕUp#��զ�3��,BN�U��J���?�T�B-Y#y3�B2���H��dҔ²��+ڛ��p`��o^�3���D "5���kW�\��?�ؾ�͋� } O��8��Y��Z��Td�H��B�-��׸��mk��壅,X������TJ2��M��Ĵ�jA֙ �u���$ ��ȱV�Yi��o��׭ϒ0#�sŢ�v���W4��_�}G$���$9o" -s��BQ���Z�g=#����N�̑�A�k1]�PVq�:�Dvk��a�h��2�qT�D�2 Uɸ����» ?���P$� ���U��P��`Y�T����4�\_"�f��Vkk�4f��ؚ߮L���Y���F.3/�-m67k�f)��Z�H����t��|��yZ�dC�*�M���9E��Y��u�TJ�@h�rYHA��E��hV�X��c�;fl�C{�� +"�=� ���=�2��y€���B�R3-Q��S ƥ���l* +��kn�MF/C#*'�����HO\]Q������&%�-�䝟x#@ �-��Z-N&��6�2�������(������FF����Ș�UX�
+���+�g2��YUQ�ǁ�6 {��'�t
+l��Z߾��A��*�M-dL���B(ըo i��/_�<O���x)f,+$mg�#2�0�� �B�` �1~0�*�Y% +�b�@�����ڐUU?�U�GR��X~*C�h�nݐ�iLݼ.'���#(���`� ۜpO��ܘZ��墳��P0߼��3=�|�wv�D�#F�ٟ( +ئ��� �.&}:�.�i5C�<9�� +kK+ `-,�N��>�s�f� ܡ��,�"�6i��t.�\��Хɑ��n
+� ��P(��@zAB*�V{��y�}��ӳ^�3�f��~*'��}��S����W)�M��j�2�г\���D�6�Vs��6��J 3�2Ә�P����xx��Q�%x���_�#-M�X,�v�r�<��/"��~����C��ŋSKȖm��;�t���;��F4�@�6�1��յ-���E򇥞�k�����_��q�i�������=���=�'�M�MN�޳�-xy۸�W�z�˗_~��Y�i�<������w<�,J���{K~�Պ�ʯ�]����~`�1ǜs��7��Qx�C�X$�3���F�9k��Kn��������/~x�瑓����c>^�6�!�����g��v��w��?���څ�E��5��5�l�I=zK�{�����s��=w�ݧ����>�� ��3N���QM'LɄ��Y��Hs_X(g=3���k��jҪ�-�G�}x�3�pü^G�W4 c�ٓN��g^tџ[l�f?���H̒+��}�����XKBRr�˯x�����ï�����n�{d���E�]ʨ��\~nѤ��)6�~��_|~��'^x�Ŋ��a��n�{w��q���df����]����>�\�=��4!k���d�ħ�z��K/w;\��@��T,z�Eu������Š #��~��K ��߯�n �p7n�ԧO���6�C�<�X�"X]U���Y������뮻�$�c��='��˗-�ԡ������G�ڵ+�J����=��p(ԩS��o��2\�F�?�"\5sƥ"��Q��2{�b�` �v54m߱k�ŗ|���N;�X�ݧԹS�N;�6�����?��{~����֟oN&'�x�7�p�}Ɣ�W�bB��<q�x,���4�K�{���׵k��Ï�'����� ����[=>�����C۾k��j|��_�s�3϶���2yJ*�d�FZN;m�?�䒙M�{���������)1/��Һ���:uA���?i��>�|����hص�%���_��h�---��rj2��[�rv��_p!d���Vw�ܹK�.W_�~G +�iZ-�+�;����vuG}4
+Ķ�;� +�fF?���n��V�p��;�7����^{�i_ҽs�;n���e��<Z������x��?�p���g�'Mt�x{��y��]ݧ�h,9�E(~���6Dz���u���>�|}}=&�֦�c�R�K/� \Ϋ��݆a�����sw*{�w:v�֥s�_���LX����??�C�!�ǟ,r�=��k�.��;w�x�ְ��++�G��{W#�[�L?����SN��Bs`���^ݲy}<Q2�҉={��t�q6�t�M7o۴q�Ƶ����[�s{tɒ�d"�l~�z�؅~�a���]�y�s%mD���&��!�ܤ�47m(^z��~ω7������ +Ɨ_�t��[W�0��0�ڼj��p`�MƖ��̩u�����ƫ����o���Yo|�(�ذ���h�}}��<�s��Ƃ�6��{ٲ�c�9#G]�e��ؤ�j��F�ш����wˍ��0�֭3x�A�������ʽ9���?~�c�J�"|�ߟ^�j�q�푡�<�q���1ݰ;���[�G�]ZWu����u����Fl�q���UN���?�u�p��_�wl5�z�h��|Is]�Q_}����^��ُ�x��j�Q]=��'7��ָ�O;� +r�
+c�:��ݹ�>��o�����:m�j�_�����k�c����v�Ƣύ��i[4��9�2|ʜ9�?zW���dI$�6��w6�Rrljh�47u���;����M���g�jn�<��v���9��K��g�wѲ�Vo۾�5��656�8�ய�1����r��oر|�*�ӿ���u��檫w�jx���_�z����UW�vh�/�\�uG���s��ׯ[ͯ/�[kMm۴=g��;w�Z�nKk*��c��^��?n�8f� �F�K�6}����?�H�����q�u������+�m߽n݆�];�whw���S��3ξ�ϳ��(���>ny�]6����7lشc{������/��6�N}�����DN�9�7޺mWl�Ï����{�nڵ}����6��/�����v�8n��y/E"�훷t��Y�ݲ;�UW��>�U߬���S_.�z��Ɔ�{0�޵��o}��h��ر��z�_w4�f?:��1�x��H�su�w_}s�� +w���u�644<��<�ݽr͆�xj��x2��5���S�ӑ�����ܺMm�9��3p �[��ү��$��c�-���k/G[vlZ�}��N[ؼn�*��1�g6m߽f�:L��?�J<���ܣ/.[�b������������m͇����n؎��&\��w>��k,����M9���ٹ�~\�U2o޲mwK�����V%���G��U8�����;��уv���� �̾{��ׯ_E�~��ǍM{�v���ۯ�����ک�\���vok8�s������;O;���o�+ٲ�3Na�|��� +�7�:����u�?�䋀���ܴn��.]�9-�_,}��7���vD�}�Y�=����aO�w��mo���뮙8~Lss�'�4x(*��iN:��H*�r��]M-�؀����/?檪J�j*�����b3�߽,��6�z�r�m�|�h��{�C}�n4���}����O=���];3J&Kh9��ry��[��t�Mg?>�GzqЀ3�O�k%��� �P�Ѽ�u�Y�ed�->_Mc���Hj.q�MW��
+I�Uk��X�21�����r�Բ'A�_ƭM�+;c���t�g�[�=�2봺�]]��%ۖ,�.�HD��Z ����������Z�l��M$���u�'(5�b���.�މ�Gơv�)Ǽ��\���flب�څ�&s�W�TX!���Џt�kv$"���&wqM��.�k��*iO����C�A����ە�VV��M��2bL�PX6�k �ݵS�t���XIJZ��w۶Y�qM�y�^�u1�l���� ;�}GwU +�s�\0�[,�
+C����eֻ{ d���.[Z�>t3|ҤI~o`�7˂�Puu���ڭs a����Ǝ���[�m�;����Ú� ?��ͷ�#1�
+� +3р��'�?�>���/<�b��]�x���W^ye�С�������29�E��t�2��/��O�Ե������G��+�Hi}��پm�SO=�j:V�/�{~��thW��
+U7������k���w~��];c���+�����jg̘!\Z�H����k�k�t���ӧOFN����g��&�W��SN�6m^&<�A�Kֺ�0&C���Х���aD�j�El��$k>�C�u�{�n,)OlM�4x�X$��#�0��D4`"�x��*t�^=1)�Hnټk��� 6�-�?!
+��% +Q�֥+t�s��� ������}�~�nW[ۮ��&��x<Z
+F�#d����k��l�o۱���6e��O���`׮�@�a��3�@�a�'�饗Z�DP�0��nعdɒ���wx&���'�xjĈ�ֻt�D!n��(��d{륿�C�#�������+~X����R���N:묳���e߸\�7�|s֬Y�[%Z@t���ڵC)n����o`1IW�Z��-������:���a֟/� o�30�g�f�)BT���/>����T�1!,��e˖�5j�����UUzA���3-�{��W^Y�r�*j{L���{��k~�;&/F�P���ceH��8T����c�7n�� �{����#���<�t='O�>� ���t�S�܍3�[מvڨ0-�+ +�|����u���E�����U�G���T��Aݳi�|�䫯���C�x�I�nn-'�-�
+F�< �!0��H��a�`%t%�%,��,x$7�].��J'БsX�U�D�Օ� +� �ϼ��ك�̳OQ9Y����v�ԒLc�%�E�s55�Y +�����J*���\'ىlaFUVz>x�xoΜ���\9�������T:��⮵������9��T^*��{��m;��<�GOlC�i^/'N'l�_0�Jx�U�z,"��_�Þx��mw�o.��ܯ,x}ˆ���3��X��X��BUǔ��j#�׬��Hg��抬#�B&�i�55�w�ߥT��8a���lXrp�2�p2L�t��NrZ�n�%�h}q� ���;���N�b�%��3ޘ����rb���g��ĭ�n�b�;n��_}�5 l�q%�6#_Bt�����ǿ�1�w�=��=mI'��].H +F%�JF���Q#Fv���3�p��i���8�2(� +��濺��~�z��)�Oco��L�>����ֻn��e�I�Z6���װ�ak#E3-B8��?�Z,�J9x���p"���O漀H���?u��m�v����TFW�c8� �*+�x;UC�*&��i���c +C�W���I��ݻ���/���c>���Ι|#*
+2��H�z"
+��<i2� Bݸ�=�O�555��y�]U�g"a����T��O�9 �3qℓN= ���GC�͙��w?�}�ǃ�
+������®��0bb���)�w�Ϛ���L��PIaN5���:Rɔ�)� ��?��)S:��A�H��������&U�u�x�)U� v^� b@;��c�9f���t��g���\��Pv�܆����ƂLQ�Y�wB8�l8�Ə7`بS'M���O�xB���=2w�Q��x�7�&��<��1�@!n!��5s�ڵm��s��ɓ?��S�������Σ��Ne�:Э{'�:�� �Q2%>�N�r;�"'�Q44�_X��IJ�,544��7�.���Z�6|d=�s���%�»��L��u��P��Fi�j����j�^�耏?�:�*Qڗ_�9��~�0Avb�0�oټ���:�YIQ�bL�cu�H-��r[��&@+֮)dR���֥SOb.5�(|A�DBڴQ!x1���-�8ܾ�Rx)��,1yX'�0n�Ʀ\�E�1�އ +`NQC"���D�I]�v߹s���(�3O~ީ�p�}�f����䴴uk�S���Β˟{��g:���K��/�2�S���f �n��DF2�X�rDd�|�x�B��db0���^��d[�l[C�)�e��CE��/�cڣ����&��+���_~�k�˯��0�1L��O?�� t����AqiE��F`��� P f5܊ϔ)S��w�y�g)dѢE� ��+� +�)%O�b���\��'�x�-�����x<N��#�ׯ{m.f�M�? +��UW]5~�|VHm�o�v2�������;�o߾m/�@�j�m, H��G�y5���o��5�\�ƃ�΋.\��֭[��ܥK��B�uR��_~}�e�chۺm3�d82АW`�����E���g�D[�鴡-7P>M�4�ʇ�N�x��kV�Ԃ� �$j��yGP�o�'�/A(�a���0_p���e˾�������=:CD�:�/,pժ���Țw� IDAT�eKU>�W���鈗^~�o�~}��λo�|�ڽ��� +�eϳ8d� �D&�ga�Т����w�=�X�Ƈz�C�tq?�ٻwo�g\�((��5����壎:���
+}��`N�*Q��%��=蠃P�y�^���z���P2�n ~
+�(3�Ec1�w�n�F�8g�.C��@'�a�z�h��Yz������$����c,��&
+Q]�a#z��yϽw3�hB�ڷo��ܥ㫯�z��g�յ;���W,�f �KW�+Z[�h�rD�0�3�9y��Iyt���뿽�����S{��ݺ��4r�s��}찙�\Iܷ߇��`:)�(v��F1Ӟ��N��4hh��N�z��w]v�e��R���%���s/:��/�t��;#�44.7<�g���5����K�F�<}�4����XU\`REU8
+ܡ^�~�|&L���4+j��cU�wŐ2Jn��)� <i��)�6��1�\��_��.�ALue�>rጙ�y֙�N����H\p��7ͺ���;u�f\z�5�^5x�y/�Pp��x��i�/9�)g���K�Ųk�νഃ�X�A�����W�2i�S�������o �,U�>b�Ghr�lQ0���>$�qY�������"X��}�,c:��Ç�ȣ�(��������w�t��vW��r�� ��x�M��a�|�o��<�tu(HC���w�4�E�0��}�SWW�{�{�9~��F�ݡ���_=�ȣ�ĴK�O�dZ׮�1�?��C_.Y�{gȐ! �n�;?��c4���2��j��̙CX ���+W�<�Wo���W_���+h�J�w�J���g�s�W�̽��ދbD[B� s��>��k�N=��N�z��_�����u[���@CM�:���3�P�+�E@�S/��靻uå����7m\�S8l�2B��Ɔn=��v���r{(\�f��J�DD�Z�@�C���c}�]���� /�� �_h���+�dyt����Ӭ.]b��P�Q���9}�tTuV�������N�2�S��@��\ `���{q�I'�PQQu�Y�|��{�x�v�g�}������u�\o���_r1Ն�a
+�����H ��%�,�0��𡃫*+�e0�{]n�l2������?>a��Ν;&������ ڬ����Eu��S}�Gy��?a�b�2�-�����8�?^;��/ՠ��E��c:��uc���;Ǐ��_<�
+�q�]P��x�)�=�T_߹c��G���^����f�4 +�3bY��u��N^�d"
+� �K�0��4V�@�`v�r�dBv��� �ubwX�Q�J�� �[��8[*�W���n)؟ �RU-l�L�a*55I�
+ ��� �d��VXl��ڶ�5�� �p�l�� ���T�� +��;�Y����'�b��l�P k�P�ۤd��d��ԲP ��Js�Ѕ��>�M�! ���L��'�#:�aQ�2����HR�+���Qj��=Qɑ'�SJ$)ߨ�255�a�ʮ��c!%�_56IŨ�`�D$��TTVj_I`��
+�]���u�^��7�Hr/�$�%�.����5��נ�$צi(=UV-5���h�4&+v3ȟ�5�o�B�D2��> +�D��,� +�;ڵ�CI��� �REE�*���23? ��x����/HE��DЉI3��-�~bU �M�e���b�C�G�0��?�!��dqX�A��K�=��ફ�ɳ�A�P�n�=��VT��Ģ��� ]77��}�0�q��`&hy6�X @G�����[ ߁0�ٍ�z��O�H���l: �VB5�]A��� _j�s�PԵ�`0�HDRg��Z�8T�C?��}n��yD��_}M��4�e� p���o��Z�׃���_6'4Jb�D�*��
+�mDћ١@����a� h��BN'\(>�c%ꆸj8$�]\�`�0,����`{B�e�Y�N�H`B+��X����buP؎f|."@ �b�Yü[��MD�
+�Jgn:L3�.+(�E�'��N;K�]� 7;�l�5��t&�2&]i�������q��&�y/����ֿ(ѦPЯ(y6�bw~�A@@��Zմ���6�t*"��(&4�٧�%�Ve۳���mu�5�TT =���� I��l|z�=�a/!�D��Z�Ѡ��sQuv7������۴uW���EZ��>����V]���I�Jz=.���(XD�T����_J�6iJa/ +&gb���t8�X�Sq:H��B^"�K�rl@�(���� ��<���EW^q���f�ۓ�ry\"k<n?�7xQZn�l�α�b��o�M0�Sك(v��H?��!����6v����6A���~]j�^2s�cс��t��PEa�����$�4�ĶW�Td�b:ލPL�A�Y�2r��b��d�ND��PC��y��'�Xo�}@@6�c�l7��HO��M":�Z��I�a5�=��%1�[�~��Y4�FA'�6���Ll��2jii$ ��)���W�5e���v�����W�p��z��w+[�c_��Φ]�p��7+��$m��w�sMֵL�\��<X@"ܩ�TZf>{�bWF^���g(We���$�P���*�me�y��"1��F�WU���#��
+0���XKeM��tx�
+���m��ٱ8��t4<��b���e�ܞx���"�d*��H<�f�����T2�燀d�Gp�������La�0�uX0�&j������=�
+,&3����$���QC,�u��|��g)��-v�,+�z�~-͍8R�H�0�X�n�~��?f��E��0�Gcͥ!w�z���T4h9-3�qe0�0t0��N�t+‘�$,�\��N�5%g�z��Z�Hh7�d�ᓐwb�D����F���%�$��?J�PCY��wy�Ѣb?%Ѫv�8!���y���t92I���l'���(&�a��
+���x �����A���",
+ѱ� +�fG'!I�0#$1U�-E��ǯ��wƶ�1��$hA��R��b͛����s�R�<ܳ����������FQ��"'�s�t.�=�a�N�F���h��=x�혌�|iBwq�ӘDд'WHc�
+�8s�|Pr������&辦���I +_e*�`�ެ*�3bG T�9�h/�txѿ�1a��� *�d��H���65��(55?*��[ �= ����cd>����f���bbw�xa��b��a_".�9���}@�Ҧ)+Q`5�.KF1v8\���[�i�A��� ��VX���� �tJɜ� x`�h�@����T�b�?djj��T��: D㥀?6�cs��}��,*,�vk��aԣ�`����
+Z��/�I-�,{{�D�<�,f��n΂ߐ�>T��4� F� \������l/�R �aDf[*�2 �W�]��9&^��(:'򱥒���%V:J��F��V%̑ހ��ClB.'{�4_��v�)$��R�DžK;�XV\b���Be��]��œ� +�|��fP�e���Q��Q _a�/1 ����}�7[�������X� +,���7���(d���}�"[T���{���^T��p�Q8;:� ��ϐ���P@�m�l�W�\ �l&�MLG�ijsT�,��Ɩp�/
+C���:��_�vm��,�v� �&K����� Pń��D6A%��i5�C����*��A�d�B�Ք����s�Q�pb�ۙg9�z^� +�iE��u���M�U�-��щ���������L6;�k�
+�4E[��Y5ಧD���
+�5fhɡ���4:&��(1�1j"����X�%O��.r�����7�n�,����:�dY� +攗~W� �����
+�� ��Y!�`g]d��́�w��QXݑC��,�N;��a3�.G$�bw<L"�e����X,�����M�zCX�r�X�<��fA&�)x5853����9��ycITX�����P�uv}������No1���e��$f@ϛك��I�I�B3�h��Աk���7� 0€���vJFbR�G���c���!����DN��
+j+��sЗ�G_k��R�Գ�����ـ\�A�x�Y��Ԁq�5G�c�&"��ڇ��c�*iU2r� nָ�k�����6d�z<lӜN��g|^g1�x=½� ��A0�خ�B�eUM�TWy �P����~�L��k�`��Iǽ訆���5���"<�QZ��b{���,*l"�Y���`�ul�D��~m���1�� ��ڰ�ad�YV���y8���|2��1)�%r�<������y\f�x<+{tu�m�� +d�4aI��D�W>˸�a��dgX��g��p؝J�R�͒3[�t:�8�"��bl;���I�c[a5e7G.��'0B�.�Ǥ�6�`�vF�+x����T*�w�#��֌H�Ul�e�ö��#�ᔇ�P��UCa6Gr8E!���� ���0����*\��`�F�$©!�V`y0��h��08��2D9|�:�U�|~ʡ�n����pi��iU��8Ђ�ALAQ�N\Vc�x�)n�D�d+ ���T>�g����,�9� +Z��Z��d�~:���/�*�0��wJ�����"+܆�V "���
+!�փE�⌒���%c>?��M��V� {�ْ�"/�0DK���߅ ��5��RUQ +A%b�
+uZab�?lpL�C�l��8IDD�7 sZ�ە*+*2)�׾`+=�:����mT�E4����C��gn�z�rnx=>�b, +�BV;~"�D\
+4��Ō)��;=�9�8�&�0`_?�NTV��5�
+VP"����t�|i`��M#�Bˡ*l`/�I�c�e�5�Z,Kt��|��h:�l{�� ����@�"4��B@$���ڈ<-g�!��X�B �/п*]c&t �Rh��f� �U�d�i\�P�HD�sv�؁XX���a�<୨��zo��K�.�(ػhĮ�&F�R�ݠl1�D_��&ƈ%�F%v�� *�(X�p빧�9��]�ϙ{h>��� ^g>�Þ={vY3�7k���Z|��"��I����[Ȋ��!<0��`-�k�x:J�YA�7��²�^?��}�+�l�bJ��X�5�j� +|��ؽ���a0�������R��j�@�r�e�D���p�e8M���P�NG^S��O�,@;�l�Ƹy*qa�Q0 M���������u�-j�@�+�`˪lM�Faco/db�� +�����7�*f���(�Jxj`�'�sv���:���<�K�u%<�,f����gu �C"ˋ)ND�����IX��Ռ�թ4�.�|�ƫ�LEe�d� "#*G􎬝mݐ�&M�Ѓu���J�0JEu(���@ ��e�a}�~��5� +n��O$3�Cl�\B6LO�G�k� �Ps&��B�H���>(dSB<M�4��`�'����t�vձ����y!~CR���I�6��5g�*�1�.��eMP̲����� +������Ũ~Q�������X��-΃]`"/{�zX�yK9 +Y)���RS_,
+�=Qx$>�7Y�z�\Z���$�+6>�fؕEy�ϖΦ�d˻�'(q6��k 0��!������Pv&c
+���
+Y�;�������2�H��N�\<"Y}�S��0e2|Kp鸖`=�H���r�b��x�H���-^�د�v�U����E�E>c��RCs}C��N�8�0�X)�o��xCZ٘�BQf�ρ�ƈ0����˥#˲�o���>j���t�U�*-�i�5��DQ�W �� ßג�}(��' 0�W�^1x� Z��������N�2M�d�G�� ��pQMYc��>�x9`.�z���hg��5ZD�=~<S���4ҁ���Ď�����E��� �a!�u��x���[uԲm�{<�k��l.!>��n�XWw�!,�C$%�+W��/�&� +�3D͘l�.�i^G~��l�_�}� l�����{ѣ�gT����B0�R������d̨wV=����F�n�&>��n��3�/�EhLNWw��Ab]�A?��m��/2OZ�}���p��7��]>��uB��I����"/R햦� �.ʬ`��n���\ �f�� Ě��ʙ*� +�3�`=�"�\�f��tR|ðQ��bCB�/�X �8e��b8LB̤��`�ky�Y�)0�@� ߆9 �P��;x68��!&�d���"�u�=b�}xL�ٍ��t2���#�#B��T�:0�&MͰ�]�=���6 +L�L ,���@?y��J'�(Ajy
+b���P��p�x[ᅄ�ee�� �ME��{�������[�+�9�J�"���u���]h^�M��Ӕ��o橊�6au�X��b�^����֒���JF�8j7�ω"d��x�� M`7�J��oJ�+.d_�.D�G&���J���G%� +�x)��Q��d� ,'`й'�öt^L���Bv�]C��t�m����{a�`�1n�CJ�� ���5]W���:I�@X�@16}{B�+I���Ls�&����~f1T��w"e��0G��@�\#|���=dB$ +��%� ��:P�������H�kA +��R������Q�`!�D��iN���:q��e��[)6�Q�Н7L��� �Q���D�U$T��\DEO�%�w� x��v:� SN�:�`~�~�䭃�a��.�`^0$$�*n��%'�� +�2�2Wx���c:(5 ����q�S�mV���ZSh����\���|��ʢ�佬]ɫ����C��|�o��|����z�9F��C���n2NE���7Z� �*GN��z��J�Ҋ~��ɉ���[��&��\�]�;���7n�G�+���d�e%Wu���V��QWkﮔ���Ӕ4.mp�N�֫�z�Suߍ�m�2+�V l��T_}
+��}mUi���ԩʋ�K�p����W�U�^��JOjH���5T�Zin�k�~���
+�S�M ~q/��o굔ڪ�1<�����7=��c�.5��SX��/��Y{�^g�R����P^n�c�qQ�6_�^��Z^�� V���1��K����(_)C�QT��g��R�12��m<��X6jr���vkG��k�nr��<㋣���n��&L
+|�)��_�#0)`R���֧���[��f�&L
+�'
+�(ٟ��9�&�>L���45k4)`R�?Q�D���4ͱ�0)��)`��֧�Y�I��&J���i�Ť�I��O%�>M�M
+��O0Q�?=Ms,&L
+l}
+�(��ij�hR��@������i�c1)`R`�S�DɭOS�F�&�L��OO��I�[���[Q��Q�竪S��w�j��N��,Rޖj�n6]{�f �e�w>�>�E:_�#�W{�7��r Ke�F���s�p��S�DU\cI +[(Y�3iR����Aq�� ������Ɖ��fV��hŃm��7c�{�4����ǎR�� �bOG�V���5���P5%L�W s��n�S�SU�Ks
+w��I��?�D�)<���J�]�DǯJ���QL�U���@P����R�ִ��,U���RM���sl��) $�o/no�� �&@5�!S[<��!I�S��A�T"��a�f��_�X�!?�R��q����
+*T��U.%}��i�3*C�ѡ�|��@�:���*�pZ۔ѓ�[A��3=�r�W�/˹|E5�
+i6��oD���R���0L
+�ئ)�2U��ˤ׹��z�UX�j"�d"� q�D�
+f�HA��w���+�:6�"pM�c�h�&�D|E8S=Q5�j�jk��kN��U���zI>� e�Fu�\����蛁�F¨nQ������r�t ���r���~j��0)��Q�
+�@+,+�88�J�2}>�"�Q,PC� �dA���q�u�R�
+���W`Bࣺ��؇;�P�-U�(SM��8�뼁>� ���Wo��/���_���=��z�T����}G_��T
+K�:��m�����l
+bB +~k��F3eR���6I�U���Grǯ� �ΙB5}��ܻ� IDATx'em��lji#�!��Lr�x��Q (�����V� Ȣ� ��B:Y��bP���3�ɪ�6����GmKdT�&T�#V����R�ΨVpS� �s��=!ǚC��|�T�W$�k�f\�����q�b�����L�0)� +Q@M�
+"Te�
+y�������E��b� ��� �^�V���C�4cL
+ª�adW�����B���
+�QZ�2�e*�Uy7u��ʨVeJU��W�Da�A�J7*un�j�\�/$�F�KoQ�j�����n����?nFR��8�H�ښ�̤I��D����d�}V[ +LDV�����:�w��Lfr�@����8�߿n���n�LTe�Q�KeJ� W���OrT���)LQ`!]�2}J�� +1ѨL���v�π���$⨎�Rg���n����X�XM�z�
+��
+U�&U?��d��W��JI�T*U�o�Y9�S���RU���I��,d�� 2�e�ȴG���C�D`Q�J~ V�sy���Z��������O?���B�y<�H0�
+��R +�����,B= x���nT�H�ه(5���SL�4ڔ��b���F�E���G�K}}ӹ<Ul�ªd%K���6ڬ�J
+|��Ui��k��<1)`R`����a��v.��� ��Z���Œ�'����~�����+q��,v�ˮeRo�9e{�O~��ֶA6��g� ���Ţ�χr��N���.!���R�dw:Y���x����u]����9��M�r����{����W�f|NW*������d�n��!]-��E���pX��$����ΧbO]�7�D���-VG2� ��T�j'4=���h�s������-�M6��j��>RW����n1�EB�Z^+���Ħ���`������E标y/�-��e�EF�!�{�\��!����8�6G�7p��.�٭�MD���+bvȤ�ל,�u�J'��?�����i�)?���[�e�`�mI����-x��{�'+ח�.��j�-�BPj��˦3ł��EK�Pt�l-��,u���Q) �G&����z��y#���b��J��l&�Ҭ�G�9zLo<h�Y�.��+�}�R�j�V +r9p�Ǔa��R֜^:���YP,_(y��b!���Ke{:��D�;ַ�\N��Ú��}�9�L���O���U!`�T0uz(F;������Z-.�-�J� i6��������t�7��SO<uء�x��<�_,E��-�2�9�0邡�aR����L[Y !E�V���)Y�E˲��cv����Z�`���G3�i�ʎ� +��Qtx��l�7�Ig� k�e ����; 2d��ѧ�v�ʕ�\�J�����v�����t$�������O�}l/�`I}W&���?y��u6��� `�^*�b�6�?�V=����۝�{Z6F���%��"���h��.7�|>x�d"��{́��hO׀����'!�L��:m���0�6�˗=�>��F�8b�D"�䰀/�+��I��t:r�x<nu����D4q�?���i��<��@���Z�.�� b
+��ٹw[~9̾�0)@I���|Wm˶�Ś+�WwE;3ڵ7�r��yy��xbuW�3/�#�:ణs6�'��k����Xk
+yP���_|������GG������r�]N� �!k���o�~uz܃ +b�c���؝�iԓ�'�1� �q�n`���c�������怛�f3R���7�ɰr��b��dɇ�'LH����p�z����n��A���X�x��w����j�{}!�Õ�������X��l��҉L*5n��6_���駟�C�V��O6��"u�������u ��p�p�C��oDL0r�XAC��Og ‹@8b�;S���A�-4)`R`���D/Q��J6�ؔ��Vֱ�bi��?�⬇<[*|�r���Y�>�8_Ck��͖�No�[���X����Ç2�>R�H�5���W���>���O�Gc�X��iWrK�b�
+�"�ݥ�^���v�G�㩧�$����z�t"�v���;n�v��������^�񲓿��������~'������S�ƍ��/w�3���<�kѮ��W��a��;�|�-�����y�,^�x��oljy��'Y�/^��)�|���e������a}�����'�|�瞋�П�x+��~r��776N�0a֬Y�|�ɷN:iPۀ��W�̳!�ux�?&c ��n�^ߌ[o��ۣ]�EKy�O�<���1��m��0�gR�����MT/���
+��-���y�k�ƌ�xɢ�n��wݮYˇu ��~(Jo��j6��w~�������:u�ʕ��N��dA +~�]���-\����C����KN�u �-�y���˖}t�]w�$a� �)��?t� +7���N�>y�dv��s��A8 ��N��w��W_M��_8�o���s�=w��/�\�*�^x��x�
+q��`��zc�s����Ï|ࡿ�f� +Ӯ�9�#��;�?CZz���Ͽ�B����� �﮿���o�O|饗W�\�,򨣎��]�r��ٳw�i'�w�M�[�t��3n�ͯ��'�Z6��g�|)/y�>{_��멓�v��?��CZj��&L
+l��-�t��Ă�tv�g%�����tp���������׌;z���`S(��X[��E6�/G��3z���ǏG +�p�BV�.7
+�b$Bx�`�nu�Y�utA7�DXe���� .��J`���o?t� + +M�����r����/�gժU +��!~a6�S���s�ȑp� +�MV��瞃DN
+R_r�e��:'����q��֔)S�Z���{�G}tذa{�O2�u9��Q���n�}���mm5-�D�c����].�Ev��:4�/�z��������)���4 �8�����b���%E��J�;��a��!��w�������g�y6rU�����avϤ�I�$�`��s %�X���9��H��T���w���o�t\�V
+�}��vJ�������wG�~aAY���Kg ���������m��8��XJZ*�pڱ�A��؇ ����q%1v��o��C�@���x��X<�CL&J��� �|�C' +4p�]v��c���/�օ�0���N�r�n&�f8+�[�p��-���LKK�'+}�{�e�N6��m�w�y����y���soO���Q��/
+p� �^` '�b9�͡�y���v�m�ww�GR�����������rL>
+K��<����f�q�K ̷Ф�I�m�6�'g� �V̺0�C�\��ˆ��:w�9�in�?�p�����?Fo?t��ƀ��q�Ѫ��pI��aެ�|&�q;���D����c�S�����%٤�����'V�-[,a+�K��Ţ�QJ�R�H�؝w��Jd�^yuΛo�JE{!�z��]�o��Î<lҡ߈��� �H�+��uk׭��Ƃ�S/��'u�<>��M���‘G}��� ��Gf������i@6��7��-�|:���˅�x䰣���\<�(���iqzaN��hU�7g:�Ǝ}�-3P�'z��d⑙�~���o]G�Â�P� \N�mC{3�i���|��O���WM�|66F�b_o�:�����I��1dg�����ۭu���6rp}[�����s�<�أ�l���<��1`ג=a�3�N��F]8���N��v?�ɧ��˽w�o���_~��#�9lD(r�]iM�a�~����^m\��i�|�_�w���iWF�|�m��i$�6��‹/z��G�a,X��#ژ�w�}�'L��.�<��T:��y���>��}���;��{�}�9��;�:x��ǟx�޿�cr�t:P�c�]�onA���~_���r��/�d�?_D��w�.��WW� �6mڷ��3�8��www��i��=����<;t����8f�믟}�ٯ�>�n��kV���o���E_�;�G��]q����S�??�����(�Sp�_�w��I�����w�� l�a�]�;s%{�h���w�7&�����%t ��m�d2=���֭�b�b*����y�X4��4�V6�d��+�r!�ˤ���� +۬,�=^���2=��%|>�����4����hnn,�M��k�|^�/��s����&�H�r��R��y`o"���aM�����SV�^w"� �}a
+k��?��tY��/�D<�*;�C�R,��~_���F�8x�l6�K���I�P((�'�/��溺0"���kY���"�|ml{�<^ +�I�T(L�c�����������rʩ�z8M��ߩϮ���Ҙ�4)𵢀uu{�Z69��xlV�fq�����/yz�Kk:�����.[IK[�%� f��n��G9q�}J�L�Jy-��.��8�.�Z�Mx��.�� �b�i�7�2� +R��)3��;��]�l/L�rnW �d:��(�X<B�懧�8/֭��@�H�2X�+'d��W�twa�%Ln�H����Og��0�J��L�6�cNG.�̴�慭�%1�:��X�#��u:O�@bFzHߐN�1>�Qa546wE19r�"��� b���eK��x��e�PLE{{ �@����_�)g�+G�ʎ.�����W�:
+V���[�v}{w/ГG�hE�G� �W�9$�X���{����"��B ������m'[�o��y�h*���GG���e(���.`7O��^��#RF�k��$zD2X,*v���T�q�J�J�|��g5
+p�:���QT̡��%3�s���A�*���I�l�$a���&b��p;���ʅ=3����S�N'���g�Vl�]ڂuEe���!��%�oF������^FA=j#v�۝�p���.�,�q�ʽ6f�M
+|�(`]�Ս
+��\E"�3�6g"��B�D&�;���2�A`o��V �� .7`��:h�d��ۅ�hC� ����j)�C.�f6�Z�C!{{��S�X0�)ng���lF�ɈIu�4���p���/�D0�
+��&X��Ab��|9���X,J���<��e�G���Jg3�2��{.6e�� �-�O{�{e�>W���8��\��=��%�2�}�5( tr�����TT����k�{�W�`7=�5g��as��}{Ww](�F���5z�̡��jQ�����Z.��FǠPR���p~cq���� �c6�p�i�t�>��������@���UP�����@2���Bn�sp�H�ZY�~d�-�3���o`���!��!��~(Cn_)Z���8E�L��tɺ�iI��� +� +��R}C����ᠸ�P@�ӷ;:Q�S��̒�=|Xg�`'��n򂆁'{ Z�lI�SXV��.��2��E�:����|Z�f@����C�Qb�
+"��ʆ>J��}�kd<А�s�Dɯ֜1{�u��u]WT�H��O���'_��\��r�,�A�|1��6j�Ɣ�1�]��� &��q���$�� K9�=��k��e;$�mѬ��s�A�O�O/�iM�HC����xcc#��D &ؤ� �C8\��E
+�-�K���O7%�>}1.��r���S K贲��כ���i�r��;�ob2*+q�|�cD��b�P!/���-�Ё�����*�2�N�j�<V�� +�d'CE(������� +����O7�}N~�^=s�&�"�"z�窸�o��� j�VHCvVt��(���v�t�:@*]X-����ɬ^Ue�S��?�!�T��Q�;�������X#ђ2���fr���u�i=��Ѝ����0X��jWl饤(�<��@�/�s�y�I��_�?2�Z#Ȫ�
+(R�?͉��jɍ��2��0)�eP�QEF��2YuDא����b���E����6�<� Kf �l`4� [��"KXw�Ђɬ��\x�q����k����Co��� +��em!�VM�n�0��n��M�2sL
+���%q��)0�Ã���Ĝ�E+�K2��q2����[� +�>|dw"+_�\H�Z6�k\20�(e\R9�0J~~��{ӹ�-�0w���j�����tn�z7�^m�I���I7Ȥ]� �a�[�yŤ�I��"W�י,Y��+
+B4��<�JN����\ѡSl���i��� "fT0���0�_��5(H �"��ktC��~����V���赥V���$�i�6)bf�0)���8iXT8#�8�7���}+��2{>��R,q�c��lf,c�b)`$����W���/�U +����@Ո�U�������H��*�NU�FurJ��i$6i�{�nr�/���QU2��e��Q'6V?�"��L�0)��Q@�EAduݭ��_��J@,܂�X���`�ղɸ����m'`��풭9��ӵ7�"�*� �N���%��Ö�ȯ��b�6�R�x�2Dn�z��c� DV�$��L�AI�л����6��F)3aR���׏�}YKt�
+���L����%�`'6��>걻��u}8�ͦ1?t���2n`*Yt� W�'R % (RK��$��8<��!i���N���L}�O�����4��f�_ޠ���'��Rɖp���j�� m3ej�z��I��$�cDٷ�tvv=��S�~��G0 +�vg�3��c��'0|�T��<���Ӂ�Tט�MV����FpAx5�����E$HZ�c(^O�I�J�+�+Q���ҡ[
+b�#H�4&2"���W�IU�Q%�� ��H�9�G�˓%%�+�(7�iZ�DR-f�H��7���E/�*�/����
+�UYï��Fo�����V>ZՎU(S=5�7)`R����6�e�"Xd� + e�\,�?�Ԅ���>w2F��\A,�KEd��Rą�?_~��_8�?���x �J@1L��\&hd�N��a9��5���q���.�5P!�.kx8w�����`�y��h��QDL%c� �$ļ�݊�"V�H)�2ɴ/J�4�,���W�4o?�e�ۃ��X��͐��NK�Fc�TvI�k +%{цۊ� ou��x�A�t�&L�(��(Z� �lә8j{b���i�1
+�����E ތl�0����<�����(Ŝ�&�w�g��r��4�9.�p�۷1 ��PKS�7lp�r&�|�gO�։�;zf�{��#���Z.��I���sYB������mn�7�f&L
+�P�›T���i4׸9j4���WC4.�جw��<��DJ�'�]d��[xL6S�Vv�4�u�^{�E�P�E�ͶAy-�P�rӯ���;�8`�A0b@p<h.�����x{z�ͭФ����L`![A����^�����Mt���t(�Eg^#*��N�⌄ +98���[(�zl������OƨvѰ�GxZ��C�==����%&Rl(�V����p8R0�9vڭ 9�.��#��ω�zs-zo��a#��ͽ��-�Q?�i+#4c��Q�H�+W��쒟������?��<u�
+�>3(v����+[�l}��<;3iR����A�
+J�*Z�[ ��*`��6}A�'��pP��|��� ��1����k�tی>XL�,�����%�Q2Ǎ{x���>Z���7\�QG��(�Ӂ�Z�ЂFnq/T�����w�k?^��:;�YPÝ�*�Q�����BЛl�H܁@��υ�?o�`D��o.K%�5s{]ݱ֖�h��"���/�L�Fv�ɢ����`c��6D��|)pk�w �\��&z��.��EkQ���vw7!a�ŀ������ؔ�Qe~���=�<����8����܉7�2���5�" +���r��KP��M4���~�Ti�]��;�+�9_n==�_�Ka�aR��@ +$�"�LH��%u�P�|��d�����Ё�.x��4e�g�ɽ���8s�g��::��va)=���Z"� A����<����~�ۧ}���k�=猇�[Ks��f��l�/��6��C�l�J"^�Z�沟\1j䘑#Fwwt�S�����L>=w�i��a�7��Es;� IDAT�Rk�>7k�q�ӎ;tu�g��c�?>��!6������͟����������� +z�@����w�;vTCc����l���o����}��z�_s������6[���{m������V�\�?���8G�CG �羿´��as��%K���q綁v�0~嚕��}���`�C��o��>\
+D"�` +�����֋�^��Ï��Á瞛u�ԟ�����!��y�0)��R@��Ң�J�i�#&�u��8�
+2���j�
+���nuk^�Vd��s��y睹s��x��h2r��s��䒋W|���9��p� �xj����s�����[�á7^{m�u׾1o�!M��~�nm��k&_0��K/u{=o�����|�� ߜ���p��X_w���|�qO>����{xX w�;j<x�#�<��5�����$f�h\�w����ҥf�ڐaï���=�Ι���{�tӍ<�7�~c��ׯ��ڿ�so��[�����.�pʣ?������Β�>��Gf>����?��SϮ��&��O?m/n��z8��^�����ٽ��x�� Ţ�<�W^���f��ƦH(�z���W._����|�(~3�d�����'��w�uڴ_�K�~>?�<V�J�P=j���<L
+��2) +n0N`N?H����>И�d"�C.�zF>��9�`&��)�T��3�:�,䒧���p(�‹σ���;︃�: g�y��y�=�,{��X�?�ȣk֬�馛^x�s_)������ӟ^���P��ׯ���ێ<��q;����O�6$BU���L3��<й�߷h?2,�Y��"�y��Aөlۀ�P 0f��lN�'��崺���a�]9���ۃ�@0{�u�N�u�q;�A�������=��8�CҮ��Lg�r�8�ţ�sQ�#2th��B~vv���Qn=����� +CG Պ9�3"���o�;/>}����ON��� ��|���Y���%�?L��v�}o%?�E{�E�ū�`��0)�eP@�n��:8�Q�p
+���u�Ja�G��
+��S��M����T67s��N�倃']��K� ގ=��w�I'tGcg�s�a9=~�HZ�]�t�c[��k����x����^����gV,_�Ǜo�x��{�qā���2 ���ѹ�\~�7��򹃡H���W��7����N��/J��2�,vlj��sd�z��5�;�L|�|�Ux�7�->�Q��c_�H]���W�Xfe��{��p��657ҷ�LY��t�/��D��SW=��-��i8��?Bd�Ԅ�]�1 u�X"I�L9���߻��;p��� +%!a("tRI Q����N?���;Q�~��i4�Lt��F�Dk�/�0�0)`R�J� +��@=.1{������"�J\=�I� OF�Kc1`ć�͚H&G�0��_L;�#��>�� ��DW�Ј����������-nw9��0Ahi�����7� +���B?�Z�߱X/�r��Ǽ���`��p'��E�#mh"�G��MNi֬Y�^<u�ȑ�1�/���;o�������ψ�@�:�b�
+�Ω���B���w�^�ۓN8��Ё ��]G���1d�T��Ec3ޛ���w&��iɒ���nOe�����#R�V���w2��9�Lq:���sϙ�X�
+�^"^y.F� F��(�3ٸ?�:��S���矛_�7��&��l��`&L
+|�� +��XG�6S����t�ar�C1?)C>V��c�)%���r��6�AV�X:\<~�g�qFKK�EM�w��~3���ܣ�e��]��莕mN�0�>��0t����N�Ld�Ç=lpc$���r����<xȠ�_��������N�E�s����(�񺁱7����r�駟s�Y#��oh���{.Z4������������]v�9�LՇ#�ƍ(l7��7�B�H�G��~���;��N; +�� /r@�g�9"4���eV��̳ϙ:��!��45̘q��W_����w�}���mni�xu +��3�9���Gn7h��f��s��/>b<-�v�� �}������ ���b �q�Ǝ=��#���dC�VH���B��b&L
+|�������,�=9( ,^w�u� { +�p�`�dL�7ޘ7gΜ�/����f�J���e�,|(�`�0� +�X��N���0�d��҉��.Q{���:��x�L��Ԡ��f���.Ҍ�AlK�x �D'<x���X��n�^��bԍ��=�!�cy:S��ᭀ|2I���X��I�%��� +�ݓK�|�⼜�hޠ��&�fb^o� 6��'���,%W���'��&|o0�ć�x�����1"�vG-�����x}���T: �Zi�&r���y��T�zg������d�'�Nx�9}�O�;�Z--���{�����Y��l��'>���v�#����<����C��=B_�b�eR��I+ƃp� �yN����dɒg�}��O?EoC&�N
+L�$���N>a�QcЊ�r�fĒS�\F֧�w<u�B'V�W:U�e uu +�T�cK����RYâ��s����e�A�H�.������0�����zO<��z=nbr%.�v �T���>����ẐV�U\��c9 ���h�V�P�`�%�>1S�d|Aw6SD��G0�I%;@��D�� h ��Lf� <�ͮvl%�6���ۍ;|go4J�E��8
+�x,�G,l@�f���bǽ���K�2W�
+C!WO"j��Z��kx��ڼ��q���l�Y,��� S.�ɢ���uDcL��B%��Q��^Ǿ��_Ϸ��I�/�}(I�P�f9̚p�@��
+��#���v�l�@%��b���I �G�L���_a�zسۼ�i_�^������bu��4�ʖD-� +�� pĔ,�A[�׍�5�l�d� KLNq��SXncE#���J@V���~w�t�UTCh��qt��ш����\J���8��t.�/&�|�
+�/��;En�Y\� P,#����C>�ψᎱ����{����#M\E-�]o��vuucu
+;i)��JfSu�z-���d6�g����: �L)W�ڂ0�9[�P�y��\:kCZ[_�f��`���Xa��G�
+S�e�f[&L
+TV܀�q�%
+����TmV��jh�cG_"���T��D���d"�7��v�4��ع��mg"��u�G
+Y�糽��/���eW�L�SN � u��.@�HJi7��е�v�%
+ +k��`�X\�2 ;�t�."�c�
+%3��E�B�l^#�5[~�����ZA��: ���o6E�pv�qq�F�w�qM�AF� 7���(#��Â����#b�����#'%N-��b���E<-��v�g2 +�V��?ĴY���A��Cl6"n��豻�ƣR�X��V����ftO������x����`�
+�8�0)�R�o� +�"2���4� 0gp�pd���b��RPs#ӗ�"vԑ�;����X�`7�n�ƺz�ˇQ8���e��p �ߋ�:.3P�$�~GL���p]����i +������8n"�� �%d;��@�x*b�M����I�����A~4ݘ��&^x��i���u��`��vF��͂� ��p��J垮n<\����`� Y;h�|����)ܮ��, +�nZ�h��a�i�i���/�L?.��N�`6��+��JU �G���B� K�(j�=N��ƎF��K�[b&L
+|����e6�$�#�F�a+@dr2{A@����Dg�;�{:��;�AI�|���)��<�O�;����:�T��PהO�m�����J��uݱx�c �C�x�mu�SY�;���v��0��m(�%�-B�����Rb��]�2pQ��9���P&�a9�ȕQI[�Xt�|6'���,ۭ�l,��4 [*��cq;}lϖ����3���p��8����3Y\ �QUwwE# +��u$�? ���Q�U��LY�m�-��Xo�H� ��k��z�A� +e��q�� [��\���ų��Uf����2ɼ��g?w��������v�
+� ���m�.\+���ߒ/��0�2)`R@Vܰ~9 ��J��Ll�tO6�8�PƢ=p�|@���e�"8�f��+�o&S=x ���� g�j�+E��kK�KnV�~�03*���BJ��):"<|��Vv���h�Z����$�;��Po,��pj+��)Y�Cb? �x\��AIK`��+e��67l����E�m�9|.��d�"B�
+W 6��Nk 7���HP�t���4"��+b�dZ��h���^v:� ��2n�X�g�)�Ңf�P��!cV��ofS�|&�T�'���ײt�{s�9���K1X�B�^������yy�����7�� m��5o�����@%)>���_��s��f3R�/����:���F�#][�L����%7� Vr ��8�U���-Z����#�p9�xС0�:\�‘���X�Y�;�E�"�鱳K�1�r��p�>q�dZr�xF�n1���ƺc�2�ANfj�
+"㞖�t@�ν�Ÿ���/�Li=G��%�X�!K,��%G�� �D���+�����r/:j� +�<�!�6�6 ^�DJ���RV*�0��t&�r�?�݁G>-�~�� w��
+=�:��.� N<�� +.ԍc$x�Ě
+AJ�"�� �QL��W��2f�b�ŷ��8߬��juL��P�шhE<P�ˍ&=� +d�91Ye�;��`Yw4����C����Ƴ\����/����=����M����Ы:l�J~��[�übR�K���f�f8�psLu=��v���Yw3K� �'(�vh�)���[ �S�(3����2c���,��fU'�dɩ��>}��9�븡��)Y�6�u���� �����\Л��@8A���ŝ�TN1=%7I9�w���9*}W'�_��7��A�cY���R�"
+���3�h�lT:C�
+�K���mn��" ��8N��� +�H�5�@- ,�v��'��K��@�,��0V?T��+���'���I� ��F�ug�R��T tR[,�z� ��a;�X�e�����kw"*eK�Ԃ����e����"J2+�Q�p����<�ݘR�.�W����`U\R�X%� %ه8U� �T�G]��g��a)>�(-�RsT�L�NG�j�2����P�TSɦI:@���0W��u�Zր�j��kY{J�O ���,��.�a?'�eP��4�wFo@2�����(��c�����kX�W�� +�yN����.HU��+[�0&@����NWzE�E��yn!oǛ�Ւ�]^��H�⽂�ԩxp:�`�$Ͻ�ʮq
+�X�qR/NI,�M��Q��T���tc��< �0)���$�# ��|`�"if�dك�#� ���\�G�>\w�Kn9�M`�tv��z����2��5�G�c_�J
+S�g��
+k�hڸ_���t��2�u�T0�$u
+�sK��"��(����?���(��^,���O(-u�#�ԇ�9 N� o�����Ȧ��,n��c�����sV܂�‰��r�*�$V����ti��E?�<�o� �Y���!�H���]]��A�Nc�*��h���^�G���?u�Kl$��E ����2M
+�o
+��� +F
+�q�Vy�df)���nL�q��q���9�U�G�H!=X�W������;5G-��ԯ���G-t���\�׽ջ�h�W֔�����d���D�;�C�&�*�^ �B���D�����Sa��n����zwԹY)�I��G75��H0�(B��_b��ԇy'�^��\n��pm�"�W-u�K�pv����@mQ�c�/�D��]���lB�*5D�a+c��� ��X����9��P���"iJ¥rK6���Յ���Ly���� ��Ƥ�x��'bM.S�3���MMMd�G�?�i���m&�F�i�q�O�O]a�꼧���tK@��&?|Q-2mR��3j���G=+p���)��VP���im�\��.�JU>[�{G �w,�u�\1zRL%��қ�u'r�x�z���'-6W"��N�®�g�5���vb� �U�Uv�S�h�+_ �}Z>��i"�d3(_�Y�6�
+�E?�Ie�e�����&ylT�n�J �P�aۀ}�Vj�;��L
+�G
+lq� +&��{�…hi�3_�o� ,�Y}�S稣�jkmV\�Jf#��D�&��+S��>2���̪drUM�͐VGɯE(����YSR���((P{`qɩ�h�HI����±r.�~��:�FZ�Etٕ�֨�HC�u ������ݑኍ���� +�!*�fذ${��Q���&.�D.�V�Itu�$�O���%�C-s�;�d�F�䊈W�-]BM�1F�!�䡬Y��m�tV�I�%�����́��%֏��հE]��@$� ��y�_�q�^�n��A�>M��ä@?��Q���s�=��b D������O���7ߜ9s�y瞭2�9�Ņ"�EG���#0e��XY���5���ـYzIY�\�u
+�j�S*�܃[tL�TMqݸG����:'����&��2:�U����4����ȓO<1f��Q��h��lq����z��l)�FRt�r��g>rȡ� +0��Zk������,lBB�j��^����S|1 }�0�Bda�e�%8GG*}��h��Ɋ�N�G�`���v�k�2)��謡�7�7JB�/Y�;}lշ}����/<��c��@eK9�w��c}�ksߙ4)��r�y����W\x@Q���;��$"�]w��d(G�z����0aS�bB�b E,{X��8eʔ1c�Vaذa���s��%\� �� ���� +*a<ɡ]����b��PO)���Q7�,T��I��N�E�7��)d�Q �,g0C�}��t`�u�nl(�J��|: �����Nl��x��K ����0��[g�r饗rJA�
+c�X;
+h�׉Ia�w,���_�Z��\̿���3��;lP����nj� N���;.�=��N����
+�u�)F�F'�Osdӑ1b�J`����w��?�(C�ݏ��g�_Z��t���1aCC�z�\�a6�a��^"�� �&1"ytb�)h/ėW0���['O��?/˅\��&��c�͹r�� �Lu{�:3N��A�ӓ� +��|�L�פ�W������� ��`62O��B���qL�~�e��t ���oCf���kW�y��}~�aM��X�9�ϡFE��R5�t4�%�0)ēe� �v���c��"X���P, �X��n�0�c �,۾9>� +�S�� 4�*��ǁ3#�N!�J�a{�x�`�#X��� ��en��y��7�| ,~ڑ-\8�Ǥ�[*��U�KwST�w�� ]X��^"�0��(ͮ�`����� �u�w�=��uG�q@?�J�y"|9�E.���2n�=�M#܄���L���E�O�>�N� $Zw6��ѻ;���4ix�K$R>o �Hᇎ�m +�u��Z���]�͍M�-�"nD��ͱ�=�� +��� +Q�2bH��lj��z�)���r���΢'��(_G�B"H�x���lwd�7~�$�<L
+�
+�����R��0i�� ~U� O�`�_
+���\C�͈�P`��5�%Z�e֭[s�!�hmkm0hΫ������?ώf&�#?
+*��W�6�x��˗/g*sl��2��C674 +2���W�����篿�:�aS�1G��o���؍~�'^|��@'^y�>��l�ox�ͷsY-��|�d��3�����W�8�4i����w�=� 6������H$��y���g��׿&D�'�,[��#� q`lo�m����C(Z��^����6hР_^�+8VL�ذ�k�,�3�2C먑���5 5mڴ�^�W}]#���������3O=�������O�R � +�6�O�d��{ S���O>>gΜSO;��P[�hiih<l�$d�� IDAT�<>?'�p�c�>����w�<��'�=���� +@S�RZa�]v��~cC���K�<��…�;�H> O<�ԟ���l.=��������8����;>���O�k��)}1�f����(�N|�ч�С%a���pX02� M��>.LH�b��نٻ�>��w��L]r�A������~uѥ��'N��� �
+� Q�����׶O���K.�����q��k֯}��^x~��y�hn�� a�Z�[�)��'���g�q���?��7�� +{�G��_����{�SN��0w�2{��^���ѓO<������}Ծv�w'�4nٲe,Y��K/.Z��裏�{��O?��7�E,ɞ���V,���񦛮���o������(�>|��O?^��/Ξ�*0�J'��]�?8 �!8���{ �m�q�m��'�R� �d���=k֬���)�W,������_��g�?����i�r;���M(y�wD���;���n�c�g+�8�8���GJ/��OTm �~��7�>�3�Z��r������a�x|���A"輹�m�/^��k�=���,�<dΜ�x�������eO/~��W�nj���7��h!�]�v:w}�]w@g�0)��( ( �q��8�)g\bV��\Eyas��%���*��/���x��n��?����uk* g��[n�h�����!��h�H�>X��o�ر3|h�+���3�x��[�S��!H��Gu���?{�����l�c�I<2�aY����@GO?��#q�E
+�G��,X�`������� ��6$n�Z��gwW~'�F��+��g�S��nv�SC���}��Go��M�-�u + oo{��+�_~ꩧ ��:�CcS=�D�‡^��8���M�}�=��.��
+
+�� ��{�{������aC� 4w�8�n��0�|�֭[��M-� ��?�E��oXi:̐����Ż���Z��_/���g���K>X��N��L\_L�ښ�n��F�jx��^�;��{�B�!�z y. �&�i�|�>��o$���o{W;��;��~y�6�*���R&���{k8�au�Ta�q0CD�O?i0w�&��c4.c��O����<��c�v���#<p"
+<�:��c�y≧���O�.*�4�s�:{�� ^y��8t��;w.(�2*gi�am��U`M>�a�H����`�0��H�f<��c�x$��d�������SO=�$�dho�������A����D%�
+:�pA
+\H �ϟ��p��s��G��R@�58ط�v���?���ΏFc�ygI�%F�6��u��#�넝�8���N8��6Xϗ�|���!��q8p P��򍂌��B�A&8���;��3f�슟��'����c�Rr������Ϫɑ����<H�(���� ���!��ɦ2����� + p9���B�:Y�
+cʘ��J�>^�T�kH� ]ԯ_ �XMrU�!�,��+��]��?6S&�N>��Ct�~Lčy.'>�q�E�\���y�=�X*9��C_��Zss+�uXX2�6~�y�����%�\��2��/���N�}�p/��d*�<��5�Hdy �3�<�N6��<���. � ++`%���� �Eq��O?]�j�y��{�p�� +�֬Y�im��8�dv�|�)t��[�jU,#v6��^� P ��H��/|�~t�/~q��c��)QyeWt1+�,x - +2ٮ��� �ηOy�i$+i�>� pb���I�����#��H-��b9���<d���K>�i�q�o(D���q�.�v��OW�YI�xs���Q�-\�n2� ��O.�4�C$��cV=�QP�6����á������X㍿8x�ۋ�fqr���u�����c���Fe�@ �bO$�z Ӓ����2r
+9�[0�����}mϽ��q�N#F���q�~�S�N�4}�A��Ƨ�,eI �0-�/�2[��W^yUSs���#�5⻧�B�S箻�5q�ި ;찉�8��SOY��q�%���i����8�Y(����w�?<��S��|���mؼ󄝐$����#d,!h`�<^B9�`�=Q7Þ�<a������҉�yƙ��~x������C��]��<�q-�D���������m-��� ��L��׾����w�m�N8 �J�p`:��]�h�G?�H��G���a��AbT�r�����qDZ(��_�۶ց���o��f��������.�{8������p]�G���Glk=묳��L7��֖Ɔ�`{��P(��SOθ��C��m���~
+
+�i��@Z9��]v�E�.����b��=v͍��~���.���@�^)�5���'TG`�nh~�e�!��sϽN6���Q����S�K7�I��W��\ +B���\s +l ��
+���F&(ɂ +�,!�,1�cڐ��b���;p�2hHaF���d�`�n�!��ł� js �e��# 6�t���-1�Xts'&�Ev��w/���Hu���$r��uJ����
+4��X*2F�M���pf��I.w���Y: �& �2V���='���$�ٝ�A�t� �J�xoӫ�w��>98Ds9���Դ���ds}��ߓ&M���X��ڈ�1�w`<5Ľ𕌐1�]�OD�?0�I�o��=�2�4Ѱ� e%49fT��ޗ$20��)���D�L�!�M���~3���^�p�/ +�� �{$`�`B ��&|<&���{�,C@l�lv/ς]:rY���F�
+J2񌑩4z[�����!�D6d���6��� +΋52�L�� 6��@����BTUK�F u*�rX��@ZMQrT6ꕠ�^�PF��K1u�f�O. ��G��
+(��AW�3eU��*1j�wm��U��� �p#B�h��=�\$��\r T���xUa�
+-rP?�*��T���J����>P�*��Q^լj��U9��.����p�F%�SZ��<7�S㪙0)�_)�E_�L�L`����1�8�L & h�� ��f�B5s�|#MI��>n���j���,%����э��c��U�괶 %�J��*A���
+��P�[�øk�F�%��b��C}B u�PB�
+Ő9p/�h�[B�F\Uj�R��*\#a\�F�F +�U�*S[ҸE%�b� ��z6*f�R��(LB��f¤@�����f`����TZ�g��i�dP�j*2������裝P*�Ц��fj2���1���jQ��6M�Q��W #��gm�(l��E��UWU�IS�om1#���s��+��ADP��8i
+���Tb��8����f3��F�6��9�P�(��}~�M�r��1�&�*(�H6�'�#a��L{&9�A1Y�G��� Y(�f�b�Hע ժ�6��j���9Hp���M˓C�Oa�P��6rj�զ��.�U��
+pU0N�JT�Q~ӄ���
+ m�� �KV�9� <&c�W�L��Tm*m4d�\������b��at6ҵ j���1j&������F��6ʘ �_u
+l��d����pX!�6d����'� A@�l')��'G�ɍ&�A��&��T�V(�� ���$u��U�jHݻQ +�M�����&�:��Msj/mT�q �|`�Kĸ���t�N���8nEUN�K}E6�9[j�h������UӴ�uWm����(cTKBenZ��1)П( ��63��p���a�0��\"�KJ5A1�U���0���P� uJ�������"�qUu��6#�H����F��S���$Ty
+����΍NkRi�R���.iđ���e S���V�2U7��7[����5ʐ��]UbTEBPe�TҸ�� ��Ըj&L
+�W
+|���iv� ��A�yNB�BM0�<e�iLu@��x�M�G>W�D Mn$��p�)��&TԩQ@]2N�JT��jdn6A
+���F%U=��d��&�(��0W�1W��a�
+7�jT�MգrԯQ3 �{F�q�qU]R�nZ��j�뽫 �L�`ԼQB]ROJ=5�eب�yjR�?Q`�(ٟi�Ť�I��k
+l^����μѤ�I��&J��jǤ�I��L%�2A��L
+��g0Q��=Ps8&L
+le
+�(�� jVgR��@?�����쁚�1)`R`+S�DɭLP�:�&�L��g��I�[�&Jne��ՙ0)��(`�d?{��pL
+���0Qr+ԬΤ�I�~F%��5�cR���V����[��fu&L
+�3
+�(���9�&�2L���5�3)`R��Q�D�~�@����0>} +������������M�K+�ؼ�����m���7��v
+(��8B��4�Ŀ�of�>�z���@$8Qj�ǯ��_�`�)l#�q^P��8}U��Mw��\��Aa�H�*
+ �3��N��a��JR���|�AF^M��T1y���1;�դ�+n�R� _ S���Dɯ���w�"&*������w5�MS�o3km~��D�|>sŽM?��U�O�N�rI;���z�K~9�Vt0��oA�S������������lݤ�����>r�H>��xM�$�W�DI� +�2)��|��D����677�\�*��-e�m��l��Z�%φWm�a���ߖ �le�*�hS5�����M�c�~r*é����R��
+��0���%#!m)B�eP�H嶐���ʫݫP^�R��P��Tb�g� _�D��e,�S��lҫ��Je� +�����466�1��v&��zݼ��L�����Z�\M�����Pr>Ϭi֭[SI�p�e�M��N��,�B��TO�f�ۼ!���s-���ÝL&�~n�,���q���:��d2m�X��JV�����4�2٘`�͎��f�|!�9l��O��� u&�C~-��48/��q��'�D�m�dM��V����I�\.�]���#�/h���\���d]�A�%\VK��d*�v��̫R�b�ւ�����c�<䨭��}��^w��b�fL���� 0%�$ �@B�6�`�wC(��N�؀ +�\��uv��y�ݽ���81%�w8�����$}���4���4G!��9]�T)�J����N��T�l�fsy�˕J�l+4sgg{�[ !��K��3)��z"�|N�M������b��de��������6��Y[[����}�,�+����Q�W#}4��׈�L.�2ϩt��0!��N�$b�x�B��t&�q�O�Q"�H�<�[sG��]$
+������� +t+dI��4QV6���N�%Po��t��dNe�6ʳ���I7��6-k�\�������I�Y$�n�����<�c��s�Cs�C�Õ�a�dR�`�_���֘+D.�x\9]�q�^7�Hע��&c%nΤ��e2V�Ҳ�˘�y�)���[��zH�NH����! c�I�S�A�����[ӜN�uGGG}M���`Hx~$� �h� 8�$v�t:��� C�W�4C�-��'�`pһ�dĺ��� �Y����$=������DLA$���>��Wd�85�������5�dsye�gl2�<�P�Ȳ^#c +`�N�
+?�'3i���� �Ks"��i��P������h��D�����.��X
+I�`�����v�RI��Yrw@��-��3�1b\��BhO�D�xʊ���@��O=����<n7j�ǩmm�����b�:���(�%[�?(΁��yZ�ad")(/�w�Y8��.GMMM4
+��I���*D� DR�L�(�L��^�% +jooGn�4Ng$���D,�g*EŸ-�! +�!� ��N�C�z^EuR�:����  s6����&��\WW�W̋c>.�z��>U%��H��H�^�h���M2t�cF�~���@)Cb� �^{-���x��y�����6;é��.
+9�����< 6����뮻�� �9��c�h��gT��
+��ho�xDFTNg����,`k(�DS>�ϥ�#�ӝ2�������,��h(V� ja�1�t؃~_!�3��Z`tժU�h��FM3zέ9^_k C��H�M��v����t.��d��cƌ���@�t8��\8u{��l���$�|6�D"�;�ٜ�@;uS�M����f��7O&�:���Q�/homs;]z�VP��:�,��.�'��(�D�;��/���ێ=�X���F꧹��Ɠ��q�] � +���@F�L�
+�qA.��6��/<�\i��V;s�ht�L
+͔Y� d��R*��{�H�8��P��̔�����,y���Rjf:�|���{Me�x���6�!"e�_/�m&B�&=�@C�O�P#�����:�G,@v���t[&E�ի*�oF6 �5�+m�3��u{�o��/��E�B���dɒd ��=��c�1�=c�b��tb9:P���5z9�Ÿ�c;Z�X��;��n��)�%���p{�Y"@Ò{MM��N�R'h1�[sA7�Y:#��j֮Y�����&p�Q����_6[8�i3�[���v:�:4�J�3I�[��V�q�9rd&�'>��e���`&����c�ɬf��A�|�����,z���kwSM���~��C���� �4��qP ����@��!C�J5x� �Keļ�ӓ� dJ��Qf��3rT<er�C̀<��?���'m<��q��5��A��$1_�l$��]��5uKKˠ�R��a23Q
+S�UWg;MO$���M'Or���t*�Ym�|. 0�D����]/��D&�\�����̲xw;5�L*+�4t++ �R�����{����O
+ͮ� +/]�dG1�oEL r!
+�7,X@Y���w�i�+�~&E�����>�o�FV%��H+�5��,�3�����O�v�M7z����x�u� ϿX��6�v�#4�"�=v۳��a������?�'�|ʽ�?���曠^GG����V�?4�ә���JsȐ�O=� ���?t���^p��C� ����k�ײ�~e��6ڨ�i��;�|�'�.���k�1rt]M�_��W�ݖ��v�q��'�8��,�3�}��,�5�1G=x���cǮm�� �'�|r�Q`ٔm���mɻ�r�����P(¢q�M�&��mghh��i�e��7Y�.�Hv�@��o���� �:��#^��q&�5�<�8f�����|���M.��,�,~m�I�k��ϯkh@+�{Ͻ���Ç�p㍇rHks �I���z�Q��瞀���4���D�l@���z ���t�C. ]��n��g�q�o���/��������^|��`�Q#^�-=/��^#�L*5���^}m��'6��-z��+��z�����"�=��k�kom����_t�…7�x�A�v�}��>[��x��g?��S͂ +q�=�̦��������� :<�N,_�|�;L��ܹs��6ӗ_��iǝ��ˮ���.�Ɨ_��N�]�b[�l�v�lk*�.7(V��:+8��[�l��O~�����8�j7��1�n@-��=M��zԫ�U ���F���Ɔ�
+� ��[l +�Zۚ_~�+���u����O�x�I��?����6J���QpV�\ɘ��箸�����p�-��dS"v���M�������G��?����k�[��͞+Nj/�t�M7ycɒ1c�� ����SO�t�4hѢE^�v��]v�%�<��G�,�k���>������^�|*�-���pb��=��W?���+>���W4c$����u4�jjlx��ةx�W:����̓O?[W�h�j��ˉ���u�Z��k����3ĺ� @�~��'�܉[�^{�Ŭp�N�7�l����.�^���Ïlnm�{��С֬Z=���{��wޥ�@ۮ�g?���
+5�/�6X���ꋯ>]�l���/]��FD�"A
+Z������u��դ���c�kŊk֬A�g>��λ,�qٲ�~���w�{��, gѳt��,� IDAT�8gΜ�-:���z��D,�֛K�����~��g�>�hkC����N����V�X��ϗ}��fז}�4���ױ�|�b%��~��t���w�m��˖��x�I'�[��J� ,`ɿ�k��V�Ys�M7b�HDc�G�\���>bԘ .���z������Ϟ kg�9�����76�>��6��.'�0� "�R׉诜j|U�- �6��uX��l�XVl�,�F��>z�嗧l�%��+V>��c�Θ�����'����f|�f͚��Ϣ���ڍ7���yY,7,اl�9#y֬�Y�� +ظ�n�>���1�c�����O�1cFSS�/u�o-A�=rx$e������@�}�����?l3c�]s��~���m�� �W\�̢.]� \uu�UKs4%�c�\����\���Oo�k�������/�����=����� +��E�>{�9�<��S�>���Y�i������q�&8~��4|6�XG.K��M��=p�E}��W�d��1��w�1j��1�F������ +����Og�lڴi`����
+�nd��²��JH��a�ejA���B +4��t
+�Ư��`o�M7u�|h��L#
+���Y���' �i�Y��i��~㉓�� ��&��}��9���]�}��6��K o�^�b��غ�g3l7�7�)� +�O����O\t�EO=�4z%����NL�]v�
+�=.7z}Z϶vv@p�6���.�k쯇R.%򖔴&J. �� n�F^�l'Ҹ+�l�"�P�_���cUJ6�JY���ܞ��
+:�c�������=��{�Y^i��� "��t0�Y
+/��x�`�C��z�L�j���Ov�k�f+���K��v�a����C�_wC" +���&2�l�&�� '��|U�Y睇�͒c�3͘���_v?�n�c-�4|�.��� 85�d��N�uĈ~���{��|����I��͚�\}ٟ���5�Ao:���gΘ������o���ζf�Ɋ�:h��}�����Gc8�MY����ɡ�
+�F652�E�y�k�����Ŗ��n����~s�NF5>@�񏶾�{,��z`+�[o��o�� Gy�O����뮡 �z`¤�(3")�58tP�Ԃ� yo H�l�mŒ8ֈ3��ء��y���2���w�N��h�X�h&�;h�0��l���$�y.�,������p��D����O�44 +�i�]�G��r�-_y�^s��m�}nѳ����t���A�a�& m�E�3����u����v�����c���6��x�mُ?�йV�%�� �i@�z�B���1���S�^�����x~0���,n��o���m��Ʃ���t�&O�Ȱ�y睙�YJ���}��h +˖-{��'gΜI��" ~�#m�m�]�h�]w�u�g2�X<�"�\r��O?MJF/�k�>�Bm�]w� U`t��7AIa83`��gή577��@}ƌ���7�� ��̰S�t���O�i���.]
+6�J /�!�U���ѿ�:��N; +�h�Æ +{���7�xc�,�A؃d��$ޝ�O%�>ܕ�,m��
+~�����.<��)S6E�DA�8y�@OL�@�ՉÌ�Ygܘ��t�!g�s[�_}�e$9蠃54/ U���dq&�� m&DDE�,�oS��L�P��!1l#C��6a*+ʠ��v�!�RBH�B&��@$w*���#�SN9�(�\"�n�DH^ą*��YM�>���&��w�5�� ����Y��H{[��1n":$�g �x��o�u[�l��i@��;���Ͽ�[0E��l�[pL0XZ���º�՘��} Ћ�`�/����]2�����b���ѣG�'��^{bɚ8q����{�����1F���w{�[m����]�}��x��a�h���g}���.�4��O�:��7o����0f��ϴ�Ӈ ���_|�� 9�G}4[ + + +uW\q�;�����p�6u�#X���|�ͷb�5|XC �ȃ�.�,Fp���@�dI>g�}�
+|�����0���麫�z�7U)@�/80����Z�p��� �Q��R���F�e����d ���eDC��cY0`М��0��Ԡ�7�t���:t0O��)�N�>����n��n`��#��w�&�m��^{����/�8�m’�6Pul���[x�߇ +�#$B���� +4d� �C��L7~HYV��I���hc|�X�b�C8 /�x��ښz�\�䷴����z��~���5n�q��>~�����zh��!<.^��E]@����z;p{��K0zİ�S�Ξ�֎�O8�SN��O?]��U��q?꯿2c1ǀ�0�f9�c�����!��^�2����HeJW�W�Ǫ�K���� �2�imm��1�u���lr�ń��I�f,w +��G�[�&"�|��&�x�0�{�� ��X��(X0��7N�Xұ.���H҂_a���2߻��e?O��Ro����!�-vr\G7eS~�Uf�n�vFS,C-y}H�?
+�5(^DF�]X�S����h(¦���59��ʠڀ������]i����
+٠Ϗ{��7��N���A_6g��#DV��8��<6F�I7��1H�e�q����`�Ŭᢔ�4�=�X�`wy1cj���r���� *��mZ�LLN���,���t�{ �a�&_�mj@�±���a��Zȁ��Fܜ��r�����r�&S}��C��T2^lX����;� +����h"�o�����X��B�N;�e8�bǃ;+ek�lh&|�l�;RS������1 ̤�p>�����q# k��4���VԤ�s�dž�{,�b�����fw��Ts�=���A2���G�~�'�v�M��Cj�ұ*2;��a�d�Hv� ���c-.�?�|%:>X�/��n�0r�w����Io���K\%��r�������*�~��\b�o%�����;�;}f�Y������ �������ԗ&�[T���z�5�<6�����s��@I cCN�ٻ"�\��p^��,��I+�.��e��\��!�
+G�'�4��×��&u��IQ��� Ƨ�������!��4�3O�x�M� 8Bh��4^*Ǚ�j���Աx��l��\N=f̷�?.���NFLr�Ӟ +�9�ف˸d��=��,�h$��
+9� �� +��)�e3�`t@�ήv���6�#t:�s��l,�.�X0}�q�Ϧ�n��L2�K��$�[:#Xve±�L�%.����8"RK()���T�6�_a�����(����lm����4'�7k^,n��oS ��p{b�i��9b�����UWD���)�d�e���`.dm��4�N����4�;�/����C��z\l����^H�8PBY�c�!����EiŻ_�P{�ݔ�=3V��?5e���H�t��AL;�������%?��rV~�|Ę�9L�f��6â��?3!��E�J~��Glb����t?ZG�H4� �)Qr�vf-�K�+�5�@Ů^���܃� +���VX��V)�$�&��s�
+%�tl��X%�5��;F��׺�^��l(3*Ri��&cl�m�0gޑAk2��J3�$|����U�rDh�e���7�8���s1���rn$�?0�L2�F�Y�%����\�X 9��Lq�E�o��譔4�w�!�lΌK��ig1��P���t�jF��F�;!kLٍ���m-~��sց��d��o�a�=0�l7����6��#GE+�-�ߘI�X��Z|�� KW�ʧ2x�s���t�a +ɶ/�h,� +M�XW=�|� �DV�P�wc�t^���qs��8-'���a�ʹzΞ��7�"�B_�>1zk�R'�rx�c?�TX-�d1nFJ:2��J�I����2;:�������w�vɣ���L�n'�fp/ij��Ʀ�ֵ^��s�ԩe����,�!���PH9���'�5�4���9��RL�4�/��aK�ܺ�������o��mv9�Jak���'RV��Y� �Ԁ鑹рD I���%Q�4½o��;�;}�}���|n(:}2C䆢�}��_}�4�B�U(IJs%�]���)�`3��Y���>=��`�%
+~$�e3������B��N�A�F��!���^�dc�;��� +�
+۩H��T��mtb��|Ȁ��3¬��*�P#gf��%�Qа���50�)�=Vs���Eq��lx�EgG�����d�J2�$G��Hֹ������+s��f4� �|+�)���X�[�6��l>��MԱ�8�c�e�����T1�+�pq�7 ߰@���耕��"0�&���Ӏi�d ��y�a��9�w��DN*����"P9�b�D#����f��GE� +G8��kk�3R�dX�"d����x��w�H<
+K&�ݚN�8�h3��e���ږU4r8�ӌ�J&�G��S����lr��KfJ���+��fC��ʔ�y���9� Q| +Jn��v0��%Ƿ��$��9��k���Ά�Z�h0#%t+���UuIDR�6�J�,��q���d%����+8�5�h�-���V@0M��F��B�/L���&�iuxH���ص4w(�x�7��sY��u�@�,z=:#ï3$/��1�Ƈ�7c���g��hfcWF;~�y�BΥ1��"�e�(�+�L�$@� ���'v��4 pV�%�>�.ֲ �ήVt1����O��ۇoG=^8%%ގ2�F��J/`r`�X�ݚŋ`ޜ�sh�vV�A�->��=Dsfg�ʯ�<�&�J��@��c>�s8Շ�8*�ۇ�7mg�`vBD�(h�f��]�v�?(�t�[ >��S����\��ĉBZ��k�b2D��0�/�z}]#� ���(QG{]O�$���pi8 �9>N�D�39���&�ڨkrT����Z7�����5 ZECqN�GI�{M�@��!HP��������A^�E��!q6J���NJ{ٲO'O�L���'qd�9=�:L!T���#M&����(��o p1��^���W�wןθ�|n(:� bC����鯾t<��h���2��BI���f�DzD"��Ϫ<����P,D)�a�S',!!���R��Ge�'��{z^�d,� ���ы;��r�f�7�7���F �;آE�`+ �`�+�j�Zֱg(2bq�hpDg�Y>��׹`@L�Ձ�V�8,h��pLA�
+�����6���<VU�q��}z�K^�K�јr,�����o�a�YT�dA�/2�NB�h<�t9�8qw�4�[p������[�<|1�4(�TZ�8;��K��c����g7�V�M��0?�d
+�64�<Ge��] +�H K���E s`����"ܩ�4��A��/C��Ʈ�"�d�7�6��T�o��Qw��J,� +2!y=�N�uq�ځz�bw�vA��†���Þv�|@H`.�x.:3u��m�n��O�4 !��� +�.<��|�v,d��)� :��EI��.�����,�?4\_>7��������W_�AI ]���(.��{�Q�L�n�ϩ�JU~Kd�=҈�m1]Y����.?�2���c�Sd��K�⍈��UR� wS0������W�Q�t*�Y����7j�]��xMNٲ�:U����U��W����{^��+Y��*� +&�>�&*�zeX�Z��Ϊ�|+ o��S�)�,U(�S~��U�/>��O%��p7�R�i��$�A�w� +��{�t����ӞA�;q��~}��MSA�k^U����p��� +'�*����!J���?�V�֩*��6��(��dY�T�@U?D TQ�ت�:U%P����@%7�,����J��(�*J�[�Z����p��䆓e�RUU �%PE�b�V�T�@UNU��p��R�J�*���(�Cl�j���J`�I���N�UJU T%�C�@%��Z�SUU l8 TQr�ɲJ�*��~��ޢ$ߌQ����n&�/�HL_��!����N��g��7�V�J`�J��/�m�*0�ߡ�h�s���-9ؓ� L4뼲�m+~uK�������4꫈�G��[.�1~H��b���_����
+ٻ����r��PN�n�zջ�
+"$(,&.r�j!�Y(��4ީ{�R�>�W9,�;1���!.��,(�.�4h�"+yj��n��{��o�]D�놋�y�Ճg� +R%V�o��Է/�\ƭ\!S�f�pw���I\e��4EytS+
+��> �/����gD�H��w���P��;d��haI~�ќ�
+�F ~D�8�*S�aA���PY�l~�l� +B��[D�H�� +U6^a/Ի����EE��Ľ+����.%�-��5�z�D�R"���3ˆfq +�2eaV����J������Qt�,SNX�^��z,���RD�I�yU���>�_1'�C%�֠_��J����>��"K�b��b1����*͛@����F$�-��z����'����H��{w��*c�%V�a�}sc �����euRU��������ag{į�d�띭��*�����������R_��ky�xihpB��Y�� �d1�c�WWA��`7?%��;��*�Kv��4
+� +��r���2Y�[�Yi�2�-'P���o`���+�Wr��K)k=D�u"X*+E��*���,W���$UIYIY�.�."�j���Pr�.�H�8Q��J�r*u����d�o{e$�z�n��%g�v] x���;�ѽ�Ol��ÕǑb�WL9����-j�&�3�7"�2���Ube}� ���0�]����j��! ��de�~U���p9e/�+ǯ���GvP�י�K��B��Wy�M�ʑS�%��l&�+P�L)Iz�l�Q^E��d�H���c)>eU$���(��o���oQ�"T.%W#lԈ��ETj��3���UbLI�Rbʬ\��Ju,�h}0^�2H�^��v1�B�V��G�J�\y���J T�WIK�H��
+TR0$So�FEy�G�L"�^�W�,�ʪ>~%�_��7Q#�=f�c�ʎUZI�j|w�o��o���jtq�,_H��(�=RN��r�BD�-Bme�fVV���0��G]�V�YŪ�@��=�*�n�����Yj��Q�� +�dI��|��*������|��sY�V~�;����Hn�0w~W�j5'�q~y���& +�.��s�=�˛�6ƀ
+p'l�;2z�d��'S�˝L�<�p?]O:����-f�l�t:}]׍T���d2i��ɨ~t����f3���C�J2���q��UNÏ�ɝ�$# +e��G��DN�����L��A�5�g�����YR�9t�LE@f�J Y�����AJ�8ή�.�� �T*�ټݦ��Đ"����i$P��N<wU)�Od���.X�@
+=��a�x�3Y�6$K� �LV�|�jRPPB����D"��j��T2��:�@��#1$S���$%�<҉h%��H$�$���U��j�\A/+���I�˓1(� ��v. �����
+��^�jz�f�F<,Q�*�R��\�WЇ:DT�FF�FfӚ�ʧi�y� ��)�LC���%U
+A +Y�cU<���=�M��(Y�����~��z�atA���˰�3I�u:�'������$2��ҫ�d!%��#�H������Zzy,wy�v��(���N���@҆��T"����2��Eo���!� EY�N5(nIC =X$^�6p�@���>����%x#;Р�Z��T��+l�9�$ �ÒPKD6`�2�-^�����Մl��0�Rơ���=D"�ؐ!��'���n�� �+�M�L ��^� �-� �!H��ttt p^I�Ә��E� �)YHCd�T/�!"J�%�
+��� EF,$L"�I�2�`�%d� r�Y�U�Eӄ��O?!�����v����%`�N:�V��e"��t: A�F���S2����?;;;�\.�Q��h,p�J�L�0DR�4�'$&�FC���� =r����������訴3��M$w�b*K��x2�3� IDAT]��L�S�P�� �������z�z�J{��hd�H$J�C�Oб�%�:�1>A�)g�XlV��I����T�������*�01�dZ�Q<-^�����2�'Z��DײGcI�� w�_W�\{���jUcc�*LQ �[�ihh`$@�
+�!J��:zQ.�K�le�Wddl�IY��mY��$CŃA2���nw$3�+W.���A��:�X<l��<nW$�m�Q���…�����������`��@���t8� 6�� ~y}�L&�,�9�MGs��yT�B,�����a�!(C��U�Ѐĕ4 +���\(;5�@6�D岚�C{e�KlCC="�E����g�i�ӋB�4�L��� ꂩ41�|(]�|��0u���x�N�}^ /��x<.*��9��;*�^@c��V��Ŵ����
+ytv���"s�Gkoo�oH�L"�I�_{�>X��J^O$� ��F�F6#s]��Sh*�D3� +���
+��zNZ��t���Tj��"�.�3T�iw�� �(�&fn��ճ����,|0CDZ̚��[�Y���Ύ�ƆF�̮�����@�a���l��-N�=_�E�Iz5-��3� >�y�L�̚��Â1�`�?.Ǭ׈�&��$@c)��K��pe��p� ���1�����?��� Tcc##
+�blP���s ��a��"p@�cB&@ o�` �QR�L&��(@�^����eA�����GyTM�����'�1�C��Mf��� U���H�"��, {^q�ÏxJ���,y�Q��Z�&�7�M������k�?,�B�Κ������
+�A��L<B���СC4a��Դ�������fu@��L��e�’Qki*�� �� K�7�P�D�!#�����!C����![�P ��n�i͚5��C��~�c��sa��dSL~ +��]]�t6�H O�s)a"�Fb�E���a��Px#Y}a��0Mc�x����Z�z3gA���X�N?�tR��R����0'%�t�Sc8$/tx� ����b.���{��[��� +�ȍe!I�@��1��<*���U�u��Я���)� �Qe�|���Є���4�\PfF���Q="��z��뮛e�L�i}J����E�K29� 2K�rʩ�h��o�{�@�?�� 1b�� �-��a��^�z']�nGg�w���1�(:=W�L�V���V2AΔ�EC>���1�S)�۝N�W����>:�3���(�):���V�����? �G�#&s�^JA�a���(7�Rt}�=k眞P`�i����4��O$s>ZՇ�浫A��� ���zU����� ���}T���qC��F�XM&!Œ�Z4�5��n����&/�/@A�T^4����� �F�7���?/�������X���֊�#�
+�=���D3i�/w4���j��w�]2v���bS��V�xG�C��C/�`��<Pk������R�ݡ9e� �i�Zb�zX�`A#���RL��ɤQe1 ��(���nȮ�v�%����)L�
+�x
+��ɔ���?�� +`T�w&d.�5j �Ҝv���G>1�\p�ŭmmӦN��Y^Ժُ� 4$����H��j��5ԣ f��ˉ5�� ]Q�Ff��LL�bp���f #=�d�JY��J�a�`I�Y�p�m 1�`�q8��Xr�|=o
+�t=�|�9=�]!����s���nL�4��-�
+���tu(�^� 0�K���|��g����E]��cǎ=�����:z�;S����n�y�NDQb���o��b��.� ��A��o�{� .�|�����?�o [��/#�#�<��N;�hKK멧�v��]���j�x�T����۷�~�O?[F��e�]N;�4"f�-����v���ϙ3���v��w�g�}��.��"���SO�П?>]�Z|��W��/��n����>K�g�z��W�g�"/���n��N]����`�/v�D�j2�����p�K/�t�YgM�2��K/eR�����5�#T$P��/��^�"�/6��<R�j�i�l�ͧ�~���`���g͚���;�t��kZ����?�j�vX�b�=����QG��g��b(IGy$:�w�}�_~9S��y�NQ�5�^r�%�q��7SӚ��'�|B)3f�x�'jA�v�-�P��;nǝw"1��`�J����C�tP��vR,w�.���8(�ӦO����5�����7~򓟼��[z�-7m���;������t�z�;�^��m�7�pæ�nz�!��.�R/���i�hV0С��<?����V��ѲO<�8�3����/�v��|ȒΝn >q���7o�O����?d�Az��_��;�8{�l��.Jb$��>p�d�z��w`c�v3�{�C��w�y'�C����_�� (��=�s�x���A�����1���4�U��W$��( ,Ƣ��?��ٕƦ_RU�l��1Cbh��9����'�5�\�22w��;�˒%o� ^��U�&����z;��'�|��O?gaB����J��r������tVp�n��c�1�N;�w��X波����<��#���Yg��&-���~��]s�U��;�Ы����;��,_�����G]q����o�����|0�M���
+�\y�<�୷�z�y����=�\���/1b�l�[M�@���댆�@1�<������?�e,r�N��������%�
+@g&u&�z����2�����=�L�F)�r�G��8���Qo�Ν�4��O2��*�DA$�a�1�As�Z� Tb����y<��;Z�^}y���s��y֎�_s�7��rh�>^z�QG�v�-?� u�?3Pr��'p��_�C=j0�W�1lذ��>�5j�d�`� ,>����v�9�s���`�@tԝ9@��ȃ f �ƚ#��H�lmk~��׎=��+�v��w�}�)��<�̉'N�:�i�駟��氡�g���(-���;�`��я~��r�d�B)t�1c�0SҬLx_~�%@��+��3�I�R���{�����f�`BE����K�>���I\^p�����x� �v��W���6���;����D�� +��ӈ��a⤭�W��'Xo�3'z��p��ԫ�E����v�X)��C�i�ّ���)��n�A ɿ��/(̞�3C}������:ߨ�Á���Z�K�pZ�%�M��@�Ʀ���]&�+W��ƛv�Ys�� +��)�x�u��/�7�tS���X�n��?fw����<��rC:�BvT��3g��;^-]��(�w��h8��__�^��:����<䐃Ǐ� �s���~g Ko6�V>�~P�������[P����o���PLH|��2�P.�v6x0���I'�5Y��es ����^��ꫯ�\E }g��6�-�l��/8h�`���n��������l?vbQX� ��O�W��=�|�\�f�o���e���N8�#ԁ�|��l5}����c�tt��i��׶�uE�l17�]{�_���F�YU���1d�l�i,��jd]��s�}�|4f#�brd� �فڈ� ����56 6b�ڵkk��_.���^��O?�ĉ'���V��|�~�٧v��m4g�Jhk��|�5ׯ\�v�'�1M�12���0A��ry}nˆ��d���5�h�5uL�X9;�H+�Mvc`�i +��l���@P[n�%}`ɒ%{�;�k��<t� ��*8�<G^b���S]�`~M�/�ao��҄��EӖf,�L��>|�9l�m�Š1s���~�mT�93S;;� &S�(�=�^�=�U�C ��i��;� ڞ;�)�u��7��r5�x ���a�r��f�yMЏ�&,kb��㥿2�ӽZtM�o��VC� �c�ɤ +lrj⒢g�>�3�I`��Xd���'��$�#���wef֬�k����^��d�a;�`e�[}nO:�n���Ǐ������+�����[l|�z^s��Mߚ��3whh��,�� ��bITdqыDP�fi9iҤ���A�=��"��_Ly�����o�^66A��,��� �>��r��Gh�_:�@Ԛ(;Ԙ��({Gnw2�qh�D2;a��;͚�{w�u�MbXŸ�N����$2z2�2���e�~�v�n�����ϯ�۵�G��,�ۉ�`� �>���;�_���c�?�"|�9�j�V�P]9��xz:pt�����lf�-�MǸ��h�&W[!Ϟ.>l��ɢ��5�Ͽ~�_�4��=�3�t:ؐ1�kp�ū�.{��ЃT5��Bz+���^L�4�Ղ�%��8!E��#�=e��3��mmXw�9�N cwz\�'�L84��ج��8l�3���B?��� � +/��2��G{*8e7�� + +��6=3 �L�:ٜ�������ט�6�j�m,��~�΁���Ν˅��ɒ��5&�ͦl1s��S)���<���̀�F÷�Ų� � +:?��r1�"��a_���^�U�7��� +��_�*t&���D���O�HZEiʏ�4����ܳ.� Y��3�8� +�d\v�_z�DJ��I�3�BAX�l���EϦ`�
+5Rɸ�ˆ c#�N��+����nk�@L&b����L�<y҄� �9�AE�+�"���N�|�yJa�����"��zkw�~4e�P(�75dy'��(��<>��)@�Wjӆxl^���q <��[L���[ommYۺ��'1���x5S4bK��k�<�\2%{�?���!Ál��"��ͅn"��,W'o�qCc�rHA���/��k�Q�X�2�<���K�.�[��h����+?e{�����j��]p�X�p�J��_H'd�1�����'�b�)#F�|��gH9d� �+�At1&*����F��FDŞ8y��qQv�=�� @��/���P �]X�"������^��5��%:& +��!^Txڷ�����3��6�i�Ev�#Yo�0s��ߊbO%�\�p�N����$�Y����ۍ +�À�&��m�ن&^�j +���̑j�)�b� ��#��tjjjQ�[�b�:�vy�
+�4i��^{ +���>���ӧODz �m(c~Y��|����y�CVʹ��@�|Sm}[I]�R�j�Q��# ��EzV�}�<�a[�g��Ӹ#�lFTY �ʛl�U�oA4���H���4����H֯.)� W�"�{�,��xz��p�þ~�UС�v��d?��YAc��31���gO��0r�+������z�M7���6�裏&@�A +8c8�2�%�t���K?~��BT�<jW]u�QG�{��G�?y��Gy04�-l.����*Ml��L_��i����q'C�<���A���:�H�^�3g2PQ!�=у�
+ }��,q��@R,q���R��/I��Nǽw���鍊nv�G'R�-�Ng� }TԼ� �b��X����#���}>�=�1���� �FM��O����� ��7c���@�����DX���m�h��O��?M�l#�c�맻^|�e�=x��K��mm�9c��ѓ}� ::N�� �Ȧo��}b�[��z\�A��n� @Ƙ�������B�� N�}�9��9c� +k׮a^K��d�v�Ȋm�?-��.X�0k��?x��m��s�Zk�Z�XT/��r��P��]���/A�ꤓ�aKŰ������y��H��hWs��~E.�Lu�F���oA2���f�0a�B�l=��CX�iV� �x4AXxhm=☣�v[(��ҋәd6.���N���LW��
+���"T|db�q֙,5.��B�4|��I�M����[�~;�v䶶
+b��<u�SN��!�}A��eW
+��r��Լ�m7�ި$��Bo�׊�#��J�,��U�F���������?<Ҿ*@�=֌ͥ���r��N
+�t/:1��ȥs~fAs$beꈹ�>:�b�fYx�]-��1�۱�+7�6'� * X�`Kb=q�3rpQ݅a�'�\��b�i6�ˏ7�s:+kн�tԴ�t��^��Q0eY%�&�����T���c��L����a%�Q��?��C&�`"�mt7^��Wp0�%��+��*c_G��<VZ�i���.zW(���Џ8[�23��]�I�7'���#7��e8�\M4�5z�5kV���5�]l����50�ѱ6����x����6��ᜌ�
+K��mO�;='f�X�5e�ś��)<�}(��_�Df����H�fƱ)�KB����́/4�e��:�-υ(�)lPG�uV�D��"���n.��Ybc����\aH0���=m_�p�iR�߃�j��)źٲ�{�ᇳe���tb�9R���fq:L�X��2�)>�>j��5��b���ln��}u~��l�bP�s��� =�<��6�� �'rȊG�.w�zZ����5>a� 2�R_��]mP�tu2�N��Mۇ�B�6��;"w��,bH��^q 7gstW��PT}n?%%�!fV�ك�ꙕ4]E �:�UFg��w�8ײc��p�;�ԝZ�d��Dɯ[�Y�� + :���^w���U�r��KҊ�+R��t�&a�LƇ�����!� �H�Jd�19� +5���ҕu�+�S: B�s N"��"e E��h�(���0sh88��G'�+�=L:뀁M� ‘�W���ǡZ<��ୁ���?� {Q��FaH�ՉC�ߔ�<0��ލ..���H�HF���P��0��69K�� +Ő�"�q�d�#��<�`*`�it` ���$fG�����n6��œ�(� +��O>��=r��.a +N�&n��-��B�$�ɔé�YI���\���'g���6莈_���Ig8S����R�
+�7�D2��iD��Q9�MUf1��4a�u6%�D�.0��+F^�9�ihh"#⭩���,��@d�3��쁰��&>�����g�X$L�T2���W_}�K.�����T�iiYY���v�(�E!¿�D�5u�.�P^�EceQ�q���x2��7Ȟ��Y�� +u� ��|�����#G��l�hN�0ゾr��X�c`�tE0���9���E�d�ȶ?�e��"��u3'V��tuF�HSeʅz~*-gI��P�2Vbe�M��oF +�,�@���[.0Mae��$)��'�JJf��ܰY��8��,�k��)�����BN�d&�t�K�a4�^z�q�d��)16�R>1��z8�g�q�N�Y +�e���$�:;��OAI�ߣ��A'+�"8�n@d�S,e
+%y�8�O�A]��,=U� M<Dx��$� 0l���$ gB���7��x +�C����6 uq�5���=��aV�5�̱4(����i�hm]�{jGE��@�#��� +��l&_WWOv�BEC�7�%�t�d�NDc@ 0�S#=r"�`�I֘Y)�n,Eu" 9�;��vƠ�7 �0�QG6���%���G7G�r���g2�,I�}��:��KN�Y,]� '�}��t�wgs��VȢL�����r�&��b���نIm�v�� �G��@JK`d�9�}ā[^�$f������ɱ7�H�(�z���<�# +��-�MC �$���L�R����@�
+�G�G +s��p�1�����n����Uxz�T�Z���:Z�Aq��r�(௳Y�#&#G]��+Z�VNЏ��X�-�F���]�%�4��;��EI�݀~B :'ay�ߊ�Dض�P��Rd 1e�T\V�&S�d�X�YX᲻��%}N7;Q0���oX�kP����tk:Y�| Z::d��K{��4�&g1�-���|&
+,F�" E'��=�uP��\�SbP'�Bd� P���9
+2(�� +0�R(��\�F�bj ��8��>��ɐCd'������TR�[3��Y�lag���V��@L �J?UeA�Y&�m��O���T:Fe�8X�#?��(t,�!��\' IDAT�$ hd(B3��1�k�豻��f �"�#�3� +RJ�"8`����.T
+
+T��!L
+RML��e�� ��p�D���%ҳ�% s=%�� x�:Z��Z�p#�gk�YTob�5I���7l�m�h��s�q���-��G���S�42�$C�㕟E�+-��Mx�^��L�IhqċH�ڈ�)���t\���/z��V /> �1W�(�J2�b7�d@^%��1 �RO���7�ߛH��Z:U@Kmk[�j��>;�{��\�=�իZ@m���2C5#���$U�^߉��U�
+�;���)�@ +"������l����-��䡃�i ��l��{�8��&�C89��Zq��?� �;([����ϣ�m�.ʣs�eU_!L ������X�ULH2�j8Rpp� +:YPg�d�[�6D��K
+���h E?f (#����Yo�6�^Ie�2��je�$%�2�/�I���P3��#n4�;ALtzQ |3'+.g�}V�|)�c� �H +�iA����,ȜNOG�|�`B��apV,f�w�Ɯƈ�€�X�Y��h���P�iJ���eq��z�M�h�€�� �B�iGĨ�^*E}��#'�Z\��|G:ɧܡX'�a�&��T�y�e�Y��W�� ���+���3�������cT|��!4t.)�P��9%�RS����Vv_X +S#���` F�0ɬC�����m�H���R0��tn0��h �F/+�y�ԗ�d��vJ�R� �z �1������ܤP�HC��3��b�:Lř�����Ѱ�P�0|O�ר�İ�T��L.N�O�RjgT�zT��F��*����#v6��@O`��Ch�~Q�^<EhT�Ѯ"���������Uz���'ӌE��� ?��(�,.Ő'J��]�u��%Z��N<�����E��\�nd)�@��U��RYPjʥ�b��#: `��D���nd7�� �Q��(��IWL`�P�0"��rd�'�y��(�A�И���-,l2���t��L�|s�q��ȷ,(_���&*�o��u7f)�� +燼EΛV�3�w�=����Xl�RR��m"~�r�]qQ� 1L�B +Op�A��/�(H��$����^�ʟ��F�O!WV�ULe^Ul��"?�Պ."0&KK�4�� 1*R�)�ׯF�l���@@�Uw,M���oa@ �@��� +�2�(IR�\P(�� h �0N�����QE#��9ŶU0��%-�H�^���C���;��cԣKE�7���+�CY:�x����>Pe���
+",�|>CLԎ�K�e㠄%��Rd���{^�1��S`�!���x+պg %�����E�yTˬ\~�onV�vZ�nI�ls�0�?�ݓ�>��(�����`��% P�$�*%�u()���ب��$v%�W�c;1��&����-�4Z�8u�>U��Z�����t�jR�f��2D�XIo�}Yns����#�h+jen�ɉCX+�Dy�<���e��%��G F�<B��@�)�~]�*rY1���V΢��_9F=B@Ŕ !P�������0���|� +�d�&�)\�C�ً %�Ea%LU�o�I^�P��m�2�âƲ��Ҳ~8z��ޙ��gq�z�d/$RQ��� Kf� |/�?Aɂ�8<��@Ia�����R�he��z�?��W�ݜ���Kw�h��!L�2�3�]QR��^�%����f��[e|9q�oˑŀ*�T/�$�Ĕf �O%}Un1�\�3��/�2M5��J@iK dUL9�v��^��o��Yd��\<���<*�T-��`��ffĢK��i�F�v�:;eC��r���V���K���G�1ŗ���r@�k��F�ʘ���x.���Q��@�8W�,�H��Դ���=���+�:��P�Pu$\�P��r<b���#1�|�ЌO{]}�����c|����N1e�wu����BE�$��H�aqo�S|,��X���Hg�,�_��>bu*E���#�A�?��($EY F�rQ=��T�{$���`B�J�� �xŠ�� �xV9��b�r�zrR�Q +|��ʅT�� .@@E
+� ���
+�, T"uW ����u܁��� +� �8���VH^��Y�rU�-O����]�1��R�,s�Fκi��T��r�M�M�"�,�AC8+��7�#8���p!JQ|JF�xX�6Lo}s�]^�!�d���G�-���=G�qBId
+�]QOMCW<���%ҦL�O�@ʠ֒ �3U}��]�z�EY�eNT��c9�hX�K��C�/�[�X��#ڣ���4��2s1��T��ʄF-T�"���W�)9HY�֥�^UR/eWq���cʑ*F�(3S�\h5�J��"@��`��H���:]Re ���"������I�in������mv�'�J�oL���9�,����-��WE�P4�id�U6�t���`���*4vQ��JfT�L��J�{�K-xƺ�
+��G��$�;�
+jJ����5�)�D=H�-'7��Vf�葰烪���:u�&E&��m�Ĺ2�K����=\�4�3�<p`�)������o�r,Osp����{2P����j�FH��R�� o�FB�)U#�dUWE)AE�H!=I�K������T�9Cz)�2����NT�w�Iod�gEG�2��$�؁K%���*�J���Ex-�Z񾃽��;Q5�����l����QO@E�"�_�T����*wQ3Q��ntMu�kV�y�w���Õ_|����=a�F�7ٸ���>>�7�U<�[�o%�_��P�EIk"r�d$�V"K���x�)U��pŊ��B�<�_+ыq��;'O�� +�=e+�s$�B�<�*�R�e%"E�gY�" <S_c �ꯜ��2 �B���]lN���������>��K�� � +� +u��v���^��.v��4���s�Q���ԧȸ���,���I���hDn<����H��J��n }�H_�'�N��[�j�?�w+�*�*�B�x.�/�w�+����-�+�F��L�.��>�Y�]��J��JX���I�4�z,3" +~z*�F��):�D*^V�ߢT�,�/J�SH_6�^te�� ���{o����7�d2�~3b�(�3�
+�ٛ ��� +M�\��I_�sY$�y����h;�|t:����^F�5hp�Cӓd#�ؑ����n�*v_�t��e)]���_��"�Q��p,��') +���������(�mv��b��*�Шd�ɐ�U��������>†!�Li?Dde,�U(�>��l_m��vu{r���N�|�K��?h����䰚.��[~1���]�{��l�ߓ5fE�.
+Sb +f����i�R
+ ���`[�RA��o�!Fծ��F��\�uQ�6|�BRʫn���o���+�J/�Zn�2�Řu�T�R +�OK�R�T�Guʭ�w���,rW)г8��!0�W~�9���i�;⨁��!)k�����ͷ���;�%e2�Z�j��������L��*~}8k��'��«��pP���<2�Œ�W�:�l�s�,>��V���s세 +�f~��XC�D�y���I_tg��rh
+|�@�-�p$�."0�l����j��?�pL�
+٨�;w���[���|ʜ�Glk�.��g2���^NL�����8����If�� +tز₮�#��9N��Ϙa��dt4��p1�u:��$�9#�����J��j��"�ȗ+ N���0���A�� ��p�I�5gL�|�[ٕ��%=���l��/��mGґ2i��&ZE����c�Qߴ�����Ĥ:p(Fgd s� _�����x��66Y&�DL>#��z*-���D��JK3��D���Eӌ�� b�Njp��,�x (#�L��).A��a�$�1q"T�����_e_�T� �sRw.�S��i�ETT�U2�D$�"�Ko{g,�O�[�����,�\����-��
+�{���Hc5���+//7nܦS6c�0������&m<��e��q��cx`���
+ ��3g����q9�#�gS���#�>fwy�)�O����d���2�F���1��2��#�O�dLgd;%�Ly]n*�x���'� `���3�HZ����0�g\�'��S�H�� $ 8�Əph��_$1�!'�"�d��ԩӯ����=N=����p<*�8�I^���V����;���,s +�ɮ��,D:�q#dŌDZ8�����s�0k]Q��w�]$��=~qHK,��ꖮd�9j�D[�q[l�j�`��]q��N����R'^6����!#G�5{�?xO~����Y3P4
+��7��7�W�$���>�f�A��rf\�^���sC�k����&?��B!����{�� R*NYƥ�� =�.jv�$��?eX�Uf {EW����z�$�܀���ѣG�R�k�{�`WQ��{���FBI ��^�&Ҥ(*��A@���D@EMA)R�P��B��zw���m�g�٬�D�� ��rsΜ9S���3�<�<����p��!�t|�?����C*r����"`� J ��jEV��u��r2�mk"x>i��ɹ� �T�iU<r�H"Q��p�Y�.\�Lq�[8��0�(�pY�`�!�ǘA����kmeV ���j�C�&��(j�/�?��)��,��O?�Qw�Â�4��l���s�̩�����f>���� +�.\<j��8e Rܶ��('Ȁ��ٝn��㭽|XcӸ�Zڒ�}惣'��[T���K��{��N��?��� ��-嫰v�Z�<�w +���z�<��^Juх?����v�i��￟@� #ې�Ψ��,��ܸ��*p�8Rha��Qq��pt7^3B�žeKTW��$��ß����TY
+��A�DI�ً���5T�E �u��j*��e�1�D����B� ��aL��3, +0L�c�~W\u���y^K�r� ?�C��fΜ�,�s��� +׆��v��� '�8��'�t�I�?��sγ���ם~��[����>�b�z���ƌ��c��\����֬ս�� *�a�Wy�**,`�@iUJI��ʍpoUG�Y�� +���t;,�?��n�TS����gΜ��:S�Yo]�ƎY�~w��?!Ol��X��p�'��kǏ�������C�o_�g?�YN����6��X�UtC_쏬4�Z���WR:f�ɳ�����l�k��͚���7^����ȯ�~��m���MWl=��eIa�n����b$/Zx�Q�g�l�� ��s�5^�?}�Z����Zl8�Mܻ�:��>�����Ko�������l��^z�%�k��[/�ͥ'�|��S&~�Oϛ��˳�w�/���Q#�x�aDZu�jb�c�*j7<��c �k��Y�(a��
+-�T�MP'�xC�à )y�a3UL|��i����7��p�u�y�amMMp��� ]�����뮽�I�W^~�֛n����C[�p�M7�����dk�R�wW_�*^���gl��F�[�pr���>}��8�eA+�� FV��bX �ɣrb����WȨ��1��ʺ.h�3��� T8�X[C�v��{pa|�Aso%�r����o�c板�핏>�����4g�S��g�{6�^�>���~�+/�z�ƛ�|����x����� |䱍6����X�5i�c�:q]Ȯ�`ب�]��1��1�U\V�B2e�a#�3�U�������G�=���^dz�C��_g^۶p�>�3���7m��f���s��8�G�o�Lj���^9��_8��cHo� �����n�n���-Mg�u&7���f�O=�{S���?<�1��}x�-�`O�e�t����5�4��x�(# �=F \�F�)�=�@ . �������"�����[n�a����#�^�5{��b8r�66��������k��KI��~�i2�o|�x82y�K/����,K�,�L�d��}�_��e3.?�3��k-k� �����IXV٪a)��T9�Z(�2��*īi��1*~(�JQxR~@ɋ
+�|���F% 2�W|��<� ��%��#�ތ+.�y��k�576m���N(=��� /���h�o���4G����T:���E3��1�rpl=�H+� ��$�cɢ� �u5]���TMm���?a��I�M;���q�VZ�I�V��xO��I�Yf,�9�ӟ>r���9�#.��WC��ߌ t�p�=���
+ ���������n��w�h� +h�^:�������`��3x�c�㕡2S�+$��K�6R��`��k�������f��� � �����&Лj�$�a�*xy$�� ��qk���`��d�'q�a�G6��_�u�۠<Uf|~��cA��9[
+�\|!�|�{�����矙s��?}啹{����ŻΌ�?�6`��o��3ε���1X��ǻ�<p���q��m�ȑ�i0*}��� rᏔʸU;;0>��z �?�
+���,Q�T�,�)�����%�S��%����<�stp�@�&=L�����S�Od��_�3.iɵ��.#G +7mL_g����ߞ�>�GM�49���^�>�7�O���7Oק88�*�Y[�lwDz#�Ք���N��e�?��1�>�_�]^�(�V���X�d�k���q��o�Ͷ
+oKGS0 ��vsS���]�9�̃. +�er���žn.!F�!І�Ʊ{��f��NMfRնǼ5�(�t�!朋�cBM�p��3�0��} �k�5f�>4 \�:—��8֧�����1`Oa���k�t�-�g���ZD3f����B��*�Z9���������[��ob�oÍ6x��ټ ��rohX�l8��6�l��9�S9�f[��}ɲ�[l��\��cO�*Q<��D�qP��)`�� + +1�
+8g�1�a�8��cJ�-&h %E� ��N�j�L�p𒔺!�oԞ� � 'M�$M ~�/���)��6wc!|����S��5q�u�)�,(.I��I÷�����Lw6;���>S4�69~dfXU����R��k��3�f���%��Ҟ��1��p��x;Z��v���̖�]e�˩^�P{��<9�R�h�_]t�.��f��H)����u)�_jn`�}>@� �;��%�#��g�����8c�f�,ތ�o[ѡ��X}Z�]���� +�M�|l�{����P V>���V�`�@���Tm������bt�j� +7���͐��A������1j,�'�G�Y{�[n�5� ����`�k}� ��Q�M�n��@&r˷�z�w�q�k� ���Mr� $UN�8��l�x���[�+�@�T6VNC�{�8~ˆaùFƒB���"��V��撠�^�~���v�!S&L���=�֑��q��|��뮻�4l�;����h�mv�"�")���B���Dh2��/]\���k�/�;���F� �����T$
+FU�(/z��G��zb��c�~��Ma�M_���ô���4����*;~}�'j�ѣ':w���?�i=��t�nbBOn�l"��Ml�K��v�q��c�<���N;��m��"l��FO?�-撎h���P�P ��-�J+�W)c��2���׽��G�)�p�<w�\#g���Z�`�_��W��#�>��M�����}��Lp���65^,� �/\��Z٨.(��\���%��IY��7��P}��\k��|{�c� ��h��5���G�k[l���x�1���ZWU�Xuk�k�uS[[E*���#�����V` ��g�% �9ZAc�Dx��}�Ѧ�fX�c�/4�N�i�0�mIA~ء��M����ݑ+�(��E3�,)mhnJWV�+�~�yV�0X�u����nب���r��`��?��Ψ�籑�� +�p6|�HOgW�9�.�SPԘ�?��?}���l��&[l�Sw�<��sO=U�_���ӷ�bS2 +'`�c�|WkWG{uU��|zJ�|����B�)9�T��6,?�e}�\,P�N��DA�nWaZ�����ة �&̪��;[o�;�� IDAT˝��+?����%T���Uv��b�ەm/L�t)s���1���V�!1T���0�mO�2Š���FI��3I@���Z�R�!���ְ�p��}�C�P~?���*e��eK[ � |#�k�ऴ�#k?�+_s��Vx.�� ��m�-�潸���'�I9����c`<a��w�s>�9�Ys��}��Ɔeu�ÂC�Dp,C(f�#��!~'x�  �DzV��.~=���u��3���K=~���a�����"�Y�����y�� ��t�r�*�>� ����iz5�+�iSCc���৴�%�HrB��ua`o�;��B�婿-�H�|e����E�x���]]/�2�W��Ӓm�TmMո5G�;u���KJ�:����D(�tH��$SY1�P���~����T�w���!���Z����Kga���v�Wy����)�o���䮼��'_Z���hd5Op�=a�a��ʚ�.~
+��D���sI^�� +���A9T�լ�3(Cl 4t" +�e0b������L6>��z��+�r�2z�ݶ�>��ꔱL��� �dI7u��43a�۟��R���!f�x�.�vT���GXB����rs_uM%�a]u�����%ƪ�8�nr`�@4�EA�c|��R�p�TD:XTkR�e�]Q�F
+11@�d:0��p���C�*5(���S�é�Dg�D�ZƷ����|���"e*�8�ƈ���V�����eKʸ����t ��oDI|4��\f���\)��!�1jζha,�����؆L +����z�'B3�o˶ؠ�:���W����U�C��)Oٴ�^p�&:����nU*�?�*
+�]��%�f2�����1�NTPZ�������K�E=��Q#��T\�3-��쇔�:� +�l�j�ձ���(F|��w� �0� +�+��h���)f�����3�6�����tG[�,�ۈOA��������ѼE]W�\�����ӎ5kk��J�a�}%��p���j�������a`�^�$�!�t��i�k*a�$KɕY (����W$F�8N���gaey��_l�h�^8�|�j[A��#Y�.����ΠnY[_G�d!Gy �D�ꠓ�3��Jc�x\���쮢�d?5�[y<P�(�6D �0x���v����‡rN8�hvI��h��b;Wn�?�Œs�8H�,�K��� +��Az����Tp,��b�K�
+iM��*p�v�ñ�$OX�� &��R@��.��-�\�4��%�"�vw/���_TX�ykP��O$�%����!^2t�еZ��!�V�|׻7�q�Cԍ��튷 r�`#JL�����<ov`����X��5�-l����3����׮|8� + \?ELj��.1PY��-���SWIs6_��t. ΑjM0\��#�p�Z�.* �Q���9�M5R �'!���PW��)$��֪j!rSMEs�[ʊ�mt#��q[����n��!�� +������mI���)7���\EAy���,�¶��^]Y5�~���#O�GRJXY���z���f4k ʆ#�Թ<b㲙u,��\�Y�k �@��@ZS��N��P����)�����b�7Z�+��feE9I�I�#[�x�� +��j��%�FUeDV�b[¨+, c�.�_�jٲ�O(��O��D�Za��i����]ï�e9VO�����;@� �J'0q�#�: �ۿ����ːV��b�YGA ��6��q��U�"�P�&OX�G��
+�ף�cl@
+��+% A�#�i�+JK1����\��I��s�2" +p�Z�j�A\�8@3%.� \�w0�Ps1��V�Qꪪ��\�:�I\a>��ߛ�oWܱbЭ���3&���|��KڃF�Q�4�d�S��.�BR�W|��BBM�zA.ޗ�0�# +M�|EzkV3S�{-g��w� +:�f�U8DP[3�,����jIye�?�Xx� @Q��:�I�o�|�$'ӡk���-�wo 1x�K �1L�>W�� �]Df ��$g� �V�(�oA�WVR�c�T�e�Ԩ�(I���;,�,΂2^X��a�yU�es��c���
+�nb �E]����2�B��� [G�P$�֒F2,v�X��q]$�:��.�;*�ų
+����Ɗ���)6_�Lu1�E��G�!qNT�:EX��kexI�.@�:��Wd�1�Y�*3��vMQ�(Q]V<�**ق +��况�+�%��
+�G�`����2�8�l0�F� K�M�o�#��c�̡?�2/,���t��:�:!uIi��lg� ��CjBX\��U�ya�ǻ@`�*�m�)�^e�#蘫fO�:��q᝷gթ�R{Oަ�m�Ғ ir_��;мq#�������+�U�$F��A�:���1���n�X��pb5�w Nf�&2&�Ϥm��C?|]+�H����|�A�h���b+g'���r����-�@�P/ɾ������]v�=���� ѣ�␷��7�ģk�ʃ�B�e��:�A��H6Ns���o����o�4{۬���a$
+�N�� �76�a"�>BFf'y���q V"�0�����w�v)}���Z���:�5�w���]9�7ݯ�8���� +�0t3����� �]\��f���C)�t1���_��P�C-0�C-��;�� J��%���"��� +L��Po��=+�P�C-0�C-�~���u1��y�_%Jڶ�"A� 2Ƌ����C� +��P ���V�,qa�]1�v�()��h�� ĺ�v(��j��X]Z ���,�*Q�I �~��1��k?g�㡛�j���0�p�/��W���zb4��a凩Q��2�C-0�oj� �s �����3��M+k�V~�D��Z`��Z�C�1� +�_�8��!��P�Z`��Z�h�!�|/Zu(͡j�O �䇧/�j2�C-�^��J��:��P �����P��ӗC5j��x/Z`%ߋVJs��Z����'J*U\0�|���Eƻ�D����؜W����'�8��T!C��͗�`(��\ �CŽ�r�������,�����[��wU7���y:Q�a}[�o\���cj�k0|��wz;�`�f��N?^�⽡����Ϫ
+ʰ C����pBP��_7�����rX�d�K7L�RAg��ŵ�c�h��nq� B�x�b���yQY� �3��tw�S�`O[��r�R�����-�ͻ 'ۯ\�����+����>� �b*\j�0 ���\Ⱛ����Y�k���e,~&�3��fo�� f������d)�E,�r�/4�\��K� +�bE8:�(L�~=�tU�9�@Lv+�F�*lBW��k��3Q�ѯ{���y�Z�Q��X苈���U���R�|wga0��Q�r�{�s?����� ]L&�@�Jq����vV��7+��޳?����Q����&Y�bP~�@ؐ��w!9��NJJ���*ϒB>ؚ�E���$�@W%�`� :G��T�TP(�=���luK����TF��ʸE�w�5k5l�#��W(:n%�b9��{��"F�K��"m�r�����Uɳr�IJv������/2A�4ʒ���ϐ4�B��_/aĔ&���P�vA��px��X}�ݣQ���=�:��T�&j,��7��
+W�(E".�� �O�t��#8i`�7v��FaE(G=���0ס�JxU����o:r)ӕ��桷'x`��u���㮠����4Y��R�Id�R��FHQq(�:sz��A�,K����Hp�����I��y202�
+%�^�榖ά��8���+ԫ��o��QO�Z�D)W�>� �PYY��.��dh�����`���+� � i�� ���mcCL�}W��9V�}CݣӴ����?�^_�PmΕ�4X����(*K������E"�Z�Z9s����j���d�i�㊖#������)�S���S^d�WW�ҕH��NCH��շ��������vD����y>�+�*/_Z�'(�匨���-'Bwp��'o"eN�� ��'�җ�#p
+&�P�d�����#�\{eE%Ǿf�vΙ�(و㛏GS>6�(�o���]kkVt���3�_g���](�<�Ucnp,.*�U��'!�q�=��D���)o��%�把�2r;�?�W"�[[����K�Q8v�6�a��)��y�UБ�^��gW��Aj|�(�np@�h�B�T���Y]�C+Р1�/�A1Z��;V�e�[V&AyY����2�BJ_�������������>�mJB��Ҋ�z��$�-]�R��� �2�EM�ͩ��b�ZX����[�����4r�z�f[��o*%M�d�F[�:*�*^�H�Ts������(�8��<����S���nm��h��+��ȨHg҈��~�s��]�"�$��
+�2X������Y�>ݿږd�.�YB󕿷\�=�\(!�v����89�V�TY����=՟a����wPRo�>-��|�۴�[� |��e�u�9��q u��=0Y=P��\^UUݑ�t�����
+:CH)XM�n�g���pX��lk�UWU�U �C�@0�\�_��ɷe��T�(�ȍ��ֶ�� Q �c��Pk���e"��$ǽ{I���յ˶e�]��nn=�^7>�VVU{�{�ʒ&xN�,�
+�z��==�����|w�<��ކ�9k��Uedm�� +j�b�V
+�w��T7-o��Æ�ho�q"� %y"���.��0�OKj�0�esys3�!��v��.���]���7���0�&K�-3��Eג%K�� j0��Wa> ��QaQKk+~\��Jsls�5���$,FJJ����[n��1������w޼�O��Q��r�WSY��U �0�+�ɰ��Ĥ���@���!Xjhn5~�z��Ǵ���inj�����<*qNw/8��M�RsKky&0��SA��Qk��¾�?�Y>SU����l�»�t&���Yέca\�Vj $�O!pP�� �]�IM}���>����7�x�3�BE �
+&p=������TZ¥1�.����G
+�a7e�4L�\I<fp�C�Raр�y���t787 �Ģ�.s-��k�[9�L&p~|�E���k��j����������j��ej|����xݟ^~��5nj�dj,c��{�Yc����
+M��}��LEE�+_T L��Yzq�ˋ�Z�p����B��-�uÖ7�*��*e� ���Q�4�p��mYmV�Jǰ��3g�oȤ���\�֓;�RV��/�z���^6b��4C֠v��(�m-M�eKS�qQ]]c�x#C̵fs��R,,�|_T��������ڬ23�1���vmUU[ �;�۫�*Mo���%`�� �|'� 8WPp�A��.{���=t��w�w�}���*3�@+�ҧ�D ��6{� �x�����F��PY g�E֏<��ig�>a„����N:���/���z�ǟ|�,͍�5!�AV�onnτ/�tw��*S�%K�H���%�םomm�auut���,#
+R+s?�a%�Gԛ=Q����:����Gܗ�{�>��,y�_n;�����Dc�'0���%�򅋖��r�k!� �}U���c�!#�m�⼵,��|ŒJ�����Y���>{�}�̙@�BgԈ����I˖.F��O"�%�2�-S^Ѹ��Й�.p��A��ؔ%��x��iS^O��t% ����KZQIQc�2��w&��2R&(i
+�C�D�<�rA2ί\�g������^���ۙ�~�e���E~(qs���N8I7�t���SeO<��﮹&��\�x�>{�kaD6ZJ��׏�1"��FZ�e��аWV0��a�#�N��/�׍ ���5�/�����N 2���a��{rO?�ĝw���/����~r޹��f���N�%w}}=�fmu +�b3����k�}��q�4;��+l0������e�Юv�̵��7�4���Cp���"� SYa��rϮ���n�@-?��گ��������箺�*f�ъY�"Tùܫ���J
+K�����K�$>�я��ߗ�&J���R�rȵ`�����{�W�������+Ķv������!�J���6�C���w>"� pK�HCJ��,Z����m��l��DGA� �yGwoqi��9���ή�2Wa.J�Em��<;���@�� '���(l�M7*.I�Hn�ݶ�M_�<Y֑#<�nmi�T��(:� +��q��7.[R�
+�YQ��#�����L�\Zm���X0���Pc<�UWV��?��+KJG�ڗq
+9��Þ>���)f�-|���Jq��^&U�7�)�������5�=���O�s��a�ζ��D4e0�*J�� ��XXu��}<��C9��O�v��F.g۰�����lٲ#�8b�lוW�.�,�ۋY���i�$/L��’R��t/���x�5�Nh�̧�+~��� ��m��Xg�:K�tkv�Ga���jآEKȦJ�<a�k��wcv� +6\�t�#k��/�T2Juڜ!`�p�Î;�o�����魫���}���)� +M͵�R��囝Ћ.�uE��4�?�񨱓>u�g45���ɲ�l*]�eL?ڍT,�o�϶��a�Ʒ�R�D�A{���T��4S���`�M f�G~���o��~�g�ڬY�v�qG~��ʜٳ�#=ꨣ����>v��wÔ@�]]/��¯~���n��3G|�����E�4Vd�ٖ���8R�1�ҍ7\���?������a�`@��o�t�ƛlx�Yg���]v�}����o����]tѯkk�/_�hѢ�/�x����n�gϙc����w�a�]w����3�'J���J����ۧ�|��f�Tyz�k�>�ܳ\~ϛ;�����On������%˖�A�d/�}��O���~�m�݆8�rWt�A��Ֆd��Q��ꔕUW�q)�������_B:19��,���.�l���r�v��W_���������>����x�K/�� /��&a��S��+g�H����}�)��e˖|���u�9?=�r&��|��{�M%�,�;����� ~�����/~�{��~KK6Q\ZUQa��/~&��?�S�+w�mw�4[gE�J*.|��O��~��� +7܀�k��0�w���\��Z[���.>3O?�{�;�>�{�{�,�������Z ~����i�M0�կ~u�=?����� ��eT���{U�6�|���{��fɒA�}q鋳^r)�ܹ���̼��}����0�_p�{�����%�ŗ�Ʋ�[n�箻���w;ﺛtp ��g�����,�����_v�3.��Oޖ˙�T�d�\X�x+������k�D% vX/���������3��ӟ�t�%�|����jʔ)��#�<rт�?��
+"��w�>~��_��N��=Z��޺�z�G>�_���w���f�Zsm�fT�A|��3$bU.�SN�� �[��Hg>��Ot�`W�;�z'*inl<����g�?���vѢ����'����7�ٵ�k���8������9��.�h�^y� �}����k_���;ݹ`�BPh�A��n����o���[w�}׫��;|Օ�{m�<��x�⋣R�r�F[�l��H �����k�no�b�V//��o����vN��9�|y�7>��P�_��y��裏Ze_�۫7�xc�Z���(��ַ���/����O�e��n��vh|Í6�}�['��_~�s�O�<��ц��7�� +呵,0��v�F�^xᗿ���_F���!���y'�[?���7�p�u�V]�2��ڳ�T��|�M1_��3��?=�g'�tҹ�ǧ�>6cƌ��ˠ;��᯺[)��VW��7��d���{aBe��O=�ԭ����{�=�����ĩ� zQ=\Q/Z����G{�+�4�z�'w�y�_^� cĘ� d���n���o���[T��������?]w�uqS���&M…� [�*e�m��,�!�#��&�V�:^me�2:�e'Q��qsG[���!���XW�%�5��������zy�K~����L����ǁ��>�Ν���B����+[[zǏo=�u� IDAT.%p��99�q�cG ��E/^���+sd +>�򽝺e<��c/�6����~v0!5��J��K!���_�;��I�-Y^Ittͥ}��3fLO�?u��'g���SN�EӧO�5�6O�;C���u��dPR�4u��ǟ�kj5a~嘣UGkM�<ٚN�������GxO;�x�&�Q��}4rLio����EL�сG<�  $Ro��嵳�1��7�jK<��O<�3{��� 0����1c�Z���{��a��ϟ���l���۲D���N��� ���~�y��$Ag��h�u�9��cM�kM^�s�V#�H���y��
+c���t��F�UN>����Eϴ>��x/�������2x�þ>�C�]`!�Ԥ�����P@�q#����J� пh�2M�5,�{zڃFG���v���[nYQ1C����^{�^^�p�C{�ҾJ��ʠ;);ע���y����Uu�{|UY�z�7l�dhX���^mc�4U�G���q�����J�`>��K�=��*���cո��;G{�=1D*�PZࢂo���!Dc*�2���Q���0�DIHB��K�e�h| ��΢i �T][ /4�V[mEj��{�;��= �@��As����$⓲|>UZ*��~�yi��W����ij➐�hi�-��v�ڻ�9�K4��l�u�J����V[oS1�zӭ�1j�B*|eumT�nB�R�]M�fZ13�%A���Rh�5f�S����j�������7��v$��(]��˶}4j�y�/IWV(��*5��Mg T��߇�_�05��ն1i����{;儘є��J�d,f�(���1&�ӟv��-MD��<��y01z�({�ӦM�B��\u�_���瞵�Z+���U5�*�Nq-�ᚚ����$ O놏�~�=I$uhetNAI��"�� +M�=�Z2�tҖ�4��Q~T���KJ�i-Zo�D.u��;����/+��R` �s�0%�v�v*�/ �mu�$OM�ʠ�n,g6ۺ�F�]�������EʁeA_����� + d2���47,��6[oWU7l��w��*+�O\�,�3qB �C�]\�,)L��c ^[�2.*�P*h ��w�����螷|��Ěa�w�e�a��Q>��� ��.k�� D�CdL��kh�D�o�p�E���PO���$��A^8%8��T���d�F2r��.�3�`�67������7�̘a��'xFP�z]j��.R���I�g(u��;,��)�D$b1~��3ך2y�zӨ,�V�w�%��Q�ט��$s���S��b�di����$�L��e� +�¾��#&M�|���0�4�x�v����i! K�I��T�ԍ�8i�̙�}��-�U��O3��9;��6��4@Iy�7�I��f��~�;؁ˮ��Wj�Z )�UM�&d��:ڥMP��yc2{]>�tL�/��Џ�E'd�� �M����ƙ���#������U�0mں�A՚�gG�f +H�2,#.������_��i<[.�=�yH���eX]��qg�~e„ f}R��mw�~�e�]��+_~��]� ��8j�ږMgʁfcKPJ��AS�@�)Ӽ}�A8�2r���$jS�l�$0�V���f����
+��l�%
+L"��sC8=V�G���SOiF%���`��鼳#?u�i�Y�����u�] η�=n�LU�9s�N�:y���|y2�+�n�����H�~��uŒZCc���b��K���7v��E +˖�9v4P��[w�i믻 +���wtڔ7��[��(�X��x~�U��:�k�2io�f�(s�>Sr���iՆ�,�*
+ij�O/[
+��h�����V���Ѧ���?�" �!3F����]vߍ�H#��|��#u�0d��TwQ.jtk�%����u��mP���g��Y2є(��;󬳮��>��=7�t��\�w4��54j �ё6|�)�����=p?q�Asg�b)q�G0;��KϿ��j���j��\q��l}vuU^)/�@��ҍ�vG=�
+�G~��������ѣG# m"k����#��Y���R��4�k�"�t�h�@��h �-Z!.'T�;�n +MMV0M--����j$��K_�.�e�]t�Op���<Ll�}L�kO�\����(1ٗWVr��g�u��'|���3κ��>�מ�{�k~w�� ���9?��O����ɏ���ړ$���hgM"Ύ�q)u��7���� +�ͤm-�`l��3��'�D"�>��Xް4l��kGr�R��`AoEu�z!���ѕ8)Z �F�W���c>�EL��G�|�⺺�������}��t���xu�|�
+�4���� ��c�ݶ�~��_�;����nuP���,��П� ����%]W�]��d��I�-ЯfDܛo��#�>t�a��W���9��!L��, ��e�p?x��"�0��
+��Q���&�|,$�|�_qi)��5���!\���:�4vܸe�d镶s2J�?Yz4]�J��ڻ~�p3gQ_PZtL4+��r�Þ���W�<�:�ٲ(onYZV^Y��k��Z^ԗ�hil�~M݈EK��p���uw�]�d1Ft���yR ���]-,��LY鲆���
+[�%�) ��~sB<�F��,MFW\�{:���GԑAo���`m�����Nl� �����jk����Î��Ht�M�">ђh�i����}ZX�ƭ��Q�&2���Xq���USc(D"Ƽ� +����#GЈ��!�m�E�¢0�q����bʚ[™�ޞ�N�8��#7�s��g�*
+�vZ�0)�Ћ��9��|_]uU_/�;�b��r�U�ѺXE�ʂ%��E�&��y\�Uڶ�s���j[Z��M����Pw���PE�����T"UR�j�t���9!�C֊B����V�����_�Weʽ&�t�zR�I45u�,4x_��th3��aY������)ߑu�9�Xr��)���/�_41�ȍz,��:�Ar=��.J8v�agX1Na��)���f����a���-#�V�bg��]��XA���jI�u�8����`�1�y\%J�5N+���� .�]"��G �(S�Y�<�q#�M�k����V���M��$�V��5�d�֮ee�\H�Tf��TAgo�tڔ�ꨮJ��@%�~EE}Z�Пt��)÷���EM��&p�W Zw�"]Q�Ҟ�Vnif��00�QW71h�����;n�T�>*��f`�oJ���`y' ը���Z���̴�=q�8 ��> [A��j�[�hS�`��/�hW +z'"S=�&�@D��t9��^�튈&�G�h ��"��*:р�,�Yp���&�^"��ʪ�b�v��1���j�ǭvQH��^���յ5���FGy���EG�8�
+�@n���+Y��`��+�{�-ZT�;�\�*MGr$B퀌��P"�p�S쌍ϴ���,�5Yd��� #QC'u]R�����$��m-�`,�mF�uu���\CГw�%U?H���>vL��[�$5�~����dD�r��l��dAc8�i���dahR,�qg\���b �Z��zʕ9+A�a����6=y�h:t�@ɘ��")y�����Y/�c +�c�i�Rѣ�%��k�˺*��HWf���G�>����`l"�sc�!�pZ�T�%���汇� EN�i��\kQ��ࣳ��vQȿ��P"�e;��ڒL�`Dcf���5hAmœ��u�W��V�N�jn�:���bDo�Pk�:$$2p� +tS���4[Z%!gaT����nhXV��?!�������4��(ďx��ݛ��t
+�p���F��u��A�t�1�R�� >�Dǚ�r�^�MR3��tf�1�J�.=�Ă:��8�� �?Y�c"_��I4_����NU)[wG'��a�'�4 ���N��6�*�,\����p�P�С����3��`�?QT�8�*!$),]�����撆%��\o���B�0�.�V �mA>�R�A`Y�嬢���X@'`1�ν�3�]�) SxU�l{X���P��8okc�!�� �ښ�P����<S�o��Ri�K�2ؑ��K( kTI�KF`
+: �KT{�b*0Nԃ�'0YIj+�}�+P�)o]�{����kd���Z����9��q���$pC��&��j_�n����]�T(Q3��kll.�%W/�2��K��R��l�ɴ�!����'�BxS"UL���o����ytCbM{��ԕ��p���+��4"B�i���gL�VG��z1n� "����;h5�ڲ^�Q`��2Apy8��HM{x��,ADa$�<l�*��yeSH���BG��wx���ub�ԙ�230���J��a. +��_^A�*$�!�4ZL!ZU#��暤x�E�� ]��~ͤA睇{��כ��F�ыf,�u��1�#6��e��� ��~[䖩l�ٮ(QFThR�=��ED=]�+򖖶�0��;��aR ē �'�9~]�#_�y�ọ���.�Y2����E�G"�2����(޺U�G^Ƴ4UꐸŽ�e��!G�( ��X|$Ĺo#�3nN�38ʦxT�0,�#N<�f1����I����.UZ��r�E&�n�ș!��dIЩʶ���K�r�55Fm�d�K��(u`'�(��M�[jU&��Z/Q�~ ��-@�J*���7QRS �j�
+.� ��х�E� 5�%mϝ;W��#�D-f��&PJ�QJH7#�@�*<����
+8H$�� �d j���q ,�<F!њ9^_/�ۀ�\J�6���ހ5f{�aR�v���"m )X��/�`�?��3q�^A}�V���~L�
+�%���E��}T(�d�D�p� r� ɪk��`ɒ�5(�>�_x[9@/$� ���hv���};�(D"� U��&� %�O\a�S%�.b7�V6�4�$SN�O�J�)�ntfޫs ��h ��E���S<aȁ$/�-f���
+����͋aIⰲ�*E3š� z�Ќ'� �w��rD`Z>t��B��L�X�_��s��n�מ�^ Ԣn�Z�� �+ď҉�xB:!T$?+�/��yq� qj����Di�۟x@şh��"��"RH*N0�����y��L!~��z�"�.�%�A�3��Ǎg�=��֯k��n�W�
+�R�1�KzJº2N(�@�-N�+�
+u��(����X�"qMp�mԼP5�����6�� �%�����J{CW3a�P�AK���4�+�3�Q†�����d����� B �`�W>^ + ���s�eHF���هlP�cD�Q"�3��5>�zZ+3$Jk�a�:F5�~5��0��E�� m��j�Z�0�.L��׫(����ʌ]W��FG٘�h4xHJ�F( +��N�QH���r�ߊ��m��(J����2J�l"z�w�,v��1J&�����܄���+��8"�� +����Æ�ޏ�aJNh)��M���͍pX�W4�*QRT�PM�|#9�����+=z�#�<f<�
+�;��IW�%e�Rb�0��F4*b�[�D���}�� +(����L@�lފ�p� �>@D��<�G~ d�J�#
+ �B���&�j��8���n�ј
+�
+��k0Lq�#�\ %� �|Pr��f�P������$ˆ�ˀ�x��2 ��~ jGg�k��������E
+��h�`Yޫt"ik�>D�y`� dD�Rh�* ���^y� ID]�*� +/Y�D���(fV ���@�hB� @�qQ�򾑗���~޿@E(�� R!K����ʴJ��w�F��A�o��b!%��c�� o���1��uY.�y�h�%��� +�'~Ŋ㆐aů�V�ƩGq�H��%�}�6���?� � �?�*�?,�ó!� �� < K
+xRi�J�DF�>��J'��rE�>����V&~���_���ƛg%�^+�> +_Kj@%���A?1��^ ��!
+y�ڐ��� �$6%��L�f��-�#�Ί~���c�9J;�~E���'ئ���7 +]VQ0�t� ��g�D�+£~ �C/ ���wQ9�4��CLJ��� D���M|�H{��п�w ��E+.؅�p~~��t��W�y�b�8D)4�Y�
+�����������=�ce� _"�B���8A<dI +\!00b$����]i��܅_ԭ.����!�R�B�n
+E��)���^�AaEo!�~a���i
+R
+Y��,7�����q:��wQm��������y�j00� )�A�?�n��(���'��(!��O��@^�N��JL�H+&D����S��(v҇iŻ�H��d��4 +���eY{'�F�P���r��p�>Ch�0ǔ�J �Rt)"܌(0PW詨/�F��tA�c�GE����0�I�2�ބ��2C�X����?�)��+V�|;t�>��
+�@��2�����I��U��x^GD9�Hz�}�h.L� .A������ԅ��h�."�P�B�E6��#z�qEňhl 8�3�"�|�G�PeLs�2�\
+W��bBv�zc�(���r��mwFh%�� �C�Sç��/B5�+��(���H��qx�/��!D���O���%�GH/���Z)*��� a�"��]�W��#�D+�.���_.m���P�՘�9�yZ>m�����S *�c��4~4E�G��6�a ��+qɢ���1���b� +O1c�Tz1�����ԝa2
+ �o���Ao~�"|����Ap0�c�_�㦛U�d�g��gD�n�U�/c�Dʃ)��83���sWtgbd��1���Cq"��Ef�a��v�5f ,1�����k���/�~H.,~�N��x +�H1BL��v�u`C,�
+�OG�,�+$�A����gᓘ3�Q� +�k�(�_�[%G���e����X��U٦M(X�~���g�,�/"����W.~�9�!�z� ����b�f~�
+���A�>��CJA�0X �asه��mi3H&�#$VN��P��V�i�]�����]D7��zp��bj�Y�P�(e�� ��7�ۄ�;���CRQ�b" t괌���E ��������`���{���yĐ�~�f��U��wRAs>s�LQ3z���Ą� �1���O��.Y`\��1��bB!���R4���H�x��[����8Dn�e��m0������*|�ׁ������TA�(��=��-P�X��E�a�_;o�A~��=Gk7o<J�o������X�(b$��: �8�"EC�l�n���]x�~�R�(/������s� )8�B0W����qԳ2��F�WL��Ꭸ�!h%��
+�����_���n��6��N`�>b��w�{Ͻ�mn�(7 ���-�}�,B�8Q�F��4�+N^LoC�hu�"f�,"�
+�j�0X�����i��i�\�8��@�0�.��B'�ʘ,Fc~E����N$ (0�2�G��؉���W_}��@����_���zH�Ip�E!��D�����H�MiL^@�<=��p�O���ɚ��*���_�0��A�<�셈F%�H�_�YU���?�a�dUc!�mC9��u����- +����՞dY��+�Osb� 1b\g
+h�Ws��Þ��UG�TmÄTDO��3�%�s�#�Et�u@���jn���|�|�\������@�#�'��� ��΁8ڞN�3� }�TA�TA ����(�5�i�W�k��V�r.��� 0P�� ��]Դ�'>��ss~��n�������_��ɗ�����Y��ٟl��9(�%
+ӞŴ��f\ %�&A�Y� �M)�|����@t($hJ�����Q�tG��ׁ~1��&�p����:!Y���C�އЏ�h�����Zx��c|�҇"9�E4R�YL��<^_K���e�]���GIs�Q�dm�ĉ�-�J�0a�p1�<4�6Rys�5�(kEn�u��_&�I�%��ΘŦ��a� +j�؏�9h%!�r�z�� �$ 6)�E�/�~�̻K�2��v�[w%�����L�:�Nt��� IDAT9dg���r�z�JYWI9�����`� ɶZ�q
+~��{�ڲu5 �g㐥��<�0 �-�7���+Ӫ�[Z�5Emm�㗠�wT#�er�s��'OV XdpDe���� -N��6��pM-��K\�9f_}u���c�C���^�� +��Qj�qub[�j��<66�2J�V`��ȃ.x��4o���]ؾ�Լe�G{�ȉӎ�� ��˚��6s6�3i��O<��UW�~���1r���Yv�x�ø��,W\���Re �c +�������$����F$��_f\v��|�ړ��M5��̻0o�o����=�Q�l��[i=��C>c��wM�z+�����T|�j~�;t�Z|�n��M|�2Q�C�z'=U�*�໺|C��"Y3�0a[aR0!#8�x���m��V4����v�&��%���nk����5��׾�����# �$�TS���Nԗ�2����i�P�D����+XV�����P _�[;۲������m�FN�� �`�E��2���1�l��6�8>��#c��=�����@t��sϟ>}�ŋ��%���3�K�D-*+���8DL��M-ٗ_|i�ͷ7~˜5�<��o.]��W�H�q������
+T;N���'��� +�Ƥp�i��xGQi� +��bV����L���^{54����p�g�#q^$�D�ᘣV��:��
+>�����m���8wi��\�����E�^�vl�������y��1��Dc�����sQÒ��n���kM�8n��>�ٹ�_15�?���sGS��0b��/y��6 (����w�����9�WUf�&2�%R [�x��g�N������ +���jE~�[�]�$n(ot1� +���� D��G:L=:��c�!���6+^��9?9��^�y�_-���}7��� �fX�D�G�%����O��~��q� P<�5g�h.kQ�2��)ZM��Վ�&f�s�1��B����%L�̸���>mjG�� Q|��2a������Wڝ����3�I53���﵆��a_ү�HV��ϼ��p���5�����hnup�1�H+��tKKsme���P8���*4��]�X���#ǘ�MȚ]�T�Y��\�!B�|e����=ǰ?M�A 5�j�����:��<YT�Xذ�koXg�͖d�^olx��yg��s~q�� 4�.j�&�ͼ/�W�w+
+a��dd}��Y�����>���fϞ��tGk���F�!�Λ[[�/X�O}��۽�ޓ�9L��oKvC��<��0 �X1{�N���\�w���W�����z������FII�A��YKǻ
+��7j@1�QV���#Jq��7�64,�8~�6��\r��2��O>�6��qc����E y�ch�q-�,߶�nj��h~�/]*��O<�O������p�)2G!\��y�??�g\�(X$: "���?��Q�|��{�,�>x�� +-��L�O>��lK+�Qg�u��5֘<e�W�]l,>RX흼����'�9�Y^�������ybx=ݷ�~���L�2y���>E�a�}����g�nݰѧ���^���;N���-7�ZZ\:wΜ�9x��`����;/]�hɲ/}����i�;f욳��V[��&/_����]�� "�X�5��l�� ���Lw��/QQ���e�����_z��p�l���r���|[;[��:s�N%rmm��8��\4�_Ԩs�[��Y8'v7?�ze������.�|�'ϝ;פ8f��i����7�5�����5�m@�E _VWӑk��o��F>��*8���X���պ�D�����A�ⶊ�*��y�cyh�=uF��L0���H6K��(��,{�:r_��ׁ�C�g^q������_�5z�1_��W��y���ѮS�̚���O��d�>X�kō����J�0�w�9�]7e�d�#>$xQTS��{����R�R�3��O���?���Zs�'������uÙ�5|�>{}t�엯����������]�d�QG���O|a֬Ǟx����`-?��y$�K�,�m�]������o�ͷ�:k� /��wN%�[�|��g���<p�޼�N;������~��S�?���ٳ�8�4��I.n���~�y��C3��WfʧM]���1�J����!�*���~���q�мkZbMP�uvM��~Y�����d"]�.�=�X7]���ǚ��-Y��NԈ��jk��ꬫ�����<hl|���>����k/~v��?����}�دy�Q�|�^��������z�̻Ʌl���J�PV`���ŋ��+��ߞ b���>D���ʻ��-�
+���D��&��F���R`$� V��@IftNJ%��.¾�\ � �pa$ә �d�q�…���n4�ed��|�駟�47�O�2c��P��=zk��XCC H���b�]�,��5�t���~��ole������G|��__��[��h�V�l_t�EVqm�M�'���o��xy���'}��3����1�ZaB�&���N�������l�Q��7�/}q� ���z�>{��[<�����4��{�q�ۉ*)fK����a�e���+���y �Z�m��_�۫�1;csf�d��9g����S�*j0\A{4��e� >2m̾�1Vc���JǸ�?�מw�u'u�wݭ*]�I$� �>���� q����+��َl[uE� +M)E!N��]�U�i��/����1�g��:GW�l�ɽ3�|y�+a�'Z?VWD��+&:.�B l)6�3�uu��f6��V�0�K���*�:�����%Q�p��2SUL�v-<r��Ct�԰���禦��h���-A����*���9���/.�y���"��T�w��]� +�=�B[����]v����i�]wE���� ���g�҂�IT;0�HQ��|g�w�"M|-E�!S֚DT����t��c����?o�A�o�TSS�B +����_�d�-����o���w%��\���}oi���&����[o9�t^��mij4��Z @o ?��!��c��1 (�]�����g�:S7�|K嬯��d���hW �C�ֶL���2�Ոvޯ�D�c�,0�����j�'@�l�jftr��1��%ɂ�� +֝|�7�v� �n<m��a��tф�Չ��dq?ߴ�m����&����� +,��g��ӑ���Y��p㍣G���=z�`�n��V);�C}�0�ch���j��%\ס�@cᦂ�b� "�!�t�.�{���7t��-�QҜ�\L�&F1g�8��b�L��.X���Ymu���)/Kv��j�UV�,^���i鲆�|�G��_t�Al����/�u֙���u*�2��^P�N�,9��I�;�de*כ�+ +8�4>��s���SOe��Ko2�� +Y�[� K~�xڇ�.�CE��Q�G�{��Ɔ�̖����^}�f׭�^��܏~t'�$�����ҜYl���G!Z{k'�[l�Uk����1b��7���!ϒ>�s���O�&k�;��og\ްp!�Nd�m��I���v���|7�g���g��]�����a�]��h���&�kt��.z}����*J�E J�潾���Vj+� �!:1^���7��"�茓��{� 5���c��J:��̗L8p���ԝ�����|�����^�d[��Z7�Wޞ)jV�V���,�c����U7%� �M�-�oK2 TR���mye�O�������/o��W�������<b����e�z�^g����Y�إq�T�$ 8�^�p�!�1r̲� ,j7(,��[�������ee�~���T/�S,>�jg8�j�� ��`?�� +�^�w[�]�����iJ���rON����(nM���~���WU������pd3䋖��o�Ŗ�'�z�,���M7�Dv3n�B��f�SSU�3y��7�d�=>���[n��An���_��q�}��흵��;m��0�ɥeu#G�Q��h����ԩS�t Ѓ��#�8p�}n��f2-�Ŏ����'�p���?k� +pP�(���z��u��s�?�t� +��'�o^Í_��'O�~�m�-�ZՌ����;���+9���1�|t�=&O\�ч:��f�5;b[�Q~�/��Y ��ן��W�r�M7O����O>���W|�iÇ +5b$ +�eK���6�8��ȣ�� +����\²��s��5�c�;����#��aAؚ#�'��/����<K��QY:��dܰD���鵗�8y�����7w^>8Ǣ����џ�˷�f[ 9ꮙ��Ko'��?\���|j��7�<q�K/<ߛ�F��5��n�Sv�i�w�c�vF���{���N_� +'L��ǥ��_\QS��;�r���g���jʹ��!b�o�����M֚��V9-�%S4�ê��!�@7�?�8�D���w�݆ I"���.���nh��Q�iUNe��:&������~C^��v �4���HϷe[,��%�V��˗5c]A��� i/�%�>2RH)�s�O��b�! �Fsc�o�4�K:�� ��S:�j�뚚�ϲ�ޜ�Ç��Lѱ
+ky��W܂ZR�s��a-�%"�0T��1�$-e�&h��gV\hM����8��v�҆t����DYi@/M�\6UVUR�lX�>|�6�Ȑ�1�`,�ٮ��}����K/��Ve#���NoP2���4������p����|��yҤIq�a*]q�q"ֳ�vN�F�+.������+�C�D{�}���_o�m����<��3O?���Ӧn���k�X�M2�|�u��NWOv� Q47#*�P�r�(���*
+�3C��"$�'/���\G��E����L��r�P�.�����#�N�v�;���Go��������Od1��+�5�����+&��ƽ}�kL��q“�G�Uy[J9 %$�8)�oK��矷��":m8;4��O���1f6��o��D�r��d�-�?�{A�w�*�Di1Rh��ڜ��|�+���W��!��y���h�(A��a!���Wl���k�˖/�E6)����pS��Rp�VY���,�n�ע>��TH��
+P�RS;7ċ�0T"��DPN���MLIL��t�Õ.�Q*'�_{�&Wq���9NO�B$�1��GF����a�a�g`���H�o�k�k{1�gc�>?�����$B ,a���4��s�~�S�}�G�#�B#$��]U׭[��ԩ�:Uu�H|�r^�m*��[��`ݜb�E�L�妎�@�7�oڴ��C��F(9��\�o��r�\���Q ��{
+J"��d8���ll��-K�V�z�5k@^ ������=}ڜ�g{�+�"�)���9��� +m4D"��i���!��Aƣ���l��q��hbڙ�8��2�2Dr((���㉡��H�Xb��"����ϦYo�o(ʺ%�i6Q���Ux���¥�5�(�:j��`&�
+�DB�`,��S$8=>I��񔟼�FD����M��z�֒ �߃�Y��U��Ϙ���Y>ͻ����� r���Sg� p�;���p(e?>��L1�������<AÅ��]�a�<���ڬ��(V3u���Re�v�;g 1ǐq�Ŕ�՟b>�s;J�,+��5.o>Wb���������x��� � �8V��8��5
+Y�嗒% +��a��Cґ�?c�-(������
+�?ձ�d��[���4��dI�ّ��, ��Xh�XN�8p
+� #���׿�l�$���gW>�X������4�P�HY�JGG��4b>��u��y�S�B& �jd�V>����F�]{s��f[:����+���&�Pڰ ��$z�[�ւ����f`  ��,��9n��;`#�D�1!ix~F\|�4p���?~R-�Q8��' E�#7`w�ԩ01��kdj�c�WV,��ː4�wr�<��,� ��u�|��FV�2h.�g2�F�J:������B�J _���eCi(�3YRɴ���J-( ��e.���еp�L����IƂ fr���JƢ^��Ep�� 8Þ��E�*C�*ur�Sì�MI���� � �S�w�\���]�HUh�i�K�'w���5D�LY�_?G�@�ڳ �_3� +��h��_%�fU`�)c0'ܡO!�t�R�B�9{>WG(�����H��v�#��i�&�x�f:Z�.W`���-h�߅���@P؉�e�D+�&�p �L#�h/�ft%�������Ex�-���J)�:9!���0�(N,C�2��hW]�R5�u�K؏y��lt�^'��A�R0��j%�3xB���J`E�I��|fB"I�7����M$P�p�L�H=� g�ġ%X��-~7�;�"ڜr�d,����aS#w����:7�"C��1�s��$�-�|T��=?�*ˮ��FB��t A�2:Q$a�O�Y���]�f��G2ޥ�|��P=a�3�@0-���T\��g�-�0�n:N:��<=)s�T(L$����{��R��&��Ԏ�L $�]� 5�#����d.b��Z܋�ʎ�ne�K�0@o�G�Oi|�wu�����������lf&����"��A����v_k��c-4
+q����J�wAE�A*��� b"��
+��
+����Y�����d���$�SĬ:D�1��۬�(e�:�'�.�T��dm����<M stYd4�j�Q���zPk� ��.��FF�(u%�f�]���f �H�8*وS*!L��D*M>��:�X�4�) +�^���n�䑞���I��[��ɇ4 &���N +�H�F�Oɐ�Z�Ӓ�ܤ�g��� �C��� �L�k3�֟��e�9P$М̩�ࣄ�!L�4@��<� aD���Gf�ID���$y���dK��H�JwA22�-v�DIƹTS
+�Ȗ�Qt�9�8��a�P��t+|�+,�@.��4 +�� 1&�Ų4es�x�Vn��Mda�J -�Y���|w#���d&_dC�R=��?��h,����0�jyQt��J92P�� + +�k��i�0r������ēK3P���>\�^cS���`n և� �x<%��ˣB�_�@�/�~Jz"�%�����#"���}h)I��K:5�:P#�~�U��o ���]~�E��bJ��X���Kw�W�>�Kk��Ų(UI,�UWu���J��o�����zI��1��F��X��~�UH��i
+��:6]k��XJ�k�.�R�_=�e�~��q(n�H���LݥR�
+H�B��䬆aqs:��?Ǧݓb?��&B[�|G$O� aM.]1�55�5�ƚ�MU��LpCgi���Ŗ��b��v ����B��Z/�:>��PC�E��@E��O�������Z ʧ�i�F~�O�L�:VT}JR�u:=w�T��.����`�X�E� +T�?�6%˯�
+g�)��d[�3��c�R�:DϠ��s��:�=�N]���zSc��NC$D׈��j������Ca�nD>�@@N�G��:7� +#���#%U�2���鰮"�4���>�A���Jnԕ��NXo͡6no��Z�� �Їy:"�!P��К�-{�TG�4���N���(�()���qʣdú^1�]�Q9�1�V�1_TbȨ4��%�S^��D��+�ӍCt1��: Ee�-�0��?������� E�a��C�Z�差ݨ�|�?�l��Q
+�6���V��Sԑ�v!��u�<� �̀vT���.5$��J��$�՟Sn��W�ʣo�ȃ�s���R�l1@S�0r�h ��.5���x� ��0wF�����$Ӂ�G;1�(��>�Y�'B +�L��!:"Z"g� ����M�e��N(ͨ����u�|��A]-��jq����bM=W�`F�hɊ�$�4� +�+��N���`%bLm���<����Ȟ�6��
+���2�F����ߑj
+ �>�yiT.u`:*���rs IDATZ׌*\o�}���D['U��ކ�{A��t�4>�,��r��4?�����Q��]@� Gɦ���}���Y�C}x����\P�T���G^ǣ!��e8���h�T}@R�.gJ�E����ȏ�%dȻ:�Q�Z5Iƥ�*8*�c��R�'*C
+* �еX�w2ϴ��X�f +clp ���s���3
+���<��Y�,#���X�ʣ�Q����Q���AH]�:�ʕ�y��Fj�Q5ҐЫ�H���o|��'��ݩ�$��Y�h�[%��h�I�Őw�aHڅy7�E�W�`��գP�hQ��:Fw^��O�ĝ��'�V?�����dS�� ^o�ű�!(���@L+1�P��r2 6U\nVһZ9Q�6PRV����5WQRMr�G�����h�1(��.I�F�(��;���%|�vB�Ķs��?���/�L�o�?�O�݉�X�?�}U���3�]q�e�QAh�!�l����4w�d��"���izRF�e>*��"��T���F���cP�T�Q� +#ń0J�`N���ۼ��c�F��Q��=;�� �!Dk���RE�G�y�H5���=I�
+����:�T�!����.Yc����>|
+X:BM�#�̵��{��GWW-*�CGPr�,���鈘0�1jLb +X�����|D�d�\�X�G�k��2���F%�����Xz��^�K0��^'���f���(�ت�X�겳�r�/�#��T-�qd�]`�\�
+6��T��zN}%)�Q��o�H)�A�Z@U����2Q?5���f��wa�r���$�-�3�ܴ|�r�(����^�o@I�ձ�����>�Mu��ⅱ��ϱ�{| ��蛀`=J�a��,rQw��ر��X’SC%�H�y�e���JV�^v�*cj˲fU�jO�$\��U�St�(����2 �/�bjVӏD�S]z������|�v\��6`\�⤚Z���\
+%�T�� �wĞUm��F��|M@�pkrb�I2��ZS�bTl�]2�|���'M_�c&��yY��T�흑���7��$m,��a~x3�rb�đ9���ƒ�<z�g��ۮ��5% ��׭�7��^n�L�� 5��nU^�����wU`�B��Kڥv&rl�~�Q�B����T
+8֐����r����B���pjt�C;��~�Ƶ�^�?G}T7�
+�D`+!T(��vT�#dtm־�8�kh�4J"�������1>nv�M�x2�z�G9?�Z8���p�����9��&,��zpM�NUL9��͡EΟp�:[��w:�Œ�: +]�b~�i���6%'(8�~���r�c����Б�3r�A�q�؈����m�s.��������i��:�!v4h��x�.8�Se0+��íAf��Rqp�L�P�Vzۓe�X5+W�;�9X!6|83#����wi`ڒ#��[24�RP +P���N�-�tM\f9ȡ�yY�:����-C8� �R����gh0�uy��l��WW����Ǟt�W$
+?u0���s�� Y̚(M�I�PU�[Z��[���( d������u� +{t�b mD>�t|�gV�~�`�]�q����ʣg �����đ�#�p�_���#.�`FV����\����n*6pg=:�ᨢ�S"N�]6�H1)��u� ���Mf*�[`Y"k8(�Z�810����K������ơ�^M������j����c`.���u�"' +A:XeĆ�f$�H~����Ns]�r ���,�!�9r%���~���3f��;�>�N���������]p�u��۔ވ�Ü7鰺d�d89c���o��<� &V0������!�y8�A*vږ*E8#V������0�S�Y�Gcr¡����0�~�߬�"�há?��և�RLc��ǜN�`F�: =��o���]��c�r�����1�[ȕl���R����;h��,�G�D��a6)8Q��k+g E�¸�%��}�5�+#�� �.(I������`�d�l���|%�z�cN��}�qe����y0�1;<%s��+X +i�T$/A������g��ȫ��O?��|x���.��r�����{���~���͙3�>4%`$L�����t`+�!>�(����3�IE�K;�~K&㑎N�3q�ƍ�wu��s��\X��4N�Ɂ����
+jjK$���Mq��56�^�wDA� )�k������"?�B�����G�8�!d!� ��t�������T8��p�|�����9K���oyo8�1���� ��S/���c�+�9��� 8 �ı�?��a8�`V��<0
+#g�a��K��\� �|*��@��GcL��:��±�� +�����&@P�v���y��N�f���� �2���L�m�Xt�����0��&g���.�>&b��%I��`�!��M&+�$��M��ͳ�7�XI3s^�\2�-�*b�j��hQ���⚦���Ԍ�� ��H3[.����D��d��gT�i�PLf G���2�̖-�H�p�~��P�=���4��K#�����ܹ�{��(��E�rxS8���q4���]<7p"�Q�iX� ��I���X �`1�a���Kb�sݺwy��ɓP �����/*U�-�}�6��Fnk���tx���sQ:؆/��FW�"D~�.�sz�4�"��� 6j!~�0��;5TB5�u�����j�A�qȼs��륢��ZA�L�|�]�uwN>�����ͦ��t~�pb�ƾ��w��N�;B�?�d,����¢ A2���+��>}n;��o��� +@T��d�xj����q���<O�>V*��2��J?��D ��tvD���!�j���i8��L��o.��4i
+v[�Vlk_��˟8��r;nL@H�a��i����� +�,,l�v��# �q\�?�vsx\ �! +<��S�tc.���|w��"�$V��|l#�oe
+ZE�dI��ұ�x,��b���̂+��e A!�%�;V(�������&������+�~ww���`�iw +��$��E��)-wd�&�p΁H�E' ^A7��.d��[����b�����|���w��k^�6�(C;i����{���|�9�wf}1�����2�aQ]<II���q<|7BZ>G��.x�W4�j���x���x���ShA� �<(�Z?d�^-B% l�<@M%-�ӎ\$Ӂ �O�3n�B,0����D�%K���^���sf +�}��d�z���D&�|{(9��?�e�ыB'�2������nx՛�#��Y�΢����3�<�����~y׽�z�NL��c��İ�����EWF�3��QTH��u��fe��J�
+�Dی �8���x�5W�(��ɘ�
+ +e=�b�A^�ZV�<��6b)����~�W�>gт�m��n����-���k�؊� ��Z������Ԣ�-La�G�^��I�"mV�� ��O��{��ŋx�k����'�����j�#_��6j"E��v45gh��
+ҕ��;��}7� R_�ꙦLڄu "߾�=�M�8�Ȧr�D����P��_��Ed� 川�9tИ�8I��w�t�Ib�����a�i$�����'�8��g�e��u3w�c;Tz.�����}��7���_������O�8��=��o���'�L���is{�1�zs�b���5g,��ٕN�h<Ex�����FS�f�0�xV#���t~��[�!+}�E(���^<w�\\�Ь�wh�SZ�G�� �2�>q$jZ�3U�J�9 vK���
+o���w��Z��w�?���Yf����� �U}�1�|1���V=���{�� +8�<�9ߺ���|�;��p��W-��f�\��_�y��L6�/n�=g�ŋ +�oLE��?��N�v�WC����C�Q􊫮:���']|�c�=��Y��0�Qi,�X��6�U�0��n��4�w){{Yj�'!&�1��w���s�BL[[�1ri4 ����J�J��x��ݹs�0#���v���Dn[�fbTJ�oa|�ͷ��G�}�ç��eS�dsxL��HX��M����-C �!E[gP��%i��;/- @"?� L���� !����]�$�)�!�Si���$,!��t
+�|g�G���d����{̿]s�UW_�κ�^p�ڷߛ1c���DgO���ή���z����4i"���3g֬s���9���g�������>�E��{�K/�8^�)���j�U()���:||.�l4T!?��Hߡ�HhE�Z��� +�i��v(�$Ҏ?x��������ŞI�.���u�3���K,4wO�l s$�J=E_�ƿ�xeJ�~.g� +��s�Q�õ�|�K.���KK^�9}�}�L��� +��؟��i�{�W.y�_:m���{��x���/n��ٞ� +����?�����Cv��3���� +6��Tj;��u@���)5�J=��"�?ظ�} ��T�L>��D �,��j��4k֭��o���/~�ʲ��7NG;=�$9���2@R����%����k����;nUu�9�>����[cnhD)��E��ڡ:0���-�d��:z��Y'�P,�:��O{\J��ڊV{�p�lw���O�2��]̵���6��k1�;A|: ?1� �х�>1fJ#&��p8�D��!V�‘l* +Ʊ� L����Qq8>KDO>����8F�/��J�{>��s���8��{2��k]��ĕ�� N=�k���ڍ�u�z�m����7�p�1���{�^x1[t��u�b��5:౾o�n��M��!��E�dH�2��H�"`Ҧ�/]���D�$a.�CxB���r�2Y Y��S'3ó�ę��?����� 0��S;;�\���ߛ3}_x�A�\N���Gq�b"�������`��I������5��K�O���߼�T�Ϛ9�n�lް~���˗����㥥�G?^�K���}�9�J�c�G.2rE�u�ݞ9�d���D��������La=��X�dqZ�4��<�.�:TI�gR���/�e�q�c׎p��?��6��+���[��#t�E�_�_?������t��Z�ԭ)M۠p���N�F�:��|ag��$sV��?�M�q���9��P���\2��S�x��V��U�q��/�VO�@!z@x�~E�+��AjD�4��D���IlK �ۉf����>S�w9\XV���I^$@ʮΞ��gF"���,8�k_�*�͛�Ⱥe�f<�.Y���u�=�� ��ױ���ŋO?��l!��e�Cq���wayȌ�f" �[�y� �hN7!L�Y�fժUГ��Q$b�@[C[p�T2jNh9�FI6���YQ�X+^[֒�[�ހ�߽�U󮠬�P3�YK9h�����{)z�А���k֭au{��L"�^�իW��@���j��ӦMˤ�^���z9�㺦͜���a�����8���l��*C�$S�*pZR�c����,��k!�b�R�o� +�|z��Wzz���#��)R��lD��<I̙7����,���|4�ϗ\���<�Xv۬� +����x�ŗ���[�����v��<묳{�ć�� t���S�/u ���W5�.��V��(�����/�O�T"Sz���8����;�\>p�3��߃&���э5��<M� s��O���}K���tz�-Ж;R̃^�L���h�(
+������T ��]���3�Vv6'$�k߫W���`8�/�eĂ�S1T�J&3�fC�2,� ���vR<�2��SN��w�?}��Y�itc�0Ζ���L���pêQk
+O��^ޠ�Z��0�^�����SO�<Ϭ̸J�O�N߁J�rq�H����X8�w
+�F�T"�r���;��������,G�<��z��[ƣ�Ì��J�]n� wF�Tch� +�e6�����{�e���Gߛ�o��//�o^t����^�L���o��{w9j�N`���owo�ʕ+N\�(���*�D2��x�N�.�1�Ӂ��H��YB��,�AV��Å��+x|E�^.Y�Q����8�p�򙧟Z�x�ȕ&�O4Ȳ������Y���@n9^a�̟��3�����W�h�e����h<�d����-�, �ޘ$G&�]|�p�6��Y�ȃ�O��@5�Yí��o~B�H[{�u+�#�S�X:چח
+�T�(`ͨ��8La��f.ZeiK%����ʝ�X� T�@C�`{#� o�'��M� Ă(I���f@<��Ю�!Q#�p� +�gϞ�b�UW]�߻v�~�V�\}�7/��'�!T�E��Z�4(��������f�4>�d�Ctoo;;��;��#�����oI}�=Y
+���\&����ƯCCR +Qr�8`�"���k�h��^�{��"L��\�ԧ>�֫�?�y7�E���r�q��d��øE�F�8�T{�v~��^G[��)�D��-0�7<���־�T�9�O���2��N�w؋k�?�i��iS�v [��7��2�la��KJ���G��ѹp�n�����c�樣>��s��i�-_�e� ��
+; +9�`u��_���?>����S�1��?��lK够�� xܮ3���ҥK�F�_�mk,nBY0���0��,s]�������?��w�+������^r��@#�i*TȤ���{���0Ăx*���^L(dنg���&Η� �r֬��˦�ܟv=������Bxב3!hZ�u���Pvip P�E���= ���?\ֶ{\��g-�X��;f�;����|*�6���ۯ;��1�]����bڊ;�F�����1�S��< + +�E1�'���B��p��B�2���1Wx���P��$���$[���8
+��?��5�����O:��P��c��J���wͪ�v��K1�%+�N0 E������}�f��l �~�mh�Q�ʾ`�����[�p᫯�6�(�������º��F�5���!�y��;��P�@�P�6%��q��izH`<:��=:p���!9�'�'��>��˯��"_�z�G|�(0广<�j�
+��qȡqء!�{���>����r�]l�=��������}�C�wd�b��������}�˂�HN,�m�t�� +�`�,8�-�����ؒ�0���3@��M6>
+�X���P�D�%CK,[����tD&�t�B�e�i��M�4��-N/k5ÃQ�W_�t!�D�$��v���6�a�}�HK-L�ٽa� ��G)����Xt�IT8Ҟ�s��ĮMf��R���x�ͤ1EO��W�����7$�g��H���"J�V�[����O�gϵ�:�k2/� C��;M�u�e;��l����U/-;��/E[%g攽d �R�%�9� �+ ���i�f<:���t'���⺷P�W_}uٲ��5��O_z�?��)�Ҝ9�8�
+�]�D���O�Vg&�摣��>��Ȗ�`8���ܾ�XqF� �x��):���PWȏ��:���/��J)Mu�V/{��(�DV��x�{i��x��O�:��� dl�8]��h ��?�|�6��w33���qQ���Q�2�aF��^���%�C[��&/��A��X��GMϸ�&�&�d!7�?@��>l^WȻr�ߖ>���<̚N����;{���S&|\���s����|�|:���8T˺ k�t���8��h��K1�53���6޷�PK�/w��� ��V�3`���T��T��!W��CG���#�G�d��d���f� fjfKoO�P����C�{9:�e[%g +���� @$f��3�J]��0�E�C{��+6
+�}|�Y�ph��!;�A\Y�V�;�9�MC�iZb�� c#�o%^�q�]`�db�Ӧ�$ʦ�X�#�0e����j*�$���f �����Lt�׎�4z��@��.�,z7��|r���<�-�&\�D���ׇ��������G]`у9x��}fL��
+;�L2��J������� ހѲTʁR9��$�+fq]i�D��:;��<�
+�IDAT���N�7���*g@<~�p"�NG�W,���-�B?#R!��c�x����Ґp��#��)��P��^m�~o����t�Շ�t^j0lU�#N�cL�kНI�#�05U�P�4��t�d"fsy;Ñ|.e*���wZoW:WF��He����x�a+�_��cP*�HFB��5�l2O1�v����B,����fB4
+�B�� *���ʖ9�̦����/"+�V�_�8w���V��VN��_6B��*`G�G��Be%�_z��3,e�3=?8is24��ct�9�vp,O��K8p�:8��0��ty�f��$���6V�S��03�cJ�e �̡(&�X/�D��ʑidOiSbԿ��+�it�ֶv�ZrTy���$�C[և�'��.��s��u6+o���m�w�<����^Xz�7.�qӈH,h�PR� �k���.���A��������ۇ~[��}�j��jm�@#�n�L�'� +d�����;���D��C]80���%�H$�1�@ ;�-z& �e*cZU̕���1 d�gt�8a�r����5 +�Z� ���`���(I�9D&[�۫k>(GݠP@!���z�+��o,<��F�5! ��"�&�nM�$;1U�摣��p�� s���X@,�L{��g��VT��B�����h��e���=�a[��.�����^_`x`����[ǼO ЖN��fp:c�I�I6 +�����Q航�����ȡ�K�B�n�4,l�ċ�͜���Ų�嗙s�-�ƻ�2�_3!,��� D�^n�n��6���`����ɊՖtL��l��Jv 6����=8��ET��=^_����Tg�]��*�Zz��uq�?d8.Y@)���T/�=,�/+�҄�*�z�9����]��`<� �Йmtb.,;T�6��J�y��w֗Bn��F19�. ��*r7U��41�Fh�<�Ҕ���2�HM��MeSX�y��18Ek�qR�d�r$ + +ċ������H2��`|�P��/�~Aw�d�9��?��%ٻ��?�b�����
+�e�h��9V��;ü����xUA�h�ӓ,:FJB#�~�B}�t������֎fӠ�Ѿ  c����v {(�yKT�� �Z���lLD��T�\Aj�c<����x��'J2�Wevј���d0�Ä'E+�` +Tc;.�p��r���b8J�D$cp62A��JL���+��DSH����������N�0$�ff_G�+�LƎ��ń�X/��0=g4r%�f;M,�Y*�R�^��Ț�,�3�g$(�����;3'y�4����؀?���1���p��T���6 h�p�9�#�c \&�U�T�4J�u��*>Z��,S��@��qNf���XnR#���f��p��NO�O]V{�f��6@��rFN
+F�D�!�B��|�2�^�~jLA�O��d�>�� ����Q;��9�����p/
+Ζ��DLPU���B�� �vTL�t&��#x�嗳R攕�b��lZ��O�^Y�_����tF�������v��c)
+{��DJ���"&rlʽ;��Sk�F��6��D
+�(�m Àh�; +�'�K���������VC��(�>F9
+����Qڒ�d��"}Ii��Wr�ie@,u�K�)�ܪ� ��թ��vH���^�/�<.e�V�8���LJ�W��s�;�g�\WUS��~X-0o�b$^�1����O�VY�7�F�FZ��&�H���J�ҷ�l<�/'�G��|Y�y�LF#(�N�Ƣ�d��f\�HJ sR���+r��o�X��Ǹ��7�N_�j݇���HY�d$h���;n�f�0�{+3�"hֹ���OTp#\�W�=�w��~X��^%ɚA����7#�����i^��#O���+�⫏�S�P�fG������@5O���C����x�� �Y�N�8���PG���.�H�����z�3~j��� �$F  +�'���ab�Lf��]�&�>U�ͽ�o��]#��W�O5Y�+��2��BI�c���$��
+C橎%y /r��� +�ʄEgԺ�(�@x��Gq��qo��f?͵p6���yY������0��H Sq�i\�$^�$�����ƴ�t+ɂ��QbZW�;F��0��;�0�x�1�ъ*f3��*%1�-K���n�+��n7(��_�c���=j�$F�1�QI9.J� ����Kr(�ɽ����>�90#1�Z-��F�X���$�aY8V��"�&� bv
+����*@�� �`6�x=V��qQR/!�z��;��/Oh�[�����H��:��7 +��U����)/�w �Xq<r�⷇�N#��� �i�a.��p�(əs&G,��N:r�R�oO9ZiZK`�aA�)�r"�x�`xDz��ׂ���E�=}NC������?0�v&� �/�۳��ρ/���$�A�c�•�ŵPY�K+ܢ��S��K`��E�]=ei� ��lHbxO대��hݐ\�Ȧ(�a�W`K�J��:#R�uN��|y����ֽE�]F��Z ِ,�ȉ�@=CV� +^�6��h�ߢ@�-
+����V��@96~�d��-
+�(Т�^F��bbk��^�ʭ�(Т�N���Vov�Zٵ(�<���g�z�E��@K��qڵ�lQ�E���z������84|��-
+�(0��/̴ָ��Ӣ@�-
+�P��\� �<+IEND�B`�
\ No newline at end of file

Modified: trunk/docs/pom.xml
===================================================================
--- trunk/docs/pom.xml 2011-02-11 14:20:58 UTC (rev 36571)
+++ trunk/docs/pom.xml 2011-02-11 17:22:48 UTC (rev 36572)
@@ -183,7 +183,7 @@
                 <ant antfile="build.xml" dir="${basedir}" target="build">
                   <property name="build.directory" value="${build.directory}"/>
                   <!-- may be ${project.version} when tagged -->
-                  <property name="project.version" value="2.7-M3"/>
+                  <property name="project.version" value="2.7-RC1"/>
                 </ant>
               </tasks>
             </configuration>



------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
GeoTools-commits mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-commits
Loading...