[tomcat6] 01/13: Imported Upstream version 6.0.37

Tony Mancill tmancill at alioth.debian.org
Sun Aug 4 05:22:18 UTC 2013


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

tmancill pushed a commit to branch master
in repository tomcat6.

commit 2e8855b3fba10324a6a9b4392017d1172432d9b0
Author: tony mancill <tmancill at debian.org>
Date:   Sat Aug 3 20:44:44 2013 -0700

    Imported Upstream version 6.0.37
---
 NOTICE                                             |    2 +-
 RUNNING.txt                                        |  120 +-
 STATUS.txt                                         |   57 +-
 bin/catalina.sh                                    |   20 +-
 bin/daemon.sh                                      |  239 ++
 bin/setclasspath.sh                                |    9 +-
 build.properties.default                           |   20 +-
 build.xml                                          |    9 +-
 conf/web.xml                                       | 4041 ++++++++++++++++++--
 dist.xml                                           |   13 +-
 eclipse.classpath                                  |    2 +-
 extras.xml                                         |   15 +-
 java/javax/servlet/http/HttpServlet.java           |    8 +-
 java/javax/servlet/http/HttpServletResponse.java   |   60 +-
 .../catalina/authenticator/FormAuthenticator.java  |   12 +-
 .../catalina/core/ApplicationFilterConfig.java     |    8 +-
 .../apache/catalina/core/AprLifecycleListener.java |    4 +-
 .../catalina/core/LocalStrings_es.properties       |    2 +-
 java/org/apache/catalina/core/StandardWrapper.java |   39 +-
 java/org/apache/catalina/manager/Constants.java    |    2 +-
 .../catalina/manager/HTMLManagerServlet.java       |    4 +-
 .../apache/catalina/manager/host/Constants.java    |    2 +-
 .../org/apache/catalina/security/SecurityUtil.java |   71 +-
 java/org/apache/catalina/servlets/CGIServlet.java  |    8 +-
 java/org/apache/catalina/ssi/SSIProcessor.java     |   10 +-
 java/org/apache/catalina/startup/TldConfig.java    |    2 +
 .../group/interceptors/TcpFailureDetector.java     |   14 +-
 .../apache/catalina/valves/ErrorReportValve.java   |    6 +-
 java/org/apache/catalina/valves/RemoteIpValve.java |   10 +-
 .../apache/coyote/http11/Http11AprProtocol.java    |   17 +
 .../coyote/http11/InternalAprInputBuffer.java      |    5 +
 .../coyote/http11/InternalAprOutputBuffer.java     |    5 +
 .../apache/coyote/http11/InternalInputBuffer.java  |    5 +
 .../apache/coyote/http11/InternalOutputBuffer.java |    5 +
 .../coyote/http11/filters/ChunkedInputFilter.java  |   83 +-
 java/org/apache/jasper/compiler/JDTCompiler.java   |    4 +
 .../apache/jasper/compiler/TldLocationsCache.java  |    2 +
 java/org/apache/juli/DateFormatCache.java          |   14 +-
 .../apache/naming/java/javaURLContextFactory.java  |   10 +-
 java/org/apache/tomcat/jni/SSL.java                |   18 +-
 java/org/apache/tomcat/util/buf/B2CConverter.java  |   19 +-
 .../tomcat/util/http/LocalStrings.properties       |    2 +
 java/org/apache/tomcat/util/http/Parameters.java   |   88 +-
 .../org/apache/tomcat/util/log/UserDataHelper.java |  149 +
 java/org/apache/tomcat/util/net/AprEndpoint.java   |   57 +
 .../tomcat/util/net/res/LocalStrings.properties    |    7 +
 res/maven/jasper.pom                               |    2 +-
 webapps/docs/appdev/deployment.xml                 |   10 +-
 webapps/docs/appdev/introduction.xml               |   20 +-
 webapps/docs/apr.xml                               |   10 +
 webapps/docs/architecture/overview.xml             |    2 +-
 webapps/docs/changelog.xml                         |  157 +-
 webapps/docs/config/context.xml                    |  129 +-
 webapps/docs/config/executor.xml                   |    3 +-
 webapps/docs/config/http.xml                       |   21 +-
 webapps/docs/config/systemprops.xml                |   39 +
 webapps/docs/config/valve.xml                      |   32 +-
 webapps/docs/deployer-howto.xml                    |   33 +-
 webapps/docs/manager-howto.xml                     |  152 +-
 webapps/docs/monitoring.xml                        |  512 +--
 webapps/docs/realm-howto.xml                       |    2 +-
 webapps/docs/setup.xml                             |   29 +-
 webapps/docs/tomcat-docs.xsl                       |   24 +-
 webapps/docs/tribes/tomcat-docs.xsl                |    4 +-
 webapps/docs/windows-service-howto.xml             |    2 +-
 webapps/host-manager/META-INF/context.xml          |   11 +-
 webapps/manager/META-INF/context.xml               |   11 +-
 webapps/manager/WEB-INF/jsp/sessionDetail.jsp      |    2 +-
 webapps/manager/WEB-INF/jsp/sessionsList.jsp       |    2 +-
 69 files changed, 5441 insertions(+), 1067 deletions(-)

diff --git a/NOTICE b/NOTICE
index aaa19b6..908b08c 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Tomcat
-Copyright 1999-2012 The Apache Software Foundation
+Copyright 1999-2013 The Apache Software Foundation
 
 This product includes software developed by
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/RUNNING.txt b/RUNNING.txt
index 7237b0b..c7cd5d0 100644
--- a/RUNNING.txt
+++ b/RUNNING.txt
@@ -15,7 +15,7 @@
   limitations under the License.
 ================================================================================
 
-$Id: RUNNING.txt 1348600 2012-06-10 14:11:54Z kkolinko $
+$Id: RUNNING.txt 1457227 2013-03-16 09:08:34Z kkolinko $
 
             ===================================================
             Running The Apache Tomcat 6.0 Servlet/JSP Container
@@ -75,34 +75,41 @@ to prepare the command that starts Tomcat.
 
 (3.1) Set CATALINA_HOME (required) and CATALINA_BASE (optional)
 
-The CATALINA_HOME and CATALINA_BASE environment variables are used to
-specify the location of Apache Tomcat and the location of its active
-configuration, respectively.
+The CATALINA_HOME environment variable should be set to the location of the
+root directory of the "binary" distribution of Tomcat.
 
-The CATALINA_HOME environment variable should be set as defined in (2.2)
-above. The Tomcat startup scripts have some logic to set this variable
-automatically if it is absent (based on the location of the script in
-Unixes and on the current directory in Windows), but this logic might not work
-in all circumstances.
+An example was given in (2.2) above.
 
-The CATALINA_BASE environment variable is optional and is further described
-in the "Multiple Tomcat Instances" section below. If it is absent, it defaults
-to be equal to CATALINA_HOME.
+The Tomcat startup scripts have some logic to set this variable
+automatically if it is absent, based on the location of the startup script
+in *nix and on the current directory in Windows. That logic might not work
+in all circumstances, so setting the variable explicitly is recommended.
+
+The CATALINA_BASE environment variable specifies location of the root
+directory of the "active configuration" of Tomcat. It is optional. It
+defaults to be equal to CATALINA_HOME.
+
+Using distinct values for the CATALINA_HOME and CATALINA_BASE variables is
+recommended to simplify further upgrades and maintenance. It is documented
+in the "Multiple Tomcat Instances" section below.
 
 
 (3.2) Set JRE_HOME or JAVA_HOME (required)
 
-The JRE_HOME variable is used to specify location of a JRE that is used to
-start Tomcat.
+These variables are used to specify location of a Java Runtime
+Environment or of a Java Development Kit that is used to start Tomcat.
 
-The JAVA_HOME variable is used to specify location of a JDK. It is used instead
-of JRE_HOME.
+The JRE_HOME variable is used to specify location of a JRE. The JAVA_HOME
+variable is used to specify location of a JDK.
 
 Using JAVA_HOME provides access to certain additional startup options that
 are not allowed when JRE_HOME is used.
 
 If both JRE_HOME and JAVA_HOME are specified, JRE_HOME is used.
 
+The recommended place to specify these variables is a "setenv" script. See
+below.
+
 
 (3.3) Other variables (optional)
 
@@ -123,32 +130,31 @@ A similar variable is JAVA_OPTS. It is used less frequently. It allows
 specification of options that are used both to start and to stop Tomcat as well
 as for other commands.
 
-Do not use JAVA_OPTS to specify memory limits. You do not need much memory
-for a small process that is used to stop Tomcat. Those settings belong to
-CATALINA_OPTS.
+Note: Do not use JAVA_OPTS to specify memory limits. You do not need much
+memory for a small process that is used to stop Tomcat. Those settings
+belong to CATALINA_OPTS.
 
-Another frequently used variable is CATALINA_PID (on *nix platforms only). It
-specifies the location of the file where process id of the forked Tomcat java
-process will be written. This setting is optional. It will enable the
+Another frequently used variable is CATALINA_PID (on *nix only). It
+specifies the location of the file where process id of the forked Tomcat
+java process will be written. This setting is optional. It will enable the
 following features:
 
- - better protection against duplicate start attempts and
- - allows forceful termination of Tomcat process when it does not react to
-   the standard shutdown command.
+ *  better protection against duplicate start attempts and
+ *  allows forceful termination of Tomcat process when it does not react to
+    the standard shutdown command.
 
 
-(3.4) setenv script (optional)
+(3.4) Using the "setenv" script (optional, recommended)
 
 Apart from CATALINA_HOME and CATALINA_BASE, all environment variables can
-be specified in the "setenv" script.
+be specified in the "setenv" script. The script is placed either into
+CATALINA_BASE/bin or into CATALINA_HOME/bin directory and is named
+setenv.bat (on Windows) or setenv.sh (on *nix). The file has to be
+readable.
 
-The script is named setenv.bat (Windows) or setenv.sh (*nix). It can be
-placed either into CATALINA_BASE/bin or into CATALINA_HOME/bin. The file
-has to be readable.
-
-By default the setenv script file is absent. If the setenv script is
-present both in CATALINA_BASE and in CATALINA_HOME, the one in
-CATALINA_BASE is used.
+By default the setenv script file is absent. If the script file is present
+both in CATALINA_BASE and in CATALINA_HOME, the one in CATALINA_BASE is
+preferred.
 
 For example, to configure the JRE_HOME and CATALINA_PID variables you can
 create the following script file:
@@ -158,28 +164,40 @@ On Windows, %CATALINA_BASE%\bin\setenv.bat:
   set "JRE_HOME=%ProgramFiles%\Java\jre6"
   exit /b 0
 
-On Unix, $CATALINA_BASE/bin/setenv.sh:
+On *nix, $CATALINA_BASE/bin/setenv.sh:
 
   JRE_HOME=/usr/java/latest
   CATALINA_PID="$CATALINA_BASE/tomcat.pid"
 
-You cannot configure CATALINA_HOME and CATALINA_BASE variables in the
-setenv script, because they are used to find that file.
+
+The CATALINA_HOME and CATALINA_BASE variables cannot be configured in the
+setenv script, because they are used to locate that file.
+
+All the environment variables described here and the "setenv" script are
+used only if you use the standard scripts to launch Tomcat. For example, if
+you have installed Tomcat as a service on Windows, the service wrapper
+launches Java directly and does not use the script files.
 
 
 (4) Start Up Tomcat
 
 (4.1) Tomcat can be started by executing one of the following commands:
 
-      %CATALINA_HOME%\bin\startup.bat         (Windows)
+  On Windows:
 
-      $CATALINA_HOME/bin/startup.sh           (Unix)
+      %CATALINA_HOME%\bin\startup.bat
 
-   or
+    or
 
-      %CATALINA_HOME%\bin\catalina.bat start  (Windows)
+      %CATALINA_HOME%\bin\catalina.bat start
 
-      $CATALINA_HOME/bin/catalina.sh start    (Unix)
+  On *nix:
+
+      $CATALINA_HOME/bin/startup.sh
+
+    or
+
+      $CATALINA_HOME/bin/catalina.sh start
 
 (4.2) After startup, the default web applications included with Tomcat will be
       available by visiting:
@@ -196,15 +214,21 @@ setenv script, because they are used to find that file.
 
 (5.1) Tomcat can be shut down by executing one of the following commands:
 
-      %CATALINA_HOME%\bin\shutdown.bat       (Windows)
+  On Windows:
+
+      %CATALINA_HOME%\bin\shutdown.bat
+
+    or
+
+      %CATALINA_HOME%\bin\catalina.bat stop
 
-      $CATALINA_HOME/bin/shutdown.sh         (Unix)
+  On *nix:
 
-   or
+      $CATALINA_HOME/bin/shutdown.sh
 
-      %CATALINA_HOME%\bin\catalina.bat stop  (Windows)
+    or
 
-      $CATALINA_HOME/bin/catalina.sh stop    (Unix)
+      $CATALINA_HOME/bin/catalina.sh stop
 
 ==================================================
 Advanced Configuration - Multiple Tomcat Instances
@@ -290,6 +314,8 @@ The file will look like the following:
   <?xml version="1.0" encoding="UTF-8"?>
   <Context docBase="${catalina.home}/webapps/manager"
     antiResourceLocking="false" privileged="true" useHttpOnly="true" >
+    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
+         allow="127\.0\.0\.1" />
   </Context>
 
 See Deployer chapter in User Guide and Context and Host chapters in the
diff --git a/STATUS.txt b/STATUS.txt
index a781cc0..a447af5 100644
--- a/STATUS.txt
+++ b/STATUS.txt
@@ -15,7 +15,7 @@
   limitations under the License.
 ================================================================================
 
-$Id: STATUS.txt 1398256 2012-10-15 12:06:28Z kkolinko $
+$Id: STATUS.txt 1476932 2013-04-29 09:19:27Z jfclere $
 
                          =================================
                          Apache Tomcat 6.0 Patch Proposals
@@ -31,43 +31,6 @@ PATCHES ACCEPTED TO BACKPORT:
 PATCHES PROPOSED TO BACKPORT:
   [ New proposals should be added at the end of the list ]
 
-* Backport UserDataHelper class (issue 52184)
-  Provide greater control over the logging of errors triggered by invalid
-  input data (i.e. data over which Tomcat has no control).
-
-  Note: cookies logging (o.a.t.util.http.Cookies) does not need to be
-  addressed in Tomcat 6, because all logging in that class here is done at
-  debug level.
-
-  http://people.apache.org/~kkolinko/patches/2012-03-26_tc6_UserDataHelper.patch
-  (includes a new file, copied from trunk:
-  svn cp ../../trunk/java/org/apache/tomcat/util/log/UserDataHelper.java at 1242371 java/org/apache/tomcat/util/log/UserDataHelper.java
-  )
-  +1: kkolinko
-  -1:
-
-* For https://issues.apache.org/bugzilla/show_bug.cgi?id=52055
-  Ensure that filters are recycled.
-  Inspired by r1334790 (TC7), r565964 (TC6 Nio)
-  I do not have evidence that this change matters, but it should not hurt.
-  The nextRequest() method already recycles the filters. If it has been called,
-  then lastActiveFilter is -1 and the new code will be NOOP.
-  http://people.apache.org/~kkolinko/patches/2012-06-02_tc6_recycle.patch
-  +1: kkolinko, schultz
-  -1:
-
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53481
-  Add support for SSLHonorCipherOrder
-  http://svn.apache.org/viewvc?view=revision&revision=1371298
-  http://svn.apache.org/viewvc?view=revision&revision=1371302 (rolls-back inadvertent addition of TOMCAT-NEXT.txt)
-  http://svn.apache.org/viewvc?view=revision&revision=1371620 (tab -> spaces)
-  +1: schultz, kkolinko, jfclere
-  -1:
-     -- Note that a bug has been found in the feature to backport which
-        requires an update to tcnative:
-        https://issues.apache.org/bugzilla/show_bug.cgi?id=53969
-
-
 PATCHES/ISSUES THAT ARE STALLED
 
 * Backport JSP unloading patch (BZ48358).
@@ -85,21 +48,5 @@ PATCHES/ISSUES THAT ARE STALLED
               We can stall this item until we get some feedback about 7.0.5.
       markt - r1172614 needs to be included in this proposal. With that patch,
               my testing shows that the unloading works as designed
+      kkolinko - r1428358 (r1428355) is needed - a fix for BZ 54260.
   -1:
-
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=52918
-  Add WebSocket support to Tomcat 6
-  +1: fhanik
-  -0: jfclere
-  -0: kkolinko:
-       - Interesting, but I do not think there is much interest in it.
-         If one needs this feature I would suggest to upgrade to Tomcat 7.
-         If one cannot upgrade to Tomcat 7 then they probably cannot
-         upgrade to a later Tomcat 6 either.
-       - The protocol specification still evolves. I think it is too risky
-         to implement websockets for Tomcat 6.
-       - Formally, the proposal does not have a link to the patch.
-       - The patch in Bugzilla does not include latest changes from Tomcat 7. E.g.
-            http://svn.apache.org/viewvc?view=revision&revision=1380841
-         (Is one supposed to just copy the current version of websocket
-         package from Tomcat 7 here?)
diff --git a/bin/catalina.sh b/bin/catalina.sh
index 41cd97c..1d347a8 100755
--- a/bin/catalina.sh
+++ b/bin/catalina.sh
@@ -81,7 +81,7 @@
 #                   Example (all one line)
 #                   LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
 #
-# $Id: catalina.sh 1146097 2011-07-13 15:25:05Z markt $
+# $Id: catalina.sh 1476739 2013-04-28 09:13:33Z jfclere $
 # -----------------------------------------------------------------------------
 
 # OS specific support.  $var _must_ be set to either true or false.
@@ -218,9 +218,7 @@ if [ -z "$LOGGING_CONFIG" ]; then
 fi
 
 if [ -z "$LOGGING_MANAGER" ]; then
-  JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
-else
-  JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER"
+  LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
 fi
 
 # ----- Execute The Requested Command -----------------------------------------
@@ -269,7 +267,7 @@ if [ "$1" = "debug" ] ; then
         echo "Using Security Manager"
       fi
       shift
-      exec "$_RUNJDB" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+      exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
         -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
         -sourcepath "$CATALINA_HOME"/../../java \
         -Djava.security.manager \
@@ -279,7 +277,7 @@ if [ "$1" = "debug" ] ; then
         -Djava.io.tmpdir="$CATALINA_TMPDIR" \
         org.apache.catalina.startup.Bootstrap "$@" start
     else
-      exec "$_RUNJDB" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+      exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
         -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
         -sourcepath "$CATALINA_HOME"/../../java \
         -Dcatalina.base="$CATALINA_BASE" \
@@ -297,7 +295,7 @@ elif [ "$1" = "run" ]; then
       echo "Using Security Manager"
     fi
     shift
-    exec "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+    exec "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
       -Djava.security.manager \
       -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
@@ -306,7 +304,7 @@ elif [ "$1" = "run" ]; then
       -Djava.io.tmpdir="$CATALINA_TMPDIR" \
       org.apache.catalina.startup.Bootstrap "$@" start
   else
-    exec "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+    exec "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
       -Dcatalina.base="$CATALINA_BASE" \
       -Dcatalina.home="$CATALINA_HOME" \
@@ -361,7 +359,7 @@ elif [ "$1" = "start" ] ; then
       echo "Using Security Manager"
     fi
     shift
-    "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+    "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
       -Djava.security.manager \
       -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
@@ -372,7 +370,7 @@ elif [ "$1" = "start" ] ; then
       >> "$CATALINA_OUT" 2>&1 &
 
   else
-    "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+    "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
       -Dcatalina.base="$CATALINA_BASE" \
       -Dcatalina.home="$CATALINA_HOME" \
@@ -422,7 +420,7 @@ elif [ "$1" = "stop" ] ; then
     fi
   fi
   
-  "$_RUNJAVA" $JAVA_OPTS \
+  "$_RUNJAVA" $LOGGING_MANAGER $JAVA_OPTS \
     -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
     -Dcatalina.base="$CATALINA_BASE" \
     -Dcatalina.home="$CATALINA_HOME" \
diff --git a/bin/daemon.sh b/bin/daemon.sh
new file mode 100755
index 0000000..132dc99
--- /dev/null
+++ b/bin/daemon.sh
@@ -0,0 +1,239 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# -----------------------------------------------------------------------------
+# Commons Daemon wrapper script.
+#
+# $Id: daemon.sh 1202058 2011-11-15 06:37:12Z mturk $
+# -----------------------------------------------------------------------------
+#
+# resolve links - $0 may be a softlink
+ARG0="$0"
+while [ -h "$ARG0" ]; do
+  ls=`ls -ld "$ARG0"`
+  link=`expr "$ls" : '.*-> \(.*\)$'`
+  if expr "$link" : '/.*' > /dev/null; then
+    ARG0="$link"
+  else
+    ARG0="`dirname $ARG0`/$link"
+  fi
+done
+DIRNAME="`dirname $ARG0`"
+PROGRAM="`basename $ARG0`"
+while [ ".$1" != . ]
+do
+  case "$1" in
+    --java-home )
+        JAVA_HOME="$2"
+        shift; shift;
+        continue
+    ;;
+    --catalina-home )
+        CATALINA_HOME="$2"
+        shift; shift;
+        continue
+    ;;
+    --catalina-base )
+        CATALINA_BASE="$2"
+        shift; shift;
+        continue
+    ;;
+    --catalina-pid )
+        CATALINA_PID="$2"
+        shift; shift;
+        continue
+    ;;
+    --tomcat-user )
+        TOMCAT_USER="$2"
+        shift; shift;
+        continue
+    ;;
+    * )
+        break
+    ;;
+  esac
+done
+# OS specific support (must be 'true' or 'false').
+cygwin=false;
+darwin=false;
+case "`uname`" in
+    CYGWIN*)
+        cygwin=true
+        ;;
+    Darwin*)
+        darwin=true
+        ;;
+esac
+
+# Use the maximum available, or set MAX_FD != -1 to use that
+test ".$MAX_FD" = . && MAX_FD="maximum"
+# Setup parameters for running the jsvc
+#
+test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
+# Set JAVA_HOME to working JDK or JRE
+# JAVA_HOME=/opt/jdk-1.6.0.22
+# If not set we'll try to guess the JAVA_HOME
+# from java binary if on the PATH
+#
+if [ -z "$JAVA_HOME" ]; then
+    JAVA_BIN="`which java 2>/dev/null || type java 2>&1`"
+    test -x "$JAVA_BIN" && JAVA_HOME="`dirname $JAVA_BIN`"
+    test ".$JAVA_HOME" != . && JAVA_HOME=`cd "$JAVA_HOME/.." >/dev/null; pwd`
+else
+    JAVA_BIN="$JAVA_HOME/bin/java"
+fi
+
+# Only set CATALINA_HOME if not already set
+test ".$CATALINA_HOME" = . && CATALINA_HOME=`cd "$DIRNAME/.." >/dev/null; pwd`
+test ".$CATALINA_BASE" = . && CATALINA_BASE="$CATALINA_HOME"
+test ".$CATALINA_MAIN" = . && CATALINA_MAIN=org.apache.catalina.startup.Bootstrap
+test ".$JSVC" = . && JSVC="$CATALINA_BASE/bin/jsvc"
+
+# Ensure that any user defined CLASSPATH variables are not used on startup,
+# but allow them to be specified in setenv.sh, in rare case when it is needed.
+CLASSPATH=
+JAVA_OPTS=
+if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
+  . "$CATALINA_BASE/bin/setenv.sh"
+elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then
+  . "$CATALINA_HOME/bin/setenv.sh"
+fi
+
+# Add on extra jar files to CLASSPATH
+# tomcat-juli.jar can be over-ridden per instance
+test ".$CLASSPATH" != . && CLASSPATH="${CLASSPATH}:"
+if [ "$CATALINA_BASE" != "$CATALINA_HOME" ] && [ -r "$CATALINA_BASE/bin/tomcat-juli.jar" ] ; then
+  CLASSPATH="$CLASSPATH$CATALINA_BASE/bin/tomcat-juli.jar:$CATALINA_HOME/bin/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"
+else
+  CLASSPATH="$CLASSPATH$CATALINA_HOME/bin/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"
+fi
+
+test ".$CATALINA_OUT" = . && CATALINA_OUT="$CATALINA_BASE/logs/catalina-daemon.out"
+test ".$CATALINA_TMP" = . && CATALINA_TMP="$CATALINA_BASE/temp"
+
+# Set juli LogManager config file if it is present and an override has not been issued
+if [ -z "$LOGGING_CONFIG" ]; then
+  if [ -r "$CATALINA_BASE/conf/logging.properties" ]; then
+    LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
+  else
+    # Bugzilla 45585
+    LOGGING_CONFIG="-Dnop"
+  fi
+fi
+
+test ".$LOGGING_MANAGER" = . && LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
+JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER"
+
+# Set -pidfile
+test ".$CATALINA_PID" = . && CATALINA_PID="$CATALINA_BASE/logs/catalina-daemon.pid"
+
+# Increase the maximum file descriptors if we can
+if [ "$cygwin" = "false" ]; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ "$?" -eq 0 ]; then
+        # Darwin does not allow RLIMIT_INFINITY on file soft limit
+        if [ "$darwin" = "true" -a "$MAX_FD_LIMIT" = "unlimited" ]; then
+            MAX_FD_LIMIT=`/usr/sbin/sysctl -n kern.maxfilesperproc`
+        fi
+        test ".$MAX_FD" = ".maximum" && MAX_FD="$MAX_FD_LIMIT"
+        ulimit -n $MAX_FD
+        if [ "$?" -ne 0 ]; then
+            echo "$PROGRAM: Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        echo "$PROGRAM: Could not query system maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# ----- Execute The Requested Command -----------------------------------------
+case "$1" in
+    run     )
+      shift
+      "$JSVC" $* \
+      $JSVC_OPTS \
+      -java-home "$JAVA_HOME" \
+      -pidfile "$CATALINA_PID" \
+      -wait 10 \
+      -nodetach \
+      -outfile "&1" \
+      -errfile "&2" \
+      -classpath "$CLASSPATH" \
+      "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMP" \
+      $CATALINA_MAIN
+      exit $?
+    ;;
+    start   )
+      "$JSVC" $JSVC_OPTS \
+      -java-home "$JAVA_HOME" \
+      -user $TOMCAT_USER \
+      -pidfile "$CATALINA_PID" \
+      -wait 10 \
+      -outfile "$CATALINA_OUT" \
+      -errfile "&1" \
+      -classpath "$CLASSPATH" \
+      "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMP" \
+      $CATALINA_MAIN
+      exit $?
+    ;;
+    stop    )
+      "$JSVC" $JSVC_OPTS \
+      -stop \
+      -pidfile "$CATALINA_PID" \
+      -classpath "$CLASSPATH" \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMP" \
+      $CATALINA_MAIN
+      exit $?
+    ;;
+    version  )
+      "$JSVC" \
+      -java-home "$JAVA_HOME" \
+      -pidfile "$CATALINA_PID" \
+      -classpath "$CLASSPATH" \
+      -errfile "&2" \
+      -version \
+      -check \
+      $CATALINA_MAIN
+      if [ "$?" = 0 ]; then
+        "$JAVA_BIN" \
+        -classpath "$CATALINA_HOME/lib/catalina.jar" \
+        org.apache.catalina.util.ServerInfo
+      fi
+      exit $?
+    ;;
+    *       )
+      echo "Unknown command: \`$1'"
+      echo "Usage: $PROGRAM ( commands ... )"
+      echo "commands:"
+      echo "  run               Start Tomcat without detaching from console"
+      echo "  start             Start Tomcat"
+      echo "  stop              Stop Tomcat"
+      echo "  version           What version of commons daemon and Tomcat"
+      echo "                    are you running?"
+      exit 1
+    ;;
+esac
diff --git a/bin/setclasspath.sh b/bin/setclasspath.sh
index b608691..c7f3d57 100755
--- a/bin/setclasspath.sh
+++ b/bin/setclasspath.sh
@@ -18,14 +18,17 @@
 # -----------------------------------------------------------------------------
 #  Set CLASSPATH and Java options
 #
-#  $Id: setclasspath.sh 795037 2009-07-17 10:52:16Z markt $
+#  $Id: setclasspath.sh 1432355 2013-01-12 01:37:43Z schultz $
 # -----------------------------------------------------------------------------
 
 # Make sure prerequisite environment variables are set
 if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then
-  # Bugzilla 37284 (reviewed).
   if $darwin; then
