diff --git a/docs/2.2.8/adminguide/appearance-configuration.html b/docs/2.2.8/adminguide/appearance-configuration.html
new file mode 100644
index 0000000..653876e
--- /dev/null
+++ b/docs/2.2.8/adminguide/appearance-configuration.html
@@ -0,0 +1,471 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Appearance configuration</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Appearance configuration</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Appearance Configuration</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Configuring_your_banner"></a>Configuring your banner</h2>
+<p>You can customize your banner appearance:</p>
+<ul>
+<li>banner logo / text</li>
+<li>url when clicking on the logo</li></ul>
+<p>Form to use to configure your appearance.</p><img src="../images/appearance-configuration.png" alt="" /></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/archiva-logs.html b/docs/2.2.8/adminguide/archiva-logs.html
new file mode 100644
index 0000000..5503a6e
--- /dev/null
+++ b/docs/2.2.8/adminguide/archiva-logs.html
@@ -0,0 +1,425 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20090722" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Archiva Logs</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Archiva Logs</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                                
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-down"></i>
+        Log Files</a>
+                    <ul class="nav nav-list">
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Archiva Logs</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/audit-logs.html" title="Audit Logs">
+          <i class="none"></i>
+        Audit Logs</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/security-logs.html" title="Security Logs">
+          <i class="none"></i>
+        Security Logs</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Archiva_Logs"></a>Archiva Logs</h2>
+<p>Archiva's <tt>logs</tt> directory contains an archiva log file named <tt>archiva.log</tt>, which logs all the startup information and the output logs of Archiva.</p>
+<p>A typical record looks like this:</p>
+<div>
+<pre>2013-05-02 23:15:41,521 [pool-6-thread-1] INFO  org.apache.archiva.scheduler.repository.ArchivaRepositoryScanningTaskExecutor [] - Gathering repository statistics
+2013-05-02 23:15:41,582 [pool-6-thread-1] INFO  org.apache.archiva.metadata.repository.stats.DefaultRepositoryStatisticsManager [] - Gathering statistics executed in 60ms
+2013-05-02 23:15:41,615 [pool-6-thread-1] INFO  org.apache.archiva.scheduler.repository.ArchivaRepositoryScanningTaskExecutor [] - Finished repository task: RepositoryTask [repositoryId=snapshots, resourceFile=null, scanAll=false, updateRelatedArtifacts=false]
+2013-05-02 23:15:41,626 [pool-5-thread-1] INFO  org.apache.archiva.scheduler.indexing.ArchivaIndexingTaskExecutor [] - indexed maven repository: snapshots, onlyUpdate: false, time 106 ms
+2013-05-02 23:15:41,673 [WrapperSimpleAppMain] WARN  org.apache.archiva.redback.components.scheduler.DefaultScheduler [] - Will not schedule this job as a job {rj:internal:rg} already exists.
+2013-05-02 23:15:41,675 [WrapperSimpleAppMain] WARN  org.apache.archiva.redback.components.scheduler.DefaultScheduler [] - Will not schedule this job as a job {rj:snapshots:rg} already exists.
+2013-05-02 23:15:41,680 [WrapperSimpleAppMain] INFO  org.apache.archiva.scheduler.repository.DefaultRepositoryArchivaTaskScheduler [] - Time to initalize DefaultRepositoryArchivaTaskScheduler: 8 ms
+2013-05-02 23:15:41,682 [WrapperSimpleAppMain] INFO  org.apache.archiva.web.startup.Banner [] - _________________________
+                          __________________________________
+               /\_       /                                  \
+              /`/@),    |  On behalf of all of the alpacas   |
+              |  (~'  __| toiling away on the Apache Archiva |
+      _,--.___/  |    \      project team, I would like to   |
+    ,' ,     (   |     \         welcome you to Archiva      |
+    |  (      \  /      |          1.4-M4-SNAPSHOT           |
+     \  )\_/  ,_/       |                                    |
+     / /   ( |/         |     http://archiva.apache.org/     |
+    ( |    ( |          |     users@archiva.apache.org       |
+     \|     \|           \__________________________________/
+
+
+2013-05-02 23:15:41,707 [WrapperSimpleAppMain] INFO  org.apache.jackrabbit.webdav.server.AbstractWebdavServlet [] - authenticate-header = Basic realm=&quot;Jackrabbit Webdav Server&quot;
+2013-05-02 23:15:41,708 [WrapperSimpleAppMain] INFO  org.apache.jackrabbit.webdav.server.AbstractWebdavServlet [] - csrf-protection = null
+2013-05-02 23:15:41,708 [WrapperSimpleAppMain] INFO  org.apache.jackrabbit.webdav.server.AbstractWebdavServlet [] - createAbsoluteURI = true
+2013-05-02 23:15:41,726 [WrapperSimpleAppMain] INFO  org.apache.archiva.webdav.RepositoryServlet [] - initServers done in 18&#xa0;ms</pre></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/audit-logs.html b/docs/2.2.8/adminguide/audit-logs.html
new file mode 100644
index 0000000..62978b4
--- /dev/null
+++ b/docs/2.2.8/adminguide/audit-logs.html
@@ -0,0 +1,421 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20110916" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Audit Logs</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Audit Logs</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                                
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-down"></i>
+        Log Files</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/archiva-logs.html" title="Archiva Logs">
+          <i class="none"></i>
+        Archiva Logs</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Audit Logs</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/security-logs.html" title="Security Logs">
+          <i class="none"></i>
+        Security Logs</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Audit_Logs"></a>Audit Logs</h2>
+<p>Archiva's <tt>logs</tt> directory contains an audit log file named <tt>archiva-audit.log</tt>, which tracks events that occur in the server.</p>
+<p>A typical record looks like this:</p>
+<div>
+<pre>2008-11-20 14:52:38 releases guest 127.0.0.1 &quot;org/mortbay/jetty/jetty/6.1.12/jetty-6.1.12-sources.jar&quot; &quot;Created File (proxied)&quot;</pre></div>
+<p>The space delimited records are:</p>
+<ul>
+<li>date and time (server local time)</li>
+<li>repository affected</li>
+<li>user that enacted the change (or guest if none)</li>
+<li>IP address of the user</li>
+<li>the path of the artifact within the repository</li>
+<li>the event that occured</li></ul>
+<p>Currently, the following events are logged:</p>
+<ul>
+<li>creation of a directory</li>
+<li>creation of a file</li>
+<li>removal of a directory</li>
+<li>removal of a file</li>
+<li>modification of a directory</li>
+<li>move/rename of a file</li>
+<li>copy of a file</li>
+<li>move/rename of a directory</li>
+<li>copy of a directory</li>
+<li>uploaded file via the web interface</li></ul><!-- TODO: link to configuration files, might want it to be configurable for different levels/events, later add GUI instructions --></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/configuration-files.html b/docs/2.2.8/adminguide/configuration-files.html
new file mode 100644
index 0000000..9d3a49a
--- /dev/null
+++ b/docs/2.2.8/adminguide/configuration-files.html
@@ -0,0 +1,420 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20121124" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Configuration Files of Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Configuration Files of Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Configuration Files</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Configuration_Files_of_Apache_Archiva"></a>Configuration Files of Apache Archiva</h2>
+<p>While Archiva is primarily configured via the graphical administration interface, it stores all configuration in XML configuration files that can be hand edited and used for backup and migration.</p>
+<p>The following files compose the configuration for Archiva:</p>
+<ul>
+<li><tt>archiva.xml</tt> - this is the primary Archiva configuration file</li>
+<li><tt>security.properties</tt> - This file, if it exists, is only read once to populate the Redback Runtime Configuration properties (see <a href="./redback-runtime-configuration.html#Runtime_Properties">Redback Runtime Configuration</a>, stored in <tt>archiva.xml</tt>. The file will be ignored after this.</li></ul>
+<p>This section will focus on the <tt>archiva.xml</tt> file.</p>
+<div class="section">
+<h3><a name="The_Archiva_configuration_file"></a>The Archiva configuration file</h3>
+<p>The Archiva configuration file is stored in one of two locations:</p>
+<ul>
+<li>The application server configuration directory (see <a href="./standalone.html"> installing Archiva standalone</a> for more information)</li>
+<li>The user home directory (<tt>~/.m2/archiva.xml</tt>). </li></ul>
+<p>When modified in the GUI, the file is written back to the location it was initially read from, with the home directory taking priority if both exist. When using a standalone installation, it is highly recommended that a configuration file is only maintained in one of the locations.</p>
+<p>For a complete reference of the configuration file see: <a class="externalLink" href="http://archiva.apache.org/ref/2.2.8/archiva-base/archiva-configuration/configuration.html">Reference</a></p>
+<p>The following shows a basic configuration file:</p>
+<div class="source">
+<pre>&lt;configuration&gt;
+  &lt;version&gt;2&lt;/version&gt;
+  &lt;managedRepositories&gt;
+    &lt;managedRepository&gt;
+      &lt;location&gt;${appserver.base}/repositories/internal&lt;/location&gt;
+      &lt;daysOlder&gt;30&lt;/daysOlder&gt;
+      &lt;id&gt;internal&lt;/id&gt;
+      &lt;name&gt;Archiva Managed Internal Repository&lt;/name&gt;
+    &lt;/managedRepository&gt;
+  &lt;/managedRepositories&gt;
+  &lt;remoteRepositories&gt;
+    &lt;remoteRepository&gt;
+      &lt;url&gt;http://repo1.maven.org/maven2&lt;/url&gt;
+      &lt;id&gt;central&lt;/id&gt;
+      &lt;name&gt;Central Repository&lt;/name&gt;
+    &lt;/remoteRepository&gt;
+  &lt;/remoteRepositories&gt;
+  &lt;proxyConnectors&gt;
+    &lt;proxyConnector&gt;
+      &lt;sourceRepoId&gt;internal&lt;/sourceRepoId&gt;
+      &lt;targetRepoId&gt;central&lt;/targetRepoId&gt;
+      &lt;policies&gt;
+        &lt;releases&gt;always&lt;/releases&gt;
+        &lt;checksum&gt;fix&lt;/checksum&gt;
+        &lt;snapshots&gt;never&lt;/snapshots&gt;
+        &lt;cache-failures&gt;no&lt;/cache-failures&gt;
+      &lt;/policies&gt;
+    &lt;/proxyConnector&gt;
+  &lt;/proxyConnectors&gt;
+&lt;/configuration&gt;</pre></div><!-- TODO: need a full reference --></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/configuration.html b/docs/2.2.8/adminguide/configuration.html
new file mode 100644
index 0000000..68d445f
--- /dev/null
+++ b/docs/2.2.8/adminguide/configuration.html
@@ -0,0 +1,483 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20111230" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Configuration of Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Configuration of Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                              
+      <li class="active">
+  
+            <a href="#"><i class="icon-chevron-down"></i>Archiva Configuration</a>
+                  <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Configuration_of_Apache_Archiva"></a>Configuration of Apache Archiva</h2>
+<p>Archiva is primarily configured via the graphical administration interface.</p>
+<p>The following describe the various sections of the administration menu:</p>
+<ul>
+<li><a href="./repositories.html"> Configuring repositories</a></li>
+<li><a href="./proxy-connectors.html"> Configuring proxy connectors</a></li>
+<li><a href="./network-proxies.html"> Configuring network proxies</a></li>
+<li><a href="./proxy-connector-rules.html"> Configuring proxy connectors rules</a></li>
+<li><a href="./network-configuration.html"> Network Configuration</a></li>
+<li><a href="./legacy.html"> Configuring legacy (maven 1) support</a></li>
+<li><a href="./consumers.html"> Configuring repository scanning and consumers</a></li>
+<li><a href="./staging-repositories.html"> Staging and merging repositories</a></li>
+<li><a href="./appearance-configuration.html"> Appearance configuration</a></li>
+<li><a href="./ui-configuration.html"> UI configuration</a></li>
+<li><a href="./url-cache-failure-configuration.html"> Url Cache Failure configuration</a></li>
+<li><a href="./file-locking-configuration.html"> File Locking configuration</a></li>
+<li><a href="./redback-runtime-configuration.html"> Redback Runtime configuration</a></li></ul></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/consumers.html b/docs/2.2.8/adminguide/consumers.html
new file mode 100644
index 0000000..ed87255
--- /dev/null
+++ b/docs/2.2.8/adminguide/consumers.html
@@ -0,0 +1,483 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Maria Odea Ching
+Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20111218" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Understanding Consumers in Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Understanding Consumers in Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Consumers</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Understanding_Consumers_in_Apache_Archiva"></a>Understanding Consumers in Apache Archiva</h2>
+<p>Archiva makes use of the concept of consumers. Consumers are components which consumes or processes an artifact. There is on type of consumers in Archiva: repository content consumers.</p>
+<div class="section">
+<h3><a name="Repository_Content_Consumers"></a>Repository Content Consumers</h3>
+<p>The repository content consumers consume or process artifacts during repository scanning. For every artifact found in the repository, each consumer processes them. There are 8 available repository content consumers which can be configured in the Repository Scanning page. These are:</p>
+<ul>
+<li><b>auto-remove</b> - Removes files in the repository being scanned if the file type matches any of the configured file types to be removed. </li>
+<li><b>auto-rename</b> - Automatically renames common artifact mistakes. </li>
+<li><b>create-missing-checksums</b> - Creates the md5 and sha1 checksum files of the artifact if there are none available in the repository. </li>
+<li><b>index-content</b> - Adds the content of the artifact (specifically the pom) to the index, allowing the artifact to be searched in Archiva.</li>
+<li><b>metadata-updater</b> - Updates artifact metadata files depending on the content of the repository. </li>
+<li><b>repository-purge</b> - Removes old snapshots from the repository either by the number of days old or by the retention count.</li>
+<li><b>validate-checksums</b> - Validates the checksum files of the artifact.</li>
+<li><b>create-archiva-metadata</b> - Take an artifact off of disk and put it into the metadata repository.</li>
+<li><b>duplicate-artifacts</b> - Search the artifact repository of known SHA1 Checksums for potential duplicate artifacts.</li></ul><img src="../images/consumers.png" alt="" /></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/customising-security.html b/docs/2.2.8/adminguide/customising-security.html
new file mode 100644
index 0000000..e0853a1
--- /dev/null
+++ b/docs/2.2.8/adminguide/customising-security.html
@@ -0,0 +1,595 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20110916" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Archiva Security Configuration</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Archiva Security Configuration</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                                
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-down"></i>
+        Security</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/users.html" title="Users">
+          <i class="none"></i>
+        Users</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/roles.html" title="Roles">
+          <i class="none"></i>
+        Roles</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Customising</a>
+          </li>
+              </ul>
+        </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Archiva_Security_Configuration"></a>Archiva Security Configuration</h2>
+<p>Security properties and password rules are configured now in the Redback Runtime Configuration properties (see <a href="./redback-runtime-configuration.html#Runtime_properties">Redback Runtime Configuration</a>).</p>
+<p>The Redback Runtime Configuration properties are stored in <tt>archiva.xml</tt>. The former <tt>security.properties</tt> file, if it exists, is only used once for populating the Runtime Configuration settings. After that, this file will be ignored.</p><!-- TODO: Link to plexus-redback documentation when available -->
+<p>These are the default properties. The file can be found in in Redback's svn repo: <a class="externalLink" href="http://svn.apache.org/repos/asf/archiva/redback/redback-core/trunk/redback-configuration/src/main/resources/org/apache/archiva/redback/config-defaults.properties"> config-defaults.properties</a></p>
+<div class="source">
+<pre># 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
+# &quot;License&quot;); 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
+# &quot;AS IS&quot; 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.
+
+# --------------------------------------------------------------------
+# Application Configuration
+
+application.timestamp=EEE d MMM yyyy HH:mm:ss Z
+
+# --------------------------------------------------------------------
+# JDBC Setup
+
+#jdbc.driver.name=org.apache.derby.jdbc.EmbeddedDriver
+#jdbc.url=jdbc:derby:memory:users-tests;create=true
+
+jdbc.driver.name=org.hsqldb.jdbcDriver
+jdbc.url=jdbc:hsqldb:mem:redback-test
+
+jdbc.username=sa
+jdbc.password=
+
+# --------------------------------------------------------------------
+# Email Settings
+
+email.jndiSessionName=java:comp/env/mail/Session
+email.smtp.host=localhost
+email.smtp.port=25
+email.smtp.ssl.enabled=false
+email.smtp.tls.enabled=false
+email.smtp.username=
+email.smtp.password=
+
+#TODO: move description elsewhere, remove bad default
+# All emails sent by the system will be from the following address
+#email.from.address=${user.name}@localhost
+# All emails sent by the system will be from the following user name (used in conjunction with address)
+#email.from.name=Unconfigured Username
+
+# If all email addresses (from new user registration) require an account validation email. 
+email.validation.required=true
+# Timeout (in minutes) for the key generated for an email validation to remain valid.
+# 2880 minutes = 48 hours
+email.validation.timeout=2880
+# The subject line for the email message.
+email.validation.subject=Welcome
+
+#TODO: move description elsewhere, remove bad default
+# Get the Feedback to use for any outgoing emails.
+# NOTE: if feedback.path starts with a &quot;/&quot; it is appended to the end of the value provided in application.url
+# This value can be in the format/syntax of &quot;/feedback.action&quot; or even &quot;mailto:feedback@application.com&quot;
+#email.feedback.path=/feedback.action
+
+#Set the application base URL. The default is to derive it from the HTTP request
+#application.url=http://myurl.mycompany.com
+
+# --------------------------------------------------------------------
+# Auto Login Settings
+
+security.rememberme.enabled=true
+# Timeout in days ( 365 days = 1 year )
+security.rememberme.timeout=365
+security.rememberme.path=/
+security.rememberme.domain=
+security.rememberme.secure=false
+
+# Single Sign On
+# Timeout in minutes
+security.signon.timeout=30
+
+# --------------------------------------------------------------------
+# Default Username Values
+redback.default.admin=admin
+redback.default.guest=guest
+
+# --------------------------------------------------------------------
+# Security Policies
+
+#security.policy.password.encoder=
+security.policy.password.previous.count=6
+security.policy.password.expiration.enabled=true
+security.policy.password.expiration.days=90
+security.policy.password.expiration.notify.days=10
+security.policy.allowed.login.attempt=10
+
+# turn off the perclick enforcement of various security policies, slightly
+# more heavyweight since it will ensure that the User object on each click
+# is up to date
+security.policy.strict.enforcement.enabled=true
+security.policy.strict.force.password.change.enabled=true
+
+# --------------------------------------------------------------------
+# Password Rules
+security.policy.password.rule.alphanumeric.enabled=false
+security.policy.password.rule.alphacount.enabled=true
+security.policy.password.rule.alphacount.minimum=1
+security.policy.password.rule.characterlength.enabled=true
+security.policy.password.rule.characterlength.minimum=1
+security.policy.password.rule.characterlength.maximum=24
+security.policy.password.rule.musthave.enabled=true
+security.policy.password.rule.numericalcount.enabled=true
+security.policy.password.rule.numericalcount.minimum=1
+security.policy.password.rule.reuse.enabled=true
+security.policy.password.rule.nowhitespace.enabled=true
+
+# --------------------------------------------------------------------
+# ldap settings
+#
+ldap.bind.authenticator.enabled=false
+
+# ldap options for configuration via properties file
+#ldap.config.hostname=
+#ldap.config.port=
+#ldap.config.base.dn=
+#ldap.config.context.factory=
+#ldap.config.bind.dn=
+#ldap.config.password=
+#ldap.config.authentication.method=
+
+# config parameter for the ConfigurableUserManager
+user.manager.impl=jpa
+
+
+# REST security settings
+
+# Cross Site Request Forgery (CSRF) Prevention
+# --------------------------------------------
+# Enable/Disable CSRF filtering.
+# Possible values: true, false
+rest.csrffilter.enabled=true
+# Base URL used to verify the origin headers of the requests. If not set or empty
+# it tries to determine the base url automatically
+rest.baseUrl=
+# What to do, if the request contains no Origin or Referer header.
+# If true, requests without Origin or Referer Header are denied, otherwise accepted.
+# Possible values: true, false
+rest.csrffilter.absentorigin.deny=true
+# Enable/Disable the token validation only.
+# If true, the validation of the CSRF tokens will be disabled.
+# Possible values: true, false
+rest.csrffilter.disableTokenValidation=false
+
+
+# Configuration for JWT authentication
+authentication.jwt.keystoreType=memory
+authentication.jwt.signatureAlgorithm=HS384
+authentication.jwt.keyfile=jwt-key.xml
+authentication.jwt.maxInMemoryKeys=5
+</pre></div>
+<p><b>Note:</b> If installed standalone, Archiva's list of configuration files is <i>itself</i> configurable, and can be found in: <tt>apps/archiva/WEB-INF/applicationContext.xml</tt></p>
+<p>Values from sources</p>
+<div class="source">
+<pre>&lt;bean name=&quot;commons-configuration&quot; class=&quot;org.apache.archiva.components.registry.commons.CommonsConfigurationRegistry&quot;
+  init-method=&quot;initialize&quot;&gt;
+  &lt;property name=&quot;initialConfiguration&quot;&gt;
+    &lt;value&gt;
+      &lt;![CDATA[
+      &lt;configuration&gt;
+        &lt;system/&gt;
+        &lt;jndi prefix=&quot;java:comp/env&quot; config-optional=&quot;true&quot;/&gt;
+        &lt;xml fileName=&quot;${appserver.base}/conf/archiva.xml&quot; config-optional=&quot;true&quot;
+             config-name=&quot;org.apache.archiva.base&quot;
+             config-at=&quot;org.apache.archiva&quot;/&gt;
+        &lt;xml fileName=&quot;${appserver.base}/conf/shared.xml&quot; config-optional=&quot;true&quot;
+             config-name=&quot;org.apache.maven.shared.app.base&quot; config-at=&quot;org.apache.maven.shared.app&quot;/&gt;
+        &lt;xml fileName=&quot;${appserver.base}/conf/common.xml&quot; config-optional=&quot;true&quot;/&gt;
+        &lt;properties fileName=&quot;${appserver.base}/conf/security.properties&quot; config-optional=&quot;true&quot;
+                    config-at=&quot;org.apache.archiva.redback&quot;/&gt;
+        &lt;xml fileName=&quot;${appserver.home}/conf/archiva.xml&quot; config-optional=&quot;true&quot;
+             config-at=&quot;org.apache.archiva&quot;/&gt;
+        &lt;xml fileName=&quot;${appserver.home}/conf/shared.xml&quot; config-optional=&quot;true&quot;
+             config-at=&quot;org.apache.maven.shared.app&quot;/&gt;
+        &lt;xml fileName=&quot;${appserver.home}/conf/common.xml&quot; config-optional=&quot;true&quot;/&gt;
+        &lt;properties fileName=&quot;${appserver.home}/conf/security.properties&quot; config-optional=&quot;true&quot;
+                    config-at=&quot;org.apache.archiva.redback&quot;/&gt;
+        &lt;properties fileName=&quot;org/apache/archiva/redback-security.properties&quot; config-at=&quot;org.apache.archiva.redback&quot;/&gt;
+      &lt;/configuration&gt;
+      ]]&gt;
+    &lt;/value&gt;
+  &lt;/property&gt;    
+&lt;/bean&gt;
+</pre></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/databases.html b/docs/2.2.8/adminguide/databases.html
new file mode 100644
index 0000000..f6f70fd
--- /dev/null
+++ b/docs/2.2.8/adminguide/databases.html
@@ -0,0 +1,424 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20111006" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Apache Archiva Databases</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Apache Archiva Databases</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Databases</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Apache_Archiva_Database"></a>Apache Archiva Database</h2>
+<p>Archiva uses an external database for one purpose:</p>
+<ul>
+<li>As a default user store for security</li></ul>
+<p>Generally, it is unnecessary to configure anything - the built in embedded database is suitable for the artifact management, and if an external authentication mechanism is not needed, the user database.</p>
+<p>However, it is possible to configure an external database as needed.</p>
+<div class="section">
+<h3><a name="Configuring_an_external_database"></a>Configuring an external database</h3>
+<p>Archiva uses JNDI data sources to locate the databases to use:</p>
+<ul>
+<li><tt>jdbc/users</tt> - the user store</li></ul>
+<p>Configuring an external database for either or both of these sources depends is configured in <tt>jetty.xml</tt> if you are using the <a href="./standalone.html"> standalone installation</a>, or in the application server configuration if you are using the <a href="./webapp.html"> web application installation</a>.</p>
+<p>By default the archiva and users databases are stored in the <tt>databases</tt> directory where Archiva is installed. To change the path, just edit all instances of the &quot;DatabaseName&quot; property in <tt>conf/jetty.xml</tt> (see below). </p>
+<p><b>Note:</b> If you are using MySQL as your database, Archiva fails when the users database created is initially set to UTF-8 for the character encoding. As a workaround, set the database to UTF-8 encoding after it has been populated. See <a class="externalLink" href="http://jira.codehaus.org/browse/MRM-1373"> MRM-1373</a> for more details.</p>
+<div class="source">
+<pre>&lt;!-- omitted xml --&gt;
+
+&lt;New id=&quot;users&quot; class=&quot;org.mortbay.jetty.plus.naming.Resource&quot;&gt;
+  &lt;Arg&gt;jdbc/users&lt;/Arg&gt;
+  &lt;Arg&gt;
+    &lt;New class=&quot;org.apache.derby.jdbc.EmbeddedDataSource&quot;&gt;
+      &lt;Set name=&quot;DatabaseName&quot;&gt;/path/to/database/directory/users&lt;/Set&gt;
+      &lt;Set name=&quot;user&quot;&gt;sa&lt;/Set&gt;
+      &lt;Set name=&quot;createDatabase&quot;&gt;create&lt;/Set&gt;
+    &lt;/New&gt;
+  &lt;/Arg&gt;
+&lt;/New&gt;
+
+&lt;New id=&quot;usersShutdown&quot; class=&quot;org.mortbay.jetty.plus.naming.Resource&quot;&gt;
+  &lt;Arg&gt;jdbc/usersShutdown&lt;/Arg&gt;
+  &lt;Arg&gt;
+    &lt;New class=&quot;org.apache.derby.jdbc.EmbeddedDataSource&quot;&gt;
+      &lt;Set name=&quot;DatabaseName&quot;&gt;/path/to/database/directory/users&lt;/Set&gt;
+      &lt;Set name=&quot;user&quot;&gt;sa&lt;/Set&gt;
+      &lt;Set name=&quot;shutdownDatabase&quot;&gt;shutdown&lt;/Set&gt;
+    &lt;/New&gt;
+  &lt;/Arg&gt;
+&lt;/New&gt;
+&lt;!-- omitted xml --&gt;</pre></div></div>
+<div class="section">
+<h3><a name="Backing_up_the_database"></a>Backing up the database</h3>
+<p>While it is a good idea to back up both databases, it is not strictly necessary to back up the repository database on a regular basis. Should any data loss be suffered, this database can be regenerated by deleting it's contents and re-scanning the repositories.</p>
+<p>If you are using the default user security mechanism, it is important to back up the users database on a regular basis to ensure that the user passwords and information are not lost in the event of corruption. With the default embedded storage this is simply a matter of making a copy of the database directory on the filesystem. If you have configured an external database as the source for user information, please refer to your database documentation for backup instructions.</p><!-- TODO: link to wiki location that does others --></div>
+<div class="section">
+<h3><a name="MySql_setup"></a>MySql setup</h3>
+<div class="source">
+<pre>  create database archiva character set utf8;
+
+  GRANT ALL PRIVILEGES ON archiva.* TO 'archivauser'@'localhost' IDENTIFIED BY 'archivauserpassword'</pre></div>
+<p>Replace &quot;archivauser&quot; and &quot;archivauserpassword&quot; with a username and password of your choice. If Archiva is not running on the same server as your MySQL database server, replace &quot;localhost&quot; with the hostname or IP address of the Archiva server.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/file-locking-configuration.html b/docs/2.2.8/adminguide/file-locking-configuration.html
new file mode 100644
index 0000000..26b82f0
--- /dev/null
+++ b/docs/2.2.8/adminguide/file-locking-configuration.html
@@ -0,0 +1,470 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20131213" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; File Locking Configuration</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">File Locking Configuration</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>File Locking Configuration</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="File_Locking_configuration"></a>File Locking configuration</h2>
+<p>Some race condition can happen when retrieving the same file in the same time from a Proxy with multiple threads.</p>
+<p>Currently it's not activated per default</p><img src="../images/file-locking.png" alt="File Locking Configuration" /></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/index.html b/docs/2.2.8/adminguide/index.html
new file mode 100644
index 0000000..17b6518
--- /dev/null
+++ b/docs/2.2.8/adminguide/index.html
@@ -0,0 +1,388 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20110916" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; System Administrators Guide to Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">System Administrators Guide to Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="System_Administrators_Guide_to_Apache_Archiva"></a>System Administrators Guide to Apache Archiva</h2>
+<p>Archiva is designed to be simple to install and maintain - including both manual configuration files and a comprehensive graphical administration interface.</p>
+<p>The following sections describe the process for configuring Archiva for use:</p>
+<ul>
+<li><a href="./installing.html"> Installing Archiva</a></li>
+<li><a href="./databases.html"> Configuring databases for Archiva</a></li>
+<li><a href="./security.html"> Configuring security for Archiva</a></li>
+<li><a href="./configuration.html"> Using the graphical administration interface</a></li>
+<li><a href="./configuration-files.html"> The configuration files available for Archiva</a></li>
+<li><a href="./audit-logs.html"> Audit logging</a></li>
+<li><a href="./reports.html"> Repository health reports</a></li>
+<li><a href="./web-services.html"> Archiva Web Services</a></li>
+<li><a href="./repositories-content-storage.html"> Repositories Content Storage</a></li></ul></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/installing.html b/docs/2.2.8/adminguide/installing.html
new file mode 100644
index 0000000..a6ca44a
--- /dev/null
+++ b/docs/2.2.8/adminguide/installing.html
@@ -0,0 +1,403 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20110916" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Installing Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Installing Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                        
+      <li class="active">
+  
+            <a href="#"><i class="icon-chevron-down"></i>Installing Archiva</a>
+                  <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/standalone.html" title="Installing Standalone">
+          <i class="none"></i>
+        Installing Standalone</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/webapp.html" title="Installing as a WAR">
+          <i class="none"></i>
+        Installing as a WAR</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/upgrade.html" title="Upgrading to a New Version">
+          <i class="none"></i>
+        Upgrading to a New Version</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Installing_Apache_Archiva"></a>Installing Apache Archiva</h2>
+<p>Whether you choose to install Archiva as a standalone application or as a web application in your preferred Java EE application server, only a minimal amount of configuration is necessary.</p>
+<p>The following documents cover the different installation alternatives:</p>
+<ul>
+<li><a href="./standalone.html"> Installing standalone</a></li>
+<li><a href="./webapp.html"> Installing as a web application</a></li>
+<li><a href="./upgrade.html"> Upgrading to a new version</a></li></ul></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/legacy.html b/docs/2.2.8/adminguide/legacy.html
new file mode 100644
index 0000000..f3738cb
--- /dev/null
+++ b/docs/2.2.8/adminguide/legacy.html
@@ -0,0 +1,479 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Apache Archiva legacy repository support configuration</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Apache Archiva legacy repository support configuration</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Legacy (Maven 1) Support</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Apache_Archiva_legacy_repository_support_configuration"></a>Apache Archiva legacy repository support configuration</h2>
+<p>Archiva supports both Maven 1 and Maven 2 clients transparently when used as a proxy. The underlying managed repository can use either the default or legacy layout, and Archiva will convert the requested path to the expected internal format.</p>
+<p>However, due to the lack of structure in maven 1 &quot;legacy&quot; artifact request format, Archiva must split the request path to discover artifactId, version and classifier - and this is not always deterministic. The strategy used by Archiva has been tested on many existing artifacts in the public central repository, but users may require support for private artifacts or for artifacts with classifiers.</p>
+<p>Since version 1.0.1, Archiva provides a legacy support configuration to the administrator. It is possible to register some custom legacy path and the expected artifact reference. Archiva will check that the entered artifact reference matches the legacy path, to avoid corrupted data in repository.</p><img src="../images/legacy-support-list.png" alt="" />
+<p>For example:</p>
+<ul>
+<li>Path: <tt>jaxen/jars/jaxen-1.0-FCS-full.jar</tt></li>
+<li>Group ID: <tt>jaxen</tt></li>
+<li>Artifact ID: <tt>jaxen</tt></li>
+<li>Version: <tt>1.0-FCS</tt></li>
+<li>Classifier: <tt>full</tt></li>
+<li>Type: <tt>jar</tt></li></ul>
+<p>This prevents the artifact incorrectly getting translated to a version of <tt>1.0</tt> and a classifier of <tt>FCS-full</tt>.</p>
+<p>Those custom legacy path are stored in the archiva.xml configuration file. By default, <tt>jaxen-1.0-FCS-full</tt> is registered, as it is used by some core Maven 1 plugins (however this is not the case if you upgraded from a previous version and retained your configuration file).</p><img src="../images/legacy-support-add.png" alt="" /></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/logging.html b/docs/2.2.8/adminguide/logging.html
new file mode 100644
index 0000000..1bd5223
--- /dev/null
+++ b/docs/2.2.8/adminguide/logging.html
@@ -0,0 +1,407 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20090722" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Log Files</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Log Files</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                          
+      <li class="active">
+  
+            <a href="#"><i class="icon-chevron-down"></i>Log Files</a>
+                  <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/archiva-logs.html" title="Archiva Logs">
+          <i class="none"></i>
+        Archiva Logs</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/audit-logs.html" title="Audit Logs">
+          <i class="none"></i>
+        Audit Logs</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/security-logs.html" title="Security Logs">
+          <i class="none"></i>
+        Security Logs</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Log_Files"></a>Log Files</h2>
+<p>To keep track of the Archiva performance and problems, log files are created during runtime. These files can be found in the <tt>logs/</tt> directory.</p>
+<ul>
+<li><a href="./archiva-logs.html"> <b>archiva.log</b></a> - contains all the start-up information and output logs for Archiva</li>
+<li><a href="./audit-logs.html"> <b>archiva-audit.log</b></a> - contains information regarding the operations performed against the repositories and configurations being modified. A good example is when an artifact is deployed to an Archiva repository. The operation will be logged in this file, with the date and timestamp of when the operation occurred, the userId of who performed the deployment, and the artifact that was deployed.</li>
+<li><a href="./security-logs.html"> <b>archiva-security-audit.log</b></a> - contains information regarding Archiva's security. For example, a successful login of a user or a user account is created.</li></ul>
+<p>Note since 2.1.0, the log4j2 asyncLogger feature is NOT anymore configured as the default.</p>
+<p>If you want to activate it as default add the system property <b>-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector</b></p>
+<p>This means the default <b>AsyncLogger.WaitStrategy</b> and <b>AsyncLoggerConfig.WaitStrategy</b> option is Sleep.</p>
+<p>If you are in a constrained environment, you can change it to Block (or Yield) (<tt>-DAsyncLogger.WaitStrategy=Block</tt> and/or <tt>-DAsyncLoggerConfig.WaitStrategy=Block</tt>) </p>
+<p>(See <a class="externalLink" href="http://logging.apache.org/log4j/2.x/manual/async.html">log4j2 documentation</a> )</p></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/network-configuration.html b/docs/2.2.8/adminguide/network-configuration.html
new file mode 100644
index 0000000..fd049c7
--- /dev/null
+++ b/docs/2.2.8/adminguide/network-configuration.html
@@ -0,0 +1,469 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20121230" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Network Configuration</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Network Configuration</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Network Configuration</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Network_Configuration"></a>Network Configuration</h2>
+<p>To download artifacts from remote repositories, Archiva use Apache Maven Wagon. This library use a connection pool mechanism. You can configure this pool to limit network access to external resources.</p><img src="../images/network-configuration.png" alt="Network Configuration" /></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/network-proxies.html b/docs/2.2.8/adminguide/network-proxies.html
new file mode 100644
index 0000000..76d42c8
--- /dev/null
+++ b/docs/2.2.8/adminguide/network-proxies.html
@@ -0,0 +1,472 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Understanding Network Proxy Configuration of Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Understanding Network Proxy Configuration of Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Network Proxies</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Understanding_Network_Proxy_Configuration_of_Apache_Archiva"></a>Understanding Network Proxy Configuration of Apache Archiva</h2>
+<p>Archiva uses the terminology &quot;proxy&quot; for two different concepts:</p>
+<ul>
+<li>The remote repository proxying cache, as configured through <a href="./proxy-connectors.html"> proxy connectors</a> between repositories</li>
+<li>Network proxies, which are traditional protocol based proxies (primarily for HTTP access to remote repositories over a firewall)</li></ul>
+<p>Network proxies are configured using standard HTTP proxy settings as provided by your network administrator.</p>
+<p>Once configured, the network proxy can be attached to operations that access remote resources. At present, this is configured on the remote repository proxy connectors that need to access the remote repository over the HTTP protocol.</p><img src="../images/network-proxies.png" alt="" /></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/proxy-connector-rules.html b/docs/2.2.8/adminguide/proxy-connector-rules.html
new file mode 100644
index 0000000..af66302
--- /dev/null
+++ b/docs/2.2.8/adminguide/proxy-connector-rules.html
@@ -0,0 +1,474 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Proxy Connectors Rules</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Proxy Connectors Rules</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Proxy Connectors Rules</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Understanding_Proxy_Connectors_Rules_of_Apache_Archiva"></a>Understanding Proxy Connectors Rules of Apache Archiva</h2>
+<div class="section">
+<h3><a name="Configuring_whitelists_and_blacklists_in_bulk_mode"></a>Configuring whitelists and blacklists in &quot;bulk mode&quot;</h3>
+<p>Proxy Connectors have white/black list for filtering which artifacts are retrieve or not from remote repositories (see <a href="./proxy-connectors.html"> Configuring proxy connectors</a> section &quot;Configuring whitelists and blacklists&quot;)</p>
+<p><b>NOTE:</b> configuring black list will improve performance of your tests. You probably don't to get org/apache/** from all of your remote repositories !</p>
+<div class="section">
+<h4><a name="List_of_Rules"></a>List of Rules</h4><img src="../images/proxy-connectors-rules.png" alt="" /></div>
+<div class="section">
+<h4><a name="Editing_a_rule"></a>Editing a rule</h4><img src="../images/proxy-connectors-rule-edit.png" alt="" /></div></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/proxy-connectors.html b/docs/2.2.8/adminguide/proxy-connectors.html
new file mode 100644
index 0000000..d2a32e8
--- /dev/null
+++ b/docs/2.2.8/adminguide/proxy-connectors.html
@@ -0,0 +1,500 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Understanding Proxy Connector Configuration of Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Understanding Proxy Connector Configuration of Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Proxy Connectors</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Understanding_Proxy_Connector_Configuration_of_Apache_Archiva"></a>Understanding Proxy Connector Configuration of Apache Archiva</h2>
+<p>Archiva uses the terminology &quot;proxy&quot; for two different concepts:</p>
+<ul>
+<li>The remote repository proxying cache, as configured through proxy connectors between repositories</li>
+<li><a href="./network-proxies.html"> Network proxies</a>, which are traditional protocol based proxies (primarily for HTTP access to remote repositories over a firewall)</li></ul>
+<p>A proxy connector is used to link a managed repository (stored on the Archiva machine) to a remote repository (accessed via a URL). This will mean that when a request is received by the managed repository, the connector is consulted to decide whether it should request the resource from the remote repository (and potentially cache the result locally for future requests).</p>
+<p>Each managed repository can proxy multiple remote repositories to allow grouping of repositories through a single interface inside the Archiva instance. For instance, it is common to proxy all remote releases through a single repository for Archiva, as well as a single snapshot repository for all remote snapshot repositories.</p>
+<p>A basic proxy connector configuration simply links the remote repository to the managed repository (with an optional network proxy for access through a firewall). However, the behaviour of different types of artifacts and paths can be specifically managed by the proxy connectors to make access to remote repositories more flexibly controlled.</p>
+<div class="section">
+<h3><a name="Proxy_Connectors"></a>Proxy Connectors</h3>
+<div class="section">
+<h4><a name="List_of_proxy_connectors"></a>List of proxy connectors</h4><img src="../images/proxy-connectors-list.png" alt="" /></div>
+<div class="section">
+<h4><a name="Configuring_order"></a>Configuring order</h4>
+<p>You can configured repositories order using drag&amp;drop</p><img src="../images/proxy-connectors-order.png" alt="" /></div></div>
+<div class="section">
+<h3><a name="Configuring_policies"></a>Configuring policies</h3>
+<p>When an artifact is requested from the managed repository and a proxy connector is configured, the policies for the connector are first consulted to decide whether to retrieve and cache the remote artifact or not. Which policies are applied depends on the type of artifact.</p>
+<p>By default, Archiva comes with the following policies:</p>
+<ul>
+<li><tt>Releases</tt> - how to behave for released artifact metadata (those not carrying a <tt>SNAPSHOT</tt> version). This can be set to <tt>always</tt> (default), <tt>hourly</tt>, <tt>daily</tt>, <tt>once</tt> and <tt>never</tt>.</li>
+<li><tt>Snapshots</tt> - how to behave for snapshot artifact metadata (those carrying a <tt>SNAPSHOT</tt> version). This can be set to <tt>always</tt> (default), <tt>hourly</tt>, <tt>daily</tt>, <tt>once</tt> and <tt>never</tt>.</li>
+<li><tt>Checksum</tt> - how to handle incorrect checksums when downloading an artifact from the remote repository (ie, the checksum of the artifact does not match the corresponding detached checksum file). The options are to fail the request for the remote artifact, fix the checksum on the fly (default), or simply ignore the incorrect checksum</li>
+<li><tt>Cache failures</tt> - whether failures retrieving the remote artifact should be cached (to save network bandwidth for missing or bad artifacts), or uncached (default).</li>
+<li><tt>Return error when</tt> - if a remote proxy causes an error, this option determines whether an existing artifact should be returned (error when <tt>artifact not already present</tt>), or the error passed on regardless (<tt>always</tt>).</li>
+<li><tt>On remote error</tt> - if a remote error is encountered, <tt>stop</tt> causes the error to be returned immediately, <tt>queue error</tt> will return all errors after checking for other successful remote repositories first, and <tt>ignore</tt> will disregard ay errors.</li></ul><img src="../images/proxy-connectors-policies.png" alt="" /></div>
+<div class="section">
+<h3><a name="Configuring_whitelists_and_blacklists"></a>Configuring whitelists and blacklists</h3>
+<p>By default, all artifact requests to the managed repository are proxied to the remote repository via the proxy connector if the policies pass. However, it can be more efficient to configure whitelists and blacklists for a given remote repository that match the expected artifacts to be retrieved.</p>
+<p>If only a whitelist is configured, all requests not matching one of the whitelisted elements will be rejected. Conversely, if only a blacklist is configured, all requests not matching one of the blacklisted elements will be accepted (while those matching will be rejected). If both a whitelist and blacklist are defined, a path must be listed in the whitelist and not in the blacklist to be accepted - all other requests are rejected.</p>
+<p>The path in the whitelist or blacklist is a repository path, and not an artifact path, and matches the request and format of the remote repository. The characters <tt>*</tt> and <tt>**</tt> are wildcards, with <tt>*</tt> matching anything in the current path, while <tt>**</tt> matches anything in the current path and deeper in the directory hierarchy.</p>
+<p>For instance, to only retrieve artifacts in the Apache group ID from a repository, but no artifacts from the Maven group ID, you would configure the following:</p>
+<ul>
+<li>White list: <tt>org/apache/**</tt></li>
+<li>Black list: <tt>org/apache/maven/**</tt></li></ul><img src="../images/proxy-connectors-lists.png" alt="" /></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/redback-runtime-configuration.html b/docs/2.2.8/adminguide/redback-runtime-configuration.html
new file mode 100644
index 0000000..dfdb9e5
--- /dev/null
+++ b/docs/2.2.8/adminguide/redback-runtime-configuration.html
@@ -0,0 +1,495 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20121221" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Apache Archiva Redback Runtime Configuration</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Apache Archiva Redback Runtime Configuration</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Redback Runtime Configuration</a>
+          </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Apache_Archiva_Redback_Runtime_Configuration"></a>Apache Archiva Redback Runtime Configuration</h2>
+<ul>
+<li><a href="#Apache_Archiva_Redback_Runtime_Configuration">Apache Archiva Redback Runtime Configuration</a>
+<ul>
+<li><a href="#Apache_Redback_User_ManagerRbacManager_Implementations">Apache Redback User Manager/RbacManager Implementations</a></li>
+<li><a href="#LDAP_configuration">LDAP configuration</a></li>
+<li><a href="#LDAP_Group-Roles_mapping">LDAP Group-Roles mapping</a></li>
+<li><a href="#Runtime_properties">Runtime properties</a></li>
+<li><a href="#Users_Cache">Users Cache</a></li></ul></li></ul>
+<div class="section">
+<h3><a name="Apache_Redback_User_ManagerRbacManager_Implementations"></a>Apache Redback User Manager/RbacManager Implementations</h3>
+<p>You can choose to switch dynamically</p>
+<ul>
+<li>User Manager Implementations (from Database and/or LDAP).</li>
+<li>RbacManager Implementations (from Database and/or LDAP): to manage if roles management comes from Database and/or LDAP.</li></ul><img src="../images/redback-runtime-conf-general.png" alt="" /></div>
+<div class="section">
+<h3><a name="LDAP_configuration"></a>LDAP configuration</h3>
+<p>LDAP configuration can now be done via an UI and it's now dynamic (no more need of using vi to edit a file :-) ) and no more need of restarting.</p>
+<p>You can test your ldap configuration too.</p><img src="../images/ldap-configuration.png" alt="" /></div>
+<div class="section">
+<h3><a name="LDAP_Group-Roles_mapping"></a>LDAP Group-Roles mapping</h3>
+<p>You can map dynamically LDAP Group to Archiva Roles</p><img src="../images/ldap-group-roles-mapping.png" alt="" /></div>
+<div class="section">
+<h3><a name="Runtime_properties"></a>Runtime properties</h3>
+<p>You can now too modify some Redback configuration properties. You have a help button which explains to you what the property is doing.</p><img src="../images/redback-properties.png" alt="" /></div>
+<div class="section">
+<h3><a name="Users_Cache"></a>Users Cache</h3>
+<p>You can enable/disable users cache and configure various ttl values</p><img src="../images/redback-runtime-conf-users-cache.png" alt="" /></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/reports.html b/docs/2.2.8/adminguide/reports.html
new file mode 100644
index 0000000..b84084d
--- /dev/null
+++ b/docs/2.2.8/adminguide/reports.html
@@ -0,0 +1,403 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Maria Odea Ching" />
+    <meta name="Date-Creation-yyyymmdd" content="20071112" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Making the most of Reporting in Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Making the most of Reporting in Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Reports</a>
+          </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Making_the_most_of_Reporting_in_Apache_Archiva"></a>Making the most of Reporting in Apache Archiva</h2>
+<p>Archiva has two types of reports: Repository Statistics and Repository Health. Repository Statistics was just implemented in 1.2.</p>
+<div class="section">
+<h3><a name="Repository_Statistics"></a>Repository Statistics</h3>
+<p>Repository statistics contains the detailed statistics such as number of artifacts, number of groups and projects, etc. of an Archiva managed repository.</p>
+<div class="section">
+<h4><a name="Configuring_the_Report"></a>Configuring the Report</h4>
+<p>The following fields are configurable for Repository Statistics:</p>
+<p>1. Repositories to be Compared - the repositories whose latest statistics would be compared. If only one repository is selected, the different statistics based on the executed repository scanning and the specified Start Date and End Date will be shown. Otherwise, the latest statistics of the selected repositories on the specified dates will be displayed.</p>
+<p>2. Row Count - the number of rows to be displayed on each page.</p>
+<p>3. Start Date - the start date range of the statistics to be displayed.</p>
+<p>4. End Date - the end date range of the statistics to be displayed.</p><img src="../images/repository-statistics-form.png" alt="" /></div>
+<div class="section">
+<h4><a name="Contents_of_the_Report"></a>Contents of the Report</h4>
+<p>The Repository Statistics Show Report button will display a table containing the statistics of the repository/repositories. See below for a sample Repository Statistics report comparing two repositories:</p><img src="../images/repository-statistics.png" alt="Repository Statistics" />
+<p>Repository Statistics can be exported to a CSV file. To do this, just click the link on the upper left hand corner above the report.</p></div></div>
+<div class="section">
+<h3><a name="Repository_Health"></a>Repository Health</h3>
+<p>The Repository Health report is a detailed listing of the problematic artifacts in the different repositories. Problematic artifacts are those artifacts that were detected by Archiva to have defects (ex. the versions in the pom and in the artifact itself do not match). </p>
+<div class="section">
+<h4><a name="Configuring_the_Report"></a>Configuring the Report</h4>
+<p>There are 3 fields which can be configured when viewing the report. These are: the number of rows per page, the group id and the repository.</p>
+<p>1. Setting the row count. This field is for configuring the number of rows or artifacts to be displayed per page of the report. By default, this is set to 100. The minimum number of rows per page is 10 and the maximum number of rows is 1000. </p>
+<p>2. Setting the group id. The group id pertains to the group id of the artifact (ex. org.apache.maven.plugins). This field has a blank default value -- meaning, show defective artifacts which has any group id. </p>
+<p>3. Setting the repository. You can view the defective artifacts found on specific repositories by setting the repository field. By default, it is set to All Repositories. Please note that the repository field options list only contains the repositories which have one or more defective artifacts in it. So not all the repositories you have configured in the Repositories section will show up in this list, unless of course they all contain defective artifacts. </p></div>
+<div class="section">
+<h4><a name="Contents_of_the_Report"></a>Contents of the Report</h4>
+<p>The Repository Health Show Report button will display a detailed list of problematic artifacts filtered according to the configuration you've set. Below is a sample Repository Health report:</p><img src="../images/archiva-report.png" alt="Repository Health Report" />
+<p>You can see in the sample report that there are links to the groupId and artifactId directories of each artifact. Clicking on any of these links will bring you to the appropriate navigation page in the Repository Browse. Going back to the report, shown below the links is the specific problem or defect of the artifact. These are usually detected during repository or database scanning. The page number is also displayed on the lower left-hand part of the report.</p></div></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/repositories-content-storage.html b/docs/2.2.8/adminguide/repositories-content-storage.html
new file mode 100644
index 0000000..38b3e04
--- /dev/null
+++ b/docs/2.2.8/adminguide/repositories-content-storage.html
@@ -0,0 +1,413 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20140331" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Repositories Content Storage</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Repositories Content Storage</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Repositories Content Storage</a>
+          </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Repositories_Metadata_Content_Storage"></a>Repositories Metadata Content Storage</h2>
+<p>With version 2.0.2, Metadata repository content can also be stored in an Apache Cassandra database.</p>
+<p>It's possible to switch implementation with configuring the system property (-Darchiva.repositorySessionFactory.id=) with one of the id below.</p>
+<p>There are now 3 implementations of storage:</p>
+<ul>
+<li>File (id: file)</li>
+<li>Jackarabbit (default one) (id: jcr)</li>
+<li>Cassandra (id: cassandra)</li></ul>
+<div class="section">
+<h3><a name="Jackrabbit"></a>Jackrabbit</h3>
+<p>Prior to version 1.4-M1, repository content is now stored in a jcr repository (based on Apache Jackrabbit implementation).</p>
+<p>A default Jackrabbit configuration is provided :</p>
+<div class="source">
+<pre>Error during retrieving content skip as ignoreDownloadError activated.</pre></div>
+<p>You can use your own configuration by adding a file repository.xml in ${appserver.base}/conf.</p>
+<p>By default, the Jcr repository is stored ${appserver.base}/data/jcr.</p>
+<p>If you want to change this default location, you must edit the file WEB-INF/applicationContext.xml, uncomment/edit lines and change with your values:</p>
+<div class="source">
+<pre>&lt;!--
+&lt;bean id=&quot;jcr-config&quot; class=&quot;org.apache.archiva.metadata.repository.jcr.ArchivaJcrRepositoryConfig&quot; factory-method=&quot;create&quot;&gt;
+  &lt;constructor-arg value=&quot;${appserver.base}/conf/repository.xml&quot;/&gt;
+  &lt;constructor-arg value=&quot;${appserver.base}/data/jcr&quot;/&gt;
+&lt;/bean&gt;
+--&gt;
+</pre></div></div>
+<div class="section">
+<h3><a name="Cassandra"></a>Cassandra</h3>
+<p>With the distribution including the embeded Jetty, you can configure Cassandra runtime in the file conf/archiva-cassandra.properties.</p>
+<p>The default content:</p>
+<div class="source">
+<pre>cassandra.host=localhost
+cassandra.port=9160
+cassandra.maxActive=20
+cassandra.readConsistencyLevel=QUORUM
+cassandra.writeConsistencyLevel=QUORUM
+cassandra.replicationFactor=1
+cassandra.keyspace.name=ArchivaKeySpace
+cassandra.cluster.name=archiva</pre></div>
+<p>If you deploy in a Web Application container, you can configure a path to this configuration file using the system property: -Darchiva.cassandra.configuration.file=</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/repositories.html b/docs/2.2.8/adminguide/repositories.html
new file mode 100644
index 0000000..d07744f
--- /dev/null
+++ b/docs/2.2.8/adminguide/repositories.html
@@ -0,0 +1,621 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Maria Odea Ching
+Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20130207" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Understanding Repository Configuration of Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Understanding Repository Configuration of Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Repositories</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Understanding_Repository_Configuration_of_Apache_Archiva"></a>Understanding Repository Configuration of Apache Archiva</h2><!-- TODO: revise more as suggested by Jeff in the dev list -->
+<p>Archiva has two types of repository configuration: managed repository and remote repository.</p>
+<div class="section">
+<h3><a name="Managed_Repository"></a>Managed Repository</h3>
+<p>A managed repository is a repository which resides locally to the server where Archiva is running. It could serve as a proxy repository, an internal deployment repository or a local mirror repository.</p>
+<p>Managed repository fields:</p>
+<table border="1" class="table table-striped">
+<tr class="a">
+<td align="left"><b>Id</b></td>
+<td align="left">The identifier of the repository. This must be unique.</td></tr>
+<tr class="b">
+<td align="left"><b>Name</b></td>
+<td align="left">The name of the repository. This is the display name.</td></tr>
+<tr class="a">
+<td align="left"><b>Directory</b></td>
+<td align="left">The location of the repository. If the path specified does not exist, Archiva will create the missing directories.</td></tr>
+<tr class="b">
+<td align="left"><b>Index Directory</b></td>
+<td align="left">The location of the index files generated by Archiva. If no location is specified, then the index directory (named <tt>.indexer</tt>) will be created at the root of the repository directory. This directory contains the packaged/bundled index which is consumed by different consumers of the index such as M2Eclipse.</td></tr>
+<tr class="a">
+<td align="left"><b>Type</b></td>
+<td align="left">The repository layout (maven 2 or maven 1)</td></tr>
+<tr class="b">
+<td align="left"><b>Cron Expression</b></td>
+<td align="left">The <a class="externalLink" href="http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html">cron schedule</a> when repository scanning will be executed.</td></tr>
+<tr class="a">
+<td align="left"><b>Days Older</b></td>
+<td align="left">The first option for repository purge. Archiva will check how old the artifact is and if it is older than the set number of days in this field, then the artifact will be deleted respecting the retention count of course. In order to disable the purge by number of days old and set Archiva to purge by retention count, just set the repository purge field to 0. The maximum number of days which can be set here is 1000. See the Repository Purge section below for more details.</td></tr>
+<tr class="b">
+<td align="left"><b>Retention Count</b></td>
+<td align="left">The second option for repository purge. When running the repository purge, Archiva will retain only the number of artifacts set for this field for a specific snapshot version. See the Repository Purge section below for more details.</td></tr>
+<tr class="a">
+<td align="left"><b>Description</b></td>
+<td align="left">Additional information about the repository.</td></tr>
+<tr class="b">
+<td align="left"><b>Releases</b></td>
+<td align="left">Specifies whether there are released artifacts in the repository.</td></tr>
+<tr class="a">
+<td align="left"><b>Snapshots</b></td>
+<td align="left">Specifies whether there are snapshot artifacts in the repository.</td></tr>
+<tr class="b">
+<td align="left"><b>Block Redeployments</b></td>
+<td align="left">Specifies whether released artifacts that are already existing in the repository can be overwritten. Note that this only take effects for non-snapshot deployments.</td></tr>
+<tr class="a">
+<td align="left"><b>Scanned</b></td>
+<td align="left">Specifies whether the repository can be scanned, meaning it is a local repository which should be indexed, purged, etc.</td></tr>
+<tr class="b">
+<td align="left"><b>Delete Released Snapshots</b></td>
+<td align="left">Specifies whether to remove those snapshot artifacts which already has release versions of it in the repository during repository purge.</td></tr>
+<tr class="a">
+<td align="left"><b>Staging Repository</b></td>
+<td align="left">Automatic creation of a stage repository for this local repository.</td></tr>
+<tr class="b">
+<td align="left"><b> Skip Packed Index Creation</b></td>
+<td align="left">Avoid creation of compressed index for IDE usage.</td></tr></table><img src="../images/managed-repositories.png" alt="Managed Repositories" />
+<p>Each repository has its own http(s)/webdav url. This allows the user to browse and access the repository via http(s)/webdav. The url has the following format:</p>
+<div class="source">
+<pre>http://[URL TO ARCHIVA]/repository/[REPOSITORY ID] (e.g. http://localhost:8080/repository/releases).</pre></div>
+<p>A pom snippet is also available for each repository. The &lt;distributionManagement&gt; section can be copied and pasted into a project's pom to specify that the project will be deployed in that managed repository. The &lt;repositories&gt; section on the other hand, can be copied and pasted to a project's pom.xml or to Maven's settings.xml to tell Maven to get artifacts from the managed repository when building the project.</p></div>
+<div class="section">
+<h3><a name="Remote_Repository"></a>Remote Repository</h3>
+<p>A remote repository is a repository which resides remotely. These repositories are usually the proxied repositories. See Proxy Connectors on how to proxy a repository.</p>
+<p>Remote repository fields:</p>
+<table border="1" class="table table-striped">
+<tr class="a">
+<td align="left"><b>Id</b></td>
+<td align="left">The identifier of the remote repository.</td></tr>
+<tr class="b">
+<td align="left"><b>Name</b></td>
+<td align="left">The name of the remote repository.</td></tr>
+<tr class="a">
+<td align="left"><b>Url</b></td>
+<td align="left">The url of the remote repository. It is also possible to use a 'file://' url to proxy a local repository. Be careful that if this local repository is a managed repository of archiva which has some proxies connectors, those ones won't be triggered.</td></tr>
+<tr class="b">
+<td align="left"><b>Username</b></td>
+<td align="left">The username (if authentication is needed) to be used to access the repository.</td></tr>
+<tr class="a">
+<td align="left"><b>Password</b></td>
+<td align="left">The password (if authentication is needed) to be used to access the repository.</td></tr>
+<tr class="b">
+<td align="left"><b>Download Timeout</b></td>
+<td align="left">The time in seconds after which a download from the remote repository is stopped.</td></tr>
+<tr class="a">
+<td align="left"><b>Type</b></td>
+<td align="left">The layout (maven 2 or maven 1) of the remote repository.</td></tr>
+<tr class="b">
+<td align="left"><b>Download Remote Index</b></td>
+<td align="left">To activate downloading remote index to add available remote artifacts in search queries.</td></tr>
+<tr class="a">
+<td align="left"><b>Remote Index Url</b></td>
+<td align="left">Can be relative to Url - path of the remote index directory.</td></tr>
+<tr class="b">
+<td align="left"><b>Cron expression</b></td>
+<td align="left">Cron expression for downloading remote index (default weekly on sunday)</td></tr>
+<tr class="a">
+<td align="left"><b>Index Directory</b></td>
+<td align="left">Path to store index directory, default will be ${appserver.base}/data/remotes/${repositoryId}/.indexer</td></tr>
+<tr class="b">
+<td align="left"><b>Download Remote Index Timeout</b></td>
+<td align="left">Time in seconds, after which download of remote index files will be stopped (default 300).</td></tr>
+<tr class="a">
+<td align="left"><b>Proxy for Remote Download Index</b></td>
+<td align="left">Proxy to use for downloading remote index files.</td></tr>
+<tr class="b">
+<td align="left"><b>Download Remote Index on Startup</b></td>
+<td align="left">If selected, the remote index will be downloaded on Archiva startup.</td></tr>
+<tr class="a">
+<td align="left"><b>Description</b></td>
+<td align="left">Can be used to store additional information about the repository.</td></tr>
+<tr class="b">
+<td align="left"><b>Connection Check Path</b></td>
+<td align="left">If set, the connection to the remote repository is checked by validating the existence of the given file / artifact. Some repositories do not allow to browse the base directory and the standard check may fail. The path is relative to the repository Url.</td></tr>
+<tr class="a">
+<td align="left"><b>Additionnal Url Parameters</b></td>
+<td align="left">Key/Value pairs to add to url when querying remote repository.</td></tr>
+<tr class="b">
+<td align="left"><b>Additionnal Http Headers</b></td>
+<td align="left">Key/Value pairs to add as http headers when querying remote repository.</td></tr></table><img src="../images/remote-repositories.png" alt="Remote Repositories" />
+<p>You can also trigger an immediate download of remote index files.</p>
+<div class="section">
+<h4><a name="Maven_Index_from_Remote_repositories"></a>Maven Index from Remote repositories</h4>
+<p><b>Since 1.4-M4</b>: If you have configured download remote index, those files (Maven Indexer project format) will be available in the path http://[URL TO ARCHIVA]/repository/id/.index (you can consume those files for IDE)</p></div></div>
+<div class="section">
+<h3><a name="Scanning_a_Repository"></a>Scanning a Repository</h3>
+<p>Repository scan can be executed on schedule or it can be explicitly executed by clicking the 'Scan Repository Now' button in the repositories page. By default, Archiva only processes new artifacts in the repository with respect to the last run of the repository scanner. Meaning that if the artifact's last modified date is newer than the last repository scan, then the artifact will be processed. Otherwise, it will be skipped. You can override this behavior and force Archiva to process all artifacts regardless of its age by ticking the 'Process All Artifacts' checkbox in the repositories page and clicking the 'Scan Repository Now' button.</p><img src="../images/repositories.png" alt="Repositories" />
+<p>For every artifact found by the repository scanner, processing is done on this artifact by different consumers. Examples of the processing done are: indexing, repository purge and database update. Details about consumers are available in the <a href="./consumers.html"> Consumers</a> page.</p></div>
+<div class="section">
+<h3><a name="Repository_Purge"></a>Repository Purge</h3>
+<p>Repository purge is the process of cleaning up the repository of old snapshots. When deploying a snapshot to a repository, Maven deploys the project/artifact with a timestamped version. Doing daily/nightly builds of the project then tends to bloat the repository. What if the artifact is large? Then disk space will definitely be a problem. That's where Archiva's repository purge feature comes in. Given a criteria to use -- by the number of days old and by retention count, it would clean up the repository by removing old snapshots.</p>
+<p>Please take note that the by number of days old criteria is activated by default (set to 100 days). In order to de-activate it and use the by retention count criteria, you must set the Repository Purge By Days Older field to 0. Another thing to note here is that if the by number of days old criteria is activated, the retention count would still be respected (See the Repository Purge By Days Older section below for more details) but not the other way around.</p>
+<p>Let's take a look at different behaviours for repository purge using the following scenario:</p>
+<div class="source">
+<pre>Artifacts in the repository:
+
+../artifact-x/2.0-SNAPSHOT/artifact-x-20061118.060401-2.jar
+../artifact-x/2.0-SNAPSHOT/artifact-x-20061118.060401-2.pom
+../artifact-x/2.0-SNAPSHOT/artifact-x-20070113.034619-3.jar
+../artifact-x/2.0-SNAPSHOT/artifact-x-20070113.034619-3.pom
+../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.jar
+../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.pom</pre></div>
+<ol style="list-style-type: decimal">
+<li>Repository Purge By Number of Days Older
+<p>Using this criteria for the purge, Archiva will check how old an artifact is and if it is older than the set value in the repository purge by days older field, then the artifact will be deleted respecting the retention count of course.</p>
+<p>If repository purge by days older is set to 100 days (with repository purge by retention count field set to 1), and the current date is let's say 03-01-2007, given the scenario above.. the following artifacts will be retained: artifact-x-20070113.034619-3.jar, artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. It is clear in the version timestamps that these 4 artifacts are not more than 100 days old from the current date (which is 03-01-2007 in our example) so they are all retained. In this case the retention count doesn't have any effect since the priority is the age of the artifact.</p>
+<p>Now, if the repository purge by days older is set to 30 days (with repository purge by retention count field still set to 1) and the current date is still 03-01-2007, then given the same scenario above.. only the following artifacts will be retained: artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. In this case, we can see that the retained artifacts are still not older by the number of days set in the repository purge by days older field and the retention count is still met.</p>
+<p>Now, let's set the repository purge by days older to 10 days (with repository purge by retention count field still set to 1) and the current date is still 03-01-2007, then still given the same repository contents above.. the following artifacts will still be retained: artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. It is clear from the version timestamps that the artifacts ARE MORE THAN the repository purge by days older value, which is 10 days. Why is it still retained? Recall the value of the repository purge by retention count -- 1 :) This ensures that there is ALWAYS 1 artifact timestamped version retained for every unique version snapshot directory of an artifact.</p></li>
+<li>Repository Purge By Retention Count
+<p>If the repository purge by retention count field is set to 2, then only the artifacts artifact-x-20070113.034619-3.jar, artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom will be retained in the repository. The oldest snapshots will be deleted maintaining only a number of snapshots equivalent to the set retention count (regardless of how old or new the artifact is).</p></li></ol>
+<div class="section">
+<h4><a name="Deleting_Released_Snapshots"></a>Deleting Released Snapshots</h4>
+<p>You can also configure Archiva to clean up snapshot artifacts that have already been released. This can be done by ticking the Delete Released Snapshots checkbox in the Repository Configuration form.</p>
+<p>Once this feature is enabled, if Archiva encounters a snapshot artifact during repository scanning, it would check <b>all</b> the repositories configured for a released version of that snapshot. If it finds one, then it would delete the entire snapshot version directory.</p>
+<p>It should be noted that this feature is entirely separate from the repository purge by number of days older and by retention count.</p></div></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/roles.html b/docs/2.2.8/adminguide/roles.html
new file mode 100644
index 0000000..d1c2ced
--- /dev/null
+++ b/docs/2.2.8/adminguide/roles.html
@@ -0,0 +1,421 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Understanding Apache Archiva Security Roles</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Understanding Apache Archiva Security Roles</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                                
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-down"></i>
+        Security</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/users.html" title="Users">
+          <i class="none"></i>
+        Users</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Roles</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/customising-security.html" title="Customising">
+          <i class="none"></i>
+        Customising</a>
+            </li>
+              </ul>
+        </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Understanding_Apache_Archiva_Security_Roles"></a>Understanding Apache Archiva Security Roles</h2>
+<p>Archiva uses the <a class="externalLink" href="http://archiva.apache.org/redback/"> Redback</a> security framework for managing repository security. When the server is first started, you will be prompted to create an administration user. This user will be given permission to administer all aspects of the system (as well as access to all of the repositories). This user can then be used to grant permissions to other users.</p>
+<p>A guest user is also created by default, and given read access to the default repositories (<tt>internal</tt> and <tt>snapshots</tt>). Repositories with guest user access can be accessed without the use of a username and password (or without being logged in to the web interface).</p>
+<p>However, when new repositories are created, by default no permissions are assigned and only the administrators will have access until it is explicitly granted.</p>
+<p>Note that Redback has the concept of inferred roles, so the assignment of some roles will imply other roles (which will be displayed in the web interface).</p>
+<div class="section">
+<h3><a name="Repository_Roles"></a>Repository Roles</h3>
+<p>Archiva contains the following roles for repository access:</p>
+<ul>
+<li><i>Repository Observer</i>: users with this role can read from the given repository that the role is for (including access through the browse and search features of the web interface)</li>
+<li><i>Repository Manager</i>: users with this role can write to and administer the given repository that the role is for</li>
+<li><i>Global Repository Observer</i>: users with this role can read from any repository (including access through the browse and search features of the web interface)</li>
+<li><i>Global Repository Manager</i>: users with this role can write to and administer any repository in the instance</li></ul>
+<div class="section">
+<h4><a name="Roles_list"></a>Roles list</h4><img src="../images/roles-list.png" alt="" /></div>
+<div class="section">
+<h4><a name="Role_details"></a>Role details</h4><img src="../images/role-detail.png" alt="" /></div>
+<div class="section">
+<h4><a name="Attach_users_to_a_role"></a>Attach users to a role</h4><img src="../images/role-users.png" alt="" /></div></div>
+<div class="section">
+<h3><a name="General_Roles"></a>General Roles</h3>
+<p>Archiva also contains the following general roles for security of the instance:</p>
+<ul>
+<li><i>System Administrator</i>: full access to all functionality in the system</li>
+<li><i>User Administrator</i>: ability to create, edit, and grant roles to other users in the system</li></ul>
+<p>The guest and registered user roles do not affect repository access.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/security-logs.html b/docs/2.2.8/adminguide/security-logs.html
new file mode 100644
index 0000000..e2d9bf7
--- /dev/null
+++ b/docs/2.2.8/adminguide/security-logs.html
@@ -0,0 +1,414 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Creation-yyyymmdd" content="20090722" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Security Logs</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Security Logs</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                                
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-down"></i>
+        Log Files</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/archiva-logs.html" title="Archiva Logs">
+          <i class="none"></i>
+        Archiva Logs</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/audit-logs.html" title="Audit Logs">
+          <i class="none"></i>
+        Audit Logs</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Security Logs</a>
+          </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Security_Logs"></a>Security Logs</h2>
+<p>Archiva's <tt>logs</tt> directory contains a security log file named <tt>archiva-security-audit.log</tt>, which keeps track of all the security operations such as user creation/deletion, user role assignments, and user log in/out.</p>
+<p>A typical record looks like this:</p>
+<div>
+<pre>2009-07-22 12:03:11 -  - Successful Login for user admin
+2009-07-22 12:05:03 - admin - User Created: archiva
+2009-07-22 12:05:25 - admin - Role Assigned to user archiva: Global Repository Manager
+2009-07-22 12:05:33 - admin - User Modified: archiva</pre></div>
+<p>The hyphen delimited records are:</p>
+<ul>
+<li>date and time (server local time)</li>
+<li>current user performing the operation</li>
+<li>the operation performed</li></ul>
+<p>Currently, the following events are logged:</p>
+<ul>
+<li>user creation/modification/deletion</li>
+<li>user log in/out</li>
+<li>assigning roles to a user</li></ul></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/security.html b/docs/2.2.8/adminguide/security.html
new file mode 100644
index 0000000..e035041
--- /dev/null
+++ b/docs/2.2.8/adminguide/security.html
@@ -0,0 +1,401 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Understanding Apache Archiva Security</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Understanding Apache Archiva Security</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                          
+      <li class="active">
+  
+            <a href="#"><i class="icon-chevron-down"></i>Security</a>
+                  <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/users.html" title="Users">
+          <i class="none"></i>
+        Users</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/roles.html" title="Roles">
+          <i class="none"></i>
+        Roles</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/customising-security.html" title="Customising">
+          <i class="none"></i>
+        Customising</a>
+            </li>
+              </ul>
+        </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Understanding_Apache_Archiva_Security"></a>Understanding Apache Archiva Security</h2>
+<p>Archiva's security is managed by <a class="externalLink" href="http://archiva.apache.org/redback/"> Redback</a>. The following document describes how to configure your repository security:</p>
+<ul>
+<li><a href="./users.html"> Users in Archiva</a></li>
+<li><a href="./roles.html"> Roles in Archiva</a></li>
+<li><a href="./customising-security.html"> Customising Security</a></li></ul><!-- TODO: LDAP --></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/staging-repositories.html b/docs/2.2.8/adminguide/staging-repositories.html
new file mode 100644
index 0000000..36062a4
--- /dev/null
+++ b/docs/2.2.8/adminguide/staging-repositories.html
@@ -0,0 +1,484 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Staging Repositories</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Staging Repositories</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Staging Repositories</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Staging_Repositories"></a>Staging Repositories</h2>
+<p>Starting with Archiva 1.4, staging repositories are supported. A staging repository is a repository you use to stage a release (while it undergoes testing and voting), before the release is officially announced and published to a releases repository where users can obtain it.</p>
+<p>With the support of staging repositories comes the ability to merge repositories from the web UI. By merging, we mean promoting the artifacts in the staging repository to the managed repository. In the current implementation, a user with the System Administrator role can create and attach a staging repository to an existing managed repository. An attached staging repository is a shadow of its managed repository, meaning they have the same configuration.</p>
+<p>We append <b>-stage</b> to the managed repository's ID to identify its staging repository. For example, repository <tt>test</tt> would have a staging repository called <tt>test-stage</tt>.</p>
+<p>If you're creating a new managed repository, just tick the <tt>Create stage repository</tt> check box. Otherwise, if you already have an existing managed repository and you want to create a staging repository, just edit the managed repository's configuration and tick the <tt>Create stage repository</tt> checkbox, then save the configuration. A staging repository directory will be created beside (as a sibling of) the managed repository directory, again with -stage appended to the name.</p>
+<p><tt>Note:</tt> By un-ticking the <tt>Create stage repository</tt> checkbox, the user can delete the attached staging repository. If the managed repository is deleted, then its attached staging repository is also deleted.</p>
+<p>The default <tt>snapshots</tt> and <tt>internal</tt> repositories do not have staging repositories configured by default, however they can be added by editing the repository configuration.</p>
+<div class="section">
+<h3><a name="Populating_the_Staging_Repository"></a>Populating the Staging Repository</h3>
+<p>The staging repository can be populated in the same way as a normal managed repository. You can configure your Maven build's <tt>distributionManagement</tt> section to deploy to the repository, or use Archiva's web-based upload feature.</p></div>
+<div class="section">
+<h3><a name="Merging_Repositories"></a>Merging Repositories</h3>
+<p>To merge or promote the artifacts in a staging repository to the managed repository, just click the <tt>Merge this repository</tt> button in the repositories configuration page.</p><img src="../images/repository-merge.png" alt="Merge Button" />
+<p>You will be able to select which target repository to use for merging</p><img src="../images/repository-merge-select-target.png" alt="" />
+<p>Archiva will check for conflicting artifacts between the two repositories, and list them (if it finds conflicts). The user will be asked to choose between two actions:</p>
+<ol style="list-style-type: decimal">
+<li><tt>Merge All</tt> - ignore all conflicting artifacts and perform merging for all.</li>
+<li><tt>Merge With Skip</tt> - skip all conflicting artifacts and merge only the non-conflicting ones.</li></ol><img src="../images/conflicting-artifacts.png" alt="Merge Actions" />
+<p>In future, we plan to enhance this by allowing a user to select only specific artifacts to merge.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/standalone.html b/docs/2.2.8/adminguide/standalone.html
new file mode 100644
index 0000000..5260acf
--- /dev/null
+++ b/docs/2.2.8/adminguide/standalone.html
@@ -0,0 +1,569 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20130103" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Installing Standalone Distribution of Apache Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Installing Standalone Distribution of Apache Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                              
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-down"></i>
+        Installing Archiva</a>
+                    <ul class="nav nav-list">
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Installing Standalone</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/webapp.html" title="Installing as a WAR">
+          <i class="none"></i>
+        Installing as a WAR</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/upgrade.html" title="Upgrading to a New Version">
+          <i class="none"></i>
+        Upgrading to a New Version</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Installing_Standalone_Distribution_of_Apache_Archiva"></a>Installing Standalone Distribution of Apache Archiva</h2>
+<p>Installing the standalone distribution of Archiva is quite simple - for an example, see the <a href="../quick-start.html"> Quick Start</a> guide.</p>
+<p>However, the best way to use this installation technique is to separate the configuration from the installation to make it easy to upgrade to newer versions in the future.</p>
+<div class="section">
+<h3><a name="Running_Archiva"></a>Running Archiva</h3>
+<p>Archiva can be run by executing:</p>
+<ul>
+<li><tt>bin/archiva</tt>, or <tt>bin\archiva.bat</tt> for Windows (select the one for your environment). The argument can be <tt>console</tt> to run interactively, or <tt>start</tt> to run in the background (in this case, run the script with <tt>stop</tt> to later stop the server). The logs are available in the <tt>logs</tt> directory where Archiva is installed.</li></ul>
+<p>There is an issue with regard to the version of <tt>tr</tt> installed/used by default on Solaris so you might encounter a series of <tt>Bad String</tt> errors when you run the Archiva binaries in Solaris. You need to use a different version of <tt>tr</tt> in order to get it to work. See <a class="externalLink" href="http://jira.codehaus.org/browse/MRM-1467"> MRM-1467</a> for more details.</p>
+<p><b>NOTE</b>: since 1.4-M3 Archiva is now available on / (ROOT) context.</p>
+<p>If you want to use an other context path, you must edit the file in contexts/archiva.xml</p>
+<div class="source">
+<pre>&lt;Configure class=&quot;org.eclipse.jetty.webapp.WebAppContext&quot;&gt;
+
+  &lt;!-- contextPath used --&gt;
+  &lt;Set name=&quot;contextPath&quot;&gt;/&lt;/Set&gt;
+  &lt;Set name=&quot;war&quot;&gt;&lt;SystemProperty name=&quot;jetty.home&quot; default=&quot;.&quot;/&gt;/apps/archiva&lt;/Set&gt;
+
+  &lt;Set name=&quot;extractWAR&quot;&gt;false&lt;/Set&gt;
+  &lt;Set name=&quot;copyWebDir&quot;&gt;false&lt;/Set&gt;
+
+&lt;/Configure&gt;</pre></div></div>
+<div class="section">
+<h3><a name="Installing_as_a_Service_on_Linux"></a>Installing as a Service on Linux</h3>
+<p>On Linux, the <tt>bin/archiva</tt> script is suitable for linking or copying to <tt>/etc/init.d/archiva</tt> and running as <tt>root</tt>, as long as the <tt>RUN_AS_USER</tt> environment variable is set within the script. This will allow you to start and stop the service with:</p>
+<div class="source">
+<pre>$ service archiva start
+$ service archiva stop</pre></div>
+<div class="section">
+<h4><a name="Starting_on_boot_for_RedHat-based_systems"></a>Starting on boot for RedHat-based systems</h4>
+<p>The startup script is enabled to <tt>chkconfig</tt>. Run the following as <tt>root</tt>:</p>
+<div class="source">
+<pre>$ chkconfig --add archiva
+$ chkconfig archiva on</pre></div></div>
+<div class="section">
+<h4><a name="Starting_on_boot_for_DebianUbuntu-based_systems"></a>Starting on boot for Debian/Ubuntu-based systems</h4>
+<p>Debian-based systems come with a script to create appropriate <tt>rc.d</tt> links for a startup script:</p>
+<div class="source">
+<pre>$ update-rc.d archiva defaults 80</pre></div></div></div>
+<div class="section">
+<h3><a name="Installing_as_a_Service_on_Windows"></a>Installing as a Service on Windows</h3>
+<p>On Windows, to use the <tt>start</tt> and <tt>stop</tt> commands you must first install it as a service. This is done by running:</p>
+<div>
+<pre>.\bin\archiva.bat install</pre></div>
+<p>You can then use the <tt>start</tt> and <tt>stop</tt> commands as well as the traditional Windows service management console to manage the Archiva service.</p>
+<p>This procedure installs the service to run as the local system user. You must ensure that it has access to read the installation, and to write to the logs and data directories.</p>
+<p>Note on last Windows version, you need to configure correctly path to your java executable. In wrapper.conf file:</p>
+<div>
+<pre>wrapper.java.command=fullpath to your java executable</pre></div>
+<p>You can later remove the service with:</p>
+<div>
+<pre>.\bin\archiva.bat remove</pre></div></div>
+<div class="section">
+<h3><a name="Installing_as_a_Service_on_Mac_OS_X"></a>Installing as a Service on Mac OS X</h3>
+<p>On OS X, you can use <tt>launchd</tt> to run a service. Create the following as root in <tt>/Library/LaunchDaemons/org.apache.archiva.plist</tt>:</p>
+<div class="source">
+<pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot;
+&quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
+&lt;plist version=&quot;1.0&quot;&gt;
+&lt;dict&gt;
+    &lt;key&gt;Label&lt;/key&gt;
+    &lt;string&gt;org.apache.archiva&lt;/string&gt;
+    &lt;key&gt;ProgramArguments&lt;/key&gt;
+    &lt;array&gt;
+        &lt;string&gt;/Applications/Archiva/apache-archiva-2.2.8/bin/archiva&lt;/string&gt;
+        &lt;string&gt;console&lt;/string&gt;
+    &lt;/array&gt;
+    &lt;key&gt;Disabled&lt;/key&gt;
+    &lt;false/&gt;
+    &lt;key&gt;RunAtLoad&lt;/key&gt;
+    &lt;true/&gt;
+    &lt;key&gt;UserName&lt;/key&gt;
+    &lt;string&gt;archiva&lt;/string&gt;
+    &lt;key&gt;StandardOutPath&lt;/key&gt;
+    &lt;string&gt;/Applications/Archiva/apache-archiva-2.2.8/logs/launchd.log&lt;/string&gt;
+    &lt;!-- Optional - store data separate from installation (see below) --&gt;
+    &lt;key&gt;EnvironmentVariables&lt;/key&gt;
+    &lt;dict&gt;
+      &lt;key&gt;ARCHIVA_BASE&lt;/key&gt;
+      &lt;string&gt;/Users/archiva/Library/Archiva&lt;/string&gt;
+    &lt;/dict&gt;
+    &lt;!-- Optional: force it to keep running
+    &lt;key&gt;KeepAlive&lt;/key&gt;
+    &lt;true/&gt;
+    --&gt;
+&lt;/dict&gt;
+&lt;/plist&gt;</pre></div>
+<p>To install the service, run the following:</p>
+<div class="source">
+<pre>$ sudo chown root:wheel /Library/LaunchDaemons/org.apache.archiva.plist
+$ sudo launchctl load -w /Library/LaunchDaemons/org.apache.archiva.plist</pre></div>
+<p>Start and stop the service with:</p>
+<div class="source">
+<pre>$ sudo launchctl start org.apache.archiva.plist
+$ sudo launchctl stop org.apache.archiva.plist</pre></div>
+<p>To uninstall the service:</p>
+<div class="source">
+<pre>$ sudo launchctl unload -w /Library/LaunchDaemons/org.apache.archiva.plist</pre></div></div>
+<div class="section">
+<h3><a name="Separating_the_base_from_the_installation"></a>Separating the base from the installation</h3>
+<p>The standalone installation of Archiva is capable of separating its configuration from installation in much the same way Tomcat does.</p>
+<p>This is achieved by the following steps:</p>
+<ol style="list-style-type: decimal">
+<li>Create the base location. For example, you might install Archiva in <tt>/opt/archiva-2.0</tt> and the data in <tt>/var/archiva</tt>. Create the directories <tt>/var/archiva/logs</tt>, <tt>/var/archiva/data</tt>, <tt>/var/archiva/temp</tt> and <tt>/var/archiva/conf</tt>.</li>
+<li><b>Copy</b> (<i>move will fail</i>) the configuration files from the Archiva installation (e.g. <tt>/opt/archiva-2.0/conf</tt> to the new location (e.g. <tt>/var/archiva/conf</tt>). If you've previously run Archiva, you may need to edit <tt>conf/archiva.xml</tt> to change the location of the repositories.</li>
+<li>(Optionally, leave a README file in the old conf location as a reminder of where you moved the config files.)</li>
+<li>Set the environment variable <tt>ARCHIVA_BASE</tt> to the new location (e.g. <tt>/var/archiva</tt>). In bash, be sure to export the variable.</li>
+<li>Start Archiva standalone as described above from the installation location</li></ol></div>
+<div class="section">
+<h3><a name="Configuring_Archiva"></a>Configuring Archiva</h3>
+<p>Archiva's configuration is loaded from the following files, in order of precedence:</p>
+<ul>
+<li><tt>~/.m2/archiva.xml</tt></li>
+<li><tt>$ARCHIVA_BASE/conf/archiva.xml</tt></li>
+<li><tt>conf/archiva.xml</tt> in the Archiva installation</li></ul>
+<p>When Archiva saves its configuration, all configuration is stored in a single file. The file chosen is by the following rules:</p>
+<ul>
+<li>If <tt>~/.m2/archiva.xml</tt> exists, it is saved there</li>
+<li>Otherwise, if <tt>$ARCHIVA_BASE/conf/archiva.xml</tt> exists, it is saved there</li>
+<li>If neither apply, it is saved to <tt>~/.m2/archiva.xml</tt>.</li></ul>
+<p>The configuration will never be saved in the Archiva installation directory if you are using a separate base directory.</p>
+<p>Note that the configuration can be edited, but only when Archiva is not running as it will not reload a changed configuration file, and will save over it if something is changed in the web interface.</p></div>
+<div class="section">
+<h3><a name="Database"></a>Database</h3>
+<p>By default, Archiva uses embedded <a class="externalLink" href="http://db.apache.org/derby">Apache Derby</a> to store the user information. It can be configured to use an external database by providing a JDBC driver and editing the <tt>jetty.xml</tt> file.</p>
+<ol style="list-style-type: decimal">
+<li>Place the jar containing the JDBC driver in the <tt>lib</tt> directory of the Archiva installation.</li>
+<li>Edit <tt>conf/wrapper.conf</tt> to add it in the jetty classpath
+<div class="source">
+<pre> Find lines with:
+ wrapper.java.classpath.x=%REPO_DIR%/tomcat-juli-7.0.34.jar
+
+ Add one
+
+ wrapper.java.classpath.x+1=%REPO_DIR%/yourjdbcdriver.jar
+</pre></div></li>
+<li>Edit <tt>conf/jetty.xml</tt>, providing the JDBC driver class name, database url, username, and password.</li></ol>
+<p>The example below uses Mysql for the database server. You can take a look at <a class="externalLink" href="http://cwiki.apache.org/confluence/display/ARCHIVA/Archiva+with+MySQL">Archiva with MySQL</a> for more details.</p>
+<div class="source">
+<pre>  &lt;!-- omitted xml --&gt;
+
+  &lt;!-- Users / Security Database --&gt;
+
+  &lt;New id=&quot;users&quot; class=&quot;org.eclipse.jetty.plus.jndi.Resource&quot;&gt;
+    &lt;Arg&gt;jdbc/users&lt;/Arg&gt;
+    &lt;Arg&gt;
+      &lt;New class=&quot;org.apache.tomcat.jdbc.pool.DataSource&quot;&gt;
+        &lt;Set name=&quot;driverClassName&quot;&gt;com.mysql.jdbc.Driver&lt;/Set&gt;
+        &lt;Set name=&quot;url&quot;&gt;jdbc:mysql://localhost/archiva&lt;/Set&gt;
+        &lt;Set name=&quot;username&quot;&gt;&lt;/Set&gt;
+        &lt;Set name=&quot;password&quot;&gt;&lt;/Set&gt;
+        &lt;Set name=&quot;initialSize&quot;&gt;15&lt;/Set&gt;
+        &lt;!-- depends on your concurrent users numbers --&gt;
+        &lt;Set name=&quot;maxActive&quot;&gt;30&lt;/Set&gt;
+        &lt;Set name=&quot;maxWait&quot;&gt;10000&lt;/Set&gt;
+        &lt;Set name=&quot;removeAbandoned&quot;&gt;true&lt;/Set&gt;
+        &lt;Set name=&quot;logAbandoned&quot;&gt;true&lt;/Set&gt;
+        &lt;Set name=&quot;removeAbandonedTimeout&quot;&gt;10000&lt;/Set&gt;
+        &lt;Set name=&quot;testOnBorrow&quot;&gt;true&lt;/Set&gt;
+        &lt;!-- very rigourous sql query validation --&gt;
+        &lt;Set name=&quot;validationQuery&quot;&gt;select 1&lt;/Set&gt;
+      &lt;/New&gt;
+    &lt;/Arg&gt;
+  &lt;/New&gt;
+  &lt;!-- omitted xml --&gt;</pre></div>
+<p>More information about using Derby Network Server as an external user database for Archiva can be found on the wiki: <a class="externalLink" href="http://cwiki.apache.org/confluence/display/ARCHIVA/Archiva+User+DB+on+Derby+Network+Server"> Archiva User DB on Derby Network Server</a></p></div>
+<div class="section">
+<h3><a name="Installing_with_Puppet"></a>Installing with Puppet</h3>
+<p>If you use Puppet to manage your infrastructure, you can use a third-party Puppet module to install Archiva. This will take care of adding the required users, databases and configuration based on official release tarballs.</p>
+<ul>
+<li><a class="externalLink" href="https://forge.puppetlabs.com/maestrodev/archiva"> Puppet module for Apache Archiva</a></li></ul></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/system-status.html b/docs/2.2.8/adminguide/system-status.html
new file mode 100644
index 0000000..5f607b3
--- /dev/null
+++ b/docs/2.2.8/adminguide/system-status.html
@@ -0,0 +1,382 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20121222" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; System Status</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">System Status</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>System Status</a>
+          </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="System_Status"></a>System Status</h2>
+<p>This page allows you to view runtime informations on the system</p>
+<div class="section">
+<h3><a name="Scanning_Informations"></a>Scanning Informations</h3>
+<p>Various informations on tasks queues.</p><img src="../images/system-status-scanning.png" alt="" /></div>
+<div class="section">
+<h3><a name="Caches_Informations"></a>Caches Informations</h3>
+<p>Display caches size with flushing caches capabilities.</p><img src="../images/system-status-caches.png" alt="" /></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/ui-configuration.html b/docs/2.2.8/adminguide/ui-configuration.html
new file mode 100644
index 0000000..54f2a8e
--- /dev/null
+++ b/docs/2.2.8/adminguide/ui-configuration.html
@@ -0,0 +1,469 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; UI configuration</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">UI configuration</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>UI Configuration</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/url-cache-failure-configuration.html" title="Url Failure Cache Configuration">
+          <i class="none"></i>
+        Url Failure Cache Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Configuring_your_UI"></a>Configuring your UI</h2>
+<p>By default when returning links (registration, artifacts download etc), localhost with current running port.</p>
+<p>So if you are running Archiva behind an http server with a host that can be confusing for users.</p>
+<p>The other option allows you to disable the register link.</p><img src="../images/ui-configuration.png" alt="" /></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/upgrade.html b/docs/2.2.8/adminguide/upgrade.html
new file mode 100644
index 0000000..d0afdb4
--- /dev/null
+++ b/docs/2.2.8/adminguide/upgrade.html
@@ -0,0 +1,420 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Upgrading Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Upgrading Archiva</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                              
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-down"></i>
+        Installing Archiva</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/standalone.html" title="Installing Standalone">
+          <i class="none"></i>
+        Installing Standalone</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/webapp.html" title="Installing as a WAR">
+          <i class="none"></i>
+        Installing as a WAR</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Upgrading to a New Version</a>
+          </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Upgrading_Archiva"></a>Upgrading Archiva</h2>
+<p>Upgrading Archiva is straightforward, particularly if the directions for separating the base from the installation are followed. You need to retain the following directories:</p>
+<ul>
+<li><tt>conf</tt> - the configuration files can be reused across different versions. Note that when the standalone version is used, <tt>wrapper.conf</tt> and <tt>jetty.xml</tt> may need to be replaced after upgrade and changes reapplied. See specific notes in the version details below.</li>
+<li><tt>data</tt> - all Archiva data. More specifically:
+<ul>
+<li><tt>data/repositories</tt> is portable across versions (both forwards and backwards).</li>
+<li><tt>data/databases/users</tt> must always be retained as it contains the permissions and user information across versions, even if LDAP is being used for authentication.</li>
+<li><tt>data/databases/archiva</tt> exists for Archiva 1.3.x and below. This can be retained through upgrades, but can also be regenerated at any time. This no longer exists in Archiva 1.4+.</li></ul></li></ul>
+<p>The following describes instructions specific to upgrading between different versions.</p>
+<div class="section">
+<h3><a name="Upgrading_Archiva_to_1.4"></a>Upgrading Archiva to 1.4+</h3>
+<div class="section">
+<h4><a name="Metadata_Repository"></a>Metadata Repository</h4><!-- TODO: metadata repository description --></div>
+<div class="section">
+<h4><a name="Java_Package_Changes_and_Library_Changes"></a>Java Package Changes and Library Changes</h4>
+<p>All Java packages have changed from <tt>org.apache.maven.archiva</tt> to <tt>org.apache.archiva</tt> and have undergone significant changes. If you have written custom consumers, are using the XML-RPC client, or interfacing with other Java libraries the code will need to be adjusted.</p></div>
+<div class="section">
+<h4><a name="Configuration_References"></a>Configuration References</h4>
+<p>If you had used the undocumented ability to modify <tt>application.xml</tt> to alter the configuration search path, note that in Archiva 1.4+ you must use the <tt>org.apache.archiva</tt> configuration search path instead of <tt>org.apache.maven.archiva</tt>.</p></div>
+<div class="section">
+<h4><a name="Updated_Jetty_configuration"></a>Updated Jetty configuration</h4>
+<p>If you are using the Jetty standalone configuration with a custom <tt>jetty.xml</tt>, note that it has been upgraded to Jetty 8 as of Archiva 1.4-M2. You will need to recreate your customisations using the <tt>jetty.xml</tt> shipped with Archiva.</p>
+<p>In addition, you now need to ensure that a <tt>temp</tt> directory is created inside the Archiva application base directory (alongside <tt>conf</tt>, <tt>data</tt> and <tt>logs</tt>).</p>
+<p>The default webapp context is now / (see <a href="./standalone.html"> Standalone Distribution</a>)</p></div></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/url-cache-failure-configuration.html b/docs/2.2.8/adminguide/url-cache-failure-configuration.html
new file mode 100644
index 0000000..688b7dc
--- /dev/null
+++ b/docs/2.2.8/adminguide/url-cache-failure-configuration.html
@@ -0,0 +1,469 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20121230" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Url Failure Cache Configuration</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Url Failure Cache Configuration</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-down"></i>
+        Archiva Configuration</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/repositories.html" title="Repositories">
+          <i class="none"></i>
+        Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connectors.html" title="Proxy Connectors">
+          <i class="none"></i>
+        Proxy Connectors</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/proxy-connector-rules.html" title="Proxy Connectors Rules">
+          <i class="none"></i>
+        Proxy Connectors Rules</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-proxies.html" title="Network Proxies">
+          <i class="none"></i>
+        Network Proxies</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/network-configuration.html" title="Network Configuration">
+          <i class="none"></i>
+        Network Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/legacy.html" title="Legacy (Maven 1) Support">
+          <i class="none"></i>
+        Legacy (Maven 1) Support</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/consumers.html" title="Consumers">
+          <i class="none"></i>
+        Consumers</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/staging-repositories.html" title="Staging Repositories">
+          <i class="none"></i>
+        Staging Repositories</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/appearance-configuration.html" title="Appearance Configuration">
+          <i class="none"></i>
+        Appearance Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/ui-configuration.html" title="UI Configuration">
+          <i class="none"></i>
+        UI Configuration</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/file-locking-configuration.html" title="File Locking Configuration">
+          <i class="none"></i>
+        File Locking Configuration</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Url Failure Cache Configuration</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/redback-runtime-configuration.html" title="Redback Runtime Configuration">
+          <i class="none"></i>
+        Redback Runtime Configuration</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Url_Failure_Cache_Configuration"></a>Url Failure Cache Configuration</h2>
+<p>Archiva cache failure when trying to hit url of remote repositories. Those cache values are configurable</p><img src="../images/url-failure-cache-configuration.png" alt="Url Failure Cache Configuration" /></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/users.html b/docs/2.2.8/adminguide/users.html
new file mode 100644
index 0000000..2eb58e8
--- /dev/null
+++ b/docs/2.2.8/adminguide/users.html
@@ -0,0 +1,419 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Manage Archiva Users</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Manage Archiva Users</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                                
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-down"></i>
+        Security</a>
+                    <ul class="nav nav-list">
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Users</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/roles.html" title="Roles">
+          <i class="none"></i>
+        Roles</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/customising-security.html" title="Customising">
+          <i class="none"></i>
+        Customising</a>
+            </li>
+              </ul>
+        </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Manage_Archiva_Users"></a>Manage Archiva Users</h2>
+<p>Archiva uses the <a class="externalLink" href="http://archiva.apache.org/redback/"> Redback</a> security framework for managing repository security. When the server is first started, you will be prompted to create an administration user. This user will be given permission to administer all aspects of the system (as well as access to all of the repositories). This user can then be used to grant permissions to other users.</p>
+<p>A guest user is also created by default, and given read access to the default repositories (<tt>internal</tt> and <tt>snapshots</tt>). Repositories with guest user access can be accessed without the use of a username and password (or without being logged in to the web interface).</p>
+<div class="section">
+<h3><a name="Manage_Users"></a>Manage Users</h3>
+<p>The ui provide a screen to manage your users. You can:</p>
+<ul>
+<li>Delete user</li>
+<li>Edit user</li>
+<li>Block user</li>
+<li>Force user to change password on next login</li></ul><img src="../images/users-list.png" alt="" /></div>
+<div class="section">
+<h3><a name="User_edition"></a>User edition</h3>
+<div class="section">
+<h4><a name="Screen_to_manage_a_user"></a>Screen to manage a user</h4><img src="../images/user-edit.png" alt="" /></div>
+<div class="section">
+<h4><a name="Screen_to_manage_user_roles"></a>Screen to manage user roles</h4><img src="../images/user-edit-roles.png" alt="" /></div></div>
+<div class="section">
+<h3><a name="User_registration"></a>User registration</h3>
+<p><b>NOTE:</b> you can disable user registration using <a href="./ui-configuration.html"> UI configuration</a></p>
+<div class="section">
+<h4><a name="User_can_registrer_using_the_ui"></a>User can registrer using the ui</h4><img src="../images/user-register.png" alt="" /></div>
+<div class="section">
+<h4><a name="Fill_in_the_registration_form"></a>Fill in the registration form</h4><img src="../images/user-register-form.png" alt="" /></div></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/webapp.html b/docs/2.2.8/adminguide/webapp.html
new file mode 100644
index 0000000..639799c
--- /dev/null
+++ b/docs/2.2.8/adminguide/webapp.html
@@ -0,0 +1,485 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20121220" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Installing Apache Archiva as a Web Application</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Installing Apache Archiva as a Web Application</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                              
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-down"></i>
+        Installing Archiva</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="../adminguide/standalone.html" title="Installing Standalone">
+          <i class="none"></i>
+        Installing Standalone</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Installing as a WAR</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="../adminguide/upgrade.html" title="Upgrading to a New Version">
+          <i class="none"></i>
+        Upgrading to a New Version</a>
+            </li>
+              </ul>
+        </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Installing_Apache_Archiva_as_a_Web_Application"></a>Installing Apache Archiva as a Web Application</h2>
+<p>Archiva can be deployed as a web application into any Java EE application server. This document will show an example of doing so with Apache Tomcat 5.5, 6.0.x and 7.0.x.</p>
+<p>You can find information about additional application servers on <a class="externalLink" href="https://cwiki.apache.org/confluence/display/ARCHIVA/HOWTO+run+Archiva+on+your+Application+Server+or+Database"> the archiva wiki</a>.</p>
+<p><b>Note</b>: When you first start Archiva, you will see an Exception that schema SA does not exist - however it doesn't cause a problem. If you use a username other than 'sa', such as 'archiva', then you seem to get the same error but Tomcat fails to start the context and you have to shutdown and restart again.</p></div>
+<div class="section">
+<h2><a name="To_deploy_Archiva_on_Apache_Tomcat_5.5_6.0_and_7.0.x"></a>To deploy Archiva on Apache Tomcat 5.5, 6.0 and 7.0.x</h2>
+<ul>
+<li>Create a directory in tomcat called archiva, at the same level as bin, conf, logs and the others.</li>
+<li>Copy the war file into the new directory</li>
+<li>Create a <tt>&lt;tomcat home&gt;/conf/Catalina/localhost/archiva.xml</tt> file with the following data (replace the database paths with a suitable location). When using Tomcat 6.0+, do not include the first line (XML encoding) in the <tt>archiva.xml</tt> configuration specified below to avoid parsing errors during startup: 
+<div class="source">
+<pre> &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+ &lt;Context path=&quot;/archiva&quot;
+          docBase=&quot;${catalina.home}/archiva/apache-archiva-1.1.war&quot;&gt;
+
+ &lt;Resource name=&quot;jdbc/users&quot; auth=&quot;Container&quot; type=&quot;javax.sql.DataSource&quot;
+           username=&quot;sa&quot;
+           password=&quot;&quot;
+           driverClassName=&quot;org.apache.derby.jdbc.EmbeddedDriver&quot;
+           url=&quot;jdbc:derby:/path/to/database/users;create=true&quot; /&gt;
+
+ &lt;Resource name=&quot;mail/Session&quot; auth=&quot;Container&quot;
+            type=&quot;javax.mail.Session&quot;
+            mail.smtp.host=&quot;localhost&quot;/&gt;
+ &lt;/Context&gt;</pre></div></li>
+<li>Install <tt>derby-10.1.3.1.jar</tt> (or later), <tt>activation-1.1.jar</tt> and <tt>mail-1.4.jar</tt> into the Tomcat 5.5 <tt>common/lib</tt> or Tomcat 6.0 <tt>lib</tt> directory. This is required since the data sources are instantiated before the web application.
+<p><b>Note</b>: Tomcat 5.5.20 and 5.5.23 are missing MailSessionFactory and a few other classes. JNDI mail sessions will <i>not</i> work. Use Tomcat 5.5.25 instead, or see <a class="externalLink" href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40668"> Bug 40668</a> for a workaround.</p></li>
+<li>The ${appserver.base} java property is used by the Archiva internal logging configuration to determine where to output its logs to. It is important to define this property either in the $CATALINA_OPTS system environment variable if Tomcat is being launched via the command line) or the service properties (if being launched as a service or daemon). The format typically expected is -Dappserver.base=<i>SOMEWHERE</i>. In this example, we'll put the logs in Tomcat's <tt>logs</tt> directory so we need to set appserver.base property to where Tomcat is installed:
+<div class="source">
+<pre>export CATALINA_OPTS=&quot;-Dappserver.home=$CATALINA_HOME -Dappserver.base=$CATALINA_HOME&quot; (for UNIX)
+
+OR
+
+set CATALINA_OPTS=&quot;-Dappserver.home=%CATALINA_HOME% -Dappserver.base=%CATALINA_HOME%&quot; (for Windows)</pre></div></li>
+<li>If setting the ${appserver.base} and ${appserver.home} using the previous step does not work, you can set it in the unpacked Archiva web application's <tt>WEB-INF/classes/application.properties</tt> as follows:
+<div class="source">
+<pre># for Windows:
+appserver.base=%CATALINA_HOME%
+appserver.base=%CATALINA_BASE%
+
+# or, for UNIX:
+appserver.base=$CATALINA_HOME
+appserver.home=$CATALINA_BASE</pre></div></li>
+<li>When running Tomcat as a <b>Windows</b> service, you need to edit <tt>regedit</tt> and then, in <tt>HKEY_LOCAL_MACHINE &gt; SOFTWARE &gt; Apache Software Foundation &gt; Procrun 2.0 &gt; TomcatX &gt; Parameters &gt; Java</tt>, modify the <tt>Options</tt> variable. Set the ${appserver.base} property by adding the following parameters at the end:
+<div class="source">
+<pre>-Dappserver.base=%CATALINA_HOME% -Dappserver.home=%CATALINA_HOME%</pre></div></li></ul>
+<p>For more information, see <a class="externalLink" href="http://cwiki.apache.org/confluence/display/ARCHIVA/Archiva+on+Tomcat"> Archiva on Tomcat</a> in the wiki.</p></div>
+<div class="section">
+<h2><a name="Archiva_Configuration"></a>Archiva Configuration</h2>
+<p>Archiva is configured using the <tt>~/.m2/archiva.xml</tt> configuration file by default when using a Java EE application server. </p><!-- TODO: how to configure the other file --></div>
+<div class="section">
+<h2><a name="Upgrading_Archiva"></a>Upgrading Archiva</h2>
+<p>To upgrade the Archiva web application, simply replace the web application with an alternative. Since the database and configuration files are stored externally to the application, no further maintainance is needed.</p>
+<p>For general information about upgrading Archiva, see the relevant section in the <a href="./standalone.html#Upgrading20Archiva"> Installing standalone</a> guide.</p></div>
+<div class="section">
+<h2><a name="Configuring_and_Running_Archiva"></a>Configuring and Running Archiva</h2>
+<p>Once Archiva is running, it is configured in the same way as the standalone instance. See the <a href="../quick-start.html#Setting20up20your20Archiva20instance"> quick start</a> guide for more information.</p></div>
+<div class="section">
+<h2><a name="Troubleshooting"></a>Troubleshooting</h2>
+<div class="section">
+<h3><a name="Error_During_Startup"></a>Error During Startup</h3>
+<p>There are cases when the Tomcat logs only shows the following error during startup:</p>
+<div class="source">
+<pre>...
+Aug 17, 2009 11:04:02 AM org.apache.catalina.core.StandardContext start
+SEVERE: Error listenerStart
+Aug 17, 2009 11:04:02 AM org.apache.catalina.core.StandardContext start
+SEVERE: Context [/archiva] startup failed due to previous errors
+Aug 17, 2009 11:04:04 AM org.apache.coyote.http11.Http11BaseProtocol start
+...</pre></div>
+<p>One of the common causes for this <tt>listenerStart Error</tt> is a failure during Spring's initialization. One way to diagnose or confirm the exact cause of the error is by adding the following configuration to the unpacked Archiva webapp's <tt>WEB-INF/classes/log4j2.xml</tt>:</p>
+<div class="source">
+<pre>    &lt;appenders&gt;
+
+      &lt;Console name=&quot;console&quot; target=&quot;SYSTEM_OUT&quot;&gt;
+        &lt;PatternLayout pattern=&quot;%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n&quot;/&gt;
+      &lt;/Console&gt;
+
+    &lt;/appenders&gt;
+
+    &lt;logger name=&quot;org.springframework.web&quot; level=&quot;debug&quot;&gt;
+      &lt;appender-ref ref=&quot;console&quot;/&gt;
+    &lt;/logger&gt;</pre></div>
+<p>The above configuration directs Spring's output logs to the Tomcat console and be recorded in Tomcat's log files. </p></div>
+<div class="section">
+<h3><a name="Diagnosing_Errors"></a>Diagnosing Errors</h3>
+<p>One of the least decipherable errors you can get from Tomcat is a <tt>404</tt> when the deployment fails. In <tt>&lt;tomcat home&gt;/logs/catalina.out</tt> you will only find that it fails, but not why. Also Archiva's logs will not tell you.</p>
+<p>The log messages and stack traces in case of a <tt>404</tt> can be found in <tt>&lt;tomcat home&gt;/logs/localhost.&lt;date&gt;</tt>.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/adminguide/webservices/rest.html b/docs/2.2.8/adminguide/webservices/rest.html
new file mode 100644
index 0000000..3aa52b0
--- /dev/null
+++ b/docs/2.2.8/adminguide/webservices/rest.html
@@ -0,0 +1,666 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20111005" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Using REST Services</title>
+    <link rel="stylesheet" href="../../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../../css/site.css" />
+    <link rel="stylesheet" href="../../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../../" id="bannerLeft">
+                                                                                                <img src="../../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Using REST Services</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>REST Apis</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Using_REST_Services"></a>Using REST Services</h2>
+<p>Starting version 1.4, you can use some REST Services to manage your Apache Archiva instance and Search artifacts. All samples here will use Apache CXF REST client API. By the way you can use some others REST client frameworks. NOTE: a wadl is available in your Archiva instance : http(s)://ip:port/../restServices/application.wadl</p>
+<ul>
+<li>Archiva REST api is available here: <a class="externalLink" href="http://archiva.apache.org/docs/2.2.8/rest-docs-archiva-rest-api/index.html">http://archiva.apache.org/docs/2.2.8/rest-docs-archiva-rest-api/index.html</a></li>
+<li>Archiva UI REST api is available here: <a class="externalLink" href="http://archiva.apache.org/docs/2.2.8/rest-docs-archiva-ui/index.html">http://archiva.apache.org/docs/2.2.8/rest-docs-archiva-ui/index.html</a></li>
+<li>Redback REST api is available here: <a class="externalLink" href="http://archiva.apache.org/docs/2.2.8/rest-docs-redback-rest-api/index.html">http://archiva.apache.org/docs/2.2.8/rest-docs-redback-rest-api/index.html</a></li></ul>
+<div class="section">
+<h3><a name="Security_related_information"></a>Security related information</h3>
+<p>Starting with version 2.2.2 we added HTTP verification techniques to avoid cross site request forgery attacks. The updating services check Origin and Referer header and use a token provided by the login service. If you use the webservices with a native client that is no browser or want to allow requests from different origin URLs you have to change the configuration. For further information see the <a href="/redback/integration/rest.html">Redback REST documentation</a></p></div>
+<div class="section">
+<h3><a name="Search_Service"></a>Search Service</h3>
+<p>Authentication headers for connect to your Archiva instance :</p>
+<div class="source">
+<pre>    // guest with an empty password
+    public static String guestAuthzHeader =
+        &quot;Basic &quot; + org.apache.cxf.common.util.Base64Utility.encode( ( &quot;guest&quot; + &quot;:&quot; ).getBytes() );
+
+    // with an other login/password
+    //public String authzHeader =
+    //    &quot;Basic &quot; + org.apache.cxf.common.util.Base64Utility.encode( ( &quot;login&quot; + &quot;:password&quot; ).getBytes() );
+
+</pre></div>
+<p>Get a Search Service Client :</p>
+<div class="source">
+<pre>SearchService service =
+    JAXRSClientFactory.create( getBaseUrl() + &quot;/&quot; + getRestServicesPath() + &quot;/archivaServices/&quot;,
+                               SearchService.class,
+                               Arrays.asList( new JacksonJaxbJsonProvider( ), new JacksonJaxbXMLProvider( ) )  );
+// to add authentification
+if ( authzHeader != null )
+{
+    WebClient.client( service ).header( &quot;Authorization&quot;, authzHeader );
+}
+// Set the Referer header to your archiva server url
+WebClient.client(service).header(&quot;Referer&quot;,&quot;http://localhost:&quot;+getServerPort());
+// to configure read timeout
+WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( 100000000 );
+// if you want to use json as exchange format xml is supported too
+WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE );
+WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE );
+return service;
+</pre></div>
+<p>Quick Search</p>
+<div class="source">
+<pre>List&lt;Artifact&gt; artifacts = searchService.quickSearch( &quot;commons-logging&quot; );
+// return all artifacts with groupId OR artifactId OR version OR packaging OR className
+// NOTE : only artifacts with classifier empty are returned
+</pre></div>
+<p>Search Artifacts Version : to search all availables version with a groupId and artifactId and packaging (if empty jar is used)</p>
+<div class="source">
+<pre>        SearchService searchService = getSearchService( authorizationHeader );
+
+        List&lt;Artifact&gt; artifacts = searchService.getArtifactVersions( &quot;commons-logging&quot;, &quot;commons-logging&quot;, &quot;jar&quot; );
+
+</pre></div>
+<p>Search Service with a classifier :</p>
+<div class="source">
+<pre>        SearchRequest searchRequest = new SearchRequest();
+        searchRequest.setGroupId( &quot;commons-logging&quot; );
+        searchRequest.setArtifactId( &quot;commons-logging&quot; );
+        searchRequest.setClassifier( &quot;sources&quot; );
+
+        List&lt;Artifact&gt; artifacts = searchService.searchArtifacts( searchRequest );
+</pre></div>
+<p>Search Service with a classifier :</p>
+<div class="source">
+<pre>        SearchRequest searchRequest = new SearchRequest();
+        searchRequest.setGroupId( &quot;commons-logging&quot; );
+        searchRequest.setArtifactId( &quot;commons-logging&quot; );
+        searchRequest.setClassifier( &quot;sources&quot; );
+
+        List&lt;Artifact&gt; artifacts = searchService.searchArtifacts( searchRequest );
+</pre></div>
+<p>Copy Artifact from a repository to an other one :</p>
+<p>For some reasons you want to use a test repository before moving your artifacts to a repository used by final users. To achieve this, you can use a service which can copy an artifact from a repository to an other one</p>
+<div class="source">
+<pre>// configure the artifact you want to copy
+// if package ommited default will be jar
+ArtifactTransferRequest artifactTransferRequest = new ArtifactTransferRequest();
+artifactTransferRequest.setGroupId( &quot;org.apache.karaf.features&quot; );
+artifactTransferRequest.setArtifactId( &quot;org.apache.karaf.features.core&quot; );
+artifactTransferRequest.setVersion( &quot;2.2.2&quot; );
+artifactTransferRequest.setRepositoryId( SOURCE_REPO_ID );
+artifactTransferRequest.setTargetRepositoryId( TARGET_REPO_ID );
+// retrieve the service
+RepositoriesService repositoriesService = getRepositoriesService( authorizationHeader );
+// copy the artifact
+Boolean res = repositoriesService.copyArtifact( artifactTransferRequest ).isSuccess();
+</pre></div>
+<p>To know all the possible options, you can refer to the javadoc of SearchRequest class.</p></div>
+<div class="section">
+<h3><a name="Browse_Service"></a>Browse Service</h3>
+<p>Get a Browse Service Client :</p>
+<div class="source">
+<pre>        BrowseService service =
+            JAXRSClientFactory.create( getBaseUrl() + &quot;/&quot; + getRestServicesPath() + &quot;/archivaServices/&quot;,
+                                       BrowseService.class,
+                                       Arrays.asList( new JacksonJaxbJsonProvider( ), new JacksonJaxbXMLProvider( ) )  );
+        // to add authentification
+        if ( authzHeader != null )
+        {
+            WebClient.client( service ).header( &quot;Authorization&quot;, authzHeader );
+        }
+        // Set the Referer header to your archiva server url
+        WebClient.client(service).header(&quot;Referer&quot;,&quot;http://localhost:&quot;+getServerPort());
+
+        WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( 100000000 );
+        if ( useXml )
+        {
+            WebClient.client( service ).accept( MediaType.APPLICATION_XML_TYPE );
+            WebClient.client( service ).type( MediaType.APPLICATION_XML_TYPE );
+        }
+        else
+        {
+            WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE );
+            WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE );
+        }
+        return service;
+</pre></div>
+<p>Get artifacts based on project version metadata, generic metadata added previously in Archiva :</p>
+<div class="source">
+<pre>        BrowseService browseService = getBrowseService( authorizationHeader, true );
+
+        browseService.addMetadata( &quot;commons-cli&quot;, &quot;commons-cli&quot;, &quot;1.0&quot;, &quot;wine&quot;, &quot;bordeaux&quot;, TEST_REPO_ID );
+
+        tryAssert( ( ) -&gt; {
+            List&lt;Artifact&gt; artifactDownloadInfos =
+                browseService.getArtifactsByProjectVersionMetadata( &quot;wine&quot;, &quot;bordeaux&quot;, TEST_REPO_ID );
+
+            assertThat( artifactDownloadInfos ).isNotNull( ).isNotEmpty( ).hasSize( 3 );
+</pre></div>
+<p>Get artifacts based on the artifact properties :</p>
+<div class="source">
+<pre>        BrowseService browseService = getBrowseService( authorizationHeader, true );
+
+        List&lt;Artifact&gt; artifactDownloadInfos = browseService.getArtifactsByMetadata( &quot;type&quot;, &quot;pom&quot;, TEST_REPO_ID );
+
+        assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 11 );
+</pre></div>
+<p>Get artifacts based on the project properties from POM :</p>
+<div class="source">
+<pre>        BrowseService browseService = getBrowseService( authorizationHeader, true );
+
+        tryAssert( ( ) -&gt; {
+            List&lt;Artifact&gt; artifactDownloadInfos =
+                browseService.getArtifactsByProperty( &quot;org.name&quot;, &quot;The Apache Software Foundation&quot;, TEST_REPO_ID );
+
+            assertThat( artifactDownloadInfos ).isNotNull( ).isNotEmpty( ).hasSize( 7 );
+</pre></div>
+<p>Searching by properties and metadata :</p>
+<div class="source">
+<pre>        BrowseService browseService = getBrowseService( authorizationHeader, true );
+
+        List&lt;Artifact&gt; artifactDownloadInfos =
+            browseService.searchArtifacts( &quot;org.name&quot;, &quot;The Apache Software Foundation&quot;, TEST_REPO_ID, true );
+
+        assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 7 );
+</pre></div>
+<div class="source">
+<pre>        BrowseService browseService = getBrowseService( authorizationHeader, true );
+
+        tryAssert( ( ) -&gt; {
+            List&lt;Artifact&gt; artifactDownloadInfos =
+                browseService.searchArtifacts( &quot;The Apache Software Foundation&quot;, TEST_REPO_ID, true );
+
+            assertThat( artifactDownloadInfos ).isNotNull( ).isNotEmpty( ).hasSize( 7 );
+        } );
+</pre></div>
+<p>Get Search</p>
+<div class="source">
+<pre>List&lt;Artifact&gt; artifacts = searchService.quickSearch( &quot;commons-logging&quot; );
+// return all artifacts with groupId OR artifactId OR version OR packaging OR className
+// NOTE : only artifacts with classifier empty are returned
+</pre></div>
+<p>Dependencies to add in order to use those REST Services</p>
+<div class="source">
+<pre>      
+      &lt;dependency&gt;
+        &lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt;
+        &lt;artifactId&gt;jackson-core&lt;/artifactId&gt;
+        &lt;version&gt;${jackson.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;com.fasterxml.jackson.jaxrs&lt;/groupId&gt;
+        &lt;artifactId&gt;jackson-jaxrs-json-provider&lt;/artifactId&gt;
+        &lt;version&gt;${jackson.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;com.fasterxml.jackson.jaxrs&lt;/groupId&gt;
+        &lt;artifactId&gt;jackson-jaxrs-xml-provider&lt;/artifactId&gt;
+        &lt;version&gt;${jackson.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt;
+        &lt;artifactId&gt;jackson-annotations&lt;/artifactId&gt;
+        &lt;version&gt;${jackson.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;com.fasterxml.jackson.dataformat&lt;/groupId&gt;
+        &lt;artifactId&gt;jackson-dataformat-xml&lt;/artifactId&gt;
+        &lt;version&gt;${jackson.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;com.fasterxml.jackson.jaxrs&lt;/groupId&gt;
+        &lt;artifactId&gt;jackson-jaxrs-base&lt;/artifactId&gt;
+        &lt;version&gt;${jackson.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+
+
+      &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
+        &lt;version&gt;${cxf.version}&lt;/version&gt;
+        &lt;exclusions&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;javax.annotation&lt;/groupId&gt;
+            &lt;artifactId&gt;javax.annotation-api&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+        &lt;/exclusions&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-rt-rs-client&lt;/artifactId&gt;
+        &lt;version&gt;${cxf.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-rt-rs-extension-providers&lt;/artifactId&gt;
+        &lt;version&gt;${cxf.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-rt-features-logging&lt;/artifactId&gt;
+        &lt;version&gt;${cxf.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-rt-rs-service-description-openapi-v3&lt;/artifactId&gt;
+        &lt;version&gt;${cxf.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+
+      &lt;dependency&gt;
+        &lt;groupId&gt;io.swagger.core.v3&lt;/groupId&gt;
+        &lt;artifactId&gt;swagger-core&lt;/artifactId&gt;
+        &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;version&gt;${io.swagger.version}&lt;/version&gt;
+        &lt;exclusions&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
+            &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+        &lt;/exclusions&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;io.swagger.core.v3&lt;/groupId&gt;
+        &lt;artifactId&gt;swagger-jaxrs2&lt;/artifactId&gt;
+        &lt;version&gt;${io.swagger.version}&lt;/version&gt;
+        &lt;exclusions&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
+            &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+        &lt;/exclusions&gt;
+      &lt;/dependency&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;io.swagger.core.v3&lt;/groupId&gt;
+        &lt;artifactId&gt;swagger-annotations&lt;/artifactId&gt;
+        &lt;version&gt;${io.swagger.version}&lt;/version&gt;
+        &lt;exclusions&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
+            &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+        &lt;/exclusions&gt;
+      &lt;/dependency&gt;
+
+
+      &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.archiva&lt;/groupId&gt;
+        &lt;artifactId&gt;archiva-rest-api&lt;/artifactId&gt;
+        &lt;version&gt;${project.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+</pre></div>
+<p>Current versions use in Apache Archiva:</p>
+<ul>
+<li><tt>${project.version}</tt>: 2.2.8</li>
+<li><tt>${cxfVersion}</tt>: $<a name="cxf.version">cxf.version</a></li>
+<li><tt>${jacksonVersion}</tt>: 2.3.0</li></ul></div>
+<div class="section">
+<h3><a name="Security_Framework_Services:"></a>Security Framework Services:</h3>
+<p>You can use Redback Rest Services to control user creation/modification and add/remove roles.</p>
+<p>See <a class="externalLink" href="http://archiva.apache.org/redback/integration/rest.html">http://archiva.apache.org/redback/integration/rest.html</a></p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/ci-management.html b/docs/2.2.8/ci-management.html
new file mode 100644
index 0000000..6fa792c
--- /dev/null
+++ b/docs/2.2.8/ci-management.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.0:ci-management
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; CI Management</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">CI Management</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Overview"></a>Overview</h2><a name="Overview"></a>
+<p>This project uses <a class="externalLink" href="http://jenkins-ci.org/">Jenkins</a>.</p></section><section>
+<h2><a name="Access"></a>Access</h2><a name="Access"></a>
+<p>The following is a link to the continuous integration system used by the project:</p>
+<div class="source"><pre class="prettyprint"><a class="externalLink" href="https://builds.apache.org/view/A-F/view/Archiva/">https://builds.apache.org/view/A-F/view/Archiva/</a></pre></div></section><section>
+<h2><a name="Notifiers"></a>Notifiers</h2><a name="Notifiers"></a>
+<p>No notifiers are defined. Please check back at a later date.</p></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css b/docs/2.2.8/css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css
new file mode 100644
index 0000000..0bafa30
--- /dev/null
+++ b/docs/2.2.8/css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css
@@ -0,0 +1,17 @@
+/*!
+ * Bootstrap v2.3.2
+ *
+ * Copyright 2013 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world by @mdo and @fat.
+ */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000 !important;text-shadow:none !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:gray}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}/*!
+ * Bootstrap Responsive v2.3.2
+ *
+ * Copyright 2013 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world by @mdo and @fat.
+ */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media(max-width:767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.clear{clear:both;visibility:hidden}.clear hr{display:none}.section p,.section p,.section dt,.section dt{margin-right:7px;margin-left:7px}#ohloh{margin-bottom:10px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{background-image:url(https://cse.google.com/cse/images/google_custom_search_watermark.gif);background-attachment:initial;background-origin:initial;background-clip:initial;background-color:#fff;background-position:0 50%;background-repeat:no-repeat no-repeat;width:95%}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}.hero-unit h2{font-size:60px}tt{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:.9em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
diff --git a/docs/2.2.8/css/apache-maven-fluido-1.3.1.min.css b/docs/2.2.8/css/apache-maven-fluido-1.3.1.min.css
new file mode 100644
index 0000000..ed43d12
--- /dev/null
+++ b/docs/2.2.8/css/apache-maven-fluido-1.3.1.min.css
@@ -0,0 +1,9 @@
+/*!
+ * Bootstrap v2.2.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover{color:#808080}.text-warning{color:#c09853}a.text-warning:hover{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover{color:#2d6987}.text-success{color:#468847}a.text-success:hover{color:#356635}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.warning td{background-color:#fcf8e3}.table tbody tr.info td{background-color:#d9edf7}.table-hover tbody tr.success:hover td{background-color:#d0e9c6}.table-hover tbody tr.error:hover td{background-color:#ebcccc}.table-hover tbody tr.warning:hover td{background-color:#faf2cc}.table-hover tbody tr.info:hover td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #bbb;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,0.15) rgba(0,0,0,0.15) rgba(0,0,0,0.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #0044cc #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eeeeee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #dddddd #eee #eeeeee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eeeeee #eee #dddddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media .pull-left{margin-right:10px}.media .pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}.clear{clear:both;visibility:hidden}.clear hr{display:none}.section p,.section p,.section dt,.section dt{margin-right:7px;margin-left:7px}#ohloh{margin-bottom:10px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{background-image:url(http://www.google.com/cse/intl/en/images/google_custom_search_watermark.gif);background-attachment:initial;background-origin:initial;background-clip:initial;background-color:#fff;background-position:0 50%;background-repeat:no-repeat no-repeat;width:95%}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}.hero-unit h2{font-size:60px}tt{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:.8em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
diff --git a/docs/2.2.8/css/blank.gif b/docs/2.2.8/css/blank.gif
new file mode 100644
index 0000000..35d42e8
--- /dev/null
+++ b/docs/2.2.8/css/blank.gif
Binary files differ
diff --git a/docs/2.2.8/css/fancybox_loading-2x.gif b/docs/2.2.8/css/fancybox_loading-2x.gif
new file mode 100755
index 0000000..9205aeb
--- /dev/null
+++ b/docs/2.2.8/css/fancybox_loading-2x.gif
Binary files differ
diff --git a/docs/2.2.8/css/fancybox_loading.gif b/docs/2.2.8/css/fancybox_loading.gif
new file mode 100644
index 0000000..a03a40c
--- /dev/null
+++ b/docs/2.2.8/css/fancybox_loading.gif
Binary files differ
diff --git a/docs/2.2.8/css/fancybox_overlay.png b/docs/2.2.8/css/fancybox_overlay.png
new file mode 100755
index 0000000..a439139
--- /dev/null
+++ b/docs/2.2.8/css/fancybox_overlay.png
Binary files differ
diff --git a/docs/2.2.8/css/fancybox_sprite-2x.png b/docs/2.2.8/css/fancybox_sprite-2x.png
new file mode 100755
index 0000000..d0e4779
--- /dev/null
+++ b/docs/2.2.8/css/fancybox_sprite-2x.png
Binary files differ
diff --git a/docs/2.2.8/css/fancybox_sprite.png b/docs/2.2.8/css/fancybox_sprite.png
new file mode 100644
index 0000000..fd8d5ca
--- /dev/null
+++ b/docs/2.2.8/css/fancybox_sprite.png
Binary files differ
diff --git a/docs/2.2.8/css/jquery.fancybox-2.1.0.css b/docs/2.2.8/css/jquery.fancybox-2.1.0.css
new file mode 100644
index 0000000..b1d4c02
--- /dev/null
+++ b/docs/2.2.8/css/jquery.fancybox-2.1.0.css
@@ -0,0 +1,246 @@
+/*! fancyBox v2.1.0 fancyapps.com | fancyapps.com/fancybox/#license */
+.fancybox-wrap,
+.fancybox-skin,
+.fancybox-outer,
+.fancybox-inner,
+.fancybox-image,
+.fancybox-wrap iframe,
+.fancybox-wrap object,
+.fancybox-nav,
+.fancybox-nav span,
+.fancybox-tmp
+{
+	padding: 0;
+	margin: 0;
+	border: 0;
+	outline: none;
+	vertical-align: top;
+}
+
+.fancybox-wrap {
+	position: absolute;
+	top: 0;
+	left: 0;
+	z-index: 8020;
+}
+
+.fancybox-skin {
+	position: relative;
+	background: #f9f9f9;
+	color: #444;
+	text-shadow: none;
+	-webkit-border-radius: 4px;
+	   -moz-border-radius: 4px;
+	        border-radius: 4px;
+}
+
+.fancybox-opened {
+	z-index: 8030;
+}
+
+.fancybox-opened .fancybox-skin {
+	-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+	   -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+	        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+}
+
+.fancybox-outer, .fancybox-inner {
+	position: relative;
+}
+
+.fancybox-inner {
+	overflow: hidden;
+}
+
+.fancybox-type-iframe .fancybox-inner {
+	-webkit-overflow-scrolling: touch;
+}
+
+.fancybox-error {
+	color: #444;
+	font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+	margin: 0;
+	padding: 15px;
+	white-space: nowrap;
+}
+
+.fancybox-image, .fancybox-iframe {
+	display: block;
+	width: 100%;
+	height: 100%;
+}
+
+.fancybox-image {
+	max-width: 100%;
+	max-height: 100%;
+}
+
+#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
+	background-image: url('fancybox_sprite.png');
+}
+
+#fancybox-loading {
+	position: fixed;
+	top: 50%;
+	left: 50%;
+	margin-top: -22px;
+	margin-left: -22px;
+	background-position: 0 -108px;
+	opacity: 0.8;
+	cursor: pointer;
+	z-index: 8060;
+}
+
+#fancybox-loading div {
+	width: 44px;
+	height: 44px;
+	background: url('fancybox_loading.gif') center center no-repeat;
+}
+
+.fancybox-close {
+	position: absolute;
+	top: -18px;
+	right: -18px;
+	width: 36px;
+	height: 36px;
+	cursor: pointer;
+	z-index: 8040;
+}
+
+.fancybox-nav {
+	position: absolute;
+	top: 0;
+	width: 40%;
+	height: 100%;
+	cursor: pointer;
+	text-decoration: none;
+	background: transparent url('blank.gif'); /* helps IE */
+	-webkit-tap-highlight-color: rgba(0,0,0,0);
+	z-index: 8040;
+}
+
+.fancybox-prev {
+	left: 0;
+}
+
+.fancybox-next {
+	right: 0;
+}
+
+.fancybox-nav span {
+	position: absolute;
+	top: 50%;
+	width: 36px;
+	height: 34px;
+	margin-top: -18px;
+	cursor: pointer;
+	z-index: 8040;
+	visibility: hidden;
+}
+
+.fancybox-prev span {
+	left: 10px;
+	background-position: 0 -36px;
+}
+
+.fancybox-next span {
+	right: 10px;
+	background-position: 0 -72px;
+}
+
+.fancybox-nav:hover span {
+	visibility: visible;
+}
+
+.fancybox-tmp {
+	position: absolute;
+	top: -9999px;
+	left: -9999px;
+	visibility: hidden;
+}
+
+/* Overlay helper */
+
+.fancybox-lock {
+	overflow: hidden;
+}
+
+.fancybox-overlay {
+	position: absolute;
+	top: 0;
+	left: 0;
+	overflow: hidden;
+	display: none;
+	z-index: 8010;
+	background: url('fancybox_overlay.png');
+}
+
+.fancybox-overlay-fixed {
+	position: fixed;
+	bottom: 0;
+	right: 0;
+}
+
+.fancybox-lock .fancybox-overlay {
+	overflow: auto;
+	overflow-y: scroll;
+}
+
+/* Title helper */
+
+.fancybox-title {
+	visibility: hidden;
+	font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+	position: relative;
+	text-shadow: none;
+	z-index: 8050;
+}
+
+.fancybox-opened .fancybox-title {
+	visibility: visible;
+}
+
+.fancybox-title-float-wrap {
+	position: absolute;
+	bottom: 0;
+	right: 50%;
+	margin-bottom: -35px;
+	z-index: 8050;
+	text-align: center;
+}
+
+.fancybox-title-float-wrap .child {
+	display: inline-block;
+	margin-right: -100%;
+	padding: 2px 20px;
+	background: transparent; /* Fallback for web browsers that doesn't support RGBa */
+	background: rgba(0, 0, 0, 0.8);
+	-webkit-border-radius: 15px;
+	   -moz-border-radius: 15px;
+	        border-radius: 15px;
+	text-shadow: 0 1px 2px #222;
+	color: #FFF;
+	font-weight: bold;
+	line-height: 24px;
+	white-space: nowrap;
+}
+
+.fancybox-title-outside-wrap {
+	position: relative;
+	margin-top: 10px;
+	color: #fff;
+}
+
+.fancybox-title-inside-wrap {
+	padding-top: 10px;
+}
+
+.fancybox-title-over-wrap {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	color: #fff;
+	padding: 10px;
+	background: #000;
+	background: rgba(0, 0, 0, .8);
+}
\ No newline at end of file
diff --git a/docs/2.2.8/css/jquery.fancybox.2.1.5.css b/docs/2.2.8/css/jquery.fancybox.2.1.5.css
new file mode 100755
index 0000000..e5d1bd2
--- /dev/null
+++ b/docs/2.2.8/css/jquery.fancybox.2.1.5.css
@@ -0,0 +1,274 @@
+/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
+.fancybox-wrap,
+.fancybox-skin,
+.fancybox-outer,
+.fancybox-inner,
+.fancybox-image,
+.fancybox-wrap iframe,
+.fancybox-wrap object,
+.fancybox-nav,
+.fancybox-nav span,
+.fancybox-tmp
+{
+	padding: 0;
+	margin: 0;
+	border: 0;
+	outline: none;
+	vertical-align: top;
+}
+
+.fancybox-wrap {
+	position: absolute;
+	top: 0;
+	left: 0;
+	z-index: 8020;
+}
+
+.fancybox-skin {
+	position: relative;
+	background: #f9f9f9;
+	color: #444;
+	text-shadow: none;
+	-webkit-border-radius: 4px;
+	   -moz-border-radius: 4px;
+	        border-radius: 4px;
+}
+
+.fancybox-opened {
+	z-index: 8030;
+}
+
+.fancybox-opened .fancybox-skin {
+	-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+	   -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+	        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+}
+
+.fancybox-outer, .fancybox-inner {
+	position: relative;
+}
+
+.fancybox-inner {
+	overflow: hidden;
+}
+
+.fancybox-type-iframe .fancybox-inner {
+	-webkit-overflow-scrolling: touch;
+}
+
+.fancybox-error {
+	color: #444;
+	font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+	margin: 0;
+	padding: 15px;
+	white-space: nowrap;
+}
+
+.fancybox-image, .fancybox-iframe {
+	display: block;
+	width: 100%;
+	height: 100%;
+}
+
+.fancybox-image {
+	max-width: 100%;
+	max-height: 100%;
+}
+
+#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
+	background-image: url('fancybox_sprite.png');
+}
+
+#fancybox-loading {
+	position: fixed;
+	top: 50%;
+	left: 50%;
+	margin-top: -22px;
+	margin-left: -22px;
+	background-position: 0 -108px;
+	opacity: 0.8;
+	cursor: pointer;
+	z-index: 8060;
+}
+
+#fancybox-loading div {
+	width: 44px;
+	height: 44px;
+	background: url('fancybox_loading.gif') center center no-repeat;
+}
+
+.fancybox-close {
+	position: absolute;
+	top: -18px;
+	right: -18px;
+	width: 36px;
+	height: 36px;
+	cursor: pointer;
+	z-index: 8040;
+}
+
+.fancybox-nav {
+	position: absolute;
+	top: 0;
+	width: 40%;
+	height: 100%;
+	cursor: pointer;
+	text-decoration: none;
+	background: transparent url('blank.gif'); /* helps IE */
+	-webkit-tap-highlight-color: rgba(0,0,0,0);
+	z-index: 8040;
+}
+
+.fancybox-prev {
+	left: 0;
+}
+
+.fancybox-next {
+	right: 0;
+}
+
+.fancybox-nav span {
+	position: absolute;
+	top: 50%;
+	width: 36px;
+	height: 34px;
+	margin-top: -18px;
+	cursor: pointer;
+	z-index: 8040;
+	visibility: hidden;
+}
+
+.fancybox-prev span {
+	left: 10px;
+	background-position: 0 -36px;
+}
+
+.fancybox-next span {
+	right: 10px;
+	background-position: 0 -72px;
+}
+
+.fancybox-nav:hover span {
+	visibility: visible;
+}
+
+.fancybox-tmp {
+	position: absolute;
+	top: -99999px;
+	left: -99999px;
+	visibility: hidden;
+	max-width: 99999px;
+	max-height: 99999px;
+	overflow: visible !important;
+}
+
+/* Overlay helper */
+
+.fancybox-lock {
+    overflow: hidden !important;
+    width: auto;
+}
+
+.fancybox-lock body {
+    overflow: hidden !important;
+}
+
+.fancybox-lock-test {
+    overflow-y: hidden !important;
+}
+
+.fancybox-overlay {
+	position: absolute;
+	top: 0;
+	left: 0;
+	overflow: hidden;
+	display: none;
+	z-index: 8010;
+	background: url('fancybox_overlay.png');
+}
+
+.fancybox-overlay-fixed {
+	position: fixed;
+	bottom: 0;
+	right: 0;
+}
+
+.fancybox-lock .fancybox-overlay {
+	overflow: auto;
+	overflow-y: scroll;
+}
+
+/* Title helper */
+
+.fancybox-title {
+	visibility: hidden;
+	font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+	position: relative;
+	text-shadow: none;
+	z-index: 8050;
+}
+
+.fancybox-opened .fancybox-title {
+	visibility: visible;
+}
+
+.fancybox-title-float-wrap {
+	position: absolute;
+	bottom: 0;
+	right: 50%;
+	margin-bottom: -35px;
+	z-index: 8050;
+	text-align: center;
+}
+
+.fancybox-title-float-wrap .child {
+	display: inline-block;
+	margin-right: -100%;
+	padding: 2px 20px;
+	background: transparent; /* Fallback for web browsers that doesn't support RGBa */
+	background: rgba(0, 0, 0, 0.8);
+	-webkit-border-radius: 15px;
+	   -moz-border-radius: 15px;
+	        border-radius: 15px;
+	text-shadow: 0 1px 2px #222;
+	color: #FFF;
+	font-weight: bold;
+	line-height: 24px;
+	white-space: nowrap;
+}
+
+.fancybox-title-outside-wrap {
+	position: relative;
+	margin-top: 10px;
+	color: #fff;
+}
+
+.fancybox-title-inside-wrap {
+	padding-top: 10px;
+}
+
+.fancybox-title-over-wrap {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	color: #fff;
+	padding: 10px;
+	background: #000;
+	background: rgba(0, 0, 0, .8);
+}
+
+/*Retina graphics!*/
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
+	   only screen and (min--moz-device-pixel-ratio: 1.5),
+	   only screen and (min-device-pixel-ratio: 1.5){
+
+	#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
+		background-image: url('fancybox_sprite-2x.png');
+		background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/
+	}
+
+	#fancybox-loading div {
+		background-image: url('fancybox_loading-2x.gif');
+		background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/
+	}
+}
\ No newline at end of file
diff --git a/docs/2.2.8/css/maven-base.css b/docs/2.2.8/css/maven-base.css
new file mode 100644
index 0000000..87da23c
--- /dev/null
+++ b/docs/2.2.8/css/maven-base.css
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+body{padding-top: 4px;}
+
+.xleftbanner, #bannerLeft img {
+  float: left;
+}
+
+.xrightbanner, #bannerRight img {
+  float: right;
+}
+
+.xright  {
+  float: right;
+}
+
+ #breadcrumbs {
+  font-size: 11px;
+}
+
+#footer {
+  margin: 20px 0px 20px 0px;
+  border-top: solid #ccc 1px;
+  color: #333333;
+  padding: 3px 10px 3px 10px;
+  font-size: x-small;
+  text-align: center;
+}
\ No newline at end of file
diff --git a/docs/2.2.8/css/prettify.css b/docs/2.2.8/css/prettify.css
new file mode 100644
index 0000000..d44b3a2
--- /dev/null
+++ b/docs/2.2.8/css/prettify.css
@@ -0,0 +1 @@
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
diff --git a/docs/2.2.8/css/print.css b/docs/2.2.8/css/print.css
new file mode 100644
index 0000000..46c5e81
--- /dev/null
+++ b/docs/2.2.8/css/print.css
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+/* $Id: print.css 1201871 2011-11-14 20:18:24Z simonetripodi $ */
+
+#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {display: none !important;}
+#bodyColumn, body.docs div.docs {margin: 0 !important;border: none !important}
diff --git a/docs/2.2.8/css/site.css b/docs/2.2.8/css/site.css
new file mode 100644
index 0000000..11f870b
--- /dev/null
+++ b/docs/2.2.8/css/site.css
@@ -0,0 +1,99 @@
+/*
+ * 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.
+ */
+
+a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
+  background: none;
+  padding-right: 0;
+}
+
+body ul {
+  list-style-type: square;
+}
+
+#downloadbox {
+  float: right;
+  margin-left: 2em;
+  padding-left: 1em;
+  padding-right: 1em;
+  padding-bottom: 1em;
+  border: 1px solid #999;
+  background-color: #eee;
+  width: 17.5em;
+}
+
+#downloadbox h5 {
+  color: #000;
+  margin: 0;
+  border-bottom: 1px solid #aaaaaa;
+  font-size: smaller;
+  padding: 0;
+  margin-top: 1em;
+}
+
+#downloadbox p {
+  margin-top: 1em;
+  margin-bottom: 0;
+}
+
+#downloadbox li {
+  text-indent: inherit;
+}
+
+div.p {
+  margin-top: 5px;
+  margin-bottom: 10px;
+}
+
+pre.commandline {
+  border: 1px solid #bbb;
+  background-color: white;
+  margin-top: 5px;
+  margin-bottom: 5px;
+  font-size: 10pt;
+  padding: 15px;
+  color: gray;
+}
+
+img {
+  border-style: solid ;
+  border-width: 1px;
+  border-color: #ddd;
+  padding: 5px;
+  margin-top: 10px;
+  border-radius: 5px;
+}
+
+pre.commandline .input {
+  color: #55f;
+}
+
+pre.commandline .command {
+  color: black;
+  font-weight: bold;
+}
+
+#banner {
+  background: none;
+}
+
+#banner img {
+  margin: 2px;
+}
+
+
diff --git a/docs/2.2.8/customising/writing-consumer.html b/docs/2.2.8/customising/writing-consumer.html
new file mode 100644
index 0000000..2e56d94
--- /dev/null
+++ b/docs/2.2.8/customising/writing-consumer.html
@@ -0,0 +1,406 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Maria Odea Ching
+Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20121220" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Writing a Consumer Plugin</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Writing a Consumer Plugin</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Writing a Consumer Plugin</a>
+          </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Writing_a_Consumer_Plugin"></a>Writing a Consumer Plugin</h2>
+<p>For a sample custom consumer, you can checkout the archiva-consumer-plugin at the archiva sandbox in the SVN repository: Starting with release 1.4, plexus components are not anymore supported, you must use Spring components.</p>
+<div class="section">
+<h3><a name="Writing_manually"></a>Writing manually</h3>
+<p>Below are the steps on how to create a custom repository consumer and plug it in Archiva:</p>
+<ol style="list-style-type: decimal">
+<li>Create a project for your component.</li>
+<li>Declare your class or in this case, consumer as a component as shown in the example below. This should be put at the class level.
+<div class="source">
+<pre>Ex.
+@Service(&quot;knownRepositoryContentConsumer#discover-new-artifact&quot;)
+@Scope(&quot;prototype&quot;)
+
+where,
+  Service: unique id for your consumer.
+  Scope: the creation strategy prototype or singleton.</pre></div></li>
+<li>Package your project by executing 'mvn clean package'</li>
+<li>Let's say you are using the apache-archiva-2.2.8-bin.tar.gz to run Archiva. Unpack the binaries then go to bin/linux-x86-32/ (assuming you are running on Linux), then execute './run.sh console'. Then stop or shutdown Archiva after it started. (This is necessary to unpack the war file.)</li>
+<li>Copy the jar file you created in step 4 in apache-archiva-2.2.8/apps/archiva/webapp/lib/</li>
+<li>Add the necessary configurations in archiva.xml (in this case, add 'discover-new-artifact' as a <i>knownContentConsumer</i>)</li>
+<li>Start up Archiva again.</li></ol></div>
+<div class="section">
+<h3><a name="Use_the_archetype"></a>Use the archetype</h3>
+<p>Prior to version 1.4-M2, you can use an archetype.</p>
+<div class="source">
+<pre>mvn archetype:generate \
+   -DarchetypeRepository=repo1.maven.org \
+   -DarchetypeGroupId=org.apache.archiva \
+   -DarchetypeArtifactId=archiva-consumer-archetype \
+   -DarchetypeVersion=2.2.8</pre></div>
+<p>Note: if you want to use a SNAPSHOT version, replace with the following parameter: -DarchetypeRepository=https://archiva-repository.apache.org/archiva/repository/snapshots/ \</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/developers/archiva-eclipse-codestyle.xml b/docs/2.2.8/developers/archiva-eclipse-codestyle.xml
new file mode 100644
index 0000000..d1a261f
--- /dev/null
+++ b/docs/2.2.8/developers/archiva-eclipse-codestyle.xml
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<profiles version="11">
+<profile kind="CodeFormatterProfile" name="archiva" version="11">
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="18"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="20"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="37"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="37"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="18"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="20"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="37"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="20"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="37"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="18"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="20"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.compiler.source" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="120"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="18"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="true"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="18"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="48"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="37"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="18"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="next_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
+</profile>
+</profiles>
diff --git a/docs/2.2.8/developers/archiva-idea-codestyle.xml b/docs/2.2.8/developers/archiva-idea-codestyle.xml
new file mode 100644
index 0000000..55b7325
--- /dev/null
+++ b/docs/2.2.8/developers/archiva-idea-codestyle.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<code_scheme name="archiva">
+  <option name="JAVA_INDENT_OPTIONS">
+    <value>
+      <option name="INDENT_SIZE" value="4" />
+      <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      <option name="TAB_SIZE" value="4" />
+      <option name="USE_TAB_CHARACTER" value="false" />
+      <option name="SMART_TABS" value="false" />
+      <option name="LABEL_INDENT_SIZE" value="0" />
+      <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+      <option name="USE_RELATIVE_INDENTS" value="false" />
+    </value>
+  </option>
+  <option name="JSP_INDENT_OPTIONS">
+    <value>
+      <option name="INDENT_SIZE" value="2" />
+      <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      <option name="TAB_SIZE" value="2" />
+      <option name="USE_TAB_CHARACTER" value="false" />
+      <option name="SMART_TABS" value="false" />
+      <option name="LABEL_INDENT_SIZE" value="0" />
+      <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+      <option name="USE_RELATIVE_INDENTS" value="false" />
+    </value>
+  </option>
+  <option name="XML_INDENT_OPTIONS">
+    <value>
+      <option name="INDENT_SIZE" value="2" />
+      <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      <option name="TAB_SIZE" value="2" />
+      <option name="USE_TAB_CHARACTER" value="false" />
+      <option name="SMART_TABS" value="false" />
+      <option name="LABEL_INDENT_SIZE" value="0" />
+      <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+      <option name="USE_RELATIVE_INDENTS" value="false" />
+    </value>
+  </option>
+  <option name="LINE_SEPARATOR" value="&#10;" />
+  <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
+  <option name="KEEP_LINE_BREAKS" value="false" />
+  <option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
+  <option name="BLANK_LINES_AROUND_FIELD" value="1" />
+  <option name="BRACE_STYLE" value="2" />
+  <option name="CLASS_BRACE_STYLE" value="2" />
+  <option name="METHOD_BRACE_STYLE" value="2" />
+  <option name="ELSE_ON_NEW_LINE" value="true" />
+  <option name="WHILE_ON_NEW_LINE" value="true" />
+  <option name="CATCH_ON_NEW_LINE" value="true" />
+  <option name="FINALLY_ON_NEW_LINE" value="true" />
+  <option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
+  <option name="SPACE_WITHIN_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_METHOD_CALL_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_METHOD_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_IF_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_WHILE_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_FOR_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_CATCH_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_SWITCH_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_SYNCHRONIZED_PARENTHESES" value="true" />
+  <option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
+  <option name="CALL_PARAMETERS_WRAP" value="1" />
+  <option name="METHOD_PARAMETERS_WRAP" value="1" />
+  <option name="EXTENDS_LIST_WRAP" value="1" />
+  <option name="THROWS_LIST_WRAP" value="1" />
+  <option name="EXTENDS_KEYWORD_WRAP" value="2" />
+  <option name="THROWS_KEYWORD_WRAP" value="2" />
+  <option name="BINARY_OPERATION_WRAP" value="1" />
+  <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
+  <option name="TERNARY_OPERATION_WRAP" value="5" />
+  <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
+  <option name="FOR_STATEMENT_WRAP" value="1" />
+  <option name="ARRAY_INITIALIZER_WRAP" value="1" />
+  <option name="ASSIGNMENT_WRAP" value="1" />
+  <option name="IF_BRACE_FORCE" value="3" />
+  <option name="DOWHILE_BRACE_FORCE" value="3" />
+  <option name="WHILE_BRACE_FORCE" value="3" />
+  <option name="FOR_BRACE_FORCE" value="3" />
+  <option name="SPACE_WITHIN_ANNOTATION_PARENTHESES" value="true" />
+  <option name="ENUM_CONSTANTS_WRAP" value="2" />
+  <ADDITIONAL_INDENT_OPTIONS fileType="groovy">
+    <option name="INDENT_SIZE" value="2" />
+    <option name="CONTINUATION_INDENT_SIZE" value="8" />
+    <option name="TAB_SIZE" value="4" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+  <ADDITIONAL_INDENT_OPTIONS fileType="gsp">
+    <option name="INDENT_SIZE" value="2" />
+    <option name="CONTINUATION_INDENT_SIZE" value="8" />
+    <option name="TAB_SIZE" value="4" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+  <ADDITIONAL_INDENT_OPTIONS fileType="java">
+    <option name="INDENT_SIZE" value="4" />
+    <option name="CONTINUATION_INDENT_SIZE" value="4" />
+    <option name="TAB_SIZE" value="4" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+  <ADDITIONAL_INDENT_OPTIONS fileType="js">
+    <option name="INDENT_SIZE" value="4" />
+    <option name="CONTINUATION_INDENT_SIZE" value="8" />
+    <option name="TAB_SIZE" value="4" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+  <ADDITIONAL_INDENT_OPTIONS fileType="jsp">
+    <option name="INDENT_SIZE" value="2" />
+    <option name="CONTINUATION_INDENT_SIZE" value="4" />
+    <option name="TAB_SIZE" value="2" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+  <ADDITIONAL_INDENT_OPTIONS fileType="php">
+    <option name="INDENT_SIZE" value="4" />
+    <option name="CONTINUATION_INDENT_SIZE" value="8" />
+    <option name="TAB_SIZE" value="4" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+  <ADDITIONAL_INDENT_OPTIONS fileType="sass">
+    <option name="INDENT_SIZE" value="2" />
+    <option name="CONTINUATION_INDENT_SIZE" value="8" />
+    <option name="TAB_SIZE" value="4" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+  <ADDITIONAL_INDENT_OPTIONS fileType="xml">
+    <option name="INDENT_SIZE" value="2" />
+    <option name="CONTINUATION_INDENT_SIZE" value="4" />
+    <option name="TAB_SIZE" value="2" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+  <ADDITIONAL_INDENT_OPTIONS fileType="yml">
+    <option name="INDENT_SIZE" value="2" />
+    <option name="CONTINUATION_INDENT_SIZE" value="8" />
+    <option name="TAB_SIZE" value="4" />
+    <option name="USE_TAB_CHARACTER" value="false" />
+    <option name="SMART_TABS" value="false" />
+    <option name="LABEL_INDENT_SIZE" value="0" />
+    <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+    <option name="USE_RELATIVE_INDENTS" value="false" />
+  </ADDITIONAL_INDENT_OPTIONS>
+</code_scheme>
+
diff --git a/docs/2.2.8/developers/building.html b/docs/2.2.8/developers/building.html
new file mode 100644
index 0000000..22801d5
--- /dev/null
+++ b/docs/2.2.8/developers/building.html
@@ -0,0 +1,258 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/developers/building.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="date" content="2017-08-01" />
+    <title>Archiva &#x2013; Building Archiva</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Building Archiva</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Building_Archiva"></a>Building Archiva</h2>
+<p>To build the very latest code available... </p>
+<ol style="list-style-type: decimal">
+<li>Check out the source code as described on the <a href="../source-repository.html">Source Repository</a> page.</li>
+<li>You may setup a suitable ~/.m2/settings.xml to add the needed repositories.</li>
+<li>In the 'parent' directory, execute <code>mvn clean install</code> to build the parent pom. (only needed if we depend on a new parent)</li>
+<li>In the 'archiva' directory, execute <code>mvn clean install</code> to build the Archiva modules and distribution.</li></ol>
+<p>After the build completes, you can find the Archiva distribution in <code>archiva-jetty/target</code> and the Archiva webapp in <code>archiva-modules/archiva-web/archiva-webapp/target</code></p>
+<p>Usually, it's that simple. :) Occasionally, Archiva may depend on a snapshot of another project such as <a class="externalLink" href="http://archiva.apache.org/redback">Redback</a>, and you may need to build that first, or configure a snapshot repository. If you're having trouble building Archiva, ask on the <a href="../mailing-lists.html">Development mailing list</a> and we'll point you in the right direction.</p></section><section>
+<h2><a name="Merging_Github_Pull_requests"></a>Merging Github Pull requests</h2>
+<p>When somebody creates a pull request for archiva on github an email is sent to the developer list.</p>
+<p>First review the changes and check for style and impact of the changes. And check the build on the jenkins server for this pull request (archiva-master-build-pr-builder).</p>
+<p>We have moved to gitbox, so merging the PR should be done on the github web site by using the PR merge features.</p></section><section>
+<h2><a name="Documentation"></a>Documentation</h2>
+<p>The version-specific documentation for the latest version of Archiva can be found in <code>archiva/archiva-docs</code>, and the top-level Archiva website --including the page you're reading now -- is in the <code>site</code> directory.</p>
+<p>To work on the documentation, execute <code>mvn site:run</code> in one of these directories, and then visit <a class="externalLink" href="http://localhost:8080">http://localhost:8080</a> to view pages as you edit them. When you're done, submit a patch in the <a href="../issue-management.html">issue tracker</a>.</p></section><section>
+<h2><a name="git_clone"></a>git clone</h2>
+<div class="source"><pre class="prettyprint">git clone git://github.com/apache/archiva.git
+or trough https
+git clone https://github.com/apache/archiva.git</pre></div></section><section>
+<h2><a name="Running_Javascript_webapp_with_jetty-maven-plugin"></a>Running Javascript webapp with jetty-maven-plugin</h2>
+<p>You can use <a class="externalLink" href="https://www.eclipse.org/jetty/documentation/current/maven-and-jetty.html">jetty-maven-plugin</a> to run the webapp without installing the war in a container. With maven3 in the top directory :</p>
+<div class="source"><pre class="prettyprint">mvn jetty:run -pl :archiva-webapp -am # use mvnDebug if you want to attach a debugger
+or
+sh ./jetty.sh # use sh ./jetty-debug.sh if you want to attach a debugger</pre></div>
+<p>Hit your browser: <a class="externalLink" href="http://localhost:9091/archiva/index.html">http://localhost:9091/archiva/index.html</a></p></section><section>
+<h2><a name="Running_the_selenium_tests_.28Web_UI_tests.29_locally"></a>Running the selenium tests (Web UI tests) locally</h2>
+<p>The selenium tests use docker containers for the selenium and browser installation. To run the tests locally you should have docker installed on your developer machine. The docker container can be built locally or pulled from the apachearchiva Dockerhub repository. To start the docker container, run the following script:</p>
+<div class="source"><pre class="prettyprint">  ./src/ci/scripts/container_webtest.sh start</pre></div>
+<p>The UI tests can be run with:</p>
+<div class="source"><pre class="prettyprint">mvn clean install -DmaxWaitTimeInMs=2000 -DseleniumRemote=true -Pci-server -Pit-js -Pchrome -pl :archiva-webapp-test</pre></div></section><section>
+<h2><a name="Maven_settings.xml"></a>Maven settings.xml</h2>
+<p>You should setup the following repositories in your settings.xml to be able to resolve the dependencies. Sometimes we need to have certain snapshot versions for plugins, so the apache snapshot repository is added.</p>
+<div class="source"><pre class="prettyprint">  &lt;profiles&gt;
+      &lt;profile&gt;
+          &lt;activation&gt;
+              &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
+          &lt;/activation&gt;
+          &lt;repositories&gt;
+              &lt;repository&gt;
+                  &lt;id&gt;central&lt;/id&gt;
+                  &lt;releases&gt;
+                      &lt;enabled&gt;true&lt;/enabled&gt;
+                  &lt;/releases&gt;
+                  &lt;snapshots&gt;
+                      &lt;enabled&gt;false&lt;/enabled&gt;
+                  &lt;/snapshots&gt;
+                  &lt;url&gt;https://repo1.maven.org/maven2&lt;/url&gt;
+              &lt;/repository&gt;
+          &lt;/repositories&gt;
+          &lt;pluginRepositories&gt;
+              &lt;pluginRepository&gt;
+                  &lt;id&gt;central&lt;/id&gt;
+                  &lt;releases&gt;
+                      &lt;enabled&gt;true&lt;/enabled&gt;
+                  &lt;/releases&gt;
+                  &lt;snapshots&gt;
+                      &lt;enabled&gt;true&lt;/enabled&gt;
+                  &lt;/snapshots&gt;
+                  &lt;url&gt;https://repo1.maven.org/maven2&lt;/url&gt;
+              &lt;/pluginRepository&gt;
+              &lt;pluginRepository&gt;
+                  &lt;id&gt;apache-snapshot&lt;/id&gt;
+                  &lt;releases&gt;
+                      &lt;enabled&gt;false&lt;/enabled&gt;
+                  &lt;/releases&gt;
+                  &lt;snapshots&gt;
+                      &lt;enabled&gt;true&lt;/enabled&gt;
+                  &lt;/snapshots&gt;
+                  &lt;url&gt;https://repository.apache.org/content/groups/snapshots&lt;/url&gt;
+              &lt;/pluginRepository&gt;
+
+          &lt;/pluginRepositories&gt;
+       &lt;/profile&gt;
+  &lt;/profiles&gt;</pre></div></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/developers/how-we-do-things.html b/docs/2.2.8/developers/how-we-do-things.html
new file mode 100644
index 0000000..9a24b54
--- /dev/null
+++ b/docs/2.2.8/developers/how-we-do-things.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/developers/how-we-do-things.apt.vm
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="date" content="2017-08-01" />
+    <title>Archiva &#x2013; How We Do Things</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">How We Do Things</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="How_We_Do_Things"></a>How We Do Things</h2>
+<p>Below are the conventions we follow in Archiva.</p><section>
+<h3><a name="Continuous_Integration"></a>Continuous Integration</h3>
+<p>We use the Jenkins Apache instance for building Archiva (and redback dependencies) on scm changes.</p>
+<p>See the tab with various builds: <a class="externalLink" href="https://builds.apache.org/view/A-D/view/Archiva/">Archiva tab</a></p>
+<p>You can test fresh builds with downloading from this Jenkins job <a class="externalLink" href="https://builds.apache.org/job/archiva-master-build/">archiva-master-build/</a>:</p>
+<ul>
+<li><a class="externalLink" href="https://builds.apache.org/job/archiva-master-build/lastSuccessfulBuild/artifact/archiva-jetty/target/apache-archiva-3.0.0-SNAPSHOT-bin.zip">standalone with embeded jetty</a> (unzip then cd bin;./archiva start running on 8080)</li>
+<li><a class="externalLink" href="https://builds.apache.org/job/archiva-master-build/lastSuccessfulBuild/artifact/archiva-modules/archiva-web/archiva-webapp/target/archiva-webapp-3.0.0-SNAPSHOT-SNAPSHOT.war">war webapp js</a></li></ul></section><section>
+<h3><a name="Code_Style"></a>Code Style</h3>
+<p>There isn't any code style that needs to be followed as long as it is consistent, can be checked in checkstyle, can be formatted in Eclipse, IDEA and NetBeans. And the following rules must be followed:</p>
+<ol style="list-style-type: decimal">
+<li>Use spaces, not tabs
+<ul>
+<li>4 spaces for Java</li>
+<li>2 spaces for XML</li></ul></li>
+<li>120 column wrap, not 80</li>
+<li>Wrap on spaces, not on '.' in a method call
+<p>You can use the existing codestyle files:</p>
+<ul>
+<li><a href="./archiva-idea-codestyle.xml">idea</a></li>
+<li><a href="./archiva-eclipse-codestyle.xml">eclipse</a></li></ul></li></ol></section><section>
+<h3><a name="Versioning"></a>Versioning</h3>
+<p>It has been established in the community that the following style would be followed for the versioning of releases:</p>
+<div>
+<pre>Milestones -&gt; Final -&gt; Patch releases (e.g. 1.1-M1, 1.1-M2, 1.1, 1.1.1, 1.1.2 )</pre></div>
+<p>As much as possible, the team is aiming for frequent releases. If the roadmap for the current development version is big, milestone releases can be applied until the final release. But if the roadmap is composed of just a small number of issues, we could proceed immediately to preparing a release candidate and push it out as the final release once it passes the vote.</p></section><section>
+<h3><a name="References"></a>References</h3>
+<ul>
+<li><a class="externalLink" href="http://old.nabble.com/Fwd%3A-What-do-we-need-to-establish--td17098487.html"> Mailing list discussion regarding conventions</a></li></ul></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/developers/publishing-site.html b/docs/2.2.8/developers/publishing-site.html
new file mode 100644
index 0000000..e324180
--- /dev/null
+++ b/docs/2.2.8/developers/publishing-site.html
@@ -0,0 +1,405 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/asciidoc/developers/publishing-site.adoc
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; </title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active "></li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<h1>Archiva Site Publishing</h1>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#general_information_about_the_site_publish_process">General information about the site publish process</a></li>
+<li><a href="#where_is_site_content_generated">Where is site content generated?</a></li>
+<li><a href="#tasks_for_publishing">Tasks for publishing</a>
+<ul class="sectlevel2">
+<li><a href="#using_the_script_linuxbash">Using the script (Linux/Bash)</a></li>
+<li><a href="#run_the_process_manually">Run the process manually</a></li>
+</ul>
+</li>
+<li><a href="#information_about_maven_script_configuration">Information about Maven / Script configuration</a></li>
+<li><a href="#information_about_site_generation">Information about site generation</a></li>
+</ul>
+</div>
+<div class="sect1">
+<h2 id="general_information_about_the_site_publish_process">General information about the site publish process</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The archiva site is built from multiple different more or less independent modules. The build process
+uses <code>maven-site-plugin</code> for generating the static HTML pages and stylesheets and <code>scm-publish-plugin</code> for
+publishing the results to the repository.</p>
+</div>
+<div class="paragraph">
+<p>The generated HTML pages are stored at a git repository:
+<a href="https://gitbox.apache.org/repos/asf?p=archiva-web-content.git"><code>archiva-web-content.git</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>The git repository contains a <code>.asf.yaml</code> file that defines the branch <code>asf-staging</code> as staging branch. The
+master branch is used by git-pub-sub to publish the official archiva site at <a href="https://archiva.apache.org" class="bare">https://archiva.apache.org</a> .</p>
+</div>
+<div class="paragraph">
+<p>If you push something to the <code>asf-staging</code> branch you can see the changes immediately at <a href="https://archiva.staged.apache.org" class="bare">https://archiva.staged.apache.org</a></p>
+</div>
+<div class="paragraph">
+<p>The maven site report and publishing plugins are configured to deploy the the asf-staging branch. That means the
+overall publishing process is the following:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Generate the site content for a module by using the scripts / maven</p>
+</li>
+<li>
+<p>Use the maven publish plugin to push the generated pages to the asf-staging branch of archiva-web-content.git</p>
+</li>
+<li>
+<p>Check the generated content at <a href="https://archiva.staged.apache.org/" class="bare">https://archiva.staged.apache.org/</a></p>
+</li>
+<li>
+<p>If the result is fine, release the new content by merging the content from <code>asf-staging</code> to the <code>master</code> branch</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>For all modules there exists a script that runs all the steps (apart from the check on the staged site). Currently
+the script runs only on Linux / Bash. For details see below.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="where_is_site_content_generated">Where is site content generated?</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The Archiva site is generated from the following components:</p>
+</div>
+<table class="table table-striped bodyTable frame-all grid-all bodyTable" style="width:100%"><colgroup><col style="width: 16.6666%;" /><col style="width: 16.6666%;" /><col style="width: 16.6666%;" /><col style="width: 16.6666%;" /><col style="width: 16.6666%;" /><col style="width: 16.667%;" /><tr class="a"><th class="halign-left valign-top">Component</th><th class="halign-left valign-top">Content</th><th class="halign-left valign-top">Git Repository</th><th class="halign-left valign-top">Path inside Repo</th><th class="halign-left valign-top">Publish Path</th><th class="halign-left valign-top">Skript</th></tr><tr class="b"><td class="halign-left valign-top">Archiva Site</td><td class="halign-left valign-top">Main Pages, like index.html. General information.</td><td class="halign-left valign-top"><a href="https://gitbox.apache.org/repos/asf?p=archiva-site.git"><code>archiva-site.git</code></a></td><td class="halign-left valign-top">/</td><td class="halign-left valign-top">/</td><td class="halign-left valign-top"><code>deploySite.sh</code></td></tr><tr class="a"><td class="halign-left valign-top">Archiva Documentation</td><td class="halign-left valign-top">Archiva User Documentation. Archiva Configuration.</td><td class="halign-left valign-top"><a href="https://gitbox.apache.org/repos/asf?p=archiva.git"><code>archiva.git</code></a></td><td class="halign-left valign-top">/archiva-docs</td><td class="halign-left valign-top">/docs/${project.version}</td><td class="halign-left valign-top"><code>archiva-docs/deploySite.sh</code></td></tr><tr class="b"><td class="halign-left valign-top">Archiva Reference Documentation</td><td class="halign-left valign-top">Developer documentation for Archiva, API Javadoc pages. Information for each maven module.</td><td class="halign-left valign-top"><a href="https://gitbox.apache.org/repos/asf?p=archiva.git"><code>archiva.git</code></a></td><td class="halign-left valign-top">/archiva-modules</td><td class="halign-left valign-top">/ref/${project.version}</td><td class="halign-left valign-top"><code>archiva-modules/deploySite.sh</code></td></tr><tr class="a"><td class="halign-left valign-top">Redback Site</td><td class="halign-left valign-top">Pages for Redback. General information about redback.</td><td class="halign-left valign-top"><a href="https://gitbox.apache.org/repos/asf?p=archiva-redback-site.git"><code>archiva-redback-site.git</code></a></td><td class="halign-left valign-top">/</td><td class="halign-left valign-top">/redback</td><td class="halign-left valign-top"><code>deploySite.sh</code></td></tr><tr class="b"><td class="halign-left valign-top">Redback Reference Documentation</td><td class="halign-left valign-top">Developer documentation for Redback, API Javadoc pages. Information for each maven module.</td><td class="halign-left valign-top"><a href="https://gitbox.apache.org/repos/asf?p=archiva-redback-core.git"><code>archiva-redback-core.git</code></a></td><td class="halign-left valign-top">/</td><td class="halign-left valign-top">/core/${project.version}</td><td class="halign-left valign-top"><code>deploySite.sh</code></td></tr><tr class="a"><td class="halign-left valign-top">Archiva Component Documentation</td><td class="halign-left valign-top">Information about the Archiva Components</td><td class="halign-left valign-top"><a href="https://gitbox.apache.org/repos/asf?p=archiva-components.git"><code>archiva-components.git</code></a></td><td class="halign-left valign-top">/</td><td class="halign-left valign-top">/components</td><td class="halign-left valign-top"><code>deploySite.sh</code></td></tr></colgroup></table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="tasks_for_publishing">Tasks for publishing</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="using_the_script_linuxbash">Using the script (Linux/Bash)</h3>
+<div class="paragraph">
+<p>The easiest way is always to use the script <code>deploySite.sh</code> in the directory of the corresponding repository.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>cd &lt;path inside repo for component&gt;
+./deploySite.sh
+...
+...
+*****************************************
+&gt;&gt;&gt;&gt; Finished the site stage process &lt;&lt;&lt;&lt;
+&gt; You can check the content in the folder target/staging or by opening the following url
+&gt; file:///archiva/archiva-modules/target/staging/ref/3.0.0-SNAPSHOT/index.html
+&gt;
+&gt; If everything is fine enter yes. After that the publish process will be started.
+Do you want to publish (yes/no)? yes</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>When this output is shown you can check the staging output for this component only on the given path.</p>
+</div>
+<div class="paragraph">
+<p>If you enter <code>y</code> or <code>yes</code> here, the content will be pushed to the <code>asf-staging</code>-branch at <code>archiva-web-content.git</code>
+If you enter any other key, the process will be aborted.</p>
+</div>
+<div class="paragraph">
+<p>After the page was pushed to the <code>asf-staging</code>-branch, you can check the result at <a href="https://archiva.staged.apache.org/" class="bare">https://archiva.staged.apache.org/</a></p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>If you would like to check the page with a local clone of archiva-web-content.git you can run the script with:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>./deploySite.sh -DsiteRepositoryUrl=scm:git:file:///${path-to-your-local-archiva}/archiva-web-content.git</pre>
+</div>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If the result on the staged URL is fine you have to merge the branch to the master branch:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre># git clone https://gitbox.apache.org/repos/asf/archiva-web-content.git
+cd archiva-web-content
+git checkout master
+git merge --ff-only asf-staging
+git push</pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="run_the_process_manually">Run the process manually</h3>
+<div class="sect3">
+<h4 id="generating_site_pages_for_a_component">Generating Site Pages for a component</h4>
+<div class="paragraph">
+<p>The script basically runs</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>mvn clean site
+mvn site:stage</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The pom.xml has a plugin definition to checkout the repository as sparse checkout to a local directory <code>.site-content</code>
+The patterns for the sparse checkout are stored in the file <code>git-sparse-checkout-pattern</code></p>
+</div>
+<div class="paragraph">
+<p>The content of the module and all submodules is put to the directory <code>target/staging/${Component Path}</code></p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="publishing_to_the_staging_branch">Publishing to the staging branch</h4>
+<div class="paragraph">
+<p>This is the part that is run, when you answer <code>y</code> or <code>yes</code> for publishing.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>mvn scm-publish:publish-scm</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This checks the differences in .site-content and pushes the differences to the <code>asf-staging</code> branch.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="information_about_maven_script_configuration">Information about Maven / Script configuration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>There are some properties in the pom.xml that are used by the deploySite.sh. You should always make sure, that
+these properties are set to the corresponding values for the given module:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>&lt;scmPubCheckoutDirectory&gt;.site-content&lt;/scmPubCheckoutDirectory&gt;: The directory for the sparse checkout</p>
+</li>
+<li>
+<p>&lt;scmPublishBranch&gt;asf-staging&lt;/scmPublishBranch&gt;: The staging branch</p>
+</li>
+<li>
+<p>&lt;scmPublishPath&gt;/&lt;/scmPublishPath&gt;: The path relative to the base URL where the content is placed</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The helper script <code>checkoutSite.sh</code> is used for running the sparse checkout of the content.</p>
+</div>
+<div class="paragraph">
+<p>For multi-module projects the CSS (site.css) is always relative to the module directory. Therefore, we have
+a link to the stylesheet at <code>/css/site.css</code> in <code>site.xml</code></p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="information_about_site_generation">Information about site generation</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Most content is written in apt and xdoc. New documentation can/should be written in asciidoc. Asciidoc needs some css modification
+to get the styles right. So please check the generated content before publishing it.</p>
+</div>
+<div class="paragraph">
+<p>For multi-module builds you should add the central <code>/css/site.css</code> to the <code>&lt;head&gt;</code>-Section in <code>site.xml</code>. Because submodules
+include only their own site.css and not the parent stylesheets. This can be done with:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>&lt;head&gt;
+        ...
+        &lt;![CDATA[    &lt;link rel="stylesheet" href="/css/site.css" type="text/css" &gt;]]&gt;
+        ...
+&lt;/head&gt;</pre>
+</div>
+</div>
+</div>
+</div>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/developers/releasing.html b/docs/2.2.8/developers/releasing.html
new file mode 100644
index 0000000..d6196cf
--- /dev/null
+++ b/docs/2.2.8/developers/releasing.html
@@ -0,0 +1,301 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/developers/releasing.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="date" content="2021-12-14" />
+    <title>Archiva &#x2013; Archiva release process</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Archiva release process</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Archiva_release_process"></a>Archiva release process</h2>
+<ol style="list-style-type: decimal">
+<li>Post to the dev list a few days before you plan to do an Archiva release</li>
+<li>Recreate the staging repository on archiva-repository.apache.org - make sure that it is not scanned (so that .index* is not created). You should delete the repository and create a new one. Your maven setting must contains the entry to be able to deploy.
+<div class="source"><pre class="prettyprint">   &lt;server&gt;
+     &lt;id&gt;archiva-repository.releases&lt;/id&gt;
+     &lt;username&gt;&lt;/username&gt;
+     &lt;password&gt;&lt;/password&gt;
+   &lt;/server&gt;</pre></div></li>
+<li>If there are changes in the parent pom, release parent pom &#x2013; <a class="externalLink" href="https://gitbox.apache.org/repos/asf/archiva-parent.git">https://gitbox.apache.org/repos/asf/archiva-parent.git</a>
+<ul>
+<li>mvn release:prepare (verify that it has been properly tagged)</li>
+<li>mvn release:perform (verify that it has been deployed correctly in the staging repo)</li></ul></li>
+<li>Update the parent pom version of archiva &#x2013; <a class="externalLink" href="https://gitbox.apache.org/repos/asf/archiva.git">https://gitbox.apache.org/repos/asf/archiva.git</a>
+<ul>
+<li>change the parent pom version to the archiva-parent version that has just been released</li>
+<li>commit the changes made</li></ul></li>
+<li>Update the release notes and the site.xml for version changes in archiva-docs</li>
+<li>Verify that the webapp-tests are building successfully. <br />Since it is in a separate profile but inside the Archiva source tree, it will not be released but will still be included in the release tag. If some tests are failing, comment it out first so that only the passing tests are executed when the webapp-tests module are built from the tag.
+<p>Currently, we do not use these tests anymore.</p></li>
+<li>Release archiva.<br />You should have a GPG agent running (preferred), and confirm it works by running &quot;gpg -ab&quot; (type some text and press Ctrl-D). You my check, if the key is in your keyring: `gpg --list-secret-keys` If you do not have a GPG agent running, make sure that you have the &quot;apache-release&quot; profile set in your settings.xml as shown below.
+<div class="source"><pre class="prettyprint">&lt;profile&gt;
+  &lt;id&gt;apache-release&lt;/id&gt;
+  &lt;properties&gt;
+    &lt;gpg.passphrase&gt;[GPG_PASSWORD]&lt;/gpg.passphrase&gt;
+  &lt;/properties&gt;
+&lt;/profile&gt;</pre></div>
+<p>Set your user credentials for the stage repo in the <i>servers</i> section of your settings.xml for <a href="#archiva-repository.releases">archiva-repository.releases</a>.</p>
+<p>Prepare your environment: We use JDK 8 for compile and publish, as JDK 7 is not supported anymore. </p>
+<div class="source"><pre class="prettyprint">export JAVA_HOME=&lt;PATH_TO_JDK8&gt;
+export PATH=$JAVA_HOME/bin:$PATH
+export MAVEN_OPTS=&quot;-Xmx6144m -XX:MaxPermSize=512m&quot; # It may work with less heap, but this is a safe value
+export JAVA_OPT=&quot;-Xmx6144m -XX:MaxPermSize=512m&quot; </pre></div>
+<p>Execute </p>
+<div class="source"><pre class="prettyprint">mvn release:prepare</pre></div>
+<p>Check that it has been properly tagged. The tag name must be.. archiva-[VERSION].</p>
+<p>You can rollback with `mvn release:rollback`. If there are errors and you have to change files, you should run `mvn release:rollback` before changing any file.</p>
+<p>If all works fine, set execute the `release:perform` task</p>
+<div class="source"><pre class="prettyprint">export JAVA_HOME=&lt;PATH_TO_JDK8&gt;
+export PATH=$JAVA_HOME/bin:$PATH</pre></div>
+<div class="source"><pre class="prettyprint">mvn release:perform</pre></div>
+<p>The perform task will push to the repository, if it was successful. After successfully running this task, it's not possible to roll back.</p>
+<p>Download the uploaded files via wget:</p>
+<div class="source"><pre class="prettyprint">ARCHV=&quot;2.2.4&quot; # Enter the new archiva version
+RELEASE_URL=&quot;http://archiva-repository.apache.org/archiva/repository/archiva-releases-stage&quot;
+wget ${RELEASE_URL}/org/apache/archiva/archiva-jetty/${ARCHV}/archiva-jetty-${ARCHV}-bin.tar.gz
+wget ${RELEASE_URL}/org/apache/archiva/archiva-jetty/${ARCHV}/archiva-jetty-${ARCHV}-bin.tar.gz.asc
+wget ${RELEASE_URL}/org/apache/archiva/archiva-jetty/${ARCHV}/archiva-jetty-${ARCHV}-bin.zip
+wget ${RELEASE_URL}/org/apache/archiva/archiva-jetty/${ARCHV}/archiva-jetty-${ARCHV}-bin.zip.asc
+# Verify the signatures:
+gpg -v archiva-jetty-${ARCHV}-bin.zip.asc
+gpg -v archiva-jetty-${ARCHV}-bin.tar.gz.asc</pre></div>
+<p>The documentation is deployed as part of the process to the final location for review in the vote:</p>
+<div class="source"><pre class="prettyprint">git checkout archiva-${ARCHV} # Checkout the release version of archiva
+cd archiva-doc
+mvn site:site
+mvn site:stage  # Check the content in target/staging
+mkdir &lt;web-content-git&gt;/docs/${ARCHV}
+cp -r target/staging/* &lt;web-content-git&gt;/docs/${ARCHV}/ # Copy to the git web content repository</pre></div>
+<p>Reference documentation</p>
+<div class="source"><pre class="prettyprint">git checkout archiva-${ARCHV} # Checkout the release version of archiva
+cd archiva-modules
+mvn site:site
+mvn site:stage  # Check the content in target/staging
+mkdir &lt;web-content-git&gt;/ref/${ARCHV}
+cp -r target/staging/* &lt;web-content-git&gt;/ref/${ARCHV}/ # Copy to the git web content repository</pre></div>
+<p>Archiva site information</p>
+<p>Update the archiva site (<a class="externalLink" href="https://gitbox.apache.org/repos/asf/archiva-site.git">https://gitbox.apache.org/repos/asf/archiva-site.git</a>) for the versions and release notes URL:</p>
+<p>Mostly these properties of the pom.xml should be edited:</p>
+<div class="source"><pre class="prettyprint">  &lt;archivaReleaseVersion&gt;2.2.6&lt;/archivaReleaseVersion&gt;
+  &lt;archivaReleaseDate&gt;16th May 2019&lt;/archivaReleaseDate&gt;
+  &lt;archivaCurrentDevVersion&gt;3.0.0-SNAPSHOT&lt;/archivaCurrentDevVersion&gt;</pre></div>
+<p>Release information may be updated. Update Security information.</p>
+<p>Run <b>deploySite.sh</b>. The script will prepare the site locally and provide information how to check the content before pushing to the remote repository.</p>
+<div class="source"><pre class="prettyprint">cd archiva-site
+./deploySite.sh
+# You can check the files locally, if you press y after the message is presented, it will be pushed to the asf-staging branch</pre></div>
+<p>The site can be checked at: https://archiva.staged.apache.org/ The downloads do not work on the staged site.</p>
+<p>Commit the sources and binaries from <code>org/apache/archiva/archiva-jetty</code> and <code>org/apache/archiva/archiva</code> to the svn distribution tree. First in dev tree: <code>https://dist.apache.org/repos/dist/dev/archiva/</code></p>
+<div class="source"><pre class="prettyprint">svn co https://dist.apache.org/repos/dist/dev/archiva/ archiva-dev-release
+cd archiva-dev-release
+sh ./release-script-svn.sh $ARCHV ${RELEASE_URL}/
+cd $ARCHV/bin
+../../verify.sh
+cd ../src/
+../../verify.sh
+# Check the output
+
+# For parent pom or redback:
+POMV=18  # New Parent POM version
+sh ./release-script-parent-pom.sh $POMV ${RELEASE_URL}/
+REDBV=2.6 # New redback version
+sh ./release-script-redback-svn.sh $REDBV ${RELEASE_URL}/</pre></div>
+<p>If the vote passes the binaries must be copied to release tree: <code>https://dist.apache.org/repos/dist/release/archiva</code></p>
+<p>Call for a vote in the dev list and wait for 72 hrs. for the vote results. 3 binding votes are necessary for the release to be finalized. If the vote fails or needs to be canceled, the version number should not be re-used if the version was made available for public download. After the vote has passed, move the files from dist dev to dist release:</p>
+<div class="source"><pre class="prettyprint">svn mv https://dist.apache.org/repos/dist/dev/archiva/${ARCHV} https://dist.apache.org/repos/dist/release/archiva/
+
+# Move also the POM and Redback and Redback Component releases, if there are new ones.</pre></div>
+<p>It needs some time until the download packages are available on the CDN.</p>
+<p>Merge the archiva-releases-stage to archiva-releases on archiva-repository.apache.org (Action -&gt; Merge on the stage repository)</p>
+<p>To sync the jars to Maven Central, you need to merge the repository archiva-releases-stage to &quot;Central Rsync Repository&quot;</p>
+<p>Mark the appropriate release version in JIRA as complete.</p>
+<p>When the new download packages are available over the download page you can remove previous versions from <a href="#https:ddist.apache.orgreposdistreleasearchiva">https:d//dist.apache.org/repos/dist/release/archiva/</a></p>
+<p>Publish the docs:</p>
+<div class="source"><pre class="prettyprint">cd archiva-web-content
+git checkout master
+git pull
+git merge asf-staging
+git push</pre></div>
+<p>Send out an announcement (Simple Text Email, no Rich-Text) of the release to:</p>
+<ul>
+<li>users@archiva.apache.org</li>
+<li>users@maven.apache.org</li>
+<li>announce@apache.org</li></ul>
+<p>If there are security incidents that should be published after release, please check the Apache information <a class="externalLink" href="http://www.apache.org/security/committers.html">http://www.apache.org/security/committers.html</a> for further actions.</p>
+<p>And finally remove old versions from the distribution directory. All versions that are not mentioned in the download page should be removed:</p>
+<div class="source"><pre class="prettyprint">svn del -m&quot;Archiving release 2.2.x&quot;  https://dist.apache.org/repos/dist/release/archiva/2.2.x</pre></div>
+<p>See also: https://infra.apache.org/release-download-pages.html</p></li></ol></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/download.cgi b/docs/2.2.8/download.cgi
new file mode 100755
index 0000000..20d30e5
--- /dev/null
+++ b/docs/2.2.8/download.cgi
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Just call the standard mirrors.cgi script. It will use download.html
+# as the input template.
+#
+exec /www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/docs/2.2.8/download.html b/docs/2.2.8/download.html
new file mode 100644
index 0000000..053fa40
--- /dev/null
+++ b/docs/2.2.8/download.html
@@ -0,0 +1,392 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/xdoc/download.xml.vm
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; Download Apache Archiva</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Download Apache Archiva</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+
+  
+    <section>
+<h2><a name="Download_Apache_Archiva_2.2.7"></a>Download Apache Archiva 2.2.7</h2>
+      
+<p>Archiva is distributed under the <a class="externalLink" href="https://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
+      <section>
+<h3><a name="System_Requirements"></a>System Requirements</h3>
+        
+<table border="0" class="table table-striped">
+          
+<tr class="a">
+            
+<td align="left"><b>JDK</b></td>
+            
+<td>1.8</td>
+          </tr>
+          
+<tr class="b">
+            
+<td align="left"><b>No minimum requirement</b></td>
+            
+<td>The Archiva application is in itself about 50MB but will use more disk space to store repository contents</td>
+          </tr>
+          
+<tr class="a">
+            
+<td align="left"><b>Operating System</b></td>
+            
+<td>Support for Linux, Mac OS, Solaris and Windows.  Tested on Windows XP SP2, Ubuntu Linux, and Mac OS X.</td>
+          </tr>
+        </table>
+      </section>
+      <a name="mirror"></a>
+      <section>
+<h3><a name="Mirror"></a>Mirror</h3>
+
+        
+<p>
+          [if-any logo]
+          <a href="[link]">
+            <img src="[logo]" align="right" border="0" alt="logo" />
+          </a>
+          [end]
+          The currently selected mirror is
+          <b>[preferred]</b>.
+          If you encounter a problem with this mirror,
+          please select the other mirror.
+        </p>
+
+        <form action="[location]" method="get" id="SelectMirror" class="form-inline">
+          Other mirrors:
+          <select name="Preferred" class="input-xlarge">
+            [if-any http]
+            [for http]
+            <option value="[http]">[http]</option>
+            [end]
+            [end]
+            [if-any ftp]
+            [for ftp]
+            <option value="[ftp]">[ftp]</option>
+            [end]
+            [end]
+            [if-any backup]
+            [for backup]
+            <option value="[backup]">[backup] (backup)</option>
+            [end]
+            [end]
+          </select>
+          <input type="submit" value="Change" class="btn" />
+        </form>
+
+      </section>
+      <section>
+<h3><a name="Current_Release:_Archiva_2.2.7"></a>Current Release: Archiva 2.2.7</h3>
+        
+<p>
+          This is the currently recommended version of Archiva.
+
+          </p>
+<ul>
+            
+<li><a href="./docs/2.2.7/release-notes.html">Release Notes</a></li>
+            
+<li><a href="./known-issues.html">Known Issues and Errata</a></li>
+              
+<li><a href="./security.html">Security Reports</a></li>
+          </ul>
+        
+        
+<p>
+          </p>
+<table border="0" class="table table-striped">
+            <thead>
+              
+<tr class="a">
+                
+<th>Archiva 2.2.7 </th>
+                
+<th>File-Type</th>
+                
+<th>SHA256 Checksum</th>
+                
+<th>SHA512 Checksum</th>
+                
+<th>Signature</th>
+              </tr>
+            </thead>
+            <tbody>
+              
+<tr class="b">
+                
+<td align="left">Archiva 2.2.7 Standalone</td>
+                
+<td><a href="[preferred]archiva/2.2.7/binaries/apache-archiva-2.2.7-bin.tar.gz">tar.gz</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7-bin.tar.gz.sha256">sha256</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7-bin.tar.gz.sha512">sha512</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7-bin.tar.gz.asc">asc</a></td>
+              </tr>
+              
+<tr class="a">
+                
+<td align="left"></td>
+                
+<td><a href="[preferred]archiva/2.2.7/binaries/apache-archiva-2.2.7-bin.zip">zip</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7-bin.zip.sha256">sha256</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7-bin.zip.sha512">sha512</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7-bin.zip.asc">asc</a></td>
+              </tr>
+              
+<tr class="b">
+                
+<td align="left">Archiva 2.2.7 WAR</td>
+                
+<td><a href="[preferred]archiva/2.2.7/binaries/apache-archiva-2.2.7.war">war</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7.war.sha256">sha256</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7.war.sha512">sha512</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/binaries/apache-archiva-2.2.7.war.asc">asc</a></td>
+              </tr>
+              
+<tr class="a">
+                
+<td align="left">Archiva 2.2.7 Sources</td>
+                
+<td><a href="[preferred]archiva/2.2.7/src/apache-archiva-2.2.7-src.zip">source zip</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/src/apache-archiva-2.2.7-src.zip.sha256">sha256</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/src/apache-archiva-2.2.7-src.zip.sha512">sha512</a></td>
+                
+<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.7/src/apache-archiva-2.2.7-src.zip.asc">asc</a></td>
+              </tr>
+            </tbody>
+          </table>
+        
+
+      </section>
+
+        
+      <section>
+<h3><a name="Previous_Versions"></a>Previous Versions</h3>
+        
+<p>
+          More releases are available in the <a class="externalLink" href="https://archive.apache.org/dist/archiva/">Apache Archiva Archives</a>
+          or prior to the graduation from Maven, in the <a class="externalLink" href="https://archive.apache.org/dist/maven/binaries/">Apache Maven Archives</a>.
+        </p>
+      </section>
+      <section>
+<h3><a name="Verify_the_integrity_of_the_files"></a>Verify the integrity of the files</h3>
+        
+<p>
+          We recommend that you verify the integrity of the downloaded files using the PGP signatures and SHA, MD5 checksums.
+
+          The PGP signatures can be verified using PGP or GPG. First download the <a class="externalLink" href="https://www.apache.org/dist/archiva/KEYS">KEYS</a>
+          as well as the asc signature file for the particular distribution. Make sure you get these files from
+          <a class="externalLink" href="https://www.apache.org/dist/archiva">the main distribution directory</a>,
+          rather than from a mirror. <br />
+          Then verify the signatures using:
+        </p>
+          
+<div>
+<pre>
+          % pgpk -a KEYS
+          % pgpv $filename.tar.gz.asc
+          or
+          % pgp -ka KEYS
+          % pgp $filename.tar.gz.asc
+          or
+          % gpg --import KEYS
+          % gpg --verify $filename.tar.gz.asc
+          </pre></div>
+        
+<p>
+          Please use the SHA checksum for verification if available, use MD5 only for the older versions, that have no SHA checksum available.
+          To verify the SHA signature on the files, you can use utilities for your platform. A Unix program called sha1sum or sha256sum (md5sum) is included in many
+          Unix distributions. It is also available as part of <a class="externalLink" href="https://www.gnu.org/software/coreutils/">GNU Coreutils</a>.
+          Windows users can get binary checksum utility e.g. from <a class="externalLink" href="https://www.slavasoft.com/hashcalc/">SlavaSoft</a>.
+        </p>
+      </section>
+    </section>
+  
+
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/errors/404.html b/docs/2.2.8/errors/404.html
new file mode 100644
index 0000000..3bc16cd
--- /dev/null
+++ b/docs/2.2.8/errors/404.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/errors/404.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; Page Not found</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Page Not found</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Page_Not_Found"></a>Page Not Found</h2>
+<p>We're sorry, but the page you requested cannot be found. This may be because:</p>
+<ul>
+<li>The page has moved, was outdated, or has not been created yet</li>
+<li>You typed the address incorrectly</li>
+<li>You followed a link from another site that pointed to this page</li></ul>
+<p>If you came to this page by following a broken link on our site, you can report the <a class="externalLink" href="http://jira.codehaus.org/browse/MRM"> problem</a>.</p></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/fonts/glyphicons-halflings-regular.eot b/docs/2.2.8/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000..af587a8
--- /dev/null
+++ b/docs/2.2.8/fonts/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/docs/2.2.8/fonts/glyphicons-halflings-regular.svg b/docs/2.2.8/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..4469488
--- /dev/null
+++ b/docs/2.2.8/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,229 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
+<font-face units-per-em="1200" ascent="960" descent="-240" />
+<missing-glyph horiz-adv-x="500" />
+<glyph />
+<glyph />
+<glyph unicode="&#xd;" />
+<glyph unicode=" " />
+<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
+<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#x2000;" horiz-adv-x="652" />
+<glyph unicode="&#x2001;" horiz-adv-x="1304" />
+<glyph unicode="&#x2002;" horiz-adv-x="652" />
+<glyph unicode="&#x2003;" horiz-adv-x="1304" />
+<glyph unicode="&#x2004;" horiz-adv-x="434" />
+<glyph unicode="&#x2005;" horiz-adv-x="326" />
+<glyph unicode="&#x2006;" horiz-adv-x="217" />
+<glyph unicode="&#x2007;" horiz-adv-x="217" />
+<glyph unicode="&#x2008;" horiz-adv-x="163" />
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
+<glyph unicode="&#x205f;" horiz-adv-x="326" />
+<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
+<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
+<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
+<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
+<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
+<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
+<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
+<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
+<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
+<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
+<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
+<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
+<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
+<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
+<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
+<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
+<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
+<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
+<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
+<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
+<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
+<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
+<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
+<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
+<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
+<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
+<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
+<glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
+<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
+<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
+<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
+<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
+<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
+<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
+<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
+<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
+<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
+<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
+<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
+<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
+<glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
+<glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
+<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
+<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
+<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
+<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
+<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
+<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
+<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
+<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
+<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
+<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
+<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
+<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
+<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
+<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
+<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
+<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
+<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
+<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
+<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
+<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
+<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
+<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
+<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
+<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
+<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
+<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
+<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
+<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
+<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
+<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
+<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
+<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
+<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
+<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
+<glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
+<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
+<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
+<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
+<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
+<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
+<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
+<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
+<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
+<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
+<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
+<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
+<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
+<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
+<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
+<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
+<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
+<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
+<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
+<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
+<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
+<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
+<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
+<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
+<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
+<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
+<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
+<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
+<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
+<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
+<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
+<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
+<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
+<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
+<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
+<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
+<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
+<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
+<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
+<glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
+<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
+<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
+<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
+<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
+<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
+<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
+<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
+<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
+<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
+<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
+<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
+<glyph unicode="&#xe143;" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
+<glyph unicode="&#xe144;" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
+<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
+<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
+<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
+<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
+<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
+<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
+<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
+<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
+<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
+<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
+<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
+<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
+<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
+<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
+<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
+<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
+<glyph unicode="&#xe162;" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
+<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
+<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
+<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
+<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
+<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
+<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
+<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
+<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
+<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
+<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
+<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
+<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
+<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
+<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
+<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
+<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
+<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
+<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
+<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
+<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
+<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
+<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
+<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
+<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
+<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
+<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
+<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
+<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
+<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
+<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
+<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
+<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/docs/2.2.8/fonts/glyphicons-halflings-regular.ttf b/docs/2.2.8/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000..8681f1e
--- /dev/null
+++ b/docs/2.2.8/fonts/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/docs/2.2.8/fonts/glyphicons-halflings-regular.woff b/docs/2.2.8/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..1e69f48
--- /dev/null
+++ b/docs/2.2.8/fonts/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/docs/2.2.8/get-involved.html b/docs/2.2.8/get-involved.html
new file mode 100644
index 0000000..3b36ea0
--- /dev/null
+++ b/docs/2.2.8/get-involved.html
@@ -0,0 +1,214 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/get-involved.apt.vm
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="date" content="2012-01-19" />
+    <title>Archiva &#x2013; Archiva Community - Get Involved</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Archiva Community - Get Involved</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Getting_Involved_in_the_Archiva_Project"></a>Getting Involved in the Archiva Project</h2>
+<p>Archiva is an open source project and relies heavily on an active community. If you need help, you should look to the community. Equally, please look for ways that you may contribute back.</p>
+<p>This page provides some pointers for receiving help and contributing to the Archiva community.</p><section>
+<h3><a name="Getting_Help"></a>Getting Help</h3>
+<p>There are a number of ways to find help if you have an issue. </p>
+<ul>
+<li><b>Read the documentation</b><br />Read the <a class="externalLink" href="http://archiva.apache.org/docs/3.0.0-SNAPSHOT/userguide">user</a> and <a class="externalLink" href="http://archiva.apache.org/docs/3.0.0-SNAPSHOT/adminguide">administration</a> documentation. </li>
+<li><b>Search the Wiki</b><br />Search the <a class="externalLink" href="http://cwiki.apache.org/confluence/display/ARCHIVA">Archiva Wiki</a>. Lots of useful information has been contributed by users here.</li>
+<li><b>Submit an issue</b><br />Search the <a href="./issue-management.html">Jira</a> issue tracking system. The problem you are experiencing may be a known issue and others may have suggested work-arounds. If the issue is new, you should consider submitting a report.</li>
+<li><b>Search the mailing lists</b><br />Search the mailing lists. Look <a href="./mailing-lists.html">here</a> for a list of Archiva mailing lists. If you cannot find everything you need, ask a question on the appropriate list.</li></ul><section>
+<h4><a name="More_Information"></a>More Information</h4>
+<p>If you are new to Archiva (or Maven), there are a number of helpful resources on the Maven website which provide step-by-step guides to getting help, useful information regarding etiquette, and lots of other resources.</p>
+<p>Check out:</p>
+<ul>
+<li><a class="externalLink" href="http://maven.apache.org/community.html">The Maven Community</a></li>
+<li><a class="externalLink" href="http://maven.apache.org/users/getting-help.html">Getting Help with Maven</a></li></ul></section></section><section>
+<h3><a name="How_to_Contribute"></a>How to Contribute</h3>
+<p>As with any open source project, there are several ways you can help:</p>
+<ul>
+<li><b>Join a mailing list</b><br />Join a <a href="./mailing-lists.html">mailing list</a> and answer other user's questions. You can also meet up with developers and users on <code>#archiva</code> on <code>irc.freenode.net</code></li>
+<li><b>Fix bugs</b><br />Report bugs, feature requests and other issues in the <a href="./issue-management.html">Jira</a> issue tracking system. Also, read up on <a href="./developers/how-we-do-things.html">how we do things</a> in Archiva.</li>
+<li><b>Build it</b><br />Check out the <a href="./source-repository.html">source code</a> and <a href="./developers/building.html">build Archiva</a> for yourself. Fix bugs and submit patches for reported issues (both those you find, or that others have filed).</li>
+<li><b>Write documentation</b><br />Help with the documentation by pointing out areas that are lacking or unclear, and if you are so inclined, submitting patches to correct it. You can quickly contribute rough thoughts to the <a class="externalLink" href="http://cwiki.apache.org/confluence/display/ARCHIVA"> wiki</a>, or you can volunteer to help collate and organise information that is already there.</li>
+<li><b>Contribute Patches</b> You can attache source patches to our JIRA. Or contribute using github pull requests our github source mirror is available here <a class="externalLink" href="https://github.com/apache/archiva">https://github.com/apache/archiva</a></li></ul>
+<p>Your participation in the community is much appreciated!</p><section>
+<h4><a name="More_Information"></a>More Information</h4>
+<p>If you are new to Archiva (or Maven), there are a number of helpful resources on the Maven website regarding contribution back to the community.</p>
+<p>Check out:</p>
+<ul>
+<li><a class="externalLink" href="http://maven.apache.org/community.html">The Maven Community</a> </li>
+<li><a class="externalLink" href="http://maven.apache.org/guides/development/guide-helping.html">Guide to helping with Maven</a></li></ul></section></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/images/accessories-text-editor.png b/docs/2.2.8/images/accessories-text-editor.png
new file mode 100644
index 0000000..abc3366
--- /dev/null
+++ b/docs/2.2.8/images/accessories-text-editor.png
Binary files differ
diff --git a/docs/2.2.8/images/add-metadata.png b/docs/2.2.8/images/add-metadata.png
new file mode 100644
index 0000000..e4fda3a
--- /dev/null
+++ b/docs/2.2.8/images/add-metadata.png
Binary files differ
diff --git a/docs/2.2.8/images/add.gif b/docs/2.2.8/images/add.gif
new file mode 100644
index 0000000..1cb3dbf
--- /dev/null
+++ b/docs/2.2.8/images/add.gif
Binary files differ
diff --git a/docs/2.2.8/images/advanced-search.jpg b/docs/2.2.8/images/advanced-search.jpg
new file mode 100644
index 0000000..1d1e951
--- /dev/null
+++ b/docs/2.2.8/images/advanced-search.jpg
Binary files differ
diff --git a/docs/2.2.8/images/apache-maven-project-2.png b/docs/2.2.8/images/apache-maven-project-2.png
new file mode 100644
index 0000000..6c096ec
--- /dev/null
+++ b/docs/2.2.8/images/apache-maven-project-2.png
Binary files differ
diff --git a/docs/2.2.8/images/appearance-configuration.png b/docs/2.2.8/images/appearance-configuration.png
new file mode 100644
index 0000000..e25daff
--- /dev/null
+++ b/docs/2.2.8/images/appearance-configuration.png
Binary files differ
diff --git a/docs/2.2.8/images/application-certificate.png b/docs/2.2.8/images/application-certificate.png
new file mode 100644
index 0000000..cc6aff6
--- /dev/null
+++ b/docs/2.2.8/images/application-certificate.png
Binary files differ
diff --git a/docs/2.2.8/images/archiva-report.png b/docs/2.2.8/images/archiva-report.png
new file mode 100644
index 0000000..32c9358
--- /dev/null
+++ b/docs/2.2.8/images/archiva-report.png
Binary files differ
diff --git a/docs/2.2.8/images/archiva.png b/docs/2.2.8/images/archiva.png
new file mode 100644
index 0000000..6965e63
--- /dev/null
+++ b/docs/2.2.8/images/archiva.png
Binary files differ
diff --git a/docs/2.2.8/images/arrow.png b/docs/2.2.8/images/arrow.png
new file mode 100644
index 0000000..8c6e12f
--- /dev/null
+++ b/docs/2.2.8/images/arrow.png
Binary files differ
diff --git a/docs/2.2.8/images/artifact-content.png b/docs/2.2.8/images/artifact-content.png
new file mode 100644
index 0000000..73d53c2
--- /dev/null
+++ b/docs/2.2.8/images/artifact-content.png
Binary files differ
diff --git a/docs/2.2.8/images/artifact-download.png b/docs/2.2.8/images/artifact-download.png
new file mode 100644
index 0000000..9f1f703
--- /dev/null
+++ b/docs/2.2.8/images/artifact-download.png
Binary files differ
diff --git a/docs/2.2.8/images/artifact-info.png b/docs/2.2.8/images/artifact-info.png
new file mode 100644
index 0000000..4ee93f1
--- /dev/null
+++ b/docs/2.2.8/images/artifact-info.png
Binary files differ
diff --git a/docs/2.2.8/images/books/apache_maven_2_effective_implementation.jpg b/docs/2.2.8/images/books/apache_maven_2_effective_implementation.jpg
new file mode 100644
index 0000000..c5d1b5c
--- /dev/null
+++ b/docs/2.2.8/images/books/apache_maven_2_effective_implementation.jpg
Binary files differ
diff --git a/docs/2.2.8/images/books/java_power_tools.gif b/docs/2.2.8/images/books/java_power_tools.gif
new file mode 100644
index 0000000..87e929d
--- /dev/null
+++ b/docs/2.2.8/images/books/java_power_tools.gif
Binary files differ
diff --git a/docs/2.2.8/images/browsing.png b/docs/2.2.8/images/browsing.png
new file mode 100644
index 0000000..74c2c43
--- /dev/null
+++ b/docs/2.2.8/images/browsing.png
Binary files differ
diff --git a/docs/2.2.8/images/collapsed.gif b/docs/2.2.8/images/collapsed.gif
new file mode 100644
index 0000000..6e71084
--- /dev/null
+++ b/docs/2.2.8/images/collapsed.gif
Binary files differ
diff --git a/docs/2.2.8/images/conflicting-artifacts.png b/docs/2.2.8/images/conflicting-artifacts.png
new file mode 100644
index 0000000..c545e8d
--- /dev/null
+++ b/docs/2.2.8/images/conflicting-artifacts.png
Binary files differ
diff --git a/docs/2.2.8/images/consumers.png b/docs/2.2.8/images/consumers.png
new file mode 100644
index 0000000..4fa21ca
--- /dev/null
+++ b/docs/2.2.8/images/consumers.png
Binary files differ
diff --git a/docs/2.2.8/images/contact-new.png b/docs/2.2.8/images/contact-new.png
new file mode 100644
index 0000000..ebc4316
--- /dev/null
+++ b/docs/2.2.8/images/contact-new.png
Binary files differ
diff --git a/docs/2.2.8/images/delete-artifact.png b/docs/2.2.8/images/delete-artifact.png
new file mode 100644
index 0000000..fc3670f
--- /dev/null
+++ b/docs/2.2.8/images/delete-artifact.png
Binary files differ
diff --git a/docs/2.2.8/images/delete-groupid.png b/docs/2.2.8/images/delete-groupid.png
new file mode 100644
index 0000000..6d604da
--- /dev/null
+++ b/docs/2.2.8/images/delete-groupid.png
Binary files differ
diff --git a/docs/2.2.8/images/delete-metadata.png b/docs/2.2.8/images/delete-metadata.png
new file mode 100644
index 0000000..3b0e5f3
--- /dev/null
+++ b/docs/2.2.8/images/delete-metadata.png
Binary files differ
diff --git a/docs/2.2.8/images/dependencies.png b/docs/2.2.8/images/dependencies.png
new file mode 100644
index 0000000..0f908dd
--- /dev/null
+++ b/docs/2.2.8/images/dependencies.png
Binary files differ
diff --git a/docs/2.2.8/images/dependency-tree.png b/docs/2.2.8/images/dependency-tree.png
new file mode 100644
index 0000000..74c9265
--- /dev/null
+++ b/docs/2.2.8/images/dependency-tree.png
Binary files differ
diff --git a/docs/2.2.8/images/document-properties.png b/docs/2.2.8/images/document-properties.png
new file mode 100644
index 0000000..34c2409
--- /dev/null
+++ b/docs/2.2.8/images/document-properties.png
Binary files differ
diff --git a/docs/2.2.8/images/drive-harddisk.png b/docs/2.2.8/images/drive-harddisk.png
new file mode 100644
index 0000000..d7ce475
--- /dev/null
+++ b/docs/2.2.8/images/drive-harddisk.png
Binary files differ
diff --git a/docs/2.2.8/images/error-message.png b/docs/2.2.8/images/error-message.png
new file mode 100644
index 0000000..021863f
--- /dev/null
+++ b/docs/2.2.8/images/error-message.png
Binary files differ
diff --git a/docs/2.2.8/images/external-link-12x12.png b/docs/2.2.8/images/external-link-12x12.png
new file mode 100644
index 0000000..8ea642e
--- /dev/null
+++ b/docs/2.2.8/images/external-link-12x12.png
Binary files differ
diff --git a/docs/2.2.8/images/external-link.png b/docs/2.2.8/images/external-link.png
new file mode 100644
index 0000000..bd5fbd4
--- /dev/null
+++ b/docs/2.2.8/images/external-link.png
Binary files differ
diff --git a/docs/2.2.8/images/file-locking.png b/docs/2.2.8/images/file-locking.png
new file mode 100644
index 0000000..bb749d3
--- /dev/null
+++ b/docs/2.2.8/images/file-locking.png
Binary files differ
diff --git a/docs/2.2.8/images/find-artifact-security.png b/docs/2.2.8/images/find-artifact-security.png
new file mode 100644
index 0000000..bbc4682
--- /dev/null
+++ b/docs/2.2.8/images/find-artifact-security.png
Binary files differ
diff --git a/docs/2.2.8/images/find-artifact.png b/docs/2.2.8/images/find-artifact.png
new file mode 100644
index 0000000..af6b35f
--- /dev/null
+++ b/docs/2.2.8/images/find-artifact.png
Binary files differ
diff --git a/docs/2.2.8/images/fix.gif b/docs/2.2.8/images/fix.gif
new file mode 100644
index 0000000..b7eb3dc
--- /dev/null
+++ b/docs/2.2.8/images/fix.gif
Binary files differ
diff --git a/docs/2.2.8/images/icon_error_sml.gif b/docs/2.2.8/images/icon_error_sml.gif
new file mode 100644
index 0000000..12e9a01
--- /dev/null
+++ b/docs/2.2.8/images/icon_error_sml.gif
Binary files differ
diff --git a/docs/2.2.8/images/icon_help_sml.gif b/docs/2.2.8/images/icon_help_sml.gif
new file mode 100644
index 0000000..aaf20e6
--- /dev/null
+++ b/docs/2.2.8/images/icon_help_sml.gif
Binary files differ
diff --git a/docs/2.2.8/images/icon_info_sml.gif b/docs/2.2.8/images/icon_info_sml.gif
new file mode 100644
index 0000000..b776326
--- /dev/null
+++ b/docs/2.2.8/images/icon_info_sml.gif
Binary files differ
diff --git a/docs/2.2.8/images/icon_success_sml.gif b/docs/2.2.8/images/icon_success_sml.gif
new file mode 100644
index 0000000..0a19527
--- /dev/null
+++ b/docs/2.2.8/images/icon_success_sml.gif
Binary files differ
diff --git a/docs/2.2.8/images/icon_warning_sml.gif b/docs/2.2.8/images/icon_warning_sml.gif
new file mode 100644
index 0000000..ac6ad6a
--- /dev/null
+++ b/docs/2.2.8/images/icon_warning_sml.gif
Binary files differ
diff --git a/docs/2.2.8/images/image-x-generic.png b/docs/2.2.8/images/image-x-generic.png
new file mode 100644
index 0000000..ab49efb
--- /dev/null
+++ b/docs/2.2.8/images/image-x-generic.png
Binary files differ
diff --git a/docs/2.2.8/images/internet-web-browser.png b/docs/2.2.8/images/internet-web-browser.png
new file mode 100644
index 0000000..307d6ac
--- /dev/null
+++ b/docs/2.2.8/images/internet-web-browser.png
Binary files differ
diff --git a/docs/2.2.8/images/latest-events.png b/docs/2.2.8/images/latest-events.png
new file mode 100644
index 0000000..8232340
--- /dev/null
+++ b/docs/2.2.8/images/latest-events.png
Binary files differ
diff --git a/docs/2.2.8/images/ldap-configuration.png b/docs/2.2.8/images/ldap-configuration.png
new file mode 100644
index 0000000..b83fb1b
--- /dev/null
+++ b/docs/2.2.8/images/ldap-configuration.png
Binary files differ
diff --git a/docs/2.2.8/images/ldap-group-roles-mapping.png b/docs/2.2.8/images/ldap-group-roles-mapping.png
new file mode 100644
index 0000000..4558187
--- /dev/null
+++ b/docs/2.2.8/images/ldap-group-roles-mapping.png
Binary files differ
diff --git a/docs/2.2.8/images/legacy-support-add.png b/docs/2.2.8/images/legacy-support-add.png
new file mode 100644
index 0000000..4e0c15e
--- /dev/null
+++ b/docs/2.2.8/images/legacy-support-add.png
Binary files differ
diff --git a/docs/2.2.8/images/legacy-support-list.png b/docs/2.2.8/images/legacy-support-list.png
new file mode 100644
index 0000000..3a8e81a
--- /dev/null
+++ b/docs/2.2.8/images/legacy-support-list.png
Binary files differ
diff --git a/docs/2.2.8/images/logos/build-by-maven-black.png b/docs/2.2.8/images/logos/build-by-maven-black.png
new file mode 100644
index 0000000..919fd0f
--- /dev/null
+++ b/docs/2.2.8/images/logos/build-by-maven-black.png
Binary files differ
diff --git a/docs/2.2.8/images/logos/build-by-maven-white.png b/docs/2.2.8/images/logos/build-by-maven-white.png
new file mode 100644
index 0000000..7d44c9c
--- /dev/null
+++ b/docs/2.2.8/images/logos/build-by-maven-white.png
Binary files differ
diff --git a/docs/2.2.8/images/logos/maven-feather.png b/docs/2.2.8/images/logos/maven-feather.png
new file mode 100644
index 0000000..b5ada83
--- /dev/null
+++ b/docs/2.2.8/images/logos/maven-feather.png
Binary files differ
diff --git a/docs/2.2.8/images/mailing-lists.png b/docs/2.2.8/images/mailing-lists.png
new file mode 100644
index 0000000..637bfdc
--- /dev/null
+++ b/docs/2.2.8/images/mailing-lists.png
Binary files differ
diff --git a/docs/2.2.8/images/managed-repositories.png b/docs/2.2.8/images/managed-repositories.png
new file mode 100644
index 0000000..aa65cd2
--- /dev/null
+++ b/docs/2.2.8/images/managed-repositories.png
Binary files differ
diff --git a/docs/2.2.8/images/modal-confirm-dialog.png b/docs/2.2.8/images/modal-confirm-dialog.png
new file mode 100644
index 0000000..5f2c1ba
--- /dev/null
+++ b/docs/2.2.8/images/modal-confirm-dialog.png
Binary files differ
diff --git a/docs/2.2.8/images/network-configuration.png b/docs/2.2.8/images/network-configuration.png
new file mode 100644
index 0000000..9d0511e
--- /dev/null
+++ b/docs/2.2.8/images/network-configuration.png
Binary files differ
diff --git a/docs/2.2.8/images/network-proxies.png b/docs/2.2.8/images/network-proxies.png
new file mode 100644
index 0000000..227f9ab
--- /dev/null
+++ b/docs/2.2.8/images/network-proxies.png
Binary files differ
diff --git a/docs/2.2.8/images/network-server.png b/docs/2.2.8/images/network-server.png
new file mode 100644
index 0000000..1d12e19
--- /dev/null
+++ b/docs/2.2.8/images/network-server.png
Binary files differ
diff --git a/docs/2.2.8/images/package-x-generic.png b/docs/2.2.8/images/package-x-generic.png
new file mode 100644
index 0000000..8b7e9e6
--- /dev/null
+++ b/docs/2.2.8/images/package-x-generic.png
Binary files differ
diff --git a/docs/2.2.8/images/profiles/pre-release.png b/docs/2.2.8/images/profiles/pre-release.png
new file mode 100644
index 0000000..d448e85
--- /dev/null
+++ b/docs/2.2.8/images/profiles/pre-release.png
Binary files differ
diff --git a/docs/2.2.8/images/profiles/retired.png b/docs/2.2.8/images/profiles/retired.png
new file mode 100644
index 0000000..f89f6a2
--- /dev/null
+++ b/docs/2.2.8/images/profiles/retired.png
Binary files differ
diff --git a/docs/2.2.8/images/profiles/sandbox.png b/docs/2.2.8/images/profiles/sandbox.png
new file mode 100644
index 0000000..f88b362
--- /dev/null
+++ b/docs/2.2.8/images/profiles/sandbox.png
Binary files differ
diff --git a/docs/2.2.8/images/proxy-connectors-list.png b/docs/2.2.8/images/proxy-connectors-list.png
new file mode 100644
index 0000000..9c00cb5
--- /dev/null
+++ b/docs/2.2.8/images/proxy-connectors-list.png
Binary files differ
diff --git a/docs/2.2.8/images/proxy-connectors-lists.png b/docs/2.2.8/images/proxy-connectors-lists.png
new file mode 100644
index 0000000..781ff0f
--- /dev/null
+++ b/docs/2.2.8/images/proxy-connectors-lists.png
Binary files differ
diff --git a/docs/2.2.8/images/proxy-connectors-order.png b/docs/2.2.8/images/proxy-connectors-order.png
new file mode 100644
index 0000000..3d90a18
--- /dev/null
+++ b/docs/2.2.8/images/proxy-connectors-order.png
Binary files differ
diff --git a/docs/2.2.8/images/proxy-connectors-policies.png b/docs/2.2.8/images/proxy-connectors-policies.png
new file mode 100644
index 0000000..a0e5539
--- /dev/null
+++ b/docs/2.2.8/images/proxy-connectors-policies.png
Binary files differ
diff --git a/docs/2.2.8/images/proxy-connectors-rule-edit.png b/docs/2.2.8/images/proxy-connectors-rule-edit.png
new file mode 100644
index 0000000..207136a
--- /dev/null
+++ b/docs/2.2.8/images/proxy-connectors-rule-edit.png
Binary files differ
diff --git a/docs/2.2.8/images/proxy-connectors-rules.png b/docs/2.2.8/images/proxy-connectors-rules.png
new file mode 100644
index 0000000..3c90add
--- /dev/null
+++ b/docs/2.2.8/images/proxy-connectors-rules.png
Binary files differ
diff --git a/docs/2.2.8/images/redback-properties.png b/docs/2.2.8/images/redback-properties.png
new file mode 100644
index 0000000..dba8f78
--- /dev/null
+++ b/docs/2.2.8/images/redback-properties.png
Binary files differ
diff --git a/docs/2.2.8/images/redback-runtime-conf-general.png b/docs/2.2.8/images/redback-runtime-conf-general.png
new file mode 100644
index 0000000..ce9d571
--- /dev/null
+++ b/docs/2.2.8/images/redback-runtime-conf-general.png
Binary files differ
diff --git a/docs/2.2.8/images/redback-runtime-conf-users-cache.png b/docs/2.2.8/images/redback-runtime-conf-users-cache.png
new file mode 100644
index 0000000..493d093
--- /dev/null
+++ b/docs/2.2.8/images/redback-runtime-conf-users-cache.png
Binary files differ
diff --git a/docs/2.2.8/images/remote-repositories.png b/docs/2.2.8/images/remote-repositories.png
new file mode 100644
index 0000000..2dd6d64
--- /dev/null
+++ b/docs/2.2.8/images/remote-repositories.png
Binary files differ
diff --git a/docs/2.2.8/images/remove.gif b/docs/2.2.8/images/remove.gif
new file mode 100644
index 0000000..fc65631
--- /dev/null
+++ b/docs/2.2.8/images/remove.gif
Binary files differ
diff --git a/docs/2.2.8/images/repo-edit.png b/docs/2.2.8/images/repo-edit.png
new file mode 100644
index 0000000..65e2d8b
--- /dev/null
+++ b/docs/2.2.8/images/repo-edit.png
Binary files differ
diff --git a/docs/2.2.8/images/repo-grids.png b/docs/2.2.8/images/repo-grids.png
new file mode 100644
index 0000000..e549260
--- /dev/null
+++ b/docs/2.2.8/images/repo-grids.png
Binary files differ
diff --git a/docs/2.2.8/images/repositories.png b/docs/2.2.8/images/repositories.png
new file mode 100644
index 0000000..0d548e7
--- /dev/null
+++ b/docs/2.2.8/images/repositories.png
Binary files differ
diff --git a/docs/2.2.8/images/repository-groups.png b/docs/2.2.8/images/repository-groups.png
new file mode 100644
index 0000000..6ed8495
--- /dev/null
+++ b/docs/2.2.8/images/repository-groups.png
Binary files differ
diff --git a/docs/2.2.8/images/repository-merge-select-target.png b/docs/2.2.8/images/repository-merge-select-target.png
new file mode 100644
index 0000000..952652d
--- /dev/null
+++ b/docs/2.2.8/images/repository-merge-select-target.png
Binary files differ
diff --git a/docs/2.2.8/images/repository-merge.png b/docs/2.2.8/images/repository-merge.png
new file mode 100644
index 0000000..3df0fb2
--- /dev/null
+++ b/docs/2.2.8/images/repository-merge.png
Binary files differ
diff --git a/docs/2.2.8/images/repository-statistics-form.png b/docs/2.2.8/images/repository-statistics-form.png
new file mode 100644
index 0000000..e669339
--- /dev/null
+++ b/docs/2.2.8/images/repository-statistics-form.png
Binary files differ
diff --git a/docs/2.2.8/images/repository-statistics.png b/docs/2.2.8/images/repository-statistics.png
new file mode 100644
index 0000000..e2a9b09
--- /dev/null
+++ b/docs/2.2.8/images/repository-statistics.png
Binary files differ
diff --git a/docs/2.2.8/images/role-detail.png b/docs/2.2.8/images/role-detail.png
new file mode 100644
index 0000000..e18d2be
--- /dev/null
+++ b/docs/2.2.8/images/role-detail.png
Binary files differ
diff --git a/docs/2.2.8/images/role-users.png b/docs/2.2.8/images/role-users.png
new file mode 100644
index 0000000..1f9e0cc
--- /dev/null
+++ b/docs/2.2.8/images/role-users.png
Binary files differ
diff --git a/docs/2.2.8/images/roles-list.png b/docs/2.2.8/images/roles-list.png
new file mode 100644
index 0000000..9afd17d
--- /dev/null
+++ b/docs/2.2.8/images/roles-list.png
Binary files differ
diff --git a/docs/2.2.8/images/rss-browse.png b/docs/2.2.8/images/rss-browse.png
new file mode 100644
index 0000000..1490660
--- /dev/null
+++ b/docs/2.2.8/images/rss-browse.png
Binary files differ
diff --git a/docs/2.2.8/images/rss-repositories.png b/docs/2.2.8/images/rss-repositories.png
new file mode 100644
index 0000000..a548b87
--- /dev/null
+++ b/docs/2.2.8/images/rss-repositories.png
Binary files differ
diff --git a/docs/2.2.8/images/rss.png b/docs/2.2.8/images/rss.png
new file mode 100644
index 0000000..a9850ee
--- /dev/null
+++ b/docs/2.2.8/images/rss.png
Binary files differ
diff --git a/docs/2.2.8/images/search-advanced.png b/docs/2.2.8/images/search-advanced.png
new file mode 100644
index 0000000..5798e1b
--- /dev/null
+++ b/docs/2.2.8/images/search-advanced.png
Binary files differ
diff --git a/docs/2.2.8/images/search-osgi.png b/docs/2.2.8/images/search-osgi.png
new file mode 100644
index 0000000..bcf57d6
--- /dev/null
+++ b/docs/2.2.8/images/search-osgi.png
Binary files differ
diff --git a/docs/2.2.8/images/search-results.png b/docs/2.2.8/images/search-results.png
new file mode 100644
index 0000000..58d1b05
--- /dev/null
+++ b/docs/2.2.8/images/search-results.png
Binary files differ
diff --git a/docs/2.2.8/images/search-simple.png b/docs/2.2.8/images/search-simple.png
new file mode 100644
index 0000000..46f06bc
--- /dev/null
+++ b/docs/2.2.8/images/search-simple.png
Binary files differ
diff --git a/docs/2.2.8/images/start-screen.png b/docs/2.2.8/images/start-screen.png
new file mode 100644
index 0000000..f12bb1c
--- /dev/null
+++ b/docs/2.2.8/images/start-screen.png
Binary files differ
diff --git a/docs/2.2.8/images/success-message.png b/docs/2.2.8/images/success-message.png
new file mode 100644
index 0000000..a2d5581
--- /dev/null
+++ b/docs/2.2.8/images/success-message.png
Binary files differ
diff --git a/docs/2.2.8/images/system-status-caches.png b/docs/2.2.8/images/system-status-caches.png
new file mode 100644
index 0000000..dffb373
--- /dev/null
+++ b/docs/2.2.8/images/system-status-caches.png
Binary files differ
diff --git a/docs/2.2.8/images/system-status-scanning.png b/docs/2.2.8/images/system-status-scanning.png
new file mode 100644
index 0000000..d283c4a
--- /dev/null
+++ b/docs/2.2.8/images/system-status-scanning.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/admin.png b/docs/2.2.8/images/tour/admin.png
new file mode 100644
index 0000000..3ae5e37
--- /dev/null
+++ b/docs/2.2.8/images/tour/admin.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/browse.png b/docs/2.2.8/images/tour/browse.png
new file mode 100644
index 0000000..69cd9c1
--- /dev/null
+++ b/docs/2.2.8/images/tour/browse.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/graphical-admin.png b/docs/2.2.8/images/tour/graphical-admin.png
new file mode 100644
index 0000000..5ec635b
--- /dev/null
+++ b/docs/2.2.8/images/tour/graphical-admin.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/maintenance.png b/docs/2.2.8/images/tour/maintenance.png
new file mode 100644
index 0000000..7203d04
--- /dev/null
+++ b/docs/2.2.8/images/tour/maintenance.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/project-info.png b/docs/2.2.8/images/tour/project-info.png
new file mode 100644
index 0000000..d8720a8
--- /dev/null
+++ b/docs/2.2.8/images/tour/project-info.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/project.png b/docs/2.2.8/images/tour/project.png
new file mode 100644
index 0000000..3e81716
--- /dev/null
+++ b/docs/2.2.8/images/tour/project.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/proxy.png b/docs/2.2.8/images/tour/proxy.png
new file mode 100644
index 0000000..1be8b62
--- /dev/null
+++ b/docs/2.2.8/images/tour/proxy.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/remote-proxy-cache.png b/docs/2.2.8/images/tour/remote-proxy-cache.png
new file mode 100644
index 0000000..35464ef
--- /dev/null
+++ b/docs/2.2.8/images/tour/remote-proxy-cache.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/reports.png b/docs/2.2.8/images/tour/reports.png
new file mode 100644
index 0000000..97f9ad8
--- /dev/null
+++ b/docs/2.2.8/images/tour/reports.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/repos-group.png b/docs/2.2.8/images/tour/repos-group.png
new file mode 100644
index 0000000..471a6e7
--- /dev/null
+++ b/docs/2.2.8/images/tour/repos-group.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/rss.png b/docs/2.2.8/images/tour/rss.png
new file mode 100644
index 0000000..a75b21d
--- /dev/null
+++ b/docs/2.2.8/images/tour/rss.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/search-form.png b/docs/2.2.8/images/tour/search-form.png
new file mode 100644
index 0000000..a000a22
--- /dev/null
+++ b/docs/2.2.8/images/tour/search-form.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/search-results.png b/docs/2.2.8/images/tour/search-results.png
new file mode 100644
index 0000000..3f33d3d
--- /dev/null
+++ b/docs/2.2.8/images/tour/search-results.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/search.png b/docs/2.2.8/images/tour/search.png
new file mode 100644
index 0000000..75c0ac6
--- /dev/null
+++ b/docs/2.2.8/images/tour/search.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/security.png b/docs/2.2.8/images/tour/security.png
new file mode 100644
index 0000000..b7ec7d2
--- /dev/null
+++ b/docs/2.2.8/images/tour/security.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/upload-files.png b/docs/2.2.8/images/tour/upload-files.png
new file mode 100644
index 0000000..aa4f4ce
--- /dev/null
+++ b/docs/2.2.8/images/tour/upload-files.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/upload.png b/docs/2.2.8/images/tour/upload.png
new file mode 100644
index 0000000..612576b
--- /dev/null
+++ b/docs/2.2.8/images/tour/upload.png
Binary files differ
diff --git a/docs/2.2.8/images/tour/virtual-repos.png b/docs/2.2.8/images/tour/virtual-repos.png
new file mode 100644
index 0000000..0e0df21
--- /dev/null
+++ b/docs/2.2.8/images/tour/virtual-repos.png
Binary files differ
diff --git a/docs/2.2.8/images/ui-configuration.png b/docs/2.2.8/images/ui-configuration.png
new file mode 100644
index 0000000..c9cbfb5
--- /dev/null
+++ b/docs/2.2.8/images/ui-configuration.png
Binary files differ
diff --git a/docs/2.2.8/images/update.gif b/docs/2.2.8/images/update.gif
new file mode 100644
index 0000000..b2a6d0b
--- /dev/null
+++ b/docs/2.2.8/images/update.gif
Binary files differ
diff --git a/docs/2.2.8/images/upload-artifact.jpg b/docs/2.2.8/images/upload-artifact.jpg
new file mode 100644
index 0000000..1e78702
--- /dev/null
+++ b/docs/2.2.8/images/upload-artifact.jpg
Binary files differ
diff --git a/docs/2.2.8/images/url-failure-cache-configuration.png b/docs/2.2.8/images/url-failure-cache-configuration.png
new file mode 100644
index 0000000..661363a
--- /dev/null
+++ b/docs/2.2.8/images/url-failure-cache-configuration.png
Binary files differ
diff --git a/docs/2.2.8/images/used-by.png b/docs/2.2.8/images/used-by.png
new file mode 100644
index 0000000..38488cb
--- /dev/null
+++ b/docs/2.2.8/images/used-by.png
Binary files differ
diff --git a/docs/2.2.8/images/user-edit-roles.png b/docs/2.2.8/images/user-edit-roles.png
new file mode 100644
index 0000000..75a6fab
--- /dev/null
+++ b/docs/2.2.8/images/user-edit-roles.png
Binary files differ
diff --git a/docs/2.2.8/images/user-edit.png b/docs/2.2.8/images/user-edit.png
new file mode 100644
index 0000000..ec44326
--- /dev/null
+++ b/docs/2.2.8/images/user-edit.png
Binary files differ
diff --git a/docs/2.2.8/images/user-register-form.png b/docs/2.2.8/images/user-register-form.png
new file mode 100644
index 0000000..9d850b3
--- /dev/null
+++ b/docs/2.2.8/images/user-register-form.png
Binary files differ
diff --git a/docs/2.2.8/images/user-register.png b/docs/2.2.8/images/user-register.png
new file mode 100644
index 0000000..73c6afd
--- /dev/null
+++ b/docs/2.2.8/images/user-register.png
Binary files differ
diff --git a/docs/2.2.8/images/users-list.png b/docs/2.2.8/images/users-list.png
new file mode 100644
index 0000000..6987056
--- /dev/null
+++ b/docs/2.2.8/images/users-list.png
Binary files differ
diff --git a/docs/2.2.8/images/window-new.png b/docs/2.2.8/images/window-new.png
new file mode 100644
index 0000000..0e12ef9
--- /dev/null
+++ b/docs/2.2.8/images/window-new.png
Binary files differ
diff --git a/docs/2.2.8/img/glyphicons-halflings-white.png b/docs/2.2.8/img/glyphicons-halflings-white.png
new file mode 100644
index 0000000..3bf6484
--- /dev/null
+++ b/docs/2.2.8/img/glyphicons-halflings-white.png
Binary files differ
diff --git a/docs/2.2.8/img/glyphicons-halflings.png b/docs/2.2.8/img/glyphicons-halflings.png
new file mode 100644
index 0000000..a996999
--- /dev/null
+++ b/docs/2.2.8/img/glyphicons-halflings.png
Binary files differ
diff --git a/docs/2.2.8/index.cgi b/docs/2.2.8/index.cgi
new file mode 100755
index 0000000..924a78d
--- /dev/null
+++ b/docs/2.2.8/index.cgi
@@ -0,0 +1,3 @@
+#!/bin/sh
+#
+exec /www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/docs/2.2.8/index.html b/docs/2.2.8/index.html
new file mode 100644
index 0000000..59fb272
--- /dev/null
+++ b/docs/2.2.8/index.html
@@ -0,0 +1,565 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Brett Porter" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; User Guide</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+    <!-- move js and css to head --><link rel="stylesheet" href="css/jquery.fancybox.2.1.5.css" type="text/css" media="screen" /><script src="js/index.js" type="text/javascript"></script><script src="js/jquery.fancybox.pack.2.1.5.js" type="text/javascript"></script><script src="js/jquery.mousewheel-3.0.6.pack.js" type="text/javascript"></script>          <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../" id="bannerLeft">
+                                                                                                <img src="../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+                <li class="">
+                    <a href="./" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">User Guide</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- ~ 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. -->
+  
+
+    
+<div class="section">
+<h2><a name="null"></a></h2>
+      
+<div>
+        
+<p>
+          Archiva is a build artifact repository manager for use with
+          build tools such as <a class="externalLink" href="http://maven.apache.org" target="_blank">Maven</a>, <a class="externalLink" href="http://jenkins-ci.org" target="_blank">Jenkins</a>,
+          <a class="externalLink" href="http://continuum.apache.org" target="_blank">Continuum</a>, and <a class="externalLink" href="http://ant.apache.org" target="_blank">ANT</a>.
+        </p>
+        
+<p>
+          With Archiva, you can share artifacts with other developers and manage the associated
+          security required, aggregate (proxy) content from remote artifact repositories, visualise
+          your artifact utilisation with search, browse and reporting, and perform routine
+          maintenance on your repositories.
+        </p>
+        
+<p><b>This documentation is based on the new UI only.</b></p>
+
+        
+<p>
+          To get started with Archiva, you can read the following documentation:
+          </p>
+<ul>
+            
+<li><a href="./quick-start.html">A Quick Getting Started Guide</a></li>
+            
+<li><a href="./userguide/index.html">Users Guide</a></li>
+            
+<li><a href="./adminguide/index.html">Administrators Guide</a></li>
+          </ul>
+        
+      </div>
+      <br />
+      
+<div id="carousel-main">
+
+          
+<div id="screenshots-carousel" class="carousel slide">
+            <!-- Carousel items -->
+            
+<div class="carousel-inner">
+              
+<div class="item active">
+                <img src="images/tour/project-info.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./userguide/browsing.html">Informative display for artifacts stored in the repository.</a> </p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/tour/search-form.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./userguide/searching.html">User-friendly browsing interface, and powerful search functionalities.</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/tour/search-results.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./userguide/searching.html">Filterable search results.</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/tour/browse.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./userguide/browsing.html">Browse interface.</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/tour/remote-proxy-cache.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./adminguide/proxy-connectors.html">Drag &amp; drop remote proxies ordering.</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/tour/upload-files.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./userguide/deploy.html">Drag &amp; drop upload artifacts via UI.</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/tour/graphical-admin.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./adminguide/repositories.html">Comprehensive web-based administration interface.</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/delete-groupid.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./userguide/delete-artifact.html">Simple delete of artifacts.</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/repository-groups.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./userguide/virtual-repositories.html">Virtual repositories with Drag &amp; drop.</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/rss-browse.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./userguide/rss.html">RSS feeds</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/repository-merge.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./adminguide/staging-repositories.html">Merge staging repositories</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/appearance-configuration.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./adminguide/appearance-configuration.html">Appearence Configuration</a></p>
+                </div>
+              </div>
+              
+<div class="item">
+                <img src="images/proxy-connectors-rules.png" alt="" />
+                
+<div class="carousel-caption">
+                  
+<p><a href="./adminguide/proxy-connector-rules.html">ProxyConnectors Rules</a></p>
+                </div>
+              </div>
+            </div>
+
+            <!-- Carousel nav -->
+            <a name="carousel-prev" class="left carousel-control" id="carousel-prev">&#x2039;</a>
+            <a name="carousel-next" class="right carousel-control" id="carousel-next">&#x203a;</a>
+          </div>
+      </div>
+
+    </div>
+
+  
+
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/issue-management.html b/docs/2.2.8/issue-management.html
new file mode 100644
index 0000000..57a4339
--- /dev/null
+++ b/docs/2.2.8/issue-management.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.0:issue-management
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; Issue Management</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Issue Management</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Overview"></a>Overview</h2><a name="Overview"></a>
+<p>This project uses <a class="externalLink" href="http://www.atlassian.com/software/jira">JIRA</a>.</p></section><section>
+<h2><a name="Issue_Management"></a>Issue Management</h2><a name="Issue_Management"></a>
+<p>Issues, bugs, and feature requests should be submitted to the following issue management system for this project.</p>
+<div class="source"><pre class="prettyprint"><a class="externalLink" href="https://issues.apache.org/jira/browse/MRM">https://issues.apache.org/jira/browse/MRM</a></pre></div></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js b/docs/2.2.8/js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js
new file mode 100644
index 0000000..7a84154
--- /dev/null
+++ b/docs/2.2.8/js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js
@@ -0,0 +1,287 @@
+(function(e,p){"object"===typeof module&&"object"===typeof module.exports?module.exports=e.document?p(e,!0):function(e){if(!e.document)throw Error("jQuery requires a window with a document");return p(e)}:p(e)})("undefined"!==typeof window?window:this,function(e,p){function x(a){var b=a.length,f=d.type(a);return"function"===f||d.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===f||0===b||"number"===typeof b&&0<b&&b-1 in a}function c(a,b,f){if(d.isFunction(b))return d.grep(a,function(a,d){return!!b.call(a,
+d,a)!==f});if(b.nodeType)return d.grep(a,function(a){return a===b!==f});if("string"===typeof b){if(Gb.test(b))return d.filter(b,a,f);b=d.filter(b,a)}return d.grep(a,function(a){return 0<=d.inArray(a,b)!==f})}function g(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}function h(a){var b=fb[a]={};d.each(a.match(Y)||[],function(a,d){b[d]=!0});return b}function m(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",n,!1),e.removeEventListener("load",n,!1)):(z.detachEvent("onreadystatechange",
+n),e.detachEvent("onload",n))}function n(){if(z.addEventListener||"load"===event.type||"complete"===z.readyState)m(),d.ready()}function W(a,b,f){if(void 0===f&&1===a.nodeType)if(f="data-"+b.replace(Hb,"-$1").toLowerCase(),f=a.getAttribute(f),"string"===typeof f){try{f="true"===f?!0:"false"===f?!1:"null"===f?null:+f+""===f?+f:Ib.test(f)?d.parseJSON(f):f}catch(k){}d.data(a,b,f)}else f=void 0;return f}function r(a){for(var b in a)if(("data"!==b||!d.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}
+function E(a,b,f,k){if(d.acceptData(a)){var l=d.expando,u=a.nodeType,c=u?d.cache:a,e=u?a[l]:a[l]&&l;if(e&&c[e]&&(k||c[e].data)||void 0!==f||"string"!==typeof b){e||(e=u?a[l]=Z.pop()||d.guid++:l);c[e]||(c[e]=u?{}:{toJSON:d.noop});if("object"===typeof b||"function"===typeof b)k?c[e]=d.extend(c[e],b):c[e].data=d.extend(c[e].data,b);a=c[e];k||(a.data||(a.data={}),a=a.data);void 0!==f&&(a[d.camelCase(b)]=f);"string"===typeof b?(f=a[b],null==f&&(f=a[d.camelCase(b)])):f=a;return f}}}function fa(a,b,f){if(d.acceptData(a)){var k,
+l,u=a.nodeType,c=u?d.cache:a,e=u?a[d.expando]:d.expando;if(c[e]){if(b&&(k=f?c[e]:c[e].data)){d.isArray(b)?b=b.concat(d.map(b,d.camelCase)):b in k?b=[b]:(b=d.camelCase(b),b=b in k?[b]:b.split(" "));for(l=b.length;l--;)delete k[b[l]];if(f?!r(k):!d.isEmptyObject(k))return}if(!f&&(delete c[e].data,!r(c[e])))return;u?d.cleanData([a],!0):w.deleteExpando||c!=c.window?delete c[e]:c[e]=null}}}function aa(){return!0}function V(){return!1}function ha(){try{return z.activeElement}catch(a){}}function Aa(a){var b=
+gb.split("|");a=a.createDocumentFragment();if(a.createElement)for(;b.length;)a.createElement(b.pop());return a}function N(a,b){var f,k,l=0,u="undefined"!==typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!==typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!u)for(u=[],f=a.childNodes||a;null!=(k=f[l]);l++)!b||d.nodeName(k,b)?u.push(k):d.merge(u,N(k,b));return void 0===b||b&&d.nodeName(a,b)?d.merge([a],u):u}function Ta(a){Ua.test(a.type)&&(a.defaultChecked=a.checked)}
+function Ia(a,b){return d.nodeName(a,"table")&&d.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ia(a){a.type=(null!==d.find.attr(a,"type"))+"/"+a.type;return a}function A(a){var b=Jb.exec(a.type);b?a.type=b[1]:a.removeAttribute("type");return a}function R(a,b){for(var f,k=0;null!=(f=a[k]);k++)d._data(f,"globalEval",!b||d._data(b[k],"globalEval"))}function P(a,b){if(1===b.nodeType&&d.hasData(a)){var f,
+k,l;k=d._data(a);a=d._data(b,k);var u=k.events;if(u)for(f in delete a.handle,a.events={},u)for(k=0,l=u[f].length;k<l;k++)d.event.add(b,f,u[f][k]);a.data&&(a.data=d.extend({},a.data))}}function I(a,b){var f;a=d(b.createElement(a)).appendTo(b.body);b=e.getDefaultComputedStyle&&(f=e.getDefaultComputedStyle(a[0]))?f.display:d.css(a[0],"display");a.detach();return b}function Ea(a){var b=z,f=hb[a];f||(f=I(a,b),"none"!==f&&f||(na=(na||d("\x3ciframe frameborder\x3d'0' width\x3d'0' height\x3d'0'/\x3e")).appendTo(b.documentElement),
+b=(na[0].contentWindow||na[0].contentDocument).document,b.write(),b.close(),f=I(a,b),na.detach()),hb[a]=f);return f}function Fa(a,b){return{get:function(){var f=a();if(null!=f)if(f)delete this.get;else return(this.get=b).apply(this,arguments)}}}function Ba(a,b){if(b in a)return b;for(var f=b.charAt(0).toUpperCase()+b.slice(1),d=b,l=ib.length;l--;)if(b=ib[l]+f,b in a)return b;return d}function O(a,b){for(var f,k,l,u=[],c=0,e=a.length;c<e;c++)k=a[c],k.style&&(u[c]=d._data(k,"olddisplay"),f=k.style.display,
+b?(u[c]||"none"!==f||(k.style.display=""),""===k.style.display&&Ca(k)&&(u[c]=d._data(k,"olddisplay",Ea(k.nodeName)))):(l=Ca(k),(f&&"none"!==f||!l)&&d._data(k,"olddisplay",l?f:d.css(k,"display"))));for(c=0;c<e;c++)k=a[c],!k.style||b&&"none"!==k.style.display&&""!==k.style.display||(k.style.display=b?u[c]||"":"none");return a}function va(a,b,f){return(a=Kb.exec(b))?Math.max(0,a[1]-(f||0))+(a[2]||"px"):b}function S(a,b,f,k,l){b=f===(k?"border":"content")?4:"width"===b?1:0;for(var u=0;4>b;b+=2)"margin"===
+f&&(u+=d.css(a,f+oa[b],!0,l)),k?("content"===f&&(u-=d.css(a,"padding"+oa[b],!0,l)),"margin"!==f&&(u-=d.css(a,"border"+oa[b]+"Width",!0,l))):(u+=d.css(a,"padding"+oa[b],!0,l),"padding"!==f&&(u+=d.css(a,"border"+oa[b]+"Width",!0,l)));return u}function U(a,b,f){var k=!0,l="width"===b?a.offsetWidth:a.offsetHeight,u=ga(a),c=w.boxSizing&&"border-box"===d.css(a,"boxSizing",!1,u);if(0>=l||null==l){l=pa(a,b,u);if(0>l||null==l)l=a.style[b];if(Ja.test(l))return l;k=c&&(w.boxSizingReliable()||l===a.style[b]);
+l=parseFloat(l)||0}return l+S(a,b,f||(c?"border":"content"),k,u)+"px"}function H(a,b,f,d,l){return new H.prototype.init(a,b,f,d,l)}function J(){setTimeout(function(){wa=void 0});return wa=d.now()}function v(a,b){var f,d={height:a},l=0;for(b=b?1:0;4>l;l+=2-b)f=oa[l],d["margin"+f]=d["padding"+f]=a;b&&(d.opacity=d.width=a);return d}function da(a,b,f){for(var d,l=(xa[b]||[]).concat(xa["*"]),c=0,e=l.length;c<e;c++)if(d=l[c].call(f,b,a))return d}function y(a,b){var f,k,l,c,e;for(f in a)if(k=d.camelCase(f),
+l=b[k],c=a[f],d.isArray(c)&&(l=c[1],c=a[f]=c[0]),f!==k&&(a[k]=c,delete a[f]),(e=d.cssHooks[k])&&"expand"in e)for(f in c=e.expand(c),delete a[k],c)f in a||(a[f]=c[f],b[f]=l);else b[k]=l}function G(a,b,f){var k,l=0,c=Ka.length,e=d.Deferred().always(function(){delete g.elem}),g=function(){if(k)return!1;for(var b=wa||J(),b=Math.max(0,h.startTime+h.duration-b),f=1-(b/h.duration||0),d=0,l=h.tweens.length;d<l;d++)h.tweens[d].run(f);e.notifyWith(a,[h,f,b]);if(1>f&&l)return b;e.resolveWith(a,[h]);return!1},
+h=e.promise({elem:a,props:d.extend({},b),opts:d.extend(!0,{specialEasing:{}},f),originalProperties:b,originalOptions:f,startTime:wa||J(),duration:f.duration,tweens:[],createTween:function(b,f){b=d.Tween(a,h.opts,b,f,h.opts.specialEasing[b]||h.opts.easing);h.tweens.push(b);return b},stop:function(b){var f=0,d=b?h.tweens.length:0;if(k)return this;for(k=!0;f<d;f++)h.tweens[f].run(1);b?e.resolveWith(a,[h,b]):e.rejectWith(a,[h,b]);return this}});f=h.props;for(y(f,h.opts.specialEasing);l<c;l++)if(b=Ka[l].call(h,
+a,f,h.opts))return b;d.map(f,da,h);d.isFunction(h.opts.start)&&h.opts.start.call(a,h);d.fx.timer(d.extend(g,{elem:a,anim:h,queue:h.opts.queue}));return h.progress(h.opts.progress).done(h.opts.done,h.opts.complete).fail(h.opts.fail).always(h.opts.always)}function C(a){return function(b,f){"string"!==typeof b&&(f=b,b="*");var k=0,l=b.toLowerCase().match(Y)||[];if(d.isFunction(f))for(;b=l[k++];)"+"===b.charAt(0)?(b=b.slice(1)||"*",(a[b]=a[b]||[]).unshift(f)):(a[b]=a[b]||[]).push(f)}}function D(a,b,f,
+k){function l(u){var g;c[u]=!0;d.each(a[u]||[],function(a,d){a=d(b,f,k);if("string"===typeof a&&!e&&!c[a])return b.dataTypes.unshift(a),l(a),!1;if(e)return!(g=a)});return g}var c={},e=a===Va;return l(b.dataTypes[0])||!c["*"]&&l("*")}function L(a,b){var f,k,l=d.ajaxSettings.flatOptions||{};for(k in b)void 0!==b[k]&&((l[k]?a:f||(f={}))[k]=b[k]);f&&d.extend(!0,a,f);return a}function ea(a,b,f,k){var l;if(d.isArray(b))d.each(b,function(b,d){f||Nb.test(a)?k(a,d):ea(a+"["+("object"===typeof d?b:"")+"]",
+d,f,k)});else if(f||"object"!==d.type(b))k(a,b);else for(l in b)ea(a+"["+l+"]",b[l],f,k)}function La(){try{return new e.XMLHttpRequest}catch(a){}}function Ga(a){return d.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}var Z=[],ba=Z.slice,jb=Z.concat,Wa=Z.push,kb=Z.indexOf,Ma={},Ob=Ma.toString,ja=Ma.hasOwnProperty,w={},d=function(a,b){return new d.fn.init(a,b)},Pb=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,Qb=/^-ms-/,Rb=/-([\da-z])/gi,Sb=function(a,b){return b.toUpperCase()};d.fn=d.prototype=
+{jquery:"1.11.2",constructor:d,selector:"",length:0,toArray:function(){return ba.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){a=d.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;return a},each:function(a,b){return d.each(this,a,b)},map:function(a){return this.pushStack(d.map(this,function(b,f){return a.call(b,f,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)},
+last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&a<b?[this[a]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:Wa,sort:Z.sort,splice:Z.splice};d.extend=d.fn.extend=function(){var a,b,f,k,l,c=arguments[0]||{},e=1,g=arguments.length,h=!1;"boolean"===typeof c&&(h=c,c=arguments[e]||{},e++);"object"===typeof c||d.isFunction(c)||(c={});e===g&&(c=this,e--);for(;e<g;e++)if(null!=(l=arguments[e]))for(k in l)a=c[k],f=l[k],
+c!==f&&(h&&f&&(d.isPlainObject(f)||(b=d.isArray(f)))?(b?(b=!1,a=a&&d.isArray(a)?a:[]):a=a&&d.isPlainObject(a)?a:{},c[k]=d.extend(h,a,f)):void 0!==f&&(c[k]=f));return c};d.extend({expando:"jQuery"+("1.11.2"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw Error(a);},noop:function(){},isFunction:function(a){return"function"===d.type(a)},isArray:Array.isArray||function(a){return"array"===d.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!d.isArray(a)&&
+0<=a-parseFloat(a)+1},isEmptyObject:function(a){for(var b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==d.type(a)||a.nodeType||d.isWindow(a))return!1;try{if(a.constructor&&!ja.call(a,"constructor")&&!ja.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(f){return!1}if(w.ownLast)for(b in a)return ja.call(a,b);for(b in a);return void 0===b||ja.call(a,b)},type:function(a){return null==a?a+"":"object"===typeof a||"function"===typeof a?Ma[Ob.call(a)]||"object":typeof a},
+globalEval:function(a){a&&d.trim(a)&&(e.execScript||function(a){e.eval.call(e,a)})(a)},camelCase:function(a){return a.replace(Qb,"ms-").replace(Rb,Sb)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,f){var d,l=0,c=a.length;d=x(a);if(f)if(d)for(;l<c&&(d=b.apply(a[l],f),!1!==d);l++);else for(l in a){if(d=b.apply(a[l],f),!1===d)break}else if(d)for(;l<c&&(d=b.call(a[l],l,a[l]),!1!==d);l++);else for(l in a)if(d=b.call(a[l],l,a[l]),!1===d)break;return a},
+trim:function(a){return null==a?"":(a+"").replace(Pb,"")},makeArray:function(a,b){b=b||[];null!=a&&(x(Object(a))?d.merge(b,"string"===typeof a?[a]:a):Wa.call(b,a));return b},inArray:function(a,b,f){var d;if(b){if(kb)return kb.call(b,a,f);d=b.length;for(f=f?0>f?Math.max(0,d+f):f:0;f<d;f++)if(f in b&&b[f]===a)return f}return-1},merge:function(a,b){for(var f=+b.length,d=0,l=a.length;d<f;)a[l++]=b[d++];if(f!==f)for(;void 0!==b[d];)a[l++]=b[d++];a.length=l;return a},grep:function(a,b,d){for(var f=[],l=
+0,c=a.length,e=!d;l<c;l++)d=!b(a[l],l),d!==e&&f.push(a[l]);return f},map:function(a,b,d){var f,l=0,c=a.length,e=[];if(x(a))for(;l<c;l++)f=b(a[l],l,d),null!=f&&e.push(f);else for(l in a)f=b(a[l],l,d),null!=f&&e.push(f);return jb.apply([],e)},guid:1,proxy:function(a,b){var f,k;"string"===typeof b&&(k=a[b],b=a,a=k);if(d.isFunction(a))return f=ba.call(arguments,2),k=function(){return a.apply(b||this,f.concat(ba.call(arguments)))},k.guid=a.guid=a.guid||d.guid++,k},now:function(){return+new Date},support:w});
+d.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){Ma["[object "+b+"]"]=b.toLowerCase()});var ya=function(a){function b(a,b,d,f){var k,l,c,u,e;(b?b.ownerDocument||b:E)!==I&&R(b);b=b||I;d=d||[];u=b.nodeType;if("string"!==typeof a||!a||1!==u&&9!==u&&11!==u)return d;if(!f&&H){if(11!==u&&(k=Aa.exec(a)))if(c=k[1])if(9===u)if((l=b.getElementById(c))&&l.parentNode){if(l.id===c)return d.push(l),d}else return d;else{if(b.ownerDocument&&(l=b.ownerDocument.getElementById(c))&&
+va(b,l)&&l.id===c)return d.push(l),d}else{if(k[2])return Y.apply(d,b.getElementsByTagName(a)),d;if((c=k[3])&&B.getElementsByClassName)return Y.apply(d,b.getElementsByClassName(c)),d}if(B.qsa&&(!r||!r.test(a))){l=k=Q;c=b;e=1!==u&&a;if(1===u&&"object"!==b.nodeName.toLowerCase()){u=L(a);(k=b.getAttribute("id"))?l=k.replace(Ca,"\\$\x26"):b.setAttribute("id",l);l="[id\x3d'"+l+"'] ";for(c=u.length;c--;)u[c]=l+v(u[c]);c=na.test(a)&&t(b.parentNode)||b;e=u.join(",")}if(e)try{return Y.apply(d,c.querySelectorAll(e)),
+d}catch(Bc){}finally{k||b.removeAttribute("id")}}}return S(a.replace(ga,"$1"),b,d,f)}function d(){function a(d,f){b.push(d+" ")>F.cacheLength&&delete a[b.shift()];return a[d+" "]=f}var b=[];return a}function k(a){a[Q]=!0;return a}function l(a){var b=I.createElement("div");try{return!!a(b)}catch(ma){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function c(a,b){var d=a.split("|");for(a=a.length;a--;)F.attrHandle[d[a]]=b}function e(a,b){var d=b&&a,f=d&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||
+-2147483648)-(~a.sourceIndex||-2147483648);if(f)return f;if(d)for(;d=d.nextSibling;)if(d===b)return-1;return a?1:-1}function g(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function h(a){return function(b){var d=b.nodeName.toLowerCase();return("input"===d||"button"===d)&&b.type===a}}function m(a){return k(function(b){b=+b;return k(function(d,f){for(var k,l=a([],d.length,b),c=l.length;c--;)d[k=l[c]]&&(d[k]=!(f[k]=d[k]))})})}function t(a){return a&&"undefined"!==typeof a.getElementsByTagName&&
+a}function n(){}function v(a){for(var b=0,d=a.length,f="";b<d;b++)f+=a[b].value;return f}function p(a,b,d){var f=b.dir,k=d&&"parentNode"===f,l=Ea++;return b.first?function(b,d,l){for(;b=b[f];)if(1===b.nodeType||k)return a(b,d,l)}:function(b,d,c){var u,e,g=[ea,l];if(c)for(;b=b[f];){if((1===b.nodeType||k)&&a(b,d,c))return!0}else for(;b=b[f];)if(1===b.nodeType||k){e=b[Q]||(b[Q]={});if((u=e[f])&&u[0]===ea&&u[1]===l)return g[2]=u[2];e[f]=g;if(g[2]=a(b,d,c))return!0}}}function w(a){return 1<a.length?function(b,
+d,f){for(var k=a.length;k--;)if(!a[k](b,d,f))return!1;return!0}:a[0]}function y(a,b,d,f,k){for(var l,c=[],u=0,e=a.length,g=null!=b;u<e;u++)if(l=a[u])if(!d||d(l,f,k))c.push(l),g&&b.push(u);return c}function C(a,d,f,l,c,u){l&&!l[Q]&&(l=C(l));c&&!c[Q]&&(c=C(c,u));return k(function(k,u,e,g){var T,h,K=[],ma=[],m=u.length,X;if(!(X=k)){X=d||"*";for(var M=e.nodeType?[e]:e,t=[],Da=0,n=M.length;Da<n;Da++)b(X,M[Da],t);X=t}X=!a||!k&&d?X:y(X,K,a,e,g);M=f?c||(k?a:m||l)?[]:u:X;f&&f(X,M,e,g);if(l)for(T=y(M,ma),l(T,
+[],e,g),e=T.length;e--;)if(h=T[e])M[ma[e]]=!(X[ma[e]]=h);if(k){if(c||a){if(c){T=[];for(e=M.length;e--;)(h=M[e])&&T.push(X[e]=h);c(null,M=[],T,g)}for(e=M.length;e--;)(h=M[e])&&-1<(T=c?ba(k,h):K[e])&&(k[T]=!(u[T]=h))}}else M=y(M===u?M.splice(m,M.length):M),c?c(null,u,M,g):Y.apply(u,M)})}function A(a){var b,d,f,k=a.length,l=F.relative[a[0].type];d=l||F.relative[" "];for(var c=l?1:0,u=p(function(a){return a===b},d,!0),e=p(function(a){return-1<ba(b,a)},d,!0),g=[function(a,d,f){a=!l&&(f||d!==U)||((b=d).nodeType?
+u(a,d,f):e(a,d,f));b=null;return a}];c<k;c++)if(d=F.relative[a[c].type])g=[p(w(g),d)];else{d=F.filter[a[c].type].apply(null,a[c].matches);if(d[Q]){for(f=++c;f<k&&!F.relative[a[f].type];f++);return C(1<c&&w(g),1<c&&v(a.slice(0,c-1).concat({value:" "===a[c-2].type?"*":""})).replace(ga,"$1"),d,c<f&&A(a.slice(c,f)),f<k&&A(a=a.slice(f)),f<k&&v(a))}g.push(d)}return w(g)}function z(a,d){var f=0<d.length,l=0<a.length,c=function(k,c,u,e,g){var T,h,K,ma=0,m="0",M=k&&[],X=[],t=U,n=k||l&&F.find.TAG("*",g),Da=
+ea+=null==t?1:Math.random()||.1,Lb=n.length;for(g&&(U=c!==I&&c);m!==Lb&&null!=(T=n[m]);m++){if(l&&T){for(h=0;K=a[h++];)if(K(T,c,u)){e.push(T);break}g&&(ea=Da)}f&&((T=!K&&T)&&ma--,k&&M.push(T))}ma+=m;if(f&&m!==ma){for(h=0;K=d[h++];)K(M,X,c,u);if(k){if(0<ma)for(;m--;)M[m]||X[m]||(X[m]=fa.call(e));X=y(X)}Y.apply(e,X);g&&!k&&0<X.length&&1<ma+d.length&&b.uniqueSort(e)}g&&(ea=Da,U=t);return M};return f?k(c):c}var da,B,F,D,G,L,W,S,U,P,x,R,I,O,H,r,J,Ba,va,Q="sizzle"+1*new Date,E=a.document,ea=0,Ea=0,Fa=d(),
+N=d(),Z=d(),ca=function(a,b){a===b&&(x=!0);return 0},aa={}.hasOwnProperty,V=[],fa=V.pop,La=V.push,Y=V.push,Ga=V.slice,ba=function(a,b){for(var d=0,f=a.length;d<f;d++)if(a[d]===b)return d;return-1},ka="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w","w#"),la="\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?\x3d)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ka+"))|)[\\x20\\t\\r\\n\\f]*\\]",ia=":((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+
+la+")*)|.*)\\)|)",oa=/[\x20\t\r\n\f]+/g,ga=/^[\x20\t\r\n\f]+|((?:^|[^\\])(?:\\.)*)[\x20\t\r\n\f]+$/g,pa=/^[\x20\t\r\n\f]*,[\x20\t\r\n\f]*/,sa=/^[\x20\t\r\n\f]*([>+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,ta=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,ua=new RegExp(ia),wa=new RegExp("^"+ka+"$"),ja={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:new RegExp("^("+"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w","w*")+")"),ATTR:new RegExp("^"+la),PSEUDO:new RegExp("^"+ia),
+CHILD:/^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,bool:/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,needsContext:/^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i},ya=/^(?:input|select|textarea|button)$/i,za=/^h\d$/i,ha=
+/^[^{]+\{\s*\[native \w/,Aa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,na=/[+~]/,Ca=/'|\\/g,qa=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,ra=function(a,b,d){a="0x"+b-65536;return a!==a||d?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,a&1023|56320)},xa=function(){R()};try{Y.apply(V=Ga.call(E.childNodes),E.childNodes),V[E.childNodes.length].nodeType}catch(T){Y={apply:V.length?function(a,b){La.apply(a,Ga.call(b))}:function(a,b){for(var d=a.length,f=0;a[d++]=b[f++];);a.length=
+d-1}}}B=b.support={};G=b.isXML=function(a){return(a=a&&(a.ownerDocument||a).documentElement)?"HTML"!==a.nodeName:!1};R=b.setDocument=function(a){var b=a?a.ownerDocument||a:E;if(b===I||9!==b.nodeType||!b.documentElement)return I;I=b;O=b.documentElement;(a=b.defaultView)&&a!==a.top&&(a.addEventListener?a.addEventListener("unload",xa,!1):a.attachEvent&&a.attachEvent("onunload",xa));H=!G(b);B.attributes=l(function(a){a.className="i";return!a.getAttribute("className")});B.getElementsByTagName=l(function(a){a.appendChild(b.createComment(""));
+return!a.getElementsByTagName("*").length});B.getElementsByClassName=ha.test(b.getElementsByClassName);B.getById=l(function(a){O.appendChild(a).id=Q;return!b.getElementsByName||!b.getElementsByName(Q).length});B.getById?(F.find.ID=function(a,b){if("undefined"!==typeof b.getElementById&&H)return(a=b.getElementById(a))&&a.parentNode?[a]:[]},F.filter.ID=function(a){var b=a.replace(qa,ra);return function(a){return a.getAttribute("id")===b}}):(delete F.find.ID,F.filter.ID=function(a){var b=a.replace(qa,
+ra);return function(a){return(a="undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}});F.find.TAG=B.getElementsByTagName?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a);if(B.qsa)return b.querySelectorAll(a)}:function(a,b){var d=[],f=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[f++];)1===a.nodeType&&d.push(a);return d}return b};F.find.CLASS=B.getElementsByClassName&&function(a,b){if(H)return b.getElementsByClassName(a)};
+J=[];r=[];if(B.qsa=ha.test(b.querySelectorAll))l(function(a){O.appendChild(a).innerHTML="\x3ca id\x3d'"+Q+"'\x3e\x3c/a\x3e\x3cselect id\x3d'"+Q+"-\f]' msallowcapture\x3d''\x3e\x3coption selected\x3d''\x3e\x3c/option\x3e\x3c/select\x3e";a.querySelectorAll("[msallowcapture^\x3d'']").length&&r.push("[*^$]\x3d[\\x20\\t\\r\\n\\f]*(?:''|\"\")");a.querySelectorAll("[selected]").length||r.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)");
+a.querySelectorAll("[id~\x3d"+Q+"-]").length||r.push("~\x3d");a.querySelectorAll(":checked").length||r.push(":checked");a.querySelectorAll("a#"+Q+"+*").length||r.push(".#.+[+~]")}),l(function(a){var d=b.createElement("input");d.setAttribute("type","hidden");a.appendChild(d).setAttribute("name","D");a.querySelectorAll("[name\x3dd]").length&&r.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?\x3d");a.querySelectorAll(":enabled").length||r.push(":enabled",":disabled");a.querySelectorAll("*,:x");r.push(",.*:")});
+(B.matchesSelector=ha.test(Ba=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&l(function(a){B.disconnectedMatch=Ba.call(a,"div");Ba.call(a,"[s!\x3d'']:x");J.push("!\x3d",ia)});r=r.length&&new RegExp(r.join("|"));J=J.length&&new RegExp(J.join("|"));va=(a=ha.test(O.compareDocumentPosition))||ha.test(O.contains)?function(a,b){var d=9===a.nodeType?a.documentElement:a;b=b&&b.parentNode;return a===b||!!(b&&1===b.nodeType&&(d.contains?d.contains(b):a.compareDocumentPosition&&
+a.compareDocumentPosition(b)&16))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1};ca=a?function(a,d){if(a===d)return x=!0,0;var f=!a.compareDocumentPosition-!d.compareDocumentPosition;if(f)return f;f=(a.ownerDocument||a)===(d.ownerDocument||d)?a.compareDocumentPosition(d):1;return f&1||!B.sortDetached&&d.compareDocumentPosition(a)===f?a===b||a.ownerDocument===E&&va(E,a)?-1:d===b||d.ownerDocument===E&&va(E,d)?1:P?ba(P,a)-ba(P,d):0:f&4?-1:1}:function(a,d){if(a===d)return x=!0,0;
+var f=0,k=a.parentNode,l=d.parentNode,c=[a],u=[d];if(!k||!l)return a===b?-1:d===b?1:k?-1:l?1:P?ba(P,a)-ba(P,d):0;if(k===l)return e(a,d);for(;a=a.parentNode;)c.unshift(a);for(a=d;a=a.parentNode;)u.unshift(a);for(;c[f]===u[f];)f++;return f?e(c[f],u[f]):c[f]===E?-1:u[f]===E?1:0};return b};b.matches=function(a,d){return b(a,null,null,d)};b.matchesSelector=function(a,d){(a.ownerDocument||a)!==I&&R(a);d=d.replace(ta,"\x3d'$1']");if(!(!B.matchesSelector||!H||J&&J.test(d)||r&&r.test(d)))try{var f=Ba.call(a,
+d);if(f||B.disconnectedMatch||a.document&&11!==a.document.nodeType)return f}catch(Da){}return 0<b(d,I,null,[a]).length};b.contains=function(a,b){(a.ownerDocument||a)!==I&&R(a);return va(a,b)};b.attr=function(a,b){(a.ownerDocument||a)!==I&&R(a);var d=F.attrHandle[b.toLowerCase()],d=d&&aa.call(F.attrHandle,b.toLowerCase())?d(a,b,!H):void 0;return void 0!==d?d:B.attributes||!H?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null};b.error=function(a){throw Error("Syntax error, unrecognized expression: "+
+a);};b.uniqueSort=function(a){var b,d=[],f=0,k=0;x=!B.detectDuplicates;P=!B.sortStable&&a.slice(0);a.sort(ca);if(x){for(;b=a[k++];)b===a[k]&&(f=d.push(k));for(;f--;)a.splice(d[f],1)}P=null;return a};D=b.getText=function(a){var b,d="",f=0;b=a.nodeType;if(!b)for(;b=a[f++];)d+=D(b);else if(1===b||9===b||11===b){if("string"===typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)d+=D(a)}else if(3===b||4===b)return a.nodeValue;return d};F=b.selectors={cacheLength:50,createPseudo:k,
+match:ja,attrHandle:{},find:{},relative:{"\x3e":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){a[1]=a[1].replace(qa,ra);a[3]=(a[3]||a[4]||a[5]||"").replace(qa,ra);"~\x3d"===a[2]&&(a[3]=" "+a[3]+" ");return a.slice(0,4)},CHILD:function(a){a[1]=a[1].toLowerCase();"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&
+b.error(a[0]);return a},PSEUDO:function(a){var b,d=!a[6]&&a[2];if(ja.CHILD.test(a[0]))return null;a[3]?a[2]=a[4]||a[5]||"":d&&ua.test(d)&&(b=L(d,!0))&&(b=d.indexOf(")",d.length-b)-d.length)&&(a[0]=a[0].slice(0,b),a[2]=d.slice(0,b));return a.slice(0,3)}},filter:{TAG:function(a){var b=a.replace(qa,ra).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=Fa[a+" "];return b||(b=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+a+"([\\x20\\t\\r\\n\\f]|$)"),
+Fa(a,function(a){return b.test("string"===typeof a.className&&a.className||"undefined"!==typeof a.getAttribute&&a.getAttribute("class")||"")}))},ATTR:function(a,d,f){return function(k){k=b.attr(k,a);if(null==k)return"!\x3d"===d;if(!d)return!0;k+="";return"\x3d"===d?k===f:"!\x3d"===d?k!==f:"^\x3d"===d?f&&0===k.indexOf(f):"*\x3d"===d?f&&-1<k.indexOf(f):"$\x3d"===d?f&&k.slice(-f.length)===f:"~\x3d"===d?-1<(" "+k.replace(oa," ")+" ").indexOf(f):"|\x3d"===d?k===f||k.slice(0,f.length+1)===f+"-":!1}},CHILD:function(a,
+b,d,f,k){var l="nth"!==a.slice(0,3),c="last"!==a.slice(-4),u="of-type"===b;return 1===f&&0===k?function(a){return!!a.parentNode}:function(b,d,e){var g,h,K,m,M;d=l!==c?"nextSibling":"previousSibling";var t=b.parentNode,T=u&&b.nodeName.toLowerCase();e=!e&&!u;if(t){if(l){for(;d;){for(h=b;h=h[d];)if(u?h.nodeName.toLowerCase()===T:1===h.nodeType)return!1;M=d="only"===a&&!M&&"nextSibling"}return!0}M=[c?t.firstChild:t.lastChild];if(c&&e)for(e=t[Q]||(t[Q]={}),g=e[a]||[],m=g[0]===ea&&g[1],K=g[0]===ea&&g[2],
+h=m&&t.childNodes[m];h=++m&&h&&h[d]||(K=m=0)||M.pop();){if(1===h.nodeType&&++K&&h===b){e[a]=[ea,m,K];break}}else if(e&&(g=(b[Q]||(b[Q]={}))[a])&&g[0]===ea)K=g[1];else for(;(h=++m&&h&&h[d]||(K=m=0)||M.pop())&&((u?h.nodeName.toLowerCase()!==T:1!==h.nodeType)||!++K||(e&&((h[Q]||(h[Q]={}))[a]=[ea,K]),h!==b)););K-=k;return K===f||0===K%f&&0<=K/f}}},PSEUDO:function(a,d){var f,l=F.pseudos[a]||F.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return l[Q]?l(d):1<l.length?(f=[a,a,"",d],F.setFilters.hasOwnProperty(a.toLowerCase())?
+k(function(a,b){for(var f,k=l(a,d),c=k.length;c--;)f=ba(a,k[c]),a[f]=!(b[f]=k[c])}):function(a){return l(a,0,f)}):l}},pseudos:{not:k(function(a){var b=[],d=[],f=W(a.replace(ga,"$1"));return f[Q]?k(function(a,b,d,k){k=f(a,null,k,[]);for(var l=a.length;l--;)if(d=k[l])a[l]=!(b[l]=d)}):function(a,k,l){b[0]=a;f(b,null,l,d);b[0]=null;return!d.pop()}}),has:k(function(a){return function(d){return 0<b(a,d).length}}),contains:k(function(a){a=a.replace(qa,ra);return function(b){return-1<(b.textContent||b.innerText||
+D(b)).indexOf(a)}}),lang:k(function(a){wa.test(a||"")||b.error("unsupported lang: "+a);a=a.replace(qa,ra).toLowerCase();return function(b){var d;do if(d=H?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return d=d.toLowerCase(),d===a||0===d.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var d=a.location&&a.location.hash;return d&&d.slice(1)===b.id},root:function(a){return a===O},focus:function(a){return a===I.activeElement&&(!I.hasFocus||I.hasFocus())&&
+!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return!1===a.disabled},disabled:function(a){return!0===a.disabled},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return!0===a.selected},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(6>a.nodeType)return!1;return!0},parent:function(a){return!F.pseudos.empty(a)},header:function(a){return za.test(a.nodeName)},input:function(a){return ya.test(a.nodeName)},
+button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:m(function(){return[0]}),last:m(function(a,b){return[b-1]}),eq:m(function(a,b,d){return[0>d?d+b:d]}),even:m(function(a,b){for(var d=0;d<b;d+=2)a.push(d);return a}),odd:m(function(a,b){for(var d=1;d<b;d+=2)a.push(d);return a}),lt:m(function(a,b,d){for(b=
+0>d?d+b:d;0<=--b;)a.push(b);return a}),gt:m(function(a,b,d){for(d=0>d?d+b:d;++d<b;)a.push(d);return a})}};F.pseudos.nth=F.pseudos.eq;for(da in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})F.pseudos[da]=g(da);for(da in{submit:!0,reset:!0})F.pseudos[da]=h(da);n.prototype=F.filters=F.pseudos;F.setFilters=new n;L=b.tokenize=function(a,d){var f,k,l,c,u,e,g;if(u=N[a+" "])return d?0:u.slice(0);u=a;e=[];for(g=F.preFilter;u;){if(!f||(k=pa.exec(u)))k&&(u=u.slice(k[0].length)||u),e.push(l=[]);f=!1;if(k=
+sa.exec(u))f=k.shift(),l.push({value:f,type:k[0].replace(ga," ")}),u=u.slice(f.length);for(c in F.filter)!(k=ja[c].exec(u))||g[c]&&!(k=g[c](k))||(f=k.shift(),l.push({value:f,type:c,matches:k}),u=u.slice(f.length));if(!f)break}return d?u.length:u?b.error(a):N(a,e).slice(0)};W=b.compile=function(a,b){var d,f=[],k=[],l=Z[a+" "];if(!l){b||(b=L(a));for(d=b.length;d--;)l=A(b[d]),l[Q]?f.push(l):k.push(l);l=Z(a,z(k,f));l.selector=a}return l};S=b.select=function(a,b,d,f){var k,l,c,u,e="function"===typeof a&&
+a,g=!f&&L(a=e.selector||a);d=d||[];if(1===g.length){l=g[0]=g[0].slice(0);if(2<l.length&&"ID"===(c=l[0]).type&&B.getById&&9===b.nodeType&&H&&F.relative[l[1].type]){b=(F.find.ID(c.matches[0].replace(qa,ra),b)||[])[0];if(!b)return d;e&&(b=b.parentNode);a=a.slice(l.shift().value.length)}for(k=ja.needsContext.test(a)?0:l.length;k--;){c=l[k];if(F.relative[u=c.type])break;if(u=F.find[u])if(f=u(c.matches[0].replace(qa,ra),na.test(l[0].type)&&t(b.parentNode)||b)){l.splice(k,1);a=f.length&&v(l);if(!a)return Y.apply(d,
+f),d;break}}}(e||W(a,g))(f,b,!H,d,na.test(a)&&t(b.parentNode)||b);return d};B.sortStable=Q.split("").sort(ca).join("")===Q;B.detectDuplicates=!!x;R();B.sortDetached=l(function(a){return a.compareDocumentPosition(I.createElement("div"))&1});l(function(a){a.innerHTML="\x3ca href\x3d'#'\x3e\x3c/a\x3e";return"#"===a.firstChild.getAttribute("href")})||c("type|href|height|width",function(a,b,d){if(!d)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)});B.attributes&&l(function(a){a.innerHTML="\x3cinput/\x3e";
+a.firstChild.setAttribute("value","");return""===a.firstChild.getAttribute("value")})||c("value",function(a,b,d){if(!d&&"input"===a.nodeName.toLowerCase())return a.defaultValue});l(function(a){return null==a.getAttribute("disabled")})||c("checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",function(a,b,d){var f;if(!d)return!0===a[b]?b.toLowerCase():(f=a.getAttributeNode(b))&&f.specified?f.value:null});return b}(e);d.find=ya;d.expr=
+ya.selectors;d.expr[":"]=d.expr.pseudos;d.unique=ya.uniqueSort;d.text=ya.getText;d.isXMLDoc=ya.isXML;d.contains=ya.contains;var lb=d.expr.match.needsContext,mb=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Gb=/^.[^:#\[\.,]*$/;d.filter=function(a,b,f){var k=b[0];f&&(a=":not("+a+")");return 1===b.length&&1===k.nodeType?d.find.matchesSelector(k,a)?[k]:[]:d.find.matches(a,d.grep(b,function(a){return 1===a.nodeType}))};d.fn.extend({find:function(a){var b,f=[],k=this,l=k.length;if("string"!==typeof a)return this.pushStack(d(a).filter(function(){for(b=
+0;b<l;b++)if(d.contains(k[b],this))return!0}));for(b=0;b<l;b++)d.find(a,k[b],f);f=this.pushStack(1<l?d.unique(f):f);f.selector=this.selector?this.selector+" "+a:a;return f},filter:function(a){return this.pushStack(c(this,a||[],!1))},not:function(a){return this.pushStack(c(this,a||[],!0))},is:function(a){return!!c(this,"string"===typeof a&&lb.test(a)?d(a):a||[],!1).length}});var Ha,z=e.document,Vb=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(d.fn.init=function(a,b){var f;if(!a)return this;if("string"===
+typeof a){f="\x3c"===a.charAt(0)&&"\x3e"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:Vb.exec(a);if(!f||!f[1]&&b)return!b||b.jquery?(b||Ha).find(a):this.constructor(b).find(a);if(f[1]){if(b=b instanceof d?b[0]:b,d.merge(this,d.parseHTML(f[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),mb.test(f[1])&&d.isPlainObject(b))for(f in b)if(d.isFunction(this[f]))this[f](b[f]);else this.attr(f,b[f])}else{if((b=z.getElementById(f[2]))&&b.parentNode){if(b.id!==f[2])return Ha.find(a);this.length=1;this[0]=b}this.context=
+z;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(d.isFunction(a))return"undefined"!==typeof Ha.ready?Ha.ready(a):a(d);void 0!==a.selector&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)}).prototype=d.fn;Ha=d(z);var Wb=/^(?:parents|prev(?:Until|All))/,Xb={children:!0,contents:!0,next:!0,prev:!0};d.extend({dir:function(a,b,f){var k=[];for(a=a[b];a&&9!==a.nodeType&&(void 0===f||1!==a.nodeType||!d(a).is(f));)1===a.nodeType&&
+k.push(a),a=a[b];return k},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&d.push(a);return d}});d.fn.extend({has:function(a){var b,f=d(a,this),k=f.length;return this.filter(function(){for(b=0;b<k;b++)if(d.contains(this,f[b]))return!0})},closest:function(a,b){for(var f,k=0,l=this.length,c=[],e=lb.test(a)||"string"!==typeof a?d(a,b||this.context):0;k<l;k++)for(f=this[k];f&&f!==b;f=f.parentNode)if(11>f.nodeType&&(e?-1<e.index(f):1===f.nodeType&&d.find.matchesSelector(f,a))){c.push(f);
+break}return this.pushStack(1<c.length?d.unique(c):c)},index:function(a){return a?"string"===typeof a?d.inArray(this[0],d(a)):d.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(d.unique(d.merge(this.get(),d(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});d.each({parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},parents:function(a){return d.dir(a,"parentNode")},
+parentsUntil:function(a,b,f){return d.dir(a,"parentNode",f)},next:function(a){return g(a,"nextSibling")},prev:function(a){return g(a,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,f){return d.dir(a,"nextSibling",f)},prevUntil:function(a,b,f){return d.dir(a,"previousSibling",f)},siblings:function(a){return d.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return d.sibling(a.firstChild)},
+contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.merge([],a.childNodes)}},function(a,b){d.fn[a]=function(f,k){var l=d.map(this,b,f);"Until"!==a.slice(-5)&&(k=f);k&&"string"===typeof k&&(l=d.filter(k,l));1<this.length&&(Xb[a]||(l=d.unique(l)),Wb.test(a)&&(l=l.reverse()));return this.pushStack(l)}});var Y=/\S+/g,fb={};d.Callbacks=function(a){a="string"===typeof a?fb[a]||h(a):d.extend({},a);var b,f,k,l,c,e,g=[],m=!a.once&&[],n=function(d){f=a.memory&&d;
+k=!0;c=e||0;e=0;l=g.length;for(b=!0;g&&c<l;c++)if(!1===g[c].apply(d[0],d[1])&&a.stopOnFalse){f=!1;break}b=!1;g&&(m?m.length&&n(m.shift()):f?g=[]:t.disable())},t={add:function(){if(g){var k=g.length;(function Ub(b){d.each(b,function(b,f){b=d.type(f);"function"===b?a.unique&&t.has(f)||g.push(f):f&&f.length&&"string"!==b&&Ub(f)})})(arguments);b?l=g.length:f&&(e=k,n(f))}return this},remove:function(){g&&d.each(arguments,function(a,f){for(var k;-1<(k=d.inArray(f,g,k));)g.splice(k,1),b&&(k<=l&&l--,k<=c&&
+c--)});return this},has:function(a){return a?-1<d.inArray(a,g):!(!g||!g.length)},empty:function(){g=[];l=0;return this},disable:function(){g=m=f=void 0;return this},disabled:function(){return!g},lock:function(){m=void 0;f||t.disable();return this},locked:function(){return!m},fireWith:function(a,d){!g||k&&!m||(d=d||[],d=[a,d.slice?d.slice():d],b?m.push(d):n(d));return this},fire:function(){t.fireWith(this,arguments);return this},fired:function(){return!!k}};return t};d.extend({Deferred:function(a){var b=
+[["resolve","done",d.Callbacks("once memory"),"resolved"],["reject","fail",d.Callbacks("once memory"),"rejected"],["notify","progress",d.Callbacks("memory")]],f="pending",k={state:function(){return f},always:function(){l.done(arguments).fail(arguments);return this},then:function(){var a=arguments;return d.Deferred(function(f){d.each(b,function(b,c){var e=d.isFunction(a[b])&&a[b];l[c[1]](function(){var a=e&&e.apply(this,arguments);if(a&&d.isFunction(a.promise))a.promise().done(f.resolve).fail(f.reject).progress(f.notify);
+else f[c[0]+"With"](this===k?f.promise():this,e?[a]:arguments)})});a=null}).promise()},promise:function(a){return null!=a?d.extend(a,k):k}},l={};k.pipe=k.then;d.each(b,function(a,d){var c=d[2],e=d[3];k[d[1]]=c.add;e&&c.add(function(){f=e},b[a^1][2].disable,b[2][2].lock);l[d[0]]=function(){l[d[0]+"With"](this===l?k:this,arguments);return this};l[d[0]+"With"]=c.fireWith});k.promise(l);a&&a.call(l,l);return l},when:function(a){var b=0,f=ba.call(arguments),k=f.length,l=1!==k||a&&d.isFunction(a.promise)?
+k:0,c=1===l?a:d.Deferred(),e=function(a,b,d){return function(f){b[a]=this;d[a]=1<arguments.length?ba.call(arguments):f;d===g?c.notifyWith(b,d):--l||c.resolveWith(b,d)}},g,h,m;if(1<k)for(g=Array(k),h=Array(k),m=Array(k);b<k;b++)f[b]&&d.isFunction(f[b].promise)?f[b].promise().done(e(b,m,f)).fail(c.reject).progress(e(b,h,g)):--l;l||c.resolveWith(m,f);return c.promise()}});var Na;d.fn.ready=function(a){d.ready.promise().done(a);return this};d.extend({isReady:!1,readyWait:1,holdReady:function(a){a?d.readyWait++:
+d.ready(!0)},ready:function(a){if(!0===a?!--d.readyWait:!d.isReady){if(!z.body)return setTimeout(d.ready);d.isReady=!0;!0!==a&&0<--d.readyWait||(Na.resolveWith(z,[d]),d.fn.triggerHandler&&(d(z).triggerHandler("ready"),d(z).off("ready")))}}});d.ready.promise=function(a){if(!Na)if(Na=d.Deferred(),"complete"===z.readyState)setTimeout(d.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1);else{z.attachEvent("onreadystatechange",n);e.attachEvent("onload",
+n);var b=!1;try{b=null==e.frameElement&&z.documentElement}catch(f){}b&&b.doScroll&&function k(){if(!d.isReady){try{b.doScroll("left")}catch(l){return setTimeout(k,50)}m();d.ready()}}()}return Na.promise(a)};for(var Yb in d(w))break;w.ownLast="0"!==Yb;w.inlineBlockNeedsLayout=!1;d(function(){var a,b,d;(b=z.getElementsByTagName("body")[0])&&b.style&&(a=z.createElement("div"),d=z.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",b.appendChild(d).appendChild(a),
+"undefined"!==typeof a.style.zoom&&(a.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",w.inlineBlockNeedsLayout=a=3===a.offsetWidth)&&(b.style.zoom=1),b.removeChild(d))});(function(){var a=z.createElement("div");if(null==w.deleteExpando){w.deleteExpando=!0;try{delete a.test}catch(b){w.deleteExpando=!1}}})();d.acceptData=function(a){var b=d.noData[(a.nodeName+" ").toLowerCase()],f=+a.nodeType||1;return 1!==f&&9!==f?!1:!b||!0!==b&&a.getAttribute("classid")===b};var Ib=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+Hb=/([A-Z])/g;d.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!r(a)},data:function(a,b,d){return E(a,b,d)},removeData:function(a,b){return fa(a,b)},_data:function(a,b,d){return E(a,b,d,!0)},_removeData:function(a,b){return fa(a,b,!0)}});d.fn.extend({data:function(a,b){var f,k,c,e=this[0],g=e&&e.attributes;if(void 0===a){if(this.length&&(c=d.data(e),1===e.nodeType&&
+!d._data(e,"parsedAttrs"))){for(f=g.length;f--;)g[f]&&(k=g[f].name,0===k.indexOf("data-")&&(k=d.camelCase(k.slice(5)),W(e,k,c[k])));d._data(e,"parsedAttrs",!0)}return c}return"object"===typeof a?this.each(function(){d.data(this,a)}):1<arguments.length?this.each(function(){d.data(this,a,b)}):e?W(e,a,d.data(e,a)):void 0},removeData:function(a){return this.each(function(){d.removeData(this,a)})}});d.extend({queue:function(a,b,f){var k;if(a)return b=(b||"fx")+"queue",k=d._data(a,b),f&&(!k||d.isArray(f)?
+k=d._data(a,b,d.makeArray(f)):k.push(f)),k||[]},dequeue:function(a,b){b=b||"fx";var f=d.queue(a,b),k=f.length,c=f.shift(),e=d._queueHooks(a,b),g=function(){d.dequeue(a,b)};"inprogress"===c&&(c=f.shift(),k--);c&&("fx"===b&&f.unshift("inprogress"),delete e.stop,c.call(a,g,e));!k&&e&&e.empty.fire()},_queueHooks:function(a,b){var f=b+"queueHooks";return d._data(a,f)||d._data(a,f,{empty:d.Callbacks("once memory").add(function(){d._removeData(a,b+"queue");d._removeData(a,f)})})}});d.fn.extend({queue:function(a,
+b){var f=2;"string"!==typeof a&&(b=a,a="fx",f--);return arguments.length<f?d.queue(this[0],a):void 0===b?this:this.each(function(){var f=d.queue(this,a,b);d._queueHooks(this,a);"fx"===a&&"inprogress"!==f[0]&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var f,k=1,c=d.Deferred(),e=this,g=this.length,h=function(){--k||c.resolveWith(e,[e])};"string"!==typeof a&&(b=a,a=void 0);for(a=
+a||"fx";g--;)(f=d._data(e[g],a+"queueHooks"))&&f.empty&&(k++,f.empty.add(h));h();return c.promise(b)}});var Oa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,oa=["Top","Right","Bottom","Left"],Ca=function(a,b){a=b||a;return"none"===d.css(a,"display")||!d.contains(a.ownerDocument,a)},sa=d.access=function(a,b,f,k,c,e,g){var l=0,u=a.length,h=null==f;if("object"===d.type(f))for(l in c=!0,f)d.access(a,b,l,f[l],!0,e,g);else if(void 0!==k&&(c=!0,d.isFunction(k)||(g=!0),h&&(g?(b.call(a,k),b=null):(h=b,b=function(a,
+b,f){return h.call(d(a),f)})),b))for(;l<u;l++)b(a[l],f,g?k:k.call(a[l],l,b(a[l],f)));return c?a:h?b.call(a):u?b(a[0],f):e},Ua=/^(?:checkbox|radio)$/i;(function(){var a=z.createElement("input"),b=z.createElement("div"),d=z.createDocumentFragment();b.innerHTML="  \x3clink/\x3e\x3ctable\x3e\x3c/table\x3e\x3ca href\x3d'/a'\x3ea\x3c/a\x3e\x3cinput type\x3d'checkbox'/\x3e";w.leadingWhitespace=3===b.firstChild.nodeType;w.tbody=!b.getElementsByTagName("tbody").length;w.htmlSerialize=!!b.getElementsByTagName("link").length;
+w.html5Clone="\x3c:nav\x3e\x3c/:nav\x3e"!==z.createElement("nav").cloneNode(!0).outerHTML;a.type="checkbox";a.checked=!0;d.appendChild(a);w.appendChecked=a.checked;b.innerHTML="\x3ctextarea\x3ex\x3c/textarea\x3e";w.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue;d.appendChild(b);b.innerHTML="\x3cinput type\x3d'radio' checked\x3d'checked' name\x3d't'/\x3e";w.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked;w.noCloneEvent=!0;b.attachEvent&&(b.attachEvent("onclick",function(){w.noCloneEvent=
+!1}),b.cloneNode(!0).click());if(null==w.deleteExpando){w.deleteExpando=!0;try{delete b.test}catch(k){w.deleteExpando=!1}}})();(function(){var a,b,d=z.createElement("div");for(a in{submit:!0,change:!0,focusin:!0})b="on"+a,(w[a+"Bubbles"]=b in e)||(d.setAttribute(b,"t"),w[a+"Bubbles"]=!1===d.attributes[b].expando)})();var Xa=/^(?:input|select|textarea)$/i,Zb=/^key/,$b=/^(?:mouse|pointer|contextmenu)|click/,nb=/^(?:focusinfocus|focusoutblur)$/,ob=/^([^.]*)(?:\.(.+)|)$/;d.event={global:{},add:function(a,
+b,f,k,c){var l,e,g,h,m,t,n,v,p;if(g=d._data(a)){f.handler&&(h=f,f=h.handler,c=h.selector);f.guid||(f.guid=d.guid++);(e=g.events)||(e=g.events={});(m=g.handle)||(m=g.handle=function(a){return"undefined"===typeof d||a&&d.event.triggered===a.type?void 0:d.event.dispatch.apply(m.elem,arguments)},m.elem=a);b=(b||"").match(Y)||[""];for(g=b.length;g--;)l=ob.exec(b[g])||[],v=t=l[1],p=(l[2]||"").split(".").sort(),v&&(l=d.event.special[v]||{},v=(c?l.delegateType:l.bindType)||v,l=d.event.special[v]||{},t=d.extend({type:v,
+origType:t,data:k,handler:f,guid:f.guid,selector:c,needsContext:c&&d.expr.match.needsContext.test(c),namespace:p.join(".")},h),(n=e[v])||(n=e[v]=[],n.delegateCount=0,l.setup&&!1!==l.setup.call(a,k,p,m)||(a.addEventListener?a.addEventListener(v,m,!1):a.attachEvent&&a.attachEvent("on"+v,m))),l.add&&(l.add.call(a,t),t.handler.guid||(t.handler.guid=f.guid)),c?n.splice(n.delegateCount++,0,t):n.push(t),d.event.global[v]=!0);a=null}},remove:function(a,b,f,k,c){var l,e,g,h,m,t,n,v,p,y,w,C=d.hasData(a)&&d._data(a);
+if(C&&(t=C.events)){b=(b||"").match(Y)||[""];for(m=b.length;m--;)if(g=ob.exec(b[m])||[],p=w=g[1],y=(g[2]||"").split(".").sort(),p){n=d.event.special[p]||{};p=(k?n.delegateType:n.bindType)||p;v=t[p]||[];g=g[2]&&new RegExp("(^|\\.)"+y.join("\\.(?:.*\\.|)")+"(\\.|$)");for(h=l=v.length;l--;)e=v[l],!c&&w!==e.origType||f&&f.guid!==e.guid||g&&!g.test(e.namespace)||k&&k!==e.selector&&("**"!==k||!e.selector)||(v.splice(l,1),e.selector&&v.delegateCount--,n.remove&&n.remove.call(a,e));h&&!v.length&&(n.teardown&&
+!1!==n.teardown.call(a,y,C.handle)||d.removeEvent(a,p,C.handle),delete t[p])}else for(p in t)d.event.remove(a,p+b[m],f,k,!0);d.isEmptyObject(t)&&(delete C.handle,d._removeData(a,"events"))}},trigger:function(a,b,f,k){var c,g,h,m,n,v,t=[f||z],p=ja.call(a,"type")?a.type:a;n=ja.call(a,"namespace")?a.namespace.split("."):[];h=c=f=f||z;if(3!==f.nodeType&&8!==f.nodeType&&!nb.test(p+d.event.triggered)&&(0<=p.indexOf(".")&&(n=p.split("."),p=n.shift(),n.sort()),g=0>p.indexOf(":")&&"on"+p,a=a[d.expando]?a:
+new d.Event(p,"object"===typeof a&&a),a.isTrigger=k?2:3,a.namespace=n.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+n.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=f),b=null==b?[a]:d.makeArray(b,[a]),n=d.event.special[p]||{},k||!n.trigger||!1!==n.trigger.apply(f,b))){if(!k&&!n.noBubble&&!d.isWindow(f)){m=n.delegateType||p;nb.test(m+p)||(h=h.parentNode);for(;h;h=h.parentNode)t.push(h),c=h;c===(f.ownerDocument||z)&&t.push(c.defaultView||c.parentWindow||e)}for(v=
+0;(h=t[v++])&&!a.isPropagationStopped();)a.type=1<v?m:n.bindType||p,(c=(d._data(h,"events")||{})[a.type]&&d._data(h,"handle"))&&c.apply(h,b),(c=g&&h[g])&&c.apply&&d.acceptData(h)&&(a.result=c.apply(h,b),!1===a.result&&a.preventDefault());a.type=p;if(!(k||a.isDefaultPrevented()||n._default&&!1!==n._default.apply(t.pop(),b))&&d.acceptData(f)&&g&&f[p]&&!d.isWindow(f)){(c=f[g])&&(f[g]=null);d.event.triggered=p;try{f[p]()}catch(Mb){}d.event.triggered=void 0;c&&(f[g]=c)}return a.result}},dispatch:function(a){a=
+d.event.fix(a);var b,f,k,c,e,g=ba.call(arguments);b=(d._data(this,"events")||{})[a.type]||[];var h=d.event.special[a.type]||{};g[0]=a;a.delegateTarget=this;if(!h.preDispatch||!1!==h.preDispatch.call(this,a)){e=d.event.handlers.call(this,a,b);for(b=0;(k=e[b++])&&!a.isPropagationStopped();)for(a.currentTarget=k.elem,c=0;(f=k.handlers[c++])&&!a.isImmediatePropagationStopped();)if(!a.namespace_re||a.namespace_re.test(f.namespace))a.handleObj=f,a.data=f.data,f=((d.event.special[f.origType]||{}).handle||
+f.handler).apply(k.elem,g),void 0!==f&&!1===(a.result=f)&&(a.preventDefault(),a.stopPropagation());h.postDispatch&&h.postDispatch.call(this,a);return a.result}},handlers:function(a,b){var f,k,c,e,g=[],h=b.delegateCount,m=a.target;if(h&&m.nodeType&&(!a.button||"click"!==a.type))for(;m!=this;m=m.parentNode||this)if(1===m.nodeType&&(!0!==m.disabled||"click"!==a.type)){c=[];for(e=0;e<h;e++)k=b[e],f=k.selector+" ",void 0===c[f]&&(c[f]=k.needsContext?0<=d(f,this).index(m):d.find(f,this,null,[m]).length),
+c[f]&&c.push(k);c.length&&g.push({elem:m,handlers:c})}h<b.length&&g.push({elem:this,handlers:b.slice(h)});return g},fix:function(a){if(a[d.expando])return a;var b,f,k;b=a.type;var c=a,e=this.fixHooks[b];e||(this.fixHooks[b]=e=$b.test(b)?this.mouseHooks:Zb.test(b)?this.keyHooks:{});k=e.props?this.props.concat(e.props):this.props;a=new d.Event(c);for(b=k.length;b--;)f=k[b],a[f]=c[f];a.target||(a.target=c.srcElement||z);3===a.target.nodeType&&(a.target=a.target.parentNode);a.metaKey=!!a.metaKey;return e.filter?
+e.filter(a,c):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:["char","charCode","key","keyCode"],filter:function(a,b){null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var d,k,c=b.button,e=b.fromElement;null==
+a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||z,k=d.documentElement,d=d.body,a.pageX=b.clientX+(k&&k.scrollLeft||d&&d.scrollLeft||0)-(k&&k.clientLeft||d&&d.clientLeft||0),a.pageY=b.clientY+(k&&k.scrollTop||d&&d.scrollTop||0)-(k&&k.clientTop||d&&d.clientTop||0));!a.relatedTarget&&e&&(a.relatedTarget=e===a.target?b.toElement:e);a.which||void 0===c||(a.which=c&1?1:c&2?3:c&4?2:0);return a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ha()&&this.focus)try{return this.focus(),
+!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){if(this===ha()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if(d.nodeName(this,"input")&&"checkbox"===this.type&&this.click)return this.click(),!1},_default:function(a){return d.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,f,k){a=d.extend(new d.Event,f,{type:a,isSimulated:!0,originalEvent:{}});
+k?d.event.trigger(a,null,b):d.event.dispatch.call(b,a);a.isDefaultPrevented()&&f.preventDefault()}};d.removeEvent=z.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,!1)}:function(a,b,d){b="on"+b;a.detachEvent&&("undefined"===typeof a[b]&&(a[b]=null),a.detachEvent(b,d))};d.Event=function(a,b){if(!(this instanceof d.Event))return new d.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&
+!1===a.returnValue?aa:V):this.type=a;b&&d.extend(this,b);this.timeStamp=a&&a.timeStamp||d.now();this[d.expando]=!0};d.Event.prototype={isDefaultPrevented:V,isPropagationStopped:V,isImmediatePropagationStopped:V,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=
+this.originalEvent;this.isImmediatePropagationStopped=aa;a&&a.stopImmediatePropagation&&a.stopImmediatePropagation();this.stopPropagation()}};d.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){d.event.special[a]={delegateType:b,bindType:b,handle:function(a){var f,c=a.relatedTarget,e=a.handleObj;if(!c||c!==this&&!d.contains(this,c))a.type=e.origType,f=e.handler.apply(this,arguments),a.type=b;return f}}});w.submitBubbles||(d.event.special.submit=
+{setup:function(){if(d.nodeName(this,"form"))return!1;d.event.add(this,"click._submit keypress._submit",function(a){a=a.target;(a=d.nodeName(a,"input")||d.nodeName(a,"button")?a.form:void 0)&&!d._data(a,"submitBubbles")&&(d.event.add(a,"submit._submit",function(a){a._submit_bubble=!0}),d._data(a,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&d.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(d.nodeName(this,
+"form"))return!1;d.event.remove(this,"._submit")}});w.changeBubbles||(d.event.special.change={setup:function(){if(Xa.test(this.nodeName)){if("checkbox"===this.type||"radio"===this.type)d.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),d.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1);d.event.simulate("change",this,a,!0)});return!1}d.event.add(this,"beforeactivate._change",function(a){a=
+a.target;Xa.test(a.nodeName)&&!d._data(a,"changeBubbles")&&(d.event.add(a,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||d.event.simulate("change",this.parentNode,a,!0)}),d._data(a,"changeBubbles",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type)return a.handleObj.handler.apply(this,arguments)},teardown:function(){d.event.remove(this,"._change");return!Xa.test(this.nodeName)}});w.focusinBubbles||d.each({focus:"focusin",
+blur:"focusout"},function(a,b){var f=function(a){d.event.simulate(b,a.target,d.event.fix(a),!0)};d.event.special[b]={setup:function(){var c=this.ownerDocument||this,l=d._data(c,b);l||c.addEventListener(a,f,!0);d._data(c,b,(l||0)+1)},teardown:function(){var c=this.ownerDocument||this,l=d._data(c,b)-1;l?d._data(c,b,l):(c.removeEventListener(a,f,!0),d._removeData(c,b))}}});d.fn.extend({on:function(a,b,f,c,l){var k,e;if("object"===typeof a){"string"!==typeof b&&(f=f||b,b=void 0);for(k in a)this.on(k,
+b,f,a[k],l);return this}null==f&&null==c?(c=b,f=b=void 0):null==c&&("string"===typeof b?(c=f,f=void 0):(c=f,f=b,b=void 0));if(!1===c)c=V;else if(!c)return this;1===l&&(e=c,c=function(a){d().off(a);return e.apply(this,arguments)},c.guid=e.guid||(e.guid=d.guid++));return this.each(function(){d.event.add(this,a,c,f,b)})},one:function(a,b,d,c){return this.on(a,b,d,c,1)},off:function(a,b,f){var c;if(a&&a.preventDefault&&a.handleObj)return c=a.handleObj,d(a.delegateTarget).off(c.namespace?c.origType+"."+
+c.namespace:c.origType,c.selector,c.handler),this;if("object"===typeof a){for(c in a)this.off(c,b,a[c]);return this}if(!1===b||"function"===typeof b)f=b,b=void 0;!1===f&&(f=V);return this.each(function(){d.event.remove(this,a,f,b)})},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){var f=this[0];if(f)return d.event.trigger(a,b,f,!0)}});var gb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
+ac=/ jQuery\d+="(?:null|\d+)"/g,pb=new RegExp("\x3c(?:"+gb+")[\\s/\x3e]","i"),Ya=/^\s+/,qb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,rb=/<([\w:]+)/,sb=/<tbody/i,bc=/<|&#?\w+;/,cc=/<(?:script|style|link)/i,dc=/checked\s*(?:[^=]|=\s*.checked.)/i,tb=/^$|\/(?:java|ecma)script/i,Jb=/^true\/(.*)/,ec=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ca={option:[1,"\x3cselect multiple\x3d'multiple'\x3e","\x3c/select\x3e"],legend:[1,"\x3cfieldset\x3e","\x3c/fieldset\x3e"],area:[1,
+"\x3cmap\x3e","\x3c/map\x3e"],param:[1,"\x3cobject\x3e","\x3c/object\x3e"],thead:[1,"\x3ctable\x3e","\x3c/table\x3e"],tr:[2,"\x3ctable\x3e\x3ctbody\x3e","\x3c/tbody\x3e\x3c/table\x3e"],col:[2,"\x3ctable\x3e\x3ctbody\x3e\x3c/tbody\x3e\x3ccolgroup\x3e","\x3c/colgroup\x3e\x3c/table\x3e"],td:[3,"\x3ctable\x3e\x3ctbody\x3e\x3ctr\x3e","\x3c/tr\x3e\x3c/tbody\x3e\x3c/table\x3e"],_default:w.htmlSerialize?[0,"",""]:[1,"X\x3cdiv\x3e","\x3c/div\x3e"]},Za=Aa(z).appendChild(z.createElement("div"));ca.optgroup=
+ca.option;ca.tbody=ca.tfoot=ca.colgroup=ca.caption=ca.thead;ca.th=ca.td;d.extend({clone:function(a,b,f){var c,l,e,g,h,m=d.contains(a.ownerDocument,a);w.html5Clone||d.isXMLDoc(a)||!pb.test("\x3c"+a.nodeName+"\x3e")?e=a.cloneNode(!0):(Za.innerHTML=a.outerHTML,Za.removeChild(e=Za.firstChild));if(!(w.noCloneEvent&&w.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||d.isXMLDoc(a)))for(c=N(e),h=N(a),g=0;null!=(l=h[g]);++g)if(c[g]){var n=c[g],t,p=void 0,v;if(1===n.nodeType){t=n.nodeName.toLowerCase();if(!w.noCloneEvent&&
+n[d.expando]){v=d._data(n);for(p in v.events)d.removeEvent(n,p,v.handle);n.removeAttribute(d.expando)}if("script"===t&&n.text!==l.text)ia(n).text=l.text,A(n);else if("object"===t)n.parentNode&&(n.outerHTML=l.outerHTML),w.html5Clone&&l.innerHTML&&!d.trim(n.innerHTML)&&(n.innerHTML=l.innerHTML);else if("input"===t&&Ua.test(l.type))n.defaultChecked=n.checked=l.checked,n.value!==l.value&&(n.value=l.value);else if("option"===t)n.defaultSelected=n.selected=l.defaultSelected;else if("input"===t||"textarea"===
+t)n.defaultValue=l.defaultValue}}if(b)if(f)for(h=h||N(a),c=c||N(e),g=0;null!=(l=h[g]);g++)P(l,c[g]);else P(a,e);c=N(e,"script");0<c.length&&R(c,!m&&N(a,"script"));return e},buildFragment:function(a,b,f,c){for(var k,e,g,h,m,n,t=a.length,p=Aa(b),v=[],y=0;y<t;y++)if((e=a[y])||0===e)if("object"===d.type(e))d.merge(v,e.nodeType?[e]:e);else if(bc.test(e)){g=g||p.appendChild(b.createElement("div"));h=(rb.exec(e)||["",""])[1].toLowerCase();n=ca[h]||ca._default;g.innerHTML=n[1]+e.replace(qb,"\x3c$1\x3e\x3c/$2\x3e")+
+n[2];for(k=n[0];k--;)g=g.lastChild;!w.leadingWhitespace&&Ya.test(e)&&v.push(b.createTextNode(Ya.exec(e)[0]));if(!w.tbody)for(k=(e="table"!==h||sb.test(e)?"\x3ctable\x3e"!==n[1]||sb.test(e)?0:g:g.firstChild)&&e.childNodes.length;k--;)d.nodeName(m=e.childNodes[k],"tbody")&&!m.childNodes.length&&e.removeChild(m);d.merge(v,g.childNodes);for(g.textContent="";g.firstChild;)g.removeChild(g.firstChild);g=p.lastChild}else v.push(b.createTextNode(e));g&&p.removeChild(g);w.appendChecked||d.grep(N(v,"input"),
+Ta);for(y=0;e=v[y++];)if(!c||-1===d.inArray(e,c))if(a=d.contains(e.ownerDocument,e),g=N(p.appendChild(e),"script"),a&&R(g),f)for(k=0;e=g[k++];)tb.test(e.type||"")&&f.push(e);return p},cleanData:function(a,b){for(var f,c,e,g,h=0,m=d.expando,n=d.cache,p=w.deleteExpando,t=d.event.special;null!=(f=a[h]);h++)if(b||d.acceptData(f))if(g=(e=f[m])&&n[e]){if(g.events)for(c in g.events)t[c]?d.event.remove(f,c):d.removeEvent(f,c,g.handle);n[e]&&(delete n[e],p?delete f[m]:"undefined"!==typeof f.removeAttribute?
+f.removeAttribute(m):f[m]=null,Z.push(e))}}});d.fn.extend({text:function(a){return sa(this,function(a){return void 0===a?d.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Ia(this,a).appendChild(a)})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=
+Ia(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var f=a?d.filter(a,this):this,c=0;null!=(a=f[c]);c++)b||1!==a.nodeType||d.cleanData(N(a)),a.parentNode&&(b&&d.contains(a.ownerDocument,a)&&R(N(a,"script")),a.parentNode.removeChild(a));
+return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){for(1===a.nodeType&&d.cleanData(N(a,!1));a.firstChild;)a.removeChild(a.firstChild);a.options&&d.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){a=null==a?!1:a;b=null==b?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){return sa(this,function(a){var b=this[0]||{},c=0,e=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ac,""):void 0;if(!("string"!==typeof a||cc.test(a)||
+!w.htmlSerialize&&pb.test(a)||!w.leadingWhitespace&&Ya.test(a)||ca[(rb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(qb,"\x3c$1\x3e\x3c/$2\x3e");try{for(;c<e;c++)b=this[c]||{},1===b.nodeType&&(d.cleanData(N(b,!1)),b.innerHTML=a);b=0}catch(u){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];this.domManip(arguments,function(b){a=this.parentNode;d.cleanData(N(this));a&&a.replaceChild(b,this)});return a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,
+!0)},domManip:function(a,b){a=jb.apply([],a);var f,c,e,g,h=0,m=this.length,n=this,p=m-1,t=a[0],v=d.isFunction(t);if(v||1<m&&"string"===typeof t&&!w.checkClone&&dc.test(t))return this.each(function(d){var f=n.eq(d);v&&(a[0]=t.call(this,d,f.html()));f.domManip(a,b)});if(m&&(g=d.buildFragment(a,this[0].ownerDocument,!1,this),f=g.firstChild,1===g.childNodes.length&&(g=f),f)){e=d.map(N(g,"script"),ia);for(c=e.length;h<m;h++)f=g,h!==p&&(f=d.clone(f,!0,!0),c&&d.merge(e,N(f,"script"))),b.call(this[h],f,h);
+if(c)for(g=e[e.length-1].ownerDocument,d.map(e,A),h=0;h<c;h++)f=e[h],tb.test(f.type||"")&&!d._data(f,"globalEval")&&d.contains(g,f)&&(f.src?d._evalUrl&&d._evalUrl(f.src):d.globalEval((f.text||f.textContent||f.innerHTML||"").replace(ec,"")));g=f=null}return this}});d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(a){for(var f=0,c=[],e=d(a),g=e.length-1;f<=g;f++)a=f===g?this:this.clone(!0),d(e[f])[b](a),
+Wa.apply(c,a.get());return this.pushStack(c)}});var na,hb={};(function(){var a;w.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,d,c;if((d=z.getElementsByTagName("body")[0])&&d.style)return b=z.createElement("div"),c=z.createElement("div"),c.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",d.appendChild(c).appendChild(b),"undefined"!==typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",
+b.appendChild(z.createElement("div")).style.width="5px",a=3!==b.offsetWidth),d.removeChild(c),a}})();var ub=/^margin/,Ja=new RegExp("^("+Oa+")(?!px)[a-z%]+$","i"),ga,pa,fc=/^(top|right|bottom|left)$/;e.getComputedStyle?(ga=function(a){return a.ownerDocument.defaultView.opener?a.ownerDocument.defaultView.getComputedStyle(a,null):e.getComputedStyle(a,null)},pa=function(a,b,f){var c,e,g=a.style;e=(f=f||ga(a))?f.getPropertyValue(b)||f[b]:void 0;f&&(""!==e||d.contains(a.ownerDocument,a)||(e=d.style(a,
+b)),Ja.test(e)&&ub.test(b)&&(a=g.width,b=g.minWidth,c=g.maxWidth,g.minWidth=g.maxWidth=g.width=e,e=f.width,g.width=a,g.minWidth=b,g.maxWidth=c));return void 0===e?e:e+""}):z.documentElement.currentStyle&&(ga=function(a){return a.currentStyle},pa=function(a,b,d){var f,c,e,g=a.style;e=(d=d||ga(a))?d[b]:void 0;null==e&&g&&g[b]&&(e=g[b]);if(Ja.test(e)&&!fc.test(b)){d=g.left;if(c=(f=a.runtimeStyle)&&f.left)f.left=a.currentStyle.left;g.left="fontSize"===b?"1em":e;e=g.pixelLeft+"px";g.left=d;c&&(f.left=
+c)}return void 0===e?e:e+""||"auto"});(function(){function a(){var a,b,d,f;if((b=z.getElementsByTagName("body")[0])&&b.style){a=z.createElement("div");d=z.createElement("div");d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";b.appendChild(d).appendChild(a);a.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute";c=g=!1;m=!0;e.getComputedStyle&&
+(c="1%"!==(e.getComputedStyle(a,null)||{}).top,g="4px"===(e.getComputedStyle(a,null)||{width:"4px"}).width,f=a.appendChild(z.createElement("div")),f.style.cssText=a.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",f.style.marginRight=f.style.width="0",a.style.width="1px",m=!parseFloat((e.getComputedStyle(f,null)||{}).marginRight),a.removeChild(f));a.innerHTML="\x3ctable\x3e\x3ctr\x3e\x3ctd\x3e\x3c/td\x3e\x3ctd\x3et\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e";
+f=a.getElementsByTagName("td");f[0].style.cssText="margin:0;border:0;padding:0;display:none";if(h=0===f[0].offsetHeight)f[0].style.display="",f[1].style.display="none",h=0===f[0].offsetHeight;b.removeChild(d)}}var b,f,c,g,h,m;b=z.createElement("div");b.innerHTML="  \x3clink/\x3e\x3ctable\x3e\x3c/table\x3e\x3ca href\x3d'/a'\x3ea\x3c/a\x3e\x3cinput type\x3d'checkbox'/\x3e";if(f=(f=b.getElementsByTagName("a")[0])&&f.style)f.cssText="float:left;opacity:.5",w.opacity="0.5"===f.opacity,w.cssFloat=!!f.cssFloat,
+b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",w.clearCloneStyle="content-box"===b.style.backgroundClip,w.boxSizing=""===f.boxSizing||""===f.MozBoxSizing||""===f.WebkitBoxSizing,d.extend(w,{reliableHiddenOffsets:function(){null==h&&a();return h},boxSizingReliable:function(){null==g&&a();return g},pixelPosition:function(){null==c&&a();return c},reliableMarginRight:function(){null==m&&a();return m}})})();d.swap=function(a,b,d,c){var f,e={};for(f in b)e[f]=a.style[f],a.style[f]=
+b[f];d=d.apply(a,c||[]);for(f in b)a.style[f]=e[f];return d};var $a=/alpha\([^)]*\)/i,gc=/opacity\s*=\s*([^)]*)/,hc=/^(none|table(?!-c[ea]).+)/,Kb=new RegExp("^("+Oa+")(.*)$","i"),ic=new RegExp("^([+-])\x3d("+Oa+")","i"),jc={position:"absolute",visibility:"hidden",display:"block"},vb={letterSpacing:"0",fontWeight:"400"},ib=["Webkit","O","Moz","ms"];d.extend({cssHooks:{opacity:{get:function(a,b){if(b)return a=pa(a,"opacity"),""===a?"1":a}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,
+fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":w.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,f,c){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,k,g,h=d.camelCase(b),m=a.style;b=d.cssProps[h]||(d.cssProps[h]=Ba(m,h));g=d.cssHooks[b]||d.cssHooks[h];if(void 0!==f){if(k=typeof f,"string"===k&&(e=ic.exec(f))&&(f=(e[1]+1)*e[2]+parseFloat(d.css(a,b)),k="number"),null!=f&&f===f&&("number"!==k||d.cssNumber[h]||(f+="px"),w.clearCloneStyle||
+""!==f||0!==b.indexOf("background")||(m[b]="inherit"),!(g&&"set"in g)||void 0!==(f=g.set(a,f,c))))try{m[b]=f}catch(Ac){}}else return g&&"get"in g&&void 0!==(e=g.get(a,!1,c))?e:m[b]}},css:function(a,b,f,c){var e,k;k=d.camelCase(b);b=d.cssProps[k]||(d.cssProps[k]=Ba(a.style,k));(k=d.cssHooks[b]||d.cssHooks[k])&&"get"in k&&(e=k.get(a,!0,f));void 0===e&&(e=pa(a,b,c));"normal"===e&&b in vb&&(e=vb[b]);return""===f||f?(a=parseFloat(e),!0===f||d.isNumeric(a)?a||0:e):e}});d.each(["height","width"],function(a,
+b){d.cssHooks[b]={get:function(a,c,e){if(c)return hc.test(d.css(a,"display"))&&0===a.offsetWidth?d.swap(a,jc,function(){return U(a,b,e)}):U(a,b,e)},set:function(a,c,e){var f=e&&ga(a);return va(a,c,e?S(a,b,e,w.boxSizing&&"border-box"===d.css(a,"boxSizing",!1,f),f):0)}}});w.opacity||(d.cssHooks.opacity={get:function(a,b){return gc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var f=a.style;a=a.currentStyle;var c=d.isNumeric(b)?
+"alpha(opacity\x3d"+100*b+")":"",e=a&&a.filter||f.filter||"";f.zoom=1;if((1<=b||""===b)&&""===d.trim(e.replace($a,""))&&f.removeAttribute&&(f.removeAttribute("filter"),""===b||a&&!a.filter))return;f.filter=$a.test(e)?e.replace($a,c):e+" "+c}});d.cssHooks.marginRight=Fa(w.reliableMarginRight,function(a,b){if(b)return d.swap(a,{display:"inline-block"},pa,[a,"marginRight"])});d.each({margin:"",padding:"",border:"Width"},function(a,b){d.cssHooks[a+b]={expand:function(d){var f=0,c={};for(d="string"===
+typeof d?d.split(" "):[d];4>f;f++)c[a+oa[f]+b]=d[f]||d[f-2]||d[0];return c}};ub.test(a)||(d.cssHooks[a+b].set=va)});d.fn.extend({css:function(a,b){return sa(this,function(a,b,c){var f,e={},k=0;if(d.isArray(b)){c=ga(a);for(f=b.length;k<f;k++)e[b[k]]=d.css(a,b[k],!1,c);return e}return void 0!==c?d.style(a,b,c):d.css(a,b)},a,b,1<arguments.length)},show:function(){return O(this,!0)},hide:function(){return O(this)},toggle:function(a){return"boolean"===typeof a?a?this.show():this.hide():this.each(function(){Ca(this)?
+d(this).show():d(this).hide()})}});d.Tween=H;H.prototype={constructor:H,init:function(a,b,f,c,e,g){this.elem=a;this.prop=f;this.easing=e||"swing";this.options=b;this.start=this.now=this.cur();this.end=c;this.unit=g||(d.cssNumber[f]?"":"px")},cur:function(){var a=H.propHooks[this.prop];return a&&a.get?a.get(this):H.propHooks._default.get(this)},run:function(a){var b,f=H.propHooks[this.prop];this.pos=this.options.duration?b=d.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):
+b=a;this.now=(this.end-this.start)*b+this.start;this.options.step&&this.options.step.call(this.elem,this.now,this);f&&f.set?f.set(this):H.propHooks._default.set(this);return this}};H.prototype.init.prototype=H.prototype;H.propHooks={_default:{get:function(a){return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(a=d.css(a.elem,a.prop,""))&&"auto"!==a?a:0:a.elem[a.prop]},set:function(a){if(d.fx.step[a.prop])d.fx.step[a.prop](a);else a.elem.style&&(null!=a.elem.style[d.cssProps[a.prop]]||
+d.cssHooks[a.prop])?d.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}};H.propHooks.scrollTop=H.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}};d.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}};d.fx=H.prototype.init;d.fx.step={};var wa,Pa,kc=/^(?:toggle|show|hide)$/,wb=new RegExp("^(?:([+-])\x3d|)("+Oa+")([a-z%]*)$","i"),lc=/queueHooks$/,Ka=[function(a,b,f){var c,e,g,h,m,n,p=this,t={},v=a.style,y=a.nodeType&&
+Ca(a),C=d._data(a,"fxshow");f.queue||(h=d._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,m=h.empty.fire,h.empty.fire=function(){h.unqueued||m()}),h.unqueued++,p.always(function(){p.always(function(){h.unqueued--;d.queue(a,"fx").length||h.empty.fire()})}));1===a.nodeType&&("height"in b||"width"in b)&&(f.overflow=[v.overflow,v.overflowX,v.overflowY],n=d.css(a,"display"),e="none"===n?d._data(a,"olddisplay")||Ea(a.nodeName):n,"inline"===e&&"none"===d.css(a,"float")&&(w.inlineBlockNeedsLayout&&"inline"!==
+Ea(a.nodeName)?v.zoom=1:v.display="inline-block"));f.overflow&&(v.overflow="hidden",w.shrinkWrapBlocks()||p.always(function(){v.overflow=f.overflow[0];v.overflowX=f.overflow[1];v.overflowY=f.overflow[2]}));for(c in b)if(e=b[c],kc.exec(e)){delete b[c];g=g||"toggle"===e;if(e===(y?"hide":"show"))if("show"===e&&C&&void 0!==C[c])y=!0;else continue;t[c]=C&&C[c]||d.style(a,c)}else n=void 0;if(d.isEmptyObject(t))"inline"===("none"===n?Ea(a.nodeName):n)&&(v.display=n);else for(c in C?"hidden"in C&&(y=C.hidden):
+C=d._data(a,"fxshow",{}),g&&(C.hidden=!y),y?d(a).show():p.done(function(){d(a).hide()}),p.done(function(){var b;d._removeData(a,"fxshow");for(b in t)d.style(a,b,t[b])}),t)b=da(y?C[c]:0,c,p),c in C||(C[c]=b.start,y&&(b.end=b.start,b.start="width"===c||"height"===c?1:0))}],xa={"*":[function(a,b){var f=this.createTween(a,b),c=f.cur(),e=(b=wb.exec(b))&&b[3]||(d.cssNumber[a]?"":"px"),g=(d.cssNumber[a]||"px"!==e&&+c)&&wb.exec(d.css(f.elem,a)),h=1,m=20;if(g&&g[3]!==e){e=e||g[3];b=b||[];g=+c||1;do h=h||".5",
+g/=h,d.style(f.elem,a,g+e);while(h!==(h=f.cur()/c)&&1!==h&&--m)}b&&(g=f.start=+g||+c||0,f.unit=e,f.end=b[1]?g+(b[1]+1)*b[2]:+b[2]);return f}]};d.Animation=d.extend(G,{tweener:function(a,b){d.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var f,c=0,e=a.length;c<e;c++)f=a[c],xa[f]=xa[f]||[],xa[f].unshift(b)},prefilter:function(a,b){b?Ka.unshift(a):Ka.push(a)}});d.speed=function(a,b,f){var c=a&&"object"===typeof a?d.extend({},a):{complete:f||!f&&b||d.isFunction(a)&&a,duration:a,easing:f&&b||b&&!d.isFunction(b)&&
+b};c.duration=d.fx.off?0:"number"===typeof c.duration?c.duration:c.duration in d.fx.speeds?d.fx.speeds[c.duration]:d.fx.speeds._default;if(null==c.queue||!0===c.queue)c.queue="fx";c.old=c.complete;c.complete=function(){d.isFunction(c.old)&&c.old.call(this);c.queue&&d.dequeue(this,c.queue)};return c};d.fn.extend({fadeTo:function(a,b,d,c){return this.filter(Ca).css("opacity",0).show().end().animate({opacity:b},a,d,c)},animate:function(a,b,f,c){var e=d.isEmptyObject(a),g=d.speed(b,f,c);b=function(){var b=
+G(this,d.extend({},a),g);(e||d._data(this,"finish"))&&b.stop(!0)};b.finish=b;return e||!1===g.queue?this.each(b):this.queue(g.queue,b)},stop:function(a,b,f){var c=function(a){var b=a.stop;delete a.stop;b(f)};"string"!==typeof a&&(f=b,b=a,a=void 0);b&&!1!==a&&this.queue(a||"fx",[]);return this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",g=d.timers,k=d._data(this);if(e)k[e]&&k[e].stop&&c(k[e]);else for(e in k)k[e]&&k[e].stop&&lc.test(e)&&c(k[e]);for(e=g.length;e--;)g[e].elem!==this||null!=a&&
+g[e].queue!==a||(g[e].anim.stop(f),b=!1,g.splice(e,1));!b&&f||d.dequeue(this,a)})},finish:function(a){!1!==a&&(a=a||"fx");return this.each(function(){var b,f=d._data(this),c=f[a+"queue"];b=f[a+"queueHooks"];var e=d.timers,g=c?c.length:0;f.finish=!0;d.queue(this,a,[]);b&&b.stop&&b.stop.call(this,!0);for(b=e.length;b--;)e[b].elem===this&&e[b].queue===a&&(e[b].anim.stop(!0),e.splice(b,1));for(b=0;b<g;b++)c[b]&&c[b].finish&&c[b].finish.call(this);delete f.finish})}});d.each(["toggle","show","hide"],function(a,
+b){var f=d.fn[b];d.fn[b]=function(a,d,c){return null==a||"boolean"===typeof a?f.apply(this,arguments):this.animate(v(b,!0),a,d,c)}});d.each({slideDown:v("show"),slideUp:v("hide"),slideToggle:v("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,d,c){return this.animate(b,a,d,c)}});d.timers=[];d.fx.tick=function(){var a,b=d.timers,f=0;for(wa=d.now();f<b.length;f++)a=b[f],a()||b[f]!==a||b.splice(f--,1);b.length||d.fx.stop();wa=void 0};
+d.fx.timer=function(a){d.timers.push(a);a()?d.fx.start():d.timers.pop()};d.fx.interval=13;d.fx.start=function(){Pa||(Pa=setInterval(d.fx.tick,d.fx.interval))};d.fx.stop=function(){clearInterval(Pa);Pa=null};d.fx.speeds={slow:600,fast:200,_default:400};d.fn.delay=function(a,b){a=d.fx?d.fx.speeds[a]||a:a;return this.queue(b||"fx",function(b,d){var f=setTimeout(b,a);d.stop=function(){clearTimeout(f)}})};(function(){var a,b,d,c,e;b=z.createElement("div");b.setAttribute("className","t");b.innerHTML="  \x3clink/\x3e\x3ctable\x3e\x3c/table\x3e\x3ca href\x3d'/a'\x3ea\x3c/a\x3e\x3cinput type\x3d'checkbox'/\x3e";
+c=b.getElementsByTagName("a")[0];d=z.createElement("select");e=d.appendChild(z.createElement("option"));a=b.getElementsByTagName("input")[0];c.style.cssText="top:1px";w.getSetAttribute="t"!==b.className;w.style=/top/.test(c.getAttribute("style"));w.hrefNormalized="/a"===c.getAttribute("href");w.checkOn=!!a.value;w.optSelected=e.selected;w.enctype=!!z.createElement("form").enctype;d.disabled=!0;w.optDisabled=!e.disabled;a=z.createElement("input");a.setAttribute("value","");w.input=""===a.getAttribute("value");
+a.value="t";a.setAttribute("type","radio");w.radioValue="t"===a.value})();var mc=/\r/g;d.fn.extend({val:function(a){var b,f,c,e=this[0];if(arguments.length)return c=d.isFunction(a),this.each(function(f){1===this.nodeType&&(f=c?a.call(this,f,d(this).val()):a,null==f?f="":"number"===typeof f?f+="":d.isArray(f)&&(f=d.map(f,function(a){return null==a?"":a+""})),b=d.valHooks[this.type]||d.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,f,"value")||(this.value=f))});if(e){if((b=
+d.valHooks[e.type]||d.valHooks[e.nodeName.toLowerCase()])&&"get"in b&&void 0!==(f=b.get(e,"value")))return f;f=e.value;return"string"===typeof f?f.replace(mc,""):null==f?"":f}}});d.extend({valHooks:{option:{get:function(a){var b=d.find.attr(a,"value");return null!=b?b:d.trim(d.text(a))}},select:{get:function(a){for(var b,f=a.options,c=a.selectedIndex,e=(a="select-one"===a.type||0>c)?null:[],g=a?c+1:f.length,h=0>c?g:a?c:0;h<g;h++)if(b=f[h],!(!b.selected&&h!==c||(w.optDisabled?b.disabled:null!==b.getAttribute("disabled"))||
+b.parentNode.disabled&&d.nodeName(b.parentNode,"optgroup"))){b=d(b).val();if(a)return b;e.push(b)}return e},set:function(a,b){for(var f,c=a.options,e=d.makeArray(b),g=c.length;g--;)if(b=c[g],0<=d.inArray(d.valHooks.option.get(b),e))try{b.selected=f=!0}catch(K){b.scrollHeight}else b.selected=!1;f||(a.selectedIndex=-1);return c}}}});d.each(["radio","checkbox"],function(){d.valHooks[this]={set:function(a,b){if(d.isArray(b))return a.checked=0<=d.inArray(d(a).val(),b)}};w.checkOn||(d.valHooks[this].get=
+function(a){return null===a.getAttribute("value")?"on":a.value})});var za,xb,ka=d.expr.attrHandle,ab=/^(?:checked|selected)$/i,ta=w.getSetAttribute,Qa=w.input;d.fn.extend({attr:function(a,b){return sa(this,d.attr,a,b,1<arguments.length)},removeAttr:function(a){return this.each(function(){d.removeAttr(this,a)})}});d.extend({attr:function(a,b,f){var c,e,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g){if("undefined"===typeof a.getAttribute)return d.prop(a,b,f);1===g&&d.isXMLDoc(a)||(b=b.toLowerCase(),c=d.attrHooks[b]||
+(d.expr.match.bool.test(b)?xb:za));if(void 0!==f)if(null===f)d.removeAttr(a,b);else{if(c&&"set"in c&&void 0!==(e=c.set(a,f,b)))return e;a.setAttribute(b,f+"");return f}else{if(c&&"get"in c&&null!==(e=c.get(a,b)))return e;e=d.find.attr(a,b);return null==e?void 0:e}}},removeAttr:function(a,b){var f,c=0,e=b&&b.match(Y);if(e&&1===a.nodeType)for(;b=e[c++];)f=d.propFix[b]||b,d.expr.match.bool.test(b)?Qa&&ta||!ab.test(b)?a[f]=!1:a[d.camelCase("default-"+b)]=a[f]=!1:d.attr(a,b,""),a.removeAttribute(ta?b:
+f)},attrHooks:{type:{set:function(a,b){if(!w.radioValue&&"radio"===b&&d.nodeName(a,"input")){var f=a.value;a.setAttribute("type",b);f&&(a.value=f);return b}}}}});xb={set:function(a,b,f){!1===b?d.removeAttr(a,f):Qa&&ta||!ab.test(f)?a.setAttribute(!ta&&d.propFix[f]||f,f):a[d.camelCase("default-"+f)]=a[f]=!0;return f}};d.each(d.expr.match.bool.source.match(/\w+/g),function(a,b){var f=ka[b]||d.find.attr;ka[b]=Qa&&ta||!ab.test(b)?function(a,b,d){var c,e;d||(e=ka[b],ka[b]=c,c=null!=f(a,b,d)?b.toLowerCase():
+null,ka[b]=e);return c}:function(a,b,f){if(!f)return a[d.camelCase("default-"+b)]?b.toLowerCase():null}});Qa&&ta||(d.attrHooks.value={set:function(a,b,f){if(d.nodeName(a,"input"))a.defaultValue=b;else return za&&za.set(a,b,f)}});ta||(za={set:function(a,b,d){var f=a.getAttributeNode(d);f||a.setAttributeNode(f=a.ownerDocument.createAttribute(d));f.value=b+="";if("value"===d||b===a.getAttribute(d))return b}},ka.id=ka.name=ka.coords=function(a,b,d){var f;if(!d)return(f=a.getAttributeNode(b))&&""!==f.value?
+f.value:null},d.valHooks.button={get:function(a,b){if((a=a.getAttributeNode(b))&&a.specified)return a.value},set:za.set},d.attrHooks.contenteditable={set:function(a,b,d){za.set(a,""===b?!1:b,d)}},d.each(["width","height"],function(a,b){d.attrHooks[b]={set:function(a,d){if(""===d)return a.setAttribute(b,"auto"),d}}}));w.style||(d.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var nc=/^(?:input|select|textarea|button|object)$/i,oc=/^(?:a|area)$/i;
+d.fn.extend({prop:function(a,b){return sa(this,d.prop,a,b,1<arguments.length)},removeProp:function(a){a=d.propFix[a]||a;return this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}});d.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,f){var c,e,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return 1===g&&d.isXMLDoc(a)||(b=d.propFix[b]||b,e=d.propHooks[b]),void 0!==f?e&&"set"in e&&void 0!==(c=e.set(a,f,b))?c:a[b]=f:e&&"get"in e&&null!==(c=e.get(a,b))?c:a[b]},propHooks:{tabIndex:{get:function(a){var b=
+d.find.attr(a,"tabindex");return b?parseInt(b,10):nc.test(a.nodeName)||oc.test(a.nodeName)&&a.href?0:-1}}}});w.hrefNormalized||d.each(["href","src"],function(a,b){d.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}});w.optSelected||(d.propHooks.selected={get:function(a){if(a=a.parentNode)a.selectedIndex,a.parentNode&&a.parentNode.selectedIndex;return null}});d.each("tabIndex readOnly maxLength cellSpacing cellPadding rowSpan colSpan useMap frameBorder contentEditable".split(" "),function(){d.propFix[this.toLowerCase()]=
+this});w.enctype||(d.propFix.enctype="encoding");var bb=/[\t\r\n\f]/g;d.fn.extend({addClass:function(a){var b,f,c,e,g,h=0,m=this.length;b="string"===typeof a&&a;if(d.isFunction(a))return this.each(function(b){d(this).addClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(Y)||[];h<m;h++)if(f=this[h],c=1===f.nodeType&&(f.className?(" "+f.className+" ").replace(bb," "):" ")){for(g=0;e=b[g++];)0>c.indexOf(" "+e+" ")&&(c+=e+" ");c=d.trim(c);f.className!==c&&(f.className=c)}return this},removeClass:function(a){var b,
+f,c,e,g,h=0,m=this.length;b=0===arguments.length||"string"===typeof a&&a;if(d.isFunction(a))return this.each(function(b){d(this).removeClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(Y)||[];h<m;h++)if(f=this[h],c=1===f.nodeType&&(f.className?(" "+f.className+" ").replace(bb," "):"")){for(g=0;e=b[g++];)for(;0<=c.indexOf(" "+e+" ");)c=c.replace(" "+e+" "," ");c=a?d.trim(c):"";f.className!==c&&(f.className=c)}return this},toggleClass:function(a,b){var f=typeof a;return"boolean"===typeof b&&
+"string"===f?b?this.addClass(a):this.removeClass(a):d.isFunction(a)?this.each(function(f){d(this).toggleClass(a.call(this,f,this.className,b),b)}):this.each(function(){if("string"===f)for(var b,c=0,e=d(this),g=a.match(Y)||[];b=g[c++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else if("undefined"===f||"boolean"===f)this.className&&d._data(this,"__className__",this.className),this.className=this.className||!1===a?"":d._data(this,"__className__")||""})},hasClass:function(a){a=" "+a+" ";for(var b=
+0,d=this.length;b<d;b++)if(1===this[b].nodeType&&0<=(" "+this[b].className+" ").replace(bb," ").indexOf(a))return!0;return!1}});d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){d.fn[b]=function(a,d){return 0<arguments.length?this.on(b,null,a,d):this.trigger(b)}});d.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||
+a)},bind:function(a,b,d){return this.on(a,null,b,d)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,d,c){return this.on(b,a,d,c)},undelegate:function(a,b,d){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",d)}});var cb=d.now(),db=/\?/,pc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;d.parseJSON=function(a){if(e.JSON&&e.JSON.parse)return e.JSON.parse(a+"");var b,f=null,c=d.trim(a+
+"");return c&&!d.trim(c.replace(pc,function(a,d,c,e){b&&d&&(f=0);if(0===f)return a;b=c||d;f+=!e-!c;return""}))?Function("return "+c)():d.error("Invalid JSON: "+a)};d.parseXML=function(a){var b,c;if(!a||"string"!==typeof a)return null;try{e.DOMParser?(c=new DOMParser,b=c.parseFromString(a,"text/xml")):(b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a))}catch(k){b=void 0}b&&b.documentElement&&!b.getElementsByTagName("parsererror").length||d.error("Invalid XML: "+a);return b};var ua,
+la,qc=/#.*$/,yb=/([?&])_=[^&]*/,rc=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,sc=/^(?:GET|HEAD)$/,tc=/^\/\//,zb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ab={},Va={},Bb="*/".concat("*");try{la=location.href}catch(a){la=z.createElement("a"),la.href="",la=la.href}ua=zb.exec(la.toLowerCase())||[];d.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:la,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ua[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset\x3dUTF-8",
+accepts:{"*":Bb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?L(L(a,d.ajaxSettings),b):L(d.ajaxSettings,a)},ajaxPrefilter:C(Ab),ajaxTransport:C(Va),ajax:function(a,
+b){function c(a,b,c,f){var e,k,l,u;u=b;if(2!==L){L=2;m&&clearTimeout(m);v=void 0;h=f||"";B.readyState=0<a?4:0;f=200<=a&&300>a||304===a;if(c){l=t;for(var p=B,I,z,r,D,G=l.contents,K=l.dataTypes;"*"===K[0];)K.shift(),void 0===z&&(z=l.mimeType||p.getResponseHeader("Content-Type"));if(z)for(D in G)if(G[D]&&G[D].test(z)){K.unshift(D);break}if(K[0]in c)r=K[0];else{for(D in c){if(!K[0]||l.converters[D+" "+K[0]]){r=D;break}I||(I=D)}r=r||I}r?(r!==K[0]&&K.unshift(r),l=c[r]):l=void 0}a:{c=t;I=l;z=B;r=f;var P,
+O,F,p={},G=c.dataTypes.slice();if(G[1])for(O in c.converters)p[O.toLowerCase()]=c.converters[O];for(D=G.shift();D;)if(c.responseFields[D]&&(z[c.responseFields[D]]=I),!F&&r&&c.dataFilter&&(I=c.dataFilter(I,c.dataType)),F=D,D=G.shift())if("*"===D)D=F;else if("*"!==F&&F!==D){O=p[F+" "+D]||p["* "+D];if(!O)for(P in p)if(l=P.split(" "),l[1]===D&&(O=p[F+" "+l[0]]||p["* "+l[0]])){!0===O?O=p[P]:!0!==p[P]&&(D=l[0],G.unshift(l[1]));break}if(!0!==O)if(O&&c["throws"])I=O(I);else try{I=O(I)}catch(Tb){l={state:"parsererror",
+error:O?Tb:"No conversion from "+F+" to "+D};break a}}l={state:"success",data:I}}if(f)t.ifModified&&((u=B.getResponseHeader("Last-Modified"))&&(d.lastModified[g]=u),(u=B.getResponseHeader("etag"))&&(d.etag[g]=u)),204===a||"HEAD"===t.type?u="nocontent":304===a?u="notmodified":(u=l.state,e=l.data,k=l.error,f=!k);else if(k=u,a||!u)u="error",0>a&&(a=0);B.status=a;B.statusText=(b||u)+"";f?w.resolveWith(y,[e,u,B]):w.rejectWith(y,[B,u,k]);B.statusCode(da);da=void 0;n&&C.trigger(f?"ajaxSuccess":"ajaxError",
+[B,t,f?e:k]);A.fireWith(y,[B,u]);n&&(C.trigger("ajaxComplete",[B,t]),--d.active||d.event.trigger("ajaxStop"))}}"object"===typeof a&&(b=a,a=void 0);b=b||{};var e,g,h,m,n,v,p,t=d.ajaxSetup({},b),y=t.context||t,C=t.context&&(y.nodeType||y.jquery)?d(y):d.event,w=d.Deferred(),A=d.Callbacks("once memory"),da=t.statusCode||{},I={},z={},L=0,r="canceled",B={readyState:0,getResponseHeader:function(a){var b;if(2===L){if(!p)for(p={};b=rc.exec(h);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b?
+null:b},getAllResponseHeaders:function(){return 2===L?h:null},setRequestHeader:function(a,b){var d=a.toLowerCase();L||(a=z[d]=z[d]||a,I[a]=b);return this},overrideMimeType:function(a){L||(t.mimeType=a);return this},statusCode:function(a){var b;if(a)if(2>L)for(b in a)da[b]=[da[b],a[b]];else B.always(a[B.status]);return this},abort:function(a){a=a||r;v&&v.abort(a);c(0,a);return this}};w.promise(B).complete=A.add;B.success=B.done;B.error=B.fail;t.url=((a||t.url||la)+"").replace(qc,"").replace(tc,ua[1]+
+"//");t.type=b.method||b.type||t.method||t.type;t.dataTypes=d.trim(t.dataType||"*").toLowerCase().match(Y)||[""];null==t.crossDomain&&(a=zb.exec(t.url.toLowerCase()),t.crossDomain=!(!a||a[1]===ua[1]&&a[2]===ua[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(ua[3]||("http:"===ua[1]?"80":"443"))));t.data&&t.processData&&"string"!==typeof t.data&&(t.data=d.param(t.data,t.traditional));D(Ab,t,b,B);if(2===L)return B;(n=d.event&&t.global)&&0===d.active++&&d.event.trigger("ajaxStart");t.type=t.type.toUpperCase();
+t.hasContent=!sc.test(t.type);g=t.url;t.hasContent||(t.data&&(g=t.url+=(db.test(g)?"\x26":"?")+t.data,delete t.data),!1===t.cache&&(t.url=yb.test(g)?g.replace(yb,"$1_\x3d"+cb++):g+(db.test(g)?"\x26":"?")+"_\x3d"+cb++));t.ifModified&&(d.lastModified[g]&&B.setRequestHeader("If-Modified-Since",d.lastModified[g]),d.etag[g]&&B.setRequestHeader("If-None-Match",d.etag[g]));(t.data&&t.hasContent&&!1!==t.contentType||b.contentType)&&B.setRequestHeader("Content-Type",t.contentType);B.setRequestHeader("Accept",
+t.dataTypes[0]&&t.accepts[t.dataTypes[0]]?t.accepts[t.dataTypes[0]]+("*"!==t.dataTypes[0]?", "+Bb+"; q\x3d0.01":""):t.accepts["*"]);for(e in t.headers)B.setRequestHeader(e,t.headers[e]);if(t.beforeSend&&(!1===t.beforeSend.call(y,B,t)||2===L))return B.abort();r="abort";for(e in{success:1,error:1,complete:1})B[e](t[e]);if(v=D(Va,t,b,B)){B.readyState=1;n&&C.trigger("ajaxSend",[B,t]);t.async&&0<t.timeout&&(m=setTimeout(function(){B.abort("timeout")},t.timeout));try{L=1,v.send(I,c)}catch(F){if(2>L)c(-1,
+F);else throw F;}}else c(-1,"No Transport");return B},getJSON:function(a,b,c){return d.get(a,b,c,"json")},getScript:function(a,b){return d.get(a,void 0,b,"script")}});d.each(["get","post"],function(a,b){d[b]=function(a,c,e,g){d.isFunction(c)&&(g=g||e,e=c,c=void 0);return d.ajax({url:a,type:b,dataType:g,data:c,success:e})}});d._evalUrl=function(a){return d.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})};d.fn.extend({wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,
+b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return d.isFunction(a)?this.each(function(b){d(this).wrapInner(a.call(this,b))}):this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=d.isFunction(a);return this.each(function(c){d(this).wrapAll(b?
+a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()}});d.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight||!w.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||d.css(a,"display"))};d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)};var uc=/%20/g,Nb=/\[\]$/,Cb=/\r?\n/g,vc=/^(?:submit|button|image|reset|file)$/i,wc=/^(?:input|select|textarea|keygen)/i;d.param=
+function(a,b){var c,e=[],g=function(a,b){b=d.isFunction(b)?b():null==b?"":b;e[e.length]=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)};void 0===b&&(b=d.ajaxSettings&&d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){g(this.name,this.value)});else for(c in a)ea(c,a[c],b,g);return e.join("\x26").replace(uc,"+")};d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=d.prop(this,
+"elements");return a?d.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!d(this).is(":disabled")&&wc.test(this.nodeName)&&!vc.test(a)&&(this.checked||!Ua.test(a))}).map(function(a,b){a=d(this).val();return null==a?null:d.isArray(a)?d.map(a,function(a){return{name:b.name,value:a.replace(Cb,"\r\n")}}):{name:b.name,value:a.replace(Cb,"\r\n")}}).get()}});d.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&
+La()))a:{try{a=new e.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:La;var xc=0,Ra={},Sa=d.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var a in Ra)Ra[a](void 0,!0)});w.cors=!!Sa&&"withCredentials"in Sa;(Sa=w.ajax=!!Sa)&&d.ajaxTransport(function(a){if(!a.crossDomain||w.cors){var b;return{send:function(c,e){var f,g=a.xhr(),k=++xc;g.open(a.type,a.url,a.async,a.username,a.password);if(a.xhrFields)for(f in a.xhrFields)g[f]=a.xhrFields[f];a.mimeType&&
+g.overrideMimeType&&g.overrideMimeType(a.mimeType);a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(f in c)void 0!==c[f]&&g.setRequestHeader(f,c[f]+"");g.send(a.hasContent&&a.data||null);b=function(c,f){var h,l,m;if(b&&(f||4===g.readyState))if(delete Ra[k],b=void 0,g.onreadystatechange=d.noop,f)4!==g.readyState&&g.abort();else{m={};h=g.status;"string"===typeof g.responseText&&(m.text=g.responseText);try{l=g.statusText}catch(Mb){l=""}h||!a.isLocal||a.crossDomain?1223===
+h&&(h=204):h=m.text?200:404}m&&e(h,l,m,g.getAllResponseHeaders())};a.async?4===g.readyState?setTimeout(b):g.onreadystatechange=Ra[k]=b:b()},abort:function(){b&&b(void 0,!0)}}}});d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){d.globalEval(a);return a}}});d.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1);a.crossDomain&&(a.type="GET",
+a.global=!1)});d.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||d("head")[0]||z.documentElement;return{send:function(d,f){b=z.createElement("script");b.async=!0;a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,d){if(d||!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,d||f(200,"success")};c.insertBefore(b,c.firstChild)},abort:function(){if(b)b.onload(void 0,
+!0)}}}});var Db=[],eb=/(=)\?(?=&|$)|\?\?/;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Db.pop()||d.expando+"_"+cb++;this[a]=!0;return a}});d.ajaxPrefilter("json jsonp",function(a,b,c){var f,g,h,m=!1!==a.jsonp&&(eb.test(a.url)?"url":"string"===typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&eb.test(a.data)&&"data");if(m||"jsonp"===a.dataTypes[0])return f=a.jsonpCallback=d.isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,m?a[m]=a[m].replace(eb,
+"$1"+f):!1!==a.jsonp&&(a.url+=(db.test(a.url)?"\x26":"?")+a.jsonp+"\x3d"+f),a.converters["script json"]=function(){h||d.error(f+" was not called");return h[0]},a.dataTypes[0]="json",g=e[f],e[f]=function(){h=arguments},c.always(function(){e[f]=g;a[f]&&(a.jsonpCallback=b.jsonpCallback,Db.push(f));h&&d.isFunction(g)&&g(h[0]);h=g=void 0}),"script"});d.parseHTML=function(a,b,c){if(!a||"string"!==typeof a)return null;"boolean"===typeof b&&(c=b,b=!1);b=b||z;var f=mb.exec(a);c=!c&&[];if(f)return[b.createElement(f[1])];
+f=d.buildFragment([a],b,c);c&&c.length&&d(c).remove();return d.merge([],f.childNodes)};var Eb=d.fn.load;d.fn.load=function(a,b,c){if("string"!==typeof a&&Eb)return Eb.apply(this,arguments);var f,e,g,h=this,m=a.indexOf(" ");0<=m&&(f=d.trim(a.slice(m,a.length)),a=a.slice(0,m));d.isFunction(b)?(c=b,b=void 0):b&&"object"===typeof b&&(g="POST");0<h.length&&d.ajax({url:a,type:g,dataType:"html",data:b}).done(function(a){e=arguments;h.html(f?d("\x3cdiv\x3e").append(d.parseHTML(a)).find(f):a)}).complete(c&&
+function(a,b){h.each(c,e||[a.responseText,b,a])});return this};d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.on(b,a)}});d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length};var Fb=e.document.documentElement;d.offset={setOffset:function(a,b,c){var f,e,g,h=d.css(a,"position"),m=d(a),n={};"static"===h&&(a.style.position="relative");g=m.offset();e=d.css(a,"top");f=d.css(a,"left");
+("absolute"===h||"fixed"===h)&&-1<d.inArray("auto",[e,f])?(f=m.position(),e=f.top,f=f.left):(e=parseFloat(e)||0,f=parseFloat(f)||0);d.isFunction(b)&&(b=b.call(a,c,g));null!=b.top&&(n.top=b.top-g.top+e);null!=b.left&&(n.left=b.left-g.left+f);"using"in b?b.using.call(a,n):m.css(n)}};d.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){d.offset.setOffset(this,a,b)});var b,c,e={top:0,left:0},g=(c=this[0])&&c.ownerDocument;if(g){b=g.documentElement;if(!d.contains(b,
+c))return e;"undefined"!==typeof c.getBoundingClientRect&&(e=c.getBoundingClientRect());c=Ga(g);return{top:e.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:e.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}}},position:function(){if(this[0]){var a,b,c={top:0,left:0},e=this[0];"fixed"===d.css(e,"position")?b=e.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),d.nodeName(a[0],"html")||(c=a.offset()),c.top+=d.css(a[0],"borderTopWidth",!0),c.left+=d.css(a[0],"borderLeftWidth",
+!0));return{top:b.top-c.top-d.css(e,"marginTop",!0),left:b.left-c.left-d.css(e,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||Fb;a&&!d.nodeName(a,"html")&&"static"===d.css(a,"position");)a=a.offsetParent;return a||Fb})}});d.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);d.fn[a]=function(f){return sa(this,function(a,f,e){var g=Ga(a);if(void 0===e)return g?b in g?g[b]:g.document.documentElement[f]:a[f];g?g.scrollTo(c?
+d(g).scrollLeft():e,c?e:d(g).scrollTop()):a[f]=e},a,f,arguments.length,null)}});d.each(["top","left"],function(a,b){d.cssHooks[b]=Fa(w.pixelPosition,function(a,c){if(c)return c=pa(a,b),Ja.test(c)?d(a).position()[b]+"px":c})});d.each({Height:"height",Width:"width"},function(a,b){d.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,e){d.fn[e]=function(f,e){var g=arguments.length&&(c||"boolean"!==typeof f),h=c||(!0===f||!0===e?"margin":"border");return sa(this,function(b,c,f){return d.isWindow(b)?
+b.document.documentElement["client"+a]:9===b.nodeType?(c=b.documentElement,Math.max(b.body["scroll"+a],c["scroll"+a],b.body["offset"+a],c["offset"+a],c["client"+a])):void 0===f?d.css(b,c,h):d.style(b,c,f,h)},b,g?f:void 0,g,null)}})});d.fn.size=function(){return this.length};d.fn.andSelf=d.fn.addBack;"function"===typeof define&&define.amd&&define("jquery",[],function(){return d});var yc=e.jQuery,zc=e.$;d.noConflict=function(a){e.$===d&&(e.$=zc);a&&e.jQuery===d&&(e.jQuery=yc);return d};"undefined"===
+typeof p&&(e.jQuery=e.$=d);return d});!function(e){e(function(){var p=e.support,x;a:{x=document.createElement("bootstrap");var c={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},g;for(g in c)if(void 0!==x.style[g]){x=c[g];break a}x=void 0}p.transition=x&&{end:x}})}(window.jQuery);
+!function(e){var p=function(c){e(c).on("click",'[data-dismiss\x3d"alert"]',this.close)};p.prototype.close=function(c){function g(){n.trigger("closed").remove()}var h=e(this),m=h.attr("data-target"),n;m||(m=(m=h.attr("href"))&&m.replace(/.*(?=#[^\s]*$)/,""));n=e(m);c&&c.preventDefault();n.length||(n=h.hasClass("alert")?h:h.parent());n.trigger(c=e.Event("close"));c.isDefaultPrevented()||(n.removeClass("in"),e.support.transition&&n.hasClass("fade")?n.on(e.support.transition.end,g):g())};var x=e.fn.alert;
+e.fn.alert=function(c){return this.each(function(){var g=e(this),h=g.data("alert");h||g.data("alert",h=new p(this));"string"==typeof c&&h[c].call(g)})};e.fn.alert.Constructor=p;e.fn.alert.noConflict=function(){e.fn.alert=x;return this};e(document).on("click.alert.data-api",'[data-dismiss\x3d"alert"]',p.prototype.close)}(window.jQuery);
+!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.button.defaults,g)};p.prototype.setState=function(c){var e=this.$element,h=e.data(),m=e.is("input")?"val":"html";c+="Text";h.resetText||e.data("resetText",e[m]());e[m](h[c]||this.options[c]);setTimeout(function(){"loadingText"==c?e.addClass("disabled").attr("disabled","disabled"):e.removeClass("disabled").removeAttr("disabled")},0)};p.prototype.toggle=function(){var c=this.$element.closest('[data-toggle\x3d"buttons-radio"]');
+c&&c.find(".active").removeClass("active");this.$element.toggleClass("active")};var x=e.fn.button;e.fn.button=function(c){return this.each(function(){var g=e(this),h=g.data("button"),m="object"==typeof c&&c;h||g.data("button",h=new p(this,m));"toggle"==c?h.toggle():c&&h.setState(c)})};e.fn.button.defaults={loadingText:"loading..."};e.fn.button.Constructor=p;e.fn.button.noConflict=function(){e.fn.button=x;return this};e(document).on("click.button.data-api","[data-toggle^\x3dbutton]",function(c){c=
+e(c.target);c.hasClass("btn")||(c=c.closest(".btn"));c.button("toggle")})}(window.jQuery);
+!function(e){var p=function(c,g){this.$element=e(c);this.$indicators=this.$element.find(".carousel-indicators");this.options=g;"hover"==this.options.pause&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};p.prototype={cycle:function(c){c||(this.paused=!1);this.interval&&clearInterval(this.interval);this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval));return this},getActiveIndex:function(){this.$active=
+this.$element.find(".item.active");this.$items=this.$active.parent().children();return this.$items.index(this.$active)},to:function(c){var g=this.getActiveIndex(),h=this;if(!(c>this.$items.length-1||0>c))return this.sliding?this.$element.one("slid",function(){h.to(c)}):g==c?this.pause().cycle():this.slide(c>g?"next":"prev",e(this.$items[c]))},pause:function(c){c||(this.paused=!0);this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),
+this.cycle(!0));clearInterval(this.interval);this.interval=null;return this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(c,g){var h=this.$element.find(".item.active"),m=g||h[c]();g=this.interval;var n="next"==c?"left":"right",p="next"==c?"first":"last",r=this;this.sliding=!0;g&&this.pause();m=m.length?m:this.$element.find(".item")[p]();p=e.Event("slide",{relatedTarget:m[0],direction:n});if(!m.hasClass("active")){this.$indicators.length&&
+(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var c=e(r.$indicators.children()[r.getActiveIndex()]);c&&c.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(p);if(p.isDefaultPrevented())return;m.addClass(c);m[0].offsetWidth;h.addClass(n);m.addClass(n);this.$element.one(e.support.transition.end,function(){m.removeClass([c,n].join(" ")).addClass("active");h.removeClass(["active",n].join(" "));r.sliding=!1;
+setTimeout(function(){r.$element.trigger("slid")},0)})}else{this.$element.trigger(p);if(p.isDefaultPrevented())return;h.removeClass("active");m.addClass("active");this.sliding=!1;this.$element.trigger("slid")}g&&this.cycle();return this}}};var x=e.fn.carousel;e.fn.carousel=function(c){return this.each(function(){var g=e(this),h=g.data("carousel"),m=e.extend({},e.fn.carousel.defaults,"object"==typeof c&&c),n="string"==typeof c?c:m.slide;h||g.data("carousel",h=new p(this,m));if("number"==typeof c)h.to(c);
+else if(n)h[n]();else m.interval&&h.pause().cycle()})};e.fn.carousel.defaults={interval:5E3,pause:"hover"};e.fn.carousel.Constructor=p;e.fn.carousel.noConflict=function(){e.fn.carousel=x;return this};e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(c){var g=e(this),h,m=e(g.attr("data-target")||(h=g.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,""));h=e.extend({},m.data(),g.data());var n;m.carousel(h);(n=g.attr("data-slide-to"))&&m.data("carousel").pause().to(n).cycle();
+c.preventDefault()})}(window.jQuery);
+!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.collapse.defaults,g);this.options.parent&&(this.$parent=e(this.options.parent));this.options.toggle&&this.toggle()};p.prototype={constructor:p,dimension:function(){return this.$element.hasClass("width")?"width":"height"},show:function(){var c,g,h,m;if(!this.transitioning&&!this.$element.hasClass("in")){c=this.dimension();g=e.camelCase(["scroll",c].join("-"));if((h=this.$parent&&this.$parent.find("\x3e .accordion-group \x3e .in"))&&h.length){if((m=
+h.data("collapse"))&&m.transitioning)return;h.collapse("hide");m||h.data("collapse",null)}this.$element[c](0);this.transition("addClass",e.Event("show"),"shown");e.support.transition&&this.$element[c](this.$element[0][g])}},hide:function(){var c;!this.transitioning&&this.$element.hasClass("in")&&(c=this.dimension(),this.reset(this.$element[c]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[c](0))},reset:function(c){var e=this.dimension();this.$element.removeClass("collapse")[e](c||
+"auto")[0].offsetWidth;this.$element[null!==c?"addClass":"removeClass"]("collapse");return this},transition:function(c,g,h){var m=this,n=function(){"show"==g.type&&m.reset();m.transitioning=0;m.$element.trigger(h)};this.$element.trigger(g);g.isDefaultPrevented()||(this.transitioning=1,this.$element[c]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,n):n())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var x=e.fn.collapse;
+e.fn.collapse=function(c){return this.each(function(){var g=e(this),h=g.data("collapse"),m=e.extend({},e.fn.collapse.defaults,g.data(),"object"==typeof c&&c);h||g.data("collapse",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.collapse.defaults={toggle:!0};e.fn.collapse.Constructor=p;e.fn.collapse.noConflict=function(){e.fn.collapse=x;return this};e(document).on("click.collapse.data-api","[data-toggle\x3dcollapse]",function(c){var g=e(this),h;c=g.attr("data-target")||c.preventDefault()||(h=
+g.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,"");h=e(c).data("collapse")?"toggle":g.data();g[e(c).hasClass("in")?"addClass":"removeClass"]("collapsed");e(c).collapse(h)})}(window.jQuery);
+!function(e){function p(){e(".dropdown-backdrop").remove();e("[data-toggle\x3ddropdown]").each(function(){x(e(this)).removeClass("open")})}function x(c){var g=c.attr("data-target");g||(g=(g=c.attr("href"))&&/#/.test(g)&&g.replace(/.*(?=#[^\s]*$)/,""));(g=g&&e(g))&&g.length||(g=c.parent());return g}var c=function(c){var g=e(c).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){g.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(c){c=
+e(this);var g,h;if(!c.is(".disabled, :disabled")){g=x(c);h=g.hasClass("open");p();if(!h){if("ontouchstart"in document.documentElement)e('\x3cdiv class\x3d"dropdown-backdrop"/\x3e').insertBefore(e(this)).on("click",p);g.toggleClass("open")}c.focus();return!1}},keydown:function(c){var g,h,p;if(/(38|40|27)/.test(c.keyCode)&&(g=e(this),c.preventDefault(),c.stopPropagation(),!g.is(".disabled, :disabled"))){h=x(g);p=h.hasClass("open");if(!p||p&&27==c.keyCode)return 27==c.which&&h.find("[data-toggle\x3ddropdown]").focus(),
+g.click();g=e("[role\x3dmenu] li:not(.divider):visible a",h);g.length&&(h=g.index(g.filter(":focus")),38==c.keyCode&&0<h&&h--,40==c.keyCode&&h<g.length-1&&h++,~h||(h=0),g.eq(h).focus())}}};var g=e.fn.dropdown;e.fn.dropdown=function(g){return this.each(function(){var h=e(this),n=h.data("dropdown");n||h.data("dropdown",n=new c(this));"string"==typeof g&&n[g].call(h)})};e.fn.dropdown.Constructor=c;e.fn.dropdown.noConflict=function(){e.fn.dropdown=g;return this};e(document).on("click.dropdown.data-api",
+p).on("click.dropdown.data-api",".dropdown form",function(c){c.stopPropagation()}).on("click.dropdown.data-api","[data-toggle\x3ddropdown]",c.prototype.toggle).on("keydown.dropdown.data-api","[data-toggle\x3ddropdown], [role\x3dmenu]",c.prototype.keydown)}(window.jQuery);
+!function(e){var p=function(c,g){this.options=g;this.$element=e(c).delegate('[data-dismiss\x3d"modal"]',"click.dismiss.modal",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};p.prototype={constructor:p,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var c=this,g=e.Event("show");this.$element.trigger(g);this.isShown||g.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var g=e.support.transition&&
+c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body);c.$element.show();g&&c.$element[0].offsetWidth;c.$element.addClass("in").attr("aria-hidden",!1);c.enforceFocus();g?c.$element.one(e.support.transition.end,function(){c.$element.focus().trigger("shown")}):c.$element.focus().trigger("shown")}))},hide:function(c){c&&c.preventDefault();c=e.Event("hide");this.$element.trigger(c);this.isShown&&!c.isDefaultPrevented()&&(this.isShown=!1,this.escape(),e(document).off("focusin.modal"),
+this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var c=this;e(document).on("focusin.modal",function(e){c.$element[0]===e.target||c.$element.has(e.target).length||c.$element.focus()})},escape:function(){var c=this;if(this.isShown&&this.options.keyboard)this.$element.on("keyup.dismiss.modal",function(e){27==e.which&&c.hide()});else this.isShown||this.$element.off("keyup.dismiss.modal")},
+hideWithTransition:function(){var c=this,g=setTimeout(function(){c.$element.off(e.support.transition.end);c.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(g);c.hideModal()})},hideModal:function(){var c=this;this.$element.hide();this.backdrop(function(){c.removeBackdrop();c.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove();this.$backdrop=null},backdrop:function(c){var g=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&
+this.options.backdrop){var h=e.support.transition&&g;this.$backdrop=e('\x3cdiv class\x3d"modal-backdrop '+g+'" /\x3e').appendTo(document.body);this.$backdrop.click("static"==this.options.backdrop?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this));h&&this.$backdrop[0].offsetWidth;this.$backdrop.addClass("in");c&&(h?this.$backdrop.one(e.support.transition.end,c):c())}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?
+this.$backdrop.one(e.support.transition.end,c):c()):c&&c()}};var x=e.fn.modal;e.fn.modal=function(c){return this.each(function(){var g=e(this),h=g.data("modal"),m=e.extend({},e.fn.modal.defaults,g.data(),"object"==typeof c&&c);h||g.data("modal",h=new p(this,m));if("string"==typeof c)h[c]();else m.show&&h.show()})};e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0};e.fn.modal.Constructor=p;e.fn.modal.noConflict=function(){e.fn.modal=x;return this};e(document).on("click.modal.data-api",'[data-toggle\x3d"modal"]',
+function(c){var g=e(this),h=g.attr("href"),m=e(g.attr("data-target")||h&&h.replace(/.*(?=#[^\s]+$)/,"")),h=m.data("modal")?"toggle":e.extend({remote:!/#/.test(h)&&h},m.data(),g.data());c.preventDefault();m.modal(h).one("hide",function(){g.focus()})})}(window.jQuery);
+!function(e){var p=function(c,e){this.init("tooltip",c,e)};p.prototype={constructor:p,init:function(c,g,h){var m;this.type=c;this.$element=e(g);this.options=this.getOptions(h);this.enabled=!0;g=this.options.trigger.split(" ");for(h=g.length;h--;)if(m=g[h],"click"==m)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else"manual"!=m&&(c="hover"==m?"mouseenter":"focus",m="hover"==m?"mouseleave":"blur",this.$element.on(c+"."+this.type,this.options.selector,e.proxy(this.enter,
+this)),this.$element.on(m+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(c){c=e.extend({},e.fn[this.type].defaults,this.$element.data(),c);c.delay&&"number"==typeof c.delay&&(c.delay={show:c.delay,hide:c.delay});return c},enter:function(c){var g=e.fn[this.type].defaults,h={},m;this._options&&e.each(this._options,function(c,e){g[c]!=e&&(h[c]=e)},this);m=
+e(c.currentTarget)[this.type](h).data(this.type);if(!m.options.delay||!m.options.delay.show)return m.show();clearTimeout(this.timeout);m.hoverState="in";this.timeout=setTimeout(function(){"in"==m.hoverState&&m.show()},m.options.delay.show)},leave:function(c){var g=e(c.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!g.options.delay||!g.options.delay.hide)return g.hide();g.hoverState="out";this.timeout=setTimeout(function(){"out"==g.hoverState&&
+g.hide()},g.options.delay.hide)},show:function(){var c,g,h,m,n;g=e.Event("show");if(this.hasContent()&&this.enabled&&(this.$element.trigger(g),!g.isDefaultPrevented())){c=this.tip();this.setContent();this.options.animation&&c.addClass("fade");m="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement;c.detach().css({top:0,left:0,display:"block"});this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);g=
+this.getPosition();h=c[0].offsetWidth;c=c[0].offsetHeight;switch(m){case "bottom":n={top:g.top+g.height,left:g.left+g.width/2-h/2};break;case "top":n={top:g.top-c,left:g.left+g.width/2-h/2};break;case "left":n={top:g.top+g.height/2-c/2,left:g.left-h};break;case "right":n={top:g.top+g.height/2-c/2,left:g.left+g.width}}this.applyPlacement(n,m);this.$element.trigger("shown")}},applyPlacement:function(c,e){var g=this.tip(),m=g[0].offsetWidth,n=g[0].offsetHeight,p,r,x;g.offset(c).addClass(e).addClass("in");
+p=g[0].offsetWidth;r=g[0].offsetHeight;"top"==e&&r!=n&&(c.top=c.top+n-r,x=!0);"bottom"==e||"top"==e?(e=0,0>c.left&&(e=-2*c.left,c.left=0,g.offset(c),p=g[0].offsetWidth),this.replaceArrow(e-m+p,p,"left")):this.replaceArrow(r-n,r,"top");x&&g.offset(c)},replaceArrow:function(c,e,h){this.arrow().css(h,c?50*(1-c/e)+"%":"")},setContent:function(){var c=this.tip(),e=this.getTitle();c.find(".tooltip-inner")[this.options.html?"html":"text"](e);c.removeClass("fade in top bottom left right")},hide:function(){function c(){var c=
+setTimeout(function(){g.off(e.support.transition.end).detach()},500);g.one(e.support.transition.end,function(){clearTimeout(c);g.detach()})}var g=this.tip(),h=e.Event("hide");this.$element.trigger(h);if(!h.isDefaultPrevented())return g.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?c():g.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var c=this.$element;(c.attr("title")||"string"!=typeof c.attr("data-original-title"))&&c.attr("data-original-title",c.attr("title")||
+"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var c=this.$element[0];return e.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():{width:c.offsetWidth,height:c.offsetHeight},this.$element.offset())},getTitle:function(){var c=this.$element,e=this.options;return c.attr("data-original-title")||("function"==typeof e.title?e.title.call(c[0]):e.title)},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=
+this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(c){c=c?e(c.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var x=e.fn.tooltip;
+e.fn.tooltip=function(c){return this.each(function(){var g=e(this),h=g.data("tooltip"),m="object"==typeof c&&c;h||g.data("tooltip",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.tooltip.Constructor=p;e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'\x3cdiv class\x3d"tooltip"\x3e\x3cdiv class\x3d"tooltip-arrow"\x3e\x3c/div\x3e\x3cdiv class\x3d"tooltip-inner"\x3e\x3c/div\x3e\x3c/div\x3e',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};e.fn.tooltip.noConflict=
+function(){e.fn.tooltip=x;return this}}(window.jQuery);
+!function(e){var p=function(c,e){this.init("popover",c,e)};p.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:p,setContent:function(){var c=this.tip(),e=this.getTitle(),h=this.getContent();c.find(".popover-title")[this.options.html?"html":"text"](e);c.find(".popover-content")[this.options.html?"html":"text"](h);c.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var c=this.$element,e=this.options;
+return("function"==typeof e.content?e.content.call(c[0]):e.content)||c.attr("data-content")},tip:function(){this.$tip||(this.$tip=e(this.options.template));return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var x=e.fn.popover;e.fn.popover=function(c){return this.each(function(){var g=e(this),h=g.data("popover"),m="object"==typeof c&&c;h||g.data("popover",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.popover.Constructor=p;e.fn.popover.defaults=
+e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'\x3cdiv class\x3d"popover"\x3e\x3cdiv class\x3d"arrow"\x3e\x3c/div\x3e\x3ch3 class\x3d"popover-title"\x3e\x3c/h3\x3e\x3cdiv class\x3d"popover-content"\x3e\x3c/div\x3e\x3c/div\x3e'});e.fn.popover.noConflict=function(){e.fn.popover=x;return this}}(window.jQuery);
+!function(e){function p(c,g){var h=e.proxy(this.process,this),m=e(c).is("body")?e(window):e(c),n;this.options=e.extend({},e.fn.scrollspy.defaults,g);this.$scrollElement=m.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||(n=e(c).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li \x3e a";this.$body=e("body");this.refresh();this.process()}p.prototype={constructor:p,refresh:function(){var c=this;this.offsets=e([]);this.targets=e([]);this.$body.find(this.selector).map(function(){var g=
+e(this),g=g.data("target")||g.attr("href"),h=/^#\w/.test(g)&&e(g);return h&&h.length&&[[h.position().top+(!e.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),g]]||null}).sort(function(c,e){return c[0]-e[0]}).each(function(){c.offsets.push(this[0]);c.targets.push(this[1])})},process:function(){var c=this.$scrollElement.scrollTop()+this.options.offset,e=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),h=this.offsets,m=this.targets,n=this.activeTarget,
+p;if(c>=e)return n!=(p=m.last()[0])&&this.activate(p);for(p=h.length;p--;)n!=m[p]&&c>=h[p]&&(!h[p+1]||c<=h[p+1])&&this.activate(m[p])},activate:function(c){this.activeTarget=c;e(this.selector).parent(".active").removeClass("active");c=e(this.selector+'[data-target\x3d"'+c+'"],'+this.selector+'[href\x3d"'+c+'"]').parent("li").addClass("active");c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active"));c.trigger("activate")}};var x=e.fn.scrollspy;e.fn.scrollspy=function(c){return this.each(function(){var g=
+e(this),h=g.data("scrollspy"),m="object"==typeof c&&c;h||g.data("scrollspy",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.scrollspy.Constructor=p;e.fn.scrollspy.defaults={offset:10};e.fn.scrollspy.noConflict=function(){e.fn.scrollspy=x;return this};e(window).on("load",function(){e('[data-spy\x3d"scroll"]').each(function(){var c=e(this);c.scrollspy(c.data())})})}(window.jQuery);
+!function(e){var p=function(c){this.element=e(c)};p.prototype={constructor:p,show:function(){var c=this.element,g=c.closest("ul:not(.dropdown-menu)"),h=c.attr("data-target"),m,n;h||(h=(h=c.attr("href"))&&h.replace(/.*(?=#[^\s]*$)/,""));c.parent("li").hasClass("active")||(m=g.find(".active:last a")[0],n=e.Event("show",{relatedTarget:m}),c.trigger(n),n.isDefaultPrevented()||(h=e(h),this.activate(c.parent("li"),g),this.activate(h,h.parent(),function(){c.trigger({type:"shown",relatedTarget:m})})))},activate:function(c,
+g,h){function m(){n.removeClass("active").find("\x3e .dropdown-menu \x3e .active").removeClass("active");c.addClass("active");p?(c[0].offsetWidth,c.addClass("in")):c.removeClass("fade");c.parent(".dropdown-menu")&&c.closest("li.dropdown").addClass("active");h&&h()}var n=g.find("\x3e .active"),p=h&&e.support.transition&&n.hasClass("fade");p?n.one(e.support.transition.end,m):m();n.removeClass("in")}};var x=e.fn.tab;e.fn.tab=function(c){return this.each(function(){var g=e(this),h=g.data("tab");h||g.data("tab",
+h=new p(this));if("string"==typeof c)h[c]()})};e.fn.tab.Constructor=p;e.fn.tab.noConflict=function(){e.fn.tab=x;return this};e(document).on("click.tab.data-api",'[data-toggle\x3d"tab"], [data-toggle\x3d"pill"]',function(c){c.preventDefault();e(this).tab("show")})}(window.jQuery);
+!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.typeahead.defaults,g);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=e(this.options.menu);this.shown=!1;this.listen()};p.prototype={constructor:p,select:function(){var c=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(c)).change();
+return this.hide()},updater:function(c){return c},show:function(){var c=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:c.top+c.height,left:c.left}).show();this.shown=!0;return this},hide:function(){this.$menu.hide();this.shown=!1;return this},lookup:function(c){this.query=this.$element.val();return!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(c=e.isFunction(this.source)?this.source(this.query,
+e.proxy(this.process,this)):this.source)?this.process(c):this},process:function(c){var g=this;c=e.grep(c,function(c){return g.matcher(c)});c=this.sorter(c);return c.length?this.render(c.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(c){return~c.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(c){for(var e=[],h=[],m=[],n;n=c.shift();)n.toLowerCase().indexOf(this.query.toLowerCase())?~n.indexOf(this.query)?h.push(n):m.push(n):e.push(n);return e.concat(h,
+m)},highlighter:function(c){var e=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$\x26");return c.replace(new RegExp("("+e+")","ig"),function(c,e){return"\x3cstrong\x3e"+e+"\x3c/strong\x3e"})},render:function(c){var g=this;c=e(c).map(function(c,m){c=e(g.options.item).attr("data-value",m);c.find("a").html(g.highlighter(m));return c[0]});c.first().addClass("active");this.$menu.html(c);return this},next:function(c){c=this.$menu.find(".active").removeClass("active").next();c.length||(c=e(this.$menu.find("li")[0]));
+c.addClass("active")},prev:function(c){c=this.$menu.find(".active").removeClass("active").prev();c.length||(c=this.$menu.find("li").last());c.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown"))this.$element.on("keydown",e.proxy(this.keydown,this));this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",
+e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(c){var e=c in this.$element;e||(this.$element.setAttribute(c,"return;"),e="function"===typeof this.$element[c]);return e},move:function(c){if(this.shown){switch(c.keyCode){case 9:case 13:case 27:c.preventDefault();break;case 38:c.preventDefault();this.prev();break;case 40:c.preventDefault(),this.next()}c.stopPropagation()}},keydown:function(c){this.suppressKeyPressRepeat=~e.inArray(c.keyCode,
+[40,38,9,13,27]);this.move(c)},keypress:function(c){this.suppressKeyPressRepeat||this.move(c)},keyup:function(c){switch(c.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}c.stopPropagation();c.preventDefault()},focus:function(c){this.focused=!0},blur:function(c){this.focused=!1;!this.mousedover&&this.shown&&this.hide()},click:function(c){c.stopPropagation();c.preventDefault();
+this.select();this.$element.focus()},mouseenter:function(c){this.mousedover=!0;this.$menu.find(".active").removeClass("active");e(c.currentTarget).addClass("active")},mouseleave:function(c){this.mousedover=!1;!this.focused&&this.shown&&this.hide()}};var x=e.fn.typeahead;e.fn.typeahead=function(c){return this.each(function(){var g=e(this),h=g.data("typeahead"),m="object"==typeof c&&c;h||g.data("typeahead",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.typeahead.defaults={source:[],items:8,menu:'\x3cul class\x3d"typeahead dropdown-menu"\x3e\x3c/ul\x3e',
+item:'\x3cli\x3e\x3ca href\x3d"#"\x3e\x3c/a\x3e\x3c/li\x3e',minLength:1};e.fn.typeahead.Constructor=p;e.fn.typeahead.noConflict=function(){e.fn.typeahead=x;return this};e(document).on("focus.typeahead.data-api",'[data-provide\x3d"typeahead"]',function(c){c=e(this);c.data("typeahead")||c.typeahead(c.data())})}(window.jQuery);
+!function(e){var p=function(c,g){this.options=e.extend({},e.fn.affix.defaults,g);this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this));this.$element=e(c);this.checkPosition()};p.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=e(document).height(),g=this.$window.scrollTop(),h=this.$element.offset(),m=this.options.offset,n=m.bottom,p=m.top;"object"!=
+typeof m&&(n=p=m);"function"==typeof p&&(p=m.top());"function"==typeof n&&(n=m.bottom());c=null!=this.unpin&&g+this.unpin<=h.top?!1:null!=n&&h.top+this.$element.height()>=c-n?"bottom":null!=p&&g<=p?"top":!1;this.affixed!==c&&(this.affixed=c,this.unpin="bottom"==c?h.top-g:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(c?"-"+c:"")))}};var x=e.fn.affix;e.fn.affix=function(c){return this.each(function(){var g=e(this),h=g.data("affix"),m="object"==typeof c&&c;h||g.data("affix",
+h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.affix.Constructor=p;e.fn.affix.defaults={offset:0};e.fn.affix.noConflict=function(){e.fn.affix=x;return this};e(window).on("load",function(){e('[data-spy\x3d"affix"]').each(function(){var c=e(this),g=c.data();g.offset=g.offset||{};g.offsetBottom&&(g.offset.bottom=g.offsetBottom);g.offsetTop&&(g.offset.top=g.offsetTop);c.affix(g)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function e(c){function e(c){var e=c.charCodeAt(0);if(92!==e)return e;var g=c.charAt(1);return(e=H[g])?e:"0"<=g&&"7">=g?parseInt(c.substring(1),8):"u"===g||"x"===g?parseInt(c.substring(2),16):c.charCodeAt(1)}function g(c){if(32>c)return(16>c?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if("\\"===c||"-"===c||"["===c||"]"===c)c="\\"+c;return c}function h(c){var h=c.substring(1,c.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g);c=
+[];for(var m=[],n="^"===h[0],p=n?1:0,v=h.length;p<v;++p){var A=h[p];if(/\\[bdsw]/i.test(A))c.push(A);else{var A=e(A),r;p+2<v&&"-"===h[p+1]?(r=e(h[p+2]),p+=2):r=A;m.push([A,r]);65>r||122<A||(65>r||90<A||m.push([Math.max(65,A)|32,Math.min(r,90)|32]),97>r||122<A||m.push([Math.max(97,A)&-33,Math.min(r,122)&-33]))}}m.sort(function(c,e){return c[0]-e[0]||e[1]-c[1]});h=[];A=[NaN,NaN];for(p=0;p<m.length;++p)v=m[p],v[0]<=A[1]+1?A[1]=Math.max(A[1],v[1]):h.push(A=v);m=["["];n&&m.push("^");m.push.apply(m,c);
+for(p=0;p<h.length;++p)v=h[p],m.push(g(v[0])),v[1]>v[0]&&(v[1]+1>v[0]&&m.push("-"),m.push(g(v[1])));m.push("]");return m.join("")}function m(c){for(var e=c.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),g=e.length,m=[],v=0,A=0;v<g;++v){var r=e[v];"("===r?++A:"\\"===r.charAt(0)&&(r=+r.substring(1))&&r<=A&&(m[r]=-1)}for(v=1;v<m.length;++v)-1===m[v]&&(m[v]=++n);for(A=v=0;v<g;++v)r=e[v],"("===r?(++A,void 0===m[A]&&(e[v]="(?:")):"\\"===
+r.charAt(0)&&(r=+r.substring(1))&&r<=A&&(e[v]="\\"+m[A]);for(A=v=0;v<g;++v)"^"===e[v]&&"^"!==e[v+1]&&(e[v]="");if(c.ignoreCase&&p)for(v=0;v<g;++v)r=e[v],c=r.charAt(0),2<=r.length&&"["===c?e[v]=h(r):"\\"!==c&&(e[v]=r.replace(/[A-Za-z]/g,function(c){c=c.charCodeAt(0);return"["+String.fromCharCode(c&-33,c|32)+"]"}));return e.join("")}for(var n=0,p=!1,r=!1,A=0,x=c.length;A<x;++A){var U=c[A];if(U.ignoreCase)r=!0;else if(/[a-z]/i.test(U.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){p=!0;
+r=!1;break}}for(var H={b:8,t:9,n:10,v:11,f:12,r:13},J=[],A=0,x=c.length;A<x;++A){U=c[A];if(U.global||U.multiline)throw Error(""+U);J.push("(?:"+m(U)+")")}return RegExp(J.join("|"),r?"gi":"g")}function p(c){function e(c){switch(c.nodeType){case 1:if(g.test(c.className))break;for(var r=c.firstChild;r;r=r.nextSibling)e(r);r=c.nodeName;if("BR"===r||"LI"===r)h[n]="\n",p[n<<1]=m++,p[n++<<1|1]=c;break;case 3:case 4:r=c.nodeValue,r.length&&(r=A?r.replace(/\r\n?/g,"\n"):r.replace(/[\t\n\r ]+/g," "),h[n]=r,
+p[n<<1]=m,m+=r.length,p[n++<<1|1]=c)}}var g=/(?:^|\s)nocode(?:\s|$)/,h=[],m=0,p=[],n=0,r;c.currentStyle?r=c.currentStyle.whiteSpace:window.getComputedStyle&&(r=document.defaultView.getComputedStyle(c,q).getPropertyValue("white-space"));var A=r&&"pre"===r.substring(0,3);e(c);return{a:h.join("").replace(/\n$/,""),c:p}}function x(c,e,g,h){e&&(c={a:e,d:c},g(c),h.push.apply(h,c.e))}function c(c,g){function h(c){for(var e=c.d,A=[e,"pln"],I=0,P=c.a.match(p)||[],H={},J=0,v=P.length;J<v;++J){var R=P[J],y=
+H[R],G=void 0,C;if("string"===typeof y)C=!1;else{var D=m[R.charAt(0)];if(D)G=R.match(D[1]),y=D[0];else{for(C=0;C<r;++C)if(D=g[C],G=R.match(D[1])){y=D[0];break}G||(y="pln")}!(C=5<=y.length&&"lang-"===y.substring(0,5))||G&&"string"===typeof G[1]||(C=!1,y="src");C||(H[R]=y)}D=I;I+=R.length;if(C){C=G[1];var L=R.indexOf(C),E=L+C.length;G[2]&&(E=R.length-G[2].length,L=E-C.length);y=y.substring(5);x(e+D,R.substring(0,L),h,A);x(e+D+L,C,n(y,C),A);x(e+D+E,R.substring(E),h,A)}else A.push(e+D,y)}c.e=A}var m=
+{},p;(function(){for(var h=c.concat(g),n=[],r={},A=0,I=h.length;A<I;++A){var x=h[A],P=x[3];if(P)for(var v=P.length;0<=--v;)m[P.charAt(v)]=x;x=x[1];P=""+x;r.hasOwnProperty(P)||(n.push(x),r[P]=q)}n.push(/[\S\s]/);p=e(n)})();var r=g.length;return h}function g(e){var g=[],h=[];e.tripleQuotedStrings?g.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):e.multiLineStrings?g.push(["str",
+/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,q,"'\"`"]):g.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);e.verbatimStrings&&h.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var m=e.hashComments;m&&(e.cStyleComments?(1<m?g.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):g.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),h.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+q])):g.push(["com",/^#[^\n\r]*/,q,"#"]));e.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,q]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));e.regexLiterals&&h.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(m=e.types)&&
+h.push(["typ",m]);e=(""+e.keywords).replace(/^ | $/g,"");e.length&&h.push(["kwd",RegExp("^(?:"+e.replace(/[\s,]+/g,"|")+")\\b"),q]);g.push(["pln",/^\s+/,q," \r\n\t "]);h.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return c(g,h)}function h(c,e){function g(c){switch(c.nodeType){case 1:if(m.test(c.className))break;
+if("BR"===c.nodeName)h(c),c.parentNode&&c.parentNode.removeChild(c);else for(c=c.firstChild;c;c=c.nextSibling)g(c);break;case 3:case 4:if(A){var e=c.nodeValue,r=e.match(p);if(r){var v=e.substring(0,r.index);c.nodeValue=v;(e=e.substring(r.index+r[0].length))&&c.parentNode.insertBefore(n.createTextNode(e),c.nextSibling);h(c);v||c.parentNode.removeChild(c)}}}}function h(c){function e(c,g){g=g?c.cloneNode(!1):c;var h=c.parentNode;if(h){h=e(h,1);c=c.nextSibling;h.appendChild(g);for(var m=c;m;m=c)c=m.nextSibling,
+h.appendChild(m)}return g}for(;!c.nextSibling;)if(c=c.parentNode,!c)return;c=e(c.nextSibling,0);for(var g;(g=c.parentNode)&&1===g.nodeType;)c=g;x.push(c)}var m=/(?:^|\s)nocode(?:\s|$)/,p=/\r\n?|\n/,n=c.ownerDocument,r;c.currentStyle?r=c.currentStyle.whiteSpace:window.getComputedStyle&&(r=n.defaultView.getComputedStyle(c,q).getPropertyValue("white-space"));var A=r&&"pre"===r.substring(0,3);for(r=n.createElement("LI");c.firstChild;)r.appendChild(c.firstChild);for(var x=[r],E=0;E<x.length;++E)g(x[E]);
+e===(e|0)&&x[0].setAttribute("value",e);var H=n.createElement("OL");H.className="linenums";e=Math.max(0,e-1|0)||0;for(var E=0,J=x.length;E<J;++E)r=x[E],r.className="L"+(E+e)%10,r.firstChild||r.appendChild(n.createTextNode(" ")),H.appendChild(r);c.appendChild(H)}function m(c,e){for(var g=e.length;0<=--g;){var h=e[g];ia.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):ia[h]=c}}function n(c,e){c&&ia.hasOwnProperty(c)||(c=/^\s*</.test(e)?"default-markup":"default-code");
+return ia[c]}function W(c){var e=c.g;try{var g=p(c.h),h=g.a;c.a=h;c.c=g.c;c.d=0;n(e,h)(c);var m=/\bMSIE\b/.test(navigator.userAgent),e=/\n/g,r=c.a,x=r.length,g=0,A=c.c,E=A.length,h=0,S=c.e,U=S.length;c=0;S[U]=x;var H,J;for(J=H=0;J<U;)S[J]!==S[J+2]?(S[H++]=S[J++],S[H++]=S[J++]):J+=2;U=H;for(J=H=0;J<U;){for(var v=S[J],N=S[J+1],y=J+2;y+2<=U&&S[y+1]===N;)y+=2;S[H++]=v;S[H++]=N;J=y}for(S.length=H;h<E;){var G=A[h+2]||x,C=S[c+2]||x,y=Math.min(G,C),D=A[h+1],L;if(1!==D.nodeType&&(L=r.substring(g,y))){m&&(L=
+L.replace(e,"\r"));D.nodeValue=L;var V=D.ownerDocument,W=V.createElement("SPAN");W.className=S[c+1];var aa=D.parentNode;aa.replaceChild(W,D);W.appendChild(D);g<G&&(A[h+1]=D=V.createTextNode(r.substring(y,G)),aa.insertBefore(D,W.nextSibling))}g=y;g>=G&&(h+=2);g>=C&&(c+=2)}}catch(Z){"console"in window&&console.log(Z&&Z.stack?Z.stack:Z)}}var r=["break,continue,do,else,for,if,return,while"],E=[[r,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],fa=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],aa=[E,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+V=[aa,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],ha=[r,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+Aa=[r,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],r=[r,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,Ta=/\S/,Ia=g({keywords:[fa,V,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+ha,Aa,r],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),ia={};m(Ia,["default-code"]);m(c([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
+"default-markup htm html mxml xhtml xml xsl".split(" "));m(c([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);m(c([],[["atv",/^[\S\s]+/]]),["uq.val"]);m(g({keywords:fa,hashComments:!0,cStyleComments:!0,types:N}),"c cc cpp cxx cyc m".split(" "));m(g({keywords:"null,true,false"}),["json"]);m(g({keywords:V,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),["cs"]);m(g({keywords:aa,cStyleComments:!0}),["java"]);m(g({keywords:r,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);m(g({keywords:ha,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
+["cv","py"]);m(g({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);m(g({keywords:Aa,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);m(g({keywords:E,cStyleComments:!0,regexLiterals:!0}),["js"]);m(g({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);m(c([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(c,e,g){var m=document.createElement("PRE");m.innerHTML=c;g&&h(m,g);W({g:e,i:g,h:m});return m.innerHTML};window.prettyPrint=function(c){function e(){for(var g=window.PR_SHOULD_USE_CONTINUATION?x.now()+250:Infinity;A<m.length&&x.now()<g;A++){var n=m[A],p=n.className;if(0<=p.indexOf("prettyprint")){var p=p.match(N),r,y;if(y=
+!p){y=n;for(var G=void 0,C=y.firstChild;C;C=C.nextSibling)var D=C.nodeType,G=1===D?G?y:C:3===D?Ta.test(C.nodeValue)?y:G:G;y=(r=G===y?void 0:G)&&"CODE"===r.tagName}y&&(p=r.className.match(N));p&&(p=p[1]);y=!1;for(G=n.parentNode;G;G=G.parentNode)if(("pre"===G.tagName||"code"===G.tagName||"xmp"===G.tagName)&&G.className&&0<=G.className.indexOf("prettyprint")){y=!0;break}y||((y=(y=n.className.match(/\blinenums\b(?::(\d+))?/))?y[1]&&y[1].length?+y[1]:!0:!1)&&h(n,y),E={g:p,h:n,i:y},W(E))}}A<m.length?setTimeout(e,
+250):c&&c()}for(var g=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],m=[],n=0;n<g.length;++n)for(var p=0,r=g[n].length;p<r;++p)m.push(g[n][p]);var g=q,x=Date;x.now||(x={now:function(){return+new Date}});var A=0,E,N=/\blang(?:uage)?-([\w.]+)(?!\S)/;e()};window.PR={createSimpleLexer:c,registerLangHandler:m,sourceDecorator:g,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();jQuery(document).ready(function(){$(".topbar").dropdown();prettyPrint()});function asyncJs(e){var p=document.createElement("script"),x=document.getElementsByTagName("script")[0];p.type="text/javascript";p.async=!0;p.src=e;x.parentNode.insertBefore(p,x)}
+(function(e,p){"function"===typeof define&&define.amd?define([],p):"object"===typeof module&&module.exports?module.exports=p():(e.AnchorJS=p(),e.anchors=new e.AnchorJS)})(this,function(){return function(e){function p(c){c.icon=c.hasOwnProperty("icon")?c.icon:"";c.visible=c.hasOwnProperty("visible")?c.visible:"hover";c.placement=c.hasOwnProperty("placement")?c.placement:"right";c.ariaLabel=c.hasOwnProperty("ariaLabel")?c.ariaLabel:"Anchor";c.class=c.hasOwnProperty("class")?c.class:"";c.base=c.hasOwnProperty("base")?
+c.base:"";c.truncate=c.hasOwnProperty("truncate")?Math.floor(c.truncate):64;c.titleText=c.hasOwnProperty("titleText")?c.titleText:""}function x(c){if("string"===typeof c||c instanceof String)c=[].slice.call(document.querySelectorAll(c));else if(Array.isArray(c)||c instanceof NodeList)c=[].slice.call(c);else throw Error("The selector provided to AnchorJS was invalid.");return c}function c(){if(null===document.head.querySelector("style.anchorjs")){var c=document.createElement("style"),e;c.className=
+"anchorjs";c.appendChild(document.createTextNode(""));e=document.head.querySelector('[rel\x3d"stylesheet"], style');void 0===e?document.head.appendChild(c):document.head.insertBefore(c,e);c.sheet.insertRule(" .anchorjs-link {   opacity: 0;   text-decoration: none;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }",c.sheet.cssRules.length);c.sheet.insertRule(" *:hover \x3e .anchorjs-link, .anchorjs-link:focus  {   opacity: 1; }",c.sheet.cssRules.length);c.sheet.insertRule(" [data-anchorjs-icon]::after {   content: attr(data-anchorjs-icon); }",
+c.sheet.cssRules.length);c.sheet.insertRule(' @font-face {   font-family: "anchorjs-icons";   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',
+c.sheet.cssRules.length)}}this.options=e||{};this.elements=[];p(this.options);this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)};this.add=function(e){var g,m,n,W,r,E,fa,aa=[];p(this.options);fa=this.options.visible;"touch"===fa&&(fa=this.isTouchDevice()?"always":"hover");e||(e="h2, h3, h4, h5, h6");e=x(e);if(0===e.length)return this;c();g=document.querySelectorAll("[id]");g=[].map.call(g,function(c){return c.id});for(n=0;n<e.length;n++)if(this.hasAnchorJSLink(e[n]))aa.push(n);
+else{if(e[n].hasAttribute("id"))m=e[n].getAttribute("id");else if(e[n].hasAttribute("data-anchor-id"))m=e[n].getAttribute("data-anchor-id");else{E=r=this.urlify(e[n].textContent);m=0;do void 0!==W&&(E=r+"-"+m),W=g.indexOf(E),m+=1;while(-1!==W);W=void 0;g.push(E);e[n].setAttribute("id",E);m=E}r=document.createElement("a");r.className="anchorjs-link "+this.options.class;r.setAttribute("aria-label",this.options.ariaLabel);r.setAttribute("data-anchorjs-icon",this.options.icon);this.options.titleText&&
+(r.title=this.options.titleText);E=document.querySelector("base")?window.location.pathname+window.location.search:"";E=this.options.base||E;r.href=E+"#"+m;"always"===fa&&(r.style.opacity="1");""===this.options.icon&&(r.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(r.style.lineHeight="inherit"));"left"===this.options.placement?(r.style.position="absolute",r.style.marginLeft="-1em",r.style.paddingRight="0.5em",e[n].insertBefore(r,e[n].firstChild)):(r.style.paddingLeft="0.375em",
+e[n].appendChild(r))}for(n=0;n<aa.length;n++)e.splice(aa[n]-n,1);this.elements=this.elements.concat(e);return this};this.remove=function(c){for(var e,g=x(c),n=0;n<g.length;n++)if(e=g[n].querySelector(".anchorjs-link"))c=this.elements.indexOf(g[n]),-1!==c&&this.elements.splice(c,1),g[n].removeChild(e);return this};this.removeAll=function(){this.remove(this.elements)};this.urlify=function(c){this.options.truncate||p(this.options);return c.trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,
+"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()};this.hasAnchorJSLink=function(c){var e=c.firstChild&&-1<(" "+c.firstChild.className+" ").indexOf(" anchorjs-link ");c=c.lastChild&&-1<(" "+c.lastChild.className+" ").indexOf(" anchorjs-link ");return e||c||!1}}});
\ No newline at end of file
diff --git a/docs/2.2.8/js/apache-maven-fluido-1.3.1.min.js b/docs/2.2.8/js/apache-maven-fluido-1.3.1.min.js
new file mode 100644
index 0000000..d16bb77
--- /dev/null
+++ b/docs/2.2.8/js/apache-maven-fluido-1.3.1.min.js
@@ -0,0 +1,21 @@
+/*!
+ * jQuery JavaScript Library v1.9.1
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2013-2-4
+ */
+(function(a3,aH){var aj,x,aD=typeof aH,l=a3.document,aM=a3.location,bj=a3.jQuery,I=a3.$,ab={},a7=[],t="1.9.1",aJ=a7.concat,ap=a7.push,a5=a7.slice,aN=a7.indexOf,A=ab.toString,W=ab.hasOwnProperty,aR=t.trim,bK=function(e,b4){return new bK.fn.init(e,b4,x)},bB=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ad=/\S+/g,D=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,bs=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,a=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,bi=/^[\],:{}\s]*$/,bl=/(?:^|:|,)(?:\s*\[)+/g,bH=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,a0=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,bT=/^-ms-/,aW=/-([\da-z])/gi,N=function(e,b4){return b4.toUpperCase()},bX=function(e){if(l.addEventListener||e.type==="load"||l.readyState==="complete"){bm();bK.ready()}},bm=function(){if(l.addEventListener){l.removeEventListener("DOMContentLoaded",bX,false);a3.removeEventListener("load",bX,false)}else{l.detachEvent("onreadystatechange",bX);a3.detachEvent("onload",bX)}};bK.fn=bK.prototype={jquery:t,constructor:bK,init:function(e,b6,b5){var b4,b7;if(!e){return this}if(typeof e==="string"){if(e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3){b4=[null,e,null]}else{b4=bs.exec(e)}if(b4&&(b4[1]||!b6)){if(b4[1]){b6=b6 instanceof bK?b6[0]:b6;bK.merge(this,bK.parseHTML(b4[1],b6&&b6.nodeType?b6.ownerDocument||b6:l,true));if(a.test(b4[1])&&bK.isPlainObject(b6)){for(b4 in b6){if(bK.isFunction(this[b4])){this[b4](b6[b4])}else{this.attr(b4,b6[b4])}}}return this}else{b7=l.getElementById(b4[2]);if(b7&&b7.parentNode){if(b7.id!==b4[2]){return b5.find(e)}this.length=1;this[0]=b7}this.context=l;this.selector=e;return this}}else{if(!b6||b6.jquery){return(b6||b5).find(e)}else{return this.constructor(b6).find(e)}}}else{if(e.nodeType){this.context=this[0]=e;this.length=1;return this}else{if(bK.isFunction(e)){return b5.ready(e)}}}if(e.selector!==aH){this.selector=e.selector;this.context=e.context}return bK.makeArray(e,this)},selector:"",length:0,size:function(){return this.length},toArray:function(){return a5.call(this)},get:function(e){return e==null?this.toArray():(e<0?this[this.length+e]:this[e])},pushStack:function(e){var b4=bK.merge(this.constructor(),e);b4.prevObject=this;b4.context=this.context;return b4},each:function(b4,e){return bK.each(this,b4,e)},ready:function(e){bK.ready.promise().done(e);return this},slice:function(){return this.pushStack(a5.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(b5){var e=this.length,b4=+b5+(b5<0?e:0);return this.pushStack(b4>=0&&b4<e?[this[b4]]:[])},map:function(e){return this.pushStack(bK.map(this,function(b5,b4){return e.call(b5,b4,b5)}))},end:function(){return this.prevObject||this.constructor(null)},push:ap,sort:[].sort,splice:[].splice};bK.fn.init.prototype=bK.fn;bK.extend=bK.fn.extend=function(){var e,b9,b4,b5,cc,ca,b8=arguments[0]||{},b7=1,b6=arguments.length,cb=false;if(typeof b8==="boolean"){cb=b8;b8=arguments[1]||{};b7=2}if(typeof b8!=="object"&&!bK.isFunction(b8)){b8={}}if(b6===b7){b8=this;--b7}for(;b7<b6;b7++){if((cc=arguments[b7])!=null){for(b5 in cc){e=b8[b5];b4=cc[b5];if(b8===b4){continue}if(cb&&b4&&(bK.isPlainObject(b4)||(b9=bK.isArray(b4)))){if(b9){b9=false;ca=e&&bK.isArray(e)?e:[]}else{ca=e&&bK.isPlainObject(e)?e:{}}b8[b5]=bK.extend(cb,ca,b4)}else{if(b4!==aH){b8[b5]=b4}}}}}return b8};bK.extend({noConflict:function(e){if(a3.$===bK){a3.$=I}if(e&&a3.jQuery===bK){a3.jQuery=bj}return bK},isReady:false,readyWait:1,holdReady:function(e){if(e){bK.readyWait++}else{bK.ready(true)}},ready:function(e){if(e===true?--bK.readyWait:bK.isReady){return}if(!l.body){return setTimeout(bK.ready)}bK.isReady=true;if(e!==true&&--bK.readyWait>0){return}aj.resolveWith(l,[bK]);if(bK.fn.trigger){bK(l).trigger("ready").off("ready")}},isFunction:function(e){return bK.type(e)==="function"},isArray:Array.isArray||function(e){return bK.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return !isNaN(parseFloat(e))&&isFinite(e)},type:function(e){if(e==null){return String(e)}return typeof e==="object"||typeof e==="function"?ab[A.call(e)]||"object":typeof e},isPlainObject:function(b6){if(!b6||bK.type(b6)!=="object"||b6.nodeType||bK.isWindow(b6)){return false}try{if(b6.constructor&&!W.call(b6,"constructor")&&!W.call(b6.constructor.prototype,"isPrototypeOf")){return false}}catch(b5){return false}var b4;for(b4 in b6){}return b4===aH||W.call(b6,b4)},isEmptyObject:function(b4){var e;for(e in b4){return false}return true},error:function(e){throw new Error(e)},parseHTML:function(b7,b5,b6){if(!b7||typeof b7!=="string"){return null}if(typeof b5==="boolean"){b6=b5;b5=false}b5=b5||l;var b4=a.exec(b7),e=!b6&&[];if(b4){return[b5.createElement(b4[1])]}b4=bK.buildFragment([b7],b5,e);if(e){bK(e).remove()}return bK.merge([],b4.childNodes)},parseJSON:function(e){if(a3.JSON&&a3.JSON.parse){return a3.JSON.parse(e)}if(e===null){return e}if(typeof e==="string"){e=bK.trim(e);if(e){if(bi.test(e.replace(bH,"@").replace(a0,"]").replace(bl,""))){return(new Function("return "+e))()}}}bK.error("Invalid JSON: "+e)},parseXML:function(b6){var b4,b5;if(!b6||typeof b6!=="string"){return null}try{if(a3.DOMParser){b5=new DOMParser();b4=b5.parseFromString(b6,"text/xml")}else{b4=new ActiveXObject("Microsoft.XMLDOM");b4.async="false";b4.loadXML(b6)}}catch(b7){b4=aH}if(!b4||!b4.documentElement||b4.getElementsByTagName("parsererror").length){bK.error("Invalid XML: "+b6)}return b4},noop:function(){},globalEval:function(e){if(e&&bK.trim(e)){(a3.execScript||function(b4){a3["eval"].call(a3,b4)})(e)}},camelCase:function(e){return e.replace(bT,"ms-").replace(aW,N)},nodeName:function(b4,e){return b4.nodeName&&b4.nodeName.toLowerCase()===e.toLowerCase()},each:function(b8,b9,b4){var b7,b5=0,b6=b8.length,e=ac(b8);if(b4){if(e){for(;b5<b6;b5++){b7=b9.apply(b8[b5],b4);if(b7===false){break}}}else{for(b5 in b8){b7=b9.apply(b8[b5],b4);if(b7===false){break}}}}else{if(e){for(;b5<b6;b5++){b7=b9.call(b8[b5],b5,b8[b5]);if(b7===false){break}}}else{for(b5 in b8){b7=b9.call(b8[b5],b5,b8[b5]);if(b7===false){break}}}}return b8},trim:aR&&!aR.call("\uFEFF\xA0")?function(e){return e==null?"":aR.call(e)}:function(e){return e==null?"":(e+"").replace(D,"")},makeArray:function(e,b5){var b4=b5||[];if(e!=null){if(ac(Object(e))){bK.merge(b4,typeof e==="string"?[e]:e)}else{ap.call(b4,e)}}return b4},inArray:function(b6,b4,b5){var e;if(b4){if(aN){return aN.call(b4,b6,b5)}e=b4.length;b5=b5?b5<0?Math.max(0,e+b5):b5:0;for(;b5<e;b5++){if(b5 in b4&&b4[b5]===b6){return b5}}}return -1},merge:function(b7,b5){var e=b5.length,b6=b7.length,b4=0;if(typeof e==="number"){for(;b4<e;b4++){b7[b6++]=b5[b4]}}else{while(b5[b4]!==aH){b7[b6++]=b5[b4++]}}b7.length=b6;return b7},grep:function(b4,b9,e){var b8,b5=[],b6=0,b7=b4.length;e=!!e;for(;b6<b7;b6++){b8=!!b9(b4[b6],b6);if(e!==b8){b5.push(b4[b6])}}return b5},map:function(b5,ca,e){var b9,b7=0,b8=b5.length,b4=ac(b5),b6=[];if(b4){for(;b7<b8;b7++){b9=ca(b5[b7],b7,e);if(b9!=null){b6[b6.length]=b9}}}else{for(b7 in b5){b9=ca(b5[b7],b7,e);if(b9!=null){b6[b6.length]=b9}}}return aJ.apply([],b6)},guid:1,proxy:function(b7,b6){var e,b5,b4;if(typeof b6==="string"){b4=b7[b6];b6=b7;b7=b4}if(!bK.isFunction(b7)){return aH}e=a5.call(arguments,2);b5=function(){return b7.apply(b6||this,e.concat(a5.call(arguments)))};b5.guid=b7.guid=b7.guid||bK.guid++;return b5},access:function(e,b8,ca,b9,b6,cc,cb){var b5=0,b4=e.length,b7=ca==null;if(bK.type(ca)==="object"){b6=true;for(b5 in ca){bK.access(e,b8,b5,ca[b5],true,cc,cb)}}else{if(b9!==aH){b6=true;if(!bK.isFunction(b9)){cb=true}if(b7){if(cb){b8.call(e,b9);b8=null}else{b7=b8;b8=function(ce,cd,cf){return b7.call(bK(ce),cf)}}}if(b8){for(;b5<b4;b5++){b8(e[b5],ca,cb?b9:b9.call(e[b5],b5,b8(e[b5],ca)))}}}}return b6?e:b7?b8.call(e):b4?b8(e[0],ca):cc},now:function(){return(new Date()).getTime()}});bK.ready.promise=function(b7){if(!aj){aj=bK.Deferred();if(l.readyState==="complete"){setTimeout(bK.ready)}else{if(l.addEventListener){l.addEventListener("DOMContentLoaded",bX,false);a3.addEventListener("load",bX,false)}else{l.attachEvent("onreadystatechange",bX);a3.attachEvent("onload",bX);var b6=false;try{b6=a3.frameElement==null&&l.documentElement}catch(b5){}if(b6&&b6.doScroll){(function b4(){if(!bK.isReady){try{b6.doScroll("left")}catch(b8){return setTimeout(b4,50)}bm();bK.ready()}})()}}}}return aj.promise(b7)};bK.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(b4,e){ab["[object "+e+"]"]=e.toLowerCase()});function ac(b5){var b4=b5.length,e=bK.type(b5);if(bK.isWindow(b5)){return false}if(b5.nodeType===1&&b4){return true}return e==="array"||e!=="function"&&(b4===0||typeof b4==="number"&&b4>0&&(b4-1) in b5)}x=bK(l);var bZ={};function af(b4){var e=bZ[b4]={};bK.each(b4.match(ad)||[],function(b6,b5){e[b5]=true});return e}bK.Callbacks=function(cd){cd=typeof cd==="string"?(bZ[cd]||af(cd)):bK.extend({},cd);var b7,b6,e,b8,b9,b5,ca=[],cb=!cd.once&&[],b4=function(ce){b6=cd.memory&&ce;e=true;b9=b5||0;b5=0;b8=ca.length;b7=true;for(;ca&&b9<b8;b9++){if(ca[b9].apply(ce[0],ce[1])===false&&cd.stopOnFalse){b6=false;break}}b7=false;if(ca){if(cb){if(cb.length){b4(cb.shift())}}else{if(b6){ca=[]}else{cc.disable()}}}},cc={add:function(){if(ca){var cf=ca.length;(function ce(cg){bK.each(cg,function(ci,ch){var cj=bK.type(ch);if(cj==="function"){if(!cd.unique||!cc.has(ch)){ca.push(ch)}}else{if(ch&&ch.length&&cj!=="string"){ce(ch)}}})})(arguments);if(b7){b8=ca.length}else{if(b6){b5=cf;b4(b6)}}}return this},remove:function(){if(ca){bK.each(arguments,function(cg,ce){var cf;while((cf=bK.inArray(ce,ca,cf))>-1){ca.splice(cf,1);if(b7){if(cf<=b8){b8--}if(cf<=b9){b9--}}}})}return this},has:function(ce){return ce?bK.inArray(ce,ca)>-1:!!(ca&&ca.length)},empty:function(){ca=[];return this},disable:function(){ca=cb=b6=aH;return this},disabled:function(){return !ca},lock:function(){cb=aH;if(!b6){cc.disable()}return this},locked:function(){return !cb},fireWith:function(cf,ce){ce=ce||[];ce=[cf,ce.slice?ce.slice():ce];if(ca&&(!e||cb)){if(b7){cb.push(ce)}else{b4(ce)}}return this},fire:function(){cc.fireWith(this,arguments);return this},fired:function(){return !!e}};return cc};bK.extend({Deferred:function(b5){var b4=[["resolve","done",bK.Callbacks("once memory"),"resolved"],["reject","fail",bK.Callbacks("once memory"),"rejected"],["notify","progress",bK.Callbacks("memory")]],b6="pending",b7={state:function(){return b6},always:function(){e.done(arguments).fail(arguments);return this},then:function(){var b8=arguments;return bK.Deferred(function(b9){bK.each(b4,function(cb,ca){var cd=ca[0],cc=bK.isFunction(b8[cb])&&b8[cb];e[ca[1]](function(){var ce=cc&&cc.apply(this,arguments);if(ce&&bK.isFunction(ce.promise)){ce.promise().done(b9.resolve).fail(b9.reject).progress(b9.notify)}else{b9[cd+"With"](this===b7?b9.promise():this,cc?[ce]:arguments)}})});b8=null}).promise()},promise:function(b8){return b8!=null?bK.extend(b8,b7):b7}},e={};b7.pipe=b7.then;bK.each(b4,function(b9,b8){var cb=b8[2],ca=b8[3];b7[b8[1]]=cb.add;if(ca){cb.add(function(){b6=ca},b4[b9^1][2].disable,b4[2][2].lock)}e[b8[0]]=function(){e[b8[0]+"With"](this===e?b7:this,arguments);return this};e[b8[0]+"With"]=cb.fireWith});b7.promise(e);if(b5){b5.call(e,e)}return e},when:function(b7){var b5=0,b9=a5.call(arguments),e=b9.length,b4=e!==1||(b7&&bK.isFunction(b7.promise))?e:0,cc=b4===1?b7:bK.Deferred(),b6=function(ce,cf,cd){return function(cg){cf[ce]=this;cd[ce]=arguments.length>1?a5.call(arguments):cg;if(cd===cb){cc.notifyWith(cf,cd)}else{if(!(--b4)){cc.resolveWith(cf,cd)}}}},cb,b8,ca;if(e>1){cb=new Array(e);b8=new Array(e);ca=new Array(e);for(;b5<e;b5++){if(b9[b5]&&bK.isFunction(b9[b5].promise)){b9[b5].promise().done(b6(b5,ca,b9)).fail(cc.reject).progress(b6(b5,b8,cb))}else{--b4}}}if(!b4){cc.resolveWith(ca,b9)}return cc.promise()}});bK.support=(function(){var cf,ce,cc,cb,cd,ca,b6,b8,b5,b7,b4=l.createElement("div");b4.setAttribute("className","t");b4.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";ce=b4.getElementsByTagName("*");cc=b4.getElementsByTagName("a")[0];if(!ce||!cc||!ce.length){return{}}cd=l.createElement("select");b6=cd.appendChild(l.createElement("option"));cb=b4.getElementsByTagName("input")[0];cc.style.cssText="top:1px;float:left;opacity:.5";cf={getSetAttribute:b4.className!=="t",leadingWhitespace:b4.firstChild.nodeType===3,tbody:!b4.getElementsByTagName("tbody").length,htmlSerialize:!!b4.getElementsByTagName("link").length,style:/top/.test(cc.getAttribute("style")),hrefNormalized:cc.getAttribute("href")==="/a",opacity:/^0.5/.test(cc.style.opacity),cssFloat:!!cc.style.cssFloat,checkOn:!!cb.value,optSelected:b6.selected,enctype:!!l.createElement("form").enctype,html5Clone:l.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",boxModel:l.compatMode==="CSS1Compat",deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true,boxSizingReliable:true,pixelPosition:false};cb.checked=true;cf.noCloneChecked=cb.cloneNode(true).checked;cd.disabled=true;cf.optDisabled=!b6.disabled;try{delete b4.test}catch(b9){cf.deleteExpando=false}cb=l.createElement("input");cb.setAttribute("value","");cf.input=cb.getAttribute("value")==="";cb.value="t";cb.setAttribute("type","radio");cf.radioValue=cb.value==="t";cb.setAttribute("checked","t");cb.setAttribute("name","t");ca=l.createDocumentFragment();ca.appendChild(cb);cf.appendChecked=cb.checked;cf.checkClone=ca.cloneNode(true).cloneNode(true).lastChild.checked;if(b4.attachEvent){b4.attachEvent("onclick",function(){cf.noCloneEvent=false});b4.cloneNode(true).click()}for(b7 in {submit:true,change:true,focusin:true}){b4.setAttribute(b8="on"+b7,"t");cf[b7+"Bubbles"]=b8 in a3||b4.attributes[b8].expando===false}b4.style.backgroundClip="content-box";b4.cloneNode(true).style.backgroundClip="";cf.clearCloneStyle=b4.style.backgroundClip==="content-box";bK(function(){var cg,cj,ci,ch="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",e=l.getElementsByTagName("body")[0];if(!e){return}cg=l.createElement("div");cg.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";e.appendChild(cg).appendChild(b4);b4.innerHTML="<table><tr><td></td><td>t</td></tr></table>";ci=b4.getElementsByTagName("td");ci[0].style.cssText="padding:0;margin:0;border:0;display:none";b5=(ci[0].offsetHeight===0);ci[0].style.display="";ci[1].style.display="none";cf.reliableHiddenOffsets=b5&&(ci[0].offsetHeight===0);b4.innerHTML="";b4.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";cf.boxSizing=(b4.offsetWidth===4);cf.doesNotIncludeMarginInBodyOffset=(e.offsetTop!==1);if(a3.getComputedStyle){cf.pixelPosition=(a3.getComputedStyle(b4,null)||{}).top!=="1%";cf.boxSizingReliable=(a3.getComputedStyle(b4,null)||{width:"4px"}).width==="4px";cj=b4.appendChild(l.createElement("div"));cj.style.cssText=b4.style.cssText=ch;cj.style.marginRight=cj.style.width="0";b4.style.width="1px";cf.reliableMarginRight=!parseFloat((a3.getComputedStyle(cj,null)||{}).marginRight)}if(typeof b4.style.zoom!==aD){b4.innerHTML="";b4.style.cssText=ch+"width:1px;padding:1px;display:inline;zoom:1";cf.inlineBlockNeedsLayout=(b4.offsetWidth===3);b4.style.display="block";b4.innerHTML="<div></div>";b4.firstChild.style.width="5px";cf.shrinkWrapBlocks=(b4.offsetWidth!==3);if(cf.inlineBlockNeedsLayout){e.style.zoom=1}}e.removeChild(cg);cg=b4=ci=cj=null});ce=cd=ca=b6=cc=cb=null;return cf})();var bx=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,aO=/([A-Z])/g;function bb(b6,b4,b8,b7){if(!bK.acceptData(b6)){return}var b9,cb,cc=bK.expando,ca=typeof b4==="string",cd=b6.nodeType,e=cd?bK.cache:b6,b5=cd?b6[cc]:b6[cc]&&cc;if((!b5||!e[b5]||(!b7&&!e[b5].data))&&ca&&b8===aH){return}if(!b5){if(cd){b6[cc]=b5=a7.pop()||bK.guid++}else{b5=cc}}if(!e[b5]){e[b5]={};if(!cd){e[b5].toJSON=bK.noop}}if(typeof b4==="object"||typeof b4==="function"){if(b7){e[b5]=bK.extend(e[b5],b4)}else{e[b5].data=bK.extend(e[b5].data,b4)}}b9=e[b5];if(!b7){if(!b9.data){b9.data={}}b9=b9.data}if(b8!==aH){b9[bK.camelCase(b4)]=b8}if(ca){cb=b9[b4];if(cb==null){cb=b9[bK.camelCase(b4)]}}else{cb=b9}return cb}function aa(b6,b4,b7){if(!bK.acceptData(b6)){return}var b9,b8,ca,cb=b6.nodeType,e=cb?bK.cache:b6,b5=cb?b6[bK.expando]:bK.expando;if(!e[b5]){return}if(b4){ca=b7?e[b5]:e[b5].data;if(ca){if(!bK.isArray(b4)){if(b4 in ca){b4=[b4]}else{b4=bK.camelCase(b4);if(b4 in ca){b4=[b4]}else{b4=b4.split(" ")}}}else{b4=b4.concat(bK.map(b4,bK.camelCase))}for(b9=0,b8=b4.length;b9<b8;b9++){delete ca[b4[b9]]}if(!(b7?O:bK.isEmptyObject)(ca)){return}}}if(!b7){delete e[b5].data;if(!O(e[b5])){return}}if(cb){bK.cleanData([b6],true)}else{if(bK.support.deleteExpando||e!=e.window){delete e[b5]}else{e[b5]=null}}}bK.extend({cache:{},expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?bK.cache[e[bK.expando]]:e[bK.expando];return !!e&&!O(e)},data:function(b4,e,b5){return bb(b4,e,b5)},removeData:function(b4,e){return aa(b4,e)},_data:function(b4,e,b5){return bb(b4,e,b5,true)},_removeData:function(b4,e){return aa(b4,e,true)},acceptData:function(b4){if(b4.nodeType&&b4.nodeType!==1&&b4.nodeType!==9){return false}var e=b4.nodeName&&bK.noData[b4.nodeName.toLowerCase()];return !e||e!==true&&b4.getAttribute("classid")===e}});bK.fn.extend({data:function(b6,b9){var b4,e,b7=this[0],b5=0,b8=null;if(b6===aH){if(this.length){b8=bK.data(b7);if(b7.nodeType===1&&!bK._data(b7,"parsedAttrs")){b4=b7.attributes;for(;b5<b4.length;b5++){e=b4[b5].name;if(!e.indexOf("data-")){e=bK.camelCase(e.slice(5));bz(b7,e,b8[e])}}bK._data(b7,"parsedAttrs",true)}}return b8}if(typeof b6==="object"){return this.each(function(){bK.data(this,b6)})}return bK.access(this,function(ca){if(ca===aH){return b7?bz(b7,b6,bK.data(b7,b6)):null}this.each(function(){bK.data(this,b6,ca)})},null,b9,arguments.length>1,null,true)},removeData:function(e){return this.each(function(){bK.removeData(this,e)})}});function bz(b6,b5,b7){if(b7===aH&&b6.nodeType===1){var b4="data-"+b5.replace(aO,"-$1").toLowerCase();b7=b6.getAttribute(b4);if(typeof b7==="string"){try{b7=b7==="true"?true:b7==="false"?false:b7==="null"?null:+b7+""===b7?+b7:bx.test(b7)?bK.parseJSON(b7):b7}catch(b8){}bK.data(b6,b5,b7)}else{b7=aH}}return b7}function O(b4){var e;for(e in b4){if(e==="data"&&bK.isEmptyObject(b4[e])){continue}if(e!=="toJSON"){return false}}return true}bK.extend({queue:function(b5,b4,b6){var e;if(b5){b4=(b4||"fx")+"queue";e=bK._data(b5,b4);if(b6){if(!e||bK.isArray(b6)){e=bK._data(b5,b4,bK.makeArray(b6))}else{e.push(b6)}}return e||[]}},dequeue:function(b8,b7){b7=b7||"fx";var b4=bK.queue(b8,b7),b9=b4.length,b6=b4.shift(),e=bK._queueHooks(b8,b7),b5=function(){bK.dequeue(b8,b7)};if(b6==="inprogress"){b6=b4.shift();b9--}e.cur=b6;if(b6){if(b7==="fx"){b4.unshift("inprogress")}delete e.stop;b6.call(b8,b5,e)}if(!b9&&e){e.empty.fire()}},_queueHooks:function(b5,b4){var e=b4+"queueHooks";return bK._data(b5,e)||bK._data(b5,e,{empty:bK.Callbacks("once memory").add(function(){bK._removeData(b5,b4+"queue");bK._removeData(b5,e)})})}});bK.fn.extend({queue:function(e,b4){var b5=2;if(typeof e!=="string"){b4=e;e="fx";b5--}if(arguments.length<b5){return bK.queue(this[0],e)}return b4===aH?this:this.each(function(){var b6=bK.queue(this,e,b4);bK._queueHooks(this,e);if(e==="fx"&&b6[0]!=="inprogress"){bK.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){bK.dequeue(this,e)})},delay:function(b4,e){b4=bK.fx?bK.fx.speeds[b4]||b4:b4;e=e||"fx";return this.queue(e,function(b6,b5){var b7=setTimeout(b6,b4);b5.stop=function(){clearTimeout(b7)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(b5,b9){var b4,b6=1,ca=bK.Deferred(),b8=this,e=this.length,b7=function(){if(!(--b6)){ca.resolveWith(b8,[b8])}};if(typeof b5!=="string"){b9=b5;b5=aH}b5=b5||"fx";while(e--){b4=bK._data(b8[e],b5+"queueHooks");if(b4&&b4.empty){b6++;b4.empty.add(b7)}}b7();return ca.promise(b9)}});var a9,b0,bN=/[\t\r\n]/g,al=/\r/g,aG=/^(?:input|select|textarea|button|object)$/i,E=/^(?:a|area)$/i,M=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,ar=/^(?:checked|selected)$/i,bQ=bK.support.getSetAttribute,bG=bK.support.input;bK.fn.extend({attr:function(e,b4){return bK.access(this,bK.attr,e,b4,arguments.length>1)},removeAttr:function(e){return this.each(function(){bK.removeAttr(this,e)})},prop:function(e,b4){return bK.access(this,bK.prop,e,b4,arguments.length>1)},removeProp:function(e){e=bK.propFix[e]||e;return this.each(function(){try{this[e]=aH;delete this[e]}catch(b4){}})},addClass:function(ca){var b4,e,cb,b7,b5,b6=0,b8=this.length,b9=typeof ca==="string"&&ca;if(bK.isFunction(ca)){return this.each(function(cc){bK(this).addClass(ca.call(this,cc,this.className))})}if(b9){b4=(ca||"").match(ad)||[];for(;b6<b8;b6++){e=this[b6];cb=e.nodeType===1&&(e.className?(" "+e.className+" ").replace(bN," "):" ");if(cb){b5=0;while((b7=b4[b5++])){if(cb.indexOf(" "+b7+" ")<0){cb+=b7+" "}}e.className=bK.trim(cb)}}}return this},removeClass:function(ca){var b4,e,cb,b7,b5,b6=0,b8=this.length,b9=arguments.length===0||typeof ca==="string"&&ca;if(bK.isFunction(ca)){return this.each(function(cc){bK(this).removeClass(ca.call(this,cc,this.className))})}if(b9){b4=(ca||"").match(ad)||[];for(;b6<b8;b6++){e=this[b6];cb=e.nodeType===1&&(e.className?(" "+e.className+" ").replace(bN," "):"");if(cb){b5=0;while((b7=b4[b5++])){while(cb.indexOf(" "+b7+" ")>=0){cb=cb.replace(" "+b7+" "," ")}}e.className=ca?bK.trim(cb):""}}}return this},toggleClass:function(b6,b4){var b5=typeof b6,e=typeof b4==="boolean";if(bK.isFunction(b6)){return this.each(function(b7){bK(this).toggleClass(b6.call(this,b7,this.className,b4),b4)})}return this.each(function(){if(b5==="string"){var b9,b8=0,b7=bK(this),ca=b4,cb=b6.match(ad)||[];while((b9=cb[b8++])){ca=e?ca:!b7.hasClass(b9);b7[ca?"addClass":"removeClass"](b9)}}else{if(b5===aD||b5==="boolean"){if(this.className){bK._data(this,"__className__",this.className)}this.className=this.className||b6===false?"":bK._data(this,"__className__")||""}}})},hasClass:function(e){var b6=" "+e+" ",b5=0,b4=this.length;for(;b5<b4;b5++){if(this[b5].nodeType===1&&(" "+this[b5].className+" ").replace(bN," ").indexOf(b6)>=0){return true}}return false},val:function(b6){var b4,e,b7,b5=this[0];if(!arguments.length){if(b5){e=bK.valHooks[b5.type]||bK.valHooks[b5.nodeName.toLowerCase()];if(e&&"get" in e&&(b4=e.get(b5,"value"))!==aH){return b4}b4=b5.value;return typeof b4==="string"?b4.replace(al,""):b4==null?"":b4}return}b7=bK.isFunction(b6);return this.each(function(b9){var ca,b8=bK(this);if(this.nodeType!==1){return}if(b7){ca=b6.call(this,b9,b8.val())}else{ca=b6}if(ca==null){ca=""}else{if(typeof ca==="number"){ca+=""}else{if(bK.isArray(ca)){ca=bK.map(ca,function(cb){return cb==null?"":cb+""})}}}e=bK.valHooks[this.type]||bK.valHooks[this.nodeName.toLowerCase()];if(!e||!("set" in e)||e.set(this,ca,"value")===aH){this.value=ca}})}});bK.extend({valHooks:{option:{get:function(e){var b4=e.attributes.value;return !b4||b4.specified?e.value:e.text}},select:{get:function(e){var b9,b5,cb=e.options,b7=e.selectedIndex,b6=e.type==="select-one"||b7<0,ca=b6?null:[],b8=b6?b7+1:cb.length,b4=b7<0?b8:b6?b7:0;for(;b4<b8;b4++){b5=cb[b4];if((b5.selected||b4===b7)&&(bK.support.optDisabled?!b5.disabled:b5.getAttribute("disabled")===null)&&(!b5.parentNode.disabled||!bK.nodeName(b5.parentNode,"optgroup"))){b9=bK(b5).val();if(b6){return b9}ca.push(b9)}}return ca},set:function(b4,b5){var e=bK.makeArray(b5);bK(b4).find("option").each(function(){this.selected=bK.inArray(bK(this).val(),e)>=0});if(!e.length){b4.selectedIndex=-1}return e}}},attr:function(b8,b6,b9){var e,b7,b5,b4=b8.nodeType;if(!b8||b4===3||b4===8||b4===2){return}if(typeof b8.getAttribute===aD){return bK.prop(b8,b6,b9)}b7=b4!==1||!bK.isXMLDoc(b8);if(b7){b6=b6.toLowerCase();e=bK.attrHooks[b6]||(M.test(b6)?b0:a9)}if(b9!==aH){if(b9===null){bK.removeAttr(b8,b6)}else{if(e&&b7&&"set" in e&&(b5=e.set(b8,b9,b6))!==aH){return b5}else{b8.setAttribute(b6,b9+"");return b9}}}else{if(e&&b7&&"get" in e&&(b5=e.get(b8,b6))!==null){return b5}else{if(typeof b8.getAttribute!==aD){b5=b8.getAttribute(b6)}return b5==null?aH:b5}}},removeAttr:function(b5,b7){var e,b6,b4=0,b8=b7&&b7.match(ad);if(b8&&b5.nodeType===1){while((e=b8[b4++])){b6=bK.propFix[e]||e;if(M.test(e)){if(!bQ&&ar.test(e)){b5[bK.camelCase("default-"+e)]=b5[b6]=false}else{b5[b6]=false}}else{bK.attr(b5,e,"")}b5.removeAttribute(bQ?e:b6)}}},attrHooks:{type:{set:function(e,b4){if(!bK.support.radioValue&&b4==="radio"&&bK.nodeName(e,"input")){var b5=e.value;e.setAttribute("type",b4);if(b5){e.value=b5}return b4}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(b8,b6,b9){var b5,e,b7,b4=b8.nodeType;if(!b8||b4===3||b4===8||b4===2){return}b7=b4!==1||!bK.isXMLDoc(b8);if(b7){b6=bK.propFix[b6]||b6;e=bK.propHooks[b6]}if(b9!==aH){if(e&&"set" in e&&(b5=e.set(b8,b9,b6))!==aH){return b5}else{return(b8[b6]=b9)}}else{if(e&&"get" in e&&(b5=e.get(b8,b6))!==null){return b5}else{return b8[b6]}}},propHooks:{tabIndex:{get:function(b4){var e=b4.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):aG.test(b4.nodeName)||E.test(b4.nodeName)&&b4.href?0:aH}}}});b0={get:function(b6,b4){var b7=bK.prop(b6,b4),e=typeof b7==="boolean"&&b6.getAttribute(b4),b5=typeof b7==="boolean"?bG&&bQ?e!=null:ar.test(b4)?b6[bK.camelCase("default-"+b4)]:!!e:b6.getAttributeNode(b4);return b5&&b5.value!==false?b4.toLowerCase():aH},set:function(b4,b5,e){if(b5===false){bK.removeAttr(b4,e)}else{if(bG&&bQ||!ar.test(e)){b4.setAttribute(!bQ&&bK.propFix[e]||e,e)}else{b4[bK.camelCase("default-"+e)]=b4[e]=true}}return e}};if(!bG||!bQ){bK.attrHooks.value={get:function(b5,b4){var e=b5.getAttributeNode(b4);return bK.nodeName(b5,"input")?b5.defaultValue:e&&e.specified?e.value:aH},set:function(b4,b5,e){if(bK.nodeName(b4,"input")){b4.defaultValue=b5}else{return a9&&a9.set(b4,b5,e)}}}}if(!bQ){a9=bK.valHooks.button={get:function(b5,b4){var e=b5.getAttributeNode(b4);return e&&(b4==="id"||b4==="name"||b4==="coords"?e.value!=="":e.specified)?e.value:aH},set:function(b5,b6,b4){var e=b5.getAttributeNode(b4);if(!e){b5.setAttributeNode((e=b5.ownerDocument.createAttribute(b4)))}e.value=b6+="";return b4==="value"||b6===b5.getAttribute(b4)?b6:aH}};bK.attrHooks.contenteditable={get:a9.get,set:function(b4,b5,e){a9.set(b4,b5===""?false:b5,e)}};bK.each(["width","height"],function(b4,e){bK.attrHooks[e]=bK.extend(bK.attrHooks[e],{set:function(b5,b6){if(b6===""){b5.setAttribute(e,"auto");return b6}}})})}if(!bK.support.hrefNormalized){bK.each(["href","src","width","height"],function(b4,e){bK.attrHooks[e]=bK.extend(bK.attrHooks[e],{get:function(b6){var b5=b6.getAttribute(e,2);return b5==null?aH:b5}})});bK.each(["href","src"],function(b4,e){bK.propHooks[e]={get:function(b5){return b5.getAttribute(e,4)}}})}if(!bK.support.style){bK.attrHooks.style={get:function(e){return e.style.cssText||aH},set:function(e,b4){return(e.style.cssText=b4+"")}}}if(!bK.support.optSelected){bK.propHooks.selected=bK.extend(bK.propHooks.selected,{get:function(b4){var e=b4.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!bK.support.enctype){bK.propFix.enctype="encoding"}if(!bK.support.checkOn){bK.each(["radio","checkbox"],function(){bK.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}bK.each(["radio","checkbox"],function(){bK.valHooks[this]=bK.extend(bK.valHooks[this],{set:function(e,b4){if(bK.isArray(b4)){return(e.checked=bK.inArray(bK(e).val(),b4)>=0)}}})});var bI=/^(?:input|select|textarea)$/i,a4=/^key/,bO=/^(?:mouse|contextmenu)|click/,bC=/^(?:focusinfocus|focusoutblur)$/,bv=/^([^.]*)(?:\.(.+)|)$/;function S(){return true}function Y(){return false}bK.event={global:{},add:function(b7,cc,ch,b9,b8){var ca,ci,cj,b5,ce,cb,cg,b6,cf,e,b4,cd=bK._data(b7);if(!cd){return}if(ch.handler){b5=ch;ch=b5.handler;b8=b5.selector}if(!ch.guid){ch.guid=bK.guid++}if(!(ci=cd.events)){ci=cd.events={}}if(!(cb=cd.handle)){cb=cd.handle=function(ck){return typeof bK!==aD&&(!ck||bK.event.triggered!==ck.type)?bK.event.dispatch.apply(cb.elem,arguments):aH};cb.elem=b7}cc=(cc||"").match(ad)||[""];cj=cc.length;while(cj--){ca=bv.exec(cc[cj])||[];cf=b4=ca[1];e=(ca[2]||"").split(".").sort();ce=bK.event.special[cf]||{};cf=(b8?ce.delegateType:ce.bindType)||cf;ce=bK.event.special[cf]||{};cg=bK.extend({type:cf,origType:b4,data:b9,handler:ch,guid:ch.guid,selector:b8,needsContext:b8&&bK.expr.match.needsContext.test(b8),namespace:e.join(".")},b5);if(!(b6=ci[cf])){b6=ci[cf]=[];b6.delegateCount=0;if(!ce.setup||ce.setup.call(b7,b9,e,cb)===false){if(b7.addEventListener){b7.addEventListener(cf,cb,false)}else{if(b7.attachEvent){b7.attachEvent("on"+cf,cb)}}}}if(ce.add){ce.add.call(b7,cg);if(!cg.handler.guid){cg.handler.guid=ch.guid}}if(b8){b6.splice(b6.delegateCount++,0,cg)}else{b6.push(cg)}bK.event.global[cf]=true}b7=null},remove:function(b6,cc,cj,b7,cb){var b9,cg,ca,b8,ci,ch,ce,b5,cf,e,b4,cd=bK.hasData(b6)&&bK._data(b6);if(!cd||!(ch=cd.events)){return}cc=(cc||"").match(ad)||[""];ci=cc.length;while(ci--){ca=bv.exec(cc[ci])||[];cf=b4=ca[1];e=(ca[2]||"").split(".").sort();if(!cf){for(cf in ch){bK.event.remove(b6,cf+cc[ci],cj,b7,true)}continue}ce=bK.event.special[cf]||{};cf=(b7?ce.delegateType:ce.bindType)||cf;b5=ch[cf]||[];ca=ca[2]&&new RegExp("(^|\\.)"+e.join("\\.(?:.*\\.|)")+"(\\.|$)");b8=b9=b5.length;while(b9--){cg=b5[b9];if((cb||b4===cg.origType)&&(!cj||cj.guid===cg.guid)&&(!ca||ca.test(cg.namespace))&&(!b7||b7===cg.selector||b7==="**"&&cg.selector)){b5.splice(b9,1);if(cg.selector){b5.delegateCount--}if(ce.remove){ce.remove.call(b6,cg)}}}if(b8&&!b5.length){if(!ce.teardown||ce.teardown.call(b6,e,cd.handle)===false){bK.removeEvent(b6,cf,cd.handle)}delete ch[cf]}}if(bK.isEmptyObject(ch)){delete cd.handle;bK._removeData(b6,"events")}},trigger:function(b4,cb,b7,ci){var cc,b6,cg,ch,ce,ca,b9,b8=[b7||l],cf=W.call(b4,"type")?b4.type:b4,b5=W.call(b4,"namespace")?b4.namespace.split("."):[];cg=ca=b7=b7||l;if(b7.nodeType===3||b7.nodeType===8){return}if(bC.test(cf+bK.event.triggered)){return}if(cf.indexOf(".")>=0){b5=cf.split(".");cf=b5.shift();b5.sort()}b6=cf.indexOf(":")<0&&"on"+cf;b4=b4[bK.expando]?b4:new bK.Event(cf,typeof b4==="object"&&b4);b4.isTrigger=true;b4.namespace=b5.join(".");b4.namespace_re=b4.namespace?new RegExp("(^|\\.)"+b5.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;b4.result=aH;if(!b4.target){b4.target=b7}cb=cb==null?[b4]:bK.makeArray(cb,[b4]);ce=bK.event.special[cf]||{};if(!ci&&ce.trigger&&ce.trigger.apply(b7,cb)===false){return}if(!ci&&!ce.noBubble&&!bK.isWindow(b7)){ch=ce.delegateType||cf;if(!bC.test(ch+cf)){cg=cg.parentNode}for(;cg;cg=cg.parentNode){b8.push(cg);ca=cg}if(ca===(b7.ownerDocument||l)){b8.push(ca.defaultView||ca.parentWindow||a3)}}b9=0;while((cg=b8[b9++])&&!b4.isPropagationStopped()){b4.type=b9>1?ch:ce.bindType||cf;cc=(bK._data(cg,"events")||{})[b4.type]&&bK._data(cg,"handle");if(cc){cc.apply(cg,cb)}cc=b6&&cg[b6];if(cc&&bK.acceptData(cg)&&cc.apply&&cc.apply(cg,cb)===false){b4.preventDefault()}}b4.type=cf;if(!ci&&!b4.isDefaultPrevented()){if((!ce._default||ce._default.apply(b7.ownerDocument,cb)===false)&&!(cf==="click"&&bK.nodeName(b7,"a"))&&bK.acceptData(b7)){if(b6&&b7[cf]&&!bK.isWindow(b7)){ca=b7[b6];if(ca){b7[b6]=null}bK.event.triggered=cf;try{b7[cf]()}catch(cd){}bK.event.triggered=aH;if(ca){b7[b6]=ca}}}}return b4.result},dispatch:function(e){e=bK.event.fix(e);var b7,b8,cc,b4,b6,cb=[],ca=a5.call(arguments),b5=(bK._data(this,"events")||{})[e.type]||[],b9=bK.event.special[e.type]||{};ca[0]=e;e.delegateTarget=this;if(b9.preDispatch&&b9.preDispatch.call(this,e)===false){return}cb=bK.event.handlers.call(this,e,b5);b7=0;while((b4=cb[b7++])&&!e.isPropagationStopped()){e.currentTarget=b4.elem;b6=0;while((cc=b4.handlers[b6++])&&!e.isImmediatePropagationStopped()){if(!e.namespace_re||e.namespace_re.test(cc.namespace)){e.handleObj=cc;e.data=cc.data;b8=((bK.event.special[cc.origType]||{}).handle||cc.handler).apply(b4.elem,ca);if(b8!==aH){if((e.result=b8)===false){e.preventDefault();e.stopPropagation()}}}}}if(b9.postDispatch){b9.postDispatch.call(this,e)}return e.result},handlers:function(e,b5){var b4,ca,b8,b7,b9=[],b6=b5.delegateCount,cb=e.target;if(b6&&cb.nodeType&&(!e.button||e.type!=="click")){for(;cb!=this;cb=cb.parentNode||this){if(cb.nodeType===1&&(cb.disabled!==true||e.type!=="click")){b8=[];for(b7=0;b7<b6;b7++){ca=b5[b7];b4=ca.selector+" ";if(b8[b4]===aH){b8[b4]=ca.needsContext?bK(b4,this).index(cb)>=0:bK.find(b4,this,null,[cb]).length}if(b8[b4]){b8.push(ca)}}if(b8.length){b9.push({elem:cb,handlers:b8})}}}}if(b6<b5.length){b9.push({elem:this,handlers:b5.slice(b6)})}return b9},fix:function(b6){if(b6[bK.expando]){return b6}var b4,b9,b8,b5=b6.type,e=b6,b7=this.fixHooks[b5];if(!b7){this.fixHooks[b5]=b7=bO.test(b5)?this.mouseHooks:a4.test(b5)?this.keyHooks:{}}b8=b7.props?this.props.concat(b7.props):this.props;b6=new bK.Event(e);b4=b8.length;while(b4--){b9=b8[b4];b6[b9]=e[b9]}if(!b6.target){b6.target=e.srcElement||l}if(b6.target.nodeType===3){b6.target=b6.target.parentNode}b6.metaKey=!!b6.metaKey;return b7.filter?b7.filter(b6,e):b6},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(b4,e){if(b4.which==null){b4.which=e.charCode!=null?e.charCode:e.keyCode}return b4}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(b6,b5){var e,b7,b8,b4=b5.button,b9=b5.fromElement;if(b6.pageX==null&&b5.clientX!=null){b7=b6.target.ownerDocument||l;b8=b7.documentElement;e=b7.body;b6.pageX=b5.clientX+(b8&&b8.scrollLeft||e&&e.scrollLeft||0)-(b8&&b8.clientLeft||e&&e.clientLeft||0);b6.pageY=b5.clientY+(b8&&b8.scrollTop||e&&e.scrollTop||0)-(b8&&b8.clientTop||e&&e.clientTop||0)}if(!b6.relatedTarget&&b9){b6.relatedTarget=b9===b6.target?b5.toElement:b9}if(!b6.which&&b4!==aH){b6.which=(b4&1?1:(b4&2?3:(b4&4?2:0)))}return b6}},special:{load:{noBubble:true},click:{trigger:function(){if(bK.nodeName(this,"input")&&this.type==="checkbox"&&this.click){this.click();return false}}},focus:{trigger:function(){if(this!==l.activeElement&&this.focus){try{this.focus();return false}catch(b4){}}},delegateType:"focusin"},blur:{trigger:function(){if(this===l.activeElement&&this.blur){this.blur();return false}},delegateType:"focusout"},beforeunload:{postDispatch:function(e){if(e.result!==aH){e.originalEvent.returnValue=e.result}}}},simulate:function(b5,b7,b6,b4){var b8=bK.extend(new bK.Event(),b6,{type:b5,isSimulated:true,originalEvent:{}});if(b4){bK.event.trigger(b8,null,b7)}else{bK.event.dispatch.call(b7,b8)}if(b8.isDefaultPrevented()){b6.preventDefault()}}};bK.removeEvent=l.removeEventListener?function(b4,e,b5){if(b4.removeEventListener){b4.removeEventListener(e,b5,false)}}:function(b5,b4,b6){var e="on"+b4;if(b5.detachEvent){if(typeof b5[e]===aD){b5[e]=null}b5.detachEvent(e,b6)}};bK.Event=function(b4,e){if(!(this instanceof bK.Event)){return new bK.Event(b4,e)}if(b4&&b4.type){this.originalEvent=b4;this.type=b4.type;this.isDefaultPrevented=(b4.defaultPrevented||b4.returnValue===false||b4.getPreventDefault&&b4.getPreventDefault())?S:Y}else{this.type=b4}if(e){bK.extend(this,e)}this.timeStamp=b4&&b4.timeStamp||bK.now();this[bK.expando]=true};bK.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var b4=this.originalEvent;this.isDefaultPrevented=S;if(!b4){return}if(b4.preventDefault){b4.preventDefault()}else{b4.returnValue=false}},stopPropagation:function(){var b4=this.originalEvent;this.isPropagationStopped=S;if(!b4){return}if(b4.stopPropagation){b4.stopPropagation()}b4.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=S;this.stopPropagation()}};bK.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(b4,e){bK.event.special[b4]={delegateType:e,bindType:e,handle:function(b7){var b5,b9=this,b8=b7.relatedTarget,b6=b7.handleObj;if(!b8||(b8!==b9&&!bK.contains(b9,b8))){b7.type=b6.origType;b5=b6.handler.apply(this,arguments);b7.type=e}return b5}}});if(!bK.support.submitBubbles){bK.event.special.submit={setup:function(){if(bK.nodeName(this,"form")){return false}bK.event.add(this,"click._submit keypress._submit",function(b6){var b5=b6.target,b4=bK.nodeName(b5,"input")||bK.nodeName(b5,"button")?b5.form:aH;if(b4&&!bK._data(b4,"submitBubbles")){bK.event.add(b4,"submit._submit",function(e){e._submit_bubble=true});bK._data(b4,"submitBubbles",true)}})},postDispatch:function(e){if(e._submit_bubble){delete e._submit_bubble;if(this.parentNode&&!e.isTrigger){bK.event.simulate("submit",this.parentNode,e,true)}}},teardown:function(){if(bK.nodeName(this,"form")){return false}bK.event.remove(this,"._submit")}}}if(!bK.support.changeBubbles){bK.event.special.change={setup:function(){if(bI.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){bK.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});bK.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false}bK.event.simulate("change",this,e,true)})}return false}bK.event.add(this,"beforeactivate._change",function(b5){var b4=b5.target;if(bI.test(b4.nodeName)&&!bK._data(b4,"changeBubbles")){bK.event.add(b4,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){bK.event.simulate("change",this.parentNode,e,true)}});bK._data(b4,"changeBubbles",true)}})},handle:function(b4){var e=b4.target;if(this!==e||b4.isSimulated||b4.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return b4.handleObj.handler.apply(this,arguments)}},teardown:function(){bK.event.remove(this,"._change");return !bI.test(this.nodeName)}}}if(!bK.support.focusinBubbles){bK.each({focus:"focusin",blur:"focusout"},function(b6,e){var b4=0,b5=function(b7){bK.event.simulate(e,b7.target,bK.event.fix(b7),true)};bK.event.special[e]={setup:function(){if(b4++===0){l.addEventListener(b6,b5,true)}},teardown:function(){if(--b4===0){l.removeEventListener(b6,b5,true)}}}})}bK.fn.extend({on:function(b5,e,b8,b7,b4){var b6,b9;if(typeof b5==="object"){if(typeof e!=="string"){b8=b8||e;e=aH}for(b6 in b5){this.on(b6,e,b8,b5[b6],b4)}return this}if(b8==null&&b7==null){b7=e;b8=e=aH}else{if(b7==null){if(typeof e==="string"){b7=b8;b8=aH}else{b7=b8;b8=e;e=aH}}}if(b7===false){b7=Y}else{if(!b7){return this}}if(b4===1){b9=b7;b7=function(ca){bK().off(ca);return b9.apply(this,arguments)};b7.guid=b9.guid||(b9.guid=bK.guid++)}return this.each(function(){bK.event.add(this,b5,b7,b8,e)})},one:function(b4,e,b6,b5){return this.on(b4,e,b6,b5,1)},off:function(b5,e,b7){var b4,b6;if(b5&&b5.preventDefault&&b5.handleObj){b4=b5.handleObj;bK(b5.delegateTarget).off(b4.namespace?b4.origType+"."+b4.namespace:b4.origType,b4.selector,b4.handler);return this}if(typeof b5==="object"){for(b6 in b5){this.off(b6,e,b5[b6])}return this}if(e===false||typeof e==="function"){b7=e;e=aH}if(b7===false){b7=Y}return this.each(function(){bK.event.remove(this,b5,b7,e)})},bind:function(e,b5,b4){return this.on(e,null,b5,b4)},unbind:function(e,b4){return this.off(e,null,b4)},delegate:function(e,b4,b6,b5){return this.on(b4,e,b6,b5)},undelegate:function(e,b4,b5){return arguments.length===1?this.off(e,"**"):this.off(b4,e||"**",b5)},trigger:function(e,b4){return this.each(function(){bK.event.trigger(e,b4,this)})},triggerHandler:function(e,b5){var b4=this[0];if(b4){return bK.event.trigger(e,b5,b4,true)}}});
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://sizzlejs.com/
+ */
+(function(db,ci){var cy,cc,co,cI,cK,cT,cU,dh,cW,cC,cp,ce,c0,dc,cb,cG,cE,c6="sizzle"+-(new Date()),cJ=db.document,de={},df=0,c1=0,b6=cA(),c5=cA(),cH=cA(),da=typeof ci,cO=1<<31,c8=[],c9=c8.pop,b5=c8.push,cn=c8.slice,ca=c8.indexOf||function(dj){var di=0,e=this.length;for(;di<e;di++){if(this[di]===dj){return di}}return -1},cq="[\\x20\\t\\r\\n\\f]",b4="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",cL=b4.replace("w","w#"),cj="([*^$|!~]?=)",c3="\\["+cq+"*("+b4+")"+cq+"*(?:"+cj+cq+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+cL+")|)|)"+cq+"*\\]",cl=":("+b4+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+c3.replace(3,8)+")*)|.*)\\)|)",cs=new RegExp("^"+cq+"+|((?:^|[^\\\\])(?:\\\\.)*)"+cq+"+$","g"),cv=new RegExp("^"+cq+"*,"+cq+"*"),cB=new RegExp("^"+cq+"*([\\x20\\t\\r\\n\\f>+~])"+cq+"*"),cQ=new RegExp(cl),cR=new RegExp("^"+cL+"$"),cZ={ID:new RegExp("^#("+b4+")"),CLASS:new RegExp("^\\.("+b4+")"),NAME:new RegExp("^\\[name=['\"]?("+b4+")['\"]?\\]"),TAG:new RegExp("^("+b4.replace("w","w*")+")"),ATTR:new RegExp("^"+c3),PSEUDO:new RegExp("^"+cl),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+cq+"*(even|odd|(([+-]|)(\\d*)n|)"+cq+"*(?:([+-]|)"+cq+"*(\\d+)|))"+cq+"*\\)|)","i"),needsContext:new RegExp("^"+cq+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+cq+"*((?:-\\d)?\\d*)"+cq+"*\\)|)(?=[^-]|$)","i")},cX=/[\x20\t\r\n\f]*[+~]/,cN=/^[^{]+\{\s*\[native code/,cP=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,b9=/^(?:input|select|textarea|button)$/i,cm=/^h\d$/i,cM=/'|\\/g,cu=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,ct=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,c2=function(e,dj){var di="0x"+dj-65536;return di!==di?dj:di<0?String.fromCharCode(di+65536):String.fromCharCode(di>>10|55296,di&1023|56320)};try{cn.call(cJ.documentElement.childNodes,0)[0].nodeType}catch(cD){cn=function(di){var dj,e=[];while((dj=this[di++])){e.push(dj)}return e}}function cF(e){return cN.test(e+"")}function cA(){var e,di=[];return(e=function(dj,dk){if(di.push(dj+=" ")>co.cacheLength){delete e[di.shift()]}return(e[dj]=dk)})}function ck(e){e[c6]=true;return e}function cd(di){var dk=cC.createElement("div");try{return di(dk)}catch(dj){return false}finally{dk=null}}function cw(dq,di,du,dw){var dv,dm,dn,ds,dt,dl,dk,e,dj,dr;if((di?di.ownerDocument||di:cJ)!==cC){cW(di)}di=di||cC;du=du||[];if(!dq||typeof dq!=="string"){return du}if((ds=di.nodeType)!==1&&ds!==9){return[]}if(!ce&&!dw){if((dv=cP.exec(dq))){if((dn=dv[1])){if(ds===9){dm=di.getElementById(dn);if(dm&&dm.parentNode){if(dm.id===dn){du.push(dm);return du}}else{return du}}else{if(di.ownerDocument&&(dm=di.ownerDocument.getElementById(dn))&&cG(di,dm)&&dm.id===dn){du.push(dm);return du}}}else{if(dv[2]){b5.apply(du,cn.call(di.getElementsByTagName(dq),0));return du}else{if((dn=dv[3])&&de.getByClassName&&di.getElementsByClassName){b5.apply(du,cn.call(di.getElementsByClassName(dn),0));return du}}}}if(de.qsa&&!c0.test(dq)){dk=true;e=c6;dj=di;dr=ds===9&&dq;if(ds===1&&di.nodeName.toLowerCase()!=="object"){dl=cg(dq);if((dk=di.getAttribute("id"))){e=dk.replace(cM,"\\$&")}else{di.setAttribute("id",e)}e="[id='"+e+"'] ";dt=dl.length;while(dt--){dl[dt]=e+ch(dl[dt])}dj=cX.test(dq)&&di.parentNode||di;dr=dl.join(",")}if(dr){try{b5.apply(du,cn.call(dj.querySelectorAll(dr),0));return du}catch(dp){}finally{if(!dk){di.removeAttribute("id")}}}}}return dd(dq.replace(cs,"$1"),di,du,dw)}cK=cw.isXML=function(e){var di=e&&(e.ownerDocument||e).documentElement;return di?di.nodeName!=="HTML":false};cW=cw.setDocument=function(e){var di=e?e.ownerDocument||e:cJ;if(di===cC||di.nodeType!==9||!di.documentElement){return cC}cC=di;cp=di.documentElement;ce=cK(di);de.tagNameNoComments=cd(function(dj){dj.appendChild(di.createComment(""));return !dj.getElementsByTagName("*").length});de.attributes=cd(function(dk){dk.innerHTML="<select></select>";var dj=typeof dk.lastChild.getAttribute("multiple");return dj!=="boolean"&&dj!=="string"});de.getByClassName=cd(function(dj){dj.innerHTML="<div class='hidden e'></div><div class='hidden'></div>";if(!dj.getElementsByClassName||!dj.getElementsByClassName("e").length){return false}dj.lastChild.className="e";return dj.getElementsByClassName("e").length===2});de.getByName=cd(function(dk){dk.id=c6+0;dk.innerHTML="<a name='"+c6+"'></a><div name='"+c6+"'></div>";cp.insertBefore(dk,cp.firstChild);var dj=di.getElementsByName&&di.getElementsByName(c6).length===2+di.getElementsByName(c6+0).length;de.getIdNotName=!di.getElementById(c6);cp.removeChild(dk);return dj});co.attrHandle=cd(function(dj){dj.innerHTML="<a href='#'></a>";return dj.firstChild&&typeof dj.firstChild.getAttribute!==da&&dj.firstChild.getAttribute("href")==="#"})?{}:{href:function(dj){return dj.getAttribute("href",2)},type:function(dj){return dj.getAttribute("type")}};if(de.getIdNotName){co.find.ID=function(dl,dk){if(typeof dk.getElementById!==da&&!ce){var dj=dk.getElementById(dl);return dj&&dj.parentNode?[dj]:[]}};co.filter.ID=function(dk){var dj=dk.replace(ct,c2);return function(dl){return dl.getAttribute("id")===dj}}}else{co.find.ID=function(dl,dk){if(typeof dk.getElementById!==da&&!ce){var dj=dk.getElementById(dl);return dj?dj.id===dl||typeof dj.getAttributeNode!==da&&dj.getAttributeNode("id").value===dl?[dj]:ci:[]}};co.filter.ID=function(dk){var dj=dk.replace(ct,c2);return function(dm){var dl=typeof dm.getAttributeNode!==da&&dm.getAttributeNode("id");return dl&&dl.value===dj}}}co.find.TAG=de.tagNameNoComments?function(dj,dk){if(typeof dk.getElementsByTagName!==da){return dk.getElementsByTagName(dj)}}:function(dj,dn){var dp,dm=[],dl=0,dk=dn.getElementsByTagName(dj);if(dj==="*"){while((dp=dk[dl++])){if(dp.nodeType===1){dm.push(dp)}}return dm}return dk};co.find.NAME=de.getByName&&function(dj,dk){if(typeof dk.getElementsByName!==da){return dk.getElementsByName(name)}};co.find.CLASS=de.getByClassName&&function(dk,dj){if(typeof dj.getElementsByClassName!==da&&!ce){return dj.getElementsByClassName(dk)}};dc=[];c0=[":focus"];if((de.qsa=cF(di.querySelectorAll))){cd(function(dj){dj.innerHTML="<select><option selected=''></option></select>";if(!dj.querySelectorAll("[selected]").length){c0.push("\\["+cq+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)")}if(!dj.querySelectorAll(":checked").length){c0.push(":checked")}});cd(function(dj){dj.innerHTML="<input type='hidden' i=''/>";if(dj.querySelectorAll("[i^='']").length){c0.push("[*^$]="+cq+"*(?:\"\"|'')")}if(!dj.querySelectorAll(":enabled").length){c0.push(":enabled",":disabled")}dj.querySelectorAll("*,:x");c0.push(",.*:")})}if((de.matchesSelector=cF((cb=cp.matchesSelector||cp.mozMatchesSelector||cp.webkitMatchesSelector||cp.oMatchesSelector||cp.msMatchesSelector)))){cd(function(dj){de.disconnectedMatch=cb.call(dj,"div");cb.call(dj,"[s!='']:x");dc.push("!=",cl)})}c0=new RegExp(c0.join("|"));dc=new RegExp(dc.join("|"));cG=cF(cp.contains)||cp.compareDocumentPosition?function(dk,dj){var dm=dk.nodeType===9?dk.documentElement:dk,dl=dj&&dj.parentNode;return dk===dl||!!(dl&&dl.nodeType===1&&(dm.contains?dm.contains(dl):dk.compareDocumentPosition&&dk.compareDocumentPosition(dl)&16))}:function(dk,dj){if(dj){while((dj=dj.parentNode)){if(dj===dk){return true}}}return false};cE=cp.compareDocumentPosition?function(dk,dj){var dl;if(dk===dj){cU=true;return 0}if((dl=dj.compareDocumentPosition&&dk.compareDocumentPosition&&dk.compareDocumentPosition(dj))){if(dl&1||dk.parentNode&&dk.parentNode.nodeType===11){if(dk===di||cG(cJ,dk)){return -1}if(dj===di||cG(cJ,dj)){return 1}return 0}return dl&4?-1:1}return dk.compareDocumentPosition?-1:1}:function(dk,dj){var dr,dn=0,dq=dk.parentNode,dm=dj.parentNode,dl=[dk],dp=[dj];if(dk===dj){cU=true;return 0}else{if(!dq||!dm){return dk===di?-1:dj===di?1:dq?-1:dm?1:0}else{if(dq===dm){return b7(dk,dj)}}}dr=dk;while((dr=dr.parentNode)){dl.unshift(dr)}dr=dj;while((dr=dr.parentNode)){dp.unshift(dr)}while(dl[dn]===dp[dn]){dn++}return dn?b7(dl[dn],dp[dn]):dl[dn]===cJ?-1:dp[dn]===cJ?1:0};cU=false;[0,0].sort(cE);de.detectDuplicates=cU;return cC};cw.matches=function(di,e){return cw(di,null,null,e)};cw.matchesSelector=function(dj,dl){if((dj.ownerDocument||dj)!==cC){cW(dj)}dl=dl.replace(cu,"='$1']");if(de.matchesSelector&&!ce&&(!dc||!dc.test(dl))&&!c0.test(dl)){try{var di=cb.call(dj,dl);if(di||de.disconnectedMatch||dj.document&&dj.document.nodeType!==11){return di}}catch(dk){}}return cw(dl,cC,null,[dj]).length>0};cw.contains=function(e,di){if((e.ownerDocument||e)!==cC){cW(e)}return cG(e,di)};cw.attr=function(di,e){var dj;if((di.ownerDocument||di)!==cC){cW(di)}if(!ce){e=e.toLowerCase()}if((dj=co.attrHandle[e])){return dj(di)}if(ce||de.attributes){return di.getAttribute(e)}return((dj=di.getAttributeNode(e))||di.getAttribute(e))&&di[e]===true?e:dj&&dj.specified?dj.value:null};cw.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};cw.uniqueSort=function(dj){var dk,dl=[],di=1,e=0;cU=!de.detectDuplicates;dj.sort(cE);if(cU){for(;(dk=dj[di]);di++){if(dk===dj[di-1]){e=dl.push(di)}}while(e--){dj.splice(dl[e],1)}}return dj};function b7(di,e){var dk=e&&di,dj=dk&&(~e.sourceIndex||cO)-(~di.sourceIndex||cO);if(dj){return dj}if(dk){while((dk=dk.nextSibling)){if(dk===e){return -1}}}return di?1:-1}function cx(e){return function(dj){var di=dj.nodeName.toLowerCase();return di==="input"&&dj.type===e}}function b8(e){return function(dj){var di=dj.nodeName.toLowerCase();return(di==="input"||di==="button")&&dj.type===e}}function c4(e){return ck(function(di){di=+di;return ck(function(dj,dn){var dl,dk=e([],dj.length,di),dm=dk.length;while(dm--){if(dj[(dl=dk[dm])]){dj[dl]=!(dn[dl]=dj[dl])}}})})}cI=cw.getText=function(dl){var dk,di="",dj=0,e=dl.nodeType;if(!e){for(;(dk=dl[dj]);dj++){di+=cI(dk)}}else{if(e===1||e===9||e===11){if(typeof dl.textContent==="string"){return dl.textContent}else{for(dl=dl.firstChild;dl;dl=dl.nextSibling){di+=cI(dl)}}}else{if(e===3||e===4){return dl.nodeValue}}}return di};co=cw.selectors={cacheLength:50,createPseudo:ck,match:cZ,find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){e[1]=e[1].replace(ct,c2);e[3]=(e[4]||e[5]||"").replace(ct,c2);if(e[2]==="~="){e[3]=" "+e[3]+" "}return e.slice(0,4)},CHILD:function(e){e[1]=e[1].toLowerCase();if(e[1].slice(0,3)==="nth"){if(!e[3]){cw.error(e[0])}e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd"));e[5]=+((e[7]+e[8])||e[3]==="odd")}else{if(e[3]){cw.error(e[0])}}return e},PSEUDO:function(di){var e,dj=!di[5]&&di[2];if(cZ.CHILD.test(di[0])){return null}if(di[4]){di[2]=di[4]}else{if(dj&&cQ.test(dj)&&(e=cg(dj,true))&&(e=dj.indexOf(")",dj.length-e)-dj.length)){di[0]=di[0].slice(0,e);di[2]=dj.slice(0,e)}}return di.slice(0,3)}},filter:{TAG:function(e){if(e==="*"){return function(){return true}}e=e.replace(ct,c2).toLowerCase();return function(di){return di.nodeName&&di.nodeName.toLowerCase()===e}},CLASS:function(e){var di=b6[e+" "];return di||(di=new RegExp("(^|"+cq+")"+e+"("+cq+"|$)"))&&b6(e,function(dj){return di.test(dj.className||(typeof dj.getAttribute!==da&&dj.getAttribute("class"))||"")})},ATTR:function(dj,di,e){return function(dl){var dk=cw.attr(dl,dj);if(dk==null){return di==="!="}if(!di){return true}dk+="";return di==="="?dk===e:di==="!="?dk!==e:di==="^="?e&&dk.indexOf(e)===0:di==="*="?e&&dk.indexOf(e)>-1:di==="$="?e&&dk.slice(-e.length)===e:di==="~="?(" "+dk+" ").indexOf(e)>-1:di==="|="?dk===e||dk.slice(0,e.length+1)===e+"-":false}},CHILD:function(di,dl,dk,dm,dj){var dp=di.slice(0,3)!=="nth",e=di.slice(-4)!=="last",dn=dl==="of-type";return dm===1&&dj===0?function(dq){return !!dq.parentNode}:function(dw,du,dz){var dq,dC,dx,dB,dy,dt,dv=dp!==e?"nextSibling":"previousSibling",dA=dw.parentNode,ds=dn&&dw.nodeName.toLowerCase(),dr=!dz&&!dn;if(dA){if(dp){while(dv){dx=dw;while((dx=dx[dv])){if(dn?dx.nodeName.toLowerCase()===ds:dx.nodeType===1){return false}}dt=dv=di==="only"&&!dt&&"nextSibling"}return true}dt=[e?dA.firstChild:dA.lastChild];if(e&&dr){dC=dA[c6]||(dA[c6]={});dq=dC[di]||[];dy=dq[0]===df&&dq[1];dB=dq[0]===df&&dq[2];dx=dy&&dA.childNodes[dy];while((dx=++dy&&dx&&dx[dv]||(dB=dy=0)||dt.pop())){if(dx.nodeType===1&&++dB&&dx===dw){dC[di]=[df,dy,dB];break}}}else{if(dr&&(dq=(dw[c6]||(dw[c6]={}))[di])&&dq[0]===df){dB=dq[1]}else{while((dx=++dy&&dx&&dx[dv]||(dB=dy=0)||dt.pop())){if((dn?dx.nodeName.toLowerCase()===ds:dx.nodeType===1)&&++dB){if(dr){(dx[c6]||(dx[c6]={}))[di]=[df,dB]}if(dx===dw){break}}}}}dB-=dj;return dB===dm||(dB%dm===0&&dB/dm>=0)}}},PSEUDO:function(dk,dj){var e,di=co.pseudos[dk]||co.setFilters[dk.toLowerCase()]||cw.error("unsupported pseudo: "+dk);if(di[c6]){return di(dj)}if(di.length>1){e=[dk,dk,"",dj];return co.setFilters.hasOwnProperty(dk.toLowerCase())?ck(function(dn,dq){var dm,dl=di(dn,dj),dp=dl.length;while(dp--){dm=ca.call(dn,dl[dp]);dn[dm]=!(dq[dm]=dl[dp])}}):function(dl){return di(dl,0,e)}}return di}},pseudos:{not:ck(function(e){var di=[],dj=[],dk=cT(e.replace(cs,"$1"));return dk[c6]?ck(function(dm,ds,dq,dn){var dr,dl=dk(dm,null,dn,[]),dp=dm.length;while(dp--){if((dr=dl[dp])){dm[dp]=!(ds[dp]=dr)}}}):function(dn,dm,dl){di[0]=dn;dk(di,null,dl,dj);return !dj.pop()}}),has:ck(function(e){return function(di){return cw(e,di).length>0}}),contains:ck(function(e){return function(di){return(di.textContent||di.innerText||cI(di)).indexOf(e)>-1}}),lang:ck(function(e){if(!cR.test(e||"")){cw.error("unsupported lang: "+e)}e=e.replace(ct,c2).toLowerCase();return function(dj){var di;do{if((di=ce?dj.getAttribute("xml:lang")||dj.getAttribute("lang"):dj.lang)){di=di.toLowerCase();return di===e||di.indexOf(e+"-")===0}}while((dj=dj.parentNode)&&dj.nodeType===1);return false}}),target:function(e){var di=db.location&&db.location.hash;return di&&di.slice(1)===e.id},root:function(e){return e===cp},focus:function(e){return e===cC.activeElement&&(!cC.hasFocus||cC.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===false},disabled:function(e){return e.disabled===true},checked:function(e){var di=e.nodeName.toLowerCase();return(di==="input"&&!!e.checked)||(di==="option"&&!!e.selected)},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling){if(e.nodeName>"@"||e.nodeType===3||e.nodeType===4){return false}}return true},parent:function(e){return !co.pseudos.empty(e)},header:function(e){return cm.test(e.nodeName)},input:function(e){return b9.test(e.nodeName)},button:function(di){var e=di.nodeName.toLowerCase();return e==="input"&&di.type==="button"||e==="button"},text:function(di){var e;return di.nodeName.toLowerCase()==="input"&&di.type==="text"&&((e=di.getAttribute("type"))==null||e.toLowerCase()===di.type)},first:c4(function(){return[0]}),last:c4(function(e,di){return[di-1]}),eq:c4(function(e,dj,di){return[di<0?di+dj:di]}),even:c4(function(e,dj){var di=0;for(;di<dj;di+=2){e.push(di)}return e}),odd:c4(function(e,dj){var di=1;for(;di<dj;di+=2){e.push(di)}return e}),lt:c4(function(e,dk,dj){var di=dj<0?dj+dk:dj;for(;--di>=0;){e.push(di)}return e}),gt:c4(function(e,dk,dj){var di=dj<0?dj+dk:dj;for(;++di<dk;){e.push(di)}return e})}};for(cy in {radio:true,checkbox:true,file:true,password:true,image:true}){co.pseudos[cy]=cx(cy)}for(cy in {submit:true,reset:true}){co.pseudos[cy]=b8(cy)}function cg(dl,dr){var di,dm,dp,dq,dn,dj,e,dk=c5[dl+" "];if(dk){return dr?0:dk.slice(0)}dn=dl;dj=[];e=co.preFilter;while(dn){if(!di||(dm=cv.exec(dn))){if(dm){dn=dn.slice(dm[0].length)||dn}dj.push(dp=[])}di=false;if((dm=cB.exec(dn))){di=dm.shift();dp.push({value:di,type:dm[0].replace(cs," ")});dn=dn.slice(di.length)}for(dq in co.filter){if((dm=cZ[dq].exec(dn))&&(!e[dq]||(dm=e[dq](dm)))){di=dm.shift();dp.push({value:di,type:dq,matches:dm});dn=dn.slice(di.length)}}if(!di){break}}return dr?dn.length:dn?cw.error(dl):c5(dl,dj).slice(0)}function ch(dk){var dj=0,di=dk.length,e="";for(;dj<di;dj++){e+=dk[dj].value}return e}function cr(dl,dj,dk){var e=dj.dir,dm=dk&&e==="parentNode",di=c1++;return dj.first?function(dq,dp,dn){while((dq=dq[e])){if(dq.nodeType===1||dm){return dl(dq,dp,dn)}}}:function(ds,dq,dp){var du,dn,dr,dt=df+" "+di;if(dp){while((ds=ds[e])){if(ds.nodeType===1||dm){if(dl(ds,dq,dp)){return true}}}}else{while((ds=ds[e])){if(ds.nodeType===1||dm){dr=ds[c6]||(ds[c6]={});if((dn=dr[e])&&dn[0]===dt){if((du=dn[1])===true||du===cc){return du===true}}else{dn=dr[e]=[dt];dn[1]=dl(ds,dq,dp)||cc;if(dn[1]===true){return true}}}}}}}function dg(e){return e.length>1?function(dl,dk,di){var dj=e.length;while(dj--){if(!e[dj](dl,dk,di)){return false}}return true}:e[0]}function cY(e,di,dj,dk,dn){var dl,dr=[],dm=0,dp=e.length,dq=di!=null;for(;dm<dp;dm++){if((dl=e[dm])){if(!dj||dj(dl,dk,dn)){dr.push(dl);if(dq){di.push(dm)}}}}return dr}function cf(dj,di,dl,dk,dm,e){if(dk&&!dk[c6]){dk=cf(dk)}if(dm&&!dm[c6]){dm=cf(dm,e)}return ck(function(dy,dv,dq,dx){var dA,dw,ds,dr=[],dz=[],dp=dv.length,dn=dy||cz(di||"*",dq.nodeType?[dq]:dq,[]),dt=dj&&(dy||!di)?cY(dn,dr,dj,dq,dx):dn,du=dl?dm||(dy?dj:dp||dk)?[]:dv:dt;if(dl){dl(dt,du,dq,dx)}if(dk){dA=cY(du,dz);dk(dA,[],dq,dx);dw=dA.length;while(dw--){if((ds=dA[dw])){du[dz[dw]]=!(dt[dz[dw]]=ds)}}}if(dy){if(dm||dj){if(dm){dA=[];dw=du.length;while(dw--){if((ds=du[dw])){dA.push((dt[dw]=ds))}}dm(null,(du=[]),dA,dx)}dw=du.length;while(dw--){if((ds=du[dw])&&(dA=dm?ca.call(dy,ds):dr[dw])>-1){dy[dA]=!(dv[dA]=ds)}}}}else{du=cY(du===dv?du.splice(dp,du.length):du);if(dm){dm(null,dv,du,dx)}else{b5.apply(dv,du)}}})}function c7(dn){var di,dl,dj,dm=dn.length,dr=co.relative[dn[0].type],ds=dr||co.relative[" "],dk=dr?1:0,dp=cr(function(dt){return dt===di},ds,true),dq=cr(function(dt){return ca.call(di,dt)>-1},ds,true),e=[function(dv,du,dt){return(!dr&&(dt||du!==dh))||((di=du).nodeType?dp(dv,du,dt):dq(dv,du,dt))}];for(;dk<dm;dk++){if((dl=co.relative[dn[dk].type])){e=[cr(dg(e),dl)]}else{dl=co.filter[dn[dk].type].apply(null,dn[dk].matches);if(dl[c6]){dj=++dk;for(;dj<dm;dj++){if(co.relative[dn[dj].type]){break}}return cf(dk>1&&dg(e),dk>1&&ch(dn.slice(0,dk-1)).replace(cs,"$1"),dl,dk<dj&&c7(dn.slice(dk,dj)),dj<dm&&c7((dn=dn.slice(dj))),dj<dm&&ch(dn))}e.push(dl)}}return dg(e)}function cV(dk,dj){var dm=0,e=dj.length>0,dl=dk.length>0,di=function(dx,dr,dw,dv,dD){var ds,dt,dy,dC=[],dB=0,du="0",dn=dx&&[],dz=dD!=null,dA=dh,dq=dx||dl&&co.find.TAG("*",dD&&dr.parentNode||dr),dp=(df+=dA==null?1:Math.random()||0.1);if(dz){dh=dr!==cC&&dr;cc=dm}for(;(ds=dq[du])!=null;du++){if(dl&&ds){dt=0;while((dy=dk[dt++])){if(dy(ds,dr,dw)){dv.push(ds);break}}if(dz){df=dp;cc=++dm}}if(e){if((ds=!dy&&ds)){dB--}if(dx){dn.push(ds)}}}dB+=du;if(e&&du!==dB){dt=0;while((dy=dj[dt++])){dy(dn,dC,dr,dw)}if(dx){if(dB>0){while(du--){if(!(dn[du]||dC[du])){dC[du]=c9.call(dv)}}}dC=cY(dC)}b5.apply(dv,dC);if(dz&&!dx&&dC.length>0&&(dB+dj.length)>1){cw.uniqueSort(dv)}}if(dz){df=dp;dh=dA}return dn};return e?ck(di):di}cT=cw.compile=function(e,dm){var dj,di=[],dl=[],dk=cH[e+" "];if(!dk){if(!dm){dm=cg(e)}dj=dm.length;while(dj--){dk=c7(dm[dj]);if(dk[c6]){di.push(dk)}else{dl.push(dk)}}dk=cH(e,cV(dl,di))}return dk};function cz(di,dl,dk){var dj=0,e=dl.length;for(;dj<e;dj++){cw(di,dl[dj],dk)}return dk}function dd(dj,e,dk,dn){var dl,dq,di,dr,dp,dm=cg(dj);if(!dn){if(dm.length===1){dq=dm[0]=dm[0].slice(0);if(dq.length>2&&(di=dq[0]).type==="ID"&&e.nodeType===9&&!ce&&co.relative[dq[1].type]){e=co.find.ID(di.matches[0].replace(ct,c2),e)[0];if(!e){return dk}dj=dj.slice(dq.shift().value.length)}dl=cZ.needsContext.test(dj)?0:dq.length;while(dl--){di=dq[dl];if(co.relative[(dr=di.type)]){break}if((dp=co.find[dr])){if((dn=dp(di.matches[0].replace(ct,c2),cX.test(dq[0].type)&&e.parentNode||e))){dq.splice(dl,1);dj=dn.length&&ch(dq);if(!dj){b5.apply(dk,cn.call(dn,0));return dk}break}}}}}cT(dj,dm)(dn,e,ce,dk,cX.test(dj));return dk}co.pseudos.nth=co.pseudos.eq;function cS(){}co.filters=cS.prototype=co.pseudos;co.setFilters=new cS();cW();cw.attr=bK.attr;bK.find=cw;bK.expr=cw.selectors;bK.expr[":"]=bK.expr.pseudos;bK.unique=cw.uniqueSort;bK.text=cw.getText;bK.isXMLDoc=cw.isXML;bK.contains=cw.contains})(a3);var ak=/Until$/,bu=/^(?:parents|prev(?:Until|All))/,ao=/^.[^:#\[\.,]*$/,z=bK.expr.match.needsContext,by={children:true,contents:true,next:true,prev:true};bK.fn.extend({find:function(b4){var b7,b6,b5,e=this.length;if(typeof b4!=="string"){b5=this;return this.pushStack(bK(b4).filter(function(){for(b7=0;b7<e;b7++){if(bK.contains(b5[b7],this)){return true}}}))}b6=[];for(b7=0;b7<e;b7++){bK.find(b4,this[b7],b6)}b6=this.pushStack(e>1?bK.unique(b6):b6);b6.selector=(this.selector?this.selector+" ":"")+b4;return b6},has:function(b6){var b5,b4=bK(b6,this),e=b4.length;return this.filter(function(){for(b5=0;b5<e;b5++){if(bK.contains(this,b4[b5])){return true}}})},not:function(e){return this.pushStack(aP(this,e,false))},filter:function(e){return this.pushStack(aP(this,e,true))},is:function(e){return !!e&&(typeof e==="string"?z.test(e)?bK(e,this.context).index(this[0])>=0:bK.filter(e,this).length>0:this.filter(e).length>0)},closest:function(b7,b6){var b8,b5=0,e=this.length,b4=[],b9=z.test(b7)||typeof b7!=="string"?bK(b7,b6||this.context):0;for(;b5<e;b5++){b8=this[b5];while(b8&&b8.ownerDocument&&b8!==b6&&b8.nodeType!==11){if(b9?b9.index(b8)>-1:bK.find.matchesSelector(b8,b7)){b4.push(b8);break}b8=b8.parentNode}}return this.pushStack(b4.length>1?bK.unique(b4):b4)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1}if(typeof e==="string"){return bK.inArray(this[0],bK(e))}return bK.inArray(e.jquery?e[0]:e,this)},add:function(e,b4){var b6=typeof e==="string"?bK(e,b4):bK.makeArray(e&&e.nodeType?[e]:e),b5=bK.merge(this.get(),b6);return this.pushStack(bK.unique(b5))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});bK.fn.andSelf=bK.fn.addBack;function aY(b4,e){do{b4=b4[e]}while(b4&&b4.nodeType!==1);return b4}bK.each({parent:function(b4){var e=b4.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return bK.dir(e,"parentNode")},parentsUntil:function(b4,e,b5){return bK.dir(b4,"parentNode",b5)},next:function(e){return aY(e,"nextSibling")},prev:function(e){return aY(e,"previousSibling")},nextAll:function(e){return bK.dir(e,"nextSibling")},prevAll:function(e){return bK.dir(e,"previousSibling")},nextUntil:function(b4,e,b5){return bK.dir(b4,"nextSibling",b5)},prevUntil:function(b4,e,b5){return bK.dir(b4,"previousSibling",b5)},siblings:function(e){return bK.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return bK.sibling(e.firstChild)},contents:function(e){return bK.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:bK.merge([],e.childNodes)}},function(e,b4){bK.fn[e]=function(b7,b5){var b6=bK.map(this,b4,b7);if(!ak.test(e)){b5=b7}if(b5&&typeof b5==="string"){b6=bK.filter(b5,b6)}b6=this.length>1&&!by[e]?bK.unique(b6):b6;if(this.length>1&&bu.test(e)){b6=b6.reverse()}return this.pushStack(b6)}});bK.extend({filter:function(b5,e,b4){if(b4){b5=":not("+b5+")"}return e.length===1?bK.find.matchesSelector(e[0],b5)?[e[0]]:[]:bK.find.matches(b5,e)},dir:function(b5,b4,b7){var e=[],b6=b5[b4];while(b6&&b6.nodeType!==9&&(b7===aH||b6.nodeType!==1||!bK(b6).is(b7))){if(b6.nodeType===1){e.push(b6)}b6=b6[b4]}return e},sibling:function(b5,b4){var e=[];for(;b5;b5=b5.nextSibling){if(b5.nodeType===1&&b5!==b4){e.push(b5)}}return e}});function aP(b6,b5,e){b5=b5||0;if(bK.isFunction(b5)){return bK.grep(b6,function(b8,b7){var b9=!!b5.call(b8,b7,b8);return b9===e})}else{if(b5.nodeType){return bK.grep(b6,function(b7){return(b7===b5)===e})}else{if(typeof b5==="string"){var b4=bK.grep(b6,function(b7){return b7.nodeType===1});if(ao.test(b5)){return bK.filter(b5,b4,!e)}else{b5=bK.filter(b5,b4)}}}}return bK.grep(b6,function(b7){return(bK.inArray(b7,b5)>=0)===e})}function B(e){var b5=d.split("|"),b4=e.createDocumentFragment();if(b4.createElement){while(b5.length){b4.createElement(b5.pop())}}return b4}var d="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",aB=/ jQuery\d+="(?:null|\d+)"/g,K=new RegExp("<(?:"+d+")[\\s/>]","i"),b3=/^\s+/,aE=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,m=/<([\w:]+)/,bY=/<tbody/i,J=/<|&#?\w+;/,am=/<(?:script|style|link)/i,r=/^(?:checkbox|radio)$/i,bV=/checked\s*(?:[^=]|=\s*.checked.)/i,bA=/^$|\/(?:java|ecma)script/i,at=/^true\/(.*)/,aL=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,U={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:bK.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},aT=B(l),j=aT.appendChild(l.createElement("div"));U.optgroup=U.option;U.tbody=U.tfoot=U.colgroup=U.caption=U.thead;U.th=U.td;bK.fn.extend({text:function(e){return bK.access(this,function(b4){return b4===aH?bK.text(this):this.empty().append((this[0]&&this[0].ownerDocument||l).createTextNode(b4))},null,e,arguments.length)},wrapAll:function(e){if(bK.isFunction(e)){return this.each(function(b5){bK(this).wrapAll(e.call(this,b5))})}if(this[0]){var b4=bK(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){b4.insertBefore(this[0])}b4.map(function(){var b5=this;while(b5.firstChild&&b5.firstChild.nodeType===1){b5=b5.firstChild}return b5}).append(this)}return this},wrapInner:function(e){if(bK.isFunction(e)){return this.each(function(b4){bK(this).wrapInner(e.call(this,b4))})}return this.each(function(){var b4=bK(this),b5=b4.contents();if(b5.length){b5.wrapAll(e)}else{b4.append(e)}})},wrap:function(e){var b4=bK.isFunction(e);return this.each(function(b5){bK(this).wrapAll(b4?e.call(this,b5):e)})},unwrap:function(){return this.parent().each(function(){if(!bK.nodeName(this,"body")){bK(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.insertBefore(e,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this)}})},after:function(){return this.domManip(arguments,false,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this.nextSibling)}})},remove:function(e,b6){var b5,b4=0;for(;(b5=this[b4])!=null;b4++){if(!e||bK.filter(e,[b5]).length>0){if(!b6&&b5.nodeType===1){bK.cleanData(k(b5))}if(b5.parentNode){if(b6&&bK.contains(b5.ownerDocument,b5)){bt(k(b5,"script"))}b5.parentNode.removeChild(b5)}}}return this},empty:function(){var b4,e=0;for(;(b4=this[e])!=null;e++){if(b4.nodeType===1){bK.cleanData(k(b4,false))}while(b4.firstChild){b4.removeChild(b4.firstChild)}if(b4.options&&bK.nodeName(b4,"select")){b4.options.length=0}}return this},clone:function(b4,e){b4=b4==null?false:b4;e=e==null?b4:e;return this.map(function(){return bK.clone(this,b4,e)})},html:function(e){return bK.access(this,function(b7){var b6=this[0]||{},b5=0,b4=this.length;if(b7===aH){return b6.nodeType===1?b6.innerHTML.replace(aB,""):aH}if(typeof b7==="string"&&!am.test(b7)&&(bK.support.htmlSerialize||!K.test(b7))&&(bK.support.leadingWhitespace||!b3.test(b7))&&!U[(m.exec(b7)||["",""])[1].toLowerCase()]){b7=b7.replace(aE,"<$1></$2>");try{for(;b5<b4;b5++){b6=this[b5]||{};if(b6.nodeType===1){bK.cleanData(k(b6,false));b6.innerHTML=b7}}b6=0}catch(b8){}}if(b6){this.empty().append(b7)}},null,e,arguments.length)},replaceWith:function(b4){var e=bK.isFunction(b4);if(!e&&typeof b4!=="string"){b4=bK(b4).not(this).detach()}return this.domManip([b4],true,function(b7){var b6=this.nextSibling,b5=this.parentNode;if(b5){bK(this).remove();b5.insertBefore(b7,b6)}})},detach:function(e){return this.remove(e,true)},domManip:function(cb,ch,cg){cb=aJ.apply([],cb);var b9,b5,e,b7,ce,ca,b8=0,b6=this.length,cd=this,cf=b6-1,cc=cb[0],b4=bK.isFunction(cc);if(b4||!(b6<=1||typeof cc!=="string"||bK.support.checkClone||!bV.test(cc))){return this.each(function(cj){var ci=cd.eq(cj);if(b4){cb[0]=cc.call(this,cj,ch?ci.html():aH)}ci.domManip(cb,ch,cg)})}if(b6){ca=bK.buildFragment(cb,this[0].ownerDocument,false,this);b9=ca.firstChild;if(ca.childNodes.length===1){ca=b9}if(b9){ch=ch&&bK.nodeName(b9,"tr");b7=bK.map(k(ca,"script"),u);e=b7.length;for(;b8<b6;b8++){b5=ca;if(b8!==cf){b5=bK.clone(b5,true,true);if(e){bK.merge(b7,k(b5,"script"))}}cg.call(ch&&bK.nodeName(this[b8],"table")?y(this[b8],"tbody"):this[b8],b5,b8)}if(e){ce=b7[b7.length-1].ownerDocument;bK.map(b7,bd);for(b8=0;b8<e;b8++){b5=b7[b8];if(bA.test(b5.type||"")&&!bK._data(b5,"globalEval")&&bK.contains(ce,b5)){if(b5.src){bK.ajax({url:b5.src,type:"GET",dataType:"script",async:false,global:false,"throws":true})}else{bK.globalEval((b5.text||b5.textContent||b5.innerHTML||"").replace(aL,""))}}}}ca=b9=null}}return this}});function y(b4,e){return b4.getElementsByTagName(e)[0]||b4.appendChild(b4.ownerDocument.createElement(e))}function u(b4){var e=b4.getAttributeNode("type");b4.type=(e&&e.specified)+"/"+b4.type;return b4}function bd(b4){var e=at.exec(b4.type);if(e){b4.type=e[1]}else{b4.removeAttribute("type")}return b4}function bt(e,b5){var b6,b4=0;for(;(b6=e[b4])!=null;b4++){bK._data(b6,"globalEval",!b5||bK._data(b5[b4],"globalEval"))}}function au(ca,b4){if(b4.nodeType!==1||!bK.hasData(ca)){return}var b7,b6,e,b9=bK._data(ca),b8=bK._data(b4,b9),b5=b9.events;if(b5){delete b8.handle;b8.events={};for(b7 in b5){for(b6=0,e=b5[b7].length;b6<e;b6++){bK.event.add(b4,b7,b5[b7][b6])}}}if(b8.data){b8.data=bK.extend({},b8.data)}}function R(b7,b4){var b8,b6,b5;if(b4.nodeType!==1){return}b8=b4.nodeName.toLowerCase();if(!bK.support.noCloneEvent&&b4[bK.expando]){b5=bK._data(b4);for(b6 in b5.events){bK.removeEvent(b4,b6,b5.handle)}b4.removeAttribute(bK.expando)}if(b8==="script"&&b4.text!==b7.text){u(b4).text=b7.text;bd(b4)}else{if(b8==="object"){if(b4.parentNode){b4.outerHTML=b7.outerHTML}if(bK.support.html5Clone&&(b7.innerHTML&&!bK.trim(b4.innerHTML))){b4.innerHTML=b7.innerHTML}}else{if(b8==="input"&&r.test(b7.type)){b4.defaultChecked=b4.checked=b7.checked;if(b4.value!==b7.value){b4.value=b7.value}}else{if(b8==="option"){b4.defaultSelected=b4.selected=b7.defaultSelected}else{if(b8==="input"||b8==="textarea"){b4.defaultValue=b7.defaultValue}}}}}}bK.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,b4){bK.fn[e]=function(b5){var b6,b8=0,b7=[],ca=bK(b5),b9=ca.length-1;for(;b8<=b9;b8++){b6=b8===b9?this:this.clone(true);bK(ca[b8])[b4](b6);ap.apply(b7,b6.get())}return this.pushStack(b7)}});function k(b6,e){var b4,b7,b5=0,b8=typeof b6.getElementsByTagName!==aD?b6.getElementsByTagName(e||"*"):typeof b6.querySelectorAll!==aD?b6.querySelectorAll(e||"*"):aH;if(!b8){for(b8=[],b4=b6.childNodes||b6;(b7=b4[b5])!=null;b5++){if(!e||bK.nodeName(b7,e)){b8.push(b7)}else{bK.merge(b8,k(b7,e))}}}return e===aH||e&&bK.nodeName(b6,e)?bK.merge([b6],b8):b8}function bW(e){if(r.test(e.type)){e.defaultChecked=e.checked}}bK.extend({clone:function(b4,b6,e){var b8,b5,cb,b7,b9,ca=bK.contains(b4.ownerDocument,b4);if(bK.support.html5Clone||bK.isXMLDoc(b4)||!K.test("<"+b4.nodeName+">")){cb=b4.cloneNode(true)}else{j.innerHTML=b4.outerHTML;j.removeChild(cb=j.firstChild)}if((!bK.support.noCloneEvent||!bK.support.noCloneChecked)&&(b4.nodeType===1||b4.nodeType===11)&&!bK.isXMLDoc(b4)){b8=k(cb);b9=k(b4);for(b7=0;(b5=b9[b7])!=null;++b7){if(b8[b7]){R(b5,b8[b7])}}}if(b6){if(e){b9=b9||k(b4);b8=b8||k(cb);for(b7=0;(b5=b9[b7])!=null;b7++){au(b5,b8[b7])}}else{au(b4,cb)}}b8=k(cb,"script");if(b8.length>0){bt(b8,!ca&&k(b4,"script"))}b8=b9=b5=null;return cb},buildFragment:function(b4,b6,cb,cg){var cc,b8,ca,cf,ch,ce,b5,b9=b4.length,b7=B(b6),e=[],cd=0;for(;cd<b9;cd++){b8=b4[cd];if(b8||b8===0){if(bK.type(b8)==="object"){bK.merge(e,b8.nodeType?[b8]:b8)}else{if(!J.test(b8)){e.push(b6.createTextNode(b8))}else{cf=cf||b7.appendChild(b6.createElement("div"));ch=(m.exec(b8)||["",""])[1].toLowerCase();b5=U[ch]||U._default;cf.innerHTML=b5[1]+b8.replace(aE,"<$1></$2>")+b5[2];cc=b5[0];while(cc--){cf=cf.lastChild}if(!bK.support.leadingWhitespace&&b3.test(b8)){e.push(b6.createTextNode(b3.exec(b8)[0]))}if(!bK.support.tbody){b8=ch==="table"&&!bY.test(b8)?cf.firstChild:b5[1]==="<table>"&&!bY.test(b8)?cf:0;cc=b8&&b8.childNodes.length;while(cc--){if(bK.nodeName((ce=b8.childNodes[cc]),"tbody")&&!ce.childNodes.length){b8.removeChild(ce)}}}bK.merge(e,cf.childNodes);cf.textContent="";while(cf.firstChild){cf.removeChild(cf.firstChild)}cf=b7.lastChild}}}}if(cf){b7.removeChild(cf)}if(!bK.support.appendChecked){bK.grep(k(e,"input"),bW)}cd=0;while((b8=e[cd++])){if(cg&&bK.inArray(b8,cg)!==-1){continue}ca=bK.contains(b8.ownerDocument,b8);cf=k(b7.appendChild(b8),"script");if(ca){bt(cf)}if(cb){cc=0;while((b8=cf[cc++])){if(bA.test(b8.type||"")){cb.push(b8)}}}}cf=null;return b7},cleanData:function(b4,cc){var b6,cb,b5,b7,b8=0,cd=bK.expando,e=bK.cache,b9=bK.support.deleteExpando,ca=bK.event.special;for(;(b6=b4[b8])!=null;b8++){if(cc||bK.acceptData(b6)){b5=b6[cd];b7=b5&&e[b5];if(b7){if(b7.events){for(cb in b7.events){if(ca[cb]){bK.event.remove(b6,cb)}else{bK.removeEvent(b6,cb,b7.handle)}}}if(e[b5]){delete e[b5];if(b9){delete b6[cd]}else{if(typeof b6.removeAttribute!==aD){b6.removeAttribute(cd)}else{b6[cd]=null}}a7.push(b5)}}}}}});var aF,bp,F,bh=/alpha\([^)]*\)/i,aU=/opacity\s*=\s*([^)]*)/,bo=/^(top|right|bottom|left)$/,G=/^(none|table(?!-c[ea]).+)/,aZ=/^margin/,ba=new RegExp("^("+bB+")(.*)$","i"),X=new RegExp("^("+bB+")(?!px)[a-z%]+$","i"),T=new RegExp("^([+-])=("+bB+")","i"),bk={BODY:"block"},bc={position:"absolute",visibility:"hidden",display:"block"},bD={letterSpacing:0,fontWeight:400},bU=["Top","Right","Bottom","Left"],aw=["Webkit","O","Moz","ms"];function b(b6,b4){if(b4 in b6){return b4}var b7=b4.charAt(0).toUpperCase()+b4.slice(1),e=b4,b5=aw.length;while(b5--){b4=aw[b5]+b7;if(b4 in b6){return b4}}return e}function Q(b4,e){b4=e||b4;return bK.css(b4,"display")==="none"||!bK.contains(b4.ownerDocument,b4)}function p(b9,e){var ca,b7,b8,b4=[],b5=0,b6=b9.length;for(;b5<b6;b5++){b7=b9[b5];if(!b7.style){continue}b4[b5]=bK._data(b7,"olddisplay");ca=b7.style.display;if(e){if(!b4[b5]&&ca==="none"){b7.style.display=""}if(b7.style.display===""&&Q(b7)){b4[b5]=bK._data(b7,"olddisplay",bF(b7.nodeName))}}else{if(!b4[b5]){b8=Q(b7);if(ca&&ca!=="none"||!b8){bK._data(b7,"olddisplay",b8?ca:bK.css(b7,"display"))}}}}for(b5=0;b5<b6;b5++){b7=b9[b5];if(!b7.style){continue}if(!e||b7.style.display==="none"||b7.style.display===""){b7.style.display=e?b4[b5]||"":"none"}}return b9}bK.fn.extend({css:function(e,b4){return bK.access(this,function(b9,b6,ca){var b5,b8,cb={},b7=0;if(bK.isArray(b6)){b8=bp(b9);b5=b6.length;for(;b7<b5;b7++){cb[b6[b7]]=bK.css(b9,b6[b7],false,b8)}return cb}return ca!==aH?bK.style(b9,b6,ca):bK.css(b9,b6)},e,b4,arguments.length>1)},show:function(){return p(this,true)},hide:function(){return p(this)},toggle:function(b4){var e=typeof b4==="boolean";return this.each(function(){if(e?b4:Q(this)){bK(this).show()}else{bK(this).hide()}})}});bK.extend({cssHooks:{opacity:{get:function(b5,b4){if(b4){var e=F(b5,"opacity");return e===""?"1":e}}}},cssNumber:{columnCount:true,fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":bK.support.cssFloat?"cssFloat":"styleFloat"},style:function(b6,b5,cc,b7){if(!b6||b6.nodeType===3||b6.nodeType===8||!b6.style){return}var ca,cb,cd,b8=bK.camelCase(b5),b4=b6.style;b5=bK.cssProps[b8]||(bK.cssProps[b8]=b(b4,b8));cd=bK.cssHooks[b5]||bK.cssHooks[b8];if(cc!==aH){cb=typeof cc;if(cb==="string"&&(ca=T.exec(cc))){cc=(ca[1]+1)*ca[2]+parseFloat(bK.css(b6,b5));cb="number"}if(cc==null||cb==="number"&&isNaN(cc)){return}if(cb==="number"&&!bK.cssNumber[b8]){cc+="px"}if(!bK.support.clearCloneStyle&&cc===""&&b5.indexOf("background")===0){b4[b5]="inherit"}if(!cd||!("set" in cd)||(cc=cd.set(b6,cc,b7))!==aH){try{b4[b5]=cc}catch(b9){}}}else{if(cd&&"get" in cd&&(ca=cd.get(b6,false,b7))!==aH){return ca}return b4[b5]}},css:function(b9,b7,b4,b8){var b6,ca,e,b5=bK.camelCase(b7);b7=bK.cssProps[b5]||(bK.cssProps[b5]=b(b9.style,b5));e=bK.cssHooks[b7]||bK.cssHooks[b5];if(e&&"get" in e){ca=e.get(b9,true,b4)}if(ca===aH){ca=F(b9,b7,b8)}if(ca==="normal"&&b7 in bD){ca=bD[b7]}if(b4===""||b4){b6=parseFloat(ca);return b4===true||bK.isNumeric(b6)?b6||0:ca}return ca},swap:function(b8,b7,b9,b6){var b5,b4,e={};for(b4 in b7){e[b4]=b8.style[b4];b8.style[b4]=b7[b4]}b5=b9.apply(b8,b6||[]);for(b4 in b7){b8.style[b4]=e[b4]}return b5}});if(a3.getComputedStyle){bp=function(e){return a3.getComputedStyle(e,null)};F=function(b7,b5,b9){var b6,b4,cb,b8=b9||bp(b7),ca=b8?b8.getPropertyValue(b5)||b8[b5]:aH,e=b7.style;if(b8){if(ca===""&&!bK.contains(b7.ownerDocument,b7)){ca=bK.style(b7,b5)}if(X.test(ca)&&aZ.test(b5)){b6=e.width;b4=e.minWidth;cb=e.maxWidth;e.minWidth=e.maxWidth=e.width=ca;ca=b8.width;e.width=b6;e.minWidth=b4;e.maxWidth=cb}}return ca}}else{if(l.documentElement.currentStyle){bp=function(e){return e.currentStyle};F=function(b6,b4,b9){var b5,b8,ca,b7=b9||bp(b6),cb=b7?b7[b4]:aH,e=b6.style;if(cb==null&&e&&e[b4]){cb=e[b4]}if(X.test(cb)&&!bo.test(b4)){b5=e.left;b8=b6.runtimeStyle;ca=b8&&b8.left;if(ca){b8.left=b6.currentStyle.left}e.left=b4==="fontSize"?"1em":cb;cb=e.pixelLeft+"px";e.left=b5;if(ca){b8.left=ca}}return cb===""?"auto":cb}}}function aK(e,b5,b6){var b4=ba.exec(b5);return b4?Math.max(0,b4[1]-(b6||0))+(b4[2]||"px"):b5}function ax(b7,b4,e,b9,b6){var b5=e===(b9?"border":"content")?4:b4==="width"?1:0,b8=0;for(;b5<4;b5+=2){if(e==="margin"){b8+=bK.css(b7,e+bU[b5],true,b6)}if(b9){if(e==="content"){b8-=bK.css(b7,"padding"+bU[b5],true,b6)}if(e!=="margin"){b8-=bK.css(b7,"border"+bU[b5]+"Width",true,b6)}}else{b8+=bK.css(b7,"padding"+bU[b5],true,b6);if(e!=="padding"){b8+=bK.css(b7,"border"+bU[b5]+"Width",true,b6)}}}return b8}function v(b7,b4,e){var b6=true,b8=b4==="width"?b7.offsetWidth:b7.offsetHeight,b5=bp(b7),b9=bK.support.boxSizing&&bK.css(b7,"boxSizing",false,b5)==="border-box";if(b8<=0||b8==null){b8=F(b7,b4,b5);if(b8<0||b8==null){b8=b7.style[b4]}if(X.test(b8)){return b8}b6=b9&&(bK.support.boxSizingReliable||b8===b7.style[b4]);b8=parseFloat(b8)||0}return(b8+ax(b7,b4,e||(b9?"border":"content"),b6,b5))+"px"}function bF(b5){var b4=l,e=bk[b5];if(!e){e=a2(b5,b4);if(e==="none"||!e){aF=(aF||bK("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(b4.documentElement);b4=(aF[0].contentWindow||aF[0].contentDocument).document;b4.write("<!doctype html><html><body>");b4.close();e=a2(b5,b4);aF.detach()}bk[b5]=e}return e}function a2(e,b6){var b4=bK(b6.createElement(e)).appendTo(b6.body),b5=bK.css(b4[0],"display");b4.remove();return b5}bK.each(["height","width"],function(b4,e){bK.cssHooks[e]={get:function(b7,b6,b5){if(b6){return b7.offsetWidth===0&&G.test(bK.css(b7,"display"))?bK.swap(b7,bc,function(){return v(b7,e,b5)}):v(b7,e,b5)}},set:function(b7,b8,b5){var b6=b5&&bp(b7);return aK(b7,b8,b5?ax(b7,e,b5,bK.support.boxSizing&&bK.css(b7,"boxSizing",false,b6)==="border-box",b6):0)}}});if(!bK.support.opacity){bK.cssHooks.opacity={get:function(b4,e){return aU.test((e&&b4.currentStyle?b4.currentStyle.filter:b4.style.filter)||"")?(0.01*parseFloat(RegExp.$1))+"":e?"1":""},set:function(b7,b8){var b6=b7.style,b4=b7.currentStyle,e=bK.isNumeric(b8)?"alpha(opacity="+b8*100+")":"",b5=b4&&b4.filter||b6.filter||"";b6.zoom=1;if((b8>=1||b8==="")&&bK.trim(b5.replace(bh,""))===""&&b6.removeAttribute){b6.removeAttribute("filter");if(b8===""||b4&&!b4.filter){return}}b6.filter=bh.test(b5)?b5.replace(bh,e):b5+" "+e}}}bK(function(){if(!bK.support.reliableMarginRight){bK.cssHooks.marginRight={get:function(b4,e){if(e){return bK.swap(b4,{display:"inline-block"},F,[b4,"marginRight"])}}}}if(!bK.support.pixelPosition&&bK.fn.position){bK.each(["top","left"],function(e,b4){bK.cssHooks[b4]={get:function(b6,b5){if(b5){b5=F(b6,b4);return X.test(b5)?bK(b6).position()[b4]+"px":b5}}}})}});if(bK.expr&&bK.expr.filters){bK.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||(!bK.support.reliableHiddenOffsets&&((e.style&&e.style.display)||bK.css(e,"display"))==="none")};bK.expr.filters.visible=function(e){return !bK.expr.filters.hidden(e)}}bK.each({margin:"",padding:"",border:"Width"},function(e,b4){bK.cssHooks[e+b4]={expand:function(b7){var b6=0,b5={},b8=typeof b7==="string"?b7.split(" "):[b7];for(;b6<4;b6++){b5[e+bU[b6]+b4]=b8[b6]||b8[b6-2]||b8[0]}return b5}};if(!aZ.test(e)){bK.cssHooks[e+b4].set=aK}});var bw=/%20/g,aS=/\[\]$/,V=/\r?\n/g,c=/^(?:submit|button|image|reset|file)$/i,av=/^(?:input|select|textarea|keygen)/i;bK.fn.extend({serialize:function(){return bK.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=bK.prop(this,"elements");return e?bK.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!bK(this).is(":disabled")&&av.test(this.nodeName)&&!c.test(e)&&(this.checked||!r.test(e))}).map(function(e,b4){var b5=bK(this).val();return b5==null?null:bK.isArray(b5)?bK.map(b5,function(b6){return{name:b4.name,value:b6.replace(V,"\r\n")}}):{name:b4.name,value:b5.replace(V,"\r\n")}}).get()}});bK.param=function(e,b5){var b6,b4=[],b7=function(b8,b9){b9=bK.isFunction(b9)?b9():(b9==null?"":b9);b4[b4.length]=encodeURIComponent(b8)+"="+encodeURIComponent(b9)};if(b5===aH){b5=bK.ajaxSettings&&bK.ajaxSettings.traditional}if(bK.isArray(e)||(e.jquery&&!bK.isPlainObject(e))){bK.each(e,function(){b7(this.name,this.value)})}else{for(b6 in e){i(b6,e[b6],b5,b7)}}return b4.join("&").replace(bw,"+")};function i(b5,b7,b4,b6){var e;if(bK.isArray(b7)){bK.each(b7,function(b9,b8){if(b4||aS.test(b5)){b6(b5,b8)}else{i(b5+"["+(typeof b8==="object"?b9:"")+"]",b8,b4,b6)}})}else{if(!b4&&bK.type(b7)==="object"){for(e in b7){i(b5+"["+e+"]",b7[e],b4,b6)}}else{b6(b5,b7)}}}bK.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(b4,e){bK.fn[e]=function(b6,b5){return arguments.length>0?this.on(e,null,b6,b5):this.trigger(e)}});bK.fn.hover=function(e,b4){return this.mouseenter(e).mouseleave(b4||e)};var b2,Z,bP=bK.now(),aA=/\?/,aq=/#.*$/,P=/([?&])_=[^&]*/,ah=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,C=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,o=/^(?:GET|HEAD)$/,aI=/^\/\//,aV=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,b1=bK.fn.load,w={},a8={},aX="*/".concat("*");try{Z=aM.href}catch(bg){Z=l.createElement("a");Z.href="";Z=Z.href}b2=aV.exec(Z.toLowerCase())||[];function bM(e){return function(b7,b8){if(typeof b7!=="string"){b8=b7;b7="*"}var b4,b5=0,b6=b7.toLowerCase().match(ad)||[];if(bK.isFunction(b8)){while((b4=b6[b5++])){if(b4[0]==="+"){b4=b4.slice(1)||"*";(e[b4]=e[b4]||[]).unshift(b8)}else{(e[b4]=e[b4]||[]).push(b8)}}}}}function n(e,b5,b9,b6){var b4={},b7=(e===a8);function b8(ca){var cb;b4[ca]=true;bK.each(e[ca]||[],function(cd,cc){var ce=cc(b5,b9,b6);if(typeof ce==="string"&&!b7&&!b4[ce]){b5.dataTypes.unshift(ce);b8(ce);return false}else{if(b7){return !(cb=ce)}}});return cb}return b8(b5.dataTypes[0])||!b4["*"]&&b8("*")}function s(b5,b6){var e,b4,b7=bK.ajaxSettings.flatOptions||{};for(b4 in b6){if(b6[b4]!==aH){(b7[b4]?b5:(e||(e={})))[b4]=b6[b4]}}if(e){bK.extend(true,b5,e)}return b5}bK.fn.load=function(b6,b9,ca){if(typeof b6!=="string"&&b1){return b1.apply(this,arguments)}var e,b5,b7,b4=this,b8=b6.indexOf(" ");if(b8>=0){e=b6.slice(b8,b6.length);b6=b6.slice(0,b8)}if(bK.isFunction(b9)){ca=b9;b9=aH}else{if(b9&&typeof b9==="object"){b7="POST"}}if(b4.length>0){bK.ajax({url:b6,type:b7,dataType:"html",data:b9}).done(function(cb){b5=arguments;b4.html(e?bK("<div>").append(bK.parseHTML(cb)).find(e):cb)}).complete(ca&&function(cc,cb){b4.each(ca,b5||[cc.responseText,cb,cc])})}return this};bK.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,b4){bK.fn[b4]=function(b5){return this.on(b4,b5)}});bK.each(["get","post"],function(e,b4){bK[b4]=function(b5,b7,b8,b6){if(bK.isFunction(b7)){b6=b6||b8;b8=b7;b7=aH}return bK.ajax({url:b5,type:b4,dataType:b6,data:b7,success:b8})}});bK.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Z,type:"GET",isLocal:C.test(b2[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":aX,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a3.String,"text html":true,"text json":bK.parseJSON,"text xml":bK.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(b4,e){return e?s(s(b4,bK.ajaxSettings),e):s(bK.ajaxSettings,b4)},ajaxPrefilter:bM(w),ajaxTransport:bM(a8),ajax:function(b8,b5){if(typeof b8==="object"){b5=b8;b8=aH}b5=b5||{};var ch,cj,b9,co,cd,b4,ck,b6,cc=bK.ajaxSetup({},b5),cq=cc.context||cc,cf=cc.context&&(cq.nodeType||cq.jquery)?bK(cq):bK.event,cp=bK.Deferred(),cm=bK.Callbacks("once memory"),ca=cc.statusCode||{},cg={},cn={},b7=0,cb="canceled",ci={readyState:0,getResponseHeader:function(cr){var e;if(b7===2){if(!b6){b6={};while((e=ah.exec(co))){b6[e[1].toLowerCase()]=e[2]}}e=b6[cr.toLowerCase()]}return e==null?null:e},getAllResponseHeaders:function(){return b7===2?co:null},setRequestHeader:function(cr,cs){var e=cr.toLowerCase();if(!b7){cr=cn[e]=cn[e]||cr;cg[cr]=cs}return this},overrideMimeType:function(e){if(!b7){cc.mimeType=e}return this},statusCode:function(cr){var e;if(cr){if(b7<2){for(e in cr){ca[e]=[ca[e],cr[e]]}}else{ci.always(cr[ci.status])}}return this},abort:function(cr){var e=cr||cb;if(ck){ck.abort(e)}ce(0,e);return this}};cp.promise(ci).complete=cm.add;ci.success=ci.done;ci.error=ci.fail;cc.url=((b8||cc.url||Z)+"").replace(aq,"").replace(aI,b2[1]+"//");cc.type=b5.method||b5.type||cc.method||cc.type;cc.dataTypes=bK.trim(cc.dataType||"*").toLowerCase().match(ad)||[""];if(cc.crossDomain==null){ch=aV.exec(cc.url.toLowerCase());cc.crossDomain=!!(ch&&(ch[1]!==b2[1]||ch[2]!==b2[2]||(ch[3]||(ch[1]==="http:"?80:443))!=(b2[3]||(b2[1]==="http:"?80:443))))}if(cc.data&&cc.processData&&typeof cc.data!=="string"){cc.data=bK.param(cc.data,cc.traditional)}n(w,cc,b5,ci);if(b7===2){return ci}b4=cc.global;if(b4&&bK.active++===0){bK.event.trigger("ajaxStart")}cc.type=cc.type.toUpperCase();cc.hasContent=!o.test(cc.type);b9=cc.url;if(!cc.hasContent){if(cc.data){b9=(cc.url+=(aA.test(b9)?"&":"?")+cc.data);delete cc.data}if(cc.cache===false){cc.url=P.test(b9)?b9.replace(P,"$1_="+bP++):b9+(aA.test(b9)?"&":"?")+"_="+bP++}}if(cc.ifModified){if(bK.lastModified[b9]){ci.setRequestHeader("If-Modified-Since",bK.lastModified[b9])}if(bK.etag[b9]){ci.setRequestHeader("If-None-Match",bK.etag[b9])}}if(cc.data&&cc.hasContent&&cc.contentType!==false||b5.contentType){ci.setRequestHeader("Content-Type",cc.contentType)}ci.setRequestHeader("Accept",cc.dataTypes[0]&&cc.accepts[cc.dataTypes[0]]?cc.accepts[cc.dataTypes[0]]+(cc.dataTypes[0]!=="*"?", "+aX+"; q=0.01":""):cc.accepts["*"]);for(cj in cc.headers){ci.setRequestHeader(cj,cc.headers[cj])}if(cc.beforeSend&&(cc.beforeSend.call(cq,ci,cc)===false||b7===2)){return ci.abort()}cb="abort";for(cj in {success:1,error:1,complete:1}){ci[cj](cc[cj])}ck=n(a8,cc,b5,ci);if(!ck){ce(-1,"No Transport")}else{ci.readyState=1;if(b4){cf.trigger("ajaxSend",[ci,cc])}if(cc.async&&cc.timeout>0){cd=setTimeout(function(){ci.abort("timeout")},cc.timeout)}try{b7=1;ck.send(cg,ce)}catch(cl){if(b7<2){ce(-1,cl)}else{throw cl}}}function ce(cv,cr,cw,ct){var e,cz,cx,cu,cy,cs=cr;if(b7===2){return}b7=2;if(cd){clearTimeout(cd)}ck=aH;co=ct||"";ci.readyState=cv>0?4:0;if(cw){cu=g(cc,ci,cw)}if(cv>=200&&cv<300||cv===304){if(cc.ifModified){cy=ci.getResponseHeader("Last-Modified");if(cy){bK.lastModified[b9]=cy}cy=ci.getResponseHeader("etag");if(cy){bK.etag[b9]=cy}}if(cv===204){e=true;cs="nocontent"}else{if(cv===304){e=true;cs="notmodified"}else{e=ag(cc,cu);cs=e.state;cz=e.data;cx=e.error;e=!cx}}}else{cx=cs;if(cv||!cs){cs="error";if(cv<0){cv=0}}}ci.status=cv;ci.statusText=(cr||cs)+"";if(e){cp.resolveWith(cq,[cz,cs,ci])}else{cp.rejectWith(cq,[ci,cs,cx])}ci.statusCode(ca);ca=aH;if(b4){cf.trigger(e?"ajaxSuccess":"ajaxError",[ci,cc,e?cz:cx])}cm.fireWith(cq,[ci,cs]);if(b4){cf.trigger("ajaxComplete",[ci,cc]);if(!(--bK.active)){bK.event.trigger("ajaxStop")}}}return ci},getScript:function(e,b4){return bK.get(e,aH,b4,"script")},getJSON:function(e,b4,b5){return bK.get(e,b4,b5,"json")}});function g(cc,cb,b8){var e,b7,b6,b9,b4=cc.contents,ca=cc.dataTypes,b5=cc.responseFields;for(b9 in b5){if(b9 in b8){cb[b5[b9]]=b8[b9]}}while(ca[0]==="*"){ca.shift();if(b7===aH){b7=cc.mimeType||cb.getResponseHeader("Content-Type")}}if(b7){for(b9 in b4){if(b4[b9]&&b4[b9].test(b7)){ca.unshift(b9);break}}}if(ca[0] in b8){b6=ca[0]}else{for(b9 in b8){if(!ca[0]||cc.converters[b9+" "+ca[0]]){b6=b9;break}if(!e){e=b9}}b6=b6||e}if(b6){if(b6!==ca[0]){ca.unshift(b6)}return b8[b6]}}function ag(ce,b6){var b4,ca,cc,b7,cd={},b8=0,cb=ce.dataTypes.slice(),b5=cb[0];if(ce.dataFilter){b6=ce.dataFilter(b6,ce.dataType)}if(cb[1]){for(cc in ce.converters){cd[cc.toLowerCase()]=ce.converters[cc]}}for(;(ca=cb[++b8]);){if(ca!=="*"){if(b5!=="*"&&b5!==ca){cc=cd[b5+" "+ca]||cd["* "+ca];if(!cc){for(b4 in cd){b7=b4.split(" ");if(b7[1]===ca){cc=cd[b5+" "+b7[0]]||cd["* "+b7[0]];if(cc){if(cc===true){cc=cd[b4]}else{if(cd[b4]!==true){ca=b7[0];cb.splice(b8--,0,ca)}}break}}}}if(cc!==true){if(cc&&ce["throws"]){b6=cc(b6)}else{try{b6=cc(b6)}catch(b9){return{state:"parsererror",error:cc?b9:"No conversion from "+b5+" to "+ca}}}}}b5=ca}}return{state:"success",data:b6}}bK.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){bK.globalEval(e);return e}}});bK.ajaxPrefilter("script",function(e){if(e.cache===aH){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});bK.ajaxTransport("script",function(b5){if(b5.crossDomain){var e,b4=l.head||bK("head")[0]||l.documentElement;return{send:function(b6,b7){e=l.createElement("script");e.async=true;if(b5.scriptCharset){e.charset=b5.scriptCharset}e.src=b5.url;e.onload=e.onreadystatechange=function(b9,b8){if(b8||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(e.parentNode){e.parentNode.removeChild(e)}e=null;if(!b8){b7(200,"success")}}};b4.insertBefore(e,b4.firstChild)},abort:function(){if(e){e.onload(aH,true)}}}}});var br=[],a6=/(=)\?(?=&|$)|\?\?/;bK.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=br.pop()||(bK.expando+"_"+(bP++));this[e]=true;return e}});bK.ajaxPrefilter("json jsonp",function(b6,e,b7){var b9,b4,b5,b8=b6.jsonp!==false&&(a6.test(b6.url)?"url":typeof b6.data==="string"&&!(b6.contentType||"").indexOf("application/x-www-form-urlencoded")&&a6.test(b6.data)&&"data");if(b8||b6.dataTypes[0]==="jsonp"){b9=b6.jsonpCallback=bK.isFunction(b6.jsonpCallback)?b6.jsonpCallback():b6.jsonpCallback;if(b8){b6[b8]=b6[b8].replace(a6,"$1"+b9)}else{if(b6.jsonp!==false){b6.url+=(aA.test(b6.url)?"&":"?")+b6.jsonp+"="+b9}}b6.converters["script json"]=function(){if(!b5){bK.error(b9+" was not called")}return b5[0]};b6.dataTypes[0]="json";b4=a3[b9];a3[b9]=function(){b5=arguments};b7.always(function(){a3[b9]=b4;if(b6[b9]){b6.jsonpCallback=e.jsonpCallback;br.push(b9)}if(b5&&bK.isFunction(b4)){b4(b5[0])}b5=b4=aH});return"script"}});var ai,ay,az=0,aQ=a3.ActiveXObject&&function(){var e;for(e in ai){ai[e](aH,true)}};function bE(){try{return new a3.XMLHttpRequest()}catch(b4){}}function be(){try{return new a3.ActiveXObject("Microsoft.XMLHTTP")}catch(b4){}}bK.ajaxSettings.xhr=a3.ActiveXObject?function(){return !this.isLocal&&bE()||be()}:bE;ay=bK.ajaxSettings.xhr();bK.support.cors=!!ay&&("withCredentials" in ay);ay=bK.support.ajax=!!ay;if(ay){bK.ajaxTransport(function(e){if(!e.crossDomain||bK.support.cors){var b4;return{send:function(ca,b5){var b8,b6,b9=e.xhr();if(e.username){b9.open(e.type,e.url,e.async,e.username,e.password)}else{b9.open(e.type,e.url,e.async)}if(e.xhrFields){for(b6 in e.xhrFields){b9[b6]=e.xhrFields[b6]}}if(e.mimeType&&b9.overrideMimeType){b9.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!ca["X-Requested-With"]){ca["X-Requested-With"]="XMLHttpRequest"}try{for(b6 in ca){b9.setRequestHeader(b6,ca[b6])}}catch(b7){}b9.send((e.hasContent&&e.data)||null);b4=function(cd,cc){var cb,ce,ch,cf;try{if(b4&&(cc||b9.readyState===4)){b4=aH;if(b8){b9.onreadystatechange=bK.noop;if(aQ){delete ai[b8]}}if(cc){if(b9.readyState!==4){b9.abort()}}else{cf={};cb=b9.status;ce=b9.getAllResponseHeaders();if(typeof b9.responseText==="string"){cf.text=b9.responseText}try{ch=b9.statusText}catch(cg){ch=""}if(!cb&&e.isLocal&&!e.crossDomain){cb=cf.text?200:404}else{if(cb===1223){cb=204}}}}}catch(ci){if(!cc){b5(-1,ci)}}if(cf){b5(cb,ch,cf,ce)}};if(!e.async){b4()}else{if(b9.readyState===4){setTimeout(b4)}else{b8=++az;if(aQ){if(!ai){ai={};bK(a3).unload(aQ)}ai[b8]=b4}b9.onreadystatechange=b4}}},abort:function(){if(b4){b4(aH,true)}}}}})}var L,ae,bS=/^(?:toggle|show|hide)$/,bL=new RegExp("^(?:([+-])=|)("+bB+")([a-z%]*)$","i"),bR=/queueHooks$/,aC=[h],a1={"*":[function(e,ca){var b6,cb,cc=this.createTween(e,ca),b7=bL.exec(ca),b8=cc.cur(),b4=+b8||0,b5=1,b9=20;if(b7){b6=+b7[2];cb=b7[3]||(bK.cssNumber[e]?"":"px");if(cb!=="px"&&b4){b4=bK.css(cc.elem,e,true)||b6||1;do{b5=b5||".5";b4=b4/b5;bK.style(cc.elem,e,b4+cb)}while(b5!==(b5=cc.cur()/b8)&&b5!==1&&--b9)}cc.unit=cb;cc.start=b4;cc.end=b7[1]?b4+(b7[1]+1)*b6:b6}return cc}]};function bn(){setTimeout(function(){L=aH});return(L=bK.now())}function bf(b4,e){bK.each(e,function(b9,b7){var b8=(a1[b9]||[]).concat(a1["*"]),b5=0,b6=b8.length;for(;b5<b6;b5++){if(b8[b5].call(b4,b9,b7)){return}}})}function f(b5,b9,cc){var cd,e,b8=0,b4=aC.length,cb=bK.Deferred().always(function(){delete b7.elem}),b7=function(){if(e){return false}var cj=L||bn(),cg=Math.max(0,b6.startTime+b6.duration-cj),ce=cg/b6.duration||0,ci=1-ce,cf=0,ch=b6.tweens.length;for(;cf<ch;cf++){b6.tweens[cf].run(ci)}cb.notifyWith(b5,[b6,ci,cg]);if(ci<1&&ch){return cg}else{cb.resolveWith(b5,[b6]);return false}},b6=cb.promise({elem:b5,props:bK.extend({},b9),opts:bK.extend(true,{specialEasing:{}},cc),originalProperties:b9,originalOptions:cc,startTime:L||bn(),duration:cc.duration,tweens:[],createTween:function(cg,ce){var cf=bK.Tween(b5,b6.opts,cg,ce,b6.opts.specialEasing[cg]||b6.opts.easing);b6.tweens.push(cf);return cf},stop:function(cf){var ce=0,cg=cf?b6.tweens.length:0;if(e){return this}e=true;for(;ce<cg;ce++){b6.tweens[ce].run(1)}if(cf){cb.resolveWith(b5,[b6,cf])}else{cb.rejectWith(b5,[b6,cf])}return this}}),ca=b6.props;an(ca,b6.opts.specialEasing);for(;b8<b4;b8++){cd=aC[b8].call(b6,b5,ca,b6.opts);if(cd){return cd}}bf(b6,ca);if(bK.isFunction(b6.opts.start)){b6.opts.start.call(b5,b6)}bK.fx.timer(bK.extend(b7,{elem:b5,anim:b6,queue:b6.opts.queue}));return b6.progress(b6.opts.progress).done(b6.opts.done,b6.opts.complete).fail(b6.opts.fail).always(b6.opts.always)}function an(b6,b8){var b7,b5,b4,b9,e;for(b4 in b6){b5=bK.camelCase(b4);b9=b8[b5];b7=b6[b4];if(bK.isArray(b7)){b9=b7[1];b7=b6[b4]=b7[0]}if(b4!==b5){b6[b5]=b7;delete b6[b4]}e=bK.cssHooks[b5];if(e&&"expand" in e){b7=e.expand(b7);delete b6[b5];for(b4 in b7){if(!(b4 in b6)){b6[b4]=b7[b4];b8[b4]=b9}}}else{b8[b5]=b9}}}bK.Animation=bK.extend(f,{tweener:function(b4,b7){if(bK.isFunction(b4)){b7=b4;b4=["*"]}else{b4=b4.split(" ")}var b6,e=0,b5=b4.length;for(;e<b5;e++){b6=b4[e];a1[b6]=a1[b6]||[];a1[b6].unshift(b7)}},prefilter:function(b4,e){if(e){aC.unshift(b4)}else{aC.push(b4)}}});function h(b7,cd,e){var b5,cc,b6,cf,cj,b9,ci,ch,cg,b8=this,b4=b7.style,ce={},cb=[],ca=b7.nodeType&&Q(b7);if(!e.queue){ch=bK._queueHooks(b7,"fx");if(ch.unqueued==null){ch.unqueued=0;cg=ch.empty.fire;ch.empty.fire=function(){if(!ch.unqueued){cg()}}}ch.unqueued++;b8.always(function(){b8.always(function(){ch.unqueued--;if(!bK.queue(b7,"fx").length){ch.empty.fire()}})})}if(b7.nodeType===1&&("height" in cd||"width" in cd)){e.overflow=[b4.overflow,b4.overflowX,b4.overflowY];if(bK.css(b7,"display")==="inline"&&bK.css(b7,"float")==="none"){if(!bK.support.inlineBlockNeedsLayout||bF(b7.nodeName)==="inline"){b4.display="inline-block"}else{b4.zoom=1}}}if(e.overflow){b4.overflow="hidden";if(!bK.support.shrinkWrapBlocks){b8.always(function(){b4.overflow=e.overflow[0];b4.overflowX=e.overflow[1];b4.overflowY=e.overflow[2]})}}for(cc in cd){cf=cd[cc];if(bS.exec(cf)){delete cd[cc];b9=b9||cf==="toggle";if(cf===(ca?"hide":"show")){continue}cb.push(cc)}}b6=cb.length;if(b6){cj=bK._data(b7,"fxshow")||bK._data(b7,"fxshow",{});if("hidden" in cj){ca=cj.hidden}if(b9){cj.hidden=!ca}if(ca){bK(b7).show()}else{b8.done(function(){bK(b7).hide()})}b8.done(function(){var ck;bK._removeData(b7,"fxshow");for(ck in ce){bK.style(b7,ck,ce[ck])}});for(cc=0;cc<b6;cc++){b5=cb[cc];ci=b8.createTween(b5,ca?cj[b5]:0);ce[b5]=cj[b5]||bK.style(b7,b5);if(!(b5 in cj)){cj[b5]=ci.start;if(ca){ci.end=ci.start;ci.start=b5==="width"||b5==="height"?1:0}}}}}function H(b5,b4,b7,e,b6){return new H.prototype.init(b5,b4,b7,e,b6)}bK.Tween=H;H.prototype={constructor:H,init:function(b6,b4,b8,e,b7,b5){this.elem=b6;this.prop=b8;this.easing=b7||"swing";this.options=b4;this.start=this.now=this.cur();this.end=e;this.unit=b5||(bK.cssNumber[b8]?"":"px")},cur:function(){var e=H.propHooks[this.prop];return e&&e.get?e.get(this):H.propHooks._default.get(this)},run:function(b5){var b4,e=H.propHooks[this.prop];if(this.options.duration){this.pos=b4=bK.easing[this.easing](b5,this.options.duration*b5,0,1,this.options.duration)}else{this.pos=b4=b5}this.now=(this.end-this.start)*b4+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(e&&e.set){e.set(this)}else{H.propHooks._default.set(this)}return this}};H.prototype.init.prototype=H.prototype;H.propHooks={_default:{get:function(b4){var e;if(b4.elem[b4.prop]!=null&&(!b4.elem.style||b4.elem.style[b4.prop]==null)){return b4.elem[b4.prop]}e=bK.css(b4.elem,b4.prop,"");return !e||e==="auto"?0:e},set:function(e){if(bK.fx.step[e.prop]){bK.fx.step[e.prop](e)}else{if(e.elem.style&&(e.elem.style[bK.cssProps[e.prop]]!=null||bK.cssHooks[e.prop])){bK.style(e.elem,e.prop,e.now+e.unit)}else{e.elem[e.prop]=e.now}}}}};H.propHooks.scrollTop=H.propHooks.scrollLeft={set:function(e){if(e.elem.nodeType&&e.elem.parentNode){e.elem[e.prop]=e.now}}};bK.each(["toggle","show","hide"],function(b4,e){var b5=bK.fn[e];bK.fn[e]=function(b6,b8,b7){return b6==null||typeof b6==="boolean"?b5.apply(this,arguments):this.animate(bJ(e,true),b6,b8,b7)}});bK.fn.extend({fadeTo:function(e,b6,b5,b4){return this.filter(Q).css("opacity",0).show().end().animate({opacity:b6},e,b5,b4)},animate:function(b9,b6,b8,b7){var b5=bK.isEmptyObject(b9),e=bK.speed(b6,b8,b7),b4=function(){var ca=f(this,bK.extend({},b9),e);b4.finish=function(){ca.stop(true)};if(b5||bK._data(this,"finish")){ca.stop(true)}};b4.finish=b4;return b5||e.queue===false?this.each(b4):this.queue(e.queue,b4)},stop:function(b5,b4,e){var b6=function(b7){var b8=b7.stop;delete b7.stop;b8(e)};if(typeof b5!=="string"){e=b4;b4=b5;b5=aH}if(b4&&b5!==false){this.queue(b5||"fx",[])}return this.each(function(){var ca=true,b7=b5!=null&&b5+"queueHooks",b9=bK.timers,b8=bK._data(this);if(b7){if(b8[b7]&&b8[b7].stop){b6(b8[b7])}}else{for(b7 in b8){if(b8[b7]&&b8[b7].stop&&bR.test(b7)){b6(b8[b7])}}}for(b7=b9.length;b7--;){if(b9[b7].elem===this&&(b5==null||b9[b7].queue===b5)){b9[b7].anim.stop(e);ca=false;b9.splice(b7,1)}}if(ca||!e){bK.dequeue(this,b5)}})},finish:function(e){if(e!==false){e=e||"fx"}return this.each(function(){var b6,b9=bK._data(this),b5=b9[e+"queue"],b4=b9[e+"queueHooks"],b8=bK.timers,b7=b5?b5.length:0;b9.finish=true;bK.queue(this,e,[]);if(b4&&b4.cur&&b4.cur.finish){b4.cur.finish.call(this)}for(b6=b8.length;b6--;){if(b8[b6].elem===this&&b8[b6].queue===e){b8[b6].anim.stop(true);b8.splice(b6,1)}}for(b6=0;b6<b7;b6++){if(b5[b6]&&b5[b6].finish){b5[b6].finish.call(this)}}delete b9.finish})}});function bJ(b5,b7){var b6,e={height:b5},b4=0;b7=b7?1:0;for(;b4<4;b4+=2-b7){b6=bU[b4];e["margin"+b6]=e["padding"+b6]=b5}if(b7){e.opacity=e.width=b5}return e}bK.each({slideDown:bJ("show"),slideUp:bJ("hide"),slideToggle:bJ("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,b4){bK.fn[e]=function(b5,b7,b6){return this.animate(b4,b5,b7,b6)}});bK.speed=function(b5,b6,b4){var e=b5&&typeof b5==="object"?bK.extend({},b5):{complete:b4||!b4&&b6||bK.isFunction(b5)&&b5,duration:b5,easing:b4&&b6||b6&&!bK.isFunction(b6)&&b6};e.duration=bK.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in bK.fx.speeds?bK.fx.speeds[e.duration]:bK.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(){if(bK.isFunction(e.old)){e.old.call(this)}if(e.queue){bK.dequeue(this,e.queue)}};return e};bK.easing={linear:function(e){return e},swing:function(e){return 0.5-Math.cos(e*Math.PI)/2}};bK.timers=[];bK.fx=H.prototype.init;bK.fx.tick=function(){var b5,b4=bK.timers,e=0;L=bK.now();for(;e<b4.length;e++){b5=b4[e];if(!b5()&&b4[e]===b5){b4.splice(e--,1)}}if(!b4.length){bK.fx.stop()}L=aH};bK.fx.timer=function(e){if(e()&&bK.timers.push(e)){bK.fx.start()}};bK.fx.interval=13;bK.fx.start=function(){if(!ae){ae=setInterval(bK.fx.tick,bK.fx.interval)}};bK.fx.stop=function(){clearInterval(ae);ae=null};bK.fx.speeds={slow:600,fast:200,_default:400};bK.fx.step={};if(bK.expr&&bK.expr.filters){bK.expr.filters.animated=function(e){return bK.grep(bK.timers,function(b4){return e===b4.elem}).length}}bK.fn.offset=function(b4){if(arguments.length){return b4===aH?this:this.each(function(b9){bK.offset.setOffset(this,b4,b9)})}var e,b8,b6={top:0,left:0},b5=this[0],b7=b5&&b5.ownerDocument;if(!b7){return}e=b7.documentElement;if(!bK.contains(e,b5)){return b6}if(typeof b5.getBoundingClientRect!==aD){b6=b5.getBoundingClientRect()}b8=bq(b7);return{top:b6.top+(b8.pageYOffset||e.scrollTop)-(e.clientTop||0),left:b6.left+(b8.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}};bK.offset={setOffset:function(b6,cf,b9){var ca=bK.css(b6,"position");if(ca==="static"){b6.style.position="relative"}var b8=bK(b6),b4=b8.offset(),e=bK.css(b6,"top"),cd=bK.css(b6,"left"),ce=(ca==="absolute"||ca==="fixed")&&bK.inArray("auto",[e,cd])>-1,cc={},cb={},b5,b7;if(ce){cb=b8.position();b5=cb.top;b7=cb.left}else{b5=parseFloat(e)||0;b7=parseFloat(cd)||0}if(bK.isFunction(cf)){cf=cf.call(b6,b9,b4)}if(cf.top!=null){cc.top=(cf.top-b4.top)+b5}if(cf.left!=null){cc.left=(cf.left-b4.left)+b7}if("using" in cf){cf.using.call(b6,cc)}else{b8.css(cc)}}};bK.fn.extend({position:function(){if(!this[0]){return}var b5,b6,e={top:0,left:0},b4=this[0];if(bK.css(b4,"position")==="fixed"){b6=b4.getBoundingClientRect()}else{b5=this.offsetParent();b6=this.offset();if(!bK.nodeName(b5[0],"html")){e=b5.offset()}e.top+=bK.css(b5[0],"borderTopWidth",true);e.left+=bK.css(b5[0],"borderLeftWidth",true)}return{top:b6.top-e.top-bK.css(b4,"marginTop",true),left:b6.left-e.left-bK.css(b4,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||l.documentElement;while(e&&(!bK.nodeName(e,"html")&&bK.css(e,"position")==="static")){e=e.offsetParent}return e||l.documentElement})}});bK.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b5,b4){var e=/Y/.test(b4);bK.fn[b5]=function(b6){return bK.access(this,function(b7,ca,b9){var b8=bq(b7);if(b9===aH){return b8?(b4 in b8)?b8[b4]:b8.document.documentElement[ca]:b7[ca]}if(b8){b8.scrollTo(!e?b9:bK(b8).scrollLeft(),e?b9:bK(b8).scrollTop())}else{b7[ca]=b9}},b5,b6,arguments.length,null)}});function bq(e){return bK.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}bK.each({Height:"height",Width:"width"},function(e,b4){bK.each({padding:"inner"+e,content:b4,"":"outer"+e},function(b5,b6){bK.fn[b6]=function(ca,b9){var b8=arguments.length&&(b5||typeof ca!=="boolean"),b7=b5||(ca===true||b9===true?"margin":"border");return bK.access(this,function(cc,cb,cd){var ce;if(bK.isWindow(cc)){return cc.document.documentElement["client"+e]}if(cc.nodeType===9){ce=cc.documentElement;return Math.max(cc.body["scroll"+e],ce["scroll"+e],cc.body["offset"+e],ce["offset"+e],ce["client"+e])}return cd===aH?bK.css(cc,cb,b7):bK.style(cc,cb,cd,b7)},b4,b8?ca:aH,b8,null)}})});a3.jQuery=a3.$=bK;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return bK})}})(window);!function(a){a(function(){a.support.transition=(function(){var b=(function(){var e=document.createElement("bootstrap"),d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in d){if(e.style[c]!==undefined){return d[c]}}}());return b&&{end:b}})()})}(window.jQuery);!function(d){var c='[data-dismiss="alert"]',b=function(e){d(e).on("click",c,this.close)};b.prototype.close=function(j){var i=d(this),g=i.attr("data-target"),h;if(!g){g=i.attr("href");g=g&&g.replace(/.*(?=#[^\s]*$)/,"")}h=d(g);j&&j.preventDefault();h.length||(h=i.hasClass("alert")?i:i.parent());h.trigger(j=d.Event("close"));if(j.isDefaultPrevented()){return}h.removeClass("in");function f(){h.trigger("closed").remove()}d.support.transition&&h.hasClass("fade")?h.on(d.support.transition.end,f):f()};var a=d.fn.alert;d.fn.alert=function(e){return this.each(function(){var g=d(this),f=g.data("alert");if(!f){g.data("alert",(f=new b(this)))}if(typeof e=="string"){f[e].call(g)}})};d.fn.alert.Constructor=b;d.fn.alert.noConflict=function(){d.fn.alert=a;return this};d(document).on("click.alert.data-api",c,b.prototype.close)}(window.jQuery);!function(c){var b=function(e,d){this.$element=c(e);this.options=c.extend({},c.fn.button.defaults,d)};b.prototype.setState=function(g){var i="disabled",e=this.$element,f=e.data(),h=e.is("input")?"val":"html";g=g+"Text";f.resetText||e.data("resetText",e[h]());e[h](f[g]||this.options[g]);setTimeout(function(){g=="loadingText"?e.addClass(i).attr(i,i):e.removeClass(i).removeAttr(i)},0)};b.prototype.toggle=function(){var d=this.$element.closest('[data-toggle="buttons-radio"]');d&&d.find(".active").removeClass("active");this.$element.toggleClass("active")};var a=c.fn.button;c.fn.button=function(d){return this.each(function(){var g=c(this),f=g.data("button"),e=typeof d=="object"&&d;if(!f){g.data("button",(f=new b(this,e)))}if(d=="toggle"){f.toggle()}else{if(d){f.setState(d)}}})};c.fn.button.defaults={loadingText:"loading..."};c.fn.button.Constructor=b;c.fn.button.noConflict=function(){c.fn.button=a;return this};c(document).on("click.button.data-api","[data-toggle^=button]",function(f){var d=c(f.target);if(!d.hasClass("btn")){d=d.closest(".btn")}d.button("toggle")})}(window.jQuery);!function(b){var c=function(e,d){this.$element=b(e);this.options=d;this.options.pause=="hover"&&this.$element.on("mouseenter",b.proxy(this.pause,this)).on("mouseleave",b.proxy(this.cycle,this))};c.prototype={cycle:function(d){if(!d){this.paused=false}this.options.interval&&!this.paused&&(this.interval=setInterval(b.proxy(this.next,this),this.options.interval));return this},to:function(h){var d=this.$element.find(".item.active"),e=d.parent().children(),f=e.index(d),g=this;if(h>(e.length-1)||h<0){return}if(this.sliding){return this.$element.one("slid",function(){g.to(h)})}if(f==h){return this.pause().cycle()}return this.slide(h>f?"next":"prev",b(e[h]))},pause:function(d){if(!d){this.paused=true}if(this.$element.find(".next, .prev").length&&b.support.transition.end){this.$element.trigger(b.support.transition.end);this.cycle()}clearInterval(this.interval);this.interval=null;return this},next:function(){if(this.sliding){return}return this.slide("next")},prev:function(){if(this.sliding){return}return this.slide("prev")},slide:function(k,f){var m=this.$element.find(".item.active"),d=f||m[k](),j=this.interval,l=k=="next"?"left":"right",g=k=="next"?"first":"last",h=this,i;this.sliding=true;j&&this.pause();d=d.length?d:this.$element.find(".item")[g]();i=b.Event("slide",{relatedTarget:d[0]});if(d.hasClass("active")){return}if(b.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(i);if(i.isDefaultPrevented()){return}d.addClass(k);d[0].offsetWidth;m.addClass(l);d.addClass(l);this.$element.one(b.support.transition.end,function(){d.removeClass([k,l].join(" ")).addClass("active");m.removeClass(["active",l].join(" "));h.sliding=false;setTimeout(function(){h.$element.trigger("slid")},0)})}else{this.$element.trigger(i);if(i.isDefaultPrevented()){return}m.removeClass("active");d.addClass("active");this.sliding=false;this.$element.trigger("slid")}j&&this.cycle();return this}};var a=b.fn.carousel;b.fn.carousel=function(d){return this.each(function(){var h=b(this),g=h.data("carousel"),e=b.extend({},b.fn.carousel.defaults,typeof d=="object"&&d),f=typeof d=="string"?d:e.slide;if(!g){h.data("carousel",(g=new c(this,e)))}if(typeof d=="number"){g.to(d)}else{if(f){g[f]()}else{if(e.interval){g.cycle()}}}})};b.fn.carousel.defaults={interval:5000,pause:"hover"};b.fn.carousel.Constructor=c;b.fn.carousel.noConflict=function(){b.fn.carousel=a;return this};b(document).on("click.carousel.data-api","[data-slide]",function(i){var h=b(this),f,d=b(h.attr("data-target")||(f=h.attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")),g=b.extend({},d.data(),h.data());d.carousel(g);i.preventDefault()})}(window.jQuery);!function(b){var c=function(e,d){this.$element=b(e);this.options=b.extend({},b.fn.collapse.defaults,d);if(this.options.parent){this.$parent=b(this.options.parent)}this.options.toggle&&this.toggle()};c.prototype={constructor:c,dimension:function(){var d=this.$element.hasClass("width");return d?"width":"height"},show:function(){var g,d,f,e;if(this.transitioning){return}g=this.dimension();d=b.camelCase(["scroll",g].join("-"));f=this.$parent&&this.$parent.find("> .accordion-group > .in");if(f&&f.length){e=f.data("collapse");if(e&&e.transitioning){return}f.collapse("hide");e||f.data("collapse",null)}this.$element[g](0);this.transition("addClass",b.Event("show"),"shown");b.support.transition&&this.$element[g](this.$element[0][d])},hide:function(){var d;if(this.transitioning){return}d=this.dimension();this.reset(this.$element[d]());this.transition("removeClass",b.Event("hide"),"hidden");this.$element[d](0)},reset:function(d){var e=this.dimension();this.$element.removeClass("collapse")[e](d||"auto")[0].offsetWidth;this.$element[d!==null?"addClass":"removeClass"]("collapse");return this},transition:function(h,e,f){var g=this,d=function(){if(e.type=="show"){g.reset()}g.transitioning=0;g.$element.trigger(f)};this.$element.trigger(e);if(e.isDefaultPrevented()){return}this.transitioning=1;this.$element[h]("in");b.support.transition&&this.$element.hasClass("collapse")?this.$element.one(b.support.transition.end,d):d()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var a=b.fn.collapse;b.fn.collapse=function(d){return this.each(function(){var g=b(this),f=g.data("collapse"),e=typeof d=="object"&&d;if(!f){g.data("collapse",(f=new c(this,e)))}if(typeof d=="string"){f[d]()}})};b.fn.collapse.defaults={toggle:true};b.fn.collapse.Constructor=c;b.fn.collapse.noConflict=function(){b.fn.collapse=a;return this};b(document).on("click.collapse.data-api","[data-toggle=collapse]",function(i){var h=b(this),d,g=h.attr("data-target")||i.preventDefault()||(d=h.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=b(g).data("collapse")?"toggle":h.data();h[b(g).hasClass("in")?"addClass":"removeClass"]("collapsed");b(g).collapse(f)})}(window.jQuery);!function(f){var b="[data-toggle=dropdown]",a=function(h){var g=f(h).on("click.dropdown.data-api",this.toggle);f("html").on("click.dropdown.data-api",function(){g.parent().removeClass("open")})};a.prototype={constructor:a,toggle:function(j){var i=f(this),h,g;if(i.is(".disabled, :disabled")){return}h=e(i);g=h.hasClass("open");d();if(!g){h.toggleClass("open")}i.focus();return false},keydown:function(l){var k,m,g,j,i,h;if(!/(38|40|27)/.test(l.keyCode)){return}k=f(this);l.preventDefault();l.stopPropagation();if(k.is(".disabled, :disabled")){return}j=e(k);i=j.hasClass("open");if(!i||(i&&l.keyCode==27)){return k.click()}m=f("[role=menu] li:not(.divider):visible a",j);if(!m.length){return}h=m.index(m.filter(":focus"));if(l.keyCode==38&&h>0){h--}if(l.keyCode==40&&h<m.length-1){h++}if(!~h){h=0}m.eq(h).focus()}};function d(){f(b).each(function(){e(f(this)).removeClass("open")})}function e(i){var g=i.attr("data-target"),h;if(!g){g=i.attr("href");g=g&&/#/.test(g)&&g.replace(/.*(?=#[^\s]*$)/,"")}h=f(g);h.length||(h=i.parent());return h}var c=f.fn.dropdown;f.fn.dropdown=function(g){return this.each(function(){var i=f(this),h=i.data("dropdown");if(!h){i.data("dropdown",(h=new a(this)))}if(typeof g=="string"){h[g].call(i)}})};f.fn.dropdown.Constructor=a;f.fn.dropdown.noConflict=function(){f.fn.dropdown=c;return this};f(document).on("click.dropdown.data-api touchstart.dropdown.data-api",d).on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(g){g.stopPropagation()}).on("touchstart.dropdown.data-api",".dropdown-menu",function(g){g.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",b,a.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",b+", [role=menu]",a.prototype.keydown)}(window.jQuery);!function(c){var b=function(e,d){this.options=d;this.$element=c(e).delegate('[data-dismiss="modal"]',"click.dismiss.modal",c.proxy(this.hide,this));this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.prototype={constructor:b,toggle:function(){return this[!this.isShown?"show":"hide"]()},show:function(){var d=this,f=c.Event("show");this.$element.trigger(f);if(this.isShown||f.isDefaultPrevented()){return}this.isShown=true;this.escape();this.backdrop(function(){var e=c.support.transition&&d.$element.hasClass("fade");if(!d.$element.parent().length){d.$element.appendTo(document.body)}d.$element.show();if(e){d.$element[0].offsetWidth}d.$element.addClass("in").attr("aria-hidden",false);d.enforceFocus();e?d.$element.one(c.support.transition.end,function(){d.$element.focus().trigger("shown")}):d.$element.focus().trigger("shown")})},hide:function(f){f&&f.preventDefault();var d=this;f=c.Event("hide");this.$element.trigger(f);if(!this.isShown||f.isDefaultPrevented()){return}this.isShown=false;this.escape();c(document).off("focusin.modal");this.$element.removeClass("in").attr("aria-hidden",true);c.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var d=this;c(document).on("focusin.modal",function(f){if(d.$element[0]!==f.target&&!d.$element.has(f.target).length){d.$element.focus()}})},escape:function(){var d=this;if(this.isShown&&this.options.keyboard){this.$element.on("keyup.dismiss.modal",function(f){f.which==27&&d.hide()})}else{if(!this.isShown){this.$element.off("keyup.dismiss.modal")}}},hideWithTransition:function(){var d=this,e=setTimeout(function(){d.$element.off(c.support.transition.end);d.hideModal()},500);this.$element.one(c.support.transition.end,function(){clearTimeout(e);d.hideModal()})},hideModal:function(d){this.$element.hide().trigger("hidden");this.backdrop()},removeBackdrop:function(){this.$backdrop.remove();this.$backdrop=null},backdrop:function(g){var f=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=c.support.transition&&e;this.$backdrop=c('<div class="modal-backdrop '+e+'" />').appendTo(document.body);this.$backdrop.click(this.options.backdrop=="static"?c.proxy(this.$element[0].focus,this.$element[0]):c.proxy(this.hide,this));if(d){this.$backdrop[0].offsetWidth}this.$backdrop.addClass("in");d?this.$backdrop.one(c.support.transition.end,g):g()}else{if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");c.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(c.support.transition.end,c.proxy(this.removeBackdrop,this)):this.removeBackdrop()}else{if(g){g()}}}}};var a=c.fn.modal;c.fn.modal=function(d){return this.each(function(){var g=c(this),f=g.data("modal"),e=c.extend({},c.fn.modal.defaults,g.data(),typeof d=="object"&&d);if(!f){g.data("modal",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}else{if(e.show){f.show()}}})};c.fn.modal.defaults={backdrop:true,keyboard:true,show:true};c.fn.modal.Constructor=b;c.fn.modal.noConflict=function(){c.fn.modal=a;return this};c(document).on("click.modal.data-api",'[data-toggle="modal"]',function(i){var h=c(this),f=h.attr("href"),d=c(h.attr("data-target")||(f&&f.replace(/.*(?=#[^\s]+$)/,""))),g=d.data("modal")?"toggle":c.extend({remote:!/#/.test(f)&&f},d.data(),h.data());i.preventDefault();d.modal(g).one("hide",function(){h.focus()})})}(window.jQuery);!function(c){var b=function(e,d){this.init("tooltip",e,d)};b.prototype={constructor:b,init:function(g,f,e){var h,d;this.type=g;this.$element=c(f);this.options=this.getOptions(e);this.enabled=true;if(this.options.trigger=="click"){this.$element.on("click."+this.type,this.options.selector,c.proxy(this.toggle,this))}else{if(this.options.trigger!="manual"){h=this.options.trigger=="hover"?"mouseenter":"focus";d=this.options.trigger=="hover"?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,c.proxy(this.enter,this));this.$element.on(d+"."+this.type,this.options.selector,c.proxy(this.leave,this))}}this.options.selector?(this._options=c.extend({},this.options,{trigger:"manual",selector:""})):this.fixTitle()},getOptions:function(d){d=c.extend({},c.fn[this.type].defaults,d,this.$element.data());if(d.delay&&typeof d.delay=="number"){d.delay={show:d.delay,hide:d.delay}}return d},enter:function(f){var d=c(f.currentTarget)[this.type](this._options).data(this.type);if(!d.options.delay||!d.options.delay.show){return d.show()}clearTimeout(this.timeout);d.hoverState="in";this.timeout=setTimeout(function(){if(d.hoverState=="in"){d.show()}},d.options.delay.show)},leave:function(f){var d=c(f.currentTarget)[this.type](this._options).data(this.type);if(this.timeout){clearTimeout(this.timeout)}if(!d.options.delay||!d.options.delay.hide){return d.hide()}d.hoverState="out";this.timeout=setTimeout(function(){if(d.hoverState=="out"){d.hide()}},d.options.delay.hide)},show:function(){var h,d,j,f,i,e,g;if(this.hasContent()&&this.enabled){h=this.tip();this.setContent();if(this.options.animation){h.addClass("fade")}e=typeof this.options.placement=="function"?this.options.placement.call(this,h[0],this.$element[0]):this.options.placement;d=/in/.test(e);h.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element);j=this.getPosition(d);f=h[0].offsetWidth;i=h[0].offsetHeight;switch(d?e.split(" ")[1]:e){case"bottom":g={top:j.top+j.height,left:j.left+j.width/2-f/2};break;case"top":g={top:j.top-i,left:j.left+j.width/2-f/2};break;case"left":g={top:j.top+j.height/2-i/2,left:j.left-f};break;case"right":g={top:j.top+j.height/2-i/2,left:j.left+j.width};break}h.offset(g).addClass(e).addClass("in")}},setContent:function(){var e=this.tip(),d=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](d);e.removeClass("fade in top bottom left right")},hide:function(){var d=this,e=this.tip();e.removeClass("in");function f(){var g=setTimeout(function(){e.off(c.support.transition.end).detach()},500);e.one(c.support.transition.end,function(){clearTimeout(g);e.detach()})}c.support.transition&&this.$tip.hasClass("fade")?f():e.detach();return this},fixTitle:function(){var d=this.$element;if(d.attr("title")||typeof(d.attr("data-original-title"))!="string"){d.attr("data-original-title",d.attr("title")||"").removeAttr("title")}},hasContent:function(){return this.getTitle()},getPosition:function(d){return c.extend({},(d?{top:0,left:0}:this.$element.offset()),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var f,d=this.$element,e=this.options;f=d.attr("data-original-title")||(typeof e.title=="function"?e.title.call(d[0]):e.title);return f},tip:function(){return this.$tip=this.$tip||c(this.options.template)},validate:function(){if(!this.$element[0].parentNode){this.hide();this.$element=null;this.options=null}},enable:function(){this.enabled=true},disable:function(){this.enabled=false},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(f){var d=c(f.currentTarget)[this.type](this._options).data(this.type);d[d.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var a=c.fn.tooltip;c.fn.tooltip=function(d){return this.each(function(){var g=c(this),f=g.data("tooltip"),e=typeof d=="object"&&d;if(!f){g.data("tooltip",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}})};c.fn.tooltip.Constructor=b;c.fn.tooltip.defaults={animation:true,placement:"top",selector:false,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0,html:false};c.fn.tooltip.noConflict=function(){c.fn.tooltip=a;return this}}(window.jQuery);!function(c){var b=function(e,d){this.init("popover",e,d)};b.prototype=c.extend({},c.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var f=this.tip(),e=this.getTitle(),d=this.getContent();f.find(".popover-title")[this.options.html?"html":"text"](e);f.find(".popover-content")[this.options.html?"html":"text"](d);f.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,d=this.$element,f=this.options;e=d.attr("data-content")||(typeof f.content=="function"?f.content.call(d[0]):f.content);return e},tip:function(){if(!this.$tip){this.$tip=c(this.options.template)}return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var a=c.fn.popover;c.fn.popover=function(d){return this.each(function(){var g=c(this),f=g.data("popover"),e=typeof d=="object"&&d;if(!f){g.data("popover",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}})};c.fn.popover.Constructor=b;c.fn.popover.defaults=c.extend({},c.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'});c.fn.popover.noConflict=function(){c.fn.popover=a;return this}}(window.jQuery);!function(c){function b(g,f){var h=c.proxy(this.process,this),d=c(g).is("body")?c(window):c(g),e;this.options=c.extend({},c.fn.scrollspy.defaults,f);this.$scrollElement=d.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||((e=c(g).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,""))||"")+" .nav li > a";this.$body=c("body");this.refresh();this.process()}b.prototype={constructor:b,refresh:function(){var d=this,e;this.offsets=c([]);this.targets=c([]);e=this.$body.find(this.selector).map(function(){var g=c(this),f=g.data("target")||g.attr("href"),h=/^#\w/.test(f)&&c(f);return(h&&h.length&&[[h.position().top+d.$scrollElement.scrollTop(),f]])||null}).sort(function(g,f){return g[0]-f[0]}).each(function(){d.offsets.push(this[0]);d.targets.push(this[1])})},process:function(){var j=this.$scrollElement.scrollTop()+this.options.offset,f=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,h=f-this.$scrollElement.height(),g=this.offsets,d=this.targets,k=this.activeTarget,e;if(j>=h){return k!=(e=d.last()[0])&&this.activate(e)}for(e=g.length;e--;){k!=d[e]&&j>=g[e]&&(!g[e+1]||j<=g[e+1])&&this.activate(d[e])}},activate:function(f){var e,d;this.activeTarget=f;c(this.selector).parent(".active").removeClass("active");d=this.selector+'[data-target="'+f+'"],'+this.selector+'[href="'+f+'"]';e=c(d).parent("li").addClass("active");if(e.parent(".dropdown-menu").length){e=e.closest("li.dropdown").addClass("active")}e.trigger("activate")}};var a=c.fn.scrollspy;c.fn.scrollspy=function(d){return this.each(function(){var g=c(this),f=g.data("scrollspy"),e=typeof d=="object"&&d;if(!f){g.data("scrollspy",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}})};c.fn.scrollspy.Constructor=b;c.fn.scrollspy.defaults={offset:10};c.fn.scrollspy.noConflict=function(){c.fn.scrollspy=a;return this};c(window).on("load",function(){c('[data-spy="scroll"]').each(function(){var d=c(this);d.scrollspy(d.data())})})}(window.jQuery);!function(c){var b=function(d){this.element=c(d)};b.prototype={constructor:b,show:function(){var j=this.element,g=j.closest("ul:not(.dropdown-menu)"),f=j.attr("data-target"),h,d,i;if(!f){f=j.attr("href");f=f&&f.replace(/.*(?=#[^\s]*$)/,"")}if(j.parent("li").hasClass("active")){return}h=g.find(".active:last a")[0];i=c.Event("show",{relatedTarget:h});j.trigger(i);if(i.isDefaultPrevented()){return}d=c(f);this.activate(j.parent("li"),g);this.activate(d,d.parent(),function(){j.trigger({type:"shown",relatedTarget:h})})},activate:function(f,e,i){var d=e.find("> .active"),h=i&&c.support.transition&&d.hasClass("fade");function g(){d.removeClass("active").find("> .dropdown-menu > .active").removeClass("active");f.addClass("active");if(h){f[0].offsetWidth;f.addClass("in")}else{f.removeClass("fade")}if(f.parent(".dropdown-menu")){f.closest("li.dropdown").addClass("active")}i&&i()}h?d.one(c.support.transition.end,g):g();d.removeClass("in")}};var a=c.fn.tab;c.fn.tab=function(d){return this.each(function(){var f=c(this),e=f.data("tab");if(!e){f.data("tab",(e=new b(this)))}if(typeof d=="string"){e[d]()}})};c.fn.tab.Constructor=b;c.fn.tab.noConflict=function(){c.fn.tab=a;return this};c(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(d){d.preventDefault();c(this).tab("show")})}(window.jQuery);!function(b){var c=function(e,d){this.$element=b(e);this.options=b.extend({},b.fn.typeahead.defaults,d);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=b(this.options.menu);this.shown=false;this.listen()};c.prototype={constructor:c,select:function(){var d=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(d)).change();return this.hide()},updater:function(d){return d},show:function(){var d=b.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:d.top+d.height,left:d.left}).show();this.shown=true;return this},hide:function(){this.$menu.hide();this.shown=false;return this},lookup:function(e){var d;this.query=this.$element.val();if(!this.query||this.query.length<this.options.minLength){return this.shown?this.hide():this}d=b.isFunction(this.source)?this.source(this.query,b.proxy(this.process,this)):this.source;return d?this.process(d):this},process:function(d){var e=this;d=b.grep(d,function(f){return e.matcher(f)});d=this.sorter(d);if(!d.length){return this.shown?this.hide():this}return this.render(d.slice(0,this.options.items)).show()},matcher:function(d){return ~d.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(f){var g=[],e=[],d=[],h;while(h=f.shift()){if(!h.toLowerCase().indexOf(this.query.toLowerCase())){g.push(h)}else{if(~h.indexOf(this.query)){e.push(h)}else{d.push(h)}}}return g.concat(e,d)},highlighter:function(d){var e=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return d.replace(new RegExp("("+e+")","ig"),function(f,g){return"<strong>"+g+"</strong>"})},render:function(d){var e=this;d=b(d).map(function(f,g){f=b(e.options.item).attr("data-value",g);f.find("a").html(e.highlighter(g));return f[0]});d.first().addClass("active");this.$menu.html(d);return this},next:function(e){var f=this.$menu.find(".active").removeClass("active"),d=f.next();if(!d.length){d=b(this.$menu.find("li")[0])}d.addClass("active")},prev:function(e){var f=this.$menu.find(".active").removeClass("active"),d=f.prev();if(!d.length){d=this.$menu.find("li").last()}d.addClass("active")},listen:function(){this.$element.on("blur",b.proxy(this.blur,this)).on("keypress",b.proxy(this.keypress,this)).on("keyup",b.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",b.proxy(this.keydown,this))}this.$menu.on("click",b.proxy(this.click,this)).on("mouseenter","li",b.proxy(this.mouseenter,this))},eventSupported:function(d){var e=d in this.$element;if(!e){this.$element.setAttribute(d,"return;");e=typeof this.$element[d]==="function"}return e},move:function(d){if(!this.shown){return}switch(d.keyCode){case 9:case 13:case 27:d.preventDefault();break;case 38:d.preventDefault();this.prev();break;case 40:d.preventDefault();this.next();break}d.stopPropagation()},keydown:function(d){this.suppressKeyPressRepeat=~b.inArray(d.keyCode,[40,38,9,13,27]);this.move(d)},keypress:function(d){if(this.suppressKeyPressRepeat){return}this.move(d)},keyup:function(d){switch(d.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown){return}this.select();break;case 27:if(!this.shown){return}this.hide();break;default:this.lookup()}d.stopPropagation();d.preventDefault()},blur:function(f){var d=this;setTimeout(function(){d.hide()},150)},click:function(d){d.stopPropagation();d.preventDefault();this.select()},mouseenter:function(d){this.$menu.find(".active").removeClass("active");b(d.currentTarget).addClass("active")}};var a=b.fn.typeahead;b.fn.typeahead=function(d){return this.each(function(){var g=b(this),f=g.data("typeahead"),e=typeof d=="object"&&d;if(!f){g.data("typeahead",(f=new c(this,e)))}if(typeof d=="string"){f[d]()}})};b.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1};b.fn.typeahead.Constructor=c;b.fn.typeahead.noConflict=function(){b.fn.typeahead=a;return this};b(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(f){var d=b(this);if(d.data("typeahead")){return}f.preventDefault();d.typeahead(d.data())})}(window.jQuery);!function(c){var b=function(e,d){this.options=c.extend({},c.fn.affix.defaults,d);this.$window=c(window).on("scroll.affix.data-api",c.proxy(this.checkPosition,this)).on("click.affix.data-api",c.proxy(function(){setTimeout(c.proxy(this.checkPosition,this),1)},this));this.$element=c(e);this.checkPosition()};b.prototype.checkPosition=function(){if(!this.$element.is(":visible")){return}var h=c(document).height(),j=this.$window.scrollTop(),d=this.$element.offset(),k=this.options.offset,f=k.bottom,g=k.top,i="affix affix-top affix-bottom",e;if(typeof k!="object"){f=g=k}if(typeof g=="function"){g=k.top()}if(typeof f=="function"){f=k.bottom()}e=this.unpin!=null&&(j+this.unpin<=d.top)?false:f!=null&&(d.top+this.$element.height()>=h-f)?"bottom":g!=null&&j<=g?"top":false;if(this.affixed===e){return}this.affixed=e;this.unpin=e=="bottom"?d.top-j:null;this.$element.removeClass(i).addClass("affix"+(e?"-"+e:""))};var a=c.fn.affix;c.fn.affix=function(d){return this.each(function(){var g=c(this),f=g.data("affix"),e=typeof d=="object"&&d;if(!f){g.data("affix",(f=new b(this,e)))}if(typeof d=="string"){f[d]()}})};c.fn.affix.Constructor=b;c.fn.affix.defaults={offset:0};c.fn.affix.noConflict=function(){c.fn.affix=a;return this};c(window).on("load",function(){c('[data-spy="affix"]').each(function(){var e=c(this),d=e.data();d.offset=d.offset||{};d.offsetBottom&&(d.offset.bottom=d.offsetBottom);d.offsetTop&&(d.offset.top=d.offsetTop);e.affix(d)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;(function(){function d(F){function w(J){var K=J.charCodeAt(0);if(K!==92){return K}var I=J.charAt(1);return(K=k[I])?K:"0"<=I&&I<="7"?parseInt(J.substring(1),8):I==="u"||I==="x"?parseInt(J.substring(2),16):J.charCodeAt(1)}function C(I){if(I<32){return(I<16?"\\x0":"\\x")+I.toString(16)}I=String.fromCharCode(I);if(I==="\\"||I==="-"||I==="["||I==="]"){I="\\"+I}return I}function A(J){for(var M=J.substring(1,J.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),J=[],I=[],O=M[0]==="^",P=O?1:0,L=M.length;P<L;++P){var K=M[P];if(/\\[bdsw]/i.test(K)){J.push(K)}else{var K=w(K),N;P+2<L&&"-"===M[P+1]?(N=w(M[P+2]),P+=2):N=K;I.push([K,N]);N<65||K>122||(N<65||K>90||I.push([Math.max(65,K)|32,Math.min(N,90)|32]),N<97||K>122||I.push([Math.max(97,K)&-33,Math.min(N,122)&-33]))}}I.sort(function(Q,R){return Q[0]-R[0]||R[1]-Q[1]});M=[];K=[NaN,NaN];for(P=0;P<I.length;++P){L=I[P],L[0]<=K[1]+1?K[1]=Math.max(K[1],L[1]):M.push(K=L)}I=["["];O&&I.push("^");I.push.apply(I,J);for(P=0;P<M.length;++P){L=M[P],I.push(C(L[0])),L[1]>L[0]&&(L[1]+1>L[0]&&I.push("-"),I.push(C(L[1])))}I.push("]");return I.join("")}function E(J){for(var M=J.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),I=M.length,N=[],O=0,L=0;O<I;++O){var K=M[O];K==="("?++L:"\\"===K.charAt(0)&&(K=+K.substring(1))&&K<=L&&(N[K]=-1)}for(O=1;O<N.length;++O){-1===N[O]&&(N[O]=++G)}for(L=O=0;O<I;++O){K=M[O],K==="("?(++L,N[L]===void 0&&(M[O]="(?:")):"\\"===K.charAt(0)&&(K=+K.substring(1))&&K<=L&&(M[O]="\\"+N[L])}for(L=O=0;O<I;++O){"^"===M[O]&&"^"!==M[O+1]&&(M[O]="")}if(J.ignoreCase&&H){for(O=0;O<I;++O){K=M[O],J=K.charAt(0),K.length>=2&&J==="["?M[O]=A(K):J!=="\\"&&(M[O]=K.replace(/[A-Za-z]/g,function(P){P=P.charCodeAt(0);return"["+String.fromCharCode(P&-33,P|32)+"]"}))}}return M.join("")}for(var G=0,H=!1,x=!1,u=0,D=F.length;u<D;++u){var B=F[u];if(B.ignoreCase){x=!0}else{if(/[a-z]/i.test(B.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){H=!0;x=!1;break}}}for(var k={b:8,t:9,n:10,v:11,f:12,r:13},v=[],u=0,D=F.length;u<D;++u){B=F[u];if(B.global||B.multiline){throw Error(""+B)}v.push("(?:"+E(B)+")")}return RegExp(v.join("|"),x?"gi":"g")}function c(B){function u(E){switch(E.nodeType){case 1:if(x.test(E.className)){break}for(var F=E.firstChild;F;F=F.nextSibling){u(F)}F=E.nodeName;if("BR"===F||"LI"===F){w[D]="\n",C[D<<1]=A++,C[D++<<1|1]=E}break;case 3:case 4:F=E.nodeValue,F.length&&(F=k?F.replace(/\r\n?/g,"\n"):F.replace(/[\t\n\r ]+/g," "),w[D]=F,C[D<<1]=A,A+=F.length,C[D++<<1|1]=E)}}var x=/(?:^|\s)nocode(?:\s|$)/,w=[],A=0,C=[],D=0,v;B.currentStyle?v=B.currentStyle.whiteSpace:window.getComputedStyle&&(v=document.defaultView.getComputedStyle(B,q).getPropertyValue("white-space"));var k=v&&"pre"===v.substring(0,3);u(B);return{a:w.join("").replace(/\n$/,""),c:C}}function t(u,k,w,v){k&&(u={a:k,d:u},w(u),v.push.apply(v,u.e))}function h(u,k){function x(P){for(var F=P.d,C=[F,"pln"],L=0,J=P.a.match(A)||[],B={},E=0,N=J.length;E<N;++E){var K=J[E],O=B[K],D=void 0,M;if(typeof O==="string"){M=!1}else{var I=w[K.charAt(0)];if(I){D=K.match(I[1]),O=I[0]}else{for(M=0;M<v;++M){if(I=k[M],D=K.match(I[1])){O=I[0];break}}D||(O="pln")}if((M=O.length>=5&&"lang-"===O.substring(0,5))&&!(D&&typeof D[1]==="string")){M=!1,O="src"}M||(B[K]=O)}I=L;L+=K.length;if(M){M=D[1];var H=K.indexOf(M),G=H+M.length;D[2]&&(G=K.length-D[2].length,H=G-M.length);O=O.substring(5);t(F+I,K.substring(0,H),x,C);t(F+I+H,M,s(O,M),C);t(F+I+G,K.substring(G),x,C)}else{C.push(F+I,O)}}P.e=C}var w={},A;(function(){for(var G=u.concat(k),B=[],F={},H=0,E=G.length;H<E;++H){var D=G[H],I=D[3];if(I){for(var C=I.length;--C>=0;){w[I.charAt(C)]=D}}D=D[1];I=""+D;F.hasOwnProperty(I)||(B.push(D),F[I]=q)}B.push(/[\S\s]/);A=d(B)})();var v=k.length;return x}function o(u){var k=[],w=[];u.tripleQuotedStrings?k.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):u.multiLineStrings?k.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,q,"'\"`"]):k.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);u.verbatimStrings&&w.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var v=u.hashComments;v&&(u.cStyleComments?(v>1?k.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):k.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),w.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):k.push(["com",/^#[^\n\r]*/,q,"#"]));u.cStyleComments&&(w.push(["com",/^\/\/[^\n\r]*/,q]),w.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));u.regexLiterals&&w.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(v=u.types)&&w.push(["typ",v]);u=(""+u.keywords).replace(/^ | $/g,"");u.length&&w.push(["kwd",RegExp("^(?:"+u.replace(/[\s,]+/g,"|")+")\\b"),q]);k.push(["pln",/^\s+/,q," \r\n\t\xa0"]);w.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return h(k,w)}function r(H,x){function E(K){switch(K.nodeType){case 1:if(B.test(K.className)){break}if("BR"===K.nodeName){C(K),K.parentNode&&K.parentNode.removeChild(K)}else{for(K=K.firstChild;K;K=K.nextSibling){E(K)}}break;case 3:case 4:if(v){var k=K.nodeValue,L=k.match(I);if(L){var M=k.substring(0,L.index);K.nodeValue=M;(k=k.substring(L.index+L[0].length))&&K.parentNode.insertBefore(J.createTextNode(k),K.nextSibling);C(K);M||K.parentNode.removeChild(K)}}}}function C(K){function k(M,R){var Q=R?M.cloneNode(!1):M,P=M.parentNode;if(P){var P=k(P,1),O=M.nextSibling;P.appendChild(Q);for(var N=O;N;N=O){O=N.nextSibling,P.appendChild(N)}}return Q}for(;!K.nextSibling;){if(K=K.parentNode,!K){return}}for(var K=k(K.nextSibling,0),L;(L=K.parentNode)&&L.nodeType===1;){K=L}F.push(K)}var B=/(?:^|\s)nocode(?:\s|$)/,I=/\r\n?|\n/,J=H.ownerDocument,A;H.currentStyle?A=H.currentStyle.whiteSpace:window.getComputedStyle&&(A=J.defaultView.getComputedStyle(H,q).getPropertyValue("white-space"));var v=A&&"pre"===A.substring(0,3);for(A=J.createElement("LI");H.firstChild;){A.appendChild(H.firstChild)}for(var F=[A],D=0;D<F.length;++D){E(F[D])}x===(x|0)&&F[0].setAttribute("value",x);var u=J.createElement("OL");u.className="linenums";for(var w=Math.max(0,x-1|0)||0,D=0,G=F.length;D<G;++D){A=F[D],A.className="L"+(D+w)%10,A.firstChild||A.appendChild(J.createTextNode("\xa0")),u.appendChild(A)}H.appendChild(u)}function z(u,k){for(var w=k.length;--w>=0;){var v=k[w];y.hasOwnProperty(v)?window.console&&console.warn("cannot override language handler %s",v):y[v]=u}}function s(u,k){if(!u||!y.hasOwnProperty(u)){u=/^\s*</.test(k)?"default-markup":"default-code"}return y[u]}function p(X){var L=X.g;try{var T=c(X.h),Q=T.a;X.a=Q;X.c=T.c;X.d=0;s(L,Q)(X);var N=/\bMSIE\b/.test(navigator.userAgent),L=/\n/g,F=X.a,G=F.length,T=0,M=X.c,I=M.length,Q=0,U=X.e,R=U.length,X=0;U[R]=G;var H,K;for(K=H=0;K<R;){U[K]!==U[K+2]?(U[H++]=U[K++],U[H++]=U[K++]):K+=2}R=H;for(K=H=0;K<R;){for(var A=U[K],S=U[K+1],W=K+2;W+2<=R&&U[W+1]===S;){W+=2}U[H++]=A;U[H++]=S;K=W}for(U.length=H;Q<I;){var J=M[Q+2]||G,V=U[X+2]||G,W=Math.min(J,V),P=M[Q+1],O;if(P.nodeType!==1&&(O=F.substring(T,W))){N&&(O=O.replace(L,"\r"));P.nodeValue=O;var E=P.ownerDocument,D=E.createElement("SPAN");D.className=U[X+1];var B=P.parentNode;B.replaceChild(D,P);D.appendChild(P);T<J&&(M[Q+1]=P=E.createTextNode(F.substring(W,J)),B.insertBefore(P,D.nextSibling))}T=W;T>=J&&(Q+=2);T>=V&&(X+=2)}}catch(C){"console" in window&&console.log(C&&C.stack?C.stack:C)}}var m=["break,continue,do,else,for,if,return,while"],j=[[m,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],n=[j,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],l=[j,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],i=[l,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],j=[j,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],g=[m,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],f=[m,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],m=[m,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,b=/\S/,a=o({keywords:[n,i,j,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+g,f,m],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),y={};z(a,["default-code"]);z(h([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);z(h([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);z(h([],[["atv",/^[\S\s]+/]]),["uq.val"]);z(o({keywords:n,hashComments:!0,cStyleComments:!0,types:e}),["c","cc","cpp","cxx","cyc","m"]);z(o({keywords:"null,true,false"}),["json"]);z(o({keywords:i,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:e}),["cs"]);z(o({keywords:l,cStyleComments:!0}),["java"]);z(o({keywords:m,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);z(o({keywords:g,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);z(o({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);z(o({keywords:f,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);z(o({keywords:j,cStyleComments:!0,regexLiterals:!0}),["js"]);z(o({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);z(h([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(u,k,w){var v=document.createElement("PRE");v.innerHTML=u;w&&r(v,w);p({g:k,i:w,h:v});return v.innerHTML};window.prettyPrint=function(E){function v(){for(var L=window.PR_SHOULD_USE_CONTINUATION?w.now()+250:Infinity;u<A.length&&w.now()<L;u++){var O=A[u],I=O.className;if(I.indexOf("prettyprint")>=0){var I=I.match(B),K,H;if(H=!I){H=O;for(var M=void 0,N=H.firstChild;N;N=N.nextSibling){var J=N.nodeType,M=J===1?M?H:N:J===3?b.test(N.nodeValue)?H:M:M}H=(K=M===H?void 0:M)&&"CODE"===K.tagName}H&&(I=K.className.match(B));I&&(I=I[1]);H=!1;for(M=O.parentNode;M;M=M.parentNode){if((M.tagName==="pre"||M.tagName==="code"||M.tagName==="xmp")&&M.className&&M.className.indexOf("prettyprint")>=0){H=!0;break}}H||((H=(H=O.className.match(/\blinenums\b(?::(\d+))?/))?H[1]&&H[1].length?+H[1]:!0:!1)&&r(O,H),D={g:I,h:O,i:H},p(D))}}u<A.length?setTimeout(v,250):E&&E()}for(var C=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],A=[],x=0;x<C.length;++x){for(var F=0,G=C[x].length;F<G;++F){A.push(C[x][F])}}var C=q,w=Date;w.now||(w={now:function(){return +new Date}});var u=0,D,B=/\blang(?:uage)?-([\w.]+)(?!\S)/;v()};window.PR={createSimpleLexer:h,registerLangHandler:z,sourceDecorator:o,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();jQuery(document).ready(function(){$(".topbar").dropdown();prettyPrint()});
\ No newline at end of file
diff --git a/docs/2.2.8/js/fancy-box-activation.js b/docs/2.2.8/js/fancy-box-activation.js
new file mode 100644
index 0000000..d89cf52
--- /dev/null
+++ b/docs/2.2.8/js/fancy-box-activation.js
@@ -0,0 +1,18 @@
+$(document).ready(function(){
+ $("a.single_image").fancybox({
+   'transitionIn'	:	'elastic',
+   'transitionOut'	:	'elastic',
+   'speedIn'		:	600,
+   'speedOut'		:	200,
+   'overlayShow'	:	true
+ });
+ $("a.gallery_image").fancybox({
+   'transitionIn'	:	'elastic',
+   'transitionOut'	:	'elastic',
+   'speedIn'		:	600,
+   'speedOut'		:	200,
+   'overlayShow'	:	true,
+   'titlePosition': 'inside'
+ });
+});
+
diff --git a/docs/2.2.8/js/fancybox.js b/docs/2.2.8/js/fancybox.js
new file mode 100644
index 0000000..405602c
--- /dev/null
+++ b/docs/2.2.8/js/fancybox.js
@@ -0,0 +1,24 @@
+$(document).ready(function(){
+ /*rel gallery_image not define for html 5 introduce by js for fancybox */
+ $("a.gallery_image").attr('rel', 'gallery_image');
+
+ $("a#single_image").fancybox({
+   'transitionIn'	:	'elastic',
+   'transitionOut'	:	'elastic',
+   'speedIn'		:	600,
+   'speedOut'		:	200,
+   'overlayShow'	:	true
+ });
+ $("a.gallery_image").fancybox({
+   'openEffect'	:	'elastic',
+   'closeEffect'	:	'elastic',
+   'nextEffect'	:	'elastic',
+   'previousEffect'	:	'elastic',
+   'nextSpeed'		:	'normal',
+   'prevSpeed'		:	'normal',
+   'openSpeed'      : 'normal',
+   'closeSpeed'      : 'normal',
+   'overlayShow'	:	true,
+   'titlePosition': 'inside'
+ });
+});
\ No newline at end of file
diff --git a/docs/2.2.8/js/index.js b/docs/2.2.8/js/index.js
new file mode 100644
index 0000000..43a6db0
--- /dev/null
+++ b/docs/2.2.8/js/index.js
@@ -0,0 +1,26 @@
+$(document).ready(function(){
+  $('#screenshots-carousel').carousel({
+    interval: 2500
+  })
+
+  $('#carousel-prev' ).on("click", function(){
+    $('#screenshots-carousel').carousel('prev');
+  })
+
+  $('#carousel-next' ).on("click", function(){
+    $('#screenshots-carousel').carousel('next');
+  })
+  
+ $("#openDialogRelease" ).on("click",function(){
+   $('#dialogRelease').modal('show');
+ })
+   
+ $("#openDialogPreview" ).on("click",function(){
+    $('#dialogPreview').modal('show');
+  })
+
+  $("#carousel-main" ).addClass("features-preview");
+
+
+});
+
diff --git a/docs/2.2.8/js/jquery.fancybox.pack.2.1.5.js b/docs/2.2.8/js/jquery.fancybox.pack.2.1.5.js
new file mode 100755
index 0000000..73f7578
--- /dev/null
+++ b/docs/2.2.8/js/jquery.fancybox.pack.2.1.5.js
@@ -0,0 +1,46 @@
+/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
+(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0<a.indexOf("%")},l=function(a,d){var e=parseInt(a,10)||0;d&&E(a)&&(e*=b.getViewport()[d]/100);return Math.ceil(e)},w=function(a,b){return l(a,b)+"px"};f.extend(b,{version:"2.1.5",defaults:{padding:15,margin:20,
+width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!s,fitToView:!0,aspectRatio:!1,topRatio:0.5,leftRatio:0.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},
+keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+
+(I?' allowtransparency="true"':"")+"></iframe>",error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,
+openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,
+isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,
+c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&&
+k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current||
+b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer=
+setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index<b.group.length-1))b.player.isActive=!0,p.bind({"onCancel.player beforeClose.player":c,"onUpdate.player":e,"beforeLoad.player":d}),e(),b.trigger("onPlayStart")}else c()},next:function(a){var d=b.current;d&&(q(a)||(a=d.direction.next),b.jumpto(d.index+1,a,"next"))},prev:function(a){var d=b.current;
+d&&(q(a)||(a=d.direction.prev),b.jumpto(d.index-1,a,"prev"))},jumpto:function(a,d,e){var c=b.current;c&&(a=l(a),b.direction=d||c.direction[a>=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d=
+a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")),
+b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(),
+y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement;
+if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1<a.group.length&&k[c]!==v)return b[d](k[c]),e.preventDefault(),!1;if(-1<f.inArray(c,k))return b[d](),e.preventDefault(),!1})}),f.fn.mousewheel&&a.mouseWheel&&b.wrap.bind("mousewheel.fb",function(d,c,k,g){for(var h=f(d.target||null),j=!1;h.length&&!j&&!h.is(".fancybox-skin")&&!h.is(".fancybox-wrap");)j=h[0]&&!(h[0].style.overflow&&"hidden"===h[0].style.overflow)&&
+(h[0].clientWidth&&h[0].scrollWidth>h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1<b.group.length&&!a.canShrink){if(0<g||0<k)b.prev(0<g?"down":"left");else if(0>g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,
+{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,
+mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=
+!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");
+"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=
+this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href);
+f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,
+e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,
+outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("<div>").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}",
+g);break;case "swf":e='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+g+'"></param>',h="",f.each(a.swf,function(a,b){e+='<param name="'+a+'" value="'+b+'"></param>';h+=" "+a+'="'+b+'"'}),e+='<embed src="'+g+'" type="application/x-shockwave-flash" width="100%" height="100%"'+h+"></embed></object>"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll":
+"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside?
+h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth||
+h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),c<m&&(c=m,j=l(c/D)),j<u&&(j=u,c=l(j*D))):(c=Math.max(m,Math.min(c,n)),h.autoHeight&&
+"iframe"!==h.type&&(g.width(c),j=g.height()),j=Math.max(u,Math.min(j,p)));if(h.fitToView)if(g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height(),h.aspectRatio)for(;(a>z||y>r)&&(c>m&&j>u)&&!(19<d++);)j=Math.max(u,Math.min(p,j-10)),c=l(j*D),c<m&&(c=m,j=l(c/D)),c>n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&j<A&&c+x+q<z)&&(c+=q);g.width(c).height(j);e.width(c+x);a=e.width();
+y=e.height();e=(a>z||y>r)&&c>m&&j>u;c=h.aspectRatio?c<F&&j<B&&c<C&&j<A:(c<F||j<B)&&(c<C||j<A);f.extend(h,{dim:{width:w(a),height:w(y)},origWidth:C,origHeight:A,canShrink:e,canExpand:c,wPadding:x,hPadding:v,wrapSpace:y-k.outerHeight(!0),skinSpace:k.height()-j});!H&&(h.autoHeight&&j>u&&j<p&&!c)&&g.height("auto")},_getPosition:function(a){var d=b.current,e=b.getViewport(),c=d.margin,f=b.wrap.width()+c[1]+c[3],g=b.wrap.height()+c[0]+c[2],c={position:"absolute",top:c[0],left:c[3]};d.autoCenter&&d.fixed&&
+!a&&g<=e.h&&f<=e.w?c.position="fixed":d.locked||(c.top+=e.y,c.left+=e.x);c.top=w(Math.max(c.top,c.top+(e.h-g)*d.topRatio));c.left=w(Math.max(c.left,c.left+(e.w-f)*d.leftRatio));return c},_afterZoomIn:function(){var a=b.current;a&&(b.isOpen=b.isOpened=!0,b.wrap.css("overflow","visible").addClass("fancybox-opened"),b.update(),(a.closeClick||a.nextClick&&1<b.group.length)&&b.inner.css("cursor","pointer").bind("click.fb",function(d){!f(d.target).is("a")&&!f(d.target).parent().is("a")&&(d.preventDefault(),
+b[a.closeClick?"close":"next"]())}),a.closeBtn&&f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb",function(a){a.preventDefault();b.close()}),a.arrows&&1<b.group.length&&((a.loop||0<a.index)&&f(a.tpl.prev).appendTo(b.outer).bind("click.fb",b.prev),(a.loop||a.index<b.group.length-1)&&f(a.tpl.next).appendTo(b.outer).bind("click.fb",b.next)),b.trigger("afterShow"),!a.loop&&a.index===a.group.length-1?b.play(!1):b.opts.autoPlay&&!b.player.isActive&&(b.opts.autoPlay=!1,b.play()))},_afterZoomOut:function(a){a=
+a||b.current;f(".fancybox-wrap").trigger("onReset").remove();f.extend(b,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null});b.trigger("afterClose",a)}});b.transitions={getOrigPosition:function(){var a=b.current,d=a.element,e=a.orig,c={},f=50,g=50,h=a.hPadding,j=a.wPadding,m=b.getViewport();!e&&(a.isDom&&d.is(":visible"))&&(e=d.find("img:first"),e.length||(e=d));t(e)?(c=e.offset(),e.is("img")&&(f=e.outerWidth(),g=e.outerHeight())):
+(c.top=m.y+(m.h-g)*a.topRatio,c.left=m.x+(m.w-f)*a.leftRatio);if("fixed"===b.wrap.css("position")||a.locked)c.top-=m.y,c.left-=m.x;return c={top:w(c.top-h*a.topRatio),left:w(c.left-j*a.leftRatio),width:w(f+j),height:w(g+h)}},step:function(a,d){var e,c,f=d.prop;c=b.current;var g=c.wrapSpace,h=c.skinSpace;if("width"===f||"height"===f)e=d.end===d.start?1:(a-d.start)/(d.end-d.start),b.isClosing&&(e=1-e),c="width"===f?c.wPadding:c.hPadding,c=a-c,b.skin[f](l("width"===f?c:c-g*e)),b.inner[f](l("width"===
+f?c:c-g*e-h*e))},zoomIn:function(){var a=b.current,d=a.pos,e=a.openEffect,c="elastic"===e,k=f.extend({opacity:1},d);delete k.position;c?(d=this.getOrigPosition(),a.openOpacity&&(d.opacity=0.1)):"fade"===e&&(d.opacity=0.1);b.wrap.css(d).animate(k,{duration:"none"===e?0:a.openSpeed,easing:a.openEasing,step:c?this.step:null,complete:b._afterZoomIn})},zoomOut:function(){var a=b.current,d=a.closeEffect,e="elastic"===d,c={opacity:0.1};e&&(c=this.getOrigPosition(),a.closeOpacity&&(c.opacity=0.1));b.wrap.animate(c,
+{duration:"none"===d?0:a.closeSpeed,easing:a.closeEasing,step:e?this.step:null,complete:b._afterZoomOut})},changeIn:function(){var a=b.current,d=a.nextEffect,e=a.pos,c={opacity:1},f=b.direction,g;e.opacity=0.1;"elastic"===d&&(g="down"===f||"up"===f?"top":"left","down"===f||"right"===f?(e[g]=w(l(e[g])-200),c[g]="+=200px"):(e[g]=w(l(e[g])+200),c[g]="-=200px"));"none"===d?b._afterZoomIn():b.wrap.css(e).animate(c,{duration:a.nextSpeed,easing:a.nextEasing,complete:b._afterZoomIn})},changeOut:function(){var a=
+b.previous,d=a.prevEffect,e={opacity:0.1},c=b.direction;"elastic"===d&&(e["down"===c||"up"===c?"top":"left"]=("up"===c||"left"===c?"-":"+")+"=200px");a.wrap.animate(e,{duration:"none"===d?0:a.prevSpeed,easing:a.prevEasing,complete:function(){f(this).trigger("onReset").remove()}})}};b.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!s,fixed:!0},overlay:null,fixed:!1,el:f("html"),create:function(a){a=f.extend({},this.defaults,a);this.overlay&&this.close();this.overlay=
+f('<div class="fancybox-overlay"></div>').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?
+b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth),
+p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"===
+f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=
+b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('<div class="fancybox-title fancybox-title-'+c+'-wrap">'+e+"</div>");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner('<span class="child"></span>'),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,
+e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+
+":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('<div style="position:fixed;top:20px;"></div>').appendTo("body");var e=20===
+d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("<style type='text/css'>.fancybox-margin{margin-right:"+(d-a)+"px;}</style>").appendTo("head")})})(window,document,jQuery);
\ No newline at end of file
diff --git a/docs/2.2.8/js/jquery.mousewheel-3.0.6.pack.js b/docs/2.2.8/js/jquery.mousewheel-3.0.6.pack.js
new file mode 100644
index 0000000..e39a83a
--- /dev/null
+++ b/docs/2.2.8/js/jquery.mousewheel-3.0.6.pack.js
@@ -0,0 +1,13 @@
+/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
+ * Licensed under the MIT License (LICENSE.txt).
+ *
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
+ *
+ * Version: 3.0.6
+ * 
+ * Requires: 1.2.2+
+ */
+(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=
+d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
\ No newline at end of file
diff --git a/docs/2.2.8/js/tour-index.js b/docs/2.2.8/js/tour-index.js
new file mode 100644
index 0000000..0ee0052
--- /dev/null
+++ b/docs/2.2.8/js/tour-index.js
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+$(document).ready(function() {
+  $("a#single_image").fancybox({
+    'transitionIn'	:	'elastic',
+    'transitionOut'	:	'elastic',
+    'speedIn'		:	600,
+    'speedOut'		:	200,
+    'overlayShow'	:	true
+  });
+  $("a.gallery_image").fancybox({
+    'transitionIn'	:	'elastic',
+    'transitionOut'	:	'elastic',
+    'speedIn'		:	400,
+    'speedOut'		:	300,
+    'overlayShow'	:	true,
+    'titlePosition': 'inside'
+  });
+});
\ No newline at end of file
diff --git a/docs/2.2.8/jsui/generics-js.html b/docs/2.2.8/jsui/generics-js.html
new file mode 100644
index 0000000..bc8bff2
--- /dev/null
+++ b/docs/2.2.8/jsui/generics-js.html
@@ -0,0 +1,269 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/xdoc/jsui/generics-js.xml
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="author" content="Olivier Lamy" />
+    <title>Archiva &#x2013; Generics Javascript</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Generics Javascript</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+
+  
+
+    <script src="../js/jquery.fancybox.pack.2.1.5.js" type="text/javascript"></script>
+    <script src="../js/jquery.mousewheel-3.0.6.pack.js" type="text/javascript"></script>
+    <link rel="stylesheet" href="../css/jquery.fancybox.2.1.5.css" type="text/css" media="screen" />
+    <script type="text/javascript" src="../js/fancy-box-activation.js"></script>
+
+    
+<ul>
+<li><a href="#Generics_Javascript">Generics Javascript</a>
+<ul>
+<li><a href="#User_messages">User messages</a></li>
+<li><a href="#Success_message">Success message</a></li>
+<li><a href="#Error_message">Error message</a></li>
+<li><a href="#Modal_Confirm_dialog">Modal Confirm dialog</a></li></ul></li></ul>
+
+    <section>
+<h2><a name="Generics_Javascript"></a>Generics Javascript</h2>
+      
+<p>Some common/generic javascript methods are available.</p>
+      <section>
+<h3><a name="User_messages"></a>User messages</h3>
+      
+<p>A div &quot;user-messages&quot; is reserved for user messages.</p>
+        </section><section>
+<h3><a name="Success_message"></a>Success message</h3>
+          
+<p>
+            Javascript function:
+            </p>
+<div class="source"><pre class="prettyprint">
+displaySuccessMessage($.i18n.prop('managedrepository.added'));
+// the second parameter is optionnal by default #user-messages id is used
+displaySuccessMessage=function(text,idToAppend){
+            </pre></div>
+            <a href="../images/success-message.png" class="single_image" title="Success Message">
+              <img src="../images/success-message.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              Success Message
+            </a>
+          
+        </section>
+
+        <section>
+<h3><a name="Error_message"></a>Error message</h3>
+          
+<p>
+            Javascript function:
+            </p>
+<div class="source"><pre class="prettyprint">
+displayErrorMessage($.i18n.prop('managedrepository.added'));
+// the second parameter is optionnal by default #user-messages id is used
+displayErrorMessage=function(text,idToAppend){
+            </pre></div>
+            <a href="../images/error-message.png" class="single_image" title="Error Message">
+              <img src="../images/error-message.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              Error Message
+            </a>
+          
+        </section>
+      
+      <section>
+<h3><a name="Modal_Confirm_dialog"></a>Modal Confirm dialog</h3>
+        
+<p>
+          Javascript function:
+          </p>
+<div class="source"><pre class="prettyprint">
+  /**
+   * open a confirm dialog based on bootstrap modal
+   * @param okFn callback function to call on ok confirm
+   * @param okMessage message in the ok button
+   * @param cancelMessage message in the cancel button
+   * @param title title of the modal box
+   * @param bodyText html content of the modal box
+   */
+  openDialogConfirm=function(okFn, okMessage, cancelMessage, title,bodyText){
+          </pre></div>
+          <a href="../images/modal-confirm-dialog.png" class="single_image" title="Modal Confirm dialog">
+            <img src="../images/modal-confirm-dialog.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+            Modal Confirm dialog
+          </a>
+        
+      </section>
+    </section>
+  
+
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/jsui/i18n.html b/docs/2.2.8/jsui/i18n.html
new file mode 100644
index 0000000..e51549b
--- /dev/null
+++ b/docs/2.2.8/jsui/i18n.html
@@ -0,0 +1,202 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/jsui/i18n.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="date" content="2012-01-19" />
+    <title>Archiva &#x2013; i18n</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">i18n</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="i18n_management"></a>i18n management</h2>
+<p>The js library <a class="externalLink" href="http://code.google.com/p/jquery-i18n-properties">jquery-i18n-properties</a> is used for i18n.</p>
+<p>On application loading, i18n properties are loaded by calling a REST services with the browser lang or with the requested language specified by the request parameter : ?request_lang=en.</p>
+<p>This service will load properties in this order:</p>
+<ul>
+<li>redback properties in en then in specified language</li>
+<li>archiva properties (from org/apache/archiva/i18n/default.properties) in en then in specified language</li></ul><section>
+<h3><a name="Javascript_method"></a>Javascript method</h3>
+<p>Simple i18n value without any value</p>
+<div class="source"><pre class="prettyprint">Javascript code :
+$.i18n.prop(&quot;save&quot;)  will return the value for key save</pre></div>
+<p>You can pass some values too (sample for property managedrepository.deleted=Managed Repository &quot; {0} &quot; deleted. )</p>
+<div class="source"><pre class="prettyprint">Javascript code :
+$.i18n.prop(&quot;managedrepository.deleted&quot;,managedRepository.name())
+if  managedRepository.name() is &quot;foo&quot;
+response will be Managed Repository &quot; foo &quot; deleted.</pre></div></section><section>
+<h3><a name="Missing_properties"></a>Missing properties</h3>
+<p>In case of missing property, the key is returned.</p></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/jsui/index.html b/docs/2.2.8/jsui/index.html
new file mode 100644
index 0000000..335b54d
--- /dev/null
+++ b/docs/2.2.8/jsui/index.html
@@ -0,0 +1,376 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/xdoc/jsui/index.xml
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="author" content="Olivier Lamy" />
+    <title>Archiva &#x2013; Archiva Javascript application General design</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Archiva Javascript application General design</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+
+  
+
+    <script src="../js/jquery.fancybox.pack.2.1.5.js" type="text/javascript"></script>
+    <script src="../js/jquery.mousewheel-3.0.6.pack.js" type="text/javascript"></script>
+    <link rel="stylesheet" href="../css/jquery.fancybox.2.1.5.css" type="text/css" media="screen" />
+    <script type="text/javascript" src="../js/fancy-box-activation.js"></script>
+
+
+    
+<ul>
+<li><a href="#Archiva_Javascript_Web_Application">Archiva Javascript Web Application</a>
+<ul>
+<li><a href="#General_design">General design</a></li>
+<li><a href="#Runtime_Properties">Runtime Properties</a></li>
+<li><a href="#Used_Javascript_frameworks">Used Javascript frameworks</a></li>
+<li><a href="#Sources_organisation">Sources organisation</a></li>
+<li><a href="#js_directory">js directory</a></li>
+<li><a href="#Start_page">Start page</a></li>
+<li><a href="#Grid.2Fedit_model">Grid/edit model</a></li></ul></li></ul>
+
+    <section>
+<h2><a name="Archiva_Javascript_Web_Application"></a>Archiva Javascript Web Application</h2>
+      <section>
+<h3><a name="General_design"></a>General design</h3>
+        
+<p>
+          The goal is to have a &quot;one page loading&quot; javascript application.
+          <br />
+          For this the only html page will contains a div with id &quot;main-content&quot; this div will be populated
+          by jquery template execution (see <a href="./template-loading.html">template loading</a>).
+          <br />
+          The server will be contacted only for REST request/response (see <a href="./rest.html">details</a>).
+          <br />
+          <b>All UI rendering will be done only on client side.</b>
+          <br />
+          As we are not designer :-), the application will use the <a class="externalLink" href="http://twitter.github.com/bootstrap" target="_blank">twitter bootstrap css</a>.
+        </p>
+      </section>
+      <section>
+<h3><a name="Runtime_Properties"></a>Runtime Properties</h3>
+        
+<p>The application is designed to use http cache mechanism for css, javascript. Except REST call to get datas which will never use cache as a query timestamp parameter is used.
+          But as this can cause issue in developpement phase, two system properties (disabled by default) prevent can prevent caching and/or help debuging
+          </p>
+<ul>
+            
+<li>archiva.devMode=true/false: if true will add a timestamp query parameter for loading js and html templates.</li>
+            
+<li>archiva.javascriptLog=true/false: will activate javascript log, method available with $.log(msg)</li>
+            
+<li>archiva.logMissingI18n=true/false: will activate remote logging of missing i18n key in the servlet container log:  INFO  archivaMissingi18n.logger  - missing i18n key : 'proxy-connectors.grid.managedrepo.title'</li>
+          </ul>
+        
+      </section>
+      <section>
+<h3><a name="Used_Javascript_frameworks"></a>Used Javascript frameworks</h3>
+        
+<p>
+        We use some well known javascript framework librairies :
+        </p>
+<ul>
+          
+<li><a class="externalLink" href="http://jquery.com/" target="_blank">jquery</a>.</li>
+
+          
+<li><a class="externalLink" href="http://sammyjs.org" target="_blank">sammyjs for hash navigation</a></li>
+
+          
+<li><a class="externalLink" href="http://requirejs.org" target="_blank">requirejs</a> for template loading (see <a href="./template-loading.html">details</a>).</li>
+
+          
+<li><a class="externalLink" href="http://code.google.com/p/jquery-i18n-properties" target="_blank">jquery-i18n-properties</a> for i18n loading (see <a href="./i18n.html">details</a>).</li>
+
+          
+<li><a class="externalLink" href="http://knockoutjs.com" target="_blank">knockoutjs</a> as we use a MVVM pattern (see <a href="./knockout-binding.html">knockout binding</a>).</li>
+
+          
+<li><a class="externalLink" href="http://twitter.github.com/bootstrap/javascript.html" target="_blank">twitter bootstrap js</a> to magnify the ui.</li>
+
+          
+<li><a class="externalLink" href="http://bassistance.de/jquery-plugins/jquery-plugin-validation" target="_blank">jquery validate</a> for form validation.</li>
+        </ul>
+        
+      </section>
+      <section>
+<h3><a name="Sources_organisation"></a>Sources organisation</h3>
+        
+<p>
+          Sources are located in src/main/webapp of the archiva-webapp module :
+          </p>
+<ul>
+            
+<li>css</li>
+            
+<li>images</li>
+            
+<li>js</li>
+          </ul>
+        
+        </section><section>
+<h3><a name="js_directory"></a>js directory</h3>
+          
+<p>
+            Root directory contains external libraries.
+          </p>
+          
+<p>
+            archiva directory contains archiva js files with a subdirectory templates which contains templates
+          </p>
+          
+<p>
+            redback directory contains redback js files with a subdirectory templates which contains templates
+          </p>
+        </section>
+      
+
+      <section>
+<h3><a name="Start_page"></a>Start page</h3>
+        
+<p>
+          The main page will load javascript files, load <a href="./i18n.html">i18n</a>, <a href="./template-loading.html">load templates</a> and insert menu.
+          <br />
+          This main page is divided in 3 parts:
+          
+<p>
+            <a href="../images/start-screen.png" class="single_image" title="Start Page">
+              <img src="../images/start-screen.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              Start Page
+            </a>
+          </p>
+          
+<p>
+            </p>
+<ul>
+              
+<li>#topbar-menu-container is populated with the template js/archiva/templates/topbar.html.</li>
+              
+<li>#sidebar-content is populated with the template js/archiva/templates/menu.html.</li>
+              
+<li>#main-content is the place where screen will appear.</li>
+              
+<li>hidden #html-fragments will contains loaded templates.</li>
+            </ul>
+          
+          
+<p>
+            Link are visible/hide depending on needed redback karmas.
+            You can configure redback operations needed for a link using the attribute redback-permissions in your html element
+            (by default element needed karma must be marked display: none):
+            </p>
+<div class="source"><pre class="prettyprint">
+
+Support array: at least one operation is needed:
+&lt;div .... redback-permissions=&quot;{permissions: ['archiva-manage-users','archiva-manage-configuration']}&quot; style=&quot;display: none&quot;&gt;
+Support single value:
+&lt;li style=&quot;display: none&quot; redback-permissions=&quot;{permissions: ['archiva-manage-users']}&quot;&gt;
+
+            </pre></div>
+
+          
+        
+      </section>
+
+      <section>
+<h3><a name="Grid.2Fedit_model"></a>Grid/edit model</h3>
+        
+<p>We use a tab/pill models to display grid of datas and edit/add form:
+          </p>
+<ul>
+            
+<li>
+              One tab/pill display the grid
+              <a href="../images/repo-grids.png" class="single_image" title="Repositories Grid">
+                <img src="../images/repo-grids.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+                Repositories Grid
+              </a>
+            </li>
+            
+<li>
+              One tab/pill display the edit/add form. <b>As we use knockout framework grid will be updated with new value from add/edit form automatically.</b>
+              <a href="../images/repo-edit.png" class="single_image" title="Repositories Edit/Add">
+                <img src="../images/repo-edit.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+                Repositories Edit/Add
+              </a>
+            </li>
+          </ul>
+          Have a look at the page <a href="./knockout-binding.html">knockout-binding</a> for more explanation.
+        
+      </section>
+
+    </section>
+  
+
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/jsui/knockout-binding.html b/docs/2.2.8/jsui/knockout-binding.html
new file mode 100644
index 0000000..c3206cb
--- /dev/null
+++ b/docs/2.2.8/jsui/knockout-binding.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/jsui/knockout-binding.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="date" content="2012-01-19" />
+    <title>Archiva &#x2013; Knockout binding</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Knockout binding</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Knockout_binding"></a>Knockout binding</h2>
+<p>Explanation on the managed repositories list/edit/add screen.</p>
+<ul>
+<li><a href="#Knockout_binding">Knockout binding</a>
+<ul>
+<li><a href="#Javascript_Beans">Javascript Beans</a></li>
+<li><a href="#View_Model">View Model</a>
+<ul>
+<li><a href="#First_you_must_insert_your_template_in_the_.23main-content_div">First you must insert your template in the #main-content div</a></li>
+<li><a href="#You_can_now_create_your_view_model.">You can now create your view model.</a></li>
+<li><a href="#Grid_binding">Grid binding</a></li></ul></li>
+<li><a href="#View_definition">View definition</a>
+<ul>
+<li><a href="#Binding_definition">Binding definition</a></li>
+<li><a href="#Template_content">Template content</a></li></ul></li></ul></li></ul><section>
+<h3><a name="Javascript_Beans"></a>Javascript Beans</h3>
+<p>First you must map the json response on a Javascript bean (a bit borying task :-) )</p>
+<div class="source"><pre class="prettyprint">Java class with fields
+
+public class ManagedRepository
+  //private String id;
+
+  //private String name;
+  ....
+
+Javascript
+ManagedRepository=function(id,name,.....){
+
+  this.id=ko.observable(id);
+
+  this.name=ko.observable(name);
+
+mapping function (to map the json result to your javascript beans)
+
+  mapManagedRepositories=function(data){
+    var mappedManagedRepositories = $.map(data.managedRepository, function(item) {
+      return mapManagedRepository(item);
+    });
+    return mappedManagedRepositories;
+  }
+  mapManagedRepository=function(data){
+    if (data==null){
+      return null;
+    }
+    return new ManagedRepository(data.id,data.name,data.layout,data.indexDirectory,data.location,data.snapshots,data.releases,
+                                 data.blockRedeployments,data.cronExpression,
+                                 data.scanned,data.daysOlder,data.retentionCount,data.deleteReleasedSnapshots,data.stageRepoNeeded);
+  }
+</pre></div>
+<p><code>NOTE to have access to field values you must now managedRepository.name() </code></p></section><section>
+<h3><a name="View_Model"></a>View Model</h3><section>
+<h4><a name="First_you_must_insert_your_template_in_the_.23main-content_div"></a>First you must insert your template in the #main-content div</h4>
+<div class="source"><pre class="prettyprint">// it's a jquery template as we do some i18n transformations
+$(&quot;#main-content&quot;).html($(&quot;#repositoriesMain&quot;).tmpl());</pre></div></section><section>
+<h4><a name="You_can_now_create_your_view_model."></a>You can now create your view model.</h4>
+<div class="source"><pre class="prettyprint">ManagedRepositoriesViewModel=function(){
+  //field which will receive values
+  this.managedRepositories=ko.observableArray([]);
+  // method which will edit an entry: an other view model is created
+  editManagedRepository=function(managedRepository){
+    var viewModel = new ManagedRepositoryViewModel(managedRepository,true,self);
+    ...
+    ko.applyBindings(viewModel,$(&quot;#main-content #managed-repository-edit&quot;).get(0));
+    ..
+  }
+  // method which will delete an entry
+  removeManagedRepository=function(managedRepository){
+    ......
+  }
+}</pre></div></section><section>
+<h4><a name="Grid_binding"></a>Grid binding</h4>
+<p>The ManagedRepositoriesViewModel is used as it with a custom grid binding (knockout has a feature to create own binding so we use one called <code>simpleGrid</code> which will display grids.</p>
+<p>Grid view initialisation code (some details omitted) :</p>
+<div class="source"><pre class="prettyprint">    var managedRepositoriesViewModel = new ManagedRepositoriesViewModel();
+
+    $.ajax(&quot;restServices/archivaServices/managedRepositoriesService/getManagedRepositories&quot;, {
+        type: &quot;GET&quot;,
+        dataType: 'json',
+        success: function(data) {
+          // data mapping json -&gt; javascript
+          managedRepositoriesViewModel.managedRepositories(mapManagedRepositories(data));
+          // we define here our grid view model for fields only displayed
+          managedRepositoriesViewModel.gridViewModel = new ko.simpleGrid.viewModel({
+            data: managedRepositoriesViewModel.managedRepositories,
+            columns: [
+              {
+                headerText: $.i18n.prop('identifier'),
+                rowText: &quot;id&quot;
+              },
+              {
+                headerText: $.i18n.prop('name'),
+                rowText: &quot;name&quot;
+              },
+              {
+              headerText: $.i18n.prop('type'),
+              rowText: &quot;getTypeLabel&quot;,
+              // FIXME i18n
+              title: &quot;Repository type (default is Maven 2)&quot;
+              }
+            ],
+            // max items per size, the binding has a pagination feature
+            pageSize: 5,
+            // we can define here a callback function which be called on all grid change (adding/updating/removing values from the array)
+            gridUpdateCallBack: function(){
+              $(&quot;#main-content #managed-repositories-table [title]&quot;).tooltip();
+            }
+          });
+          // apply the binding on the specified node
+          ko.applyBindings(managedRepositoriesViewModel,$(&quot;#main-content #managed-repositories-table&quot;).get(0));
+        }
+      }
+    );</pre></div></section></section><section>
+<h3><a name="View_definition"></a>View definition</h3><section>
+<h4><a name="Binding_definition"></a>Binding definition</h4>
+<p>We have applyed binding on the node with id &quot;#managed-repositories-table&quot;. The binding definition is:</p>
+<div class="source"><pre class="prettyprint">  &lt;table class=&quot;bordered-table zebra-striped&quot; id=&quot;managed-repositories-table&quot;
+         data-bind=&quot;simpleGrid: gridViewModel,simpleGridTemplate:'ko_managed-repositoriesGrid',pageLinksId:'managed-repositoriesPagination',data:'managedRepositories'&quot;&gt;
+  &lt;/table&gt;</pre></div>
+<ul>
+<li>simpleGrid: gridViewModel = field name for the view model (see sample above)</li>
+<li>simpleGridTemplate:'ko_managed-repositoriesGrid' = name of the template to use (see below)</li>
+<li>pageLinksId:'managed-repositoriesPagination' = name of the template to use for pagination.</li>
+<li>data:'managedRepositories' = fields which contains data to pass to pass to the template</li></ul></section><section>
+<h4><a name="Template_content"></a>Template content</h4>
+<p>Template used for grid display (some details omitted).</p>
+<div class="source"><pre class="prettyprint">&lt;script id='ko_managed-repositoriesGrid' type='text/x-jquery-tmpl'&gt;
+  &lt;thead&gt;
+      &lt;tr&gt;
+        // display read only fields defined in ko.simpleGrid.viewModel.columns (see above)
+        {{each(i, columnDefinition) columns}}
+          &lt;th title=&quot;${ columnDefinition.title }&quot;&gt;${ columnDefinition.headerText }&lt;/th&gt;
+        {{/each}}
+        &lt;th&gt;Releases&lt;/th&gt;
+        .....
+        // custom columns
+        &lt;th&gt;${$.i18n.prop('edit')}&lt;/th&gt;
+        &lt;th&gt;${$.i18n.prop('delete')}&lt;/th&gt;
+      &lt;/tr&gt;
+  &lt;/thead&gt;
+  &lt;tbody&gt;
+      {{each(i, row) itemsOnCurrentPage()}}
+          &lt;tr&gt;
+            // display read only fields defined in ko.simpleGrid.viewModel.columns (see above)
+            {{each(j, columnDefinition) columns}}
+              &lt;td&gt;${ typeof columnDefinition.rowText == 'function' ? columnDefinition.rowText(row) : row[columnDefinition.rowText] }&lt;/td&gt;
+            {{/each}}
+            // custom columns which images depending on a value
+            &lt;td&gt;
+            {{if row.releases() == true}}
+              &lt;img src=&quot;images/weather-clear.png&quot; title=&quot;${$.i18n.prop('release.included')}&quot;/&gt;
+            {{else}}
+              &lt;img src=&quot;images/dialog-error.png&quot; title=&quot;${$.i18n.prop('release.notincluded')}&quot;/&gt;
+            {{/if}}
+            &lt;/td&gt;
+            .....
+            // custom columns with binding mapped to ManagedRepositoriesViewModel methods
+            &lt;td&gt;&lt;a href=&quot;#&quot; data-bind=&quot;click: function(){ editManagedRepository(row) }&quot;&gt;${$.i18n.prop('edit')}&lt;/a&gt;&lt;/td&gt;
+            &lt;td&gt;
+              &lt;a href=&quot;#&quot; data-bind=&quot;click: function(){ removeManagedRepository(row) }&quot;&gt;
+                &lt;img src=&quot;images/edit-cut.png&quot; title=&quot;${$.i18n.prop('delete')}&quot;/&gt;
+              &lt;/a&gt;
+            &lt;/td&gt;
+            .....
+          &lt;/tr&gt;
+      {{/each}}
+  &lt;/tbody&gt;
+</pre></div></section></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/jsui/rest.html b/docs/2.2.8/jsui/rest.html
new file mode 100644
index 0000000..fdb1b54
--- /dev/null
+++ b/docs/2.2.8/jsui/rest.html
@@ -0,0 +1,295 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/jsui/rest.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="date" content="2012-01-19" />
+    <title>Archiva &#x2013; REST Services</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">REST Services</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Expose_Rest_Services"></a>Expose Rest Services</h2>
+<p>The <a class="externalLink" href="http://cxf.apache.org">Apache CXF</a> is used to expose some classes/methods as REST Services.</p>
+<p>Services use the standard interface/implementation pattern:</p>
+<ul>
+<li>interfaces and beans are located in archiva-rest-api maven module</li>
+<li>implementation are located in archiva-rest-services maven module</li></ul>
+<ul>
+<li><a href="#Expose_Rest_Services">Expose Rest Services</a>
+<ul>
+<li><a href="#Steps_to_expose_your_class_as_a_REST_Service.">Steps to expose your class as a REST Service.</a>
+<ul>
+<li><a href="#Interface_and_data_beans">Interface and data beans</a>
+<ul>
+<li><a href="#Beans">Beans</a></li>
+<li><a href="#JAXRS_annotations">JAXRS annotations</a></li></ul></li>
+<li><a href="#CXF.2FSpring_configuration">CXF/Spring configuration</a></li>
+<li><a href="#Redback_security_annotation">Redback security annotation</a></li></ul></li></ul></li></ul><section>
+<h3><a name="Steps_to_expose_your_class_as_a_REST_Service."></a>Steps to expose your class as a REST Service.</h3>
+<p>Here all the steps to expose a new class as a REST service.</p><section>
+<h4><a name="Interface_and_data_beans"></a>Interface and data beans</h4>
+<p>All interfaces and data beans are added in the module archiva-rest-api:</p>
+<ul>
+<li>interface in the package: org.apache.archiva.rest.api.services .</li>
+<li>data beans in the package: org.apache.archiva.rest.api.model .</li></ul><section>
+<h5><a name="Beans"></a>Beans</h5>
+<p>As we want to be able to expose result as json or xml type, all beans use javax.xml.bind.annotation root element :</p>
+<div class="source"><pre class="prettyprint">@XmlRootElement( name = &quot;artifact&quot; )
+public class Artifact
+    implements Serializable
+
+All services will be able to return json or xml
+@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )</pre></div></section><section>
+<h5><a name="JAXRS_annotations"></a>JAXRS annotations</h5>
+<p>As we use interfaces/implementations pattern jaxrs annotations are only in interfaces level.</p>
+<div class="source"><pre class="prettyprint">@Path( &quot;/managedRepositoriesService/&quot; )
+public interface ManagedRepositoriesService
+{
+    // simple GET method no parameter
+    @Path( &quot;getManagedRepositories&quot; )
+    @GET
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
+    List&lt;ManagedRepository&gt; getManagedRepositories()
+        throws ArchivaRestServiceException;
+
+    // GET method with a path parameter
+    @Path( &quot;getManagedRepository/{repositoryId}&quot; )
+    @GET
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
+    @RedbackAuthorization( permissions = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
+    ManagedRepository getManagedRepository( @PathParam( &quot;repositoryId&quot; ) String repositoryId )
+        throws ArchivaRestServiceException;
+
+    // POST  method to pass a data bean
+    @Path( &quot;addManagedRepository&quot; )
+    @POST
+    @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
+    @RedbackAuthorization( permissions = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
+    ManagedRepository addManagedRepository( ManagedRepository managedRepository )
+        throws ArchivaRestServiceException;</pre></div></section></section><section>
+<h4><a name="CXF.2FSpring_configuration"></a>CXF/Spring configuration</h4>
+<p>REST services implementations are marked with the Spring annotation @Service</p>
+<div class="source"><pre class="prettyprint">package org.apache.archiva.rest.services;
+......
+@Service( &quot;managedRepositoriesService#rest&quot; )
+public class DefaultManagedRepositoriesService
+    extends AbstractRestService
+    implements ManagedRepositoriesService</pre></div>
+<p>Spring beans are declared as REST/CXF services in the Spring configuration</p>
+<div class="source"><pre class="prettyprint">  &lt;jaxrs:server id=&quot;archivaServices&quot; address=&quot;/archivaServices&quot;&gt;
+    .....
+    &lt;jaxrs:serviceBeans&gt;
+      &lt;ref bean=&quot;managedRepositoriesService#rest&quot;/&gt;
+    &lt;/jaxrs:serviceBeans&gt;
+    .....
+  &lt;/jaxrs:server&gt;
+
+  Note as we use @Service annotation package scanning must declared in spring configuration
+
+&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
+       xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+       xmlns:context=&quot;http://www.springframework.org/schema/context&quot;
+       xsi:schemaLocation=&quot;http://www.springframework.org/schema/context
+           http://www.springframework.org/schema/context/spring-context-3.0.xsd ....&quot;&gt;
+...
+  &lt;context:annotation-config/&gt;
+  &lt;context:component-scan
+      base-package=&quot;org.apache.archiva.rest.services&quot;/&gt;
+
+...
+&lt;/beans&gt;</pre></div>
+<p>CXF servlet is declared as:</p>
+<div class="source"><pre class="prettyprint">  &lt;servlet&gt;
+    &lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;
+    &lt;servlet-class&gt;org.apache.cxf.transport.servlet.CXFServlet&lt;/servlet-class&gt;
+    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
+  &lt;/servlet&gt;
+
+  &lt;servlet-mapping&gt;
+    &lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;
+    &lt;url-pattern&gt;/restServices/*&lt;/url-pattern&gt;
+  &lt;/servlet-mapping&gt;</pre></div>
+<p>So as it, REST services are availble in the following url <b>restServices/archivaServices/</b>.</p></section><section>
+<h4><a name="Redback_security_annotation"></a>Redback security annotation</h4>
+<p>Some REST methods need some karma, so to prevent anonymous access methods can be marked as it:</p>
+<div class="source"><pre class="prettyprint">
+    @RedbackAuthorization( permissions = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
+    ManagedRepository addManagedRepository( ManagedRepository managedRepository )
+        throws ArchivaRestServiceException;</pre></div>
+<p>This method will need the current user to have the operation manage-configuration level.</p>
+<p>For more details, have a look at <a class="externalLink" href="http://archiva.apache.org/redback/integration/rest.html">Redback REST</a>.</p></section></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/jsui/template-loading.html b/docs/2.2.8/jsui/template-loading.html
new file mode 100644
index 0000000..810a5de
--- /dev/null
+++ b/docs/2.2.8/jsui/template-loading.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/jsui/template-loading.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="date" content="2012-09-14" />
+    <title>Archiva &#x2013; Javascript template loading</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="About">About</a></li>
+            <li><a href="../download.html" title="Downloads">Downloads</a></li>
+            <li><a href="../versions.html" title="Versions">Versions</a></li>
+            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="../security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="../" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="../ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="../redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="../redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="../components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Javascript template loading</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Html.2FJavascript_templates_loading"></a>Html/Javascript templates loading</h2>
+<p>Templates are loaded on application loaded and added in the hidden div <b>#html-fragments</b>.</p>
+<p>They are loaded using requirejs and the text plugin.</p>
+<p>archiva templates are loaded as it <code>NOTE: the no cache is activated only on dev mode</code></p>
+<div class="source"><pre class="prettyprint">require(['jquery',&quot;jquery.tmpl&quot;,'i18n',&quot;utils&quot;,&quot;text!templates/archiva/menu.html&quot;,
+          &quot;text!templates/archiva/generics.html&quot;,
+          &quot;text!templates/archiva/modal.html&quot;,
+          &quot;text!templates/archiva/repositories.html&quot;,
+          &quot;text!templates/archiva/search.html&quot;,
+          &quot;text!templates/archiva/general-admin.html&quot;],
+  function(jquery,jqueryTmpl,i18n,utils,menu,generics,modal,repositories,
+           search,general_admin) {
+    loadArchivaTemplate=function(){
+      var htmlFragment=$(&quot;#html-fragments&quot;);
+      // template loading
+      htmlFragment.append(menu);
+      htmlFragment.append(generics);
+      $.tmpl( modal ).appendTo(htmlFragment);
+      htmlFragment.append(repositories);
+      htmlFragment.append(search);
+      htmlFragment.append(general_admin);
+      $.log(&quot;main-tmpl.js loaded&quot;);
+    }
+  }
+);</pre></div><section>
+<h3><a name="i18n_in_templates"></a>i18n in templates</h3><section>
+<h4><a name="static_templates"></a>static templates</h4>
+<p>Some templates which are only simple html which only need i18n are executed immediatly.</p>
+<p>Simply use:</p>
+<div class="source"><pre class="prettyprint">  $.tmpl( menu, $.i18n.map ).appendTo(&quot;#html-fragments&quot;);
+  to get i18n values in your template you can use
+  ${register} or ${$.i18n.prop('register')}
+
+  Note if you use the simple form ${register} and the property is not available, the template system will try to use if exists the function register
+</pre></div></section><section>
+<h4><a name="dynamic_templates"></a>dynamic templates</h4>
+<p>The others are only inserted in #html-fragments.</p></section></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/known-issues.html b/docs/2.2.8/known-issues.html
new file mode 100644
index 0000000..3f770cb
--- /dev/null
+++ b/docs/2.2.8/known-issues.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/known-issues.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="date" content="2012-01-19" />
+    <title>Archiva &#x2013; Known Issues and Errata</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Known Issues and Errata</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Known_Issues_and_Errata"></a>Known Issues and Errata</h2>
+<p>For a list of all JIRA issues reported against released versions of Archiva, see <a class="externalLink" href="http://jira.codehaus.org/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+MRM+AND+resolution+%3D+Unresolved+and+affectedVersion+in+releasedVersions()"> JIRA</a>.</p></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/license.html b/docs/2.2.8/license.html
new file mode 100644
index 0000000..0cae592
--- /dev/null
+++ b/docs/2.2.8/license.html
@@ -0,0 +1,395 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Project License</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../" id="bannerLeft">
+                                                                                                <img src="../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+                <li class="">
+                    <a href="./" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Project License</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                            
+      <li>
+  
+                          <a href="project-info.html" title="Project Information">
+          <i class="icon-chevron-down"></i>
+        Project Information</a>
+                    <ul class="nav nav-list">
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Project License</a>
+          </li>
+                    
+      <li>
+  
+                          <a href="team-list.html" title="Project Team">
+          <i class="none"></i>
+        Project Team</a>
+            </li>
+              </ul>
+        </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                      <div class="section">
+<h2><a name="Overview"></a>Overview</h2><a name="Overview"></a>
+<p>Typically the licenses listed for the project are that of the project itself, and not of dependencies.</p></div>
+<div class="section">
+<h2><a name="Project_License"></a>Project License</h2><a name="Project_License"></a>
+<div class="section">
+<h3><a name="The_Apache_Software_License_Version_2.0"></a>The Apache Software License, Version 2.0</h3><a name="The_Apache_Software_License_Version_2.0"></a>
+<div class="source">
+<pre>-</pre></div></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/licenses.html b/docs/2.2.8/licenses.html
new file mode 100644
index 0000000..033ff5c
--- /dev/null
+++ b/docs/2.2.8/licenses.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.0:licenses
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; Project Licenses</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Project Licenses</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Overview"></a>Overview</h2><a name="Overview"></a>
+<p>Typically the licenses listed for the project are that of the project itself, and not of dependencies.</p></section><section>
+<h2><a name="Project_Licenses"></a>Project Licenses</h2><a name="Project_Licenses"></a><section>
+<h3><a name="Apache_License.2C_Version_2.0"></a>Apache License, Version 2.0</h3><a name="Apache_License.2C_Version_2.0"></a>
+<div class="source"><pre class="prettyprint">
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      &quot;control&quot; means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      &quot;Source&quot; form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      &quot;Object&quot; form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      &quot;Work&quot; shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      &quot;Contribution&quot; shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
+
+      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same &quot;printed page&quot; as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+   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 &quot;AS IS&quot; 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.
+</pre></div></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/mailing-lists.html b/docs/2.2.8/mailing-lists.html
new file mode 100644
index 0000000..658cfcb
--- /dev/null
+++ b/docs/2.2.8/mailing-lists.html
@@ -0,0 +1,262 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.0:mailing-lists
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; Project Mailing Lists</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Project Mailing Lists</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Project_Mailing_Lists"></a>Project Mailing Lists</h2><a name="Project_Mailing_Lists"></a>
+<p>These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.</p>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Name</th>
+<th>Subscribe</th>
+<th>Unsubscribe</th>
+<th>Post</th>
+<th>Archive</th>
+<th>Other Archives</th></tr>
+<tr class="b">
+<td align="left">Archiva User List</td>
+<td><a class="externalLink" href="mailto:users-subscribe@archiva.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:users-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
+<td><a class="externalLink" href="mailto:users@archiva.apache.org">Post</a></td>
+<td><a class="externalLink" href="https://lists.apache.org/list.html?users@archiva.apache.org">lists.apache.org</a></td>
+<td><a class="externalLink" href="https://www.mail-archive.com/users@archiva.apache.org">www.mail-archive.com</a></td></tr>
+<tr class="a">
+<td align="left">-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td><a class="externalLink" href="https://markmail.org/list/org.apache.archiva.users">markmail.org</a></td></tr>
+<tr class="b">
+<td align="left">Archiva Developer List</td>
+<td><a class="externalLink" href="mailto:dev-subscribe@archiva.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:dev-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
+<td><a class="externalLink" href="mailto:dev@archiva.apache.org">Post</a></td>
+<td><a class="externalLink" href="https://lists.apache.org/list.html?dev@archiva.apache.org">lists.apache.org</a></td>
+<td><a class="externalLink" href="https://www.mail-archive.com/dev@archiva.apache.org">www.mail-archive.com</a></td></tr>
+<tr class="a">
+<td align="left">-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td><a class="externalLink" href="https://markmail.org/list/org.apache.archiva.dev">markmail.org</a></td></tr>
+<tr class="b">
+<td align="left">Archiva Commits List</td>
+<td><a class="externalLink" href="mailto:commits-subscribe@archiva.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:commits-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
+<td><a href="-">Post</a></td>
+<td><a class="externalLink" href="https://lists.apache.org/list.html?commits@archiva.apache.org">lists.apache.org</a></td>
+<td><a class="externalLink" href="https://www.mail-archive.com/commits@archiva.apache.org">www.mail-archive.com</a></td></tr>
+<tr class="a">
+<td align="left">-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td><a class="externalLink" href="https://markmail.org/list/org.apache.archiva.commits">markmail.org</a></td></tr>
+<tr class="b">
+<td align="left">Archiva Issues List</td>
+<td><a class="externalLink" href="mailto:issues-subscribe@archiva.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:issues-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
+<td><a href="-">Post</a></td>
+<td><a class="externalLink" href="https://lists.apache.org/list.html?issues@archiva.apache.org">lists.apache.org</a></td>
+<td><a class="externalLink" href="https://www.mail-archive.com/issues@archiva.apache.org">www.mail-archive.com</a></td></tr>
+<tr class="a">
+<td align="left">-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td><a class="externalLink" href="https://markmail.org/list/org.apache.archiva.issues">markmail.org</a></td></tr>
+<tr class="b">
+<td align="left">Archiva Notifications List</td>
+<td><a class="externalLink" href="mailto:notifications-subscribe@archiva.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:notifications-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
+<td><a href="-">Post</a></td>
+<td><a class="externalLink" href="https://lists.apache.org/list.html?notifications@archiva.apache.org">lists.apache.org</a></td>
+<td><a class="externalLink" href="https://www.mail-archive.com/notifications@archiva.apache.org">www.mail-archive.com</a></td></tr>
+<tr class="a">
+<td align="left">-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td>-</td>
+<td><a class="externalLink" href="https://markmail.org/list/org.apache.archiva.notifications">markmail.org</a></td></tr></table></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/privacy-policy.html b/docs/2.2.8/privacy-policy.html
new file mode 100644
index 0000000..08ba407
--- /dev/null
+++ b/docs/2.2.8/privacy-policy.html
@@ -0,0 +1,387 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Vincent Siveton" />
+    <meta name="Date-Creation-yyyymmdd" content="20081203" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Privacy Policy</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../" id="bannerLeft">
+                                                                                                <img src="../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+                <li class="">
+                    <a href="./" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Privacy Policy</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Privacy_Policy"></a>Privacy Policy</h2>
+<p>Information about your use of this website is collected using server access logs and a tracking cookie. The collected information consists of the following:</p>
+<ol style="list-style-type: decimal">
+<li>The IP address from which you access the website;</li>
+<li>The type of browser and operating system you use to access our site;</li>
+<li>The date and time you access our site;</li>
+<li>The pages you visit; and</li>
+<li>The addresses of pages from where you followed a link to our site.</li></ol>
+<p>Part of this information is gathered using a tracking cookie set by the <a class="externalLink" href="http://www.google.com/analytics/">Google Analytics</a> service and handled by Google as described in their <a class="externalLink" href="http://www.google.com/privacy.html">privacy policy</a>. See your browser documentation for instructions on how to disable the cookie if you prefer not to share this data with Google.</p>
+<p>We use the gathered information to help us make our site more useful to visitors and to better understand how and when our site is used. We do not track or collect personally identifiable information or associate gathered data with any personally identifying information from other sources.</p>
+<p>By using this website, you consent to the collection of this data in the manner and for the purpose described above.</p></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/project-info.html b/docs/2.2.8/project-info.html
new file mode 100644
index 0000000..c4f5a98
--- /dev/null
+++ b/docs/2.2.8/project-info.html
@@ -0,0 +1,402 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Project Information</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../" id="bannerLeft">
+                                                                                                <img src="../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+                <li class="">
+                    <a href="./" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Project Information</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                      
+      <li class="active">
+  
+            <a href="#"><i class="icon-chevron-down"></i>Project Information</a>
+                  <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="license.html" title="Project License">
+          <i class="none"></i>
+        Project License</a>
+            </li>
+                    
+      <li>
+  
+                          <a href="team-list.html" title="Project Team">
+          <i class="none"></i>
+        Project Team</a>
+            </li>
+              </ul>
+        </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <div class="section">
+<h2><a name="Project_Information"></a>Project Information</h2>
+<p>This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> on behalf of the project.</p>
+<div class="section">
+<h3><a name="Overview"></a>Overview</h3>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Document</th>
+<th>Description</th></tr>
+<tr class="b">
+<td><a href="license.html">Project License</a></td>
+<td>This document lists the project license(s).</td></tr>
+<tr class="a">
+<td><a href="team-list.html">Project Team</a></td>
+<td>This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.</td></tr></table></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/quick-start.html b/docs/2.2.8/quick-start.html
new file mode 100644
index 0000000..414301b
--- /dev/null
+++ b/docs/2.2.8/quick-start.html
@@ -0,0 +1,393 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Henri Yandell" />
+    <meta name="Date-Creation-yyyymmdd" content="20100611" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Quick Start</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../" id="bannerLeft">
+                                                                                                <img src="../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+                <li class="">
+                    <a href="./" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Quick Start</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Quick Start</a>
+          </li>
+                
+      <li>
+  
+                          <a href="tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Installing_Archiva"></a>Installing Archiva</h2>
+<p>The quickest way to install Archiva is to <a class="externalLink" href="http://archiva.apache.org/download.html">download</a> and use the standalone distribution. This includes a bundled Jetty server which can be easily started. For more information on advanced configuration of this instance, refer to the <a href="./adminguide/standalone.html"> Administration Guide</a>.</p>
+<p>To get started right away, you can run the following after unpacking:</p>
+<div>
+<pre>./bin/archiva console (Linux, Mac, Solaris)
+.\bin\archiva.bat console (Windows)</pre></div>
+<p>You will need to choose a different start command based on your platform. The <tt>console</tt> argument starts the server with the logs going to standard output, and waits for Ctrl+C to stop the server.</p>
+<p>Archiva is now running on <tt><a class="externalLink" href="http://localhost:8080/">http://localhost:8080/</a></tt></p></div>
+<div class="section">
+<h2><a name="Setting_up_your_Archiva_instance">Setting up your Archiva instance</a></h2>
+<p>You can now browse the web administration of Archiva. There will be a few basic setup tasks to get started.</p>
+<p>The first step is to setup your administration user. The password requires a numerical character and must not be longer than 8 chars. You'll then need to log in. Use 'admin' as the username and the password you've entered.</p>
+<p>At this point, Archiva is fully functional - you can use it with the default repositories and guest user. You might like to explore the user and administrator guides to find other functionality.</p>
+<p>The default configuration for Archiva configures two repositories:</p>
+<ul>
+<li><tt>internal</tt> - a repository for containing released artifacts. This is connected by proxy to the central repository, so requests here will automatically retrieve the remote artifacts.</li>
+<li><tt>snapshots</tt> - a repository for storing deployed snapshots. This is not proxied to any remote repositories by default.</li></ul>
+<p>In addition, the guest user has read access to these repositories, so you can make anonymous requests to either. To try this out, point a web browser at the following URL: <a class="externalLink" href="http://localhost:8080/repository/internal/junit/junit/3.8.1/junit-3.8.1.jar">http://localhost:8080/repository/internal/junit/junit/3.8.1/junit-3.8.1.jar</a>. Though the artifact is not present locally, you will see in the Archiva logs that it is downloaded from the central repository, and then handed back to the browser and downloaded from Archiva. Future requests for the artifact will be much faster as they need not be downloaded from the central repository.</p>
+<p>Once this artifact is downloaded, Archiva automatically indexes it, so you can access its information at the following URL: <a class="externalLink" href="http://localhost:8080/index.html#artifact/junit/junit">http://localhost:8080/index.html#artifact/junit/junit</a>. It will also be available from the search interface.</p></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/release-notes.html b/docs/2.2.8/release-notes.html
new file mode 100644
index 0000000..30f7e3d
--- /dev/null
+++ b/docs/2.2.8/release-notes.html
@@ -0,0 +1,611 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Release Notes for Archiva 2.2.8</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../" id="bannerLeft">
+                                                                                                <img src="../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+                <li class="">
+                    <a href="./" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Release Notes for Archiva 2.2.8</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Release Notes</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Release_Notes_for_Archiva_2.2.8"></a>Release Notes for Archiva 2.2.8</h2>
+<p>The Apache Archiva team is pleased to announce the release of Archiva 2.2.8. Archiva is <a class="externalLink" href="https://archiva.apache.org/download.html"> available for download from the web site</a>.</p>
+<p>Archiva is an application for managing one or more remote repositories, including administration, artifact handling, browsing and searching.</p>
+<p>This is a security fix release. Users are advised to update their systems to the new version as soon as possible.</p>
+<p>For further information see: <a class="externalLink" href="https://archiva.apache.org/security.html">https://archiva.apache.org/security.html</a></p>
+<p>If you have any questions, please consult:</p>
+<ul>
+<li>the web site: <a class="externalLink" href="https://archiva.apache.org/">https://archiva.apache.org/</a></li>
+<li>the archiva-user mailing list: <a class="externalLink" href="https://archiva.apache.org/mailing-lists.html">https://archiva.apache.org/mailing-lists.html</a></li></ul>
+<div class="section">
+<h3><a name="New_in_Archiva_2.2.8"></a>New in Archiva 2.2.8</h3>
+<p>Apache Archiva 2.2.8 is a security fix release:</p>
+<div class="section">
+<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
+<ul>
+<li>There are no compatibility changes</li></ul></div>
+<div class="section">
+<h4><a name="New_Feature"></a>New Feature</h4>
+<ul>
+<li>There are no new features in this release.</li></ul></div>
+<div class="section">
+<h4><a name="Improvements"></a>Improvements</h4>
+<ul>
+<li>There are no improvements</li></ul></div>
+<div class="section">
+<h4><a name="BugSecurity_Fix"></a>Bug/Security Fix</h4>
+<ul>
+<li>CVE-2022-29405 Apache Archiva Arbitrary user password reset vulnerability</li></ul></div></div></div>
+<div class="section">
+<h2><a name="Previous_Release_Notes"></a>Previous Release Notes</h2>
+<div class="section">
+<h3><a name="Release_Notes_for_Archiva_2.2.7"></a>Release Notes for Archiva 2.2.7</h3>
+<p>Apache Archiva 2.2.7 is a security fix release:</p>
+<p>Released: 2022-12-22</p>
+<div class="section">
+<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
+<ul>
+<li>[MRM-2021] There is a new flag 'literalVersion=true/false' for service archivaServices/searchService/artifact which allows to change the behaviour for v=LATEST search.</li></ul></div>
+<div class="section">
+<h4><a name="New_Feature"></a>New Feature</h4>
+<ul>
+<li>There are no new features in this release.</li></ul></div>
+<div class="section">
+<h4><a name="Improvements"></a>Improvements</h4>
+<ul>
+<li>There are no improvements</li></ul></div>
+<div class="section">
+<h4><a name="BugSecurity_Fix"></a>Bug/Security Fix</h4>
+<ul>
+<li>[MRM-2027] Update of the log4j2 version to 2.17.0</li>
+<li>[MRM-2020] Fixed the behaviour of the startup script, if ARCHIVA_BASE is set (separating installation and data directory)</li>
+<li>[MRM-2022] Fixed the handling of X-XSRF-TOKEN header in Javascript calls</li></ul></div></div>
+<div class="section">
+<h3><a name="Release_Notes_for_Archiva_2.2.6"></a>Release Notes for Archiva 2.2.6</h3>
+<p>Apache Archiva 2.2.6 is a security fix release:</p>
+<p>Released: 2021-12-15</p>
+<div class="section">
+<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
+<ul>
+<li>No API changes or known side effects.</li></ul></div>
+<div class="section">
+<h4><a name="New_Feature"></a>New Feature</h4>
+<ul>
+<li>There are no new features in this release.</li></ul></div>
+<div class="section">
+<h4><a name="Improvements"></a>Improvements</h4>
+<ul>
+<li>There are no improvements</li></ul></div>
+<div class="section">
+<h4><a name="BugSecurity_Fix"></a>Bug/Security Fix</h4>
+<ul>
+<li>Update of the log4j2 version to mitigate the log4j2 vulnerability (CVE-2021-44228)</li>
+<li>Deactivated directory listings by the file servlet</li></ul></div></div>
+<div class="section">
+<h3><a name="Release_Notes_for_Archiva_2.2.5"></a>Release Notes for Archiva 2.2.5</h3>
+<p>Apache Archiva 2.2.5 is a bug fix release:</p>
+<p>Released: 2020-06-19</p>
+<div class="section">
+<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
+<ul>
+<li>No API changes or known side effects.</li></ul></div>
+<div class="section">
+<h4><a name="New_Feature"></a>New Feature</h4>
+<ul>
+<li>There are no new features in this release.</li></ul></div>
+<div class="section">
+<h4><a name="Improvements"></a>Improvements</h4>
+<ul>
+<li>There are no improvements</li></ul></div>
+<div class="section">
+<h4><a name="Bug_Fix"></a>Bug Fix</h4>
+<ul>
+<li>[MRM-2008] Fix for group names with slashes</li>
+<li>Better handling of LDAP filter </li></ul></div></div>
+<div class="section">
+<h3><a name="Release_Notes_for_Archiva_2.2.4"></a>Release Notes for Archiva 2.2.4</h3>
+<p>Apache Archiva 2.2.4 is a bug fix release:</p>
+<ul>
+<li>Fixes for handling of artifacts</li>
+<li>Improved validation of REST calls</li></ul>
+<div class="section">
+<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
+<p>No API changes or known side effects.</p>
+<p>Released: 2019-04-30</p></div>
+<div class="section">
+<h4><a name="New_Feature"></a>New Feature</h4>
+<ul>
+<li>There are no new features in this release.</li></ul></div>
+<div class="section">
+<h4><a name="Improvements"></a>Improvements</h4>
+<ul>
+<li>Adding additional validation to REST service calls for artifact upload</li></ul></div>
+<div class="section">
+<h4><a name="Bug_Fix"></a>Bug Fix</h4>
+<ul>
+<li>[MRM-1972] Stored XSS in Web UI Organization Name</li>
+<li>[MRM-1966] Repository-purge not working</li>
+<li>[MRM-1958] Purge by retention count deletes files but leaves history on website.</li>
+<li>[MRM-1929] Repository purge is not reflected in index</li></ul></div></div>
+<div class="section">
+<h3><a name="Release_Notes_for_Archiva_2.2.3"></a>Release Notes for Archiva 2.2.3</h3>
+<div class="section">
+<h4><a name="New_in_Archiva_2.2.3"></a>New in Archiva 2.2.3</h4>
+<p>Apache Archiva 2.2.3 is a bug fix release:</p>
+<ul>
+<li>Some fixes for the REST API were added to detect requests from unknown origin</li>
+<li>Some bugfixes were added</li></ul></div>
+<div class="section">
+<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
+<ul>
+<li>The REST services are now checking for the origin of the requests by analysing Origin and Referer header of the HTTP requests and adding an validation token to the Header. This prevents requests from malicious sites if they are open in the same browser. If you use the REST services from other clients you may change the behaviour with the new configuration properties for the redback security (<tt>rest.csrffilter.*</tt>, <tt>rest.baseUrl</tt>). For more information see <a href="./adminguide/customising-security.html">Archiva Security Configuration</a> and the <a href="/redback/integration/rest.html">Redback REST documentation </a>.
+<p><b>Note:</b> If your archiva installation is behind a reverse proxy or load balancer, it may be possible that the Archiva Web UI does not load after the upgrade. If this is the case you may access the WebUI via localhost or edit archiva.xml manually. In the &quot;Redback Runtime Configuration&quot; properties you have to enter the base URLs of your archiva installation to the <tt>rest.baseUrl</tt> field.</p></li>
+<li>Archiva uses redback for authentication and authorization in version 2.6</li></ul></div>
+<div class="section">
+<h4><a name="Change_List"></a>Change List</h4>
+<p>Released: <b>2017-05-13</b></p>
+<div class="section">
+<h5><a name="New_Feature"></a>New Feature</h5></div>
+<div class="section">
+<h5><a name="Improvement"></a>Improvement</h5>
+<ul>
+<li>[MRM-1925] - Make User-Agent header configurable for HTTP requests</li>
+<li>[MRM-1861], [MRM-1924] - Increasing timeouts for repository check</li>
+<li>[MRM-1937] - Prevent creating initial admin user with wrong name.</li>
+<li>Adding origin header validation checks for REST requests</li></ul></div>
+<div class="section">
+<h5><a name="Bug_Fix"></a>Bug Fix</h5>
+<ul>
+<li>[MRM-1859] - Error upon viewing 'Artifacts' tab when browsing an artifact</li>
+<li>[MRM-1874] - Login Dialog triggers multiple events (+messages)</li>
+<li>[MRM-1908] - Logged on users can write any repository</li>
+<li>[MRM-1909] - Remote repository check fails for https://repo.maven.apache.org/maven2</li>
+<li>[MRM-1923] - Fixing bind issue with certain ldap servers, when user not found</li>
+<li>[MRM-1926] - Invalid checksum files in Archiva repository after download from remote repository</li>
+<li>[MRM-1928] - Bad redirect URL when using Archiva through HTTP reverse proxy</li>
+<li>[MRM-1933] - No message body writer has been found for class org.apache.archiva.rest.services.ArchivaRestError</li>
+<li>[MRM-1940] - Slashes appended to remote repo url</li></ul></div></div></div>
+<div class="section">
+<h3><a name="Release_Notes_for_Archiva_2.2.1"></a>Release Notes for Archiva 2.2.1</h3>
+<div class="section">
+<h4><a name="New_in_Archiva_2.2.1"></a>New in Archiva 2.2.1</h4>
+<p>Apache Archiva 2.2.1 is a bugs fix release:</p>
+<p>NOTE: jdk 1.7 is now prerequisite with Apache Archiva 2.2.1</p></div>
+<div class="section">
+<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
+<p>If using the Cassandra backend, the metadatafacet column 'key' has been renamed to 'facetKey' in 2.2.0 so you should copy the data to the new column manually. If upgrading from earlier versions of Archiva, the list of libraries in wrapper.conf has changed. If you have customized your copy of wrapper.conf, please update it for compatibility with the version distributed with the current release. As the database storage has been removed, you can remove the JNDI entry for jdbc/archiva.</p>
+<p>Refer to the Upgrading Archiva guide for more information.</p></div>
+<div class="section">
+<h4><a name="List_of_Changes"></a>List of Changes</h4>
+<div class="section">
+<h5><a name="Improvement"></a>Improvement</h5>
+<ul>
+<li>[MRM-1201] - Artifact upload success message should mention the classifier</li>
+<li>[MRM-1906] - Allowing filtering of LDAP groups</li></ul></div>
+<div class="section">
+<h5><a name="Bug_Fix"></a>Bug Fix</h5>
+<ul>
+<li>[MRM-1873] - archiva doesn't recognise ldap-group to ldap-users mapping</li>
+<li>[MRM-1877] - Checksum files always recreated</li>
+<li>[MRM-1879] - Bug in create-missing-checksum consumer</li>
+<li>[MRM-1886] - View Artifact Content Action does not Work</li>
+<li>[MRM-1887] - Syntax error in DOAP file release section; wrong bug- database URL</li>
+<li>[MRM-1892] - Only One Page of Proxy Connector Rules Shown</li>
+<li>[MRM-1893] - Please delete old releases from mirroring system</li>
+<li>[MRM-1896] - Invalid link to license</li>
+<li>[MRM-1914] - Maven cannot find dependency</li></ul></div></div></div>
+<div class="section">
+<h3><a name="Release_Notes_for_Archiva_2.2.0"></a>Release Notes for Archiva 2.2.0</h3>
+<div class="section">
+<h4><a name="New_in_Archiva_2.2.0"></a>New in Archiva 2.2.0</h4>
+<p>Apache Archiva 2.2.0 is a bugs fix release:</p>
+<p>NOTE: jdk 1.7 is now prerequisite with Apache Archiva 2.2.0</p></div>
+<div class="section">
+<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
+<p>If using the Cassandra backend, the metadatafacet column 'key' has been renamed to 'facetKey' in 2.2.0 so you should copy the data to the new column manually. If upgrading from earlier versions of Archiva, the list of libraries in wrapper.conf has changed. If you have customized your copy of wrapper.conf, please update it for compatibility with the version distributed with the current release. As the database storage has been removed, you can remove the JNDI entry for jdbc/archiva. After upgrading from a previous version, you will have to run a full scan to populate the new JCR Repository. This will be done on first start of Archiva.</p>
+<p>Refer to the Upgrading Archiva guide for more information.</p></div>
+<div class="section">
+<h4><a name="List_of_Changes_in_Archiva_2.2.0"></a>List of Changes in Archiva 2.2.0</h4>
+<div class="section">
+<h5><a name="New_Feature"></a>New Feature</h5>
+<ul>
+<li>[MRM-1867] - Adding a find jar by checksum functionality to the REST api</li></ul></div>
+<div class="section">
+<h5><a name="Improvement"></a>Improvement</h5>
+<ul>
+<li>[MRM-1390] - Generic metadata should be searcheable in Archiva search</li>
+<li>[MRM-1844] - Allow LDAP groupOfNames</li></ul></div>
+<div class="section">
+<h5><a name="Bug_Fix"></a>Bug Fix</h5>
+<ul>
+<li>[MRM-770] - Archiva web client does not recognize classifier</li>
+<li>[MRM-813] - Audit log is reporting &quot;Modify File (proxied)&quot; when no proxy connectors exist and the file has not changed</li>
+<li>[MRM-837] - Cannot download SNAPSHOT version</li>
+<li>[MRM-935] - Archiva doesn't supports artifact with <i>version</i>SNAPSHOT<i>/version</i></li>
+<li>[MRM-1145] - RSS tests do not correctly check responses</li>
+<li>[MRM-1311] - Logging in ArtifactMissingChecksumsConsumer does not appear in the logs even if configured properly</li>
+<li>[MRM-1486] - ldap.config.mapper.attribute.user.filter using ldap not working correctly with commas.</li>
+<li>[MRM-1767] - When selecting a specific repository to browse, I get an error that I don't have sufficient privileges.</li>
+<li>[MRM-1807] - Archiva wrapper fail to start</li>
+<li>[MRM-1810] - LDAP - groups config not available in Users Runtime Configuration - Properties</li>
+<li>[MRM-1811] - Users - Manage section: pagination needs to change</li>
+<li>[MRM-1846] - Regression in 2.0.1 : uniqueVersion false not supported</li>
+<li>[MRM-1848] - download links for files mult-dot extensions incorrect in Browse view</li>
+<li>[MRM-1851] - generic metadata GUI broken</li>
+<li>[MRM-1860] - ClassNotFound exception with JBoss</li>
+<li>[MRM-1863] - RepositoryGroup URL is not build using the Application URL</li>
+<li>[MRM-1864] - Default configuration for central should now use SSL</li>
+<li>[MRM-1871] - ConcurrentModificationException in DefaultRepositoryProxyConnectors</li>
+<li>[MRM-1873] - archiva doesn't recognise ldap-group to ldap-users mapping</li></ul></div>
+<div class="section">
+<h5><a name="Task"></a>Task</h5>
+<ul>
+<li>[MRM-1359] - Remove Maven 1.x functionality</li>
+<li>[MRM-1865] - remove isPermanent from Consumer API</li></ul></div></div></div></div>
+<div class="section">
+<h2><a name="History"></a>History</h2>
+<p>Archiva was started in November 2005, building a simple framework on top of some existing repository conversion tools within the Maven project. Initial development focused on repository conversion, error reporting, and indexing. From January 2006 a web application was started to visualise the information and to start incorporating functionality from the unmaintained maven-proxy project.</p>
+<p>Development continued through many stops and starts. Initial versions of Archiva were built from source by contributors, and the first alpha version was not released until April 2007. Some significant changes were made to improve performance and functionality in June 2007 and over the next 6 months and a series of alpha and beta releases, a concerted effort was made to release the 1.0 version.</p>
+<p>Archiva became an Apache &quot;top level project&quot; in March 2008.</p></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/scm.html b/docs/2.2.8/scm.html
new file mode 100644
index 0000000..9b3a7e6
--- /dev/null
+++ b/docs/2.2.8/scm.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.0:scm
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; Source Code Management</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Source Code Management</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Overview"></a>Overview</h2><a name="Overview"></a>
+<p>This project uses <a class="externalLink" href="https://git-scm.com/">Git</a> to manage its source code. Instructions on Git use can be found at <a class="externalLink" href="https://git-scm.com/documentation">https://git-scm.com/documentation</a>.</p></section><section>
+<h2><a name="Web_Browser_Access"></a>Web Browser Access</h2><a name="Web_Browser_Access"></a>
+<p>The following is a link to a browsable version of the source repository:</p>
+<div class="source"><pre class="prettyprint"><a class="externalLink" href="https://github.com/apache/archiva">https://github.com/apache/archiva</a></pre></div></section><section>
+<h2><a name="Anonymous_Access"></a>Anonymous Access</h2><a name="Anonymous_Access"></a>
+<p>The source can be checked out anonymously from Git with this command (See <a class="externalLink" href="https://git-scm.com/docs/git-clone">https://git-scm.com/docs/git-clone</a>):</p>
+<div class="source"><pre class="prettyprint">$ git clone https://github.com/apache/archiva.git</pre></div></section><section>
+<h2><a name="Developer_Access"></a>Developer Access</h2><a name="Developer_Access"></a>
+<p>Only project developers can access the Git tree via this method (See <a class="externalLink" href="https://git-scm.com/docs/git-clone">https://git-scm.com/docs/git-clone</a>).</p>
+<div class="source"><pre class="prettyprint">$ git clone https://gitbox.apache.org/repos/asf/archiva.git</pre></div></section><section>
+<h2><a name="Access_from_Behind_a_Firewall"></a>Access from Behind a Firewall</h2><a name="Access_from_Behind_a_Firewall"></a>
+<p>Refer to the documentation of the SCM used for more information about access behind a firewall.</p></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/security.html b/docs/2.2.8/security.html
new file mode 100644
index 0000000..bd5c18a
--- /dev/null
+++ b/docs/2.2.8/security.html
@@ -0,0 +1,294 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/security.apt
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; Security Vulnerabilities</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Security Vulnerabilities</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Security_Vulnerabilities"></a>Security Vulnerabilities</h2>
+<p>Please note that binary patches are not produced for individual vulnerabilities. To obtain the binary fix for a particular vulnerability you should upgrade to an Apache Archiva version where that vulnerability has been fixed.</p>
+<p>For more information about reporting vulnerabilities, see the <a class="externalLink" href="http://www.apache.org/security/"> Apache Security Team</a> page.</p>
+<p>This is a list of known issues</p>
+<ul>
+<li><a href="#CVE-2021-45105:_Apache_Log4j2_does_not_always_protect_from_infinite_recursion_in_lookup_evaluation">CVE-2021-45105: Apache Log4j2 does not always protect from infinite recursion in lookup evaluation</a></li>
+<li><a href="#CVE-2021-45046:_Apache_log4j2_Thread_Context_Lookup_Pattern_vulnerable_to_remote_code_execution_in_certain_non-default_configurations">CVE-2021-45046: Apache log4j2 Thread Context Lookup Pattern vulnerable to remote code execution in certain non-default configurations</a></li>
+<li><a href="#CVE-2021-44228:_Apache_log4j2_is_vulnerable_to_remote_code_execution">CVE-2021-44228: Apache log4j2 is vulnerable to remote code execution</a></li>
+<li><a href="#CVE-2020-9495:_Apache_Archiva_login_service_is_vulnerable_to_LDAP_injection">CVE-2020-9495: Apache Archiva login service is vulnerable to LDAP injection</a></li>
+<li><a href="#CVE-2019-0213:_Apache_Archiva_XSS_may_be_stored_in_central_UI_configuration">CVE-2019-0213: Apache Archiva XSS may be stored in central UI configuration</a></li>
+<li><a href="#CVE-2019-0214:_Apache_Archiva_arbitrary_file_write_and_delete_on_the_server">CVE-2019-0214: Apache Archiva arbitrary file write and delete on the server</a></li>
+<li><a href="#CVE-2017-5657:_Apache_Archiva_CSRF_vulnerabilities_for_various_REST_endpoints">CVE-2017-5657: Apache Archiva CSRF vulnerabilities for various REST endpoints</a></li>
+<li><a href="#CVE-2013-2251:_Apache_Archiva_Remote_Command_Execution">CVE-2013-2251: Apache Archiva Remote Command Execution</a></li>
+<li><a href="#CVE-2013-2187:_Apache_Archiva_Cross-Site_Scripting_vulnerability">CVE-2013-2187: Apache Archiva Cross-Site Scripting vulnerability</a></li>
+<li><a href="#CVE-2010-1870:_Struts2_remote_commands_execution">CVE-2010-1870: Struts2 remote commands execution</a></li>
+<li><a href="#CVE-2011-1077:_Multiple_XSS_issues">CVE-2011-1077: Multiple XSS issues</a></li>
+<li><a href="#CVE-2011-1026:_Multiple_CSRF_issues">CVE-2011-1026: Multiple CSRF issues</a></li>
+<li><a href="#CVE-2011-0533:_Apache_Archiva_cross-site_scripting_vulnerability">CVE-2011-0533: Apache Archiva cross-site scripting vulnerability</a></li>
+<li><a href="#CVE-2010-3449:_Apache_Archiva_CSRF_Vulnerability">CVE-2010-3449: Apache Archiva CSRF Vulnerability</a></li></ul><section>
+<h3><a name="CVE-2021-45105:_Apache_Log4j2_does_not_always_protect_from_infinite_recursion_in_lookup_evaluation"></a><a name="CVE-2021-45105">CVE-2021-45105</a>: Apache Log4j2 does not always protect from infinite recursion in lookup evaluation</h3>
+<p>This may be used by attackers, if users changed the default Archiva log4j2.xml configuration.</p></section><section>
+<h3><a name="CVE-2021-45046:_Apache_log4j2_Thread_Context_Lookup_Pattern_vulnerable_to_remote_code_execution_in_certain_non-default_configurations"></a><a name="CVE-2021-45046">CVE-2021-45046</a>: Apache log4j2 Thread Context Lookup Pattern vulnerable to remote code execution in certain non-default configurations</h3>
+<p>This may be used by attackers, if users changed the default Archiva log4j2.xml configuration.</p></section><section>
+<h3><a name="CVE-2021-44228:_Apache_log4j2_is_vulnerable_to_remote_code_execution"></a><a name="CVE-2021-44228">CVE-2021-44228</a>: Apache log4j2 is vulnerable to remote code execution</h3>
+<p>As mentioned in this CVE Apache log4j2 libraries are vulnerable to remote code execution. Archiva is using log4j2 libraries and is therefore vulnerable to the same scenarios mentioned in this CVE. Attackers may be able to inject statements into the HTTP requests which may be interpreted by the logging library and lead to the download of arbitrary code from remote servers.</p></section><section>
+<h3><a name="CVE-2020-9495:_Apache_Archiva_login_service_is_vulnerable_to_LDAP_injection"></a><a name="CVE-2020-9495">CVE-2020-9495</a>: Apache Archiva login service is vulnerable to LDAP injection</h3>
+<p>By providing special values to the archiva login form a attacker is able to retrieve user attribute data from the connected LDAP server. With certain characters it is possible to modify the LDAP filter used to query the users on the connected LDAP server. By measuring the response time, arbitrary attribute data can be retrieved from LDAP user objects.</p>
+<p>Versions Affected:</p>
+<ul>
+<li>All versions before 2.2.5</li></ul>
+<p>Mitigation:</p>
+<ul>
+<li>Upgrade to <a href="./download.cgi"> Archiva 2.2.5 or higher</a></li></ul></section><section>
+<h3><a name="CVE-2019-0213:_Apache_Archiva_XSS_may_be_stored_in_central_UI_configuration"></a><a name="CVE-2019-0213">CVE-2019-0213</a>: Apache Archiva XSS may be stored in central UI configuration</h3>
+<p>It may be possible to store malicious XSS code into central configuration entries, i.e. the logo URL. The vulnerability is considered as minor risk, as only users with admin role can change the configuration, or the communication between the browser and the Archiva server must be compromised. </p>
+<p>Versions Affected:</p>
+<ul>
+<li>All versions before 2.2.4</li></ul>
+<p>Mitigation:</p>
+<ul>
+<li>Upgrade to <a href="./download.cgi"> Archiva 2.2.4 or higher</a></li>
+<li>Make sure, that communication between Archiva server and browser is secure by using TLS and only certain users are assigned to admin role.</li></ul></section><section>
+<h3><a name="CVE-2019-0214:_Apache_Archiva_arbitrary_file_write_and_delete_on_the_server"></a><a name="CVE-2019-0214">CVE-2019-0214</a>: Apache Archiva arbitrary file write and delete on the server</h3>
+<p>It is possible to write files to the archiva server at arbitrary locations by using the artifact upload mechanism. Existing files can be overwritten, if the archiva run user has appropriate permission on the filesystem for the target file.</p>
+<p>Versions Affected:</p>
+<ul>
+<li>All versions before 2.2.4</li></ul>
+<p>Mitigation:</p>
+<ul>
+<li>It is highly recommended to upgrade to <a href="./download.cgi"> Archiva 2.2.4 or higher</a>, where additional validations are implemented to prevent such malicious parameter values.</li>
+<li>As intermediate action you may reduce the number of users that are allowed to upload to archiva and make sure, that the archiva run user may have only write permission to the directories needed.</li></ul></section><section>
+<h3><a name="CVE-2017-5657:_Apache_Archiva_CSRF_vulnerabilities_for_various_REST_endpoints"></a><a name="CVE-2017-5657">CVE-2017-5657</a>: Apache Archiva CSRF vulnerabilities for various REST endpoints</h3>
+<p>Several REST service endpoints of Apache Archiva are not protected against CSRF attacks. A malicious site opened in the same browser as the archiva site, may send HTML response that performs arbitrary actions on archiva services, with the same rights as the active archiva session (e.g. adminstrator rights).</p>
+<p>Versions Affected:</p>
+<ul>
+<li>All versions before 2.2.3</li></ul>
+<p>Mitigation:</p>
+<ul>
+<li>Upgrade to <a href="./download.html"> Archiva 2.2.3 or higher</a>, where additional measures are taken to verify the origin of REST requests.</li></ul></section><section>
+<h3><a name="CVE-2013-2251:_Apache_Archiva_Remote_Command_Execution"></a><a name="CVE-2013-2251">CVE-2013-2251</a>: Apache Archiva Remote Command Execution</h3>
+<p>Apache Archiva is affected by a vulnerability in the version of the Struts library being used, which allows a malicious user to run code on the server remotely. More details about the vulnerability can be found at <a class="externalLink" href="http://struts.apache.org/release/2.3.x/docs/s2-016.html">http://struts.apache.org/release/2.3.x/docs/s2-016.html</a>.</p>
+<p>Versions Affected:</p>
+<ul>
+<li>Archiva 1.3 to Archiva 1.3.6</li></ul>
+<ul>
+<li>The unsupported versions Archiva 1.2 to 1.2.2 are also affected.</li></ul>
+<p>All users are recommended to upgrade to <a href="./download.cgi"> Archiva 2.0.1 or Archiva 1.3.8</a>, which are not affected by this issue.</p>
+<p>Archiva 2.0.0 and later is not affected by this issue.</p></section><section>
+<h3><a name="CVE-2013-2187:_Apache_Archiva_Cross-Site_Scripting_vulnerability"></a><a name="CVE-2013-2187">CVE-2013-2187</a>: Apache Archiva Cross-Site Scripting vulnerability</h3>
+<p>A request that included a specially crafted request parameter could be used to inject arbitrary HTML or Javascript into the Archiva home page.</p>
+<p>Versions Affected:</p>
+<ul>
+<li>Archiva 1.3 to Archiva 1.3.6</li></ul>
+<ul>
+<li>The unsupported versions Archiva 1.2 to 1.2.2 are also affected.</li></ul>
+<p>All users are recommended to upgrade to <a href="./download.cgi"> Archiva 2.0.1 or Archiva 1.3.8</a>, which are not affected by this issue.</p>
+<p>Archiva 2.0.0 and later is not affected by this issue.</p></section><section>
+<h3><a name="CVE-2010-1870:_Struts2_remote_commands_execution"></a><a name="CVE-2010-1870">CVE-2010-1870</a>: Struts2 remote commands execution</h3>
+<p>Apache Archiva is affected by a vulnerability in the version of the Struts library being used, which allows a malicious user to run code on the server remotely. More details about the vulnerability can be found at <a class="externalLink" href="http://struts.apache.org/2.2.1/docs/s2-005.html">http://struts.apache.org/2.2.1/docs/s2-005.html</a>.</p>
+<p>Versions Affected:</p>
+<ul>
+<li>Archiva 1.3 to Archiva 1.3.5</li></ul>
+<ul>
+<li>The unsupported versions Archiva 1.2 to 1.2.2 are also affected.</li></ul>
+<p>All users are recommended to upgrade to <a href="./download.cgi"> Archiva 1.3.6</a>, which configures Struts in such a way that it is not affected by this issue.</p>
+<p>Archiva 1.4-M3 and later is not affected by this issue.</p></section><section>
+<h3><a name="CVE-2011-1077:_Multiple_XSS_issues"></a><a name="CVE-2011-1077">CVE-2011-1077</a>: Multiple XSS issues</h3>
+<p>Apache Archiva is vulnerable to multiple XSS issues, both stored (persistent) and reflected (non-persistent). Javascript which might contain malicious code can be appended in a request parameter or stored as a value in a submitted form, and get executed.</p>
+<p>Versions Affected:</p>
+<ul>
+<li>Archiva 1.3 to 1.3.4</li>
+<li>The unsupported versions Archiva 1.0 to 1.2.2 are also affected.</li></ul></section><section>
+<h3><a name="CVE-2011-1026:_Multiple_CSRF_issues"></a><a name="CVE-2011-1026">CVE-2011-1026</a>: Multiple CSRF issues</h3>
+<p>An attacker can build a simple html page containing a hidden Image tag (eg: <code>&lt;img src=vulnurl width=0 height=0 /</code>&gt;) and entice the administrator to access the page.</p>
+<p>Versions Affected:</p>
+<ul>
+<li>Archiva 1.3 to 1.3.4</li>
+<li>The unsupported versions Archiva 1.0 to 1.2.2 are also affected.</li></ul></section><section>
+<h3><a name="CVE-2011-0533:_Apache_Archiva_cross-site_scripting_vulnerability"></a><a name="CVE-2011-0533">CVE-2011-0533</a>: Apache Archiva cross-site scripting vulnerability</h3>
+<p>A request that included a specially crafted request parameter could be used to inject arbitrary HTML or Javascript into the Archiva user management page. This fix is available in version <a href="./download.html"> 1.3.4</a> of Apache Archiva. All users must upgrade to this version (or higher).</p>
+<p>Versions Affected:</p>
+<ul>
+<li>Archiva 1.3 to 1.3.3</li>
+<li>The unsupported versions Archiva 1.0 to 1.2.2 are also affected.</li></ul></section><section>
+<h3><a name="CVE-2010-3449:_Apache_Archiva_CSRF_Vulnerability"></a><a name="CVE-2010-3449">CVE-2010-3449</a>: Apache Archiva CSRF Vulnerability</h3>
+<p>Apache Archiva doesn't check which form sends credentials. An attacker can create a specially crafted page and force archiva administrators to view it and change their credentials. To fix this, a referrer check was added to the security interceptor for all secured actions. A prompt for the administrator's password when changing a user account was also set in place. This fix is available in version <a href="./download.html"> 1.3.2</a> of Apache Archiva. All users must upgrade to this version (or higher).</p>
+<p>Versions Affected:</p>
+<ul>
+<li>Archiva 1.3 to 1.3.1</li>
+<li>Archiva 1.2 to 1.2.2 (end of life)</li>
+<li>Archiva 1.1 to 1.1.4 (end of life)</li>
+<li>Archiva 1.0 to 1.0.3 (end of life)</li></ul></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/team-list.html b/docs/2.2.8/team-list.html
new file mode 100644
index 0000000..339f50e
--- /dev/null
+++ b/docs/2.2.8/team-list.html
@@ -0,0 +1,737 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Project Team</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../" id="bannerLeft">
+                                                                                                <img src="../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+                <li class="">
+                    <a href="./" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Project Team</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                            
+      <li>
+  
+                          <a href="project-info.html" title="Project Information">
+          <i class="icon-chevron-down"></i>
+        Project Information</a>
+                    <ul class="nav nav-list">
+                    
+      <li>
+  
+                          <a href="license.html" title="Project License">
+          <i class="none"></i>
+        Project License</a>
+            </li>
+                    
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Project Team</a>
+          </li>
+              </ul>
+        </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <div class="section">
+<h2><a name="The_Team"></a>The Team</h2><a name="The_Team"></a>
+<p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p>
+<p>The team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p>
+<div class="section">
+<h3><a name="Members"></a>Members</h3><a name="Members"></a>
+<p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Image</th>
+<th>Id</th>
+<th>Name</th>
+<th>Email</th>
+<th>Organization</th>
+<th>Roles</th>
+<th>Time Zone</th></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/bab29f762bea8e578505424443d8cd41?d=mm&amp;s=60" alt="" /></td>
+<td><a name="olamy"></a>olamy</td>
+<td>Olivier Lamy</td>
+<td><a class="externalLink" href="mailto:olamy@apache.org">olamy@apache.org</a></td>
+<td>ASF</td>
+<td>PMC Chair</td>
+<td>Australia/Melbourne</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/a49e2c09c4c36374c40e6cb819157eda?d=mm&amp;s=60" alt="" /></td>
+<td><a name="oching"></a>oching</td>
+<td>Maria Odea B. Ching</td>
+<td><a class="externalLink" href="mailto:oching@apache.org">oching@apache.org</a></td>
+<td>-</td>
+<td>PMC Member</td>
+<td>+8</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/1db61ec29963d4a77ef2275140144fd4?d=mm&amp;s=60" alt="" /></td>
+<td><a name="brett"></a>brett</td>
+<td>Brett Porter</td>
+<td><a class="externalLink" href="mailto:brett@apache.org">brett@apache.org</a></td>
+<td>ASF</td>
+<td>PMC Member</td>
+<td>+10</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/6559d4b2de15cb1433fc13c34599e4c7?d=mm&amp;s=60" alt="" /></td>
+<td><a name="carlos"></a>carlos</td>
+<td>Carlos Sanchez</td>
+<td><a class="externalLink" href="mailto:carlos@apache.org">carlos@apache.org</a></td>
+<td>ASF</td>
+<td>PMC Member</td>
+<td>+1</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/89d1772a8f19085482a13decc709cda2?d=mm&amp;s=60" alt="" /></td>
+<td><a name="epunzalan"></a>epunzalan</td>
+<td>Edwin Punzalan</td>
+<td><a class="externalLink" href="mailto:epunzalan@apache.org">epunzalan@apache.org</a></td>
+<td>-</td>
+<td>PMC Member</td>
+<td>-8</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/3fe23ff82e7920b5941e18515adf9bba?d=mm&amp;s=60" alt="" /></td>
+<td><a name="nicolas"></a>nicolas</td>
+<td>Nicolas De Loof</td>
+<td><a class="externalLink" href="mailto:nicolas@apache.org">nicolas@apache.org</a></td>
+<td>-</td>
+<td>PMC Member</td>
+<td>+1</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/030e414fc478d45703ba0cbf6fa431f9?d=mm&amp;s=60" alt="" /></td>
+<td><a name="skygo"></a>skygo</td>
+<td>Eric Barboni</td>
+<td><a class="externalLink" href="mailto:skygo@apache.org">skygo@apache.org</a></td>
+<td>IRIT</td>
+<td>PMC Member</td>
+<td>Europe/Paris</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/27790393b874159fe05609ca7ed812f9?d=mm&amp;s=60" alt="" /></td>
+<td><a name="jbonofre"></a>jbonofre</td>
+<td>Jean-Baptiste Onofr&#xe9;</td>
+<td><a class="externalLink" href="mailto:jbonofre@apache.org">jbonofre@apache.org</a></td>
+<td>Talend</td>
+<td>PMC Member</td>
+<td>Europe/Paris</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/333ab2c837b3073314c221ae7dd9cc2d?d=mm&amp;s=60" alt="" /></td>
+<td><a name="martin_s"></a>martin_s</td>
+<td>Martin Stockhammer</td>
+<td><a class="externalLink" href="mailto:martin_s@apache.org">martin_s@apache.org</a></td>
+<td>-</td>
+<td>PMC Member</td>
+<td>+1</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/c8686cad245196c9e392201ad7bb364f?d=mm&amp;s=60" alt="" /></td>
+<td><a name="dennisl"></a>dennisl</td>
+<td>Dennis Lundberg</td>
+<td><a class="externalLink" href="mailto:dennisl@apache.org">dennisl@apache.org</a></td>
+<td>ASF</td>
+<td>Committer</td>
+<td>+1</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/76f1823568e5f31931bd32415a4cffa7?d=mm&amp;s=60" alt="" /></td>
+<td><a name="martinc"></a>martinc</td>
+<td>Martin Cooper</td>
+<td><a class="externalLink" href="mailto:martinc@apache.org">martinc@apache.org</a></td>
+<td>ASF</td>
+<td>Committer</td>
+<td>-</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/07a0055c4259569aff19ee558ee3999d?d=mm&amp;s=60" alt="" /></td>
+<td><a name="mbaclay"></a>mbaclay</td>
+<td>Marecor M. Baclay</td>
+<td><a class="externalLink" href="mailto:mbaclay@apache.org">mbaclay@apache.org</a></td>
+<td>-</td>
+<td>Committer</td>
+<td>+8</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/026acc6fb60c44ed137de35517837065?d=mm&amp;s=60" alt="" /></td>
+<td><a name="jzurbano"></a>jzurbano</td>
+<td>Jevica Arianne B. Zurbano</td>
+<td><a class="externalLink" href="mailto:jzurbano@apache.org">jzurbano@apache.org</a></td>
+<td>-</td>
+<td>Committer</td>
+<td>+8</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/aeb4e8e65a6c91233e1a9128d8989093?d=mm&amp;s=60" alt="" /></td>
+<td><a name="alecharp"></a>alecharp</td>
+<td>Adrien Lecharpentier</td>
+<td><a class="externalLink" href="mailto:alecharp@apache.org">alecharp@apache.org</a></td>
+<td>Zenika</td>
+<td>Committer</td>
+<td>+1</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/a9d812d5d37ff4b5a93671eb6648c54b?d=mm&amp;s=60" alt="" /></td>
+<td><a name="svogt"></a>svogt</td>
+<td>Sascha Vogt</td>
+<td><a class="externalLink" href="mailto:svogt@apache.org">svogt@apache.org</a></td>
+<td>-</td>
+<td>Committer</td>
+<td>Europe/Berlin</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/38f7796e51a469f8efc08de2d88fa335?d=mm&amp;s=60" alt="" /></td>
+<td><a name="joakime"></a>joakime</td>
+<td>Joakim Erdfelt</td>
+<td><a class="externalLink" href="mailto:joakime@apache.org">joakime@apache.org</a></td>
+<td>ASF</td>
+<td>Emeritus</td>
+<td>-5</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
+<td><a name="jvanzyl"></a>jvanzyl</td>
+<td>Jason van Zyl</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
+<td><a name="bayard"></a>bayard</td>
+<td>Henri Yandell</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
+<td><a name="kenney"></a>kenney</td>
+<td>Kenney Westerhof</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
+<td><a name="aheritier"></a>aheritier</td>
+<td>Arnaud Heritier</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
+<td><a name="bellingard"></a>bellingard</td>
+<td>Fabrice Bellingard</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
+<td><a name="jdumay"></a>jdumay</td>
+<td>James William Dumay</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
+<td><a name="jmcconnell"></a>jmcconnell</td>
+<td>Jesse McConnell</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/efe7252f3b18253bf4318062ece95a3b?d=mm&amp;s=60" alt="" /></td>
+<td><a name="evenisse"></a>evenisse</td>
+<td>Emmanuel Venisse</td>
+<td><a class="externalLink" href="mailto:evenisse@apache.org">evenisse@apache.org</a></td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="b">
+<td><img src="http://www.gravatar.com/avatar/b38a3be83226b10b399985496c058e4c?d=mm&amp;s=60" alt="" /></td>
+<td><a name="jtolentino"></a>jtolentino</td>
+<td>Ernesto Tolentino Jr.</td>
+<td><a class="externalLink" href="mailto:jtolentino@apache.org">jtolentino@apache.org</a></td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
+<td><a name="wsmoak"></a>wsmoak</td>
+<td>Wendy Smoak</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr></table></div>
+<div class="section">
+<h3><a name="Contributors"></a>Contributors</h3><a name="Contributors"></a>
+<p>The following additional people have contributed to this project through the way of suggestions, patches or documentation.</p>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Name</th></tr>
+<tr class="b">
+<td>Steffen Grunwald</td></tr>
+<tr class="a">
+<td>Stefan Prange</td></tr>
+<tr class="b">
+<td>John Michael Luy</td></tr>
+<tr class="a">
+<td>Martin H&#xf6;ller</td></tr>
+<tr class="b">
+<td>Stephen Gargan</td></tr>
+<tr class="a">
+<td>Dario Oliveros</td></tr>
+<tr class="b">
+<td>james ahlborn</td></tr>
+<tr class="a">
+<td>Jim Jackson</td></tr>
+<tr class="b">
+<td>Daniel Harvey</td></tr>
+<tr class="a">
+<td>Aleksandr Tarutin</td></tr>
+<tr class="b">
+<td>Teodoro Cue Jr.</td></tr>
+<tr class="a">
+<td>Jan Ancajas</td></tr>
+<tr class="b">
+<td>Jens M&#xfc;hlenhoff</td></tr>
+<tr class="a">
+<td>Dawn Angelito</td></tr>
+<tr class="b">
+<td>Henry Isidro</td></tr>
+<tr class="a">
+<td>Antoine Veret</td></tr>
+<tr class="b">
+<td>Christian Gruber</td></tr>
+<tr class="a">
+<td>Allan Ramirez</td></tr>
+<tr class="b">
+<td>Pete Marvin King</td></tr>
+<tr class="a">
+<td>Joel Sudiacal</td></tr>
+<tr class="b">
+<td>Milos Kleint</td></tr>
+<tr class="a">
+<td>Nick Gonzalez</td></tr>
+<tr class="b">
+<td>Maria Catherine Tan</td></tr>
+<tr class="a">
+<td>Dan Tran</td></tr>
+<tr class="b">
+<td>Gwen Harold Autencio</td></tr>
+<tr class="a">
+<td>Mark Jeffery</td></tr>
+<tr class="b">
+<td>Fabrice Daugan</td></tr>
+<tr class="a">
+<td>Doron Solomon</td></tr>
+<tr class="b">
+<td>Michal Stochmialek</td></tr>
+<tr class="a">
+<td>Julien Henry</td></tr>
+<tr class="b">
+<td>Andreas Baumann</td></tr>
+<tr class="a">
+<td>Adelita L. Padilla</td></tr>
+<tr class="b">
+<td>Daniel Triphaus</td></tr>
+<tr class="a">
+<td>Patti Arachchige Eshan Sudharaka</td></tr>
+<tr class="b">
+<td>Shinsuke Sugaya</td></tr>
+<tr class="a">
+<td>Marcus Dimand</td></tr>
+<tr class="b">
+<td>Catalino Pineda Jr.</td></tr>
+<tr class="a">
+<td>Warner Pinero</td></tr>
+<tr class="b">
+<td>Dave Brosius</td></tr>
+<tr class="a">
+<td>Jim Sellers</td></tr>
+<tr class="b">
+<td>Igor Galic</td></tr>
+<tr class="a">
+<td>Mark Struberg</td></tr>
+<tr class="b">
+<td>Marc Jansen Tan Chua</td></tr>
+<tr class="a">
+<td>Lucien Weller</td></tr>
+<tr class="b">
+<td>Greg Michael Meneses</td></tr>
+<tr class="a">
+<td>Chris Graham</td></tr>
+<tr class="b">
+<td>Fredrik Jonson</td></tr>
+<tr class="a">
+<td>Lester Ecarma</td></tr>
+<tr class="b">
+<td>Eirik Bj&#xf8;rsn&#xf8;s</td></tr>
+<tr class="a">
+<td>Jan Ancajas</td></tr>
+<tr class="b">
+<td>Damien Blugeon</td></tr>
+<tr class="a">
+<td>John Michael Luy</td></tr>
+<tr class="b">
+<td>Wolfgang Strunk</td></tr>
+<tr class="a">
+<td>Jevica Arianne B. Zurbano</td></tr>
+<tr class="b">
+<td>Stefan Prange</td></tr>
+<tr class="a">
+<td>Napoleon Esmundo C. Ramirez</td></tr>
+<tr class="b">
+<td>Brent Atkinson</td></tr>
+<tr class="a">
+<td>Antoine ROUAZE</td></tr>
+<tr class="b">
+<td>markus innerebner</td></tr>
+<tr class="a">
+<td>Jonathan Sharp</td></tr></table></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/team.html b/docs/2.2.8/team.html
new file mode 100644
index 0000000..53f8d26
--- /dev/null
+++ b/docs/2.2.8/team.html
@@ -0,0 +1,529 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.0:team
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <title>Archiva &#x2013; Project Team</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Project Team</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Project_Team"></a>Project Team</h2><a name="Project_Team"></a>
+<p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p>
+<p>The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p><section>
+<h3><a name="Members"></a>Members</h3><a name="Members"></a>
+<p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Image</th>
+<th>Id</th>
+<th>Name</th>
+<th>Email</th>
+<th>Organization</th>
+<th>Roles</th>
+<th>Time Zone</th></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/bab29f762bea8e578505424443d8cd41?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="olamy"></a>olamy</td>
+<td>Olivier Lamy</td>
+<td><a class="externalLink" href="mailto:olamy@apache.org">olamy@apache.org</a></td>
+<td>ASF</td>
+<td>PMC Chair</td>
+<td>Australia/Brisbane</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/a49e2c09c4c36374c40e6cb819157eda?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="oching"></a>oching</td>
+<td>Maria Odea B. Ching</td>
+<td><a class="externalLink" href="mailto:oching@apache.org">oching@apache.org</a></td>
+<td>-</td>
+<td>PMC Member</td>
+<td>+8</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/1db61ec29963d4a77ef2275140144fd4?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="brett"></a>brett</td>
+<td>Brett Porter</td>
+<td><a class="externalLink" href="mailto:brett@apache.org">brett@apache.org</a></td>
+<td>ASF</td>
+<td>PMC Member</td>
+<td>+10</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/6559d4b2de15cb1433fc13c34599e4c7?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="carlos"></a>carlos</td>
+<td>Carlos Sanchez</td>
+<td><a class="externalLink" href="mailto:carlos@apache.org">carlos@apache.org</a></td>
+<td>ASF</td>
+<td>PMC Member</td>
+<td>+1</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/89d1772a8f19085482a13decc709cda2?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="epunzalan"></a>epunzalan</td>
+<td>Edwin Punzalan</td>
+<td><a class="externalLink" href="mailto:epunzalan@apache.org">epunzalan@apache.org</a></td>
+<td>-</td>
+<td>PMC Member</td>
+<td>-8</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/3fe23ff82e7920b5941e18515adf9bba?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="nicolas"></a>nicolas</td>
+<td>Nicolas De Loof</td>
+<td><a class="externalLink" href="mailto:nicolas@apache.org">nicolas@apache.org</a></td>
+<td>-</td>
+<td>PMC Member</td>
+<td>+1</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/030e414fc478d45703ba0cbf6fa431f9?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="skygo"></a>skygo</td>
+<td>Eric Barboni</td>
+<td><a class="externalLink" href="mailto:skygo@apache.org">skygo@apache.org</a></td>
+<td>IRIT</td>
+<td>PMC Member</td>
+<td>Europe/Paris</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/27790393b874159fe05609ca7ed812f9?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="jbonofre"></a>jbonofre</td>
+<td>Jean-Baptiste Onofr&#xe9;</td>
+<td><a class="externalLink" href="mailto:jbonofre@apache.org">jbonofre@apache.org</a></td>
+<td>Talend</td>
+<td>PMC Member</td>
+<td>Europe/Paris</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/333ab2c837b3073314c221ae7dd9cc2d?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="martin_s"></a>martin_s</td>
+<td>Martin Schreier</td>
+<td><a class="externalLink" href="mailto:martin_s@apache.org">martin_s@apache.org</a></td>
+<td>-</td>
+<td>PMC Member</td>
+<td>+1</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/c8686cad245196c9e392201ad7bb364f?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="dennisl"></a>dennisl</td>
+<td>Dennis Lundberg</td>
+<td><a class="externalLink" href="mailto:dennisl@apache.org">dennisl@apache.org</a></td>
+<td>ASF</td>
+<td>Committer</td>
+<td>+1</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/76f1823568e5f31931bd32415a4cffa7?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="martinc"></a>martinc</td>
+<td>Martin Cooper</td>
+<td><a class="externalLink" href="mailto:martinc@apache.org">martinc@apache.org</a></td>
+<td>ASF</td>
+<td>Committer</td>
+<td>-</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/07a0055c4259569aff19ee558ee3999d?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="mbaclay"></a>mbaclay</td>
+<td>Marecor M. Baclay</td>
+<td><a class="externalLink" href="mailto:mbaclay@apache.org">mbaclay@apache.org</a></td>
+<td>-</td>
+<td>Committer</td>
+<td>+8</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/026acc6fb60c44ed137de35517837065?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="jzurbano"></a>jzurbano</td>
+<td>Jevica Arianne B. Zurbano</td>
+<td><a class="externalLink" href="mailto:jzurbano@apache.org">jzurbano@apache.org</a></td>
+<td>-</td>
+<td>Committer</td>
+<td>+8</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/aeb4e8e65a6c91233e1a9128d8989093?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="alecharp"></a>alecharp</td>
+<td>Adrien Lecharpentier</td>
+<td><a class="externalLink" href="mailto:alecharp@apache.org">alecharp@apache.org</a></td>
+<td>Zenika</td>
+<td>Committer</td>
+<td>+1</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/a9d812d5d37ff4b5a93671eb6648c54b?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="svogt"></a>svogt</td>
+<td>Sascha Vogt</td>
+<td><a class="externalLink" href="mailto:svogt@apache.org">svogt@apache.org</a></td>
+<td>-</td>
+<td>Committer</td>
+<td>Europe/Berlin</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/38f7796e51a469f8efc08de2d88fa335?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="joakime"></a>joakime</td>
+<td>Joakim Erdfelt</td>
+<td><a class="externalLink" href="mailto:joakime@apache.org">joakime@apache.org</a></td>
+<td>ASF</td>
+<td>Emeritus</td>
+<td>-5</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></figure></td>
+<td><a name="jvanzyl"></a>jvanzyl</td>
+<td>Jason van Zyl</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></figure></td>
+<td><a name="bayard"></a>bayard</td>
+<td>Henri Yandell</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></figure></td>
+<td><a name="kenney"></a>kenney</td>
+<td>Kenney Westerhof</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></figure></td>
+<td><a name="aheritier"></a>aheritier</td>
+<td>Arnaud Heritier</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></figure></td>
+<td><a name="bellingard"></a>bellingard</td>
+<td>Fabrice Bellingard</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></figure></td>
+<td><a name="jdumay"></a>jdumay</td>
+<td>James William Dumay</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></figure></td>
+<td><a name="jmcconnell"></a>jmcconnell</td>
+<td>Jesse McConnell</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/efe7252f3b18253bf4318062ece95a3b?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="evenisse"></a>evenisse</td>
+<td>Emmanuel Venisse</td>
+<td><a class="externalLink" href="mailto:evenisse@apache.org">evenisse@apache.org</a></td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="b">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/b38a3be83226b10b399985496c058e4c?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a name="jtolentino"></a>jtolentino</td>
+<td>Ernesto Tolentino Jr.</td>
+<td><a class="externalLink" href="mailto:jtolentino@apache.org">jtolentino@apache.org</a></td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr>
+<tr class="a">
+<td align="left"><figure><img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></figure></td>
+<td><a name="wsmoak"></a>wsmoak</td>
+<td>Wendy Smoak</td>
+<td>-</td>
+<td>-</td>
+<td>Emeritus</td>
+<td>-</td></tr></table></section><section>
+<h3><a name="Contributors"></a>Contributors</h3><a name="Contributors"></a>
+<p>The following additional people have contributed to this project through the way of suggestions, patches or documentation.</p>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Name</th></tr>
+<tr class="b">
+<td align="left">Steffen Grunwald</td></tr>
+<tr class="a">
+<td align="left">Stefan Prange</td></tr>
+<tr class="b">
+<td align="left">John Michael Luy</td></tr>
+<tr class="a">
+<td align="left">Martin H&#xf6;ller</td></tr>
+<tr class="b">
+<td align="left">Stephen Gargan</td></tr>
+<tr class="a">
+<td align="left">Dario Oliveros</td></tr>
+<tr class="b">
+<td align="left">james ahlborn</td></tr>
+<tr class="a">
+<td align="left">Jim Jackson</td></tr>
+<tr class="b">
+<td align="left">Daniel Harvey</td></tr>
+<tr class="a">
+<td align="left">Aleksandr Tarutin</td></tr>
+<tr class="b">
+<td align="left">Teodoro Cue Jr.</td></tr>
+<tr class="a">
+<td align="left">Jan Ancajas</td></tr>
+<tr class="b">
+<td align="left">Jens M&#xfc;hlenhoff</td></tr>
+<tr class="a">
+<td align="left">Dawn Angelito</td></tr>
+<tr class="b">
+<td align="left">Henry Isidro</td></tr>
+<tr class="a">
+<td align="left">Antoine Veret</td></tr>
+<tr class="b">
+<td align="left">Christian Gruber</td></tr>
+<tr class="a">
+<td align="left">Allan Ramirez</td></tr>
+<tr class="b">
+<td align="left">Pete Marvin King</td></tr>
+<tr class="a">
+<td align="left">Joel Sudiacal</td></tr>
+<tr class="b">
+<td align="left">Milos Kleint</td></tr>
+<tr class="a">
+<td align="left">Nick Gonzalez</td></tr>
+<tr class="b">
+<td align="left">Maria Catherine Tan</td></tr>
+<tr class="a">
+<td align="left">Dan Tran</td></tr>
+<tr class="b">
+<td align="left">Gwen Harold Autencio</td></tr>
+<tr class="a">
+<td align="left">Mark Jeffery</td></tr>
+<tr class="b">
+<td align="left">Fabrice Daugan</td></tr>
+<tr class="a">
+<td align="left">Doron Solomon</td></tr>
+<tr class="b">
+<td align="left">Michal Stochmialek</td></tr>
+<tr class="a">
+<td align="left">Julien Henry</td></tr>
+<tr class="b">
+<td align="left">Andreas Baumann</td></tr>
+<tr class="a">
+<td align="left">Adelita L. Padilla</td></tr>
+<tr class="b">
+<td align="left">Daniel Triphaus</td></tr>
+<tr class="a">
+<td align="left">Patti Arachchige Eshan Sudharaka</td></tr>
+<tr class="b">
+<td align="left">Shinsuke Sugaya</td></tr>
+<tr class="a">
+<td align="left">Marcus Dimand</td></tr>
+<tr class="b">
+<td align="left">Catalino Pineda Jr.</td></tr>
+<tr class="a">
+<td align="left">Warner Pinero</td></tr>
+<tr class="b">
+<td align="left">Dave Brosius</td></tr>
+<tr class="a">
+<td align="left">Jim Sellers</td></tr>
+<tr class="b">
+<td align="left">Igor Galic</td></tr>
+<tr class="a">
+<td align="left">Mark Struberg</td></tr>
+<tr class="b">
+<td align="left">Marc Jansen Tan Chua</td></tr>
+<tr class="a">
+<td align="left">Lucien Weller</td></tr>
+<tr class="b">
+<td align="left">Greg Michael Meneses</td></tr>
+<tr class="a">
+<td align="left">Chris Graham</td></tr>
+<tr class="b">
+<td align="left">Fredrik Jonson</td></tr>
+<tr class="a">
+<td align="left">Lester Ecarma</td></tr>
+<tr class="b">
+<td align="left">Eirik Bj&#xf8;rsn&#xf8;s</td></tr>
+<tr class="a">
+<td align="left">Jan Ancajas</td></tr>
+<tr class="b">
+<td align="left">Damien Blugeon</td></tr>
+<tr class="a">
+<td align="left">John Michael Luy</td></tr>
+<tr class="b">
+<td align="left">Wolfgang Strunk</td></tr>
+<tr class="a">
+<td align="left">Jevica Arianne B. Zurbano</td></tr>
+<tr class="b">
+<td align="left">Stefan Prange</td></tr>
+<tr class="a">
+<td align="left">Napoleon Esmundo C. Ramirez</td></tr>
+<tr class="b">
+<td align="left">Brent Atkinson</td></tr>
+<tr class="a">
+<td align="left">Antoine ROUAZE</td></tr>
+<tr class="b">
+<td align="left">markus innerebner</td></tr>
+<tr class="a">
+<td align="left">Jonathan Sharp</td></tr></table></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
diff --git a/docs/2.2.8/tour/index.html b/docs/2.2.8/tour/index.html
new file mode 100644
index 0000000..8f684d0
--- /dev/null
+++ b/docs/2.2.8/tour/index.html
@@ -0,0 +1,496 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Brett Porter" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Feature Tour</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+    <script src="../js/jquery.fancybox.pack.2.1.5.js" type="text/javascript"></script><script src="../js/jquery.mousewheel-3.0.6.pack.js" type="text/javascript"></script><script src="../js/tour-index.js" type="text/javascript"></script><link rel="stylesheet" href="../css/jquery.fancybox.2.1.5.css" type="text/css" media="screen" /><script type="text/javascript"></script>          <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Feature Tour</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Feature Tour</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- ~ 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. -->
+  
+
+
+
+
+    <style type="text/css"></style>
+    
+<div class="section">
+<h2><a name="Archiva_Feature_Tour"></a>Archiva Feature Tour</h2>
+
+      
+<p>
+        Archiva is a feature rich repository manager. Below is a short tour of some of the features that are available.
+      </p>
+  
+      
+<table border="0" class="table table-striped">
+        
+<tr class="a">
+          
+<td>
+            <a href="../images/tour/project-info.png" class="gallery_image" rel="gallery_image" title="Archiva provides an informative display for artifacts stored in the repository.                       This includes a user-friendly display of the Maven informations, as well as the relationships between projects.">
+              <img src="../images/tour/project-info.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br />
+              1. Project Information
+            </a>
+          </td>
+          
+<td>
+            <a href="../images/tour/search-form.png" class="gallery_image" rel="gallery_image" title="Archiva has both a user-friendly browsing interface, and powerful search functionalities. The contents of all artifacts are indexed,                           including Maven project information and Java class information to facilitate locating code within any repository.                           By using the Find Artifact feature, you can identify unknown artifacts based on the database of known checksums for known artifacts.">
+              <img src="../images/tour/search-form.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br />
+              2. Artifact Search
+            </a>
+          </td>
+          
+<td>
+            <a href="../images/tour/remote-proxy-cache.png" class="gallery_image" rel="gallery_image" title="Archiva can operate as a proxy for remote repositories, allowing you to improve build                           performance by caching artifacts in a closer network location, and control artifact                           usage through the use of white and black lists on proxy connectors.">
+              <img src="../images/tour/remote-proxy-cache.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br />
+               3. Remote Proxying Cache
+            </a>
+          </td>
+          
+<td>
+            <a href="../images/tour/upload-files.png" class="gallery_image" rel="gallery_image" title="Archiva now supports artifact uploads via UI. A pom file can also be included                           in the upload or Archiva can generate one during the upload.">
+              <img src="../images/tour/upload-files.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br />
+               4. Artifact Upload
+            </a>
+          </td>
+        </tr>
+        
+<tr class="b">
+          
+<td>
+            <a href="../images/tour/graphical-admin.png" class="gallery_image" rel="gallery_image" title="Archiva has a comprehensive web-based administration interface for configuring repositories,                           remote proxies, scheduled jobs and more. The configuration is kept in sync with the XML                           configuration files so that they can also be hand-edited if necessary.">
+              <img src="../images/tour/graphical-admin.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              5. Graphical Administration
+            </a>
+          </td>
+          
+<td>
+            <a href="../images/tour/repos-group.png" class="gallery_image" rel="gallery_image" title="Archiva implements the concept of virtual repositories, wherein a set of                           Archiva repositories can be grouped together under one URL and that one URL                           can be used by clients (s.a. Maven) to download from these repositories.">
+              <img src="../images/tour/repos-group.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              6. Virtual Repositories
+            </a>
+          </td>
+          
+<td>
+            <a href="../images/tour/search-results.png" class="gallery_image" rel="gallery_image" title="Archiva provide filterable search results.">
+              <img src="../images/tour/search-results.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              7. Filterable search results
+            </a>
+          </td>
+          
+<td>
+            <a href="../images/tour/security.png" class="gallery_image" rel="gallery_image" title="Archiva uses the Redback security framework to provide flexible role-based security controls for repositories.                           You can use the graphical interface to maintain user accounts, as well as secure repositories for read and/or write                           access for individuals, or given roles.">
+              <img src="../images/tour/security.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              8. Role-based Security
+            </a>
+          </td>
+
+        </tr>
+        
+<tr class="a">
+          
+<td>
+            <a href="../images/tour/reports.png" class="gallery_image" rel="gallery_image" title="Archiva monitors the state of the managed repositories and keeps track of                           potential problems to allow improvement of metadata and to assist in                           troubleshooting problems.">
+              <img src="../images/tour/reports.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              9. Integrity Reports
+            </a>
+          </td>
+          
+<td>
+            <a href="../images/tour/maintenance.png" class="gallery_image" rel="gallery_image" title="Archiva has utilities called consumers that can be used for maintaining the                           Archiva repositories. These can be configured or activated in the Repository                           Scanning section of the webapp. The configuration are stored in Archiva's                           xml configuration files, meaning you can also hand-edit these config files to                           enable or disable these consumers.">
+              <img src="../images/tour/maintenance.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              10. Maintenance
+            </a>
+          </td>
+          
+<td>
+            <a href="../images/proxy-connectors-rules.png" class="gallery_image" rel="gallery_image" title="Archiva has a screen to configure in a bulk mode black/white list when fetching artifacts from remote repositories.">
+              <img src="../images/proxy-connectors-rules.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
+              11. ProxyConnectors Rules
+            </a>
+          </td>
+        </tr>
+      </table>
+    </div>
+  
+
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/auditlog-report.html b/docs/2.2.8/userguide/auditlog-report.html
new file mode 100644
index 0000000..345e6bc
--- /dev/null
+++ b/docs/2.2.8/userguide/auditlog-report.html
@@ -0,0 +1,388 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Audit Log Report</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Audit Log Report</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Audit_Log_Report"></a>Audit Log Report</h2>
+<p>Starting with Archiva 1.3, audit events can be viewed and queried from the web UI. In the current implementation, only artifact upload events are viewable but there are plans to include other events such as artifact delete, repository creation and deletion, configuration changes, etc. </p>
+<p>To view the audit events, click <tt>Audit Log Report</tt> from the navigation menu. Initially, the latest 10 artifact upload events are displayed.</p><img src="../images/latest-events.png" alt="Latest Events" />
+<div class="section">
+<h3><a name="Customizing_the_Audit_Log_Report"></a>Customizing the Audit Log Report</h3>
+<p>The following fields can be specified when querying for the audit events:</p>
+<ol style="list-style-type: decimal">
+<li>Repository - the repository where the events happened. Only those repositories which the logged in user has permission to access are listed in the drop-down box.</li>
+<li>Group ID - the <tt>groupId</tt> of the artifact whose audit events you want to view.</li>
+<li>Artifact ID - the <tt>artifactId</tt> of the artifact whose audit events you want to view.</li>
+<li>Start Date - the start date of the event(s) you want to view. This defaults to the current date if none is specified.</li>
+<li>End Date - the end date of the event(s) you want to view. This defaults to the current date if none is specified.</li>
+<li>Row Count - the number of rows you want displayed per page. This will be the basis for the pagination of the results. The default value is 30 rows.</li></ol>
+<p>Just specify values for either one or all of the above fields and then submit the form to perform the query. The results of the query will be displayed at the lower section of the page, similar to that shown in the <tt>Latest Events</tt> except that the heading will be <tt>Results</tt> instead of <tt>Latest Events</tt>.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/browsing.html b/docs/2.2.8/userguide/browsing.html
new file mode 100644
index 0000000..1e0d875
--- /dev/null
+++ b/docs/2.2.8/userguide/browsing.html
@@ -0,0 +1,402 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Maria Odea Ching
+Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20121218" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Browsing</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Browsing</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Browsing</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Browsing"></a>Browsing </h2>
+<div class="section">
+<h3><a name="Permissions"></a>Permissions</h3>
+<p>The user can only browse those repositories where the user is an observer or a manager. If the user does not have permission to access any repository, a message saying &quot;You have access to no repositories. Ask your system administrator for access&quot; will be displayed. </p></div>
+<div class="section">
+<h3><a name="Repository_Browse_Layout"></a>Repository Browse Layout</h3>
+<p>The current layout of the repositories in Repository Browse uses the Maven 2 layout, which is the groupId, artifactId and version. When the version is clicked, the Artifact Info page (see the next section) will be displayed. There is currently an issue with regard to Maven 1 artifacts, see <a class="externalLink" href="http://jira.codehaus.org/browse/MRM-585"> http://jira.codehaus.org/browse/MRM-585</a>.</p><img src="../images/browsing.png" alt="" /></div>
+<div class="section">
+<h3><a name="Artifact_Info"></a>Artifact Info</h3>
+<p>Items in the repositories are hyperlinked allowing you easy access to view more information. By clicking on the Group ID or Artifact ID you will be taken to the repository browser. The Artifact Info page is divided into six views:</p>
+<p>1. Info. Basic information about the artifact is displayed here. These are the groupId, artifactId, version and packaging. A dependency pom snippet is also available, which a user can just copy and paste in a pom file to declare the artifact as a dependency of the project.</p><img src="../images/artifact-info.png" alt="" />
+<p>2. Dependencies. The dependencies of the artifact will be listed here. The user can easily navigate to a specific dependency by clicking on the groupId, artifactId, or version link. The scope of the dependency is also shown.</p><img src="../images/dependencies.png" alt="" />
+<p>3. Dependency Tree. The dependencies of the artifact are displayed in a tree-like view, which can also be navigated.</p><img src="../images/dependency-tree.png" alt="" />
+<p>4. Used By. Lists all the artifacts in the repository which use this artifact.</p><img src="../images/used-by.png" alt="" />
+<p>5. Mailing Lists. The project mailing lists available in the artifact's pom are displayed here.</p><img src="../images/mailing-lists.png" alt="" />
+<p>6. Download. Clicking on this link will download the artifact to your local machine.</p><img src="../images/artifact-download.png" alt="" />
+<p>7. View Artifact Content. Clicking on this link to view artifact content remotely</p><img src="../images/artifact-content.png" alt="" /></div>
+<div class="section">
+<h3><a name="Downloading_Artifacts"></a>Downloading Artifacts</h3>
+<p>Artifacts can be downloaded from the artifact info page. All files, except for the metadata.xml files, that are associated with the artifact are available in the download box. The size of the files in bytes are displayed at the right section of the download box. </p>
+<p>Note: Upon downloading the artifact, you will be asked to enter your username and password for the repository where the artifact will be downloaded from. Only users with Global Repository Manager, Repository Manager, or Repository Observer roles for that repository can download the artifact.</p></div>
+<div class="section">
+<h3><a name="Metadata"></a>Metadata</h3>
+<p>In 1.4, the new repository API or &quot;metadata repository&quot; was introduced. One of the essential features of the metadata repository is to be able to add generic information (such as ratings, comments, etc.) about a project through facets. These facets are stored in the project properties file in the metadata repository. </p>
+<p>Only users with <tt>Repository Manager</tt> roles for the repository where the artifact is located can add or delete properties in the metadata via the <tt>Metadata</tt> tab in <tt>Artifact Browse</tt>. </p>
+<p>To add a property in the metadata, just specify a <tt>Property Name</tt> and a <tt>Property Value</tt> in the respective text fields then click <tt>Add</tt>.</p><img src="../images/add-metadata.png" alt="Add Metadata Property " />
+<p>To delete a property, just click the corresponding delete icon (X) of the specific property you want to delete. A <tt>&quot;Property successfully deleted.&quot;</tt> message should be displayed after a successful delete. </p><img src="../images/delete-metadata.png" alt="Delete Metadata Property " /></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/delete-artifact.html b/docs/2.2.8/userguide/delete-artifact.html
new file mode 100644
index 0000000..86a9c59
--- /dev/null
+++ b/docs/2.2.8/userguide/delete-artifact.html
@@ -0,0 +1,385 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20121218" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Deleting an Artifact</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Deleting an Artifact</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Deleting an Artifact</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Deleting_an_Artifact"></a>Deleting an Artifact</h2>
+<p>The Delete Artifact feature allows groupId or artifacts to be deleted from the managed repositories.</p>
+<div>
+<pre>  User must have a Repository Manager role to a repository to be able to delete artifacts from it.</pre></div>
+<p>To delete artifacts, you must simply browse to what you want to delete</p>
+<div class="section">
+<h3><a name="Delete_groupId"></a>Delete groupId</h3>
+<p>Use trash icon near the groupId you want to delete</p><img src="../images/delete-groupid.png" alt="" /></div>
+<div class="section">
+<h3><a name="Delete_artifact"></a>Delete artifact</h3>
+<p>Browse to detail view of artifact, go to Artifacts tab then delete the artifact with trash icon</p><img src="../images/delete-artifact.png" alt="" /></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/deploy.html b/docs/2.2.8/userguide/deploy.html
new file mode 100644
index 0000000..bc44f94
--- /dev/null
+++ b/docs/2.2.8/userguide/deploy.html
@@ -0,0 +1,517 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="2012-09-15" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Deploying to Repository</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Deploying to Repository</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Deploying to repository</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Deploying_to_Repository"></a>Deploying to Repository</h2>
+<p>There are different ways on how you can deploy artifacts in an Archiva repository. </p>
+<ul>
+<li><a href="#Maven">Maven</a> Configuring Maven to deploy to an Archiva repository</li>
+<li><a href="#Web_UI">Web UI</a> Deploying via the Web UI Form</li></ul>
+<p>Starting with Archiva 1.2.3, it is possible to block re-deployment of released artifacts to a specific repository. This can be configured through the repository configuration page by ticking the <tt>Block Re-deployment of Released Artifacts</tt> checkbox.</p>
+<p><b>WARNING</b> The deployed artifact may not appear immediately in the search results. The execution of the <tt>index-content</tt> repository consumer and other scanning consumers are queued for execution to prevent concurrent updates to the index.</p>
+<div class="section">
+<h3><a name="Configuring_Maven_to_deploy_to_an_Archiva_repository"></a>Configuring <a name="Maven">Maven</a> to deploy to an Archiva repository</h3>
+<ol style="list-style-type: decimal">
+<li>Create a user in Archiva to use for deployment (or use guest if you wish to deploy without a username and password)</li>
+<li>The deployment user needs the Role 'Repository Manager' for each repository that you want to deploy to</li>
+<li>Define the server for deployment inside your 'settings.xml', use the newly created user for authentication
+<div class="source">
+<pre>&lt;settings&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;servers&gt;
+    &lt;server&gt;
+      &lt;id&gt;archiva.internal&lt;/id&gt;
+      &lt;username&gt;{archiva-deployment-user}&lt;/username&gt;
+      &lt;password&gt;{archiva-deployment-pwd}&lt;/password&gt;
+    &lt;/server&gt;
+    &lt;server&gt;
+      &lt;id&gt;archiva.snapshots&lt;/id&gt;
+      &lt;username&gt;{archiva-deployment-user}&lt;/username&gt;
+      &lt;password&gt;{archiva-deployment-pwd}&lt;/password&gt;
+    &lt;/server&gt;
+    &lt;!-- omitted xml --&gt;
+  &lt;/servers&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/settings&gt;</pre></div></li></ol>
+<div class="section">
+<h4><a name="Deploying_to_Archiva_using_HTTP"></a>Deploying to Archiva using HTTP</h4>
+<p>Configure the <tt>distributionManagement</tt> part of your <tt>pom.xml</tt> (customising the URLs as needed). The <tt>id</tt> of the repository in <tt>distributionManagement</tt> <b>must</b> match the <tt>id</tt> of the <tt>server</tt> element in <tt>settings.xml</tt>.</p>
+<div class="source">
+<pre>&lt;project&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;distributionManagement&gt;
+    &lt;repository&gt;
+      &lt;id&gt;archiva.internal&lt;/id&gt;
+      &lt;name&gt;Internal Release Repository&lt;/name&gt;
+      &lt;url&gt;http://reposerver.mycompany.com:8080/repository/internal/&lt;/url&gt;
+    &lt;/repository&gt;
+    &lt;snapshotRepository&gt;
+      &lt;id&gt;archiva.snapshots&lt;/id&gt;
+      &lt;name&gt;Internal Snapshot Repository&lt;/name&gt;
+      &lt;url&gt;http://reposerver.mycompany.com:8080/repository/snapshots/&lt;/url&gt;
+    &lt;/snapshotRepository&gt;
+  &lt;/distributionManagement&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/project&gt;</pre></div></div>
+<div class="section">
+<h4><a name="Deploying_to_Archiva_using_WebDAV"></a>Deploying to Archiva using WebDAV</h4>
+<p>In some cases, you may want to use WebDAV to deploy instead of HTTP. If you find this is necessary, follow the same process as for HTTP, with these additional steps:</p>
+<ol style="list-style-type: decimal">
+<li>Add <tt>dav:</tt> to the front of the deployment URLs:
+<div class="source">
+<pre>&lt;project&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;distributionManagement&gt;
+    &lt;repository&gt;
+      &lt;id&gt;archiva.internal&lt;/id&gt;
+      &lt;name&gt;Internal Release Repository&lt;/name&gt;
+      &lt;url&gt;dav:http://reposerver.mycompany.com:8080/repository/internal/&lt;/url&gt;
+    &lt;/repository&gt;
+    &lt;snapshotRepository&gt;
+      &lt;id&gt;archiva.snapshots&lt;/id&gt;
+      &lt;name&gt;Internal Snapshot Repository&lt;/name&gt;
+      &lt;url&gt;dav:http://reposerver.mycompany.com:8080/repository/snapshots/&lt;/url&gt;
+    &lt;/snapshotRepository&gt;
+  &lt;/distributionManagement&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/project&gt;</pre></div></li>
+<li>Add a build extension to your <tt>pom.xml</tt> (not required in Maven 2.0.9 and above)
+<div class="source">
+<pre>&lt;project&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;build&gt;
+    &lt;extensions&gt;
+      &lt;extension&gt;
+        &lt;groupId&gt;org.apache.maven.wagon&lt;/groupId&gt;
+        &lt;artifactId&gt;wagon-webdav-jackrabbit&lt;/artifactId&gt;
+        &lt;version&gt;2.2&lt;/version&gt;
+      &lt;/extension&gt;
+    &lt;/extensions&gt;
+  &lt;/build&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/project&gt;</pre></div></li></ol></div>
+<div class="section">
+<h4><a name="Deploying_using_other_protocols"></a>Deploying using other protocols</h4>
+<p>You can also deploy to the Archiva server using traditional means such as SCP, FTP, etc. For more information on these deployment techniques, refer to the Maven documentation.</p>
+<p>Once the files are deployed into the location of the Archiva managed repository, they should appear in the Browse page. The artifacts should also be searcheable as long as the <tt>index-content</tt> repository consumer is enabled.</p></div>
+<div class="section">
+<h4><a name="Deploying_Third-Party_Artifacts_to_Archiva_using_Maven"></a>Deploying Third-Party Artifacts to Archiva using Maven</h4>
+<p>You can use <tt>mvn deploy:deploy-file</tt> to deploy single artifacts to Archiva. Once you have the settings file in place as described above, you can deploy the artifact using this type of command:</p>
+<div class="source">
+<pre>mvn deploy:deploy-file -Dfile=filename.jar -DpomFile=filename.pom
+    -DrepositoryId=archiva.internal
+    -Durl=http://repo.mycompany.com:8080/repository/internal/</pre></div>
+<p>For more information, consult the <a class="externalLink" href="http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html"> documentation for the <tt>deploy:deploy-file</tt> goal</a></p>
+<p>If you wish to use WebDAV to deploy the file, add <tt>dav:</tt> to the start of the URL as in the previous instructions.</p>
+<p>However, on versions of Maven prior to 2.0.9, you will also need to create a file called <tt>pom.xml</tt> in the directory from which you intend to execute &quot;<tt>mvn deploy:deploy-file</tt>&quot;:</p>
+<div class="source">
+<pre>&lt;project&gt;
+  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+  &lt;groupId&gt;com.example&lt;/groupId&gt;
+  &lt;artifactId&gt;webdav-deploy&lt;/artifactId&gt;
+  &lt;packaging&gt;pom&lt;/packaging&gt;
+  &lt;version&gt;1&lt;/version&gt;
+  &lt;name&gt;Webdav Deployment POM&lt;/name&gt;
+
+  &lt;build&gt;
+    &lt;extensions&gt;
+      &lt;extension&gt;
+        &lt;groupId&gt;org.apache.maven.wagon&lt;/groupId&gt;
+        &lt;artifactId&gt;wagon-webdav-jackrabbit&lt;/artifactId&gt;
+        &lt;version&gt;2.2&lt;/version&gt;
+      &lt;/extension&gt;
+    &lt;/extensions&gt;
+  &lt;/build&gt;
+&lt;/project&gt;</pre></div>
+<p>This pom will not be deployed with the artifact, it simply serves to make the WebDAV protocol available to the build process.</p>
+<p>Alternately, you can save this file somewhere else, and use &quot;<tt>mvn ... -f /path/to/filename</tt>&quot; to force the use of an alternate POM file.</p></div></div>
+<div class="section">
+<h3><a name="Deploying_via_the_Web_UI_Form"></a>Deploying via the <a name="Web_UI">Web UI</a> Form</h3>
+<p>The easiest way to deploy in the repository is via the Web UI form, which can be accessed in the <b>Upload Artifact</b> section. Just follow these steps:</p>
+<ol style="list-style-type: decimal">
+<li>In Archiva, click the <b>Upload Artifact</b> option in the left menu. You should see a form similar to the one at the end of this section.</li>
+<li>Fill in the following required fields:
+<ul>
+<li>Group Id - the groupId of the artifact to be deployed.</li>
+<li>Artifact Id - the artifactId of the artifact to be deployed.</li>
+<li>Version - the version of the artifact to be deployed.</li>
+<li>Packaging - the packaging of the artifact to be deployed. (ex. jar, war, ear, etc.)</li>
+<li>Drag and drop files to be deployed.</li></ul></li>
+<li>Select the repository you want to deploy to. Please note that if you do not have write permission to the repository, you will not be allowed to deploy on it.</li>
+<li>Now, if you want Archiva to generate a pom for the artifact, check the Generate Maven 2 POM field. (Right now, only Maven 2 poms can be generated.) Alternately, supply a POM file to be deployed alongside the artifact.</li>
+<li>Click Saves files and a message will be displayed notifying you if the upload/deployment was successful or not.</li></ol>
+<p>These are the files that will be in your repository after deployment:</p>
+<ul>
+<li>artifact </li>
+<li>POM file (if you supplied one or checked Generate Maven 2 POM)</li>
+<li>maven-metadata.xml (this will be created if none exists in the artifact level yet, otherwise it will just be updated)</li>
+<li>maven-metadata.xml.sha1 and maven-metadata.xml.md5 (these will be generated for newly created maven-metadata.xml files, otherwise they will just be updated)</li></ul><img src="../images/upload-artifact.jpg" alt="Upload Artifact" /><!-- TODO: information for Maven 1, ant tasks, ivy, etc. --></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/index.html b/docs/2.2.8/userguide/index.html
new file mode 100644
index 0000000..5ace672
--- /dev/null
+++ b/docs/2.2.8/userguide/index.html
@@ -0,0 +1,385 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Users Guide</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Users Guide</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Users_Guide"></a>Users Guide</h2>
+<p>Welcome to the Archiva user's guide. Getting to know and use Archiva is very simple - please select one of the following documents to learn how to use Archiva quickly.</p>
+<ul>
+<li><a href="./browsing.html"> Browsing Archiva repositories</a></li>
+<li><a href="./searching.html"> Searching Archiva repositories</a></li>
+<li><a href="./find-artifact.html"> Identifying an unknown artifact by comparing the repository checksum</a></li>
+<li><a href="./using-repository.html"> Using Archiva as a repository for Maven, Ivy, etc.</a></li>
+<li><a href="./deploy.html"> Deploying artifacts to the repository</a></li>
+<li><a href="./virtual-repositories.html"> Configuring Virtual Repositories</a></li>
+<li><a href="./rss.html">RSS Feeds in Archiva</a></li>
+<li><a href="./querying-artifacts.html">Querying Artifacts</a></li></ul></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/querying-artifacts.html b/docs/2.2.8/userguide/querying-artifacts.html
new file mode 100644
index 0000000..cf33d87
--- /dev/null
+++ b/docs/2.2.8/userguide/querying-artifacts.html
@@ -0,0 +1,387 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20140521" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Querying Artifacts</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Querying Artifacts</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Querying Artifacts</a>
+          </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Querying_Artifacts"></a>Querying Artifacts</h2>
+<p>Sometimes you only need to download artifacts using a query and via the command line</p>
+<div class="section">
+<h3><a name="Query_format"></a>Query format</h3>
+<div class="source">
+<pre>  wget &quot;http://localhost:9091/archiva/restServices/archivaServices/searchService/artifact?g=org.apache.archiva&amp;a=archiva-model&amp;v=LATEST&quot;</pre></div>
+<p>Query parameters:</p>
+<ul>
+<li>g= groupId (mandatory)</li>
+<li>a= artifactId (mandatory)</li>
+<li>v= the version (or LATEST keyword) (mandatory)</li>
+<li>r= the repository (optional, if none all repositories available for reading for the current user are searched)</li></ul>
+<p><b>NOTE</b>: the response is a redirect (so you need to follow redirect if you want to download the artifact). No content response is returned if the query doesn't match any artifact.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/rss.html b/docs/2.2.8/userguide/rss.html
new file mode 100644
index 0000000..f6ae504
--- /dev/null
+++ b/docs/2.2.8/userguide/rss.html
@@ -0,0 +1,390 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Maria Odea Ching" />
+    <meta name="Date-Creation-yyyymmdd" content="20120924" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; RSS Feeds</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">RSS Feeds</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Rss Feeds in Archiva</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="RSS_Feeds"></a>RSS Feeds</h2>
+<p>There are two types of rss feeds in Archiva: new artifacts in repo feed and new versions of artifact feed.</p>
+<div class="section">
+<h3><a name="New_Artifacts_In_Repository"></a>New Artifacts In Repository</h3>
+<p>For versions 1.1 and 1.1.1, the default url for this feed is <tt>http://[hostname]:[port]/archiva/rss/rss_feeds?repoId=[repositoryId]</tt>. But since version 1.1.2, this has been changed to <tt>http://[hostname]:[port]/archiva/feeds/[repositoryId]</tt>. Since version 2.0.0 feed changed changed to <tt>http://[hostname]:[port]/feeds/[repositoryId]</tt>.</p>
+<p>There are two ways to subscribe to this feed:</p>
+<p>1. By copying the default url specified above and adding this to your feed reader. Just make sure to replace the <tt>hostname</tt>, <tt>port</tt> and <tt>repositoryId</tt>. The <tt>repositoryId</tt> is the id of the Archiva repo which you want to monitor.</p>
+<p>2. Via the feed icon in the Repositories page. Right click on the feed icon of the repository configuration and copy the link. Then add this link to your feed reader.</p><img src="../images/rss-repositories.png" alt="" /></div>
+<div class="section">
+<h3><a name="New_Versions_of_an_Artifact"></a>New Versions of an Artifact</h3>
+<p>The default url for this feed for versions 1.1 and 1.1.1 is <tt>http://[hostname]:[port]/archiva/rss/rss_feeds?groupId=[groupId]&amp;artifactId=[artifactId]</tt> but was changed to <tt>http://[hostname]:[port]/archiva/feeds/[groupId]/[artifactId]</tt> since version 1.1.2 for consistency purposes. Since version 2.0.0 feed changed changed to <tt>http://[hostname]:[port]/feeds/[groupId]/[artifactId]</tt></p>
+<p>You could subscribe to the feed the same way as specified in the New Artifacts In Repository section except that in #1, you need to specify the <tt>groupId</tt> and <tt>artifactId</tt> instead of the <tt>repositoryId</tt>. And in #2, you need to go to the Browse section. The rss feed icon is located in the artifactId level.</p><img src="../images/rss-browse.png" alt="" /></div>
+<div class="section">
+<h3><a name="Authentication"></a>Authentication</h3>
+<p>The authentication method used for the rss feeds is Http Basic Authentication. If your reader supports this, you would be prompted for a username and password when you subscribe to the feed. Supply your Archiva account credentials for this. Take note that only users with an Observer role for the specific repository would be able to subscribe to this feed.</p>
+<p>If the 'guest' account is enabled for the repository, you would no longer be asked for the username and password when you subscribe to the feed.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/searching.html b/docs/2.2.8/userguide/searching.html
new file mode 100644
index 0000000..03816f4
--- /dev/null
+++ b/docs/2.2.8/userguide/searching.html
@@ -0,0 +1,419 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="author" content="Maria Odea Ching
+Olivier Lamy" />
+    <meta name="Date-Creation-yyyymmdd" content="20120911" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Searching</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Searching</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Searching</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
+<h2><a name="Searching"></a>Searching</h2>
+<p>The Search functionality of Archiva allows a user to search for specific artifact references in the repository.</p>
+<div class="section">
+<h3><a name="Indexing"></a>Indexing</h3>
+<p>Before artifacts can be searched in Archiva, they need to be indexed first. Aritfacts are indexed during these instances:</p>
+<ul>
+<li>when a repository is scanned</li>
+<li>when an artifact is deployed or uploaded in the repository</li>
+<li>when an artifact is proxied or downloaded from a remote repository</li>
+<li>when remote index is available and downloaded</li></ul>
+<p>During repository scanning, the <tt>index-content</tt> consumer (see <a href="../adminguide/consumers.html">Consumers</a>) creates an indexing task and queues it in an indexing task queue. This indexing task is in turn executed by a task executor and that's where the actual indexing happens. A similar indexing task is also created and queued as artifacts are deployed in the Archiva repository or proxied from a remote repository. The reason behind this is to avoid multiple or simultaneous update of the index (a repository scan might be executing while artifacts are being deployed in the repository). <i>Note:</i> This behavior applies for versions starting 1.2.1.</p></div>
+<div class="section">
+<h3><a name="What_Can_Be_Searched"></a>What Can Be Searched?</h3>
+<p>The repository files that are indexed during repository scan can be configured in the Repository Scanning page, in the Repository Scanning - File Types section (indexable-content). By default, the indexable-content file types are:</p>
+<div>
+<pre>**/*.txt
+**/*.TXT
+**/*.block
+**/*.config
+**/*.pom
+**/*.xml
+**/*.xsd
+**/*.dtd
+**/*.tld</pre></div></div>
+<div class="section">
+<h3><a name="Quick_Search"></a>Quick Search</h3>
+<p>The contents of all the files in the repository that matches the above configuration will be indexed during repository scan. So when you type a word in the search box, Archiva will search the index for that query string and return all the search hits in the form of a paginated list of artifacts. For example you typed in 'ant', the search result would contain the list of artifacts that use or reference 'ant'.</p>
+<p>For query strings containing whitespaces, Archiva searches for the query string including the whitespaces. So if you typed in 'commons logging', the search result would contain the list of artifacts that reference 'commons logging' which is still separated by whitespace. In this case, 'commons-logging' (hyphen separated) is not included in the search results.</p>
+<p>Archiva can also search the index for java classes, packages, and methods and return a list of artifacts containing the query string. In the previous versions, we need to append the keyword 'bytecode:' before the query string in the search box (like 'bytecode:myMethod'). But since version 1.2, we no longer need to type the keyword. Just type the java class or package name in the search box.. and voila!</p>
+<p>You can use various criterias to search artifacts:</p>
+<div class="section">
+<h4><a name="Simple_Query_string"></a>Simple Query string</h4><img src="../images/search-simple.png" alt="" /></div>
+<div class="section">
+<h4><a name="Advanced_Paramters"></a>Advanced Paramters</h4><img src="../images/search-advanced.png" alt="" /></div>
+<div class="section">
+<h4><a name="OSGI_Parameters"></a>OSGI Parameters</h4><img src="../images/search-osgi.png" alt="" /></div></div>
+<div class="section">
+<h3><a name="Search_results"></a>Search results</h3>
+<p>You can apply various filters on the search results.</p>
+<p>Below is a sample screenshot of the search results:</p><img src="../images/search-results.png" alt="Search Results" />
+<p>When the user clicks a specific artifact in the search results list, Archiva will direct the user in the Artifact Info page (the same page from the Repository Browse). Otherwise if it is not a pom file (ex. metadata.xml), the file will appear as a file to be downloaded from the browser.</p></div>
+<div class="section">
+<h3><a name="Security"></a>Security</h3>
+<p>The Search functionality respects the repository permissions. If the user is not logged in to Archiva and does a search, only those repositories with guest permissions will be searched for the query string. And if the user is logged in to Archiva and does a search, only those repositories in which that user has permission to access will be searched for the query string.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/using-repository.html b/docs/2.2.8/userguide/using-repository.html
new file mode 100644
index 0000000..65db23a
--- /dev/null
+++ b/docs/2.2.8/userguide/using-repository.html
@@ -0,0 +1,468 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Using as a Repository</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Using as a Repository</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Using as a repository</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
+          <i class="none"></i>
+        Configuring Virtual Repositories</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Configuring_Maven_2_to_use_an_Archiva_repository"></a>Configuring Maven 2 to use an Archiva repository</h2>
+<p>To get your local Maven 2 installation to use an Archiva proxy you need to add the repositories you require to your 'settings.xml'. This file is usually found in ${user.dir}/.m2/settings.xml (see the <a class="externalLink" href="http://maven.apache.org/settings.html">Settings Reference</a>). </p>
+<p>How you configure the settings depends on how you would like to utilise the repository. You can add the Archiva repository as an additional repository to others already declared by the project, or lock down the environment to only use the Archiva repositories (possibly proxying content from a remote repository).</p>
+<div class="section">
+<h3><a name="Locking_down_to_only_use_Archiva"></a>Locking down to only use Archiva</h3>
+<p>If you would like Archiva to serve as the only repository used by your Maven installation, you can use the Maven mirror settings to force this behaviour.</p>
+<p>First, you need to select the default repository to use when none is configured by adding the following to the <tt>settings.xml</tt> file:</p>
+<div class="source">
+<pre>&lt;settings&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;mirrors&gt;
+    &lt;mirror&gt;
+      &lt;id&gt;archiva.default&lt;/id&gt;
+      &lt;url&gt;http://repo.mycompany.com:8080/repository/internal/&lt;/url&gt;
+      &lt;mirrorOf&gt;external:*&lt;/mirrorOf&gt;
+    &lt;/mirror&gt;
+  &lt;/mirrors&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/settings&gt;</pre></div>
+<p><b>Note:</b> <i>There are other controls you can use on what is mirrored. See Maven's <a class="externalLink" href="http://maven.apache.org/guides/mini/guide-mirror-settings.html"> Guide to Mirror Settings</a> for more information.</i></p>
+<p>With this in place, all repository requests will be sent to the internal repository (which by default is configured to proxy the central repository).</p>
+<p>If you have separate Archiva repositories that you wish to use, you can add an extra mirror declaration as needed:</p>
+<div class="source">
+<pre>    &lt;!-- omitted xml --&gt;
+    &lt;mirror&gt;
+      &lt;id&gt;archiva.apache.snapshots&lt;/id&gt;
+      &lt;url&gt;http://repo.mycompany.com:8080/repository/snapshots/&lt;/url&gt;
+      &lt;mirrorOf&gt;apache.snapshots&lt;/mirrorOf&gt;
+    &lt;/mirror&gt;
+    &lt;!-- omitted xml --&gt;</pre></div>
+<p><b>WARNING:</b> Maven, as of version 2.0.8, does not properly report the correct URL in errors when a mirror is used - so although the Archiva instance is being consulted any error messages will still reflect the original URL described in the POM.</p></div>
+<div class="section">
+<h3><a name="Using_Archiva_as_an_additional_repository"></a>Using Archiva as an additional repository</h3>
+<p>You will need to add one entry for each repository that is setup in Archiva. If your repository contains plugins; remember to also include a &lt;pluginRepository&gt; setting.</p>
+<ol style="list-style-type: decimal">
+<li>Create a new profile to setup your repositories
+<div class="source">
+<pre>&lt;settings&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;profiles&gt;
+    &lt;profile&gt;
+      &lt;id&gt;Repository Proxy&lt;/id&gt;
+      &lt;activation&gt;
+        &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
+      &lt;/activation&gt;
+      &lt;!-- ******************************************************* --&gt;
+      &lt;!-- repositories for jar artifacts --&gt;
+      &lt;!-- ******************************************************* --&gt;
+      &lt;repositories&gt;
+        &lt;repository&gt;
+          &lt;!-- omitted xml --&gt;
+        &lt;/repository&gt;
+        &lt;!-- omitted xml --&gt;   
+      &lt;/repositories&gt;
+      &lt;!-- ******************************************************* --&gt;
+      &lt;!-- repositories for maven plugins --&gt;
+      &lt;!-- ******************************************************* --&gt;
+      &lt;pluginRepositories&gt;
+        &lt;pluginRepository&gt;
+          &lt;!-- omitted xml --&gt;
+        &lt;/pluginRepository&gt;
+        &lt;!-- omitted xml --&gt;   
+      &lt;/pluginRepositories&gt;
+    &lt;/profile&gt;
+    &lt;!-- omitted xml --&gt;
+  &lt;/profiles&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/settings&gt;</pre></div></li>
+<li>Add your repository configuration to the profile
+<p>You can copy the repository configuration from the POM Snippet on the Archiva Administration Page for a normal repository. It should look much like:</p>
+<div class="source">
+<pre>    &lt;repository&gt;
+      &lt;id&gt;repository-1&lt;/id&gt;
+      &lt;url&gt;http://repo.mycompany.com:8080/repository/internal/&lt;/url&gt;
+      &lt;releases&gt;
+        &lt;enabled&gt;true&lt;/enabled&gt;
+      &lt;/releases&gt;
+      &lt;snapshots&gt;
+        &lt;enabled&gt;false&lt;/enabled&gt;
+      &lt;/snapshots&gt;
+    &lt;/repository&gt;</pre></div></li>
+<li>Add the necessary security configuration
+<p>This is only necessary if the guest account does not have read access to the given repository.</p>
+<div class="source">
+<pre>&lt;settings&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;servers&gt;
+    &lt;server&gt;
+      &lt;id&gt;repository-1&lt;/id&gt;
+      &lt;username&gt;{archiva-user}&lt;/username&gt;
+      &lt;password&gt;{archiva-pwd}&lt;/password&gt;
+    &lt;/server&gt;
+    &lt;!-- omitted xml --&gt;
+  &lt;/servers&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/settings&gt;</pre></div></li></ol></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/userguide/virtual-repositories.html b/docs/2.2.8/userguide/virtual-repositories.html
new file mode 100644
index 0000000..71f1a8f
--- /dev/null
+++ b/docs/2.2.8/userguide/virtual-repositories.html
@@ -0,0 +1,462 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220525" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Archiva Documentation &#x2013; Virtual Repositories</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="../js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+              <!-- Google Analytics -->
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-140879-5']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+          </head>
+        <body class="topBarDisabled">
+          
+                
+                    
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                                  <a href="../../../" id="bannerLeft">
+                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
+                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
+        Apache</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+            <li class="">
+                    <a href="../../../index.html" title="Apache Archiva">
+        Apache Archiva</a>
+                    <span class="divider">/</span>
+      </li>
+        <li class="active ">Virtual Repositories</li>
+        
+                
+                    
+                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-05-25</li>
+              <li id="projectVersion" class="pull-right">
+                    Version: 2.2.8
+        </li>
+            
+                            </ul>
+      </div>
+
+                  
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Introduction</li>
+                              
+      <li>
+  
+                          <a href="../quick-start.html" title="Quick Start">
+          <i class="none"></i>
+        Quick Start</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../tour/index.html" title="Feature Tour">
+          <i class="none"></i>
+        Feature Tour</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../release-notes.html" title="Release Notes">
+          <i class="none"></i>
+        Release Notes</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../../../download.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Users Guide</li>
+                              
+      <li>
+  
+                          <a href="../userguide/browsing.html" title="Browsing">
+          <i class="none"></i>
+        Browsing</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/searching.html" title="Searching">
+          <i class="none"></i>
+        Searching</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/delete-artifact.html" title="Deleting an Artifact">
+          <i class="none"></i>
+        Deleting an Artifact</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/using-repository.html" title="Using as a repository">
+          <i class="none"></i>
+        Using as a repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/deploy.html" title="Deploying to repository">
+          <i class="none"></i>
+        Deploying to repository</a>
+            </li>
+                
+      <li class="active">
+  
+            <a href="#"><i class="none"></i>Configuring Virtual Repositories</a>
+          </li>
+                
+      <li>
+  
+                          <a href="../userguide/rss.html" title="Rss Feeds in Archiva">
+          <i class="none"></i>
+        Rss Feeds in Archiva</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../userguide/querying-artifacts.html" title="Querying Artifacts">
+          <i class="none"></i>
+        Querying Artifacts</a>
+            </li>
+                              <li class="nav-header">Administrators Guide</li>
+                                                                                                                    
+      <li>
+  
+                          <a href="../adminguide/installing.html" title="Installing Archiva">
+          <i class="icon-chevron-right"></i>
+        Installing Archiva</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/databases.html" title="Databases">
+          <i class="none"></i>
+        Databases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage">
+          <i class="none"></i>
+        Repositories Content Storage</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/security.html" title="Security">
+          <i class="icon-chevron-right"></i>
+        Security</a>
+                  </li>
+                                                                                                                                                                                                                                                                                          
+      <li>
+  
+                          <a href="../adminguide/configuration.html" title="Archiva Configuration">
+          <i class="icon-chevron-right"></i>
+        Archiva Configuration</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/webservices/rest.html" title="REST Apis">
+          <i class="none"></i>
+        REST Apis</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/configuration-files.html" title="Configuration Files">
+          <i class="none"></i>
+        Configuration Files</a>
+            </li>
+                
+      <li>
+  
+                          <a href="../adminguide/system-status.html" title="System Status">
+          <i class="none"></i>
+        System Status</a>
+            </li>
+                                                                                                      
+      <li>
+  
+                          <a href="../adminguide/logging.html" title="Log Files">
+          <i class="icon-chevron-right"></i>
+        Log Files</a>
+                  </li>
+                
+      <li>
+  
+                          <a href="../adminguide/reports.html" title="Reports">
+          <i class="none"></i>
+        Reports</a>
+            </li>
+                              <li class="nav-header">Customising Archiva</li>
+                              
+      <li>
+  
+                          <a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin">
+          <i class="none"></i>
+        Writing a Consumer Plugin</a>
+            </li>
+                              <li class="nav-header">More Information</li>
+                              
+      <li>
+  
+                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
+          <i class="none"></i>
+        Archiva Wiki</a>
+            </li>
+                              <li class="nav-header">ASF</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
+          <i class="none"></i>
+        How Apache Works</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
+          <i class="none"></i>
+        Foundation</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
+          <i class="none"></i>
+        Sponsoring Apache</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
+          <i class="none"></i>
+        Thanks</a>
+            </li>
+                              <li class="nav-header">Project Documentation</li>
+                                                                                                  
+      <li>
+  
+                          <a href="../project-info.html" title="Project Information">
+          <i class="icon-chevron-right"></i>
+        Project Information</a>
+                  </li>
+            </ul>
+                
+                    
+                            <form id="search-form" action="http://www.google.com/search" method="get" >
+    
+  <input value="http://archiva.apache.org/docs/2.2.8/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+          
+          <hr />
+
+           <div id="poweredBy">
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+               
+        
+        
+        <div id="twitter">
+    
+    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
+    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+        </div>
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                        
+        <div id="bodyColumn"  class="span10" >
+                                  
+            <!-- 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. --><div class="section">
+<h2><a name="Virtual_Repositories"></a>Virtual Repositories</h2>
+<p>This is a new feature for Archiva 1.1. The main advantage of virtual repositories (or repository groups) is that you only need to specify one URL instead of multiple repository URLs if you are using more than 1 proxy repository.</p>
+<p>For example, you have the following configuration in your <tt>settings.xml</tt>:</p>
+<div class="source">
+<pre>&lt;settings&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;profiles&gt;
+    &lt;profile&gt;
+      &lt;id&gt;Repository Proxy&lt;/id&gt;
+      &lt;activation&gt;
+        &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
+      &lt;/activation&gt;
+      &lt;repositories&gt;
+        &lt;repository&gt;
+          &lt;id&gt;internal.releases&lt;/id&gt;
+          &lt;url&gt;http://localhost:8080/repository/internal.releases/&lt;/url&gt;
+          &lt;releases&gt;
+            &lt;enabled&gt;true&lt;/enabled&gt;
+          &lt;/releases&gt;
+          &lt;snapshots&gt;
+            &lt;enabled&gt;false&lt;/enabled&gt;
+          &lt;/snapshots&gt;
+        &lt;/repository&gt;
+        &lt;repository&gt;
+          &lt;id&gt;third.party.repo&lt;/id&gt;
+          &lt;url&gt;http://localhost:8080/repository/third.party.repo/&lt;/url&gt;
+          &lt;releases&gt;
+            &lt;enabled&gt;true&lt;/enabled&gt;
+          &lt;/releases&gt;
+          &lt;snapshots&gt;
+            &lt;enabled&gt;false&lt;/enabled&gt;
+          &lt;/snapshots&gt;
+        &lt;/repository&gt;
+        &lt;repository&gt;
+          &lt;id&gt;snapshots&lt;/id&gt;
+          &lt;url&gt;http://localhost:8080/repository/snapshots/&lt;/url&gt;
+          &lt;releases&gt;
+            &lt;enabled&gt;false&lt;/enabled&gt;
+          &lt;/releases&gt;
+          &lt;snapshots&gt;
+            &lt;enabled&gt;true&lt;/enabled&gt;
+          &lt;/snapshots&gt;
+        &lt;/repository&gt;
+      &lt;/repositories&gt;
+    &lt;/profile&gt;
+    &lt;!-- omitted xml --&gt;
+  &lt;/profiles&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/settings&gt;</pre></div>
+<p>If you have a virtual repository configured in Archiva, you only need to configure this in your <tt>settings.xml</tt>:</p>
+<div class="source">
+<pre>&lt;settings&gt;
+  &lt;!-- omitted xml --&gt;
+  &lt;profiles&gt;
+    &lt;profile&gt;
+      &lt;id&gt;Repository Proxy&lt;/id&gt;
+      &lt;activation&gt;
+        &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
+      &lt;/activation&gt;
+      &lt;repositories&gt;
+        &lt;repository&gt;
+          &lt;id&gt;internal.releases&lt;/id&gt;
+          &lt;url&gt;http://localhost:8080/repository/[repository_group_id]/&lt;/url&gt;
+        &lt;/repository&gt;
+      &lt;/repositories&gt;
+    &lt;/profile&gt;
+    &lt;!-- omitted xml --&gt;
+  &lt;/profiles&gt;
+  &lt;!-- omitted xml --&gt;
+&lt;/settings&gt;</pre></div>
+<p>And you'll still be able to get all the artifacts that you need. See Configuring Virtual Repositories section for the steps on how to setup a virtual repo in Archiva.</p>
+<div class="section">
+<h3><a name="How_It_Works"></a>How It Works</h3>
+<p>When Archiva receives a request with a virtual repo (or repo group) URL, Archiva would look for the requested artifact from the repositories under that group. It would only check the repositories the user has permission to access (meaning only those repositories which the user has an Obeserver role for). The first resource found for the requested artifact would be returned.</p>
+<p>Prior to version 1.4-M2, Virtual repositories can return a Maven index in the path /.indexer path</p></div>
+<div class="section">
+<h3><a name="Configuring_Virtual_Repositories"></a>Configuring Virtual Repositories</h3>
+<p>Below are the steps for setting up the virtual repositories:</p>
+<ol style="list-style-type: decimal">
+<li>In the webapp, go to the <tt>Repository Groups</tt> page. To create a virtual repository or repository group, go to add tab</li>
+<li>To add a repository drag and drop available repositories.<img src="../images/repository-groups.png" alt="" /></li>
+<li>Now add the virtual repository URL <tt>http://[host]:[port]/repository/[repository_group_id]/</tt> into your settings.xml the same way you configure regular repositories -- as a <i>mirror</i> or as an additional <i>repository</i>.</li>
+<li>If the repositories under the group are secured, you must set your Archiva login credentials in your settings.xml as well. Please take note that the <i>server</i> id should match the repository group identifier.</li></ol></div>
+<div class="section">
+<h3><a name="Webdav_Browse"></a>Webdav Browse</h3>
+<p>Webdav Browse for a virtual repository is a read-only view. It displays the merged contents of all the repositories under that repository group. Just type the url of the virtual repository in your browser in order to view its contents. User will be asked to authenticate if the 'guest' account is not enabled for the repositories. Only those repositories which the user has permission to access will be shown.</p></div>
+<div class="section">
+<h3><a name="Merged_index"></a>Merged index</h3>
+<p>With version 1.4-M2, you can download a merged index for a virtual repository. This merged index is generated &quot;on the fly&quot; with merging repositories index for which the current user has karma. This merged index is available in the path .indexer .</p>
+<p>To not generate this merged index on each request, there is a ttl (time to live) value for build merged index. It can be configured in the repository group configuration. This ttl has a default value of 30 minutes.</p></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2006&#x2013;2022
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+                                                                  
+<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
+                                                          
+<div class="row span12">
+  <a href="http://archiva.apache.org/docs/2.2.8/privacy-policy.html">Privacy Policy</a>
+</div>
+                  
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
diff --git a/docs/2.2.8/versions.html b/docs/2.2.8/versions.html
new file mode 100644
index 0000000..3e770e6
--- /dev/null
+++ b/docs/2.2.8/versions.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html>
+
+
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/apt/versions.apt.vm
+ | Rendered using Apache Maven Fluido Skin 1.11.0-SNAPSHOT
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
+    <meta name="author" content="Brett Porter" />
+    <meta name="date" content="2007-11-17" />
+    <title>Archiva &#x2013; Documentation - All Versions</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0-SNAPSHOT.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script src="./js/apache-maven-fluido-1.11.0-SNAPSHOT.min.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '10']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/archiva">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+            <div class="container">
+              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+                  <span class="icon-bar"></span>
+              </a>
+          <nav class="nav-collapse">
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="index.html" title="About">About</a></li>
+            <li><a href="download.html" title="Downloads">Downloads</a></li>
+            <li><a href="versions.html" title="Versions">Versions</a></li>
+            <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+            <li><a href="security.html" title="Security">Security</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Documentation">Documentation</a>
+              <ul class="dropdown-menu">
+                  <li><a href="docs/2.2.7/" title="Release 2.2.7">Release 2.2.7</a></li>
+                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
+            <li><a href="get-involved.html" title="Get involved">Get involved</a></li>
+            <li><a href="developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
+            <li class="dropdown-submenu">
+<a href="" title="Developer Reference">Developer Reference</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ref/2.2.7/index.html" title="Archiva 2.2.7">Archiva 2.2.7</a></li>
+                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
+                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
+              </ul>
+            </li>
+            <li><a href="redback/index.html" title="Redback">Redback</a></li>
+            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</a></li>
+            <li class="dropdown-submenu">
+<a href="jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
+              <ul class="dropdown-menu">
+                  <li><a href="jsui/rest.html" title="Rest service">Rest service</a></li>
+                  <li><a href="jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
+                  <li><a href="jsui/i18n.html" title="i18n">i18n</a></li>
+                  <li><a href="jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
+                  <li><a href="jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
+              </ul>
+            </li>
+            <li><a href="developers/releasing.html" title="Releasing">Releasing</a></li>
+            <li><a href="developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="team.html" title="Team">Team</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+            </ul>
+          </nav>
+          <div class="nav-collapse">
+<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
+  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="container">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva"/></a></div>
+          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="./" title="Archiva">Archiva</a><span class="divider">/</span></li>
+    <li class="active ">Documentation - All Versions</li>
+        <li id="publishDate" class="pull-right">Last Published: 21 Apr 2022</li>
+          </ul>
+        </div>
+      </header>
+        <main id="bodyColumn" >
+<section>
+<h2><a name="Archiva_Documentation"></a>Archiva Documentation</h2><section>
+<h3><a name="Current_Release:_Archiva_2.2.7"></a>Current Release: Archiva 2.2.7</h3>
+<p>The current stable release of Archiva is <i>2.2.7</i>.</p>
+<ul>
+<li><a href="./docs/2.2.7/release-notes.html"> Release Notes</a></li>
+<li><a href="./docs/2.2.7/index.html"> Documentation</a></li>
+<li><a href="./ref/2.2.7/index.html"> Developer Reference</a></li></ul></section><section>
+<h3><a name="Unsupported_Releases"></a>Unsupported Releases</h3>
+<ul>
+<li>All Versions 1.X are not supported anymore</li></ul>
+<p><b> Previous versions have known security issues so it's recommended to upgrade to last 2.2.7 </b></p></section></section>
+        </main>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container">
+        <div class="row">
+<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
+      <div class="row">
+        &nbsp;
+      </div>
+      <div class="row">
+      <p>
+        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
+        </p>
+      </div>
+        </div>
+        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+</p>
+      </div>
+    </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
+  </body>
+</html>