-    if [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then
+    # Bugzilla 54390
+    if [ -x '/usr/libexec/java_home' ] ; then
+      export JAVA_HOME=`/usr/libexec/java_home`
+    # Bugzilla 37284 (reviewed).
+    elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then
       export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"
     fi
   else
diff --git a/build.properties.default b/build.properties.default
index f8e3d8d..cf0acea 100644
--- a/build.properties.default
+++ b/build.properties.default
@@ -21,16 +21,16 @@
 # modules that Tomcat depends on.  Copy this file to "build.properties"
 # in the top-level source directory, and customize it as needed.
 #
-# $Id: build.properties.default 1398688 2012-10-16 07:54:48Z jfclere $
+# $Id: build.properties.default 1476935 2013-04-29 09:26:13Z jfclere $
 # -----------------------------------------------------------------------------
 
 # ----- Version Control Flags -----
 version.major=6
 version.minor=0
-version.build=36
-version.patch=0
+version.build=0
+version.patch=37
 version.suffix=-dev
-version=6.0.36
+version=6.0.37
 
 # ----- Default Base Path for Dependent Packages -----
 # Please note this path must be absolute, not relative,
@@ -108,17 +108,17 @@ wsdl4j-lib.jar=${wsdl4j-lib.home}/wsdl4j-${wsdl4j-lib.version}.jar
 # - noTldJars in o.a.j.compiler.TldLocationsCache
 # - res/maven/jasper.pom
 # - eclipse.classpath
-jdt.version=3.7.2
-jdt.release=R-3.7.2-201202080800
+jdt.version=4.2.2
+jdt.release=R-4.2.2-201302041200
 jdt.home=${base.path}/ecj-${jdt.version}
 jdt.jar=${jdt.home}/ecj-${jdt.version}.jar
 # The download will be moved to the archive area eventually. We are taking care of that in advance.
 # Note older JARs were called ecj.jar. Newer JARs are called ecj-${jdt.version}.jar
-jdt.loc.1=http://archive.eclipse.org/eclipse/downloads/drops/${jdt.release}/ecj-${jdt.version}.jar
-jdt.loc.2=http://download.eclipse.org/eclipse/downloads/drops/${jdt.release}/ecj-${jdt.version}.jar
+jdt.loc.1=http://archive.eclipse.org/eclipse/downloads/drops4/${jdt.release}/ecj-${jdt.version}.jar
+jdt.loc.2=http://download.eclipse.org/eclipse/downloads/drops4/${jdt.release}/ecj-${jdt.version}.jar
 
 # ----- Tomcat native library -----
-tomcat-native.version=1.1.23
+tomcat-native.version=1.1.27
 tomcat-native.home=${base.path}/tomcat-native-${tomcat-native.version}
 tomcat-native.tar.gz=${tomcat-native.home}/tomcat-native.tar.gz
 tomcat-native.loc.1=${base-tomcat.loc.1}/tomcat-connectors/native/${tomcat-native.version}/source/tomcat-native-${tomcat-native.version}-src.tar.gz
@@ -147,7 +147,7 @@ nsis.nsisdl.dll=${nsis.home}/Plugins/NSISdl.dll
 nsis.loc=${base-sf.loc}/nsis/nsis-2.46.zip
 
 # ----- Commons Daemon, version 1.0-Alpha or later -----
-commons-daemon.version=1.0.10
+commons-daemon.version=1.0.15
 commons-daemon.home=${base.path}/commons-daemon-${commons-daemon.version}
 commons-daemon.jar=${commons-daemon.home}/commons-daemon-${commons-daemon.version}.jar
 commons-daemon.native.win.home=${commons-daemon.home}/windows
diff --git a/build.xml b/build.xml
index ae9f60e..febb625 100644
--- a/build.xml
+++ b/build.xml
@@ -53,10 +53,11 @@
 
   <!-- Build Defaults -->
   <property name="tomcat.home"           value="${basedir}"/>
-  <property name="tomcat.build"          value="${basedir}/output/build"/>
-  <property name="tomcat.classes"        value="${basedir}/output/classes"/>
-  <property name="tomcat.dist"           value="${basedir}/output/dist"/>
-  <property name="tomcat.manifests"      value="${basedir}/output/manifests"/>
+  <property name="tomcat.output"         value="${basedir}/output"/>
+  <property name="tomcat.build"          value="${tomcat.output}/build"/>
+  <property name="tomcat.classes"        value="${tomcat.output}/classes"/>
+  <property name="tomcat.dist"           value="${tomcat.output}/dist"/>
+  <property name="tomcat.manifests"      value="${tomcat.output}/manifests"/>
   <property name="test.failonerror"      value="true"/>
   <property name="test.runner"           value="junit.textui.TestRunner"/>
 
diff --git a/conf/web.xml b/conf/web.xml
index 165bc7c..16cc2a6 100644
--- a/conf/web.xml
+++ b/conf/web.xml
@@ -551,590 +551,3852 @@
   <!-- deployment descriptor.                                               -->
 
     <mime-mapping>
-        <extension>abs</extension>
-        <mime-type>audio/x-mpeg</mime-type>
+        <extension>123</extension>
+        <mime-type>application/vnd.lotus-1-2-3</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ai</extension>
-        <mime-type>application/postscript</mime-type>
+        <extension>3dml</extension>
+        <mime-type>text/vnd.in3d.3dml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>aif</extension>
-        <mime-type>audio/x-aiff</mime-type>
+        <extension>3ds</extension>
+        <mime-type>image/x-3ds</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>aifc</extension>
-        <mime-type>audio/x-aiff</mime-type>
+        <extension>3g2</extension>
+        <mime-type>video/3gpp2</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>aiff</extension>
-        <mime-type>audio/x-aiff</mime-type>
+        <extension>3gp</extension>
+        <mime-type>video/3gpp</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>aim</extension>
-        <mime-type>application/x-aim</mime-type>
+        <extension>7z</extension>
+        <mime-type>application/x-7z-compressed</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>art</extension>
-        <mime-type>image/x-jg</mime-type>
+        <extension>aab</extension>
+        <mime-type>application/x-authorware-bin</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>asf</extension>
-        <mime-type>video/x-ms-asf</mime-type>
+        <extension>aac</extension>
+        <mime-type>audio/x-aac</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>asx</extension>
-        <mime-type>video/x-ms-asf</mime-type>
+        <extension>aam</extension>
+        <mime-type>application/x-authorware-map</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>au</extension>
-        <mime-type>audio/basic</mime-type>
+        <extension>aas</extension>
+        <mime-type>application/x-authorware-seg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>avi</extension>
-        <mime-type>video/x-msvideo</mime-type>
+        <extension>abs</extension>
+        <mime-type>audio/x-mpeg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>avx</extension>
-        <mime-type>video/x-rad-screenplay</mime-type>
+        <extension>abw</extension>
+        <mime-type>application/x-abiword</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>bcpio</extension>
-        <mime-type>application/x-bcpio</mime-type>
+        <extension>ac</extension>
+        <mime-type>application/pkix-attr-cert</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>bin</extension>
-        <mime-type>application/octet-stream</mime-type>
+        <extension>acc</extension>
+        <mime-type>application/vnd.americandynamics.acc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>bmp</extension>
-        <mime-type>image/bmp</mime-type>
+        <extension>ace</extension>
+        <mime-type>application/x-ace-compressed</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>body</extension>
-        <mime-type>text/html</mime-type>
+        <extension>acu</extension>
+        <mime-type>application/vnd.acucobol</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>cdf</extension>
-        <mime-type>application/x-cdf</mime-type>
+        <extension>acutc</extension>
+        <mime-type>application/vnd.acucorp</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>cer</extension>
-        <mime-type>application/x-x509-ca-cert</mime-type>
+        <extension>adp</extension>
+        <mime-type>audio/adpcm</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>class</extension>
-        <mime-type>application/java</mime-type>
+        <extension>aep</extension>
+        <mime-type>application/vnd.audiograph</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>cpio</extension>
-        <mime-type>application/x-cpio</mime-type>
+        <extension>afm</extension>
+        <mime-type>application/x-font-type1</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>csh</extension>
-        <mime-type>application/x-csh</mime-type>
+        <extension>afp</extension>
+        <mime-type>application/vnd.ibm.modcap</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>css</extension>
-        <mime-type>text/css</mime-type>
+        <extension>ahead</extension>
+        <mime-type>application/vnd.ahead.space</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>dib</extension>
-        <mime-type>image/bmp</mime-type>
+        <extension>ai</extension>
+        <mime-type>application/postscript</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>doc</extension>
-        <mime-type>application/msword</mime-type>
+        <extension>aif</extension>
+        <mime-type>audio/x-aiff</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>dtd</extension>
-        <mime-type>application/xml-dtd</mime-type>
+        <extension>aifc</extension>
+        <mime-type>audio/x-aiff</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>dv</extension>
-        <mime-type>video/x-dv</mime-type>
+        <extension>aiff</extension>
+        <mime-type>audio/x-aiff</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>dvi</extension>
-        <mime-type>application/x-dvi</mime-type>
+        <extension>aim</extension>
+        <mime-type>application/x-aim</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>eps</extension>
-        <mime-type>application/postscript</mime-type>
+        <extension>air</extension>
+        <mime-type>application/vnd.adobe.air-application-installer-package+zip</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>etx</extension>
-        <mime-type>text/x-setext</mime-type>
+        <extension>ait</extension>
+        <mime-type>application/vnd.dvb.ait</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>exe</extension>
-        <mime-type>application/octet-stream</mime-type>
+        <extension>ami</extension>
+        <mime-type>application/vnd.amiga.ami</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>gif</extension>
-        <mime-type>image/gif</mime-type>
+        <extension>anx</extension>
+        <mime-type>application/annodex</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>gtar</extension>
-        <mime-type>application/x-gtar</mime-type>
+        <extension>apk</extension>
+        <mime-type>application/vnd.android.package-archive</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>gz</extension>
-        <mime-type>application/x-gzip</mime-type>
+        <extension>appcache</extension>
+        <mime-type>text/cache-manifest</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>hdf</extension>
-        <mime-type>application/x-hdf</mime-type>
+        <extension>application</extension>
+        <mime-type>application/x-ms-application</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>hqx</extension>
-        <mime-type>application/mac-binhex40</mime-type>
+        <extension>apr</extension>
+        <mime-type>application/vnd.lotus-approach</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>htc</extension>
-        <mime-type>text/x-component</mime-type>
+        <extension>arc</extension>
+        <mime-type>application/x-freearc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>htm</extension>
-        <mime-type>text/html</mime-type>
+        <extension>art</extension>
+        <mime-type>image/x-jg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>html</extension>
-        <mime-type>text/html</mime-type>
+        <extension>asc</extension>
+        <mime-type>application/pgp-signature</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>hqx</extension>
-        <mime-type>application/mac-binhex40</mime-type>
+        <extension>asf</extension>
+        <mime-type>video/x-ms-asf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ief</extension>
-        <mime-type>image/ief</mime-type>
+        <extension>asm</extension>
+        <mime-type>text/x-asm</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>jad</extension>
-        <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
+        <extension>aso</extension>
+        <mime-type>application/vnd.accpac.simply.aso</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>jar</extension>
-        <mime-type>application/java-archive</mime-type>
+        <extension>asx</extension>
+        <mime-type>video/x-ms-asf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>java</extension>
-        <mime-type>text/plain</mime-type>
+        <extension>atc</extension>
+        <mime-type>application/vnd.acucorp</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>jnlp</extension>
-        <mime-type>application/x-java-jnlp-file</mime-type>
+        <extension>atom</extension>
+        <mime-type>application/atom+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>jpe</extension>
-        <mime-type>image/jpeg</mime-type>
+        <extension>atomcat</extension>
+        <mime-type>application/atomcat+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>jpeg</extension>
-        <mime-type>image/jpeg</mime-type>
+        <extension>atomsvc</extension>
+        <mime-type>application/atomsvc+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>jpg</extension>
-        <mime-type>image/jpeg</mime-type>
+        <extension>atx</extension>
+        <mime-type>application/vnd.antix.game-component</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>js</extension>
-        <mime-type>text/javascript</mime-type>
+        <extension>au</extension>
+        <mime-type>audio/basic</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>jsf</extension>
-        <mime-type>text/plain</mime-type>
+        <extension>avi</extension>
+        <mime-type>video/x-msvideo</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>jspf</extension>
-        <mime-type>text/plain</mime-type>
+        <extension>avx</extension>
+        <mime-type>video/x-rad-screenplay</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>kar</extension>
-        <mime-type>audio/x-midi</mime-type>
+        <extension>aw</extension>
+        <mime-type>application/applixware</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>latex</extension>
-        <mime-type>application/x-latex</mime-type>
+        <extension>axa</extension>
+        <mime-type>audio/annodex</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>m3u</extension>
-        <mime-type>audio/x-mpegurl</mime-type>
+        <extension>axv</extension>
+        <mime-type>video/annodex</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mac</extension>
-        <mime-type>image/x-macpaint</mime-type>
+        <extension>azf</extension>
+        <mime-type>application/vnd.airzip.filesecure.azf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>man</extension>
-        <mime-type>application/x-troff-man</mime-type>
+        <extension>azs</extension>
+        <mime-type>application/vnd.airzip.filesecure.azs</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mathml</extension>
-        <mime-type>application/mathml+xml</mime-type> 
+        <extension>azw</extension>
+        <mime-type>application/vnd.amazon.ebook</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>me</extension>
-        <mime-type>application/x-troff-me</mime-type>
+        <extension>bat</extension>
+        <mime-type>application/x-msdownload</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mid</extension>
-        <mime-type>audio/x-midi</mime-type>
+        <extension>bcpio</extension>
+        <mime-type>application/x-bcpio</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>midi</extension>
-        <mime-type>audio/x-midi</mime-type>
+        <extension>bdf</extension>
+        <mime-type>application/x-font-bdf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mif</extension>
-        <mime-type>application/x-mif</mime-type>
+        <extension>bdm</extension>
+        <mime-type>application/vnd.syncml.dm+wbxml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mov</extension>
-        <mime-type>video/quicktime</mime-type>
+        <extension>bed</extension>
+        <mime-type>application/vnd.realvnc.bed</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>movie</extension>
-        <mime-type>video/x-sgi-movie</mime-type>
+        <extension>bh2</extension>
+        <mime-type>application/vnd.fujitsu.oasysprs</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mp1</extension>
-        <mime-type>audio/x-mpeg</mime-type>
+        <extension>bin</extension>
+        <mime-type>application/octet-stream</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mp2</extension>
-        <mime-type>audio/x-mpeg</mime-type>
+        <extension>blb</extension>
+        <mime-type>application/x-blorb</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mp3</extension>
-        <mime-type>audio/x-mpeg</mime-type>
+        <extension>blorb</extension>
+        <mime-type>application/x-blorb</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mp4</extension>
-        <mime-type>video/mp4</mime-type>
+        <extension>bmi</extension>
+        <mime-type>application/vnd.bmi</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mpa</extension>
-        <mime-type>audio/x-mpeg</mime-type>
+        <extension>bmp</extension>
+        <mime-type>image/bmp</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mpe</extension>
-        <mime-type>video/mpeg</mime-type>
+        <extension>body</extension>
+        <mime-type>text/html</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mpeg</extension>
-        <mime-type>video/mpeg</mime-type>
+        <extension>book</extension>
+        <mime-type>application/vnd.framemaker</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mpega</extension>
-        <mime-type>audio/x-mpeg</mime-type>
+        <extension>box</extension>
+        <mime-type>application/vnd.previewsystems.box</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mpg</extension>
-        <mime-type>video/mpeg</mime-type>
+        <extension>boz</extension>
+        <mime-type>application/x-bzip2</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>mpv2</extension>
-        <mime-type>video/mpeg2</mime-type>
+        <extension>bpk</extension>
+        <mime-type>application/octet-stream</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ms</extension>
-        <mime-type>application/x-wais-source</mime-type>
+        <extension>btif</extension>
+        <mime-type>image/prs.btif</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>nc</extension>
-        <mime-type>application/x-netcdf</mime-type>
+        <extension>bz</extension>
+        <mime-type>application/x-bzip</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>oda</extension>
-        <mime-type>application/oda</mime-type>
+        <extension>bz2</extension>
+        <mime-type>application/x-bzip2</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Database -->
-        <extension>odb</extension>
-        <mime-type>application/vnd.oasis.opendocument.database</mime-type>
+        <extension>c</extension>
+        <mime-type>text/x-c</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Chart -->
-        <extension>odc</extension>
-        <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
+        <extension>c11amc</extension>
+        <mime-type>application/vnd.cluetrust.cartomobile-config</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Formula -->
-        <extension>odf</extension>
-        <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
+        <extension>c11amz</extension>
+        <mime-type>application/vnd.cluetrust.cartomobile-config-pkg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Drawing -->
-        <extension>odg</extension>
-        <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
+        <extension>c4d</extension>
+        <mime-type>application/vnd.clonk.c4group</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Image -->
-        <extension>odi</extension>
-        <mime-type>application/vnd.oasis.opendocument.image</mime-type>
+        <extension>c4f</extension>
+        <mime-type>application/vnd.clonk.c4group</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Master Document -->
-        <extension>odm</extension>
-        <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
+        <extension>c4g</extension>
+        <mime-type>application/vnd.clonk.c4group</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Presentation -->
-        <extension>odp</extension>
-        <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
+        <extension>c4p</extension>
+        <mime-type>application/vnd.clonk.c4group</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Spreadsheet -->
-        <extension>ods</extension>
-        <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
+        <extension>c4u</extension>
+        <mime-type>application/vnd.clonk.c4group</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Text -->
-        <extension>odt</extension>
-        <mime-type>application/vnd.oasis.opendocument.text</mime-type>
+        <extension>cab</extension>
+        <mime-type>application/vnd.ms-cab-compressed</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ogg</extension>
-        <mime-type>application/ogg</mime-type>
+        <extension>caf</extension>
+        <mime-type>audio/x-caf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Drawing Template -->
-        <extension>otg</extension>
-        <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
+        <extension>cap</extension>
+        <mime-type>application/vnd.tcpdump.pcap</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- HTML Document Template -->
-        <extension>oth</extension>
-        <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
+        <extension>car</extension>
+        <mime-type>application/vnd.curl.car</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Presentation Template -->
-        <extension>otp</extension>
-        <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
+        <extension>cat</extension>
+        <mime-type>application/vnd.ms-pki.seccat</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Spreadsheet Template -->
-        <extension>ots</extension>
-        <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
+        <extension>cb7</extension>
+        <mime-type>application/x-cbr</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- OpenDocument Text Template -->
-        <extension>ott</extension>
-        <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
+        <extension>cba</extension>
+        <mime-type>application/x-cbr</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pbm</extension>
-        <mime-type>image/x-portable-bitmap</mime-type>
+        <extension>cbr</extension>
+        <mime-type>application/x-cbr</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pct</extension>
-        <mime-type>image/pict</mime-type>
+        <extension>cbt</extension>
+        <mime-type>application/x-cbr</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pdf</extension>
-        <mime-type>application/pdf</mime-type>
+        <extension>cbz</extension>
+        <mime-type>application/x-cbr</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pgm</extension>
-        <mime-type>image/x-portable-graymap</mime-type>
+        <extension>cc</extension>
+        <mime-type>text/x-c</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pic</extension>
-        <mime-type>image/pict</mime-type>
+        <extension>cct</extension>
+        <mime-type>application/x-director</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pict</extension>
-        <mime-type>image/pict</mime-type>
+        <extension>ccxml</extension>
+        <mime-type>application/ccxml+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pls</extension>
-        <mime-type>audio/x-scpls</mime-type>
+        <extension>cdbcmsg</extension>
+        <mime-type>application/vnd.contact.cmsg</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>png</extension>
-        <mime-type>image/png</mime-type>
+        <extension>cdf</extension>
+        <mime-type>application/x-cdf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pnm</extension>
-        <mime-type>image/x-portable-anymap</mime-type>
+        <extension>cdkey</extension>
+        <mime-type>application/vnd.mediastation.cdkey</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pnt</extension>
-        <mime-type>image/x-macpaint</mime-type>
+        <extension>cdmia</extension>
+        <mime-type>application/cdmi-capability</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ppm</extension>
-        <mime-type>image/x-portable-pixmap</mime-type>
+        <extension>cdmic</extension>
+        <mime-type>application/cdmi-container</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ppt</extension>
-        <mime-type>application/vnd.ms-powerpoint</mime-type>
+        <extension>cdmid</extension>
+        <mime-type>application/cdmi-domain</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>pps</extension>
-        <mime-type>application/vnd.ms-powerpoint</mime-type>
+        <extension>cdmio</extension>
+        <mime-type>application/cdmi-object</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ps</extension>
-        <mime-type>application/postscript</mime-type>
+        <extension>cdmiq</extension>
+        <mime-type>application/cdmi-queue</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>psd</extension>
-        <mime-type>image/x-photoshop</mime-type>
+        <extension>cdx</extension>
+        <mime-type>chemical/x-cdx</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>qt</extension>
-        <mime-type>video/quicktime</mime-type>
+        <extension>cdxml</extension>
+        <mime-type>application/vnd.chemdraw+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>qti</extension>
-        <mime-type>image/x-quicktime</mime-type>
+        <extension>cdy</extension>
+        <mime-type>application/vnd.cinderella</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>qtif</extension>
+        <extension>cer</extension>
+        <mime-type>application/pkix-cert</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cfs</extension>
+        <mime-type>application/x-cfs-compressed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cgm</extension>
+        <mime-type>image/cgm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>chat</extension>
+        <mime-type>application/x-chat</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>chm</extension>
+        <mime-type>application/vnd.ms-htmlhelp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>chrt</extension>
+        <mime-type>application/vnd.kde.kchart</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cif</extension>
+        <mime-type>chemical/x-cif</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cii</extension>
+        <mime-type>application/vnd.anser-web-certificate-issue-initiation</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cil</extension>
+        <mime-type>application/vnd.ms-artgalry</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cla</extension>
+        <mime-type>application/vnd.claymore</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>class</extension>
+        <mime-type>application/java</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>clkk</extension>
+        <mime-type>application/vnd.crick.clicker.keyboard</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>clkp</extension>
+        <mime-type>application/vnd.crick.clicker.palette</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>clkt</extension>
+        <mime-type>application/vnd.crick.clicker.template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>clkw</extension>
+        <mime-type>application/vnd.crick.clicker.wordbank</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>clkx</extension>
+        <mime-type>application/vnd.crick.clicker</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>clp</extension>
+        <mime-type>application/x-msclip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cmc</extension>
+        <mime-type>application/vnd.cosmocaller</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cmdf</extension>
+        <mime-type>chemical/x-cmdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cml</extension>
+        <mime-type>chemical/x-cml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cmp</extension>
+        <mime-type>application/vnd.yellowriver-custom-menu</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cmx</extension>
+        <mime-type>image/x-cmx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cod</extension>
+        <mime-type>application/vnd.rim.cod</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>com</extension>
+        <mime-type>application/x-msdownload</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>conf</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cpio</extension>
+        <mime-type>application/x-cpio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cpp</extension>
+        <mime-type>text/x-c</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cpt</extension>
+        <mime-type>application/mac-compactpro</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>crd</extension>
+        <mime-type>application/x-mscardfile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>crl</extension>
+        <mime-type>application/pkix-crl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>crt</extension>
+        <mime-type>application/x-x509-ca-cert</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cryptonote</extension>
+        <mime-type>application/vnd.rig.cryptonote</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>csh</extension>
+        <mime-type>application/x-csh</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>csml</extension>
+        <mime-type>chemical/x-csml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>csp</extension>
+        <mime-type>application/vnd.commonspace</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>css</extension>
+        <mime-type>text/css</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cst</extension>
+        <mime-type>application/x-director</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>csv</extension>
+        <mime-type>text/csv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cu</extension>
+        <mime-type>application/cu-seeme</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>curl</extension>
+        <mime-type>text/vnd.curl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cww</extension>
+        <mime-type>application/prs.cww</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cxt</extension>
+        <mime-type>application/x-director</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cxx</extension>
+        <mime-type>text/x-c</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dae</extension>
+        <mime-type>model/vnd.collada+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>daf</extension>
+        <mime-type>application/vnd.mobius.daf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dart</extension>
+        <mime-type>application/vnd.dart</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dataless</extension>
+        <mime-type>application/vnd.fdsn.seed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>davmount</extension>
+        <mime-type>application/davmount+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dbk</extension>
+        <mime-type>application/docbook+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dcr</extension>
+        <mime-type>application/x-director</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dcurl</extension>
+        <mime-type>text/vnd.curl.dcurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dd2</extension>
+        <mime-type>application/vnd.oma.dd2+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ddd</extension>
+        <mime-type>application/vnd.fujixerox.ddd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>deb</extension>
+        <mime-type>application/x-debian-package</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>def</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>deploy</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>der</extension>
+        <mime-type>application/x-x509-ca-cert</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dfac</extension>
+        <mime-type>application/vnd.dreamfactory</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dgc</extension>
+        <mime-type>application/x-dgc-compressed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dib</extension>
+        <mime-type>image/bmp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dic</extension>
+        <mime-type>text/x-c</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dir</extension>
+        <mime-type>application/x-director</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dis</extension>
+        <mime-type>application/vnd.mobius.dis</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dist</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>distz</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>djv</extension>
+        <mime-type>image/vnd.djvu</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>djvu</extension>
+        <mime-type>image/vnd.djvu</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dll</extension>
+        <mime-type>application/x-msdownload</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dmg</extension>
+        <mime-type>application/x-apple-diskimage</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dmp</extension>
+        <mime-type>application/vnd.tcpdump.pcap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dms</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dna</extension>
+        <mime-type>application/vnd.dna</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>doc</extension>
+        <mime-type>application/msword</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>docm</extension>
+        <mime-type>application/vnd.ms-word.document.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>docx</extension>
+        <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.document</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dot</extension>
+        <mime-type>application/msword</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dotm</extension>
+        <mime-type>application/vnd.ms-word.template.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dotx</extension>
+        <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dp</extension>
+        <mime-type>application/vnd.osgi.dp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dpg</extension>
+        <mime-type>application/vnd.dpgraph</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dra</extension>
+        <mime-type>audio/vnd.dra</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dsc</extension>
+        <mime-type>text/prs.lines.tag</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dssc</extension>
+        <mime-type>application/dssc+der</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dtb</extension>
+        <mime-type>application/x-dtbook+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dtd</extension>
+        <mime-type>application/xml-dtd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dts</extension>
+        <mime-type>audio/vnd.dts</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dtshd</extension>
+        <mime-type>audio/vnd.dts.hd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dump</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dv</extension>
+        <mime-type>video/x-dv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dvb</extension>
+        <mime-type>video/vnd.dvb.file</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dvi</extension>
+        <mime-type>application/x-dvi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dwf</extension>
+        <mime-type>model/vnd.dwf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dwg</extension>
+        <mime-type>image/vnd.dwg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dxf</extension>
+        <mime-type>image/vnd.dxf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dxp</extension>
+        <mime-type>application/vnd.spotfire.dxp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dxr</extension>
+        <mime-type>application/x-director</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ecelp4800</extension>
+        <mime-type>audio/vnd.nuera.ecelp4800</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ecelp7470</extension>
+        <mime-type>audio/vnd.nuera.ecelp7470</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ecelp9600</extension>
+        <mime-type>audio/vnd.nuera.ecelp9600</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ecma</extension>
+        <mime-type>application/ecmascript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>edm</extension>
+        <mime-type>application/vnd.novadigm.edm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>edx</extension>
+        <mime-type>application/vnd.novadigm.edx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>efif</extension>
+        <mime-type>application/vnd.picsel</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ei6</extension>
+        <mime-type>application/vnd.pg.osasli</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>elc</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>emf</extension>
+        <mime-type>application/x-msmetafile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>eml</extension>
+        <mime-type>message/rfc822</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>emma</extension>
+        <mime-type>application/emma+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>emz</extension>
+        <mime-type>application/x-msmetafile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>eol</extension>
+        <mime-type>audio/vnd.digital-winds</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>eot</extension>
+        <mime-type>application/vnd.ms-fontobject</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>eps</extension>
+        <mime-type>application/postscript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>epub</extension>
+        <mime-type>application/epub+zip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>es3</extension>
+        <mime-type>application/vnd.eszigno3+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>esa</extension>
+        <mime-type>application/vnd.osgi.subsystem</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>esf</extension>
+        <mime-type>application/vnd.epson.esf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>et3</extension>
+        <mime-type>application/vnd.eszigno3+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>etx</extension>
+        <mime-type>text/x-setext</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>eva</extension>
+        <mime-type>application/x-eva</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>evy</extension>
+        <mime-type>application/x-envoy</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>exe</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>exi</extension>
+        <mime-type>application/exi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ext</extension>
+        <mime-type>application/vnd.novadigm.ext</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ez</extension>
+        <mime-type>application/andrew-inset</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ez2</extension>
+        <mime-type>application/vnd.ezpix-album</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ez3</extension>
+        <mime-type>application/vnd.ezpix-package</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>f</extension>
+        <mime-type>text/x-fortran</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>f4v</extension>
+        <mime-type>video/x-f4v</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>f77</extension>
+        <mime-type>text/x-fortran</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>f90</extension>
+        <mime-type>text/x-fortran</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fbs</extension>
+        <mime-type>image/vnd.fastbidsheet</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fcdt</extension>
+        <mime-type>application/vnd.adobe.formscentral.fcdt</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fcs</extension>
+        <mime-type>application/vnd.isac.fcs</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fdf</extension>
+        <mime-type>application/vnd.fdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fe_launch</extension>
+        <mime-type>application/vnd.denovo.fcselayout-link</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fg5</extension>
+        <mime-type>application/vnd.fujitsu.oasysgp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fgd</extension>
+        <mime-type>application/x-director</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fh</extension>
+        <mime-type>image/x-freehand</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fh4</extension>
+        <mime-type>image/x-freehand</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fh5</extension>
+        <mime-type>image/x-freehand</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fh7</extension>
+        <mime-type>image/x-freehand</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fhc</extension>
+        <mime-type>image/x-freehand</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fig</extension>
+        <mime-type>application/x-xfig</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>flac</extension>
+        <mime-type>audio/flac</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fli</extension>
+        <mime-type>video/x-fli</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>flo</extension>
+        <mime-type>application/vnd.micrografx.flo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>flv</extension>
+        <mime-type>video/x-flv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>flw</extension>
+        <mime-type>application/vnd.kde.kivio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>flx</extension>
+        <mime-type>text/vnd.fmi.flexstor</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fly</extension>
+        <mime-type>text/vnd.fly</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fm</extension>
+        <mime-type>application/vnd.framemaker</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fnc</extension>
+        <mime-type>application/vnd.frogans.fnc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>for</extension>
+        <mime-type>text/x-fortran</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fpx</extension>
+        <mime-type>image/vnd.fpx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>frame</extension>
+        <mime-type>application/vnd.framemaker</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fsc</extension>
+        <mime-type>application/vnd.fsc.weblaunch</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fst</extension>
+        <mime-type>image/vnd.fst</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ftc</extension>
+        <mime-type>application/vnd.fluxtime.clip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fti</extension>
+        <mime-type>application/vnd.anser-web-funds-transfer-initiation</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fvt</extension>
+        <mime-type>video/vnd.fvt</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fxp</extension>
+        <mime-type>application/vnd.adobe.fxp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fxpl</extension>
+        <mime-type>application/vnd.adobe.fxp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>fzs</extension>
+        <mime-type>application/vnd.fuzzysheet</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>g2w</extension>
+        <mime-type>application/vnd.geoplan</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>g3</extension>
+        <mime-type>image/g3fax</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>g3w</extension>
+        <mime-type>application/vnd.geospace</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gac</extension>
+        <mime-type>application/vnd.groove-account</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gam</extension>
+        <mime-type>application/x-tads</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gbr</extension>
+        <mime-type>application/rpki-ghostbusters</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gca</extension>
+        <mime-type>application/x-gca-compressed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gdl</extension>
+        <mime-type>model/vnd.gdl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>geo</extension>
+        <mime-type>application/vnd.dynageo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gex</extension>
+        <mime-type>application/vnd.geometry-explorer</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ggb</extension>
+        <mime-type>application/vnd.geogebra.file</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ggt</extension>
+        <mime-type>application/vnd.geogebra.tool</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ghf</extension>
+        <mime-type>application/vnd.groove-help</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gif</extension>
+        <mime-type>image/gif</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gim</extension>
+        <mime-type>application/vnd.groove-identity-message</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gml</extension>
+        <mime-type>application/gml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gmx</extension>
+        <mime-type>application/vnd.gmx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gnumeric</extension>
+        <mime-type>application/x-gnumeric</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gph</extension>
+        <mime-type>application/vnd.flographit</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gpx</extension>
+        <mime-type>application/gpx+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gqf</extension>
+        <mime-type>application/vnd.grafeq</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gqs</extension>
+        <mime-type>application/vnd.grafeq</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gram</extension>
+        <mime-type>application/srgs</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gramps</extension>
+        <mime-type>application/x-gramps-xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gre</extension>
+        <mime-type>application/vnd.geometry-explorer</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>grv</extension>
+        <mime-type>application/vnd.groove-injector</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>grxml</extension>
+        <mime-type>application/srgs+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gsf</extension>
+        <mime-type>application/x-font-ghostscript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gtar</extension>
+        <mime-type>application/x-gtar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gtm</extension>
+        <mime-type>application/vnd.groove-tool-message</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gtw</extension>
+        <mime-type>model/vnd.gtw</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gv</extension>
+        <mime-type>text/vnd.graphviz</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gxf</extension>
+        <mime-type>application/gxf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gxt</extension>
+        <mime-type>application/vnd.geonext</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gz</extension>
+        <mime-type>application/x-gzip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>h</extension>
+        <mime-type>text/x-c</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>h261</extension>
+        <mime-type>video/h261</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>h263</extension>
+        <mime-type>video/h263</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>h264</extension>
+        <mime-type>video/h264</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hal</extension>
+        <mime-type>application/vnd.hal+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hbci</extension>
+        <mime-type>application/vnd.hbci</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hdf</extension>
+        <mime-type>application/x-hdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hh</extension>
+        <mime-type>text/x-c</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hlp</extension>
+        <mime-type>application/winhlp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hpgl</extension>
+        <mime-type>application/vnd.hp-hpgl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hpid</extension>
+        <mime-type>application/vnd.hp-hpid</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hps</extension>
+        <mime-type>application/vnd.hp-hps</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hqx</extension>
+        <mime-type>application/mac-binhex40</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>htc</extension>
+        <mime-type>text/x-component</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>htke</extension>
+        <mime-type>application/vnd.kenameaapp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>htm</extension>
+        <mime-type>text/html</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>html</extension>
+        <mime-type>text/html</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hvd</extension>
+        <mime-type>application/vnd.yamaha.hv-dic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hvp</extension>
+        <mime-type>application/vnd.yamaha.hv-voice</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hvs</extension>
+        <mime-type>application/vnd.yamaha.hv-script</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>i2g</extension>
+        <mime-type>application/vnd.intergeo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>icc</extension>
+        <mime-type>application/vnd.iccprofile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ice</extension>
+        <mime-type>x-conference/x-cooltalk</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>icm</extension>
+        <mime-type>application/vnd.iccprofile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ico</extension>
+        <mime-type>image/x-icon</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ics</extension>
+        <mime-type>text/calendar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ief</extension>
+        <mime-type>image/ief</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ifb</extension>
+        <mime-type>text/calendar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ifm</extension>
+        <mime-type>application/vnd.shana.informed.formdata</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>iges</extension>
+        <mime-type>model/iges</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>igl</extension>
+        <mime-type>application/vnd.igloader</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>igm</extension>
+        <mime-type>application/vnd.insors.igm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>igs</extension>
+        <mime-type>model/iges</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>igx</extension>
+        <mime-type>application/vnd.micrografx.igx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>iif</extension>
+        <mime-type>application/vnd.shana.informed.interchange</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>imp</extension>
+        <mime-type>application/vnd.accpac.simply.imp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ims</extension>
+        <mime-type>application/vnd.ms-ims</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>in</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ink</extension>
+        <mime-type>application/inkml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>inkml</extension>
+        <mime-type>application/inkml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>install</extension>
+        <mime-type>application/x-install-instructions</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>iota</extension>
+        <mime-type>application/vnd.astraea-software.iota</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ipfix</extension>
+        <mime-type>application/ipfix</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ipk</extension>
+        <mime-type>application/vnd.shana.informed.package</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>irm</extension>
+        <mime-type>application/vnd.ibm.rights-management</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>irp</extension>
+        <mime-type>application/vnd.irepository.package+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>iso</extension>
+        <mime-type>application/x-iso9660-image</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>itp</extension>
+        <mime-type>application/vnd.shana.informed.formtemplate</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ivp</extension>
+        <mime-type>application/vnd.immervision-ivp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ivu</extension>
+        <mime-type>application/vnd.immervision-ivu</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jad</extension>
+        <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jam</extension>
+        <mime-type>application/vnd.jam</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jar</extension>
+        <mime-type>application/java-archive</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>java</extension>
+        <mime-type>text/x-java-source</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jisp</extension>
+        <mime-type>application/vnd.jisp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jlt</extension>
+        <mime-type>application/vnd.hp-jlyt</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jnlp</extension>
+        <mime-type>application/x-java-jnlp-file</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>joda</extension>
+        <mime-type>application/vnd.joost.joda-archive</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpe</extension>
+        <mime-type>image/jpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpeg</extension>
+        <mime-type>image/jpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpg</extension>
+        <mime-type>image/jpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpgm</extension>
+        <mime-type>video/jpm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpgv</extension>
+        <mime-type>video/jpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpm</extension>
+        <mime-type>video/jpm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>js</extension>
+        <mime-type>application/javascript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jsf</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>json</extension>
+        <mime-type>application/json</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jsonml</extension>
+        <mime-type>application/jsonml+json</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jspf</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kar</extension>
+        <mime-type>audio/midi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>karbon</extension>
+        <mime-type>application/vnd.kde.karbon</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kfo</extension>
+        <mime-type>application/vnd.kde.kformula</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kia</extension>
+        <mime-type>application/vnd.kidspiration</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kml</extension>
+        <mime-type>application/vnd.google-earth.kml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kmz</extension>
+        <mime-type>application/vnd.google-earth.kmz</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kne</extension>
+        <mime-type>application/vnd.kinar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>knp</extension>
+        <mime-type>application/vnd.kinar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kon</extension>
+        <mime-type>application/vnd.kde.kontour</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kpr</extension>
+        <mime-type>application/vnd.kde.kpresenter</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kpt</extension>
+        <mime-type>application/vnd.kde.kpresenter</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kpxx</extension>
+        <mime-type>application/vnd.ds-keypoint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ksp</extension>
+        <mime-type>application/vnd.kde.kspread</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ktr</extension>
+        <mime-type>application/vnd.kahootz</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ktx</extension>
+        <mime-type>image/ktx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ktz</extension>
+        <mime-type>application/vnd.kahootz</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kwd</extension>
+        <mime-type>application/vnd.kde.kword</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kwt</extension>
+        <mime-type>application/vnd.kde.kword</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lasxml</extension>
+        <mime-type>application/vnd.las.las+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>latex</extension>
+        <mime-type>application/x-latex</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lbd</extension>
+        <mime-type>application/vnd.llamagraphics.life-balance.desktop</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lbe</extension>
+        <mime-type>application/vnd.llamagraphics.life-balance.exchange+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>les</extension>
+        <mime-type>application/vnd.hhe.lesson-player</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lha</extension>
+        <mime-type>application/x-lzh-compressed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>link66</extension>
+        <mime-type>application/vnd.route66.link66+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>list</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>list3820</extension>
+        <mime-type>application/vnd.ibm.modcap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>listafp</extension>
+        <mime-type>application/vnd.ibm.modcap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lnk</extension>
+        <mime-type>application/x-ms-shortcut</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>log</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lostxml</extension>
+        <mime-type>application/lost+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lrf</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lrm</extension>
+        <mime-type>application/vnd.ms-lrm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ltf</extension>
+        <mime-type>application/vnd.frogans.ltf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lvp</extension>
+        <mime-type>audio/vnd.lucent.voice</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lwp</extension>
+        <mime-type>application/vnd.lotus-wordpro</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>lzh</extension>
+        <mime-type>application/x-lzh-compressed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m13</extension>
+        <mime-type>application/x-msmediaview</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m14</extension>
+        <mime-type>application/x-msmediaview</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m1v</extension>
+        <mime-type>video/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m21</extension>
+        <mime-type>application/mp21</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m2a</extension>
+        <mime-type>audio/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m2v</extension>
+        <mime-type>video/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m3a</extension>
+        <mime-type>audio/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m3u</extension>
+        <mime-type>audio/x-mpegurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m3u8</extension>
+        <mime-type>application/vnd.apple.mpegurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m4a</extension>
+        <mime-type>audio/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m4b</extension>
+        <mime-type>audio/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m4r</extension>
+        <mime-type>audio/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m4u</extension>
+        <mime-type>video/vnd.mpegurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m4v</extension>
+        <mime-type>video/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ma</extension>
+        <mime-type>application/mathematica</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mac</extension>
+        <mime-type>image/x-macpaint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mads</extension>
+        <mime-type>application/mads+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mag</extension>
+        <mime-type>application/vnd.ecowin.chart</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>maker</extension>
+        <mime-type>application/vnd.framemaker</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>man</extension>
+        <mime-type>text/troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mar</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mathml</extension>
+        <mime-type>application/mathml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mb</extension>
+        <mime-type>application/mathematica</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mbk</extension>
+        <mime-type>application/vnd.mobius.mbk</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mbox</extension>
+        <mime-type>application/mbox</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mc1</extension>
+        <mime-type>application/vnd.medcalcdata</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mcd</extension>
+        <mime-type>application/vnd.mcd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mcurl</extension>
+        <mime-type>text/vnd.curl.mcurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mdb</extension>
+        <mime-type>application/x-msaccess</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mdi</extension>
+        <mime-type>image/vnd.ms-modi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>me</extension>
+        <mime-type>text/troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mesh</extension>
+        <mime-type>model/mesh</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>meta4</extension>
+        <mime-type>application/metalink4+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>metalink</extension>
+        <mime-type>application/metalink+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mets</extension>
+        <mime-type>application/mets+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mfm</extension>
+        <mime-type>application/vnd.mfmp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mft</extension>
+        <mime-type>application/rpki-manifest</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mgp</extension>
+        <mime-type>application/vnd.osgeo.mapguide.package</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mgz</extension>
+        <mime-type>application/vnd.proteus.magazine</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mid</extension>
+        <mime-type>audio/midi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>midi</extension>
+        <mime-type>audio/midi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mie</extension>
+        <mime-type>application/x-mie</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mif</extension>
+        <mime-type>application/x-mif</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mime</extension>
+        <mime-type>message/rfc822</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mj2</extension>
+        <mime-type>video/mj2</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mjp2</extension>
+        <mime-type>video/mj2</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mk3d</extension>
+        <mime-type>video/x-matroska</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mka</extension>
+        <mime-type>audio/x-matroska</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mks</extension>
+        <mime-type>video/x-matroska</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mkv</extension>
+        <mime-type>video/x-matroska</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mlp</extension>
+        <mime-type>application/vnd.dolby.mlp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mmd</extension>
+        <mime-type>application/vnd.chipnuts.karaoke-mmd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mmf</extension>
+        <mime-type>application/vnd.smaf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mmr</extension>
+        <mime-type>image/vnd.fujixerox.edmics-mmr</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mng</extension>
+        <mime-type>video/x-mng</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mny</extension>
+        <mime-type>application/x-msmoney</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mobi</extension>
+        <mime-type>application/x-mobipocket-ebook</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mods</extension>
+        <mime-type>application/mods+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mov</extension>
+        <mime-type>video/quicktime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>movie</extension>
+        <mime-type>video/x-sgi-movie</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp1</extension>
+        <mime-type>audio/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp2</extension>
+        <mime-type>audio/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp21</extension>
+        <mime-type>application/mp21</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp2a</extension>
+        <mime-type>audio/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp3</extension>
+        <mime-type>audio/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp4</extension>
+        <mime-type>video/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp4a</extension>
+        <mime-type>audio/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp4s</extension>
+        <mime-type>application/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp4v</extension>
+        <mime-type>video/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpa</extension>
+        <mime-type>audio/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpc</extension>
+        <mime-type>application/vnd.mophun.certificate</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpe</extension>
+        <mime-type>video/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpeg</extension>
+        <mime-type>video/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpega</extension>
+        <mime-type>audio/x-mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpg</extension>
+        <mime-type>video/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpg4</extension>
+        <mime-type>video/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpga</extension>
+        <mime-type>audio/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpkg</extension>
+        <mime-type>application/vnd.apple.installer+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpm</extension>
+        <mime-type>application/vnd.blueice.multipass</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpn</extension>
+        <mime-type>application/vnd.mophun.application</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpp</extension>
+        <mime-type>application/vnd.ms-project</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpt</extension>
+        <mime-type>application/vnd.ms-project</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpv2</extension>
+        <mime-type>video/mpeg2</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpy</extension>
+        <mime-type>application/vnd.ibm.minipay</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mqy</extension>
+        <mime-type>application/vnd.mobius.mqy</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mrc</extension>
+        <mime-type>application/marc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mrcx</extension>
+        <mime-type>application/marcxml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ms</extension>
+        <mime-type>text/troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mscml</extension>
+        <mime-type>application/mediaservercontrol+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mseed</extension>
+        <mime-type>application/vnd.fdsn.mseed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mseq</extension>
+        <mime-type>application/vnd.mseq</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>msf</extension>
+        <mime-type>application/vnd.epson.msf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>msh</extension>
+        <mime-type>model/mesh</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>msi</extension>
+        <mime-type>application/x-msdownload</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>msl</extension>
+        <mime-type>application/vnd.mobius.msl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>msty</extension>
+        <mime-type>application/vnd.muvee.style</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mts</extension>
+        <mime-type>model/vnd.mts</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mus</extension>
+        <mime-type>application/vnd.musician</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>musicxml</extension>
+        <mime-type>application/vnd.recordare.musicxml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mvb</extension>
+        <mime-type>application/x-msmediaview</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mwf</extension>
+        <mime-type>application/vnd.mfer</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mxf</extension>
+        <mime-type>application/mxf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mxl</extension>
+        <mime-type>application/vnd.recordare.musicxml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mxml</extension>
+        <mime-type>application/xv+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mxs</extension>
+        <mime-type>application/vnd.triscape.mxs</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mxu</extension>
+        <mime-type>video/vnd.mpegurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>n-gage</extension>
+        <mime-type>application/vnd.nokia.n-gage.symbian.install</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>n3</extension>
+        <mime-type>text/n3</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nb</extension>
+        <mime-type>application/mathematica</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nbp</extension>
+        <mime-type>application/vnd.wolfram.player</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nc</extension>
+        <mime-type>application/x-netcdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ncx</extension>
+        <mime-type>application/x-dtbncx+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nfo</extension>
+        <mime-type>text/x-nfo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ngdat</extension>
+        <mime-type>application/vnd.nokia.n-gage.data</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nitf</extension>
+        <mime-type>application/vnd.nitf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nlu</extension>
+        <mime-type>application/vnd.neurolanguage.nlu</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nml</extension>
+        <mime-type>application/vnd.enliven</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nnd</extension>
+        <mime-type>application/vnd.noblenet-directory</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nns</extension>
+        <mime-type>application/vnd.noblenet-sealer</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nnw</extension>
+        <mime-type>application/vnd.noblenet-web</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>npx</extension>
+        <mime-type>image/vnd.net-fpx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nsc</extension>
+        <mime-type>application/x-conference</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nsf</extension>
+        <mime-type>application/vnd.lotus-notes</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ntf</extension>
+        <mime-type>application/vnd.nitf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nzb</extension>
+        <mime-type>application/x-nzb</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oa2</extension>
+        <mime-type>application/vnd.fujitsu.oasys2</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oa3</extension>
+        <mime-type>application/vnd.fujitsu.oasys3</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oas</extension>
+        <mime-type>application/vnd.fujitsu.oasys</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>obd</extension>
+        <mime-type>application/x-msbinder</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>obj</extension>
+        <mime-type>application/x-tgif</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oda</extension>
+        <mime-type>application/oda</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Database -->
+        <extension>odb</extension>
+        <mime-type>application/vnd.oasis.opendocument.database</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Chart -->
+        <extension>odc</extension>
+        <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Formula -->
+        <extension>odf</extension>
+        <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>odft</extension>
+        <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Drawing -->
+        <extension>odg</extension>
+        <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Image -->
+        <extension>odi</extension>
+        <mime-type>application/vnd.oasis.opendocument.image</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Master Document -->
+        <extension>odm</extension>
+        <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Presentation -->
+        <extension>odp</extension>
+        <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Spreadsheet -->
+        <extension>ods</extension>
+        <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Text -->
+        <extension>odt</extension>
+        <mime-type>application/vnd.oasis.opendocument.text</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oga</extension>
+        <mime-type>audio/ogg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ogg</extension>
+        <mime-type>audio/ogg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ogv</extension>
+        <mime-type>video/ogg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- xiph mime types -->
+        <extension>ogx</extension>
+        <mime-type>application/ogg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>omdoc</extension>
+        <mime-type>application/omdoc+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>onepkg</extension>
+        <mime-type>application/onenote</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>onetmp</extension>
+        <mime-type>application/onenote</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>onetoc</extension>
+        <mime-type>application/onenote</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>onetoc2</extension>
+        <mime-type>application/onenote</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>opf</extension>
+        <mime-type>application/oebps-package+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>opml</extension>
+        <mime-type>text/x-opml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oprc</extension>
+        <mime-type>application/vnd.palm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>org</extension>
+        <mime-type>application/vnd.lotus-organizer</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>osf</extension>
+        <mime-type>application/vnd.yamaha.openscoreformat</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>osfpvg</extension>
+        <mime-type>application/vnd.yamaha.openscoreformat.osfpvg+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>otc</extension>
+        <mime-type>application/vnd.oasis.opendocument.chart-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>otf</extension>
+        <mime-type>application/x-font-otf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Drawing Template -->
+        <extension>otg</extension>
+        <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- HTML Document Template -->
+        <extension>oth</extension>
+        <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oti</extension>
+        <mime-type>application/vnd.oasis.opendocument.image-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Presentation Template -->
+        <extension>otp</extension>
+        <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Spreadsheet Template -->
+        <extension>ots</extension>
+        <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Text Template -->
+        <extension>ott</extension>
+        <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oxps</extension>
+        <mime-type>application/oxps</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oxt</extension>
+        <mime-type>application/vnd.openofficeorg.extension</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p</extension>
+        <mime-type>text/x-pascal</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p10</extension>
+        <mime-type>application/pkcs10</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p12</extension>
+        <mime-type>application/x-pkcs12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p7b</extension>
+        <mime-type>application/x-pkcs7-certificates</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p7c</extension>
+        <mime-type>application/pkcs7-mime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p7m</extension>
+        <mime-type>application/pkcs7-mime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p7r</extension>
+        <mime-type>application/x-pkcs7-certreqresp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p7s</extension>
+        <mime-type>application/pkcs7-signature</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>p8</extension>
+        <mime-type>application/pkcs8</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pas</extension>
+        <mime-type>text/x-pascal</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>paw</extension>
+        <mime-type>application/vnd.pawaafile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pbd</extension>
+        <mime-type>application/vnd.powerbuilder6</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pbm</extension>
+        <mime-type>image/x-portable-bitmap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pcap</extension>
+        <mime-type>application/vnd.tcpdump.pcap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pcf</extension>
+        <mime-type>application/x-font-pcf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pcl</extension>
+        <mime-type>application/vnd.hp-pcl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pclxl</extension>
+        <mime-type>application/vnd.hp-pclxl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pct</extension>
+        <mime-type>image/pict</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pcurl</extension>
+        <mime-type>application/vnd.curl.pcurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pcx</extension>
+        <mime-type>image/x-pcx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pdb</extension>
+        <mime-type>application/vnd.palm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pdf</extension>
+        <mime-type>application/pdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pfa</extension>
+        <mime-type>application/x-font-type1</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pfb</extension>
+        <mime-type>application/x-font-type1</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pfm</extension>
+        <mime-type>application/x-font-type1</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pfr</extension>
+        <mime-type>application/font-tdpfr</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pfx</extension>
+        <mime-type>application/x-pkcs12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pgm</extension>
+        <mime-type>image/x-portable-graymap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pgn</extension>
+        <mime-type>application/x-chess-pgn</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pgp</extension>
+        <mime-type>application/pgp-encrypted</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pic</extension>
+        <mime-type>image/pict</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pict</extension>
+        <mime-type>image/pict</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pkg</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pki</extension>
+        <mime-type>application/pkixcmp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pkipath</extension>
+        <mime-type>application/pkix-pkipath</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>plb</extension>
+        <mime-type>application/vnd.3gpp.pic-bw-large</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>plc</extension>
+        <mime-type>application/vnd.mobius.plc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>plf</extension>
+        <mime-type>application/vnd.pocketlearn</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pls</extension>
+        <mime-type>audio/x-scpls</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pml</extension>
+        <mime-type>application/vnd.ctc-posml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>png</extension>
+        <mime-type>image/png</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pnm</extension>
+        <mime-type>image/x-portable-anymap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pnt</extension>
+        <mime-type>image/x-macpaint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>portpkg</extension>
+        <mime-type>application/vnd.macports.portpkg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pot</extension>
+        <mime-type>application/vnd.ms-powerpoint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>potm</extension>
+        <mime-type>application/vnd.ms-powerpoint.template.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>potx</extension>
+        <mime-type>application/vnd.openxmlformats-officedocument.presentationml.template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppam</extension>
+        <mime-type>application/vnd.ms-powerpoint.addin.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppd</extension>
+        <mime-type>application/vnd.cups-ppd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppm</extension>
+        <mime-type>image/x-portable-pixmap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pps</extension>
+        <mime-type>application/vnd.ms-powerpoint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppsm</extension>
+        <mime-type>application/vnd.ms-powerpoint.slideshow.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppsx</extension>
+        <mime-type>application/vnd.openxmlformats-officedocument.presentationml.slideshow</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppt</extension>
+        <mime-type>application/vnd.ms-powerpoint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pptm</extension>
+        <mime-type>application/vnd.ms-powerpoint.presentation.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pptx</extension>
+        <mime-type>application/vnd.openxmlformats-officedocument.presentationml.presentation</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pqa</extension>
+        <mime-type>application/vnd.palm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>prc</extension>
+        <mime-type>application/x-mobipocket-ebook</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pre</extension>
+        <mime-type>application/vnd.lotus-freelance</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>prf</extension>
+        <mime-type>application/pics-rules</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ps</extension>
+        <mime-type>application/postscript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>psb</extension>
+        <mime-type>application/vnd.3gpp.pic-bw-small</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>psd</extension>
+        <mime-type>image/vnd.adobe.photoshop</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>psf</extension>
+        <mime-type>application/x-font-linux-psf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pskcxml</extension>
+        <mime-type>application/pskc+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ptid</extension>
+        <mime-type>application/vnd.pvi.ptid1</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pub</extension>
+        <mime-type>application/x-mspublisher</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pvb</extension>
+        <mime-type>application/vnd.3gpp.pic-bw-var</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pwn</extension>
+        <mime-type>application/vnd.3m.post-it-notes</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pya</extension>
+        <mime-type>audio/vnd.ms-playready.media.pya</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pyv</extension>
+        <mime-type>video/vnd.ms-playready.media.pyv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qam</extension>
+        <mime-type>application/vnd.epson.quickanime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qbo</extension>
+        <mime-type>application/vnd.intu.qbo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qfx</extension>
+        <mime-type>application/vnd.intu.qfx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qps</extension>
+        <mime-type>application/vnd.publishare-delta-tree</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qt</extension>
+        <mime-type>video/quicktime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qti</extension>
+        <mime-type>image/x-quicktime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qtif</extension>
         <mime-type>image/x-quicktime</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ras</extension>
-        <mime-type>image/x-cmu-raster</mime-type>
+        <extension>qwd</extension>
+        <mime-type>application/vnd.quark.quarkxpress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qwt</extension>
+        <mime-type>application/vnd.quark.quarkxpress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qxb</extension>
+        <mime-type>application/vnd.quark.quarkxpress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qxd</extension>
+        <mime-type>application/vnd.quark.quarkxpress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qxl</extension>
+        <mime-type>application/vnd.quark.quarkxpress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qxt</extension>
+        <mime-type>application/vnd.quark.quarkxpress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ra</extension>
+        <mime-type>audio/x-pn-realaudio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ram</extension>
+        <mime-type>audio/x-pn-realaudio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rar</extension>
+        <mime-type>application/x-rar-compressed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ras</extension>
+        <mime-type>image/x-cmu-raster</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rcprofile</extension>
+        <mime-type>application/vnd.ipunplugged.rcprofile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rdf</extension>
+        <mime-type>application/rdf+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rdz</extension>
+        <mime-type>application/vnd.data-vision.rdz</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rep</extension>
+        <mime-type>application/vnd.businessobjects</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>res</extension>
+        <mime-type>application/x-dtbresource+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rgb</extension>
+        <mime-type>image/x-rgb</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rif</extension>
+        <mime-type>application/reginfo+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rip</extension>
+        <mime-type>audio/vnd.rip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ris</extension>
+        <mime-type>application/x-research-info-systems</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rl</extension>
+        <mime-type>application/resource-lists+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rlc</extension>
+        <mime-type>image/vnd.fujixerox.edmics-rlc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rld</extension>
+        <mime-type>application/resource-lists-diff+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rm</extension>
+        <mime-type>application/vnd.rn-realmedia</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rmi</extension>
+        <mime-type>audio/midi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rmp</extension>
+        <mime-type>audio/x-pn-realaudio-plugin</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rms</extension>
+        <mime-type>application/vnd.jcp.javame.midlet-rms</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rmvb</extension>
+        <mime-type>application/vnd.rn-realmedia-vbr</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rnc</extension>
+        <mime-type>application/relax-ng-compact-syntax</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>roa</extension>
+        <mime-type>application/rpki-roa</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>roff</extension>
+        <mime-type>text/troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rp9</extension>
+        <mime-type>application/vnd.cloanto.rp9</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rpss</extension>
+        <mime-type>application/vnd.nokia.radio-presets</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rpst</extension>
+        <mime-type>application/vnd.nokia.radio-preset</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rq</extension>
+        <mime-type>application/sparql-query</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rs</extension>
+        <mime-type>application/rls-services+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rsd</extension>
+        <mime-type>application/rsd+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rss</extension>
+        <mime-type>application/rss+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rtf</extension>
+        <mime-type>application/rtf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rtx</extension>
+        <mime-type>text/richtext</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>s</extension>
+        <mime-type>text/x-asm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>s3m</extension>
+        <mime-type>audio/s3m</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>saf</extension>
+        <mime-type>application/vnd.yamaha.smaf-audio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sbml</extension>
+        <mime-type>application/sbml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sc</extension>
+        <mime-type>application/vnd.ibm.secure-container</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>scd</extension>
+        <mime-type>application/x-msschedule</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>scm</extension>
+        <mime-type>application/vnd.lotus-screencam</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>scq</extension>
+        <mime-type>application/scvp-cv-request</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>scs</extension>
+        <mime-type>application/scvp-cv-response</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>scurl</extension>
+        <mime-type>text/vnd.curl.scurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sda</extension>
+        <mime-type>application/vnd.stardivision.draw</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sdc</extension>
+        <mime-type>application/vnd.stardivision.calc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sdd</extension>
+        <mime-type>application/vnd.stardivision.impress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sdkd</extension>
+        <mime-type>application/vnd.solent.sdkm+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sdkm</extension>
+        <mime-type>application/vnd.solent.sdkm+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sdp</extension>
+        <mime-type>application/sdp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sdw</extension>
+        <mime-type>application/vnd.stardivision.writer</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>see</extension>
+        <mime-type>application/vnd.seemail</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>seed</extension>
+        <mime-type>application/vnd.fdsn.seed</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sema</extension>
+        <mime-type>application/vnd.sema</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>semd</extension>
+        <mime-type>application/vnd.semd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>semf</extension>
+        <mime-type>application/vnd.semf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ser</extension>
+        <mime-type>application/java-serialized-object</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>setpay</extension>
+        <mime-type>application/set-payment-initiation</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>setreg</extension>
+        <mime-type>application/set-registration-initiation</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sfd-hdstx</extension>
+        <mime-type>application/vnd.hydrostatix.sof-data</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sfs</extension>
+        <mime-type>application/vnd.spotfire.sfs</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sfv</extension>
+        <mime-type>text/x-sfv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sgi</extension>
+        <mime-type>image/sgi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sgl</extension>
+        <mime-type>application/vnd.stardivision.writer-global</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sgm</extension>
+        <mime-type>text/sgml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sgml</extension>
+        <mime-type>text/sgml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sh</extension>
+        <mime-type>application/x-sh</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>shar</extension>
+        <mime-type>application/x-shar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>shf</extension>
+        <mime-type>application/shf+xml</mime-type>
+    </mime-mapping>
+    <!--
+    <mime-mapping>
+        <extension>shtml</extension>
+        <mime-type>text/x-server-parsed-html</mime-type>
+    </mime-mapping>
+    -->
+    <mime-mapping>
+        <extension>sid</extension>
+        <mime-type>image/x-mrsid-image</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sig</extension>
+        <mime-type>application/pgp-signature</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sil</extension>
+        <mime-type>audio/silk</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>silo</extension>
+        <mime-type>model/mesh</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sis</extension>
+        <mime-type>application/vnd.symbian.install</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sisx</extension>
+        <mime-type>application/vnd.symbian.install</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sit</extension>
+        <mime-type>application/x-stuffit</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sitx</extension>
+        <mime-type>application/x-stuffitx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>skd</extension>
+        <mime-type>application/vnd.koan</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>skm</extension>
+        <mime-type>application/vnd.koan</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>skp</extension>
+        <mime-type>application/vnd.koan</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>skt</extension>
+        <mime-type>application/vnd.koan</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sldm</extension>
+        <mime-type>application/vnd.ms-powerpoint.slide.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sldx</extension>
+        <mime-type>application/vnd.openxmlformats-officedocument.presentationml.slide</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>slt</extension>
+        <mime-type>application/vnd.epson.salt</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sm</extension>
+        <mime-type>application/vnd.stepmania.stepchart</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>smf</extension>
+        <mime-type>application/vnd.stardivision.math</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>smi</extension>
+        <mime-type>application/smil+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>smil</extension>
+        <mime-type>application/smil+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>smv</extension>
+        <mime-type>video/x-smv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>smzip</extension>
+        <mime-type>application/vnd.stepmania.package</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>snd</extension>
+        <mime-type>audio/basic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>snf</extension>
+        <mime-type>application/x-font-snf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>so</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>spc</extension>
+        <mime-type>application/x-pkcs7-certificates</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>spf</extension>
+        <mime-type>application/vnd.yamaha.smaf-phrase</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>spl</extension>
+        <mime-type>application/x-futuresplash</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>spot</extension>
+        <mime-type>text/vnd.in3d.spot</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>spp</extension>
+        <mime-type>application/scvp-vp-response</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>spq</extension>
+        <mime-type>application/scvp-vp-request</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>spx</extension>
+        <mime-type>audio/ogg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sql</extension>
+        <mime-type>application/x-sql</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>src</extension>
+        <mime-type>application/x-wais-source</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>srt</extension>
+        <mime-type>application/x-subrip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sru</extension>
+        <mime-type>application/sru+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>srx</extension>
+        <mime-type>application/sparql-results+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ssdl</extension>
+        <mime-type>application/ssdl+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sse</extension>
+        <mime-type>application/vnd.kodak-descriptor</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ssf</extension>
+        <mime-type>application/vnd.epson.ssf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ssml</extension>
+        <mime-type>application/ssml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>st</extension>
+        <mime-type>application/vnd.sailingtracker.track</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>stc</extension>
+        <mime-type>application/vnd.sun.xml.calc.template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>std</extension>
+        <mime-type>application/vnd.sun.xml.draw.template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>stf</extension>
+        <mime-type>application/vnd.wt.stf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sti</extension>
+        <mime-type>application/vnd.sun.xml.impress.template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>stk</extension>
+        <mime-type>application/hyperstudio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>stl</extension>
+        <mime-type>application/vnd.ms-pki.stl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>str</extension>
+        <mime-type>application/vnd.pg.format</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>stw</extension>
+        <mime-type>application/vnd.sun.xml.writer.template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sub</extension>
+        <mime-type>text/vnd.dvb.subtitle</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sus</extension>
+        <mime-type>application/vnd.sus-calendar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>susp</extension>
+        <mime-type>application/vnd.sus-calendar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sv4cpio</extension>
+        <mime-type>application/x-sv4cpio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sv4crc</extension>
+        <mime-type>application/x-sv4crc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>svc</extension>
+        <mime-type>application/vnd.dvb.service</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>svd</extension>
+        <mime-type>application/vnd.svd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>svg</extension>
+        <mime-type>image/svg+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>svgz</extension>
+        <mime-type>image/svg+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>swa</extension>
+        <mime-type>application/x-director</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>swf</extension>
+        <mime-type>application/x-shockwave-flash</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>swi</extension>
+        <mime-type>application/vnd.aristanetworks.swi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sxc</extension>
+        <mime-type>application/vnd.sun.xml.calc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sxd</extension>
+        <mime-type>application/vnd.sun.xml.draw</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sxg</extension>
+        <mime-type>application/vnd.sun.xml.writer.global</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sxi</extension>
+        <mime-type>application/vnd.sun.xml.impress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sxm</extension>
+        <mime-type>application/vnd.sun.xml.math</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sxw</extension>
+        <mime-type>application/vnd.sun.xml.writer</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>t</extension>
+        <mime-type>text/troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>t3</extension>
+        <mime-type>application/x-t3vm-image</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>taglet</extension>
+        <mime-type>application/vnd.mynfc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tao</extension>
+        <mime-type>application/vnd.tao.intent-module-archive</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tar</extension>
+        <mime-type>application/x-tar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tcap</extension>
+        <mime-type>application/vnd.3gpp2.tcap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tcl</extension>
+        <mime-type>application/x-tcl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>teacher</extension>
+        <mime-type>application/vnd.smart.teacher</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tei</extension>
+        <mime-type>application/tei+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>teicorpus</extension>
+        <mime-type>application/tei+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tex</extension>
+        <mime-type>application/x-tex</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>texi</extension>
+        <mime-type>application/x-texinfo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>texinfo</extension>
+        <mime-type>application/x-texinfo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>text</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tfi</extension>
+        <mime-type>application/thraud+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tfm</extension>
+        <mime-type>application/x-tex-tfm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tga</extension>
+        <mime-type>image/x-tga</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>thmx</extension>
+        <mime-type>application/vnd.ms-officetheme</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tif</extension>
+        <mime-type>image/tiff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tiff</extension>
+        <mime-type>image/tiff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tmo</extension>
+        <mime-type>application/vnd.tmobile-livetv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>torrent</extension>
+        <mime-type>application/x-bittorrent</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tpl</extension>
+        <mime-type>application/vnd.groove-tool-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tpt</extension>
+        <mime-type>application/vnd.trid.tpt</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tr</extension>
+        <mime-type>text/troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tra</extension>
+        <mime-type>application/vnd.trueapp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>trm</extension>
+        <mime-type>application/x-msterminal</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tsd</extension>
+        <mime-type>application/timestamped-data</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tsv</extension>
+        <mime-type>text/tab-separated-values</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ttc</extension>
+        <mime-type>application/x-font-ttf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ttf</extension>
+        <mime-type>application/x-font-ttf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ttl</extension>
+        <mime-type>text/turtle</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>twd</extension>
+        <mime-type>application/vnd.simtech-mindmapper</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>twds</extension>
+        <mime-type>application/vnd.simtech-mindmapper</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>txd</extension>
+        <mime-type>application/vnd.genomatix.tuxedo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>txf</extension>
+        <mime-type>application/vnd.mobius.txf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>txt</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>u32</extension>
+        <mime-type>application/x-authorware-bin</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>udeb</extension>
+        <mime-type>application/x-debian-package</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ufd</extension>
+        <mime-type>application/vnd.ufdl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ufdl</extension>
+        <mime-type>application/vnd.ufdl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ulw</extension>
+        <mime-type>audio/basic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ulx</extension>
+        <mime-type>application/x-glulx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>umj</extension>
+        <mime-type>application/vnd.umajin</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>unityweb</extension>
+        <mime-type>application/vnd.unity</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uoml</extension>
+        <mime-type>application/vnd.uoml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uri</extension>
+        <mime-type>text/uri-list</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uris</extension>
+        <mime-type>text/uri-list</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>urls</extension>
+        <mime-type>text/uri-list</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ustar</extension>
+        <mime-type>application/x-ustar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>utz</extension>
+        <mime-type>application/vnd.uiq.theme</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uu</extension>
+        <mime-type>text/x-uuencode</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uva</extension>
+        <mime-type>audio/vnd.dece.audio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvd</extension>
+        <mime-type>application/vnd.dece.data</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvf</extension>
+        <mime-type>application/vnd.dece.data</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvg</extension>
+        <mime-type>image/vnd.dece.graphic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvh</extension>
+        <mime-type>video/vnd.dece.hd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvi</extension>
+        <mime-type>image/vnd.dece.graphic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvm</extension>
+        <mime-type>video/vnd.dece.mobile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvp</extension>
+        <mime-type>video/vnd.dece.pd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvs</extension>
+        <mime-type>video/vnd.dece.sd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvt</extension>
+        <mime-type>application/vnd.dece.ttml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvu</extension>
+        <mime-type>video/vnd.uvvu.mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvv</extension>
+        <mime-type>video/vnd.dece.video</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvva</extension>
+        <mime-type>audio/vnd.dece.audio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvd</extension>
+        <mime-type>application/vnd.dece.data</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvf</extension>
+        <mime-type>application/vnd.dece.data</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvg</extension>
+        <mime-type>image/vnd.dece.graphic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvh</extension>
+        <mime-type>video/vnd.dece.hd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvi</extension>
+        <mime-type>image/vnd.dece.graphic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvm</extension>
+        <mime-type>video/vnd.dece.mobile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvp</extension>
+        <mime-type>video/vnd.dece.pd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvs</extension>
+        <mime-type>video/vnd.dece.sd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvt</extension>
+        <mime-type>application/vnd.dece.ttml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvu</extension>
+        <mime-type>video/vnd.uvvu.mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvv</extension>
+        <mime-type>video/vnd.dece.video</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvx</extension>
+        <mime-type>application/vnd.dece.unspecified</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvvz</extension>
+        <mime-type>application/vnd.dece.zip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvx</extension>
+        <mime-type>application/vnd.dece.unspecified</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>uvz</extension>
+        <mime-type>application/vnd.dece.zip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vcard</extension>
+        <mime-type>text/vcard</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vcd</extension>
+        <mime-type>application/x-cdlink</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vcf</extension>
+        <mime-type>text/x-vcard</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vcg</extension>
+        <mime-type>application/vnd.groove-vcard</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vcs</extension>
+        <mime-type>text/x-vcalendar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vcx</extension>
+        <mime-type>application/vnd.vcx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vis</extension>
+        <mime-type>application/vnd.visionary</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>viv</extension>
+        <mime-type>video/vnd.vivo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vob</extension>
+        <mime-type>video/x-ms-vob</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vor</extension>
+        <mime-type>application/vnd.stardivision.writer</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vox</extension>
+        <mime-type>application/x-authorware-bin</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vrml</extension>
+        <mime-type>model/vrml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vsd</extension>
+        <mime-type>application/vnd.visio</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>rdf</extension>
-        <mime-type>application/rdf+xml</mime-type>
+        <extension>vsf</extension>
+        <mime-type>application/vnd.vsf</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>rgb</extension>
-        <mime-type>image/x-rgb</mime-type>
+        <extension>vss</extension>
+        <mime-type>application/vnd.visio</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>rm</extension>
-        <mime-type>application/vnd.rn-realmedia</mime-type>
+        <extension>vst</extension>
+        <mime-type>application/vnd.visio</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>roff</extension>
-        <mime-type>application/x-troff</mime-type>
+        <extension>vsw</extension>
+        <mime-type>application/vnd.visio</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>rtf</extension>
-        <mime-type>application/rtf</mime-type>
+        <extension>vtu</extension>
+        <mime-type>model/vnd.vtu</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>rtx</extension>
-        <mime-type>text/richtext</mime-type>
+        <extension>vxml</extension>
+        <mime-type>application/voicexml+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>sh</extension>
-        <mime-type>application/x-sh</mime-type>
+        <extension>w3d</extension>
+        <mime-type>application/x-director</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>shar</extension>
-        <mime-type>application/x-shar</mime-type>
+        <extension>wad</extension>
+        <mime-type>application/x-doom</mime-type>
     </mime-mapping>
-<!--
     <mime-mapping>
-        <extension>shtml</extension>
-        <mime-type>text/x-server-parsed-html</mime-type>
+        <extension>wav</extension>
+        <mime-type>audio/x-wav</mime-type>
     </mime-mapping>
--->
     <mime-mapping>
-        <extension>smf</extension>
-        <mime-type>audio/x-midi</mime-type>
+        <extension>wax</extension>
+        <mime-type>audio/x-ms-wax</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>sit</extension>
-        <mime-type>application/x-stuffit</mime-type>
+        <!-- Wireless Bitmap -->
+        <extension>wbmp</extension>
+        <mime-type>image/vnd.wap.wbmp</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>snd</extension>
-        <mime-type>audio/basic</mime-type>
+        <extension>wbs</extension>
+        <mime-type>application/vnd.criticaltools.wbs+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>src</extension>
-        <mime-type>application/x-wais-source</mime-type>
+        <extension>wbxml</extension>
+        <mime-type>application/vnd.wap.wbxml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>sv4cpio</extension>
-        <mime-type>application/x-sv4cpio</mime-type>
+        <extension>wcm</extension>
+        <mime-type>application/vnd.ms-works</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>sv4crc</extension>
-        <mime-type>application/x-sv4crc</mime-type>
+        <extension>wdb</extension>
+        <mime-type>application/vnd.ms-works</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>svg</extension>
-        <mime-type>image/svg+xml</mime-type>
+        <extension>wdp</extension>
+        <mime-type>image/vnd.ms-photo</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>svgz</extension>
-        <mime-type>image/svg+xml</mime-type>
+        <extension>weba</extension>
+        <mime-type>audio/webm</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>swf</extension>
-        <mime-type>application/x-shockwave-flash</mime-type>
+        <extension>webm</extension>
+        <mime-type>video/webm</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>t</extension>
-        <mime-type>application/x-troff</mime-type>
+        <extension>webp</extension>
+        <mime-type>image/webp</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>tar</extension>
-        <mime-type>application/x-tar</mime-type>
+        <extension>wg</extension>
+        <mime-type>application/vnd.pmi.widget</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>tcl</extension>
-        <mime-type>application/x-tcl</mime-type>
+        <extension>wgt</extension>
+        <mime-type>application/widget</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>tex</extension>
-        <mime-type>application/x-tex</mime-type>
+        <extension>wks</extension>
+        <mime-type>application/vnd.ms-works</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>texi</extension>
-        <mime-type>application/x-texinfo</mime-type>
+        <extension>wm</extension>
+        <mime-type>video/x-ms-wm</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>texinfo</extension>
-        <mime-type>application/x-texinfo</mime-type>
+        <extension>wma</extension>
+        <mime-type>audio/x-ms-wma</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>tif</extension>
-        <mime-type>image/tiff</mime-type>
+        <extension>wmd</extension>
+        <mime-type>application/x-ms-wmd</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>tiff</extension>
-        <mime-type>image/tiff</mime-type>
+        <extension>wmf</extension>
+        <mime-type>application/x-msmetafile</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>tr</extension>
-        <mime-type>application/x-troff</mime-type>
+        <!-- WML Source -->
+        <extension>wml</extension>
+        <mime-type>text/vnd.wap.wml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>tsv</extension>
-        <mime-type>text/tab-separated-values</mime-type>
+        <!-- Compiled WML -->
+        <extension>wmlc</extension>
+        <mime-type>application/vnd.wap.wmlc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>txt</extension>
-        <mime-type>text/plain</mime-type>
+        <!-- WML Script Source -->
+        <extension>wmls</extension>
+        <mime-type>text/vnd.wap.wmlscript</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ulw</extension>
-        <mime-type>audio/basic</mime-type>
+        <!-- Compiled WML Script -->
+        <extension>wmlsc</extension>
+        <mime-type>application/vnd.wap.wmlscriptc</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>ustar</extension>
-        <mime-type>application/x-ustar</mime-type>
+        <extension>wmv</extension>
+        <mime-type>video/x-ms-wmv</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>vxml</extension>
-        <mime-type>application/voicexml+xml</mime-type>
+        <extension>wmx</extension>
+        <mime-type>video/x-ms-wmx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wmz</extension>
+        <mime-type>application/x-msmetafile</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>woff</extension>
+        <mime-type>application/x-font-woff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wpd</extension>
+        <mime-type>application/vnd.wordperfect</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wpl</extension>
+        <mime-type>application/vnd.ms-wpl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wps</extension>
+        <mime-type>application/vnd.ms-works</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wqd</extension>
+        <mime-type>application/vnd.wqd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wri</extension>
+        <mime-type>application/x-mswrite</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wrl</extension>
+        <mime-type>model/vrml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wsdl</extension>
+        <mime-type>application/wsdl+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wspolicy</extension>
+        <mime-type>application/wspolicy+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wtb</extension>
+        <mime-type>application/vnd.webturbo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wvx</extension>
+        <mime-type>video/x-ms-wvx</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>x32</extension>
+        <mime-type>application/x-authorware-bin</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>x3d</extension>
+        <mime-type>model/x3d+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>x3db</extension>
+        <mime-type>model/x3d+binary</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>x3dbz</extension>
+        <mime-type>model/x3d+binary</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>x3dv</extension>
+        <mime-type>model/x3d+vrml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>x3dvz</extension>
+        <mime-type>model/x3d+vrml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>x3dz</extension>
+        <mime-type>model/x3d+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xaml</extension>
+        <mime-type>application/xaml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xap</extension>
+        <mime-type>application/x-silverlight-app</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xar</extension>
+        <mime-type>application/vnd.xara</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xbap</extension>
+        <mime-type>application/x-ms-xbap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xbd</extension>
+        <mime-type>application/vnd.fujixerox.docuworks.binder</mime-type>
     </mime-mapping>
     <mime-mapping>
         <extension>xbm</extension>
         <mime-type>image/x-xbitmap</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>xdf</extension>
+        <mime-type>application/xcap-diff+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xdm</extension>
+        <mime-type>application/vnd.syncml.dm+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xdp</extension>
+        <mime-type>application/vnd.adobe.xdp+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xdssc</extension>
+        <mime-type>application/dssc+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xdw</extension>
+        <mime-type>application/vnd.fujixerox.docuworks</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xenc</extension>
+        <mime-type>application/xenc+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xer</extension>
+        <mime-type>application/patch-ops-error+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xfdf</extension>
+        <mime-type>application/vnd.adobe.xfdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xfdl</extension>
+        <mime-type>application/vnd.xfdl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>xht</extension>
         <mime-type>application/xhtml+xml</mime-type>
     </mime-mapping>
@@ -1143,18 +4405,110 @@
         <mime-type>application/xhtml+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>xhvml</extension>
+        <mime-type>application/xv+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xif</extension>
+        <mime-type>image/vnd.xiff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xla</extension>
+        <mime-type>application/vnd.ms-excel</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xlam</extension>
+        <mime-type>application/vnd.ms-excel.addin.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xlc</extension>
+        <mime-type>application/vnd.ms-excel</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xlf</extension>
+        <mime-type>application/x-xliff+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xlm</extension>
+        <mime-type>application/vnd.ms-excel</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>xls</extension>
         <mime-type>application/vnd.ms-excel</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>xlsb</extension>
+        <mime-type>application/vnd.ms-excel.sheet.binary.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xlsm</extension>
+        <mime-type>application/vnd.ms-excel.sheet.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xlsx</extension>
+        <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xlt</extension>
+        <mime-type>application/vnd.ms-excel</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xltm</extension>
+        <mime-type>application/vnd.ms-excel.template.macroenabled.12</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xltx</extension>
+        <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xlw</extension>
+        <mime-type>application/vnd.ms-excel</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xm</extension>
+        <mime-type>audio/xm</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>xml</extension>
         <mime-type>application/xml</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>xo</extension>
+        <mime-type>application/vnd.olpc-sugar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xop</extension>
+        <mime-type>application/xop+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xpi</extension>
+        <mime-type>application/x-xpinstall</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xpl</extension>
+        <mime-type>application/xproc+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>xpm</extension>
         <mime-type>image/x-xpixmap</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>xpr</extension>
+        <mime-type>application/vnd.is-xpr</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xps</extension>
+        <mime-type>application/vnd.ms-xpsdocument</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xpw</extension>
+        <mime-type>application/vnd.intercon.formnet</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xpx</extension>
+        <mime-type>application/vnd.intercon.formnet</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>xsl</extension>
         <mime-type>application/xml</mime-type>
     </mime-mapping>
@@ -1163,70 +4517,105 @@
         <mime-type>application/xslt+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>xsm</extension>
+        <mime-type>application/vnd.syncml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xspf</extension>
+        <mime-type>application/xspf+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>xul</extension>
         <mime-type>application/vnd.mozilla.xul+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>xvm</extension>
+        <mime-type>application/xv+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xvml</extension>
+        <mime-type>application/xv+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>xwd</extension>
         <mime-type>image/x-xwindowdump</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>vsd</extension>
-        <mime-type>application/x-visio</mime-type>
+        <extension>xyz</extension>
+        <mime-type>chemical/x-xyz</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>wav</extension>
-        <mime-type>audio/x-wav</mime-type>
+        <extension>xz</extension>
+        <mime-type>application/x-xz</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- Wireless Bitmap -->
-        <extension>wbmp</extension>
-        <mime-type>image/vnd.wap.wbmp</mime-type>
+        <extension>yang</extension>
+        <mime-type>application/yang</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- WML Source -->
-        <extension>wml</extension>
-        <mime-type>text/vnd.wap.wml</mime-type>
+        <extension>yin</extension>
+        <mime-type>application/yin+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- Compiled WML -->
-        <extension>wmlc</extension>
-        <mime-type>application/vnd.wap.wmlc</mime-type>
+        <extension>z</extension>
+        <mime-type>application/x-compress</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- WML Script Source -->
-        <extension>wmls</extension>
-        <mime-type>text/vnd.wap.wmlscript</mime-type>
+        <extension>Z</extension>
+        <mime-type>application/x-compress</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <!-- Compiled WML Script -->
-        <extension>wmlscriptc</extension>
-        <mime-type>application/vnd.wap.wmlscriptc</mime-type>
+        <extension>z1</extension>
+        <mime-type>application/x-zmachine</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>wmv</extension>
-        <mime-type>video/x-ms-wmv</mime-type>
+        <extension>z2</extension>
+        <mime-type>application/x-zmachine</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>wrl</extension>
-        <mime-type>x-world/x-vrml</mime-type>
+        <extension>z3</extension>
+        <mime-type>application/x-zmachine</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>wspolicy</extension>
-        <mime-type>application/wspolicy+xml</mime-type>
+        <extension>z4</extension>
+        <mime-type>application/x-zmachine</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>Z</extension>
-        <mime-type>application/x-compress</mime-type>
+        <extension>z5</extension>
+        <mime-type>application/x-zmachine</mime-type>
     </mime-mapping>
     <mime-mapping>
-        <extension>z</extension>
-        <mime-type>application/x-compress</mime-type>
+        <extension>z6</extension>
+        <mime-type>application/x-zmachine</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>z7</extension>
+        <mime-type>application/x-zmachine</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>z8</extension>
+        <mime-type>application/x-zmachine</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>zaz</extension>
+        <mime-type>application/vnd.zzazz.deck+xml</mime-type>
     </mime-mapping>
     <mime-mapping>
         <extension>zip</extension>
         <mime-type>application/zip</mime-type>
     </mime-mapping>
+    <mime-mapping>
+        <extension>zir</extension>
+        <mime-type>application/vnd.zul</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>zirz</extension>
+        <mime-type>application/vnd.zul</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>zmm</extension>
+        <mime-type>application/vnd.handheld-entertainment+xml</mime-type>
+    </mime-mapping>
 
   <!-- ==================== Default Welcome File List ===================== -->
   <!-- When a request URI refers to a directory, the default servlet looks  -->
diff --git a/dist.xml b/dist.xml
index 060e03c..04411eb 100644
--- a/dist.xml
+++ b/dist.xml
@@ -54,12 +54,13 @@
   <property name="final-src.name"        value="${project}-${version}-src" />
 
   <!-- Build Defaults -->
-  <property name="tomcat.build"      value="${basedir}/output/build"/>
-  <property name="tomcat.classes"    value="${basedir}/output/classes"/>
-  <property name="tomcat.dist"       value="${basedir}/output/dist"/>
-  <property name="tomcat.deployer"   value="${basedir}/output/deployer"/>
-  <property name="tomcat.extras"     value="${basedir}/output/extras"/>
-  <property name="tomcat.release"    value="${basedir}/output/release"/>
+  <property name="tomcat.output"     value="${basedir}/output"/>
+  <property name="tomcat.build"      value="${tomcat.output}/build"/>
+  <property name="tomcat.classes"    value="${tomcat.output}/classes"/>
+  <property name="tomcat.dist"       value="${tomcat.output}/dist"/>
+  <property name="tomcat.deployer"   value="${tomcat.output}/deployer"/>
+  <property name="tomcat.extras"     value="${tomcat.output}/extras"/>
+  <property name="tomcat.release"    value="${tomcat.output}/release"/>
   <property name="test.failonerror"  value="true"/>
   <property name="test.runner"       value="junit.textui.TestRunner"/>
 
diff --git a/eclipse.classpath b/eclipse.classpath
index 5dfe5ce..6fd7af0 100644
--- a/eclipse.classpath
+++ b/eclipse.classpath
@@ -20,7 +20,7 @@
 	<classpathentry kind="src" path="test"/>
 	<classpathentry kind="src" path="webapps/examples/WEB-INF/classes"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/ecj-3.7.2/ecj-3.7.2.jar"/>
+	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/ecj-4.2.2/ecj-4.2.2.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
 	<classpathentry kind="var" path="ANT_HOME/lib/ant.jar"/>
 	<classpathentry kind="output" path=".settings/output"/>
diff --git a/extras.xml b/extras.xml
index 2be6c2c..88b5979 100644
--- a/extras.xml
+++ b/extras.xml
@@ -54,13 +54,14 @@
   <property name="final-src.name"        value="${project}-${version}-src" />
 
   <!-- Build Defaults -->
-  <property name="tomcat.build"      value="${basedir}/output/build"/>
-  <property name="tomcat.classes"    value="${basedir}/output/classes"/>
-  <property name="tomcat.dist"       value="${basedir}/output/dist"/>
-  <property name="tomcat.extras"     value="${basedir}/output/extras"/>
-  <property name="tomcat.manifests"  value="${basedir}/output/manifests"/>
-  <property name="tomcat.deployer"   value="${basedir}/output/deployer"/>
-  <property name="tomcat.release"    value="${basedir}/output/release"/>
+  <property name="tomcat.output"     value="${basedir}/output"/>
+  <property name="tomcat.build"      value="${tomcat.output}/build"/>
+  <property name="tomcat.classes"    value="${tomcat.output}/classes"/>
+  <property name="tomcat.dist"       value="${tomcat.output}/dist"/>
+  <property name="tomcat.extras"     value="${tomcat.output}/extras"/>
+  <property name="tomcat.manifests"  value="${tomcat.output}/manifests"/>
+  <property name="tomcat.deployer"   value="${tomcat.output}/deployer"/>
+  <property name="tomcat.release"    value="${tomcat.output}/release"/>
   <property name="test.failonerror"  value="true"/>
   <property name="test.runner"       value="junit.textui.TestRunner"/>
 
diff --git a/java/javax/servlet/http/HttpServlet.java b/java/javax/servlet/http/HttpServlet.java
index d3615b4..50a100b 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -616,7 +616,13 @@ public abstract class HttpServlet extends GenericServlet
                 // to go through further expensive logic
                 doGet(req, resp);
             } else {
-                long ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
+                long ifModifiedSince;
+                try {
+                    ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
+                } catch (IllegalArgumentException iae) {
+                    // Invalid date header - proceed as if none was set
+                    ifModifiedSince = -1;
+                }
                 if (ifModifiedSince < (lastModified / 1000 * 1000)) {
                     // If the servlet mod time is later, call doGet()
                     // Round down to the nearest second for a proper compare
diff --git a/java/javax/servlet/http/HttpServletResponse.java b/java/javax/servlet/http/HttpServletResponse.java
index 3350264..178b200 100644
--- a/java/javax/servlet/http/HttpServletResponse.java
+++ b/java/javax/servlet/http/HttpServletResponse.java
@@ -131,41 +131,41 @@ public interface HttpServletResponse extends ServletResponse {
     public String encodeRedirectUrl(String url);
 
     /**
-     * Sends an error response to the client using the specified
-     * status.  The server defaults to creating the
-     * response to look like an HTML-formatted server error page
-     * containing the specified message, setting the content type
-     * to "text/html", leaving cookies and other headers unmodified.
-     *
-     * If an error-page declaration has been made for the web application
-     * corresponding to the status code passed in, it will be served back in 
-     * preference to the suggested msg parameter. 
-     *
-     * <p>If the response has already been committed, this method throws 
-     * an IllegalStateException.
-     * After using this method, the response should be considered
-     * to be committed and should not be written to.
-     *
-     * @param	sc	the error status code
-     * @param	msg	the descriptive message
-     * @exception	IOException	If an input or output exception occurs
-     * @exception	IllegalStateException	If the response was committed
+     * Sends an error response to the client using the specified status code and
+     * clears the output buffer. The server defaults to creating the response to
+     * look like an HTML-formatted server error page containing the specified
+     * message, setting the content type to "text/html", leaving cookies and
+     * other headers unmodified. If an error-page declaration has been made for
+     * the web application corresponding to the status code passed in, it will
+     * be served back in preference to the suggested msg parameter.
+     * <p>
+     * If the response has already been committed, this method throws an
+     * IllegalStateException. After using this method, the response should be
+     * considered to be committed and should not be written to.
+     * 
+     * @param sc
+     *            the error status code
+     * @param msg
+     *            the descriptive message
+     * @exception IOException
+     *                If an input or output exception occurs
+     * @exception IllegalStateException
+     *                If the response was committed
      */
    
     public void sendError(int sc, String msg) throws IOException;
 
     /**
-     * Sends an error response to the client using the specified status
-     * code and clearing the buffer. 
-     * <p>If the response has already been committed, this method throws 
-     * an IllegalStateException.
-     * After using this method, the response should be considered
-     * to be committed and should not be written to.
-     *
-     * @param	sc	the error status code
-     * @exception	IOException	If an input or output exception occurs
-     * @exception	IllegalStateException	If the response was committed
-     *						before this method call
+     * Sends an error response to the client using the specified status code and
+     * clears the buffer. This is equivalent to calling {@link #sendError(int,
+     * String)} with the same status code and <code>null</code> for the message.
+     * 
+     * @param sc
+     *            the error status code
+     * @exception IOException
+     *                If an input or output exception occurs
+     * @exception IllegalStateException
+     *                If the response was committed before this method call
      */
 
     public void sendError(int sc) throws IOException;
diff --git a/java/org/apache/catalina/authenticator/FormAuthenticator.java b/java/org/apache/catalina/authenticator/FormAuthenticator.java
index 18df2ec..9de1562 100644
--- a/java/org/apache/catalina/authenticator/FormAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/FormAuthenticator.java
@@ -31,6 +31,7 @@ import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Globals;
+import org.apache.catalina.Manager;
 import org.apache.catalina.Realm;
 import org.apache.catalina.Session;
 import org.apache.catalina.connector.Request;
@@ -51,7 +52,7 @@ import org.apache.tomcat.util.http.MimeHeaders;
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @version $Id: FormAuthenticator.java 1377878 2012-08-27 21:28:04Z markt $
+ * @version $Id: FormAuthenticator.java 1417891 2012-12-06 13:58:59Z kkolinko $
  */
 
 public class FormAuthenticator
@@ -322,6 +323,15 @@ public class FormAuthenticator
                     config.getLoginPage(), context.getName()));
         }
 
+        if (getChangeSessionIdOnAuthentication()) {
+            Session session = request.getSessionInternal(false);
+            if (session != null) {
+                Manager manager = request.getContext().getManager();
+                manager.changeSessionId(session);
+                request.changeSessionId(session.getId());
+            }
+        }
+
         // Always use GET for the login page, regardless of the method used
         String oldMethod = request.getCoyoteRequest().method().toString();
         request.getCoyoteRequest().method().setString("GET");
diff --git a/java/org/apache/catalina/core/ApplicationFilterConfig.java b/java/org/apache/catalina/core/ApplicationFilterConfig.java
index 15e3caf..9510969 100644
--- a/java/org/apache/catalina/core/ApplicationFilterConfig.java
+++ b/java/org/apache/catalina/core/ApplicationFilterConfig.java
@@ -54,7 +54,7 @@ import org.apache.tomcat.util.modeler.Registry;
  * is first started.
  *
  * @author Craig R. McClanahan
- * @version $Id: ApplicationFilterConfig.java 939336 2010-04-29 15:00:41Z kkolinko $
+ * @version $Id: ApplicationFilterConfig.java 1431946 2013-01-11 09:23:06Z kkolinko $
  */
 
 public final class ApplicationFilterConfig implements FilterConfig, Serializable {
@@ -351,8 +351,9 @@ public final class ApplicationFilterConfig implements FilterConfig, Serializable
                     SecurityUtil.doAsPrivilege("destroy", filter); 
                 } catch(java.lang.Exception ex){                    
                     context.getLogger().error("ApplicationFilterConfig.doAsPrivilege", ex);
+                } finally {
+                    SecurityUtil.remove(filter);
                 }
-                SecurityUtil.remove(filter);
             } else { 
                 filter.destroy();
             }
@@ -401,8 +402,9 @@ public final class ApplicationFilterConfig implements FilterConfig, Serializable
                         SecurityUtil.doAsPrivilege("destroy", filter);  
                     } catch(java.lang.Exception ex){    
                         context.getLogger().error("ApplicationFilterConfig.doAsPrivilege", ex);
+                    } finally {
+                        SecurityUtil.remove(filter);
                     }
-                    SecurityUtil.remove(filter);
                 } else { 
                     filter.destroy();
                 }
diff --git a/java/org/apache/catalina/core/AprLifecycleListener.java b/java/org/apache/catalina/core/AprLifecycleListener.java
index d31a22b..f8ed446 100644
--- a/java/org/apache/catalina/core/AprLifecycleListener.java
+++ b/java/org/apache/catalina/core/AprLifecycleListener.java
@@ -39,7 +39,7 @@ import org.apache.tomcat.util.ExceptionUtils;
  *
  * @author Remy Maucherat
  * @author Filip Hanik
- * @version $Id: AprLifecycleListener.java 1330521 2012-04-25 19:59:23Z schultz $
+ * @version $Id: AprLifecycleListener.java 1476590 2013-04-27 14:36:32Z kkolinko $
  * @since 4.1
  */
 
@@ -62,7 +62,7 @@ public class AprLifecycleListener
     protected static final int TCN_REQUIRED_MAJOR = 1;
     protected static final int TCN_REQUIRED_MINOR = 1;
     protected static final int TCN_REQUIRED_PATCH = 17;
-    protected static final int TCN_RECOMMENDED_PV = 22;
+    protected static final int TCN_RECOMMENDED_PV = 27;
 
 
     // ---------------------------------------------- Properties
diff --git a/java/org/apache/catalina/core/LocalStrings_es.properties b/java/org/apache/catalina/core/LocalStrings_es.properties
index 168f3bc..70d0932 100644
--- a/java/org/apache/catalina/core/LocalStrings_es.properties
+++ b/java/org/apache/catalina/core/LocalStrings_es.properties
@@ -99,7 +99,7 @@ standardContext.notStarted = A\u00fan no se ha arrancado el Contexto
 standardContext.notWrapper = El Hijo de un Contexto debe de ser un Arropador (Wrapper)
 standardContext.parameter.duplicate = Duplicado par\u00e1metro de inicializaci\u00f3n de contexto {0}
 standardContext.parameter.required = Es necesario poner nombre de par\u00e1metro y valor de par\u00e1metro
-standardContext.reloadingCompleted = Se ha completado la Regarga de este Contexto
+standardContext.reloadingCompleted = Se ha completado la recarga de este Contexto
 standardContext.reloadingFailed = Fall\u00f3 la recarga de este Contexto debido a errores previos
 standardContext.reloadingStarted = Ha comenzado la recarga de Contexto [{0}]
 standardContext.resourcesStart = Error arrancando Recursos est\u00e1ticos
diff --git a/java/org/apache/catalina/core/StandardWrapper.java b/java/org/apache/catalina/core/StandardWrapper.java
index 1651da4..e511122 100644
--- a/java/org/apache/catalina/core/StandardWrapper.java
+++ b/java/org/apache/catalina/core/StandardWrapper.java
@@ -73,7 +73,7 @@ import org.apache.tomcat.util.modeler.Registry;
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @version $Id: StandardWrapper.java 1200269 2011-11-10 11:16:01Z kkolinko $
+ * @version $Id: StandardWrapper.java 1431946 2013-01-11 09:23:06Z kkolinko $
  */
 public class StandardWrapper
     extends ContainerBase
@@ -1195,13 +1195,20 @@ public class StandardWrapper
                                                   servlet);
 
                 if( Globals.IS_SECURITY_ENABLED) {
-
-                    Object[] args = new Object[]{((ServletConfig)facade)};
-                    SecurityUtil.doAsPrivilege("init",
-                                               servlet,
-                                               classType,
-                                               args);
-                    args = null;
+                    boolean success = false;
+                    try {
+                        Object[] args = new Object[]{ facade };
+                        SecurityUtil.doAsPrivilege("init",
+                                                   servlet,
+                                                   classType,
+                                                   args);
+                        success = true;
+                    } finally {
+                        if (!success) {
+                            // destroy() will not be called, thus clear the reference now
+                            SecurityUtil.remove(servlet);
+                        }
+                    }
                 } else {
                     servlet.init(facade);
                 }
@@ -1429,9 +1436,12 @@ public class StandardWrapper
               (InstanceEvent.BEFORE_DESTROY_EVENT, instance);
 
             if( Globals.IS_SECURITY_ENABLED) {
-                SecurityUtil.doAsPrivilege("destroy",
-                                           instance);
-                SecurityUtil.remove(instance);                           
+                try {
+                    SecurityUtil.doAsPrivilege("destroy",
+                                               instance);
+                } finally {
+                    SecurityUtil.remove(instance);
+                }
             } else {
                 instance.destroy();
             }
@@ -1477,8 +1487,11 @@ public class StandardWrapper
                 while (!instancePool.isEmpty()) {
                     Servlet s = (Servlet) instancePool.pop();
                     if (Globals.IS_SECURITY_ENABLED) {
-                        SecurityUtil.doAsPrivilege("destroy", s);
-                        SecurityUtil.remove(instance);                           
+                        try {
+                            SecurityUtil.doAsPrivilege("destroy", s);
+                        } finally {
+                            SecurityUtil.remove(s);
+                        }
                     } else {
                         s.destroy();
                     }
diff --git a/java/org/apache/catalina/manager/Constants.java b/java/org/apache/catalina/manager/Constants.java
index fbf5f87..c9eef2f 100644
--- a/java/org/apache/catalina/manager/Constants.java
+++ b/java/org/apache/catalina/manager/Constants.java
@@ -182,7 +182,7 @@ public class Constants {
     public static final String HTML_TAIL_SECTION =
         "<hr size=\"1\" noshade=\"noshade\">\n" +
         "<center><font size=\"-1\" color=\"#525D76\">\n" +
-        " <em>Copyright © 1999-2012, Apache Software Foundation</em>" +
+        " <em>Copyright © 1999-2013, Apache Software Foundation</em>" +
         "</font></center>\n" +
         "\n" +
         "</body>\n" +
diff --git a/java/org/apache/catalina/manager/HTMLManagerServlet.java b/java/org/apache/catalina/manager/HTMLManagerServlet.java
index cbc4f94..be8b180 100644
--- a/java/org/apache/catalina/manager/HTMLManagerServlet.java
+++ b/java/org/apache/catalina/manager/HTMLManagerServlet.java
@@ -68,7 +68,7 @@ import org.apache.tomcat.util.http.fileupload.FileItem;
 * @author Bip Thelin
 * @author Malcolm Edgar
 * @author Glenn L. Nielsen
-* @version $Id: HTMLManagerServlet.java 1394144 2012-10-04 16:30:50Z markt $
+* @version $Id: HTMLManagerServlet.java 1428973 2013-01-04 16:53:02Z kkolinko $
 * @see ManagerServlet
 */
 
@@ -676,7 +676,7 @@ public final class HTMLManagerServlet extends ManagerServlet {
      * @see javax.servlet.Servlet#getServletInfo()
      */
     public String getServletInfo() {
-        return "HTMLManagerServlet, Copyright (c) 1999-2012, The Apache Software Foundation";
+        return "HTMLManagerServlet, Copyright (c) 1999-2013, The Apache Software Foundation";
     }   
     
     /**
diff --git a/java/org/apache/catalina/manager/host/Constants.java b/java/org/apache/catalina/manager/host/Constants.java
index 7ed297f..dcc90f3 100644
--- a/java/org/apache/catalina/manager/host/Constants.java
+++ b/java/org/apache/catalina/manager/host/Constants.java
@@ -186,7 +186,7 @@ public class Constants {
     public static final String HTML_TAIL_SECTION =
         "<hr size=\"1\" noshade=\"noshade\">\n" +
         "<center><font size=\"-1\" color=\"#525D76\">\n" +
-        " <em>Copyright © 1999-2012, Apache Software Foundation</em>" +
+        " <em>Copyright © 1999-2013, Apache Software Foundation</em>" +
         "</font></center>\n" +
         "\n" +
         "</body>\n" +
diff --git a/java/org/apache/catalina/security/SecurityUtil.java b/java/org/apache/catalina/security/SecurityUtil.java
index 6d18fa6..1295c5b 100644
--- a/java/org/apache/catalina/security/SecurityUtil.java
+++ b/java/org/apache/catalina/security/SecurityUtil.java
@@ -39,8 +39,8 @@ import org.apache.catalina.util.StringManager;
 /**
  * This utility class associates a <code>Subject</code> to the current 
  * <code>AccessControlContext</code>. When a <code>SecurityManager</code> is
- * used, * the container will always associate the called thread with an 
- * AccessControlContext * containing only the principal of the requested
+ * used, the container will always associate the called thread with an 
+ * AccessControlContext containing only the principal of the requested
  * Servlet/Filter.
  *
  * This class uses reflection to invoke the invoke methods.
@@ -49,16 +49,23 @@ import org.apache.catalina.util.StringManager;
  */
 
 public final class SecurityUtil{
-    
-    private final static int INIT= 0;
-    private final static int SERVICE = 1;
-    private final static int DOFILTER = 1;
-    private final static int DESTROY = 2;
-    
-    private final static String INIT_METHOD = "init";
-    private final static String DOFILTER_METHOD = "doFilter";
-    private final static String SERVICE_METHOD = "service";
-    private final static String DESTROY_METHOD = "destroy";
+
+    // Note that indexes overlap.
+    // A Servlet uses "init", "service", "event", "destroy".
+    // A Filter uses "doFilter", "doFilterEvent", "destroy".
+    private static final int INIT= 0;
+    private static final int SERVICE = 1;
+    private static final int DOFILTER = 1;
+    private static final int EVENT = 2;
+    private static final int DOFILTEREVENT = 2;
+    private static final int DESTROY = 3;
+
+    private static final String INIT_METHOD = "init";
+    private static final String DOFILTER_METHOD = "doFilter";
+    private static final String SERVICE_METHOD = "service";
+    private static final String EVENT_METHOD = "event";
+    private static final String DOFILTEREVENT_METHOD = "doFilterEvent";
+    private static final String DESTROY_METHOD = "destroy";
    
     /**
      * Cache every object for which we are creating method on it.
@@ -335,19 +342,19 @@ public final class SecurityUtil{
      */
     private static Method findMethod(Method[] methodsCache,
                                      String methodName){
-        if (methodName.equalsIgnoreCase(INIT_METHOD) 
-                && methodsCache[INIT] != null){
+        if (methodName.equals(INIT_METHOD)){
             return methodsCache[INIT];
-        } else if (methodName.equalsIgnoreCase(DESTROY_METHOD) 
-                && methodsCache[DESTROY] != null){
-            return methodsCache[DESTROY];            
-        } else if (methodName.equalsIgnoreCase(SERVICE_METHOD) 
-                && methodsCache[SERVICE] != null){
+        } else if (methodName.equals(DESTROY_METHOD)){
+            return methodsCache[DESTROY];
+        } else if (methodName.equals(SERVICE_METHOD)){
             return methodsCache[SERVICE];
-        } else if (methodName.equalsIgnoreCase(DOFILTER_METHOD) 
-                && methodsCache[DOFILTER] != null){
-            return methodsCache[DOFILTER];          
-        } 
+        } else if (methodName.equals(DOFILTER_METHOD)){
+            return methodsCache[DOFILTER];
+        } else if (methodName.equals(EVENT_METHOD)){
+            return methodsCache[EVENT];
+        } else if (methodName.equals(DOFILTEREVENT_METHOD)){
+            return methodsCache[DOFILTEREVENT];
+        }
         return null;
     }
     
@@ -369,22 +376,26 @@ public final class SecurityUtil{
             throws Exception{
         
         if ( methodsCache == null){
-            methodsCache = new Method[3];
+            methodsCache = new Method[4];
         }               
                 
         Method method = 
             targetObject.getClass().getMethod(methodName, targetType); 
 
-        if (methodName.equalsIgnoreCase(INIT_METHOD)){
+        if (methodName.equals(INIT_METHOD)){
             methodsCache[INIT] = method;
-        } else if (methodName.equalsIgnoreCase(DESTROY_METHOD)){
+        } else if (methodName.equals(DESTROY_METHOD)){
             methodsCache[DESTROY] = method;
-        } else if (methodName.equalsIgnoreCase(SERVICE_METHOD)){
+        } else if (methodName.equals(SERVICE_METHOD)){
             methodsCache[SERVICE] = method;
-        } else if (methodName.equalsIgnoreCase(DOFILTER_METHOD)){
+        } else if (methodName.equals(DOFILTER_METHOD)){
             methodsCache[DOFILTER] = method;
-        } 
-         
+        } else if (methodName.equals(EVENT_METHOD)){
+            methodsCache[EVENT] = method;
+        } else if (methodName.equals(DOFILTEREVENT_METHOD)){
+            methodsCache[DOFILTEREVENT] = method;
+        }
+
         objectCache.put(targetObject, methodsCache );
                                            
         return method;
diff --git a/java/org/apache/catalina/servlets/CGIServlet.java b/java/org/apache/catalina/servlets/CGIServlet.java
index 79ced65..49ff0dc 100644
--- a/java/org/apache/catalina/servlets/CGIServlet.java
+++ b/java/org/apache/catalina/servlets/CGIServlet.java
@@ -236,7 +236,7 @@ import org.apache.catalina.util.IOTools;
  *
  * @author Martin T Dengler [root at martindengler.com]
  * @author Amy Roh
- * @version $Id: CGIServlet.java 1061536 2011-01-20 21:44:08Z markt $
+ * @version $Id: CGIServlet.java 1417882 2012-12-06 13:44:12Z kkolinko $
  * @since Tomcat 4.0
  *
  */
@@ -277,7 +277,7 @@ public final class CGIServlet extends HttpServlet {
     static Object expandFileLock = new Object();
 
     /** the shell environment variables to be passed to the CGI script */
-    static Hashtable<String,String> shellEnv = new Hashtable<String,String>();
+    Hashtable<String,String> shellEnv = new Hashtable<String,String>();
 
     /**
      * Sets instance variables.
@@ -667,7 +667,7 @@ public final class CGIServlet extends HttpServlet {
      * <p>
      * </p>
      *
-     * @version  $Id: CGIServlet.java 1061536 2011-01-20 21:44:08Z markt $
+     * @version  $Id: CGIServlet.java 1417882 2012-12-06 13:44:12Z kkolinko $
      * @since    Tomcat 4.0
      *
      */
@@ -1409,7 +1409,7 @@ public final class CGIServlet extends HttpServlet {
      * and <code>setResponse</code> methods, respectively.
      * </p>
      *
-     * @version $Id: CGIServlet.java 1061536 2011-01-20 21:44:08Z markt $
+     * @version $Id: CGIServlet.java 1417882 2012-12-06 13:44:12Z kkolinko $
      */
 
     protected class CGIRunner {
diff --git a/java/org/apache/catalina/ssi/SSIProcessor.java b/java/org/apache/catalina/ssi/SSIProcessor.java
index 9c43078..ad56b14 100644
--- a/java/org/apache/catalina/ssi/SSIProcessor.java
+++ b/java/org/apache/catalina/ssi/SSIProcessor.java
@@ -31,7 +31,7 @@ import org.apache.catalina.util.IOTools;
  * 
  * @author Dan Sandberg
  * @author David Becker
- * @version $Id: SSIProcessor.java 964732 2010-07-16 10:23:04Z markt $
+ * @version $Id: SSIProcessor.java 1476541 2013-04-27 09:39:02Z jfclere $
  */
 public class SSIProcessor {
     /** The start pattern */
@@ -306,11 +306,11 @@ public class SSIProcessor {
                 break;
             }
         }
-        String command = null;
-        if (firstLetter != -1) {
-            command = cmd.substring(firstLetter, lastLetter + 1);
+        if (firstLetter == -1) {
+            return "";
+        } else {
+            return cmd.substring(firstLetter, lastLetter + 1);
         }
-        return command;
     }
 
 
diff --git a/java/org/apache/catalina/startup/TldConfig.java b/java/org/apache/catalina/startup/TldConfig.java
index 935bac6..cdbac45 100644
--- a/java/org/apache/catalina/startup/TldConfig.java
+++ b/java/org/apache/catalina/startup/TldConfig.java
@@ -89,6 +89,8 @@ public final class TldConfig  implements LifecycleListener {
         noTldJars.add("ecj-3.7.jar");
         noTldJars.add("ecj-3.7.1.jar");
         noTldJars.add("ecj-3.7.2.jar");
+        noTldJars.add("ecj-4.2.1.jar");
+        noTldJars.add("ecj-4.2.2.jar");
         noTldJars.add("jsp-api.jar");
         noTldJars.add("servlet-api.jar");
         noTldJars.add("tomcat-coyote.jar");
diff --git a/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java b/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
index 2a6f726..5e08ddb 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
+++ b/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
@@ -35,6 +35,7 @@ import org.apache.catalina.tribes.io.ChannelData;
 import org.apache.catalina.tribes.io.XByteBuffer;
 import org.apache.catalina.tribes.membership.MemberImpl;
 import org.apache.catalina.tribes.membership.Membership;
+import org.apache.catalina.tribes.membership.StaticMember;
 
 /**
  * <p>Title: A perfect failure detector </p>
@@ -152,6 +153,9 @@ public class TcpFailureDetector extends ChannelInterceptorBase {
                 //not correct, we need to maintain the map
                 membership.removeMember( (MemberImpl) member);
                 removeSuspects.remove(member);
+                if (member instanceof StaticMember) {
+                    addSuspects.put(member, Long.valueOf(System.currentTimeMillis()));
+                }
                 notify = true;
             } else {
                 //add the member as suspect
@@ -218,7 +222,11 @@ public class TcpFailureDetector extends ChannelInterceptorBase {
                 if (membership.getMember(members[i])!=null) {
                     membership.removeMember((MemberImpl)members[i]);
                     removeSuspects.remove(members[i]);
-                    super.memberDisappeared((MemberImpl)members[i]);
+                    if (members[i] instanceof StaticMember) {
+                        addSuspects.put(members[i],
+                                Long.valueOf(System.currentTimeMillis()));
+                    }
+                    super.memberDisappeared(members[i]);
                 }
             } //end if
         } //for
@@ -229,6 +237,10 @@ public class TcpFailureDetector extends ChannelInterceptorBase {
         //update all alive times
         Member[] members = super.getMembers();
         for (int i = 0; members != null && i < members.length; i++) {
+            if (addSuspects.containsKey(members[i]) && membership.getMember(members[i]) == null) {
+                // avoid temporary adding member.
+                continue;
+            }
             if (membership.memberAlive( (MemberImpl) members[i])) {
                 //we don't have this one in our membership, check to see if he/she is alive
                 if (memberAlive(members[i])) {
diff --git a/java/org/apache/catalina/valves/ErrorReportValve.java b/java/org/apache/catalina/valves/ErrorReportValve.java
index f1af4a2..9573cbf 100644
--- a/java/org/apache/catalina/valves/ErrorReportValve.java
+++ b/java/org/apache/catalina/valves/ErrorReportValve.java
@@ -46,7 +46,7 @@ import org.apache.catalina.util.StringManager;
  * @author <a href="mailto:nicolaken at supereva.it">Nicola Ken Barozzi</a> Aisa
  * @author <a href="mailto:stefano at apache.org">Stefano Mazzocchi</a>
  * @author Yoav Shapira
- * @version $Id: ErrorReportValve.java 1377876 2012-08-27 21:21:44Z markt $
+ * @version $Id: ErrorReportValve.java 1417925 2012-12-06 14:51:43Z kkolinko $
  */
 
 public class ErrorReportValve
@@ -156,8 +156,10 @@ public class ErrorReportValve
 
         // Do nothing on a 1xx, 2xx and 3xx status
         // Do nothing if anything has been written already
-        if ((statusCode < 400) || (response.getContentCount() > 0))
+        if (statusCode < 400 || response.getContentCount() > 0 ||
+                !response.isError()) {
             return;
+        }
 
         String message = RequestUtil.filter(response.getMessage());
         if (message == null) {
diff --git a/java/org/apache/catalina/valves/RemoteIpValve.java b/java/org/apache/catalina/valves/RemoteIpValve.java
index f2559ba..a42120a 100644
--- a/java/org/apache/catalina/valves/RemoteIpValve.java
+++ b/java/org/apache/catalina/valves/RemoteIpValve.java
@@ -93,6 +93,11 @@ import org.apache.juli.logging.LogFactory;
  * <td>RemoteIPInternalProxy</td>
  * <td>Comma delimited list of regular expressions (in the syntax supported by the {@link java.util.regex.Pattern} library)</td>
  * <td>10\.\d{1,3}\.\d{1,3}\.\d{1,3}, 192\.168\.\d{1,3}\.\d{1,3}, 169\.254\.\d{1,3}\.\d{1,3}, 127\.\d{1,3}\.\d{1,3}\.\d{1,3} <br/>
+ * Note that this comma-separated regular expression <i>is</i> used by default
+ * but cannot be specified in the same way through String-based configuration,
+ * as the commas in the "\d{1,3}" expressions will interpreted as separators
+ * between regular expressions. The "\d{1,3}" pattern can be replaced by
+ * "\d\d?\d?" or more simply by "\d+".
  * By default, 10/8, 192.168/16, 169.254/16 and 127/8 are allowed ; 172.16/12 has not been enabled by default because it is complex to
  * describe with regular expressions</td>
  * </tr>
@@ -687,7 +692,10 @@ public class RemoteIpValve extends ValveBase {
      * Comma delimited list of internal proxies. Can be expressed with regular expressions.
      * </p>
      * <p>
-     * Default value : 10\.\d{1,3}\.\d{1,3}\.\d{1,3}, 192\.168\.\d{1,3}\.\d{1,3}, 127\.\d{1,3}\.\d{1,3}\.\d{1,3}
+     * Default value: 10\.\d{1,3}\.\d{1,3}\.\d{1,3}, 192\.168\.\d{1,3}\.\d{1,3}, 127\.\d{1,3}\.\d{1,3}\.\d{1,3}<br/>
+     * Note: If you want to configure the same value, you have to replace
+     * "\d{1,3}" with "\d\d?\d?" or more simply with "\d+". Otherwise the commas
+     * in the expression will be mistaken for separators between regular expressions.
      * </p>
      */
     public void setInternalProxies(String commaDelimitedInternalProxies) {
diff --git a/java/org/apache/coyote/http11/Http11AprProtocol.java b/java/org/apache/coyote/http11/Http11AprProtocol.java
index ef1ec29..a8e0434 100644
--- a/java/org/apache/coyote/http11/Http11AprProtocol.java
+++ b/java/org/apache/coyote/http11/Http11AprProtocol.java
@@ -416,6 +416,17 @@ public class Http11AprProtocol extends AbstractProtocol
 
 
     /**
+     * SSL honor cipher order.
+	 *
+     * Set to <code>true</code> to enforce the <i>server's</i> cipher order
+     * instead of the default which is to allow the client to choose a
+     * preferred cipher.
+     */
+    public boolean getSSLHonorCipherOrder() { return ((AprEndpoint)endpoint).getSSLHonorCipherOrder(); }
+    public void setSSLHonorCipherOrder(boolean SSLHonorCipherOrder) { ((AprEndpoint)endpoint).setSSLHonorCipherOrder(SSLHonorCipherOrder); }
+
+
+    /**
      * SSL certificate file.
      */
     public String getSSLCertificateFile() { return endpoint.getSSLCertificateFile(); }
@@ -477,6 +488,12 @@ public class Http11AprProtocol extends AbstractProtocol
     public int getSSLVerifyDepth() { return endpoint.getSSLVerifyDepth(); }
     public void setSSLVerifyDepth(int SSLVerifyDepth) { endpoint.setSSLVerifyDepth(SSLVerifyDepth); }
 
+    /**
+     * Disable SSL compression.
+     */
+    public boolean getSSLDisableCompression() { return ((AprEndpoint)endpoint).getSSLDisableCompression(); }
+    public void setSSLDisableCompression(boolean disable) { ((AprEndpoint)endpoint).setSSLDisableCompression(disable); }
+
     
     /**
      * When client certificate information is presented in a form other than
diff --git a/java/org/apache/coyote/http11/InternalAprInputBuffer.java b/java/org/apache/coyote/http11/InternalAprInputBuffer.java
index 20d06c6..f4c6e07 100644
--- a/java/org/apache/coyote/http11/InternalAprInputBuffer.java
+++ b/java/org/apache/coyote/http11/InternalAprInputBuffer.java
@@ -275,6 +275,11 @@ public class InternalAprInputBuffer implements InputBuffer {
         // Recycle Request object
         request.recycle();
 
+        // Recycle filters
+        for (int i = 0; i <= lastActiveFilter; i++) {
+            activeFilters[i].recycle();
+        }
+
         socket = 0;
         lastValid = 0;
         pos = 0;
diff --git a/java/org/apache/coyote/http11/InternalAprOutputBuffer.java b/java/org/apache/coyote/http11/InternalAprOutputBuffer.java
index 1469e41..1eb32ee 100644
--- a/java/org/apache/coyote/http11/InternalAprOutputBuffer.java
+++ b/java/org/apache/coyote/http11/InternalAprOutputBuffer.java
@@ -332,6 +332,11 @@ public class InternalAprOutputBuffer
         response.recycle();
         bbuf.clear();
 
+        // Recycle filters
+        for (int i = 0; i <= lastActiveFilter; i++) {
+            activeFilters[i].recycle();
+        }
+
         socket = 0;
         pos = 0;
         lastActiveFilter = -1;
diff --git a/java/org/apache/coyote/http11/InternalInputBuffer.java b/java/org/apache/coyote/http11/InternalInputBuffer.java
index 416364d..62b9dd4 100644
--- a/java/org/apache/coyote/http11/InternalInputBuffer.java
+++ b/java/org/apache/coyote/http11/InternalInputBuffer.java
@@ -276,6 +276,11 @@ public class InternalInputBuffer implements InputBuffer {
         // Recycle Request object
         request.recycle();
 
+        // Recycle filters
+        for (int i = 0; i <= lastActiveFilter; i++) {
+            activeFilters[i].recycle();
+        }
+
         inputStream = null;
         lastValid = 0;
         pos = 0;
diff --git a/java/org/apache/coyote/http11/InternalOutputBuffer.java b/java/org/apache/coyote/http11/InternalOutputBuffer.java
index a0b5dcd..55fca5a 100644
--- a/java/org/apache/coyote/http11/InternalOutputBuffer.java
+++ b/java/org/apache/coyote/http11/InternalOutputBuffer.java
@@ -347,6 +347,11 @@ public class InternalOutputBuffer
         response.recycle();
         socketBuffer.recycle();
 
+        // Recycle filters
+        for (int i = 0; i <= lastActiveFilter; i++) {
+            activeFilters[i].recycle();
+        }
+
         outputStream = null;
         pos = 0;
         lastActiveFilter = -1;
diff --git a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java
index eabf33d..6696ab6 100644
--- a/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java
+++ b/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java
@@ -148,7 +148,7 @@ public class ChunkedInputFilter implements InputFilter {
 
         if(needCRLFParse) {
             needCRLFParse = false;
-            parseCRLF();
+            parseCRLF(false);
         }
 
         if (remaining <= 0) {
@@ -164,7 +164,10 @@ public class ChunkedInputFilter implements InputFilter {
         int result = 0;
 
         if (pos >= lastValid) {
-            readBytes();
+            if (readBytes() < 0) {
+                throw new IOException(
+                        "Unexpected end of stream whilst reading request body");
+            }
         }
 
         if (remaining > (lastValid - pos)) {
@@ -183,7 +186,7 @@ public class ChunkedInputFilter implements InputFilter {
                 //so we defer it to the next call BZ 11117
                 needCRLFParse = true;
             } else {
-                parseCRLF(); //parse the CRLF immediately
+                parseCRLF(false); //parse the CRLF immediately
             }
         }
 
@@ -300,8 +303,8 @@ public class ChunkedInputFilter implements InputFilter {
                     return false;
             }
 
-            if (buf[pos] == Constants.CR) {
-            } else if (buf[pos] == Constants.LF) {
+            if (buf[pos] == Constants.CR || buf[pos] == Constants.LF) {
+                parseCRLF(false);
                 eol = true;
             } else if (buf[pos] == Constants.SEMI_COLON) {
                 trailer = true;
@@ -319,7 +322,10 @@ public class ChunkedInputFilter implements InputFilter {
                 }
             }
 
-            pos++;
+            // Parsing the CRLF increments pos
+            if (!eol) {
+                pos++;
+            }
 
         }
 
@@ -340,9 +346,22 @@ public class ChunkedInputFilter implements InputFilter {
 
     /**
      * Parse CRLF at end of chunk.
+     * @deprecated  Use {@link #parseCRLF(boolean)}
      */
-    protected boolean parseCRLF()
-        throws IOException {
+    @Deprecated
+    protected boolean parseCRLF() throws IOException {
+        parseCRLF(false);
+        return true;
+    }
+
+    /**
+     * Parse CRLF at end of chunk.
+     *
+     * @param   tolerant    Should tolerant parsing (LF and CRLF) be used? This
+     *                      is recommended (RFC2616, section 19.3) for message
+     *                      headers.
+     */
+    protected void parseCRLF(boolean tolerant) throws IOException {
 
         boolean eol = false;
         boolean crfound = false;
@@ -358,7 +377,9 @@ public class ChunkedInputFilter implements InputFilter {
                 if (crfound) throw new IOException("Invalid CRLF, two CR characters encountered.");
                 crfound = true;
             } else if (buf[pos] == Constants.LF) {
-                if (!crfound) throw new IOException("Invalid CRLF, no CR character encountered.");
+                if (!tolerant && !crfound) {
+                    throw new IOException("Invalid CRLF, no CR character encountered.");
+                }
                 eol = true;
             } else {
                 throw new IOException("Invalid CRLF");
@@ -367,9 +388,6 @@ public class ChunkedInputFilter implements InputFilter {
             pos++;
 
         }
-
-        return true;
-
     }
 
 
@@ -378,7 +396,7 @@ public class ChunkedInputFilter implements InputFilter {
      */
     protected boolean parseEndChunk() throws IOException {
 
-        // Handle option trailer headers
+        // Handle optional trailer headers
         while (parseHeader()) {
             // Loop until we run out of headers
         }
@@ -391,26 +409,19 @@ public class ChunkedInputFilter implements InputFilter {
         MimeHeaders headers = request.getMimeHeaders();
 
         byte chr = 0;
-        while (true) {
-            // Read new bytes if needed
-            if (pos >= lastValid) {
-                if (readBytes() <0)
-                    throw new EOFException("Unexpected end of stream whilst reading trailer headers for chunked request");
-            }
 
-            chr = buf[pos];
-    
-            if ((chr == Constants.CR) || (chr == Constants.LF)) {
-                if (chr == Constants.LF) {
-                    pos++;
-                    return false;
-                }
-            } else {
-                break;
-            }
-    
-            pos++;
+        // Read new bytes if needed
+        if (pos >= lastValid) {
+            if (readBytes() <0)
+                throw new EOFException("Unexpected end of stream whilst reading trailer headers for chunked request");
+        }
     
+        chr = buf[pos];
+
+        // CRLF terminates the request
+        if (chr == Constants.CR || chr == Constants.LF) {
+            parseCRLF(false);
+            return false;
         }
     
         // Mark the current buffer position
@@ -490,9 +501,8 @@ public class ChunkedInputFilter implements InputFilter {
                 }
     
                 chr = buf[pos];
-                if (chr == Constants.CR) {
-                    // Skip
-                } else if (chr == Constants.LF) {
+                if (chr == Constants.CR || chr == Constants.LF) {
+                    parseCRLF(true);
                     eol = true;
                 } else if (chr == Constants.SP) {
                     trailingHeaders.append(chr);
@@ -501,8 +511,9 @@ public class ChunkedInputFilter implements InputFilter {
                     lastSignificantChar = trailingHeaders.getEnd();
                 }
     
-                pos++;
-    
+                if (!eol) {
+                    pos++;
+                }
             }
     
             // Checking the first character of the new line. If the character
diff --git a/java/org/apache/jasper/compiler/JDTCompiler.java b/java/org/apache/jasper/compiler/JDTCompiler.java
index fea1147..b4c8374 100644
--- a/java/org/apache/jasper/compiler/JDTCompiler.java
+++ b/java/org/apache/jasper/compiler/JDTCompiler.java
@@ -147,6 +147,10 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler {
                 }
                 return result;
             }
+
+            public boolean ignoreOptionalProblems() {
+                return false;
+            }
         }
 
         final INameEnvironment env = new INameEnvironment() {
diff --git a/java/org/apache/jasper/compiler/TldLocationsCache.java b/java/org/apache/jasper/compiler/TldLocationsCache.java
index 2ae46a8..ad7725a 100644
--- a/java/org/apache/jasper/compiler/TldLocationsCache.java
+++ b/java/org/apache/jasper/compiler/TldLocationsCache.java
@@ -131,6 +131,8 @@ public class TldLocationsCache {
         noTldJars.add("ecj-3.7.jar");
         noTldJars.add("ecj-3.7.1.jar");
         noTldJars.add("ecj-3.7.2.jar");
+        noTldJars.add("ecj-4.2.1.jar");
+        noTldJars.add("ecj-4.2.2.jar");
         noTldJars.add("jsp-api.jar");
         noTldJars.add("servlet-api.jar");
         noTldJars.add("tomcat-coyote.jar");
diff --git a/java/org/apache/juli/DateFormatCache.java b/java/org/apache/juli/DateFormatCache.java
index 003dde4..0ef7a0b 100644
--- a/java/org/apache/juli/DateFormatCache.java
+++ b/java/org/apache/juli/DateFormatCache.java
@@ -41,7 +41,7 @@ import java.util.TimeZone;
  * <p>The cache can be created with a parent cache to build a cache hierarchy.
  * Access to the parent cache is threadsafe.</p>
  *
- * @version $Id: DateFormatCache.java 1185114 2011-10-17 11:44:16Z kkolinko $
+ * @version $Id: DateFormatCache.java 1476547 2013-04-27 10:05:58Z jfclere $
  */
 
 public class DateFormatCache {
@@ -101,14 +101,14 @@ public class DateFormatCache {
     private class Cache {
 
         /* Second formatted in most recent invocation */
-        private long previousSeconds = 0L;
+        private long previousSeconds = Long.MIN_VALUE;
         /* Formatted timestamp generated in most recent invocation */
         private String previousFormat = "";
 
         /* First second contained in cache */
-        private long first = 0L;
+        private long first = Long.MIN_VALUE;
         /* Last second contained in cache */
-        private long last = 0L;
+        private long last = Long.MIN_VALUE;
         /* Index of "first" in the cyclic cache */
         private int offset = 0;
         /* Helper object to be able to call SimpleDateFormat.format(). */
@@ -165,14 +165,16 @@ public class DateFormatCache {
                 for (int i = 1; i < seconds - last; i++) {
                     cache[(index + cacheSize - i) % cacheSize] = null;
                 }
-                first = seconds - cacheSize;
+                first = seconds - (cacheSize - 1);
                 last = seconds;
+                offset = (index + 1) % cacheSize;
             } else if (seconds < first) {
                 for (int i = 1; i < first - seconds; i++) {
                     cache[(index + i) % cacheSize] = null;
                 }
                 first = seconds;
-                last = seconds + cacheSize;
+                last = seconds + (cacheSize - 1);
+                offset = index;
             }
 
             /* Last step: format new timestamp either using
diff --git a/java/org/apache/naming/java/javaURLContextFactory.java b/java/org/apache/naming/java/javaURLContextFactory.java
index 5a1edc4..1daebc7 100644
--- a/java/org/apache/naming/java/javaURLContextFactory.java
+++ b/java/org/apache/naming/java/javaURLContextFactory.java
@@ -35,16 +35,16 @@ import org.apache.naming.ContextBindings;
  * prefix, which can be done by either :
  * <ul>
  * <li>Adding a 
- * java.naming.factory.url.pkgs=org.apache.catalina.util.naming property
+ * java.naming.factory.url.pkgs=org.apache.naming property
  * to the JNDI properties file</li>
- * <li>Setting an environment variable named Context.URL_PKG_PREFIXES with 
- * its value including the org.apache.catalina.util.naming package name. 
- * More detail about this can be found in the JNDI documentation : 
+ * <li>Setting an environment variable named Context.URL_PKG_PREFIXES with
+ * its value including the org.apache.naming package name.
+ * More detail about this can be found in the JNDI documentation :
  * {@link javax.naming.spi.NamingManager#getURLContext(java.lang.String, java.util.Hashtable)}.</li>
  * </ul>
  * 
  * @author Remy Maucherat
- * @version $Id: javaURLContextFactory.java 939511 2010-04-29 23:48:20Z kkolinko $
+ * @version $Id: javaURLContextFactory.java 1413564 2012-11-26 11:47:08Z markt $
  */
 
 public class javaURLContextFactory
diff --git a/java/org/apache/tomcat/jni/SSL.java b/java/org/apache/tomcat/jni/SSL.java
index 74f6fa6..e9d0258 100644
--- a/java/org/apache/tomcat/jni/SSL.java
+++ b/java/org/apache/tomcat/jni/SSL.java
@@ -20,7 +20,7 @@ package org.apache.tomcat.jni;
 /** SSL
  *
  * @author Mladen Turk
- * @version $Id: SSL.java 1224628 2011-12-25 18:52:37Z kkolinko $
+ * @version $Id: SSL.java 1461021 2013-03-26 08:48:14Z kkolinko $
  */
 
 public final class SSL {
@@ -116,6 +116,8 @@ public final class SSL {
 
     /* As server, disallow session resumption on renegotiation */
     public static final int SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION = 0x00010000;
+    /* Don't use compression even if supported */
+    public static final int SSL_OP_NO_COMPRESSION                         = 0x00020000;
     /* If set, always create a new key when using tmp_dh parameters */
     public static final int SSL_OP_SINGLE_DH_USE                    = 0x00100000;
     /* Set to always use the tmp_rsa key when doing RSA operations,
@@ -332,4 +334,18 @@ public final class SSL {
      * Return last SSL error string
      */
     public static native String getLastError();
+
+    /**
+     * Return true if all the requested SSL_OP_* are supported by OpenSSL.
+     * 
+     * <i>Note that for versions of tcnative < 1.1.25, this method will
+     * return <code>true</code> if and only if <code>op</code>=
+     * {@link #SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION} and tcnative
+     * supports that flag.</i>
+     *
+     * @param op Bitwise-OR of all SSL_OP_* to test.
+     * 
+     * @return true if all SSL_OP_* are supported by OpenSSL library.
+     */
+    public static native boolean hasOp(int op);
 }
diff --git a/java/org/apache/tomcat/util/buf/B2CConverter.java b/java/org/apache/tomcat/util/buf/B2CConverter.java
index c21a462..fe894fa 100644
--- a/java/org/apache/tomcat/util/buf/B2CConverter.java
+++ b/java/org/apache/tomcat/util/buf/B2CConverter.java
@@ -23,6 +23,7 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
@@ -75,6 +76,7 @@ public class B2CConverter {
 
     private IntermediateInputStream iis;
     private ReadConvertor conv;
+    private CharsetDecoder decoder;
     private String encoding;
 
     protected B2CConverter() {
@@ -95,6 +97,7 @@ public class B2CConverter {
      */
     public  void recycle() {
         conv.recycle();
+        decoder.reset();
     }
 
     static final int BUFFER_SIZE=8192;
@@ -149,12 +152,11 @@ public class B2CConverter {
     }
 
 
-    public void reset()
-        throws IOException
-    {
-        // destroy the reader/iis
-        iis=new IntermediateInputStream();
-        conv=new ReadConvertor( iis, getCharset(encoding) );
+    public void reset() throws IOException {
+        // Re-create the reader and iis
+        iis = new IntermediateInputStream();
+        decoder = getCharset(encoding).newDecoder();
+        conv = new ReadConvertor(iis, decoder);
     }
 
     private final int debug=0;
@@ -232,9 +234,8 @@ final class  ReadConvertor extends InputStreamReader {
     
     /** Create a converter.
      */
-    public ReadConvertor( IntermediateInputStream in, Charset charset )
-    {
-        super( in, charset );
+    public ReadConvertor(IntermediateInputStream in, CharsetDecoder decoder) {
+        super(in, decoder);
     }
     
     /** Overriden - will do nothing but reset internal state.
diff --git a/java/org/apache/tomcat/util/http/LocalStrings.properties b/java/org/apache/tomcat/util/http/LocalStrings.properties
index badd276..6c916e7 100644
--- a/java/org/apache/tomcat/util/http/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/http/LocalStrings.properties
@@ -20,7 +20,9 @@ parameters.decodeFail.info=Character decoding failed. Parameter [{0}] with value
 parameters.emptyChunk=Empty parameter chunk ignored
 parameters.invalidChunk=Invalid chunk starting at byte [{0}] and ending at byte [{1}] with a value of [{2}] ignored
 parameters.maxCountFail=More than the maximum number of request parameters (GET plus POST) for a single request ([{0}]) were detected. Any parameters beyond this limit have been ignored. To change this limit, set the maxParameterCount attribute on the Connector.
+parameters.maxCountFail.fallToDebug=\n Note: further occurrences of this error will be logged at DEBUG level.
 parameters.multipleDecodingFail=Character decoding failed. A total of [{0}] failures were detected but only the first was logged. Enable debug level logging for this logger to log all failures.
 parameters.noequal=Parameter starting at position [{0}] and ending at position [{1}] with a value of [{0}] was not followed by an '=' character
+parameters.fallToDebug=\n Note: further occurrences of Parameter errors will be logged at DEBUG level.
 
 headers.maxCountFail=More than the maximum allowed number of headers ([{0}]) were detected.
diff --git a/java/org/apache/tomcat/util/http/Parameters.java b/java/org/apache/tomcat/util/http/Parameters.java
index 501cf6c..c03abb7 100644
--- a/java/org/apache/tomcat/util/http/Parameters.java
+++ b/java/org/apache/tomcat/util/http/Parameters.java
@@ -30,6 +30,7 @@ import org.apache.tomcat.util.buf.B2CConverter;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.MessageBytes;
 import org.apache.tomcat.util.buf.UDecoder;
+import org.apache.tomcat.util.log.UserDataHelper;
 import org.apache.tomcat.util.res.StringManager;
 
 /**
@@ -41,6 +42,10 @@ public final class Parameters {
     private static final org.apache.juli.logging.Log log =
         org.apache.juli.logging.LogFactory.getLog(Parameters.class );
 
+    private static final UserDataHelper userDataLog = new UserDataHelper(log);
+
+    private static final UserDataHelper maxParamCountLog = new UserDataHelper(log);
+
     protected static final StringManager sm =
         StringManager.getManager("org.apache.tomcat.util.http");
 
@@ -239,8 +244,22 @@ public final class Parameters {
 
             if (limit > -1 && parameterCount > limit) {
                 parseFailed = true;
-                log.info(sm.getString("parameters.maxCountFail",
-                        Integer.valueOf(limit)));
+                UserDataHelper.Mode logMode = maxParamCountLog.getNextMode();
+                if (logMode != null) {
+                    String message = sm.getString("parameters.maxCountFail",
+                            Integer.valueOf(limit));
+                    switch (logMode) {
+                        case INFO_THEN_DEBUG:
+                            message += sm.getString(
+                                    "parameters.maxCountFail.fallToDebug");
+                            //$FALL-THROUGH$
+                        case INFO:
+                            log.info(message);
+                            break;
+                        case DEBUG:
+                            log.debug(message);
+                    }
+                }
                 break;
             }
             int nameStart = pos;
@@ -323,9 +342,10 @@ public final class Parameters {
                     continue;
                 }
                 // &=foo&
-                if (log.isInfoEnabled()) {
-                    if (valueEnd >= nameStart && log.isDebugEnabled()) {
-                        String extract = null;
+                UserDataHelper.Mode logMode = userDataLog.getNextMode();
+                if (logMode != null) {
+                    String extract = null;
+                    if (valueEnd > nameStart) {
                         try {
                             extract = new String(bytes, nameStart,
                                     valueEnd - nameStart,
@@ -333,15 +353,21 @@ public final class Parameters {
                         } catch (UnsupportedEncodingException uee) {
                             // Not possible. All JVMs must support ISO-8859-1
                         }
-                        log.info(sm.getString("parameters.invalidChunk",
-                                Integer.valueOf(nameStart),
-                                Integer.valueOf(valueEnd),
-                                extract));
                     } else {
-                        log.info(sm.getString("parameters.invalidChunk",
-                                Integer.valueOf(nameStart),
-                                Integer.valueOf(nameEnd),
-                                null));
+                        extract = "";
+                    }
+                    String message = sm.getString("parameters.invalidChunk",
+                            Integer.valueOf(nameStart),
+                            Integer.valueOf(valueEnd), extract);
+                    switch (logMode) {
+                        case INFO_THEN_DEBUG:
+                            message += sm.getString("parameters.fallToDebug");
+                            //$FALL-THROUGH$
+                        case INFO:
+                            log.info(message);
+                            break;
+                        case DEBUG:
+                            log.debug(message);
                     }
                 }
                 parseFailed = true;
@@ -402,8 +428,22 @@ public final class Parameters {
                         log.debug(sm.getString("parameters.decodeFail.debug",
                                 origName.toString(), origValue.toString()), e);
                     } else if (log.isInfoEnabled()) {
-                        log.info(sm.getString("parameters.decodeFail.info",
-                                tmpName.toString(), tmpValue.toString()), e);
+                        UserDataHelper.Mode logMode = userDataLog.getNextMode();
+                        if (logMode != null) {
+                            String message = sm.getString(
+                                    "parameters.decodeFail.info",
+                                    tmpName.toString(), tmpValue.toString());
+                            switch (logMode) {
+                                case INFO_THEN_DEBUG:
+                                    message += sm.getString("parameters.fallToDebug");
+                                    //$FALL-THROUGH$
+                                case INFO:
+                                    log.info(message);
+                                    break;
+                                case DEBUG:
+                                    log.debug(message);
+                            }
+                        }
                     }
                 }
             }
@@ -418,8 +458,22 @@ public final class Parameters {
         }
 
         if (decodeFailCount > 1 && !log.isDebugEnabled()) {
-            log.info(sm.getString("parameters.multipleDecodingFail",
-                    Integer.valueOf(decodeFailCount)));
+            UserDataHelper.Mode logMode = userDataLog.getNextMode();
+            if (logMode != null) {
+                String message = sm.getString(
+                        "parameters.multipleDecodingFail",
+                        Integer.valueOf(decodeFailCount));
+                switch (logMode) {
+                    case INFO_THEN_DEBUG:
+                        message += sm.getString("parameters.fallToDebug");
+                        //$FALL-THROUGH$
+                    case INFO:
+                        log.info(message);
+                        break;
+                    case DEBUG:
+                        log.debug(message);
+                }
+            }
         }
     }
 
diff --git a/java/org/apache/tomcat/util/log/UserDataHelper.java b/java/org/apache/tomcat/util/log/UserDataHelper.java
new file mode 100644
index 0000000..7539ae9
--- /dev/null
+++ b/java/org/apache/tomcat/util/log/UserDataHelper.java
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomcat.util.log;
+
+import org.apache.juli.logging.Log;
+
+/**
+ * This helper class assists with the logging associated with invalid input
+ * data. A developer may want all instances of invalid input data logged to
+ * assist with debugging whereas in production it is likely to be desirable not
+ * to log anything for invalid data. The following settings may be used:
+ * <ul>
+ * <li>NOTHING: Log nothing.</li>
+ * <li>DEBUG_ALL: Log all problems at DEBUG log level.</li>
+ * <li>INFO_THEN_DEBUG: Log first problem at INFO log level and any further
+ *     issues in the following TBD (configurable) seconds at DEBUG level</li>
+ * <li>INFO_ALL: Log all problems at INFO log level.</li>
+ * </ul>
+ * By default, INFO_THEN_DEBUG is used with a suppression time of 24 hours.
+ *
+ * NOTE: This class is not completely thread-safe. When using INFO_THEN_DEBUG it
+ * is possible that several INFO messages will be logged before dropping to
+ * DEBUG.
+ */
+public class UserDataHelper {
+
+    private final Log log;
+
+    private final Config config;
+
+    // A value of 0 is equivalent to using INFO_ALL
+    // A negative value will trigger infinite suppression
+    // The value is milliseconds
+    private final long suppressionTime;
+
+    private volatile long lastInfoTime = 0;
+
+
+    public UserDataHelper(Log log) {
+        this.log = log;
+
+        Config tempConfig;
+        String configString = System.getProperty(
+                "org.apache.juli.logging.UserDataHelper.CONFIG");
+        if (configString == null) {
+            tempConfig = Config.INFO_THEN_DEBUG;
+        } else {
+            try {
+                tempConfig = Config.valueOf(configString);
+            } catch (IllegalArgumentException iae) {
+                // Ignore - use default
+                tempConfig = Config.INFO_THEN_DEBUG;
+            }
+        }
+
+        // Default suppression time of 1 day.
+        suppressionTime = Integer.getInteger(
+                "org.apache.juli.logging.UserDataHelper.SUPPRESSION_TIME",
+                60 * 60 * 24).intValue() * 1000L;
+
+        if (suppressionTime == 0) {
+            tempConfig = Config.INFO_ALL;
+        }
+
+        config = tempConfig;
+    }
+
+
+    /**
+     * Returns log mode for the next log message, or <code>null</code> if the
+     * message should not be logged.
+     *
+     * <p>
+     * If <code>INFO_THEN_DEBUG</code> configuration option is enabled, this
+     * method might change internal state of this object.
+     *
+     * @return Log mode, or <code>null</code>
+     */
+    public Mode getNextMode() {
+        if (Config.NONE == config) {
+            return null;
+        } else if (Config.DEBUG_ALL == config) {
+            return log.isDebugEnabled() ? Mode.DEBUG : null;
+        } else if (Config.INFO_THEN_DEBUG == config) {
+            if (logAtInfo()) {
+                return log.isInfoEnabled() ? Mode.INFO_THEN_DEBUG : null;
+            } else {
+                return log.isDebugEnabled() ? Mode.DEBUG : null;
+            }
+        } else if (Config.INFO_ALL == config) {
+            return log.isInfoEnabled() ? Mode.INFO : null;
+        }
+        // Should never happen
+        return null;
+    }
+
+
+    /*
+     * Not completely thread-safe but good enough for this use case. I couldn't
+     * see a simple enough way to make it completely thread-safe that was not
+     * likely to compromise performance.
+     */
+    private boolean logAtInfo() {
+
+        if (suppressionTime < 0 && lastInfoTime > 0) {
+            return false;
+        }
+
+        long now = System.currentTimeMillis();
+
+        if (lastInfoTime + suppressionTime > now) {
+            return false;
+        }
+
+        lastInfoTime = now;
+        return true;
+    }
+
+
+    private static enum Config {
+        NONE,
+        DEBUG_ALL,
+        INFO_THEN_DEBUG,
+        INFO_ALL
+    }
+
+    /**
+     * Log mode for the next log message.
+     */
+    public static enum Mode {
+        DEBUG,
+        INFO_THEN_DEBUG,
+        INFO
+    }
+}
diff --git a/java/org/apache/tomcat/util/net/AprEndpoint.java b/java/org/apache/tomcat/util/net/AprEndpoint.java
index f3288cf..dc45620 100644
--- a/java/org/apache/tomcat/util/net/AprEndpoint.java
+++ b/java/org/apache/tomcat/util/net/AprEndpoint.java
@@ -519,6 +519,28 @@ public class AprEndpoint extends AbstractEndpoint {
 
     // --------------------------------------------------------- Public Methods
 
+    protected boolean SSLHonorCipherOrder = false;
+    /**
+     * Set to <code>true</code> to enforce the <i>server's</i> cipher order
+     * instead of the default which is to allow the client to choose a
+     * preferred cipher.
+     */
+    public void setSSLHonorCipherOrder(boolean SSLHonorCipherOrder) { this.SSLHonorCipherOrder = SSLHonorCipherOrder; }
+    public boolean getSSLHonorCipherOrder() { return SSLHonorCipherOrder; }
+
+    /**
+     * Disables compression of the SSL stream. This thwarts CRIME attack
+     * and possibly improves performance by not compressing uncompressible
+     * content such as JPEG, etc.
+     */
+    protected boolean SSLDisableCompression = false;
+
+    /**
+     * Set to <code>true</code> to disable SSL compression. This thwarts CRIME
+     * attack.
+     */
+    public void setSSLDisableCompression(boolean SSLDisableCompression) { this.SSLDisableCompression = SSLDisableCompression; }
+    public boolean getSSLDisableCompression() { return SSLDisableCompression; }
 
     /**
      * Number of keepalive sockets.
@@ -755,6 +777,41 @@ public class AprEndpoint extends AbstractEndpoint {
 
             // Create SSL Context
             sslContext = SSLContext.make(rootPool, value, SSL.SSL_MODE_SERVER);
+
+            // Set cipher order: client (default) or server
+            if (SSLHonorCipherOrder) {
+                boolean orderCiphersSupported = false;
+                try {
+                    orderCiphersSupported = SSL.hasOp(SSL.SSL_OP_CIPHER_SERVER_PREFERENCE);
+                    if (orderCiphersSupported)
+                        SSLContext.setOptions(sslContext, SSL.SSL_OP_CIPHER_SERVER_PREFERENCE);
+                } catch (UnsatisfiedLinkError e) {
+                    // Ignore
+                }
+                if (!orderCiphersSupported) {
+                    // OpenSSL does not support ciphers ordering.
+                    log.warn(sm.getString("endpoint.warn.noHonorCipherOrder",
+                                          SSL.versionString()));
+                }
+            }
+
+            // Disable compression if requested
+            if (SSLDisableCompression) {
+                boolean disableCompressionSupported = false;
+                try {
+                    disableCompressionSupported = SSL.hasOp(SSL.SSL_OP_NO_COMPRESSION);
+                    if (disableCompressionSupported)
+                        SSLContext.setOptions(sslContext, SSL.SSL_OP_NO_COMPRESSION);
+                } catch (UnsatisfiedLinkError e) {
+                    // Ignore
+                }
+                if (!disableCompressionSupported) {
+                    // OpenSSL does not support ciphers ordering.
+                    log.warn(sm.getString("endpoint.warn.noDisableCompression",
+                                          SSL.versionString()));
+                }
+            }
+
             // List the ciphers that the client is permitted to negotiate
             SSLContext.setCipherSuite(sslContext, SSLCipherSuite);
             // Load Server key and certificate
diff --git a/java/org/apache/tomcat/util/net/res/LocalStrings.properties b/java/org/apache/tomcat/util/net/res/LocalStrings.properties
index 1aabc82..40b1e29 100644
--- a/java/org/apache/tomcat/util/net/res/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/net/res/LocalStrings.properties
@@ -40,5 +40,12 @@ endpoint.process.fail=Error allocating socket processor
 endpoint.sendfile.error=Unexpected sendfile error
 endpoint.sendfile.addfail=Sednfile failure: [{0}] {1}
 endpoint.sendfile.nosupport=Disabling sendfile, since either the APR version or the system doesn't support it
+endpoint.warn.noDisableCompression='Disable compression' option is not supported by the SSL library {0}
+endpoint.warn.noInsecureReneg=Secure re-negotiation is not supported by the SSL library {0}
+endpoint.warn.noHonorCipherOrder='Honor cipher order' option is not supported by the SSL library {0}
 endpoint.warn.unlockAcceptorFailed=Acceptor thread [{0}] failed to unlock. Forcing hard socket shutdown.
+endpoint.warn.noHonorCipherOrder='Honor cipher order' option is not supported by the SSL library {0}
+endpoint.debug.channelCloseFail=Failed to close channel
+endpoint.debug.socketCloseFail=Failed to close socket
+endpoint.apr.noSslCertFile=Connector attribute SSLCertificateFile must be defined when using SSL with APR
 endpoint.apr.invalidSslProtocol=An invalid value [{0}] was provided for the SSLProtocol attribute
diff --git a/res/maven/jasper.pom b/res/maven/jasper.pom
index a5776f4..e6d26bf 100644
--- a/res/maven/jasper.pom
+++ b/res/maven/jasper.pom
@@ -63,7 +63,7 @@
     <dependency>
       <groupId>org.eclipse.jdt.core.compiler</groupId>
       <artifactId>ecj</artifactId>
-      <version>3.7.2</version>
+      <version>4.2.2</version>
     </dependency>
     <dependency>
       <groupId>org.apache.tomcat</groupId>
diff --git a/webapps/docs/appdev/deployment.xml b/webapps/docs/appdev/deployment.xml
index d8531f8..0e1fefa 100644
--- a/webapps/docs/appdev/deployment.xml
+++ b/webapps/docs/appdev/deployment.xml
@@ -124,7 +124,7 @@ API Specification, version 2.3, which you should consult for more details.</p>
 <p>Like most servlet containers, Tomcat 6 also supports mechanisms to install
 library JAR files (or unpacked classes) once, and make them visible to all
 installed web applications (without having to be included inside the web
-application itself.  The details of how Tomcat locates and shares such
+application itself).  The details of how Tomcat locates and shares such
 classes are described in the
 <a href="../class-loader-howto.html">Class Loader HOW-TO</a> documentation.
 The location commonly used within a Tomcat 6 installation for shared code is
@@ -138,9 +138,6 @@ of pre-installed shared library files, including:</p>
 <ul>
 <li>The <em>Servlet 2.5</em> and <em>JSP 2.1</em> APIs that are fundamental
     to writing servlets and JavaServer Pages.<br/><br/></li>
-<li>An <em>XML Parser</em> compliant with the JAXP (version 1.2) APIs, so
-    your application can perform DOM-based or SAX-based processing of
-    XML documents.<br/><br/></li>
 </ul>
 
 </section>
@@ -177,10 +174,11 @@ the order defined by the DTD (see Section 13.3).</p>
 <section name="Tomcat Context Descriptor">
 
 <p>A /META-INF/context.xml file can be used to define Tomcat specific
-configuration options, such as loggers, data sources, session manager
+configuration options, such as an access log, data sources, session manager
 configuration and more. This XML file must contain one Context element, which
 will be considered as if it was the child of the Host element corresponding
-to the Host to which the  The Tomcat configuration documentation contains
+to the Host to which the web application is being deployed. The
+<a href="../config/index.html">Tomcat configuration documentation</a> contains
 information on the Context element.</p>
 
 </section>
diff --git a/webapps/docs/appdev/introduction.xml b/webapps/docs/appdev/introduction.xml
index b71e7a2..0396f76 100644
--- a/webapps/docs/appdev/introduction.xml
+++ b/webapps/docs/appdev/introduction.xml
@@ -49,7 +49,7 @@ are included in the following subsections.</p>
 a text editor along with command line tools to develop and debug their
 applications.  As such, the recommendations are fairly generic -- but you
 should easily be able to apply them in either a Windows-based or Unix-based
-development environment.  If you are utilizing an Interactive Development
+development environment.  If you are utilizing an Integrated Development
 Environment (IDE) tool, you will need to adapt the advice given here to
 the details of your particular environment.</p>
 
@@ -62,18 +62,18 @@ the details of your particular environment.</p>
 information, documentation, and software that is useful in developing
 web applications with Tomcat.</p>
 <ul>
-<li><a href="http://java.sun.com/products/jsp/download.html">http://java.sun.com/products/jsp/download.html</a> -
-    <i>JavaServer Pages (JSP) Specification, Version 2.0</i>.  Describes
+<li><a href="http://jcp.org/aboutJava/communityprocess/final/jsr245/index.html">http://jcp.org/aboutJava/communityprocess/final/jsr245/</a> -
+    <i>JavaServer Pages (JSP) Specification, Version 2.1</i>.  Describes
     the programming environment provided by standard implementations
     of the JavaServer Pages (JSP) technology.  In conjunction with
     the Servlet API Specification (see below), this document describes
     what a portable API page is allowed to contain.  Specific
-    information on scripting (Chapter 6), tag extensions (Chapter 7),
+    information on scripting (Chapter 9), tag extensions (Chapter 7),
     and packaging JSP pages (Appendix A) is useful.  The Javadoc
     API Documentation is included in the specification, and with the
     Tomcat download.<br/><br/></li>
-<li><a href="http://java.sun.com/products/servlet/download.html">http://java.sun.com/products/servlet/download.html</a> -
-    <i>Servlet API Specification, Version 2.4</i>.  Describes the
+<li><a href="http://jcp.org/aboutJava/communityprocess/mrel/jsr154/index2.html">http://jcp.org/aboutJava/communityprocess/mrel/jsr154/index2.html</a> -
+    <i>Servlet API Specification, Version 2.5</i>.  Describes the
     programming environment that must be provided by all servlet
     containers conforming to this specification.  In particular, you
     will need this document to understand the web application
@@ -83,14 +83,6 @@ web applications with Tomcat.</p>
     Web Application Deployment Descriptor (Chapter 13).  The Javadoc
     API Documentation is included in the specification, and with the
     Tomcat download.<br/><br/></li>
-<li><a href="http://java.sun.com/j2ee/blueprints/">http://java.sun.com/j2ee/blueprints/</a> -
-    <i>Sun BluePrints (tm) Design Guidelines for J2EE</i>.  Comprehensive
-    advice and examples on application design for the Java2 Enterprise
-    Edition (J2EE) platform, which includes servlets and JSP pages.  The
-    chapters on servlet and JSP design are useful even when your application
-    does not require other J2EE platform components.
-    <br/><br/></li>
-<li><b>TODO</b> -- Add more entries here!</li>
 </ul>
 
 </section>
diff --git a/webapps/docs/apr.xml b/webapps/docs/apr.xml
index 9477519..affd59d 100644
--- a/webapps/docs/apr.xml
+++ b/webapps/docs/apr.xml
@@ -271,6 +271,16 @@
       and private key have to be in this file (NOT RECOMMENDED).
     </p>
     </attribute>
+    <attribute name="SSLDisableCompression" required="false">
+      <p>Disables compression if set to <code>true</code> and OpenSSL supports
+      disabling compression. Default is <code>false</code> which inherits the
+      default compression setting in OpenSSL.</p>
+    </attribute>
+    <attribute name="SSLHonorCipherOrder" required="false">
+      <p>Set to <code>true</code> to enforce the server's cipher order
+      (from the <code>SSLCipherSuite</code> setting) instead of allowing
+      the client to choose the cipher (which is the default).</p>
+    </attribute>
     <attribute name="SSLPassword" required="false">
     <p>
       Pass phrase for the encrypted private key. If "SSLPassword" is not provided, the callback function
diff --git a/webapps/docs/architecture/overview.xml b/webapps/docs/architecture/overview.xml
index 13d03ae..edf7658 100644
--- a/webapps/docs/architecture/overview.xml
+++ b/webapps/docs/architecture/overview.xml
@@ -63,7 +63,7 @@ implementation is simple and sufficient:
 An
 <a href="../config/engine.html">Engine</a> represents request processing
 pipeline for a specific Service.  As a Service may have multiple Connectors,
-the Engine received and processes all requests from these connectors, handing
+the Engine receives and processes all requests from these connectors, handing
 the response back to the appropriate connector for transmission to the client.
 The <a href="../api/org/apache/catalina/Engine.html">Engine interface</a>
 may be implemented to supply custom Engines, though this is uncommon.
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 8cbeeb1..922fa73 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -43,7 +43,149 @@
 <!-- Section names:
  General, Catalina, Coyote, Jasper, Cluster, Web applications, Other
 -->
-<section name="Tomcat 6.0.36 (jfclere)" rtext="">
+<section name="Tomcat 6.0.37 (jfclere)">
+  <subsection name="Catalina">
+    <changelog>
+      <fix>
+        <bug>52055</bug>: Ensure that filters are recycled. (markt/kkolinko)
+      </fix>
+      <fix>
+        <bug>52184</bug>: Reduce log level for invalid cookies. (markt)
+      </fix>
+      <fix>
+        <bug>53481</bug>: Added support for SSLHonorCipherOrder to allow
+        the server to impose its cipher order on the client. Based on a patch
+        provided by Marcel &#x160;ebek. (schultz)
+      </fix>
+      <fix>
+        <bug>54044</bug>: Correct bug in timestamp cache used by logging
+        (including the access log valve) that meant entries could be made with
+        an earlier timestamp than the true timestamp. (markt) 
+      </fix>
+      <fix>
+        In FormAuthenticator: If it is configured to change Session IDs,
+        do the change before displaying the login form. (kkolinko)
+      </fix>
+      <fix>
+        <bug>54054</bug>: Do not share shell environment variables between
+        multiple instances of the CGI servlet. (markt)
+      </fix>
+      <fix>
+        <bug>54087</bug>: Correctly handle (ignore) invalid If-Modified-Since
+        header rather than throwing an exception. (markt/kkolinko)
+      </fix>
+      <fix>
+        <bug>54220</bug>: Ensure the ErrorReportValve only generates an error
+        report if the error flag on the response has been set. (markt)
+      </fix>
+      <fix>
+        Fix memory leak of servlet instances when running with a
+        SecurityManager and either init() or destroy() methods fail
+        or the servlet is a SingleThreadModel one, and of filter instances
+        if their destroy() method fails with an Error. (kkolinko)
+      </fix>
+      <fix>
+        <bug>54382</bug>: Fix NPE when SSI processing is enabled and an empty
+        SSI directive is present. (markt)
+      </fix>
+      <fix>
+        <bug>54483</bug>: Correct one of the Spanish translations. Based on a
+        suggestion from adinamita. (kkolinko)
+      </fix>
+      <update>
+        <bug>54527</bug>: Synchronize conf/web.xml mime mapping with Tomcat 7.
+        (markt)
+      </update>
+    </changelog>
+  </subsection>
+  <subsection name="Coyote">
+    <changelog>
+      <fix>
+        <bug>54248</bug>: Ensure that byte order marks are swallowed when using
+        a Reader to read a request body with a BOM for those encodings that
+        require byte order marks. (markt)
+      </fix>
+      <fix>
+        <bug>54324</bug>: Allow APR connector to disable TLS compression
+        if OpenSSL supports it. (schultz)
+      </fix>
+      <fix>
+        <bug>54456</bug>: Ensure that if a client aborts a request when sending
+        a chunked request body that this is communicated correctly to the client
+        reading the request body. (markt)
+      </fix>
+      <update>
+        Update the native component of the APR/native connector to 1.1.27 and
+        make that version the recommended minimum version. (kkolinko)
+      </update>
+    </changelog>
+  </subsection>
+  <subsection name="Jasper">
+    <changelog>
+      <fix>
+        <bug>54615</bug>:  Tomcat 6 doesn't build against ecj 4.x (kkolinko)
+      </fix>
+    </changelog>
+  </subsection>
+  <subsection name="Cluster">
+    <changelog>
+      <fix>
+        <bug>54045</bug>: Make sure getMembers() returns available member when
+        TcpFailureDetector works in static cluster. (kfujino)
+      </fix>
+    </changelog>
+  </subsection>
+  <subsection name="Web applications">
+    <changelog>
+      <update>
+        <bug>22278</bug>: Add a commented out sample configuration of
+        <code>RemoteAddrValve</code> to <code>META-INF/context.xml</code>
+        files of the Manager and Host Manager applications. (kkolinko)
+      </update>
+      <fix>
+        <bug>54080</bug>: Clarify documentation for initial value of
+        <code>internalProxies</code> attribute of <code>RemoteIpValve</code>.
+        (schultz/kkolinko)
+      </fix>
+      <fix>
+        <bug>54198</bug>: Clarify that
+        <code>HttpServletResponse.sendError(int)</code> results in an HTML
+        response by default. (markt)
+      </fix>
+      <fix>
+        <bug>54207</bug>: Correct JNDI factory package name in Javadoc for
+        <code>org.apache.naming.java.javaURLContextFactory</code>. (markt)
+      </fix>
+    </changelog>
+  </subsection>
+  <subsection name="Other">
+    <changelog>
+      <update>
+       Add sample Apache Commons Daemon JSVC wrapper script bin/daemon.sh that
+       can be used with /etc/init.d. (kkolinko)
+      </update>
+      <update>
+        In the build configuration: introduce property "tomcat.output" that is
+        used to specify location of the build output directory. This simplifies
+        configuration if someone wants to move the <code>output</code> directory
+        elsewhere (e.g. out of the source tree). (kkolinko)
+      </update>
+      <fix>
+        <bug>54390</bug>: Use 'java_home' on Mac OS X to auto-detect JAVA_HOME.
+        (schultz)
+      </fix>
+      <update>
+        <bug>54601</bug>: Change catalina.sh to consistently use LOGGING_MANAGER
+          variable to configure logging, instead of modifying JAVA_OPTS one.
+          (kkolinko) 
+      </update>
+      <update>
+        <bug>54890</bug>: Update to Apache Commons Daemon 1.0.15. (mturk)
+      </update>
+    </changelog>
+  </subsection>
+</section>
+<section name="Tomcat 6.0.36 (jfclere)" rtext="released 2012-10-19">
   <subsection name="Catalina">
     <changelog>
       <update>
@@ -203,7 +345,9 @@
         handling of stale nonce values. (markt)
       </fix>
       <fix>
-        Remove unneeded handling of FORM authentication in RealmBase. (kkolinko)
+        CVE-2012-3546: Fix bypass of security constraint checks with FORM
+        authentication. Remove unneeded processing in <code>RealmBase</code>.
+        (kkolinko)
       </fix>
       <fix>
         <bug>53800</bug>: <code>FileDirContext.list()</code> did not provide
@@ -215,7 +359,9 @@
         default value on Windows. (kkolinko)
       </fix>
       <fix>
-        Improve session management in CsrfPreventionFilter. (kkolinko)
+        CVE-2012-4431: Fix bypass of <code>CsrfPreventionFilter</code> when
+        there is no session. Improve session management in the filter.
+        (kkolinko)
       </fix>
     </changelog>
   </subsection>
@@ -240,8 +386,9 @@
         AJP. (markt)
       </fix>
       <fix>
-        <bug>52858</bug>: Fix high CPU load with SSL, NIO and sendfile when
-        client breaks the connection before reading all the requested data.
+        <bug>52858</bug>, CVE-2012-4534: Fix high CPU load with SSL, NIO and
+        sendfile when client breaks the connection before reading all the
+        requested data.
         (fhanik/kkolinko)
       </fix>
       <fix>
diff --git a/webapps/docs/config/context.xml b/webapps/docs/config/context.xml
index b1bfde6..6e66da7 100644
--- a/webapps/docs/config/context.xml
+++ b/webapps/docs/config/context.xml
@@ -64,46 +64,113 @@
   directory hierarchy).</p>
 
   <p>You may define as many <strong>Context</strong> elements as you
-  wish.  Each such Context MUST have a unique context path. In
+  wish.  Each such Context MUST have a unique context path within a virtual
+  host. In
   addition, a Context must be present with a context path equal to
   a zero-length string.  This Context becomes the <em>default</em>
   web application for this virtual host, and is used to process all
   requests that do not match any other Context's context path.</p>
 
-  <p><b>For Tomcat 6, unlike Tomcat 4.x, it is NOT recommended to place
+  <subsection name="Naming">
+  <p>When <code>autoDeploy</code> or <code>deployOnStartup</code> operations
+  are performed by a Host, the web application is specified by a context XML
+  file in <a href="host.html">Host</a>'s <code>xmlBase</code>
+  directory or by a WAR file or a directory file in Host's
+  <code>appBase</code> directory.
+  In this case the context path is derived from the name of the file that
+  is being deployed. Consequently, the context path <strong>may not</strong>
+  be defined in a <code>META-INF/context.xml</code> embedded in
+  the application. There is, therefore, a close relationship between the
+  <em>context path</em> and
+  the <em>base file name</em> (the name minus <code>.war</code> or
+  <code>.xml</code> extension) of the file.</p>
+
+  <p>Let us assume that you want to deploy your application to respond to
+  requests to URIs starting with certain context path. According to the
+  Servlet specification, the context path may be an empty string, or a
+  string starting with '/'. The rules to define the names for this context
+  path are the following:</p>
+
+  <ul>
+    <li>If the context path is a zero length string, the <em>base name</em> is
+    <code>"ROOT"</code> (uppercase)</li>
+    <li>If the context path is not a zero length string, the <em>base
+    name</em> is the context path with the leading '/' removed and any
+    remaining '/' characters in the path replaced with '#'.</li>
+  </ul>
+
+  <p>To help clarify these rules, some examples are given in the following
+  table.</p>
+
+  <table class="detail-table">
+    <tr>
+      <th>Context Path</th>
+      <th>Base File Name</th>
+    </tr>
+    <tr><td>/foo</td><td>foo</td></tr>
+    <tr>
+      <td>/foo/bar</td><td>foo#bar</td>
+    </tr>
+    <tr>
+      <td><i>Empty String</i></td>
+      <td>ROOT</td>
+    </tr>
+  </table>
+
+  <p>If you want to deploy a WAR file or a directory using a context path that
+  is not related to the base file name then one of the following options must
+  be used to prevent double-deployment:
+  </p>
+  <ul>
+  <li>Disable autoDeploy and deployOnStartup and define all
+  <strong>Context</strong>s in server.xml</li>
+  <li>Locate the WAR and/or directory outside of the Host's appBase and use
+      a context.xml file with a docBase attribute to define it.</li>
+  </ul>
+  </subsection>
+
+  <subsection name="Defining a context">
+  <p><b>It is NOT recommended to place
   <Context> elements directly in the server.xml file.</b> This
   is because it makes modifying the <strong>Context</strong> configuration
   more invasive since the main <code>conf/server.xml</code> file cannot be
   reloaded without restarting Tomcat.</p>
 
-  <p><strong>Context</strong> elements may be explicitly defined:
+  <p>Individual <strong>Context</strong> elements may be explicitly defined:
+  </p>
   <ul>
-  <li>In the <code>$CATALINA_BASE/conf/context.xml</code> file: 
-  the Context element information will be loaded by all webapps.</li>
-  <li>In the 
-  <code>$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default</code>
-  file: the Context element information will be loaded by all webapps of that
-  host.</li>
+  <li>In an individual file at <code>/META-INF/context.xml</code> inside the
+  application files. In Tomcat 6 this file is automatically copied to
+  <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code> and renamed to
+  application's base file name plus a ".xml" extension.
+  (This automated copying became optional in Tomcat 7).
+  </li>
   <li>In individual files (with a ".xml" extension) in the
   <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code> directory.
-  The name of the file (less the .xml extension) will be used as the
-  context path. Multi-level context paths may be defined using #, e.g.
-  <code>foo#bar.xml</code> for a context path of <code>/foo/bar</code>. The
-  default web application may be defined by using a file called
-  <code>ROOT.xml</code>.</li>
-  <li>Only if a context file does not exist for the application in the 
-  <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code>, in an individual
-  file at <code>/META-INF/context.xml</code> inside the application files. If
-  the web application is packaged as a WAR then
-  <code>/META-INF/context.xml</code> will be copied to
-  <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code> and renamed to
-  match the application's context path. Once this file exists, it will not be
-  replaced if a new WAR with a newer <code>/META-INF/context.xml</code> is
-  placed in the host's appBase.</li>
+  The context path will be derived from the base name of the file
+  (the file name less the .xml extension). This file will always take precedence
+  over any context.xml file packaged in the web application's META-INF
+  directory.</li>
   <li>Inside a <a href="host.html">Host</a> element in the main
   <code>conf/server.xml</code>.</li>
   </ul>
+
+  <p>Default <strong>Context</strong> elements may be defined that apply to
+  multiple web applications. Configuration for an individual web application
+  will override anything configured in one of these defaults. Any nested
+  elements, e.g. <Resource> elements, that are defined in a default
+  <strong>Context</strong> will be created once for each
+  <strong>Context</strong> to which the default applies. They will <b>not</b> be
+  shared between <strong>Context</strong> elements.
   </p>
+  <ul>
+  <li>In the <code>$CATALINA_BASE/conf/context.xml</code> file:
+  the Context element information will be loaded by all web applications.</li>
+  <li>In the
+  <code>$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default</code>
+  file: the Context element information will be loaded by all web applications
+  of that host.</li>
+  </ul>
 
   <p>With the exception of server.xml, files that define <strong>Context
   </strong> elements may only define a single <strong>Context</strong> element.
@@ -111,11 +178,17 @@
 
   <p>In addition to explicitly specified Context elements, there are
   several techniques by which Context elements can be created automatically
-  for you.  See <a href="host.html#Automatic Application Deployment">
+  for you.  See <a href="host.html#Automatic_Application_Deployment">
   Automatic Application Deployment</a> and
-  <a href="host.html#User Web Applications">User Web Applications</a>
+  <a href="host.html#User_Web_Applications">User Web Applications</a>
   for more information.</p>
 
+  <p>To define multiple contexts that use a single WAR file or directory,
+  use one of the options described in the <a href="#Naming">Naming</a>
+  section above for creating a <strong>Context</strong> that has a path
+  that is not related to the base file name.</p>
+  </subsection>
+
 </section>
 
 
@@ -186,9 +259,9 @@
         an absolute pathname for this directory or WAR file, or a pathname
         that is relative to the <code>appBase</code> directory of the
         owning <a href="host.html">Host</a>.</p>
-        <p>The value of this field must not be set when the Context is
-        configured using a <code>META-INF/context.xml</code> file as it will be
-        inferred by the automatic deployment process.</p>
+        <p>The value of this field must not be set unless the Context element is
+        defined in server.xml or the <code>docBase</code> is not located under
+        the <a href="host.html">Host</a>'s <code>appBase</code>.</p>
         <p>If a symbolic link is used for docBase then changes to the
         symbolic link will only be effective after a Tomcat restart or
         by undeploying and redeploying the context. A context reload is not
diff --git a/webapps/docs/config/executor.xml b/webapps/docs/config/executor.xml
index f68cb23..232736a 100644
--- a/webapps/docs/config/executor.xml
+++ b/webapps/docs/config/executor.xml
@@ -83,7 +83,8 @@
   <attributes>
 
     <attribute name="threadPriority" required="false">
-      <p>(int) The thread priority for threads in the executor, the default is <code>Thread.NORM_PRIORITY</code></p>
+      <p>(int) The thread priority for threads in the executor, the default is
+      <code>5</code> (the value of the <code>Thread.NORM_PRIORITY</code> constant)</p>
     </attribute>
     <attribute name="daemon" required="false">
       <p>(boolean) Whether the threads should be daemon threads or not, the default is <code>true</code></p>
diff --git a/webapps/docs/config/http.xml b/webapps/docs/config/http.xml
index 9847a04..2931520 100644
--- a/webapps/docs/config/http.xml
+++ b/webapps/docs/config/http.xml
@@ -431,9 +431,10 @@
 
     <attribute name="threadPriority" required="false">
       <p>The priority of the request processing threads within the JVM.
-      The default value is <code>java.lang.Thread#NORM_PRIORITY</code>.
-      See the JavaDoc for the java.lang.Thread class for more details on
-      what this priority means.
+      The default value is <code>5</code> (the value of the
+      <code>java.lang.Thread.NORM_PRIORITY</code> constant). See the JavaDoc
+      for the <code>java.lang.Thread</code> class for more details on what
+      this priority means.
       </p>
     </attribute>
 
@@ -482,16 +483,18 @@
       </attribute>
       <attribute name="pollerThreadPriority" required="false">
         <p>(int)The priority of the poller threads.
-          The default value is <code>java.lang.Thread#NORM_PRIORITY</code>.
-          See the JavaDoc for the java.lang.Thread class for more details on
-          what this priority means.
+        The default value is <code>5</code> (the value of the
+        <code>java.lang.Thread.NORM_PRIORITY</code> constant). See the JavaDoc
+        for the <code>java.lang.Thread</code> class for more details on what
+        this priority means.
         </p>
       </attribute>
       <attribute name="acceptorThreadPriority" required="false">
         <p>(int)The priority of the acceptor threads. The threads used to accept new connections.
-          The default value is <code>java.lang.Thread#NORM_PRIORITY</code>.
-          See the JavaDoc for the java.lang.Thread class for more details on
-          what this priority means.
+        The default value is <code>5</code> (the value of the
+        <code>java.lang.Thread.NORM_PRIORITY</code> constant). See the JavaDoc
+        for the <code>java.lang.Thread</code> class for more details on what
+        this priority means.
         </p>
       </attribute>
       
diff --git a/webapps/docs/config/systemprops.xml b/webapps/docs/config/systemprops.xml
index 492c511..88b3a43 100644
--- a/webapps/docs/config/systemprops.xml
+++ b/webapps/docs/config/systemprops.xml
@@ -377,6 +377,45 @@
 </section>
 
 
+<section name="Logging">
+
+  <properties>
+
+    <property name="org.apache.juli.logging. UserDataHelper.CONFIG">
+      <p>The type of logging to use for errors generated by invalid input data.
+         The options are: <code>DEBUG_ALL</code>, <code>INFO_THEN_DEBUG</code>,
+         <code>INFO_ALL</code> and <code>NONE</code>. When
+         <code>INFO_THEN_DEBUG</code> is used, the period for which errors are
+         logged at DEBUG rather than INFO is controlled by the system property
+         <code>org.apache.juli.logging.UserDataHelper.SUPPRESSION_TIME</code>.
+         </p>
+      <p>The default value is <code>INFO_THEN_DEBUG</code>.</p>
+      <p>The errors currently logged using this system are:
+         <ul>
+         <li>invalid parameters.</li>
+         </ul>
+         Other errors triggered by invalid input data may be added to this
+         system in later versions.</p>
+    </property>
+
+    <property name="org.apache.juli.logging. UserDataHelper.SUPPRESSION_TIME">
+      <p>When using <code>INFO_THEN_DEBUG</code> for
+         <code>org.apache.juli.logging.UserDataHelper.CONFIG</code> this system
+         property controls how long messages are logged at DEBUG after a message
+         has been logged at INFO. Once this period has elapsed, the next message
+         will be logged at INFO followed by a new suppression period where
+         messages are logged at DEBUG and so on. The value is measured
+         in seconds.</p>
+      <p>A value of <code>0</code> is equivalent to using <code>INFO_ALL</code>
+         for <code>org.apache.juli.logging.UserDataHelper.CONFIG</code>.</p>
+      <p>A negative value means an infinite suppression period.</p>
+      <p>The default value is <code>86400</code> (24 hours).</p>
+    </property>
+  </properties>
+
+</section>
+
+
 <section name="Other">
 
   <properties>
diff --git a/webapps/docs/config/valve.xml b/webapps/docs/config/valve.xml
index de42c77..f9072d3 100644
--- a/webapps/docs/config/valve.xml
+++ b/webapps/docs/config/valve.xml
@@ -141,18 +141,18 @@
 
       <attribute name="rotatable" required="false">
         <p>Flag to determine if log rotation should occur.
-           If set to <tt>false</tt>, then this file is never rotated and
-           <tt>fileDateFormat</tt> is ignored. Use with caution!
-           Default value: <tt>true</tt>
+           If set to <code>false</code>, then this file is never rotated and
+           <code>fileDateFormat</code> is ignored. Use with caution!
+           Default value: <code>true</code>
         </p>
       </attribute>
 
       <attribute name="condition" required="false">
         <p>Turns on conditional logging. If set, requests will be
-           logged only if <tt>ServletRequest.getAttribute()</tt> is
+           logged only if <code>ServletRequest.getAttribute()</code> is
            null. For example, if this value is set to
-           <tt>junk</tt>, then a particular request will only be logged
-           if <tt>ServletRequest.getAttribute("junk") == null</tt>.
+           <code>junk</code>, then a particular request will only be logged
+           if <code>ServletRequest.getAttribute("junk") == null</code>.
            The use of Filters is an easy way to set/unset the attribute
            in the ServletRequest on many different requests.
         </p>
@@ -162,14 +162,14 @@
         <p>Allows a customized date format in the access log file name.
            The date format also decides how often the file is rotated.
            If you wish to rotate every hour, then set this value
-           to: <tt>yyyy-MM-dd.HH</tt>
+           to: <code>yyyy-MM-dd.HH</code>
         </p>
       </attribute>
 
       <attribute name="buffered" required="false">
         <p>Flag to determine if logging will be buffered.
-           If set to <tt>false</tt>, then access logging will be written after each 
-           request. Default value: <tt>true</tt>
+           If set to <code>false</code>, then access logging will be written after each 
+           request. Default value: <code>true</code>
         </p>
       </attribute>
 
@@ -415,7 +415,7 @@
 
   <subsection name="Introduction">
 
-    <p>The <em>Single Sign On Vale</em> is utilized when you wish to give users
+    <p>The <em>Single Sign On Valve</em> is utilized when you wish to give users
     the ability to sign on to any one of the web applications associated with
     your virtual host, and then have their identity recognized by all other
     web applications on the same virtual host.</p>
@@ -860,9 +860,17 @@
         expressions. If they appear in the <strong>remoteIpHeader</strong>
         value, they will be trusted and will not appear in the
         <strong>proxiesHeader</strong> value. If not specified the default value
-        of <code>10\.\d{1,3}\.\d{1,3}\.\d{1,3}, 192\.168\.\d{1,3}\.\d{1,3},
-        169\.254\.\d{1,3}\.\d{1,3}, 127\.\d{1,3}\.\d{1,3}\.\d{1,3}</code> will
+        of <code>10\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?,
+        192\.168\.\d\d?\d?\.\d\d?\d?,
+        169\.254\.\d\d?\d?\.\d\d?\d?,
+        127\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?</code> will
         be used.</p>
+        <p>
+          Note that the individual regular expressions <i>must not</i>
+          contain commas themselves, as the <code>internalProxies</code>
+          value is first split by commas, then parsed into separate regular
+          expression patterns.
+        </p>
       </attribute>
 
       <attribute name="proxiesHeader" required="false">
diff --git a/webapps/docs/deployer-howto.xml b/webapps/docs/deployer-howto.xml
index 7b86304..2068a3a 100644
--- a/webapps/docs/deployer-howto.xml
+++ b/webapps/docs/deployer-howto.xml
@@ -45,17 +45,29 @@
         <ul>
                 <li>Statically; the web application is setup before Tomcat is started</li>
                 <li>
-                    Dynamically; in conjunction with the Tomcat Manager web application or 
-                    manipulating already deployed web applications
+                    Dynamically; by directly manipulating already deployed web
+                    applications (relying on <em>auto-deployment</em>
+                    feature) or remotely by using the Tomcat Manager web
+                    application
                 </li>
         </ul>
         <p>
-            The Tomcat Manager is a tool that allows URL-based web application
-            deployment features. There is also a tool called the Client Deployer,
-            which is a command shell based script that interacts with the Tomcat
-            Manager but provides additional functionality such as compiling and
-            validating web applications as well as packaging web application into
-            web application resource (WAR) files.
+            The <a href="manager-howto.html">Tomcat Manager</a> is a web
+            application that can be used interactively (via HTML GUI) or
+            programmatically (via URL-based API) to deploy and manage web
+            applications.
+        </p>
+        <p>
+            There are a number of ways to perform deployment that rely on
+            the Manager web application. Apache Tomcat provides tasks
+            for Apache Ant build tool.
+            <a href="http://tomcat.apache.org/">Apache Tomcat Maven Plugin</a>
+            project provides integration with Apache Maven.
+            There is also a tool called the Client Deployer, which can be
+            used from a command line and provides additional functionality
+            such as compiling and validating web applications as well as
+            packaging web application into web application resource (WAR)
+            files.
         </p>
     </section>
     
@@ -65,7 +77,8 @@
             applications as this is provided out of the box by Tomcat. Nor is any
             installation required for deployment functions with the Tomcat Manager, 
             although some configuration is required as detailed in the 
-            Tomcat Manager manual. An installation is however required if you wish
+            <a href="manager-howto.html">Tomcat Manager manual</a>.
+            An installation is however required if you wish
             to use the Tomcat Client Deployer (TCD). 
         </p>   
         <p>
@@ -117,7 +130,7 @@
             The locations for Context Descriptors are:
         </p>
         <ol>
-                <li>$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml</li>
+                <li>$CATALINA_BASE/conf/[enginename]/[hostname]/[webappname].xml</li>
                 <li>$CATALINA_BASE/webapps/[webappname]/META-INF/context.xml</li>
         </ol>
         <p>
diff --git a/webapps/docs/manager-howto.xml b/webapps/docs/manager-howto.xml
index 63d91ed..ecb2034 100644
--- a/webapps/docs/manager-howto.xml
+++ b/webapps/docs/manager-howto.xml
@@ -72,8 +72,11 @@ Manager web application <code>Context</code> to a new host install the
 <code>$CATALINA_BASE/conf/[enginename]/[hostname]</code> folder. Here is an
 example:</p>
 <pre>
-<Context path="/manager" privileged="true"
-         docBase="/usr/local/tomcat6/webapps/manager">
+<Context
+    docBase="/usr/local/tomcat6/webapps/manager"
+    antiResourceLocking="false" privileged="true" useHttpOnly="true">
+  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
+       allow="127\.0\.0\.1" />
 </Context>
 </pre>
 
@@ -174,9 +177,9 @@ could be restricted by the remote IP address or host by adding a
 <code>RemoteAddrValve</code> or <code>RemoteHostValve</code>.  Here is
 an example of restricting access to the localhost by IP address:</p>
 <pre>
-<Context privileged="true">
-         <Valve className="org.apache.catalina.valves.RemoteAddrValve"
-                allow="127\.0\.0\.1"/>
+<Context antiResourceLocking="false" privileged="true" useHttpOnly="true">
+  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
+         allow="127\.0\.0\.1"/>
 </Context>
 </pre>
 </section>
@@ -419,7 +422,8 @@ http://localhost:8080/manager/deploy?config=file:/path/context.xml
 configuration ".xml" file and a web application ".war" file located
 on the server.</p>
 <source>
-http://localhost:8080/manager/deploy?config=file:/path/context.xml&war=jar:file:/path/bar.war!/
+http://localhost:8080/manager/deploy
+ ?config=file:/path/context.xml&war=jar:file:/path/bar.war!/
 </source>
 
 
@@ -1165,69 +1169,69 @@ can be used:
 
 <table border="1">
 <tr><td><pre>
-	<target name="manager.deploy"
-		depends="context.status"
-		if="context.notInstalled">
-		<deploy url="${mgr.url}"
-			username="${mgr.username}"
-			password="${mgr.password}"
-			path="${mgr.context.path}"
-			config="${mgr.context.descriptor}"/>
-	</target>
-
-	<target name="manager.deploy.war"
-		depends="context.status"
-		if="context.deployable">
-		<deploy url="${mgr.url}"
-			username="${mgr.username}"
-			password="${mgr.password}"
-			update="${mgr.update}"
-			path="${mgr.context.path}"
-			war="${mgr.war.file}"/>
-	</target>
-	
-	<target name="context.status">
-		<property name="running" value="${mgr.context.path}:running"/>
-		<property name="stopped" value="${mgr.context.path}:stopped"/>
-	
-		<list url="${mgr.url}"
-			outputproperty="ctx.status"
-			username="${mgr.username}"
-			password="${mgr.password}">
-		</list>
-		
-		<condition property="context.running">
-			<contains string="${ctx.status}" substring="${running}"/>
-		</condition>
-		<condition property="context.stopped">
-			<contains string="${ctx.status}" substring="${stopped}"/>
-		</condition>
-		<condition property="context.notInstalled">
-			<and>
-				<isfalse value="${context.running}"/>
-				<isfalse value="${context.stopped}"/>
-			</and>
-		</condition>
-		<condition property="context.deployable">
-			<or>
-				<istrue value="${context.notInstalled}"/>
-				<and>
-					<istrue value="${context.running}"/>
-					<istrue value="${mgr.update}"/>
-				</and>
-				<and>
-					<istrue value="${context.stopped}"/>
-					<istrue value="${mgr.update}"/>
-				</and>
-			</or>
-		</condition>
-		<condition property="context.undeployable">
-			<or>
-				<istrue value="${context.running}"/>
-				<istrue value="${context.stopped}"/>
-			</or>
-		</condition>
-	</target>
+  <target name="manager.deploy"
+    depends="context.status"
+    if="context.notInstalled">
+    <deploy url="${mgr.url}"
+      username="${mgr.username}"
+      password="${mgr.password}"
+      path="${mgr.context.path}"
+      config="${mgr.context.descriptor}"/>
+  </target>
+
+  <target name="manager.deploy.war"
+    depends="context.status"
+    if="context.deployable">
+    <deploy url="${mgr.url}"
+      username="${mgr.username}"
+      password="${mgr.password}"
+      update="${mgr.update}"
+      path="${mgr.context.path}"
+      war="${mgr.war.file}"/>
+  </target>
+  
+  <target name="context.status">
+    <property name="running" value="${mgr.context.path}:running"/>
+    <property name="stopped" value="${mgr.context.path}:stopped"/>
+  
+    <list url="${mgr.url}"
+      outputproperty="ctx.status"
+      username="${mgr.username}"
+      password="${mgr.password}">
+    </list>
+    
+    <condition property="context.running">
+      <contains string="${ctx.status}" substring="${running}"/>
+    </condition>
+    <condition property="context.stopped">
+      <contains string="${ctx.status}" substring="${stopped}"/>
+    </condition>
+    <condition property="context.notInstalled">
+      <and>
+        <isfalse value="${context.running}"/>
+        <isfalse value="${context.stopped}"/>
+      </and>
+    </condition>
+    <condition property="context.deployable">
+      <or>
+        <istrue value="${context.notInstalled}"/>
+        <and>
+          <istrue value="${context.running}"/>
+          <istrue value="${mgr.update}"/>
+        </and>
+        <and>
+          <istrue value="${context.stopped}"/>
+          <istrue value="${mgr.update}"/>
+        </and>
+      </or>
+    </condition>
+    <condition property="context.undeployable">
+      <or>
+        <istrue value="${context.running}"/>
+        <istrue value="${context.stopped}"/>
+      </or>
+    </condition>
+  </target>
 </pre></td></tr>
 </table>
 
@@ -1311,7 +1315,8 @@ http://webserver/manager/jmxproxy/?set=BEANNAME&att=MYATTRIBUTE&val=NEWV
     <code>ErrorReportValve</code>. The following will set debugging to 10.
 <source>
 http://localhost:8080/manager/jmxproxy/
-?set=Catalina%3Atype%3DValve%2Cname%3DErrorReportValve%2Chost%3Dlocalhost&att=debug&val=10
+ ?set=Catalina%3Atype%3DValve%2Cname%3DErrorReportValve%2Chost%3Dlocalhost
+ &att=debug&val=10
 </source>
     and my result is (YMMV):
 <source>
@@ -1319,14 +1324,15 @@ Result: ok
 </source>
 
     Here is what I see if I pass in a bad value. Here is the URL I used,
-    I try set debugging equal to 'cowbell':
+    I try set debugging equal to 'cow':
 <source>
 http://localhost:8080/manager/jmxproxy/
-?set=Catalina%3Atype%3DValve%2Cname%3DErrorReportValve%2Chost%3Dlocalhost&att=debug&val=cowbell
+ ?set=Catalina%3Atype%3DValve%2Cname%3DErrorReportValve%2Chost%3Dlocalhost
+ &att=debug&val=cow
 </source>
     When I try that, my result is
 <source>
-Error: java.lang.NumberFormatException: For input string: "cowbell"
+Error: java.lang.NumberFormatException: For input string: "cow"
 </source>
   </subsection>
 
diff --git a/webapps/docs/monitoring.xml b/webapps/docs/monitoring.xml
index 5e2ffe5..5e2d9ae 100644
--- a/webapps/docs/monitoring.xml
+++ b/webapps/docs/monitoring.xml
@@ -23,8 +23,6 @@
   &project;
 
   <properties>
-    <author email="pero at apache.org">Peter Rossbach</author>
-    <author email="remm at apache.org">Remy Maucherat</author>
     <title>Monitoring and Managing Tomcat</title>
   </properties>
 
@@ -44,45 +42,62 @@
 
   <section name="Enabling JMX Remote">
 
-    <p>The Sun website includes the list of options and how to configure JMX Remote on Java 5:
+    <p><strong>Note:</strong> This configuration is needed if you are
+    going to monitor Tomcat remotely. If you are going
+    to monitor it locally, using the same user that Tomcat runs with, then
+    with Java 6 it is not needed at all, and with Java 5 it is as simple as
+    adding <code>-Dcom.sun.management.jmxremote</code>, see Java documentation.</p>
+
+    <p>The Oracle website includes the list of options and how to configure JMX Remote on Java 5:
         <a href="http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html">
-        http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html</a>.
+        http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html</a>
+        and on Java 6:
+        <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html">
+        http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html</a>.
     </p>
     <p>The following is a quick configuration guide for Java 5:</p>
-    <p>Add the following parameters to your Tomcat startup script:
-    <source>
-    set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
-    -Dcom.sun.management.jmxremote.port=%my.jmx.port% \
-    -Dcom.sun.management.jmxremote.ssl=false \
-    -Dcom.sun.management.jmxremote.authenticate=false
-    </source>
+    <p>Add the following parameters to <code>setenv.bat</code> script of your
+    Tomcat (see <a href="RUNNING.txt">RUNNING.txt</a> for details).<br/>
+    <em>Note:</em> This syntax is for Microsoft Windows. The command has
+    to be on the same line. It is wrapped to be more readable. If Tomcat is
+    running as a Windows service, use its configuration dialog to set
+    java options for the service.
+    For un*xes remove <code>"set "</code> from beginning of the line.
     </p>
-    <p>
+<source>
+set CATALINA_OPTS=-Dcom.sun.management.jmxremote
+  -Dcom.sun.management.jmxremote.port=%my.jmx.port%
+  -Dcom.sun.management.jmxremote.ssl=false
+  -Dcom.sun.management.jmxremote.authenticate=false
+</source>
+
     <ol>
     <li>If you require authorization, add and change this :
-    <source>
-    -Dcom.sun.management.jmxremote.authenticate=true \
-    -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password \
-    -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access \
-    </source>
+<source>
+  -Dcom.sun.management.jmxremote.authenticate=true
+  -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
+  -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access
+</source>
     </li>
     <li>edit the access authorization file <em>$CATALINA_BASE/conf/jmxremote.access</em> :
-    <source>
+<source>
 monitorRole readonly
 controlRole readwrite
-    </source>
+</source>
     </li>
     <li>edit the password file <em>$CATALINA_BASE/conf/jmxremote.password</em> :
-    <source>
+<source>
 monitorRole tomcat
 controlRole tomcat
-    </source>
+</source>
     <b>Tip</b>: The password file should be read-only and only accessible by the
     operating system user Tomcat is running as.
     </li>
     </ol>
-    <b>Note:</b>The JSR 160 JMX-Adaptor opens a second data channel on a random
-    port. That is a problem when you have a local firewall installed.<br/>
+    <p><strong>Note:</strong> The JSR 160 JMX-Adaptor opens a second data channel
+    on a random port. That is a problem when you have a local firewall installed.
+    To fix it, configure a <code>JmxRemoteLifecycleListener</code>, as described
+    in <a href="config/listeners.html">listeners</a> documentation.
     </p>
 
   </section>
@@ -91,103 +106,109 @@ controlRole tomcat
    <p>To simplify JMX usage with Ant 1.6.x, a set of tasks is provided that may
    be used with antlib.</p>   
    <p><b>antlib</b>: Copy your catalina-ant.jar from $CATALINA_HOME/lib to $ANT_HOME/lib.</p>
-   <p>The following example shows the JMX Accessor usage:</p>
+   <p>The following example shows the JMX Accessor usage:<br/>
+   <em>Note:</em> The <code>name</code> attribute value was wrapped here to be
+   more readable. It has to be all on the same line, without spaces.</p>
    <table border="1">
-   <tr><td><p><pre>
-<project name="Catalina Ant JMX" 
-        xmlns:jmx="antlib:org.apache.catalina.ant.jmx" 
-        default="state"
-        basedir=".">
-    <property name="jmx.server.name" value="localhost" />
-    <property name="jmx.server.port" value="9012" />
-    <property name="cluster.server.address" value="192.168.1.75" />
-    <property name="cluster.server.port" value="9025" />
- 
-    <target name="state" description="Show JMX Cluster state">
-        <jmx:open
-            host="${jmx.server.name}"
-            port="${jmx.server.port}"
-            username="controlRole"
-            password="tomcat"/>
-        <jmx:get
-            name="Catalina:type=IDataSender,host=localhost,senderAddress=${cluster.server.address},senderPort=${cluster.server.port}" 
-            attribute="connected"
-            resultproperty="IDataSender.backup.connected"
-            echo="false"
-        />
-       <jmx:get
-            name="Catalina:type=ClusterSender,host=localhost" 
-            attribute="senderObjectNames"
-            resultproperty="senderObjectNames"
-            echo="false"
-        />
-        <!-- get current maxActiveSession from ClusterTest application
-             echo it to Ant output and store at 
-             property <em>clustertest.maxActiveSessions.orginal</em>
-        -->
-       <jmx:get
-            name="Catalina:type=Manager,path=/ClusterTest,host=localhost" 
-            attribute="maxActiveSessions"
-            resultproperty="clustertest.maxActiveSessions.orginal"
-            echo="true"
-        />
-        <!-- set maxActiveSession to 100
-        -->
-        <jmx:set
-            name="Catalina:type=Manager,path=/ClusterTest,host=localhost" 
-            attribute="maxActiveSessions"
-            value="100"
-            type="int"
-        />
-        <!-- get all sessions and split result as delimiter <em>SPACE</em> for easy
-             access all session ids directly with Ant property sessions.[0..n].
-        -->
-        <jmx:invoke
-            name="Catalina:type=Manager,path=/ClusterTest,host=localhost" 
-            operation="listSessionIds"
-            resultproperty="sessions"
-            echo="false"
-            delimiter=" "
-        />
-        <!-- Access session attribute <em>Hello</em> from first session.
-        -->
-        <jmx:invoke
-            name="Catalina:type=Manager,path=/ClusterTest,host=localhost" 
-            operation="getSessionAttribute"
-            resultproperty="Hello"
-            echo="false"
-        >
-          <arg value="${sessions.0}"/>
-          <arg value="Hello"/>
-        </jmx:invoke> 
-        <!-- Query for all application manager.of the server from all hosts
-             and bind all attributes from all found manager MBeans.
-        -->
-        <jmx:query
-            name="Catalina:type=Manager,*" 
-            resultproperty="manager"
-            echo="true"
-            attributebinding="true"
-        />
-        <!-- echo the create properties -->
-        <echo>
-           senderObjectNames: ${senderObjectNames.0}
-           IDataSender.backup.connected: ${IDataSender.backup.connected}
-           session: ${sessions.0}
-           manager.length: ${manager.length}
-           manager.0.name: ${manager.0.name}
-           manager.1.name: ${manager.1.name}
-           hello: ${Hello}
-           manager.ClusterTest.0.name: ${manager.ClusterTest.0.name}
-           manager.ClusterTest.0.activeSessions: ${manager.ClusterTest.0.activeSessions}
-           manager.ClusterTest.0.counterSend_EVT_SESSION_EXPIRED: ${manager.ClusterTest.0.counterSend_EVT_SESSION_EXPIRED}
-           manager.ClusterTest.0.counterSend_EVT_GET_ALL_SESSIONS: ${manager.ClusterTest.0.counterSend_EVT_GET_ALL_SESSIONS}
-        </echo>   
-
-    </target>
- 
+   <tr><td><pre>
+<project name="Catalina Ant JMX"
+      xmlns:jmx="antlib:org.apache.catalina.ant.jmx"
+      default="state"
+      basedir=".">
+  <property name="jmx.server.name" value="localhost" />
+  <property name="jmx.server.port" value="9012" />
+  <property name="cluster.server.address" value="192.168.1.75" />
+  <property name="cluster.server.port" value="9025" />
+
+  <target name="state" description="Show JMX Cluster state">
+    <jmx:open
+      host="${jmx.server.name}"
+      port="${jmx.server.port}"
+      username="controlRole"
+      password="tomcat"/>
+    <jmx:get
+      name=
+"Catalina:type=IDataSender,host=localhost,
+senderAddress=${cluster.server.address},senderPort=${cluster.server.port}"
+      attribute="connected"
+      resultproperty="IDataSender.backup.connected"
+      echo="false"
+    />
+    <jmx:get
+      name="Catalina:type=ClusterSender,host=localhost"
+      attribute="senderObjectNames"
+      resultproperty="senderObjectNames"
+      echo="false"
+    />
+    <!-- get current maxActiveSession from ClusterTest application
+       echo it to Ant output and store at
+       property <em>clustertest.maxActiveSessions.orginal</em>
+    -->
+    <jmx:get
+      name="Catalina:type=Manager,path=/ClusterTest,host=localhost"
+      attribute="maxActiveSessions"
+      resultproperty="clustertest.maxActiveSessions.orginal"
+      echo="true"
+    />
+    <!-- set maxActiveSession to 100
+    -->
+    <jmx:set
+      name="Catalina:type=Manager,path=/ClusterTest,host=localhost"
+      attribute="maxActiveSessions"
+      value="100"
+      type="int"
+    />
+    <!-- get all sessions and split result as delimiter <em>SPACE</em> for easy
+       access all session ids directly with Ant property sessions.[0..n].
+    -->
+    <jmx:invoke
+      name="Catalina:type=Manager,path=/ClusterTest,host=localhost"
+      operation="listSessionIds"
+      resultproperty="sessions"
+      echo="false"
+      delimiter=" "
+    />
+    <!-- Access session attribute <em>Hello</em> from first session.
+    -->
+    <jmx:invoke
+      name="Catalina:type=Manager,path=/ClusterTest,host=localhost"
+      operation="getSessionAttribute"
+      resultproperty="Hello"
+      echo="false"
+    >
+      <arg value="${sessions.0}"/>
+      <arg value="Hello"/>
+    </jmx:invoke>
+    <!-- Query for all application manager.of the server from all hosts
+       and bind all attributes from all found manager MBeans.
+    -->
+    <jmx:query
+      name="Catalina:type=Manager,*"
+      resultproperty="manager"
+      echo="true"
+      attributebinding="true"
+    />
+    <!-- echo the create properties -->
+<echo>
+senderObjectNames: ${senderObjectNames.0}
+IDataSender.backup.connected: ${IDataSender.backup.connected}
+session: ${sessions.0}
+manager.length: ${manager.length}
+manager.0.name: ${manager.0.name}
+manager.1.name: ${manager.1.name}
+hello: ${Hello}
+manager.ClusterTest.0.name: ${manager.ClusterTest.0.name}
+manager.ClusterTest.0.activeSessions: ${manager.ClusterTest.0.activeSessions}
+manager.ClusterTest.0.counterSend_EVT_SESSION_EXPIRED:
+ ${manager.ClusterTest.0.counterSend_EVT_SESSION_EXPIRED}
+manager.ClusterTest.0.counterSend_EVT_GET_ALL_SESSIONS:
+ ${manager.ClusterTest.0.counterSend_EVT_GET_ALL_SESSIONS}
+</echo>
+
+  </target>
+
 </project>
-   </pre></p>
+</pre>
    </td></tr>
 </table>
    <p><b>import:</b> Import the JMX Accessor Project with 
@@ -280,22 +301,22 @@ List of Attributes<br/>
 <p>
 Example to open a new JMX connection<br/>
 <source>
-    <jmx:open
-            host="${jmx.server.name}"
-            port="${jmx.server.port}"
-    />
+  <jmx:open
+    host="${jmx.server.name}"
+    port="${jmx.server.port}"
+  />
 </source>
 </p>  
 <p>
 Example to open a JMX connection from URL, with authorization and 
 store at other reference <br/>
 <source>
-    <jmx:open
-            url="service:jmx:rmi:///jndi/rmi://localhost:9024/jmxrmi"
-            ref="jmx.server.9024"
-            username="controlRole"
-            password="tomcat"    
-    />
+  <jmx:open
+    url="service:jmx:rmi:///jndi/rmi://localhost:9024/jmxrmi"
+    ref="jmx.server.9024"
+    username="controlRole"
+    password="tomcat"
+  />
 </source>
 </p>  
 
@@ -304,14 +325,14 @@ Example to open a JMX connection from URL, with authorization and
 store at other reference, but only when property <em>jmx.if</em> exists and 
 <em>jmx.unless</em> not exists<br/>
 <source>
-    <jmx:open
-            url="service:jmx:rmi:///jndi/rmi://localhost:9024/jmxrmi"
-            ref="jmx.server.9024"
-            username="controlRole"
-            password="tomcat"    
-            if="jmx.if"    
-            unless="jmx.unless"    
-    />
+  <jmx:open
+    url="service:jmx:rmi:///jndi/rmi://localhost:9024/jmxrmi"
+    ref="jmx.server.9024"
+    username="controlRole"
+    password="tomcat"
+    if="jmx.if"
+    unless="jmx.unless"
+  />
 </source>
 </p> 
 <p><b>Note</b>: All properties from <em>jmxOpen</em> task also exists at all 
@@ -390,44 +411,49 @@ List of Attributes<br/>
 <p>
 Example to get remote MBean attribute from default JMX connection <br/>
 <source>
-    <jmx:get
-        name="Catalina:type=Manager,path=/servlets-examples,host=localhost" 
-        attribute="maxActiveSessions"
-        resultproperty="servlets-examples.maxActiveSessions"
-    />
+  <jmx:get
+    name="Catalina:type=Manager,path=/servlets-examples,host=localhost"
+    attribute="maxActiveSessions"
+    resultproperty="servlets-examples.maxActiveSessions"
+  />
 </source>
 </p>  
 <p>
 Example to get and result array and split it at separate properties<br/>
 <source>
-    <jmx:get
-        name="Catalina:type=ClusterSender,host=localhost" 
-        attribute="senderObjectNames"
-        resultproperty="senderObjectNames"
-    />
+  <jmx:get
+    name="Catalina:type=ClusterSender,host=localhost"
+    attribute="senderObjectNames"
+    resultproperty="senderObjectNames"
+  />
 </source>
 Access the senderObjectNames properties with:
 <source>
-    ${senderObjectNames.length} give the number of returned sender list.
-    ${senderObjectNames.[0..N]} found all sender object names
+  ${senderObjectNames.length} give the number of returned sender list.
+  ${senderObjectNames.[0..N]} found all sender object names
 </source>
 </p>  
 
 <p>
-Example to get IDataSender attribute connected only when cluster is configured.
+Example to get IDataSender attribute connected only when cluster is configured.<br/>
+<em>Note:</em> The <code>name</code> attribute value was wrapped here to be
+more readable. It has to be all on the same line, without spaces.
+</p>
 <source>
-<jmx:query
+  <jmx:query
     failonerror="false"
     name="Catalina:type=Cluster,host=${tomcat.application.host}"
     resultproperty="cluster"
-/>
-<jmx:get
-    name="Catalina:type=IDataSender,host=${tomcat.application.host},senderAddress=${cluster.backup.address},senderPort=${cluster.backup.port}" 
+  />
+  <jmx:get
+    name=
+"Catalina:type=IDataSender,host=${tomcat.application.host},
+senderAddress=${cluster.backup.address},senderPort=${cluster.backup.port}"
     attribute="connected"
     resultproperty="datasender.connected"
     if="cluster.0.name" />
 </source>
-</p>  
+
 
 </section>
 
@@ -492,12 +518,12 @@ List of Attributes<br/>
 <p>
 Example to set remote MBean attribute value<br/>
 <source>
-    <jmx:set
-        name="Catalina:type=Manager,path=/servlets-examples,host=localhost" 
-        attribute="maxActiveSessions"
-        value="500"
-        type="int"
-    />
+  <jmx:set
+    name="Catalina:type=Manager,path=/servlets-examples,host=localhost"
+    attribute="maxActiveSessions"
+    value="500"
+    type="int"
+  />
 </source>
 </p>  
 
@@ -574,9 +600,9 @@ List of Attributes<br/>
 <p>
 stop an application <br/>
 <source>
-    <jmx:invoke
-        name="Catalina:type=Manager,path=/servlets-examples,host=localhost" 
-        operation="stop"/>
+  <jmx:invoke
+    name="Catalina:type=Manager,path=/servlets-examples,host=localhost"
+    operation="stop"/>
 </source>
 Now you can find the sessionid at <em>${sessions.[0..N}</em> properties and access the count
 with ${sessions.length} property.
@@ -584,12 +610,12 @@ with ${sessions.length} property.
 <p>
 Example to get all sessionids <br/>
 <source>
-    <jmx:invoke
-        name="Catalina:type=Manager,path=/servlets-examples,host=localhost" 
-        operation="listSessionIds"
-        resultproperty="sessions"
-        delimiter=" "        
-    />
+  <jmx:invoke
+    name="Catalina:type=Manager,path=/servlets-examples,host=localhost"
+    operation="listSessionIds"
+    resultproperty="sessions"
+    delimiter=" "
+  />
 </source>
 Now you can find the sessionid at <em>${sessions.[0..N}</em> properties and access the count
 with ${sessions.length} property.
@@ -597,20 +623,20 @@ with ${sessions.length} property.
 <p>
 Example to get remote MBean session attribute from session ${sessionid.0}<br/>
 <source>
-    <jmx:invoke
-        name="Catalina:type=Manager,path=/ClusterTest,host=localhost" 
-        operation="getSessionAttribute"
-        resultproperty="hello">
-         <arg value="${sessionid.0}"/>
-         <arg value="Hello" />
- </jmx:invoke>
+  <jmx:invoke
+    name="Catalina:type=Manager,path=/ClusterTest,host=localhost"
+    operation="getSessionAttribute"
+    resultproperty="hello">
+     <arg value="${sessionid.0}"/>
+     <arg value="Hello" />
+  </jmx:invoke>
 </source>
 </p>
 <p>
 Example to create a new access logger valve at vhost <em>localhost</em>
 <source>
  <jmx:invoke
-         name="Catalina:type=MBeanFactory" 
+         name="Catalina:type=MBeanFactory"
          operation="createAccessLoggerValve"
          resultproperty="accessLoggerObjectName"
  >
@@ -694,8 +720,8 @@ List of Attributes<br/>
 Get all Manager ObjectNames from all services and Hosts <br/>
 <source>
   <jmx:query
-           name="Catalina:type=Manager,* 
-           resultproperty="manager" />
+    name="Catalina:type=Manager,*
+    resultproperty="manager" />
 </source>
 Now you can find the Session Manager at <em>${manager.[0..N].name}</em> 
 properties and access the result object counter with ${manager.length} property.
@@ -704,9 +730,9 @@ properties and access the result object counter with ${manager.length} property.
 Example to get the Manager from <em>servlet-examples</em> application an bind all MBean properties<br/>
 <source>
   <jmx:query
-           name="Catalina:type=Manager,path=/servlet-examples,host=localhost*" 
-           attributebinding="true"
-           resultproperty="manager.servletExamples" />
+    name="Catalina:type=Manager,path=/servlet-examples,host=localhost*"
+    attributebinding="true"
+    resultproperty="manager.servletExamples" />
 </source>
 Now you can find the manager at <em>${manager.servletExamples.0.name}</em> property
 and can access all properties from this manager with <em>${manager.servletExamples.0.[manager attribute names]</em>}.
@@ -716,7 +742,7 @@ The result object counter from MBeans is stored ad ${manager.length} property.
 <p>
 Example to get all MBeans from a server and store inside an external XML property file<br/>
 <source>
-<project name="jmx.query"         
+<project name="jmx.query"
             xmlns:jmx="antlib:org.apache.catalina.ant.jmx"
             default="query-all" basedir=".">
 <property name="jmx.host" value="localhost"/>
@@ -725,27 +751,27 @@ Example to get all MBeans from a server and store inside an external XML propert
 <property name="jmx.password" value="tomcat"/>
 
 <target name="query-all" description="Query all MBeans of a server">
-<!-- Configure connection -->
-<jmx:open 
+  <!-- Configure connection -->
+  <jmx:open
     host="${jmx.host}"
     port="${jmx.port}"
     ref="jmx.server"
     username="${jmx.username}"
     password="${jmx.password}"/>
-<!-- Query MBean list -->
-<jmx:query 
+  <!-- Query MBean list -->
+  <jmx:query
     name="*:*"
     resultproperty="mbeans"
     attributebinding="false"/>
-    
-<echoproperties
+
+  <echoproperties
     destfile="mbeans.properties"
     prefix="mbeans."
     format="xml"/>
-    
-<!-- Print results -->
-<echo
-    message="Number of MBeans in server ${jmx.host}:${jmx.port} is ${mbeans.length}"/>
+
+  <!-- Print results -->
+  <echo message=
+    "Number of MBeans in server ${jmx.host}:${jmx.port} is ${mbeans.length}"/>
 </target>
 </project>
 </source>
@@ -810,13 +836,13 @@ List of Attributes<br/>
 <p>
 Example to create remote MBean<br/>
 <source>
-    <jmx:create
-             ref="${jmx.reference}"
-             name="Catalina:type=MBeanFactory"
-             className="org.apache.commons.modeler.BaseModelMBean"
-             classLoader="Catalina:type=ServerClassLoader,name=server">             
-             <Arg value="org.apache.catalina.mbeans.MBeanFactory" />
-    </jmx:create> 
+  <jmx:create
+    ref="${jmx.reference}"
+    name="Catalina:type=MBeanFactory"
+    className="org.apache.commons.modeler.BaseModelMBean"
+    classLoader="Catalina:type=ServerClassLoader,name=server">
+    <arg value="org.apache.catalina.mbeans.MBeanFactory" />
+  </jmx:create>
 </source>
 </p>  
 <p>
@@ -868,9 +894,9 @@ List of Attributes<br/>
 <p>
 Example to unregister remote MBean<br/>
 <source>
-    <jmx:unregister
-        name="Catalina:type=MBeanFactory" 
-    />
+  <jmx:unregister
+    name="Catalina:type=MBeanFactory"
+  />
 </source>
 </p>  
 <p>
@@ -1000,26 +1026,27 @@ List of Attributes<br/>
 <p>
 Wait for server connection and that cluster backup node is accessable<br/>
 <source>
-      <target name="wait">
-         <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
-            <and>
-                <socket server="${server.name}" port="${server.port}"/>
-                <http url="${url}"/>
-                <jmx:condition
-                    operation="==" 
-                    host="localhost" 
-                    port="9014"
-                    username="controlRole"
-                    password="tomcat"
-                    name="Catalina:type=IDataSender,host=localhost,senderAddress=192.168.111.1,senderPort=9025"
-                    attribute="connected"
-                    value="true"
-                />
-            </and>
-        </waitfor>
-        <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
-        <echo message="Server ${url} alive" />
-    </target>
+<target name="wait">
+   <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
+     <and>
+       <socket server="${server.name}" port="${server.port}"/>
+       <http url="${url}"/>
+       <jmx:condition
+         operation="=="
+         host="localhost"
+         port="9014"
+         username="controlRole"
+         password="tomcat"
+         name=
+"Catalina:type=IDataSender,host=localhost,senderAddress=192.168.111.1,senderPort=9025"
+         attribute="connected"
+         value="true"
+       />
+    </and>
+  </waitfor>
+  <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
+  <echo message="Server ${url} alive" />
+</target>
 </source>
 </p>  
 
@@ -1102,25 +1129,26 @@ List of Attributes<br/>
 <p>
 Wait for server connection and that cluster backup node is accessible<br/>
 <source>
-      <target name="wait">
-         <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
-            <and>
-                <socket server="${server.name}" port="${server.port}"/>
-                <http url="${url}"/>
-                <jmx:equals 
-                    host="localhost" 
-                    port="9014"
-                    username="controlRole"
-                    password="tomcat"
-                    name="Catalina:type=IDataSender,host=localhost,senderAddress=192.168.111.1,senderPort=9025"
-                    attribute="connected"
-                    value="true"
-                />
-            </and>
-        </waitfor>
-        <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
-        <echo message="Server ${url} alive" />
-    </target>
+<target name="wait">
+  <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
+    <and>
+      <socket server="${server.name}" port="${server.port}"/>
+      <http url="${url}"/>
+      <jmx:equals
+        host="localhost"
+        port="9014"
+        username="controlRole"
+        password="tomcat"
+        name=
+"Catalina:type=IDataSender,host=localhost,senderAddress=192.168.111.1,senderPort=9025"
+        attribute="connected"
+        value="true"
+      />
+    </and>
+  </waitfor>
+  <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
+  <echo message="Server ${url} alive" />
+</target>
 </source>
 </p>  
 
diff --git a/webapps/docs/realm-howto.xml b/webapps/docs/realm-howto.xml
index c8605a9..634d1f2 100644
--- a/webapps/docs/realm-howto.xml
+++ b/webapps/docs/realm-howto.xml
@@ -1187,7 +1187,7 @@ UserDatabase Realm and a DataSource Realm.</p>
     synchronisation in this Realm.</p>
     
     <p>This Realm does not require modification to the underlying Realms or the
-    associated user storage mecahisms. It achieves this by recording all failed
+    associated user storage mechanisms. It achieves this by recording all failed
     logins, including those for users that do not exist. To prevent a DOS by
     deliberating making requests with invalid users (and hence causing this
     cache to grow) the size of the list of users that have failed authentication
diff --git a/webapps/docs/setup.xml b/webapps/docs/setup.xml
index 145ca5e..39aeefd 100644
--- a/webapps/docs/setup.xml
+++ b/webapps/docs/setup.xml
@@ -35,12 +35,10 @@
 
   <section name="Introduction">
     <p>
-      This document introduces several ways to set up Tomcat for running
-      on different platforms.  Please note that some advanced setup issues
-      are not covered here: the full distribution (ZIP file or tarball) 
-      includes a file called
-      RUNNING.txt which discusses these issues.  We encourage you to refer
-      to it if the information below does not answer some of your questions.
+      There are several ways to set up Tomcat for running on different
+      platforms. The main documentation for this is a file called
+      <a href="RUNNING.txt">RUNNING.txt</a>. We encourage you to refer to that
+      file if the information below does not answer some of your questions.
     </p>
   </section>
 
@@ -121,9 +119,16 @@
     <p>Tomcat can then be run as a daemon using the following commands.</p>
 
 <source>
+    CATALINA_BASE=$CATALINA_HOME
     cd $CATALINA_HOME
-    ./bin/jsvc -cp ./bin/bootstrap.jar \
-        -outfile ./logs/catalina.out -errfile ./logs/catalina.err \
+    ./bin/jsvc \
+        -classpath $CATALINA_HOME/bin/bootstrap.jar \
+        -outfile $CATALINA_BASE/logs/catalina.out \
+        -errfile $CATALINA_BASE/logs/catalina.err \
+        -Dcatalina.home=$CATALINA_HOME \
+        -Dcatalina.base=$CATALINA_BASE \
+        -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
+        -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
         org.apache.catalina.startup.Bootstrap
 </source>
 
@@ -135,11 +140,9 @@
        information. In particular, the <code>-debug</code> option is useful
        to debug issues running jsvc.</p>
 
-    <p>The file <code>
-       $CATALINA_HOME/bin/commons-daemon-1.0.x-native-src/unix/native/Tomcat5.sh
-       </code> can be used as a template for starting Tomcat automatically at
-       boot time from <code>/etc/init.d</code>. The file is currently setup for
-       running Tomcat 5.5.x, so it will be necessary to edit it a little.</p>
+    <p>The file <code>$CATALINA_HOME/bin/daemon.sh</code> can be used as a
+       template for starting Tomcat automatically at boot time from
+       <code>/etc/init.d</code> with jsvc.</p>
 
     <p>Note that the Commons-Daemon JAR file must be on your runtime classpath 
        to run Tomcat in this manner.  The Commons-Daemon JAR file is in the
diff --git a/webapps/docs/tomcat-docs.xsl b/webapps/docs/tomcat-docs.xsl
index 2b391b0..612f44d 100644
--- a/webapps/docs/tomcat-docs.xsl
+++ b/webapps/docs/tomcat-docs.xsl
@@ -17,7 +17,7 @@
 -->
 <!-- Content Stylesheet for "tomcat-docs" Documentation -->
 
-<!-- $Id: tomcat-docs.xsl 1183404 2011-10-14 16:07:51Z kkolinko $ -->
+<!-- $Id: tomcat-docs.xsl 1457371 2013-03-17 04:15:23Z kkolinko $ -->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">
@@ -520,6 +520,28 @@
       <a href="{$link}">r<xsl:apply-templates/></a>
   </xsl:template>
 
+  <!-- specially process td tags ala site.vsl -->
+  <xsl:template match="table[@class='detail-table']/tr/td">
+    <td bgcolor="{$table-td-bg}" valign="top" align="left">
+        <xsl:if test="@colspan"><xsl:attribute name="colspan"><xsl:value-of select="@colspan"/></xsl:attribute></xsl:if>
+        <xsl:if test="@rowspan"><xsl:attribute name="rowspan"><xsl:value-of select="@rowspan"/></xsl:attribute></xsl:if>
+        <font color="#000000" size="-1" face="arial,helvetica,sanserif">
+            <xsl:apply-templates/>
+        </font>
+    </td>
+  </xsl:template>
+
+  <!-- handle th ala site.vsl -->
+  <xsl:template match="table[@class='detail-table']/tr/th">
+    <td bgcolor="{$table-th-bg}" valign="top">
+        <xsl:if test="@colspan"><xsl:attribute name="colspan"><xsl:value-of select="@colspan"/></xsl:attribute></xsl:if>
+        <xsl:if test="@rowspan"><xsl:attribute name="rowspan"><xsl:value-of select="@rowspan"/></xsl:attribute></xsl:if>
+        <font color="#000000" size="-1" face="arial,helvetica,sanserif">
+            <xsl:apply-templates />
+        </font>
+    </td>
+  </xsl:template>
+
   <!-- Process everything else by just passing it through -->
   <xsl:template match="*|@*">
     <xsl:copy>
diff --git a/webapps/docs/tribes/tomcat-docs.xsl b/webapps/docs/tribes/tomcat-docs.xsl
index ffbf6f6..6cec913 100644
--- a/webapps/docs/tribes/tomcat-docs.xsl
+++ b/webapps/docs/tribes/tomcat-docs.xsl
@@ -17,7 +17,7 @@
 -->
 <!-- Content Stylesheet for "tomcat-docs" Documentation -->
 
-<!-- $Id: tomcat-docs.xsl 1226778 2012-01-03 13:37:20Z rjung $ -->
+<!-- $Id: tomcat-docs.xsl 1428973 2013-01-04 16:53:02Z kkolinko $ -->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">
@@ -182,7 +182,7 @@
       <xsl:comment>PAGE FOOTER</xsl:comment>
       <tr><td colspan="2">
         <div align="center"><font color="{$body-link}" size="-1"><em>
-        Copyright © 1999-2012, Apache Software Foundation
+        Copyright © 1999-2013, Apache Software Foundation
         </em></font></div>
       </td></tr>
 
diff --git a/webapps/docs/windows-service-howto.xml b/webapps/docs/windows-service-howto.xml
index 1cf499b..be5745a 100644
--- a/webapps/docs/windows-service-howto.xml
+++ b/webapps/docs/windows-service-howto.xml
@@ -53,7 +53,7 @@
     </tr>
     <tr><th>//MS//</th>
         <td>Monitor service</td>
-        <td>Put the icon in the system try</td>
+        <td>Put the icon in the system tray</td>
     </tr>
     </table>
 </p>
diff --git a/webapps/host-manager/META-INF/context.xml b/webapps/host-manager/META-INF/context.xml
index 4608ca7..38352b0 100644
--- a/webapps/host-manager/META-INF/context.xml
+++ b/webapps/host-manager/META-INF/context.xml
@@ -15,4 +15,13 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<Context antiResourceLocking="false" privileged="true" useHttpOnly="true" />
+<Context antiResourceLocking="false" privileged="true" useHttpOnly="true" >
+  <!--
+    Remove the comment markers from around the Valve below to limit access to
+    the host-manager application to clients connecting from localhost
+  -->
+  <!--
+  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
+         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
+  -->
+</Context>
diff --git a/webapps/manager/META-INF/context.xml b/webapps/manager/META-INF/context.xml
index 4608ca7..c581c8d 100644
--- a/webapps/manager/META-INF/context.xml
+++ b/webapps/manager/META-INF/context.xml
@@ -15,4 +15,13 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<Context antiResourceLocking="false" privileged="true" useHttpOnly="true" />
+<Context antiResourceLocking="false" privileged="true" useHttpOnly="true" >
+  <!--
+    Remove the comment markers from around the Valve below to limit access to
+    the manager application to clients connecting from localhost
+  -->
+  <!--
+  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
+         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
+  -->
+</Context>
diff --git a/webapps/manager/WEB-INF/jsp/sessionDetail.jsp b/webapps/manager/WEB-INF/jsp/sessionDetail.jsp
index 57ef63e..2536c38 100644
--- a/webapps/manager/WEB-INF/jsp/sessionDetail.jsp
+++ b/webapps/manager/WEB-INF/jsp/sessionDetail.jsp
@@ -42,7 +42,7 @@
     <meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->
     <meta http-equiv="content-language" content="en"/>
     <meta name="author" content="Cedrik LIME"/>
-    <meta name="copyright" content="copyright 2005-2012 the Apache Software Foundation"/>
+    <meta name="copyright" content="copyright 2005-2013 the Apache Software Foundation"/>
     <meta name="robots" content="noindex,nofollow,noarchive"/>
     <title>Sessions Administration: details for <%= currentSessionId %></title>
 </head>
diff --git a/webapps/manager/WEB-INF/jsp/sessionsList.jsp b/webapps/manager/WEB-INF/jsp/sessionsList.jsp
index 60d6c24..495fd21 100644
--- a/webapps/manager/WEB-INF/jsp/sessionsList.jsp
+++ b/webapps/manager/WEB-INF/jsp/sessionsList.jsp
@@ -38,7 +38,7 @@
 	<meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->
 	<meta http-equiv="content-language" content="en"/>
 	<meta name="author" content="Cedrik LIME"/>
-	<meta name="copyright" content="copyright 2005-2012 the Apache Software Foundation"/>
+	<meta name="copyright" content="copyright 2005-2013 the Apache Software Foundation"/>
 	<meta name="robots" content="noindex,nofollow,noarchive"/>
 	<title>Sessions Administration for <%= JspHelper.escapeXml(path) %></title>
 </head>

-- 
Alioth's hooks/post-receive on /srv/git.debian.org/git/pkg-java/tomcat6.git



More information about the pkg-java-commits mailing list