Merge pull request #1797 from ebarboni/release110apidoc

 [NETBEANS-2612] Apidoc rewamp release 110
diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/Arch.xsl b/nbbuild/antsrc/org/netbeans/nbbuild/Arch.xsl
index e9dfc65..6b3b959 100644
--- a/nbbuild/antsrc/org/netbeans/nbbuild/Arch.xsl
+++ b/nbbuild/antsrc/org/netbeans/nbbuild/Arch.xsl
@@ -35,19 +35,82 @@
     <xsl:param name="arch.when"/>
 
     <xsl:template match="/">
-        <html>
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
+        <html lang="en">
             <head>
+                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                 <title><xsl:value-of select="api-answers/@module" /> - NetBeans Architecture Questions</title>
                 <xsl:if test="$arch.stylesheet">
                     <link rel="stylesheet" type="text/css" href="{$arch.stylesheet}"/>
                 </xsl:if>
             </head>
             <body>
-            
-                <xsl:if test="$arch.overviewlink">
+                <!-- ========= START OF TOP NAVBAR ======= -->
+                <div class="topNav">
+                    <a name="navbar.top">
+                        <!--   -->
+                    </a>
+                    <div class="skipNav">
+                        <a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a>
+                    </div>
+                    <a name="navbar.top.firstrow">
+                        <!--   -->
+                    </a>
+                    <ul class="navList noreplace" title="Navigation">
+                        <li>
+                            <a href="apichanges.html">API Changes</a>
+                        </li>
+                        <li class="navBarCell1Rev">Architecture Summary</li>
+                        <li><a href="overview-summary.html">Overview</a></li>
+                        <li>Package</li>
+                        <li>Class</li>
+                        <li>Use</li>
+                        <li>Tree</li>
+                        <li>
+                            <a href="deprecated-list.html">Deprecated</a>
+                        </li>
+                        <li>Index</li>
+                        <li>
+                            <a href="help-doc.html">Help</a>
+                        </li>
+                    </ul>
+                    <div class="aboutLanguage"> </div>
+                </div>
+                <div class="subNav">
+                    <ul class="navList">
+                        <li>
+                            <a href="index.html?overview-summary.html" target="_top">Frames</a>
+                        </li>
+                        <li>
+                            <a href="overview-summary.html" target="_top">No Frames</a>
+                        </li>
+                    </ul>
+                    <ul class="navList" id="allclasses_navbar_top">
+                        <li>
+                            <a href="allclasses-noframe.html">All Classes</a>
+                        </li>
+                    </ul>
+                    <div>
+                        <script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+                        </script>
+                    </div>
+                    <a name="skip.navbar.top">
+                        <!--   -->
+                    </a>
+                </div>
+                <!-- ========= END OF TOP NAVBAR ========= -->
+                <!--<xsl:if test="$arch.overviewlink">
                     <p class="overviewlink"><a href="{$arch.overviewlink}">Overview</a></p>
                 </xsl:if>
-            
+            -->
                 <h1>NetBeans Architecture Answers for <xsl:value-of select="api-answers/@module" /><xsl:text> module</xsl:text></h1>
                 
                 <xsl:variable name="qver" select="api-answers/api-questions/@version"/>
@@ -329,14 +392,15 @@
             <td> <!-- description -->
                 <!-- Put anchor here, since name is centered, and we want hyperlinks to scroll to top of table row: -->
                 <a>
-                    <xsl:attribute name="name">
+                    <xsl:attribute name="id">
                         <xsl:value-of select="$group" /><xsl:text>-</xsl:text><xsl:value-of select="$name"/>
                     </xsl:attribute>
+                </a>
                     <xsl:call-template name="describe">
                         <xsl:with-param name="name" select="$name"/>
                         <xsl:with-param name="group" select="$group"/>
                     </xsl:call-template>
-                </a>
+                
             </td>
         </tr>
     </xsl:template>  
diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/GitBranchHash.java b/nbbuild/antsrc/org/netbeans/nbbuild/GitBranchHash.java
new file mode 100644
index 0000000..2d53fe8
--- /dev/null
+++ b/nbbuild/antsrc/org/netbeans/nbbuild/GitBranchHash.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.netbeans.nbbuild;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Task;
+
+/**
+ * Forked from HgId to parse branch and git hash as fallback.
+ */
+public class GitBranchHash extends Task {
+
+    private File file;
+    /**
+     * Locates the repository.
+     * May be repository root, or any file or folder inside it.
+     */
+    public void setFile(File file) {
+        this.file = file;
+    }
+
+    private String branchProperty;
+    /**
+     * Declares which property to define with the resulting branch info.
+     */
+    public void setBranchProperty(String branchProperty) {
+        this.branchProperty = branchProperty;
+    }
+    
+    private String hashProperty;
+    /**
+     * Declares which property to define with the resulting hash info.
+     */
+    public void setHashProperty(String hashProperty) {
+        this.hashProperty = hashProperty;
+    }
+
+
+    @Override
+    public void execute() throws BuildException {
+        if (file == null || branchProperty == null || hashProperty == null) {
+            throw new BuildException("define file, branch property and hash property");
+        }
+        Path headroot = null;
+        for (Path root = file.toPath(); root != null; root = root.getParent()) {
+            Path headpath = root.resolve(".git/HEAD");
+            if (Files.isRegularFile(headpath)) {
+                headroot = headpath;
+                break;
+            }
+        }
+        String branch = "";
+        String hash = "";
+        try {
+            if (headroot != null && Files.size(headroot) > 0l) {
+                List<String> lines = Files.readAllLines(headroot);
+                String line = lines.get(0);
+                String revLink = line.substring(line.indexOf(':')+1).trim();
+                branch = revLink.substring(revLink.lastIndexOf('/')+1).trim();
+                Path revPath = headroot.getParent().resolve(revLink);
+                if(Files.isRegularFile(revPath) && Files.size(revPath) > 0l) {
+                    List<String> revlines = Files.readAllLines(revPath);
+                    String revline = revlines.get(0);
+                    if(revline.length()>=12){
+                        hash = revline.trim();
+                    } else {
+                        log("no content in " + revPath, Project.MSG_WARN);                        
+                    }
+                } else {
+                    log("unable to find revision info for " + revPath, Project.MSG_WARN);
+                }
+            } else {
+                log("No HEAD found starting from " + file, Project.MSG_WARN);
+            }
+        } catch(IOException ex) {
+            log("Could not read " + headroot + ": " + ex, Project.MSG_WARN);
+        }
+        if (!branch.isEmpty() && !hash.isEmpty()) {
+            getProject().setNewProperty(branchProperty, branch);
+            getProject().setNewProperty(hashProperty, hash);
+        }
+        
+    }
+
+}
diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/ReleaseJsonProperties.java b/nbbuild/antsrc/org/netbeans/nbbuild/ReleaseJsonProperties.java
new file mode 100644
index 0000000..d144b9a
--- /dev/null
+++ b/nbbuild/antsrc/org/netbeans/nbbuild/ReleaseJsonProperties.java
@@ -0,0 +1,413 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE jsonreleaseinfoFile
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this jsonreleaseinfoFile
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this jsonreleaseinfoFile except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.nbbuild;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ *
+ * @author skygo
+ */
+public class ReleaseJsonProperties extends Task {
+
+    /**
+     * current branch we works with
+     */
+    private String branch;
+    /**
+     * current hash we works with
+     */
+    private String hash;
+    /**
+     * cache of json file
+     */
+    private File jsonreleaseinfoFile;
+    /**
+     * xml file containing release information
+     */
+    private File xmlFile;
+
+    /**
+     * xml file containing release information
+     */
+    private File propertiesFile;
+
+    public void setBranch(String branch) {
+        this.branch = branch;
+    }
+
+    public void setHash(String hash) {
+        this.hash = hash;
+    }
+
+    public void setFile(File file) {
+        this.jsonreleaseinfoFile = file;
+    }
+
+    public void setXmloutput(File file) {
+        this.xmlFile = file;
+    }
+
+    public void setPropertiesoutput(File file) {
+        this.propertiesFile = file;
+    }
+
+    @Override
+    public void execute() throws BuildException {
+        super.execute();
+        JSONParser jsonParser = new JSONParser();
+        ReleaseInfo requiredbranchinfo = null;
+        List<ReleaseInfo> ri = new ArrayList<>();
+        //Prepare a xml document containg all the release information */
+        Document doc = XMLUtil.createDocument("releases");
+        Element releasesxml = doc.getDocumentElement();
+
+        //branch parameter
+        if (branch.equals("master") || branch.startsWith("release")) {
+            log("Taking release info from json");
+        } else {
+            log("Branch '" + branch + "' is not having good pattern defaulting to 'master'");
+            branch = "master";
+        }
+        // read all information and store each release in Rel
+        try (FileReader reader = new FileReader(jsonreleaseinfoFile)) {
+            JSONObject releaseList = (JSONObject) jsonParser.parse(reader);
+            log("Processing release: " + releaseList.keySet().toString());
+            for (Object object : releaseList.keySet()) {
+                ri.add(manageRelease(object.toString(), releaseList.get(object)));
+            }
+        } catch (ParseException | IOException ex) {
+            throw new BuildException(ex);
+        }
+        // sort all information
+        Collections.sort(ri);
+        // build a sorted xml
+
+        for (ReleaseInfo releaseInfo : ri) {
+            log(releaseInfo.toString());
+            for (Object milestone : releaseInfo.milestones) {
+                log(milestone.toString());
+            }
+            Element releasexml = (Element) releasesxml.appendChild(doc.createElement("release"));
+            populatexml(releasexml, releaseInfo);
+            if (releaseInfo.getKey().equals(branch)) {
+                requiredbranchinfo = releaseInfo;
+                releasesxml.setAttribute("position", Integer.toString(releaseInfo.position));
+                // attribute to know position of the requested current branch in the set of release
+            }
+        }
+
+        if (requiredbranchinfo == null) {
+            throw new BuildException("No Release Information found for branch '" + branch + "', update json file section");
+        }
+        List<String> updateValues = new ArrayList<>();
+        for (ReleaseInfo releaseInfo : ri) {
+            if (releaseInfo.position < requiredbranchinfo.position) {
+                updateValues.add(releaseInfo.version);
+            }
+        }
+// populate properties for api changes
+        getProject().setProperty("previous.release.year", Integer.toString(requiredbranchinfo.previousReleaseDate.getYear()));
+        getProject().setProperty("previous.release.month", String.format("%02d", requiredbranchinfo.previousReleaseDate.getMonthValue()));
+        getProject().setProperty("previous.release.day", String.format("%02d", requiredbranchinfo.previousReleaseDate.getDayOfMonth()));
+// version branding + incubating status management for Apache NetBeans 9.0 10 11.0
+        getProject().setProperty("json.maturity", requiredbranchinfo.maturity);
+        getProject().setProperty("json.version", requiredbranchinfo.version);
+        getProject().setProperty("modules-javadoc-date", ReleaseJsonProperties.makeDate(requiredbranchinfo.releaseDate));
+        getProject().setProperty("atom-date", ReleaseJsonProperties.makeAtomDate(requiredbranchinfo.releaseDate));
+        getProject().setProperty("javaapidocurl", requiredbranchinfo.javaapidocurl);
+        log("Writing releasinfo file " + propertiesFile);
+        propertiesFile.getParentFile().mkdirs();
+        try (OutputStream config = new FileOutputStream(propertiesFile)) {
+            String optionalversion = "";
+            boolean found = false;
+            for (MileStone m : requiredbranchinfo.milestones) {
+                if (m.hash.equals(hash)) {
+                    found = true;
+                    log("found hash" + hash + "-" + m.vote);
+                    // found a milestone
+                    if (m.vote != -1) {
+                        // vote is set we want the full version
+                    } else {
+                        optionalversion = "-" + m.version;
+                    }
+
+                }
+            }
+            if (!found && !branch.equals("master")) {
+                // hash no match we are building a dev version of specific branch
+                optionalversion = "-dev";
+            }
+            config.write(("metabuild.DistributionURL=" + requiredbranchinfo.updateurl + "\n").getBytes());
+            config.write(("metabuild.PluginPortalURL=" + requiredbranchinfo.pluginsurl + "\n").getBytes());
+            // used for cache and user dir
+            config.write(("metabuild.RawVersion=" + requiredbranchinfo.version + optionalversion + "\n").getBytes());
+            config.write(("metabuild.apachepreviousversion=" + String.join(",", updateValues) + "\n").getBytes());
+            if (branch.equals("master")) {
+                config.write(("metabuild.ComputedSplashVersion=DEV (Build {0})\n").getBytes());
+                config.write(("metabuild.ComputedTitleVersion=DEV {0}\n").getBytes());
+                config.write(("metabuild.logcli=-J-Dnetbeans.logger.console=true -J-ea\n").getBytes());
+            } else {
+                config.write(("metabuild.ComputedSplashVersion=" + requiredbranchinfo.version + optionalversion + "\n").getBytes());
+                config.write(("metabuild.ComputedTitleVersion=" + requiredbranchinfo.version + optionalversion + "\n").getBytes());
+                config.write(("metabuild.logcli=\n").getBytes());
+            }
+        } catch (IOException ex) {
+            throw new BuildException("Properties File for release cannot be created");
+        }
+
+        log("Writing releasinfo file " + xmlFile);
+
+        xmlFile.getParentFile().mkdirs();
+        try (OutputStream config = new FileOutputStream(xmlFile)) {
+            XMLUtil.write(doc, config);
+        } catch (IOException ex) {
+            throw new BuildException("XML File for release cannot be created");
+        }
+        String configline;
+        try (FileReader config = new FileReader(propertiesFile); BufferedReader configStream = new BufferedReader(config);) {
+            while ((configline = configStream.readLine()) != null) {
+                log("Branding computed info: " + configline);
+            }
+        } catch (IOException ex) {
+            throw new BuildException("propertiesFile for release cannot be read");
+        }
+    }
+
+// add attribute for xml building apidoc enhancement
+    private void populatexml(Element releasesxml, ReleaseInfo releaseInfo) throws DOMException {
+        releasesxml.setAttribute("year", Integer.toString(releaseInfo.releaseDate.getYear()));
+        releasesxml.setAttribute("month", Integer.toString(releaseInfo.releaseDate.getMonthValue()));
+        releasesxml.setAttribute("day", Integer.toString(releaseInfo.releaseDate.getDayOfMonth()));
+        releasesxml.setAttribute("tlp", releaseInfo.maturity);
+        releasesxml.setAttribute("position", Integer.toString(releaseInfo.position));
+        releasesxml.setAttribute("version", releaseInfo.version);
+        releasesxml.setAttribute("apidocurl", releaseInfo.apidocurl);
+    }
+
+    private ReleaseInfo manageRelease(String key, Object arelease) {
+        ReleaseInfo ri = new ReleaseInfo(key);
+        // mandatory element
+        JSONObject jsonrelease = (JSONObject) arelease;
+        ri.setPosition(Integer.parseInt((String) getJSONInfo(jsonrelease, "position", "Order of release starting")));
+        // previous release date
+        JSONObject previousrelease = (JSONObject) getJSONInfo(jsonrelease, "previousreleasedate", "Apidoc: Date of previous Release");
+        ri.setPreviousRelease(
+                (String) getJSONInfo(previousrelease, "day", "Apidoc: day of previous Release"),
+                (String) getJSONInfo(previousrelease, "month", "Apidoc: month of previous Release"),
+                (String) getJSONInfo(previousrelease, "year", "Apidoc: year of previous Release"));
+        // date of release
+        JSONObject releasedate = (JSONObject) getJSONInfo(jsonrelease, "releasedate", "Apidoc: Date of Release vote");
+        ri.setReleaseDate(
+                (String) getJSONInfo(releasedate, "day", "Apidoc: day of previous Release"),
+                (String) getJSONInfo(releasedate, "month", "Apidoc: month of previous Release"),
+                (String) getJSONInfo(releasedate, "year", "Apidoc: year of previous Release"));
+
+        // tlp or not
+        ri.setMaturity((String) getJSONInfo(jsonrelease, "tlp", "Statut of release - TLP or not"));
+        // version name
+        ri.setVersion((String) getJSONInfo(jsonrelease, "versionName", "Version name"));
+        ri.setApidocurl((String) getJSONInfo(jsonrelease, "apidocurl", "Apidoc: URL"));
+        ri.setJavaApiDocurl((String) getJSONInfo(jsonrelease, "jdk_apidoc", "Apidoc: javadoc for java jdk"));
+        ri.setUpdateUrl((String) getJSONInfo(jsonrelease, "update_url", "Update catalog"));
+        ri.setPluginsUrl((String) getJSONInfo(jsonrelease, "plugin_url", "Plugin URL"));
+        // optional section
+        JSONObject milestone = (JSONObject) jsonrelease.get("milestones");
+        if (milestone != null) {
+            for (Object object : milestone.keySet()) {
+                // ri.add(manageRelease(object.toString(), releaseList.get(object)));
+                JSONObject milestonedata = (JSONObject) milestone.get(object);
+                MileStone m = new MileStone((String) object);
+                // mandatory
+                m.setPosition(Integer.parseInt((String) getJSONInfo(milestonedata, "position", "Order of milestone in release")));
+                // optional
+                Object vote = milestonedata.get("vote");
+                if (vote != null) {
+                    m.setVote(Integer.parseInt((String) vote));
+                }
+                m.setVersion((String) milestonedata.get("version"));
+                ri.addMileStone(m);
+            }
+            Collections.sort(ri.milestones);
+        }
+
+        return ri;
+    }
+
+    private static String makeDate(LocalDateTime date) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d MMM yyyy", Locale.US);
+        return date.format(formatter);
+    }
+
+    private static String makeAtomDate(LocalDateTime date) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
+        return date.format(formatter);
+    }
+
+    private Object getJSONInfo(JSONObject json, String key, String info) {
+        Object result = json.get(key);
+        //log("Retriving " + key);
+        if (result == null) {
+            throw new BuildException("Cannot retrieve key " + key + ", this is for" + info);
+        }
+        return result;
+    }
+
+    private static class MileStone implements Comparable<MileStone> {
+
+        private int position;
+        private int vote = -1;
+        private final String hash;
+        private String version;
+
+        public MileStone(String hash) {
+            this.hash = hash;
+        }
+
+        @Override
+        public int compareTo(MileStone o) {
+            return (this.position - o.position);
+        }
+
+        private void setPosition(int position) {
+            this.position = position;
+        }
+
+        private void setVote(int vote) {
+            this.vote = vote;
+        }
+
+        private void setVersion(String version) {
+            this.version = version;
+        }
+
+        @Override
+        public String toString() {
+            return "(" + hash + "," + position + "," + vote + "," + version + ")";
+        }
+    }
+
+    /**
+     *
+     * Comparable on position. Avoir randomness.
+     */
+    private static class ReleaseInfo implements Comparable<ReleaseInfo> {
+
+        private int position;
+        private final String key;
+        private LocalDateTime releaseDate;
+        private LocalDateTime previousReleaseDate;
+        private String maturity;
+        private String version;
+        private String apidocurl;
+        private String javaapidocurl;
+        private String updateurl;
+        private String pluginsurl;
+        private List<MileStone> milestones;
+
+        public ReleaseInfo(String key) {
+            this.key = key;
+            this.milestones = new ArrayList<>();
+        }
+
+        @Override
+        public int compareTo(ReleaseInfo o) {
+            return (this.position - o.position);
+        }
+
+        private void setPosition(int position) {
+            this.position = position;
+        }
+
+        @Override
+        public String toString() {
+            return "(" + key + "," + position + ")";
+        }
+
+        private String getKey() {
+            return key;
+        }
+
+        private LocalDateTime setDate(String day, String month, String year) {
+            LocalDateTime tmp = LocalDateTime.now();
+            try {
+                tmp = LocalDateTime.of(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day), 12, 0);
+            } catch (NumberFormatException e) {
+            }
+            return tmp;
+        }
+
+        private void setPreviousRelease(String day, String month, String year) {
+            previousReleaseDate = setDate(day, month, year);
+        }
+
+        private void setReleaseDate(String day, String month, String year) {
+            releaseDate = setDate(day, month, year);
+        }
+
+        private void setMaturity(String tlp) {
+            this.maturity = tlp;
+        }
+
+        private void setVersion(String version) {
+            this.version = version;
+        }
+
+        private void setApidocurl(String apidocurl) {
+            this.apidocurl = apidocurl;
+        }
+
+        private void setJavaApiDocurl(String javaapidocurl) {
+            this.javaapidocurl = javaapidocurl;
+        }
+
+        private void setUpdateUrl(String url) {
+            this.updateurl = url;
+        }
+
+        private void setPluginsUrl(String url) {
+            this.pluginsurl = url;
+        }
+
+        private void addMileStone(MileStone milestone) {
+            this.milestones.add(milestone);
+        }
+
+    }
+
+}
diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/SetApidocClustersConfig.java b/nbbuild/antsrc/org/netbeans/nbbuild/SetApidocClustersConfig.java
new file mode 100644
index 0000000..c190d60
--- /dev/null
+++ b/nbbuild/antsrc/org/netbeans/nbbuild/SetApidocClustersConfig.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE jsonreleaseinfoFile
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this jsonreleaseinfoFile
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this jsonreleaseinfoFile except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.nbbuild;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+/**
+ *
+ * @author skygo
+ */
+public class SetApidocClustersConfig extends Task {
+
+    /**
+     * current branch we works with
+     */
+    private String branch;
+
+    public void setBranch(String branch) {
+        this.branch = branch;
+    }
+
+    @Override
+    public void execute() throws BuildException {
+        super.execute();
+        if (branch.equals("master")) {
+// for master branch, more apidoc to generate
+            getProject().setProperty("config.javadoc.all",
+                    getProject().getProperty("config.javadoc.stable") + ","
+                    + getProject().getProperty("config.javadoc.deprecated") + ","
+                    + getProject().getProperty("config.javadoc.devel") + ","
+                    + getProject().getProperty("config.javadoc.friend"));
+        } else {
+// for release branch only stable
+            getProject().setProperty("config.javadoc.all", getProject().getProperty("config.javadoc.stable"));
+        }
+    }
+}
diff --git a/nbbuild/build.properties b/nbbuild/build.properties
index 47502ac..059587b 100644
--- a/nbbuild/build.properties
+++ b/nbbuild/build.properties
@@ -26,9 +26,9 @@
 
 # Information about branch of previous release
 # needed to help us generate list of changes since then
-previous.release.year=2018
-previous.release.month=12
-previous.release.day=27
+#previous.release.year=2018
+#previous.release.month=12
+#previous.release.day=27
 
 # Useful for "always successful" build, when you don't care of some
 # particular (and currently broken) modules
diff --git a/nbbuild/build.xml b/nbbuild/build.xml
index 3cbc361..9fce1e4 100644
--- a/nbbuild/build.xml
+++ b/nbbuild/build.xml
@@ -19,7 +19,7 @@
     under the License.
 
 -->
-<project name="nbbuild" default="build-nozip" basedir=".">
+<project name="nbbuild" default="build-nozip" basedir="." xmlns:if="ant:if" xmlns:unless="ant:unless">
 
   <fail message="Please build using Ant 1.8.0 or higher.">
     <condition>
@@ -93,6 +93,8 @@
      <fileset dir="..">
         <!-- For JavaHelp indexing and link checking: -->
         <include name="platform/javahelp/external/jhall*.jar"/>
+        <!-- For json parsing -->
+        <include name="nbbuild/external/json-simple*.jar"/>
       </fileset>
     </path>
     <javac srcdir="antsrc" destdir="${build.ant.classes.dir}" deprecation="true" debug="${build.compiler.debug}" source="1.8" target="1.8">
@@ -111,8 +113,90 @@
       <zipfileset dir="${nb_all}" includes="DISCLAIMER" fullpath="META-INF/DISCLAIMER"/>
     </jar>
     <taskdef name="createlicensesummary" classname="org.netbeans.nbbuild.extlibs.CreateLicenseSummary" classpath="${nbantext.jar}"/>
+    <!-- get all json info we have on apache gitbox  -->
+    <property name="metabuild.releasejson" value="${nb_all}/nbbuild/build/netbeansrelease.json"/>
+    <condition property="metabuild.jsonurl" value="https://gitbox.apache.org/repos/asf?p=netbeans-jenkins-lib.git;a=blob_plain;f=meta/netbeansrelease.json">
+        <not>
+            <isset property="metabuild.jsonurl"/>
+        </not>
+    </condition>
+    <get dest="${metabuild.releasejson}" skipexisting="false" src="${metabuild.jsonurl}" />
+    <!-- read info from gitinfo.properties , if present in source bundle copy gitinfo-->
+    <copy file="${nb_all}/nbbuild/gitinfo.properties" tofile="${nb_all}/nbbuild/build/gitinfo.properties" failonerror="false"/>
+    <copy file="${nb_all}/nbbuild/netbeansrelease.properties" tofile="${nb_all}/nbbuild/build/netbeansrelease.properties" failonerror="false"/>
+    <!-- get branches and git information as previous not overrided this will take new-->
+    <antcall target="getgitinformation" />
+    <!-- javadoc content filtering -->
+    <taskdef name="setjavadoc" classname="org.netbeans.nbbuild.SetApidocClustersConfig" classpath="${nbantext.jar}"/>
+    <property file="${nb_all}/nbbuild/build/gitinfo.properties"/>
+    <property file="${nb_all}/nbbuild/build/netbeansrelease.properties"/>
+    <setjavadoc branch="${metabuild.branch}"/>
+    <echo message="Building branch: ${metabuild.branch}"/>
+    <property name="releasejson" value="${nb_all}/nbbuild/build/netbeansrelease.json"/>
+    <property name="xmlrelease" value="${nb_all}/nbbuild/build/netbeansrelease.xml"/>
+    <property name="propertiesrelease" value="${nb_all}/nbbuild/build/netbeansrelease.properties"/>
+    <taskdef name="releasejson" classname="org.netbeans.nbbuild.ReleaseJsonProperties" >
+        <classpath>
+            <pathelement location="${nbantext.jar}"/>
+            <fileset dir="${nb_all}/nbbuild/external">
+                <include name="json*.jar"/>
+            </fileset>
+        </classpath>
+    </taskdef>
+    <releasejson file="${releasejson}" xmloutput="${xmlrelease}" propertiesoutput="${propertiesrelease}" branch="${metabuild.branch}" hash="${metabuild.hash}"/>
   </target>
-
+  <target name="-gitinfo.ispresent">
+      <available file="${nb_all}/nbbuild/build/gitinfo.properties" property="gitinfo.present" />      
+  </target>
+  <target name="-git.down" unless="${gitinfo.present}" depends="-gitinfo.ispresent">
+      <!-- try to get information from jenkins apache multi branch build or travis -->
+      <taskdef name="gitbranchhash" classname="org.netbeans.nbbuild.GitBranchHash" classpath="${nbantext.jar}" />
+      <property environment="env"/>
+      <condition property="metabuild.branch" value="${env.GIT_BRANCH}" >
+          <isset property="env.GIT_BRANCH" />
+      </condition>
+      <condition property="metabuild.branch" value="${env.TRAVIS_BRANCH}" >
+          <isset property="env.TRAVIS_BRANCH" />
+      </condition>
+      <condition property="metabuild.branch" value="${metabuild.branch}" >
+          <isset property="metabuild.branch" />
+      </condition>
+      <condition property="metabuild.hash" value="${env.GIT_COMMIT}" >
+          <isset property="env.GIT_COMMIT" />
+      </condition>
+      <condition property="metabuild.hash" value="${env.TRAVIS_COMMIT}" >
+          <isset property="env.TRAVIS_COMMIT" />
+      </condition>
+      <condition property="metabuild.hash" value="${metabuild.hash}" >
+          <isset property="metabuild.hash" />
+      </condition>
+      
+      <gitbranchhash file="." branchproperty="metabuild.branch" hashproperty="metabuild.hash" />
+      
+      <condition property="metabuild.branch" value="master" >
+          <not>
+              <isset property="metabuild.branch" />
+          </not>
+      </condition>
+      
+      <echo message="Processing build with branch ${metabuild.branch} and hash ${metabuild.hash}" />
+      <!-- if hash not present do not fail -->
+      <fail message="Branch not found use -Dmetabuild.branch=branchName " >
+          <condition>
+              <not>
+                  <isset property="metabuild.branch"/>
+              </not>
+          </condition>
+      </fail>
+      <echo unless:set="metabuild.hash" file="${nb_all}/nbbuild/build/gitinfo.properties" >metabuild.branch=${metabuild.branch}</echo>
+      <echo if:set="metabuild.hash" file="${nb_all}/nbbuild/build/gitinfo.properties" >metabuild.branch=${metabuild.branch}
+metabuild.hash=${metabuild.hash}</echo>
+  </target>
+  <target name="-git.up" if="${gitinfo.present}" depends="-gitinfo.ispresent">
+      <property file="${nb_all}/nbbuild/build/gitinfo.properties"/>
+      <echo message="Processing build with branch ${metabuild.branch} and hash ${metabuild.hash}" />
+  </target>
+  <target name="getgitinformation" depends="-git.up,-git.down" />
   <target name="download-all-extbins" unless="ext.binaries.downloaded" depends="bootstrap">
     <echo>Downloading external binaries (*/external/ directories)...</echo>
     <downloadbinaries cache="${binaries.cache}" server="${binaries.server}">
diff --git a/nbbuild/external/binaries-list b/nbbuild/external/binaries-list
index 799a5b1..b18ad41 100644
--- a/nbbuild/external/binaries-list
+++ b/nbbuild/external/binaries-list
@@ -18,3 +18,4 @@
 16398550402B27F81CD0D508CEF54B3E47A4A6DA org.apache.rat:apache-rat:0.12
 AB396EE119BFAD809CC9F09950CC22E2BCE2FE35 langtools-9.zip
 E32B3483FBF362C92088CB79E9F1F161F3F64A21 org.apidesign.javadoc:codesnippet-doclet:0.30
+C9AD4A0850AB676C5C64461A05CA524CDFFF59F1 com.googlecode.json-simple:json-simple:1.1.1
diff --git a/nbbuild/external/json-simple-1.1.1-license.txt b/nbbuild/external/json-simple-1.1.1-license.txt
new file mode 100644
index 0000000..aaede6a
--- /dev/null
+++ b/nbbuild/external/json-simple-1.1.1-license.txt
@@ -0,0 +1,208 @@
+Name: JSON simple
+Description: A simple Java toolkit for JSON.
+Version: 1.1.1
+Origin: GitHub
+License: Apache-2.0
+URL: https://github.com/fangyidong/json-simple
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/nbbuild/javadoctools/apichanges.xsl b/nbbuild/javadoctools/apichanges.xsl
index 709e39d..4c6be16 100644
--- a/nbbuild/javadoctools/apichanges.xsl
+++ b/nbbuild/javadoctools/apichanges.xsl
@@ -65,14 +65,85 @@
     <xsl:output method="html"/>
 
     <!-- Overridable parameters: -->
-    <xsl:param name="issue-url-base" select="'https://netbeans.org/bugzilla/show_bug.cgi?id='"/>
+    <xsl:param name="issue-url-base" select="'https://bz.apache.org/netbeans/show_bug.cgi?id='"/>
     <xsl:param name="apache-issue-url-base" select="'https://issues.apache.org/jira/browse/'"/>
     <xsl:param name="javadoc-url-base" select="'???'"/>
 
     <!-- Main document structure: -->
     <xsl:template match="/">
-        <html>
-            <xsl:apply-templates select="apichanges/htmlcontents/node()"/>
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
+        <html lang="en">
+            <head>
+                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+                <xsl:apply-templates select="apichanges/htmlcontents/head/title"/>
+                <link rel="stylesheet" type="text/css" href="javadoc.css" title="Style"/>
+                <script type="text/javascript" src="script.js"></script>
+            </head>
+            <body>
+                <!-- ========= START OF TOP NAVBAR ======= -->
+                <div class="topNav">
+                    <a name="navbar.top">
+                        <!--   -->
+                    </a>
+                    <div class="skipNav">
+                        <a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a>
+                    </div>
+                    <a name="navbar.top.firstrow">
+                        <!--   -->
+                    </a>
+                    <ul class="navList noreplace" title="Navigation">
+                        <li class="navBarCell1Rev">
+                            API Changes
+                        </li>
+                        <li><a href="architecture-summary.html">Architecture Summary</a></li>
+                        <li><a href="overview-summary.html">Overview</a></li>
+                        <li>Package</li>
+                        <li>Class</li>
+                        <li>Use</li>
+                        <li>Tree</li>
+                        <li>
+                            <a href="deprecated-list.html">Deprecated</a>
+                        </li>
+                        <li>Index</li>
+                        <li>
+                            <a href="help-doc.html">Help</a>
+                        </li>
+                    </ul>
+                    <div class="aboutLanguage"> </div>
+                </div>
+                <div class="subNav">
+                    <ul class="navList">
+                        <li>
+                            <a href="index.html?overview-summary.html" target="_top">Frames</a>
+                        </li>
+                        <li>
+                            <a href="overview-summary.html" target="_top">No Frames</a>
+                        </li>
+                    </ul>
+                    <ul class="navList" id="allclasses_navbar_top">
+                        <li>
+                            <a href="allclasses-noframe.html">All Classes</a>
+                        </li>
+                    </ul>
+                    <div>
+                        <script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+                        </script>
+                    </div>
+                    <a name="skip.navbar.top">
+                        <!--   -->
+                    </a>
+                </div>
+                <!-- ========= END OF TOP NAVBAR ========= -->
+                <xsl:apply-templates select="apichanges/htmlcontents/body/node()[not(contains(@class, 'overviewlink'))]"/>
+            </body>
         </html>
     </xsl:template>
 
diff --git a/nbbuild/javadoctools/build.xml b/nbbuild/javadoctools/build.xml
index 83279d4..e8fd960 100644
--- a/nbbuild/javadoctools/build.xml
+++ b/nbbuild/javadoctools/build.xml
@@ -116,42 +116,67 @@
                 <include name="**/allclasses-noframe.html"/>
             </packageslist>
         </javadoc-index>
+        
+        <!-- we concat all xml into one big xml file alldatas.xml -->
+        <echo file="${export.interfaces}/header.gen">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+            &lt;alldata&gt;
+        </echo>
+
+        <echo file="${export.interfaces}/footer.gen">
+            &lt;/alldata&gt;
+        </echo>
+        <concat destfile="${netbeans.javadoc.dir}/alldatas.xml">
+            <fileset dir="${export.interfaces}" includes="header.gen"/>
+            <fileset file="${netbeans.javadoc.dir}/allclasses.xml"/>
+            <fileset file="${netbeans.javadoc.dir}/modules.xml"/>
+            <fileset file="${netbeans.javadoc.dir}/apichanges.xml"/>
+            <fileset dir="${export.interfaces}" includes="footer.gen"/>
+            <filterchain>
+                <linecontainsregexp negate="true">
+                    <regexp pattern="&lt;\?xml version"/>
+                </linecontainsregexp>
+            </filterchain>  
+        </concat>
     </target>
     
     <target name="generate-html" depends="init">
-        <tstamp>
-            <format property="timestamp-modules-javadoc-date" pattern="d MMM yyyy" locale="en"/>
-        </tstamp>
-        <condition property="modules-javadoc-date" value="${timestamp-modules-javadoc-date}">
-	    <not>
-		<isset property="modules-javadoc-date"/>
-	    </not>
+        <!-- reformulate dev version from json to more human version -->
+        <condition property="json.uversion" value="${json.version}" else="Development Version">
+            <not>
+                <equals arg1="${json.version}" arg2="dev"/>
+            </not>
         </condition>
-        <style in="${netbeans.javadoc.dir}/modules.xml" out="${netbeans.javadoc.dir}/usecases.html" style="export2usecases.xsl">
+        <style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/usecases.html" style="export2usecases.xsl">
             <param name="date" expression="${modules-javadoc-date}"/>
+            <param name="maturity" expression="${json.maturity}" />
+            <param name="version" expression="${json.uversion}" />
+            <param name="releaseinfo" expression="${xmlrelease}" />
         </style>
         
-        <style in="${netbeans.javadoc.dir}/apichanges.xml" out="${netbeans.javadoc.dir}/apichanges.html" style="export2apichanges.xsl">
+        <style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/apichanges.html" style="export2apichanges.xsl">
             <param name="date" expression="${modules-javadoc-date}"/>
             <param name="changes-since-year" expression="${previous.release.year}"/>
             <param name="changes-since-day" expression="${previous.release.day}"/>
             <param name="changes-since-month" expression="${previous.release.month}"/>
             <param name="include-introduction" expression="true"/>
+            <param name="maturity" expression="${json.maturity}" />
+            <param name="version" expression="${json.uversion}" />
+            <param name="releaseinfo" expression="${xmlrelease}" />
+            <param name="allmodule" expression="${netbeans.javadoc.dir}/modules.xml" />
         </style>
 
-        <tstamp>
-            <format property="timestamp-atom-date" pattern="yyyy-MM-dd'T'HH:mm:ss'Z'" timezone="UTC"/>
-        </tstamp>
-	<condition property="atom-date" value="${timestamp-atom-date}">
- 	    <not>
-               <isset property="atom-date"/> 
-            </not>		
-        </condition>
-        <style in="${netbeans.javadoc.dir}/apichanges.xml" out="${netbeans.javadoc.dir}/apichanges.atom" style="export2apichanges-atom.xsl">
+        <style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/apichanges.atom" style="export2apichanges-atom.xsl">
             <param name="date" expression="${atom-date}"/>
+            <param name="maturity" expression="${json.maturity}" />
         </style>
-        
+        <!-- copy some assets to apidoc root -->
         <copy file="netbeans.css" tofile="${netbeans.javadoc.dir}/netbeans.css"/>
+        <copy file="siteresource/apache-netbeans.svg" tofile="${netbeans.javadoc.dir}/apache-netbeans.svg" overwrite="true"/>
+        <copy todir="${netbeans.javadoc.dir}" overwrite="true">
+            <fileset dir="siteresource" >
+                <include name="**/*.png"/>
+            </fileset>
+        </copy>
         <condition property="javadoc.style.sheet.exists">
             <available file="${netbeans.javadoc.dir}/org-openide-util/javadoc.css"/>
         </condition>
@@ -161,65 +186,46 @@
             it from master module Javadoc pages. If it does not anymore, update
             the export*.xsl templates.
         </fail>
-
+<!--
         <style in="${netbeans.javadoc.dir}/allclasses.xml" out="${netbeans.javadoc.dir}/allclasses-frame.html" style="export2allclasses.xsl"/>
         
         <style in="${netbeans.javadoc.dir}/modules.xml" out="${netbeans.javadoc.dir}/overview-frame.html" style="export2allmodules.xsl">
             <param name="date" expression="${modules-javadoc-date}"/>
         </style>
-        
-        <style in="${netbeans.javadoc.dir}/modules.xml" out="${netbeans.javadoc.dir}/layers.html" style="export2layer.xsl">
+-->        
+        <style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/layers.html" style="export2layer.xsl">
             <param name="date" expression="${modules-javadoc-date}"/>
+            <param name="maturity" expression="${json.maturity}" />
+            <param name="version" expression="${json.uversion}" />
+            <param name="releaseinfo" expression="${xmlrelease}" />
         </style>
         
-        <style in="${netbeans.javadoc.dir}/modules.xml" out="${netbeans.javadoc.dir}/properties.html" style="export2property.xsl">
+        <style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/properties.html" style="export2property.xsl">
             <param name="date" expression="${modules-javadoc-date}"/>
+             <param name="maturity" expression="${json.maturity}" />
+            <param name="version" expression="${json.uversion}" />
+            <param name="releaseinfo" expression="${xmlrelease}" />
         </style>
 
-        <style in="${netbeans.javadoc.dir}/modules.xml" out="${netbeans.javadoc.dir}/branding.html" style="export2branding.xsl">
+        <style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/branding.html" style="export2branding.xsl">
             <param name="date" expression="${modules-javadoc-date}"/>
-        </style>
-        
-        <style in="${netbeans.javadoc.dir}/modules.xml" out="${netbeans.javadoc.dir}/overview-summary.html" style="export2html.xsl">
-            <param name="date" expression="${modules-javadoc-date}"/>
-            <param name="download" expression="true"/>
-        </style>
-        
-        <style in="${netbeans.javadoc.dir}/modules.xml" out="${nb_all}/nbbuild/build/tmp/overview-summary.html" style="export2html.xsl">
-            <param name="date" expression="${modules-javadoc-date}"/>
-            <param name="download" expression="false"/>
+            <param name="maturity" expression="${json.maturity}" />
+            <param name="version" expression="${json.uversion}" />
+            <param name="releaseinfo" expression="${xmlrelease}" />
         </style>
         
         <!-- at the end generate the index.html so people know where to start -->      
-        <echo file="${netbeans.javadoc.dir}/index.html"><![CDATA[
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-<html>
-    <head>
-        <title>NetBeans API Index</title>
-        <link type="application/atom+xml" rel="alternate" href="apichanges.atom"></link>
-    </head>
-    <frameset cols="20%,80%" title="" onLoad="top.loadFrames()">
-        <frameset rows="30%,70%" title="" onLoad="top.loadFrames()">
-            <frame src="overview-frame.html" name="packageListFrame" title="All Modules"></frame>
-            <frame src="allclasses-frame.html" name="packageFrame" title="All classes"></frame>
-        </frameset>
-        <frame src="overview-summary.html" name="classFrame" title="Module, package, class and interface descriptions" scrolling="yes"></frame>
-        <noframes>
-            <h2>Frame Alert</h2>
-            <p>
-                This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
-                Link to <a href="overview-summary.html">Non-frame version.</a>
-            </p>
-        </noframes>
-    </frameset>
-</html>
-]]>
-        </echo>
+        <style in="${netbeans.javadoc.dir}/alldatas.xml" out="${netbeans.javadoc.dir}/index.html" style="export2index.xsl">
+            <param name="date" expression="${modules-javadoc-date}"/>
+            <param name="maturity" expression="${json.maturity}" />
+            <param name="version" expression="${json.uversion}" />
+            <param name="releaseinfo" expression="${xmlrelease}" />
+        </style>
         &properties;
 
         <replace dir="${netbeans.javadoc.dir}">
             <include name="*.html"/>
-            <replacefilter token="@JDK@" value="http://download.oracle.com/javase/6/docs/api/"/>
+            <replacefilter token="@JDK@" value="${javaapidocurl}"/>
             &replaces;   
             <replacefilter token="http://root/" value="."/>
             <replacefilter token="$${javadoc.web.root}" value="."/>
diff --git a/nbbuild/javadoctools/disallowed-links.xml b/nbbuild/javadoctools/disallowed-links.xml
index e5e5c14..3d10d0e 100644
--- a/nbbuild/javadoctools/disallowed-links.xml
+++ b/nbbuild/javadoctools/disallowed-links.xml
@@ -28,6 +28,7 @@
     <filter pattern="http://www\.netbeans\.org/download/release41/javadoc/apichanges\.html" accept="true"/>
     <filter pattern="http://www\.netbeans\.org/download/[0-9]_[0-9]/javadoc/apichanges\.html" accept="true"/>
     <filter pattern="http://bits\.netbeans\.org/[0-9.]+/javadoc/apichanges\.html" accept="true"/>
+    <filter pattern="http://bits\.netbeans\.org/" accept="true"/>
     <!-- sources -->
     <filter pattern="http://www\.netbeans\.org/(unbranded-)?source/browse/.*" accept="true"/>
     <filter pattern="http://hg\.netbeans\.org.*" accept="true"/>
diff --git a/nbbuild/javadoctools/export2allclasses.xsl b/nbbuild/javadoctools/export2allclasses.xsl
index 367d4ff..c83078f 100644
--- a/nbbuild/javadoctools/export2allclasses.xsl
+++ b/nbbuild/javadoctools/export2allclasses.xsl
@@ -20,47 +20,64 @@
 
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:import href="jsonhelp.xsl" />
     <xsl:output method="html"/>
-
+    <xsl:param name="maturity" />
     <xsl:template match="/" >
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
         <html>
-        <head>
-            <!-- projects.netbeans.org -->
-           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-           <title>All Apache NetBeans (incubating) Classes</title>
-           <link rel="stylesheet" href="org-openide-util/javadoc.css" type="text/css" title="style" />
-        </head>
-
-        <body>
-        <font size="+1" CLASS="FrameHeadingFont">
-            <b>Apache NetBeans (incubating) API Classes</b>
-        </font>
-        
-        <TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-        <TR>
-        <TD NOWRAP=""><FONT CLASS="FrameItemFont">
-        
-            <xsl:for-each select="//class" >
-                <xsl:sort order="ascending" select="@name" />
-                <xsl:call-template name="class" />
-            </xsl:for-each>
-            
-        </FONT></TD>
-        </TR>
-        </TABLE>
-            
-        </body>
+            <head>
+                <!-- projects.netbeans.org -->
+                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+                <xsl:element name="title">
+                    <xsl:text>All </xsl:text>
+                    <xsl:call-template name="apachenetbeanstext" >
+                        <xsl:with-param name="maturity">
+                            <xsl:value-of select="$maturity"/>
+                        </xsl:with-param>
+                    </xsl:call-template>
+                    <xsl:text>Classes</xsl:text>
+                </xsl:element>
+                <link rel="stylesheet" href="org-openide-util/javadoc.css" type="text/css" title="style" />
+            </head>
+            <body>
+                <font size="+1" CLASS="FrameHeadingFont">
+                    <xsl:element name="title">
+                        <xsl:text>All </xsl:text>
+                        <xsl:call-template name="apachenetbeanstext" >
+                            <xsl:with-param name="maturity">
+                                <xsl:value-of select="$maturity"/>
+                            </xsl:with-param>
+                        </xsl:call-template>
+                        <xsl:text>API Classes</xsl:text>
+                    </xsl:element>
+                </font>
+                <TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+                    <TR>
+                        <TD NOWRAP="">
+                            <FONT CLASS="FrameItemFont">
+                                <xsl:for-each select="//class" >
+                                    <xsl:sort order="ascending" select="@name" />
+                                    <xsl:call-template name="class" />
+                                </xsl:for-each>
+                            </FONT>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </body>
         </html>
     </xsl:template>
-    
     <xsl:template name="class">
         <a>
-            <xsl:attribute name="href"><xsl:value-of select="@url" /></xsl:attribute>
+            <xsl:attribute name="href">
+                <xsl:value-of select="@url" />
+            </xsl:attribute>
             <xsl:attribute name="target">classFrame</xsl:attribute>
-            
             <xsl:choose>
                 <xsl:when test="@interface = 'true'" >
-                    <i><xsl:value-of select="@name" /></i>
+                    <i>
+                        <xsl:value-of select="@name" />
+                    </i>
                 </xsl:when>
                 <xsl:otherwise>
                     <xsl:value-of select="@name" />
@@ -69,7 +86,6 @@
         </a>
         <br/>
     </xsl:template>
-    
 </xsl:stylesheet>
 
 
diff --git a/nbbuild/javadoctools/export2allmodules.xsl b/nbbuild/javadoctools/export2allmodules.xsl
index f949039..e498a55 100644
--- a/nbbuild/javadoctools/export2allmodules.xsl
+++ b/nbbuild/javadoctools/export2allmodules.xsl
@@ -20,71 +20,54 @@
 
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:import href="jsonhelp.xsl" />
     <xsl:output method="html"/>
-
-    <xsl:template match="/" >
-        <html>
-        <head>
-            <!-- projects.netbeans.org -->
-           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-           <title>All Apache NetBeans (incubating) Classes</title>
-           <link rel="stylesheet" href="org-openide-util/javadoc.css" type="text/css"/>
-        </head>
-
-        <body>
-
-
-        <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-        <TR>
-        <TD COLSPAN="2" BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-        <A NAME="navbar_top_firstrow"><!-- --></A>
-        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-          <TR ALIGN="center" VALIGN="top">
-          <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    
-            <a>
-                <xsl:attribute name="href">overview-summary.html</xsl:attribute>
-                <xsl:attribute name="target">classFrame</xsl:attribute>
-                <FONT CLASS="NavBarFont1"><B>Overview</B></FONT>
-            </a>
-          </TD>
-          <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    
-            <a>
-                <xsl:attribute name="href">allclasses-frame.html</xsl:attribute>
-                <xsl:attribute name="target">packageFrame</xsl:attribute>
-                <FONT CLASS="NavBarFont1"><B>AllClasses</B></FONT>
-            </a>
-          </TD>
-          <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    
-            <a>
-                <xsl:attribute name="href">usecases.html</xsl:attribute>
-                <xsl:attribute name="target">classFrame</xsl:attribute>
-                <FONT CLASS="NavBarFont1"><B>UseCases</B></FONT>
-            </a>
-          </TD>
-          </TR>
-        </TABLE>
-        </TD>
-        <TD ALIGN="right" VALIGN="top" ROWSPAN="3"><EM>
-        </EM>
-        </TD>
-        </TR>
-        </TABLE>
-        
-        <TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-        <TR>
-        <TD NOWRAP=""><FONT CLASS="FrameItemFont">
+    <xsl:param name="maturity" />
+    <xsl:template name="listallmodules" >
+        <input type="text" id="searchinput" onkeyup="searchFunction()" placeholder="Search for class..."/>
+        <ul class="moduleslist">
             <xsl:for-each select="//module[not (@name = '_no module_')]" >
                 <xsl:sort order="ascending" select="@name" />
-                <xsl:call-template name="module" />
+                <li class="module">
+                    <xsl:call-template name="modulewithclass" />
+                </li>
             </xsl:for-each>
-        </FONT></TD>
-        </TR>
-        </TABLE>
-        
-        </body>
-        </html>
+        </ul>
     </xsl:template>
-    
+    <xsl:template name="modulewithclass">
+        <xsl:attribute name="style">
+            <xsl:choose>
+                <xsl:when test="descendant::api[@category='stable' and @group='java']">background-color:#ffffff</xsl:when>
+                <xsl:when test="descendant::api[@category='official' and @group='java']">background-color:#ffffff</xsl:when>
+                <xsl:when test="descendant::api[@category='devel' and @group='java']">background-color:#ddcc80</xsl:when>
+                <xsl:when test="descendant::api[@category='deprecated' and @group='java']">text-decoration: line-through</xsl:when>
+                <xsl:otherwise>background-color:#e0c0c0</xsl:otherwise>
+            </xsl:choose>
+        </xsl:attribute>
+        <span class="modules">
+            <xsl:value-of select="@name" />
+        </span>
+        (<a><xsl:attribute name="href"><xsl:value-of select="substring-before(@target,'/')" />/overview-summary.html</xsl:attribute>javadoc</a>)
+        <ul class="modulesclasslist">
+            <xsl:variable name="modulename" select="substring-before(@target,'/')" />
+            <xsl:for-each select="//class[($modulename = substring-before(@url,'/'))]" >
+                <xsl:sort order="ascending" select="@name" />
+                <xsl:element name="li">
+                    <xsl:attribute name="class">
+                        <xsl:if test="@interface='false'">class</xsl:if>
+                        <xsl:if test="@interface='true'">interface</xsl:if>
+                    </xsl:attribute>
+                    <xsl:call-template name="class" />
+                </xsl:element>
+            </xsl:for-each>
+        </ul>
+    </xsl:template>
+    <xsl:template name="class">
+        <a>
+            <xsl:attribute name="href"><xsl:value-of select="@url" /></xsl:attribute>
+            <xsl:value-of select="@name" />
+        </a>
+    </xsl:template>
     <xsl:template name="module">
         <span>
             <xsl:attribute name="style">
@@ -97,20 +80,18 @@
                 </xsl:choose>
             </xsl:attribute>
             <a>
-                <xsl:attribute name="href"><xsl:value-of select="substring-before(@target,'/')" />/allclasses-frame.html</xsl:attribute>
+                <xsl:attribute name="href">
+                    <xsl:value-of select="substring-before(@target,'/')" />/allclasses-frame.html</xsl:attribute>
                 <xsl:attribute name="target">packageFrame</xsl:attribute>
-
                 <xsl:value-of select="@name" />
             </a>
             (<a>
-               <xsl:attribute name="href"><xsl:value-of select="substring-before(@target,'/')" />/overview-summary.html</xsl:attribute>
-                <xsl:attribute name="target">classFrame</xsl:attribute>
-                javadoc
-            </a>)
+                <xsl:attribute name="href">
+                    <xsl:value-of select="substring-before(@target,'/')" />/overview-summary.html</xsl:attribute>
+                <xsl:attribute name="target">classFrame</xsl:attribute>javadoc</a>)
         </span>
         <br/>
     </xsl:template>
-    
 </xsl:stylesheet>
 
 
diff --git a/nbbuild/javadoctools/export2apichanges-atom.xsl b/nbbuild/javadoctools/export2apichanges-atom.xsl
index 633b0c0..298959b 100644
--- a/nbbuild/javadoctools/export2apichanges-atom.xsl
+++ b/nbbuild/javadoctools/export2apichanges-atom.xsl
@@ -21,18 +21,30 @@
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xalan="http://xml.apache.org/xslt" xmlns:xhtml="http://www.w3.org/1999/xhtml">
     <xsl:import href="apichanges.xsl" />
+    <xsl:import href="jsonhelp.xsl" />
     <xsl:output method="xml" indent="yes" xalan:indent-amount="4"/>
     <xsl:param name="date"/>
     <xsl:param name="url-prefix" select="''"/>
-
+    <xsl:param name="maturity" />
     <xsl:template match="/" >
         <atom:feed>
             <atom:id>urn:netbeans-org:apichanges</atom:id>
-            <atom:title>Apache NetBeans (incubating) API Changes</atom:title>
-            <atom:author><atom:name>netbeans.org</atom:name></atom:author>
+            <xsl:element name="atom:title">
+                <xsl:call-template name="apachenetbeanstext" >
+                    <xsl:with-param name="maturity">
+                        <xsl:value-of select="$maturity"/>
+                    </xsl:with-param>
+                </xsl:call-template>
+                <xsl:text>API Changes</xsl:text>
+            </xsl:element>
+            <atom:author>
+                <atom:name>netbeans.org</atom:name>
+            </atom:author>
             <atom:link rel="alternate" type="text/html" href="apichanges.html"/>
             <atom:link rel="self" type="application/xml+atom" href="http://deadlock.netbeans.org/job/nbms-and-javadoc/javadoc/apichanges.atom"/>
-            <atom:updated><xsl:value-of select="$date"/></atom:updated>
+            <atom:updated>
+                <xsl:value-of select="$date"/>
+            </atom:updated>
             <xsl:apply-templates select="//change">
                 <xsl:sort data-type="number" order="descending" select="date/@year"/>
                 <xsl:sort data-type="number" order="descending" select="date/@month"/>
@@ -43,25 +55,51 @@
 
     <xsl:template match="change">
         <atom:entry>
-            <xsl:if test="@id"><atom:id>urn:netbeans-org:apichanges:<xsl:value-of select="@id"/></atom:id></xsl:if>
-            <atom:title type="xhtml"><xhtml:div>[<xsl:value-of select="translate(substring-before(@url,'/'), '-', '.')"/>] <xsl:apply-templates select="summary/node()" mode="xhtmlify"/></xhtml:div></atom:title>
+            <xsl:if test="@id">
+                <atom:id>urn:netbeans-org:apichanges:<xsl:value-of select="@id"/></atom:id>
+            </xsl:if>
+            <atom:title type="xhtml">
+                <xhtml:div>[<xsl:value-of select="translate(substring-before(@url,'/'), '-', '.')"/>] <xsl:apply-templates select="summary/node()" mode="xhtmlify"/></xhtml:div>
+            </atom:title>
             <!-- XXX is the relative URL legal? -->
-            <atom:link rel="alternate" type="text/html"><xsl:attribute name="href"><xsl:value-of select="$url-prefix"/><xsl:value-of select="@url"/>#<xsl:value-of select="@id"/></xsl:attribute></atom:link>
-            <xsl:if test="date"><atom:updated><xsl:value-of select="date/@year"/>-<xsl:if test="string-length(date/@month) = 1">0</xsl:if><xsl:value-of select="date/@month"/>-<xsl:if test="string-length(date/@day) = 1">0</xsl:if><xsl:value-of select="date/@day"/>T00:00:00Z</atom:updated></xsl:if>
-            <xsl:if test="author"><atom:author><atom:name><xsl:value-of select="author/@login"/></atom:name><atom:email><xsl:value-of select="author/@login"/>@netbeans.org</atom:email></atom:author></xsl:if>
-            <atom:summary type="xhtml"><xhtml:div><xsl:apply-templates select="description" mode="xhtmlify"/></xhtml:div></atom:summary>
+            <atom:link rel="alternate" type="text/html">
+                <xsl:attribute name="href">
+                    <xsl:value-of select="$url-prefix"/>
+                    <xsl:value-of select="@url"/>#<xsl:value-of select="@id"/>
+                </xsl:attribute>
+            </atom:link>
+            <xsl:if test="date">
+                <atom:updated>
+                    <xsl:value-of select="date/@year"/>-<xsl:if test="string-length(date/@month) = 1">0</xsl:if>
+                    <xsl:value-of select="date/@month"/>-<xsl:if test="string-length(date/@day) = 1">0</xsl:if>
+                    <xsl:value-of select="date/@day"/>T00:00:00Z</atom:updated>
+            </xsl:if>
+            <xsl:if test="author">
+                <atom:author>
+                    <atom:name>
+                        <xsl:value-of select="author/@login"/>
+                    </atom:name>
+                    <atom:email>
+                        <xsl:value-of select="author/@login"/>@netbeans.org</atom:email>
+                </atom:author>
+            </xsl:if>
+            <atom:summary type="xhtml">
+                <xhtml:div>
+                    <xsl:apply-templates select="description" mode="xhtmlify"/>
+                </xhtml:div>
+            </atom:summary>
         </atom:entry>
     </xsl:template>
 
     <xsl:template match="*" mode="xhtmlify" priority="2">
-      <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
-        <xsl:apply-templates select="@*|node()"/>
-      </xsl:element>
+        <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:element>
     </xsl:template>
     <xsl:template match="@*|node()" mode="xhtmlify" priority="1">
-      <xsl:copy>
-        <xsl:apply-templates select="@*|node()"/>
-      </xsl:copy>
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
     </xsl:template>
 
 </xsl:stylesheet>
diff --git a/nbbuild/javadoctools/export2apichanges.xsl b/nbbuild/javadoctools/export2apichanges.xsl
index a0176d9..0bcf4cb 100644
--- a/nbbuild/javadoctools/export2apichanges.xsl
+++ b/nbbuild/javadoctools/export2apichanges.xsl
@@ -21,7 +21,8 @@
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:import href="apichanges.xsl" />
-
+    <xsl:import href="jsonhelp.xsl" />
+    <xsl:import href="export2allmodules.xsl" />
     <xsl:output method="html"/>
     <xsl:param name="date"  />
     <xsl:param name="changes-since-year"  />
@@ -29,91 +30,131 @@
     <xsl:param name="changes-since-day"  />
     <xsl:param name="include-introduction" select="'true'" />
     <xsl:param name="url-prefix" select="''" />
-
+    <xsl:param name="maturity" />
+    <xsl:param name="version" />
+    <xsl:param name="releaseinfo" />
+    <xsl:param name="allmodule" />
+     
     <xsl:template match="/" >
-      <xsl:choose>
-        <xsl:when test="$include-introduction='true'" >
-            <html>
-            <head>
-                <!-- projects.netbeans.org -->
-               <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-               <title>Apache NetBeans (incubating) API Changes since Last Release</title>
-                <link rel="stylesheet" href="netbeans.css" type="text/css"/>
-
-              <link REL="icon" href="http://www.netbeans.org/favicon.ico" type="image/ico" />
-              <link REL="shortcut icon" href="http://www.netbeans.org/favicon.ico" />
-              <link type="application/atom+xml" rel="alternate" href="apichanges.atom"/>
-
-            </head>
-
-            <body>
-
-
-            <center>
-                <h1>Apache NetBeans (incubating) API Changes since Last Release</h1>
-                <h3>Apache NetBeans (incubating) 11.0</h3>
-                <xsl:if test="$date" >
-                    <xsl:value-of select="$date" />
-                    <p/>
-                </xsl:if>
-            </center>
-
-            This document highlights changes in <a href="index.html">NetBeans APIs</a> 
-            since previous version (i.e.
-                <xsl:value-of select="$changes-since-day" />
-                <xsl:text> </xsl:text>
-                <xsl:choose>
-                    <xsl:when test="$changes-since-month=1">Jan</xsl:when>
-                    <xsl:when test="$changes-since-month=2">Feb</xsl:when>
-                    <xsl:when test="$changes-since-month=3">Mar</xsl:when>
-                    <xsl:when test="$changes-since-month=4">Apr</xsl:when>
-                    <xsl:when test="$changes-since-month=5">May</xsl:when>
-                    <xsl:when test="$changes-since-month=6">Jun</xsl:when>
-                    <xsl:when test="$changes-since-month=7">Jul</xsl:when>
-                    <xsl:when test="$changes-since-month=8">Aug</xsl:when>
-                    <xsl:when test="$changes-since-month=9">Sep</xsl:when>
-                    <xsl:when test="$changes-since-month=10">Oct</xsl:when>
-                    <xsl:when test="$changes-since-month=11">Nov</xsl:when>
-                    <xsl:when test="$changes-since-month=12">Dec</xsl:when>
-                </xsl:choose> 
-                <xsl:text> </xsl:text>
-                <xsl:value-of select="$changes-since-year" /> 
-                <xsl:text>). There are also other documents that list changes 
-                made for </xsl:text>
-                <a href="http://www.netbeans.org/download/5_0/javadoc/apichanges.html">release 5.0</a>, 
-                <a href="http://www.netbeans.org/download/5_5/javadoc/apichanges.html">release 5.5</a>,
-                <a href="http://bits.netbeans.org/6.0/javadoc/apichanges.html">release 6.0</a>,
-                <a href="http://bits.netbeans.org/6.1/javadoc/apichanges.html">release 6.1</a>,
-                <a href="http://bits.netbeans.org/6.5/javadoc/apichanges.html">release 6.5</a>,
-                <a href="http://bits.netbeans.org/6.7/javadoc/apichanges.html">release 6.7</a>,
-                <a href="http://bits.netbeans.org/6.8/javadoc/apichanges.html">release 6.8</a>,
-                <a href="http://bits.netbeans.org/6.9/javadoc/apichanges.html">release 6.9</a>,
-                <a href="http://bits.netbeans.org/6.9.1/javadoc/apichanges.html">release 6.9.1</a>,
-                <a href="http://bits.netbeans.org/7.0/javadoc/apichanges.html">release 7.0</a>,
-                <a href="http://bits.netbeans.org/7.0.1/javadoc/apichanges.html">release 7.0.1</a>,
-                <a href="http://bits.netbeans.org/7.1/javadoc/apichanges.html">release 7.1</a>,
-                <a href="http://bits.netbeans.org/7.1.1/javadoc/apichanges.html">release 7.1.1</a>,
-                <a href="http://bits.netbeans.org/7.1.2/javadoc/apichanges.html">release 7.1.2</a>,
-                <a href="http://bits.netbeans.org/7.2/javadoc/apichanges.html">release 7.2</a>,
-                <a href="http://bits.netbeans.org/7.2.1/javadoc/apichanges.html">release 7.2.1</a>,
-                <a href="http://bits.netbeans.org/7.3/javadoc/apichanges.html">release 7.3</a>,
-                <a href="http://bits.netbeans.org/7.3.1/javadoc/apichanges.html">release 7.3.1</a>,
-                <a href="http://bits.netbeans.org/7.4/javadoc/apichanges.html">release 7.4</a>,
-                <a href="http://bits.netbeans.org/8.0/javadoc/apichanges.html">release 8.0</a>,
-                <a href="http://bits.netbeans.org/8.0.1/javadoc/apichanges.html">release 8.0.1</a>,
-                <a href="http://bits.netbeans.org/8.1/javadoc/apichanges.html">release 8.1</a>,
-                <a href="http://bits.netbeans.org/8.2/javadoc/apichanges.html">release 8.2</a>,
-                <a href="http://bits.netbeans.org/9.0/javadoc/apichanges.html">release 9.0</a>,
-                <a href="http://bits.netbeans.org/10.0/javadoc/apichanges.html">release 10.0</a>.
-            <xsl:call-template name="do-the-table" />
-            </body>
-            </html>
-        </xsl:when>
-        <xsl:otherwise>
-            <xsl:call-template name="do-the-table" />
-        </xsl:otherwise>
-      </xsl:choose>
-      
+        <xsl:choose>
+            <xsl:when test="$include-introduction='true'" >
+                <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
+                <html>
+                    <xsl:call-template name="htmlheader" >
+                        <xsl:with-param name="title" >APIs Changes</xsl:with-param>
+                        <xsl:with-param name="maturity" select="$maturity" />
+                        <xsl:with-param name="version" select="$version"/>
+                    </xsl:call-template>
+                    <body>
+                        <xsl:call-template name="htmlmainmenu" >
+                            <xsl:with-param name="title" >APIs Changes</xsl:with-param>
+                            <xsl:with-param name="maturity" select="$maturity" />
+                            <xsl:with-param name="version" select="$version"/> 
+                            <xsl:with-param name="releaseinfo" select="$releaseinfo"/>
+                            <xsl:with-param name="menukey" >apichanges</xsl:with-param>
+                        </xsl:call-template>
+                        
+            
+                        <div class="apidocmaincontent">
+                            <xsl:call-template name="build-docmenu" >
+                                <xsl:with-param name="menukey" >apichanges</xsl:with-param>
+                                <xsl:with-param name="date" select="$date"/>
+                            </xsl:call-template>
+                
+                            <div class="innercontent">
+                                <div class="abstract">
+                                    This document highlights changes in <a href="index.html">NetBeans APIs</a> 
+                                    since previous version (i.e.
+                                    <xsl:value-of select="$changes-since-day" />
+                                    <xsl:text> </xsl:text>
+                                    <xsl:choose>
+                                        <xsl:when test="$changes-since-month=1">Jan</xsl:when>
+                                        <xsl:when test="$changes-since-month=2">Feb</xsl:when>
+                                        <xsl:when test="$changes-since-month=3">Mar</xsl:when>
+                                        <xsl:when test="$changes-since-month=4">Apr</xsl:when>
+                                        <xsl:when test="$changes-since-month=5">May</xsl:when>
+                                        <xsl:when test="$changes-since-month=6">Jun</xsl:when>
+                                        <xsl:when test="$changes-since-month=7">Jul</xsl:when>
+                                        <xsl:when test="$changes-since-month=8">Aug</xsl:when>
+                                        <xsl:when test="$changes-since-month=9">Sep</xsl:when>
+                                        <xsl:when test="$changes-since-month=10">Oct</xsl:when>
+                                        <xsl:when test="$changes-since-month=11">Nov</xsl:when>
+                                        <xsl:when test="$changes-since-month=12">Dec</xsl:when>
+                                    </xsl:choose> 
+                                    <xsl:text> </xsl:text>
+                                    <xsl:value-of select="$changes-since-year" /> 
+                                    <xsl:text>). </xsl:text>
+                                </div>
+                                <hr/>
+                                    <!--
+                                    There are also other documents that list changes 
+                                    made for releaso of the Oracle era: </xsl:text>
+                                <p>
+                                    <a href="http://www.netbeans.org/download/5_0/javadoc/apichanges.html">release 5.0</a>, 
+                                    <a href="http://www.netbeans.org/download/5_5/javadoc/apichanges.html">release 5.5</a>,
+                                    <a href="http://bits.netbeans.org/6.0/javadoc/apichanges.html">release 6.0</a>,
+                                    <a href="http://bits.netbeans.org/6.1/javadoc/apichanges.html">release 6.1</a>,
+                                    <a href="http://bits.netbeans.org/6.5/javadoc/apichanges.html">release 6.5</a>,
+                                    <a href="http://bits.netbeans.org/6.7/javadoc/apichanges.html">release 6.7</a>,
+                                    <a href="http://bits.netbeans.org/6.8/javadoc/apichanges.html">release 6.8</a>,
+                                    <a href="http://bits.netbeans.org/6.9/javadoc/apichanges.html">release 6.9</a>,
+                                    <a href="http://bits.netbeans.org/6.9.1/javadoc/apichanges.html">release 6.9.1</a>,
+                                    <a href="http://bits.netbeans.org/7.0/javadoc/apichanges.html">release 7.0</a>,
+                                    <a href="http://bits.netbeans.org/7.0.1/javadoc/apichanges.html">release 7.0.1</a>,
+                                    <a href="http://bits.netbeans.org/7.1/javadoc/apichanges.html">release 7.1</a>,
+                                    <a href="http://bits.netbeans.org/7.1.1/javadoc/apichanges.html">release 7.1.1</a>,
+                                    <a href="http://bits.netbeans.org/7.1.2/javadoc/apichanges.html">release 7.1.2</a>,
+                                    <a href="http://bits.netbeans.org/7.2/javadoc/apichanges.html">release 7.2</a>,
+                                    <a href="http://bits.netbeans.org/7.2.1/javadoc/apichanges.html">release 7.2.1</a>,
+                                    <a href="http://bits.netbeans.org/7.3/javadoc/apichanges.html">release 7.3</a>,
+                                    <a href="http://bits.netbeans.org/7.3.1/javadoc/apichanges.html">release 7.3.1</a>,
+                                    <a href="http://bits.netbeans.org/7.4/javadoc/apichanges.html">release 7.4</a>,
+                                    <a href="http://bits.netbeans.org/8.0/javadoc/apichanges.html">release 8.0</a>,
+                                    <a href="http://bits.netbeans.org/8.0.1/javadoc/apichanges.html">release 8.0.1</a>,
+                                    <a href="http://bits.netbeans.org/8.1/javadoc/apichanges.html">release 8.1</a>,
+                                    <a href="http://bits.netbeans.org/8.2/javadoc/apichanges.html">release 8.2</a>.
+                                </p>
+                                <p>Apache era:</p>
+                                <xsl:variable name="currentversion" select="document($releaseinfo)/*/@position"/>
+                                <xsl:for-each select="document($releaseinfo)//release">
+                                    <xsl:sort data-type="number" select="@position" order="ascending" />
+                                    <xsl:choose>
+                                        <xsl:when test="$currentversion = @position">,current release</xsl:when>
+                                        <xsl:otherwise>
+                                            <xsl:element name="a">
+                                                <xsl:attribute name="href">
+                                                    <xsl:value-of select="@apidocurl"/>/apichanges.html</xsl:attribute>
+                                                <xsl:attribute name="target">_top</xsl:attribute>,release <xsl:value-of select="@version"/>      
+                                            </xsl:element>
+                                        </xsl:otherwise>
+                                    </xsl:choose>
+                    
+                                </xsl:for-each>
+                                .
+                               <a href="http://bits.netbeans.org/9.0/javadoc/apichanges.html">release 9.0</a>,
+                                <a href="http://bits.netbeans.org/10.0/javadoc/apichanges.html">release 10.0</a>,
+                                <a href="http://bits.netbeans.org/11.0/javadoc/apichanges.html">release 11.0</a>.-->
+                                <xsl:call-template name="do-the-table" />
+                            </div>
+                        </div>
+                        <div class="apidocleft">
+                            <div class="apidocleft">
+                                <xsl:call-template name="listallmodules" />
+                            </div>
+                            <!--<xsl:call-template name="listallmodules" />-->
+                            <!--<xsl:template match="document($allmodule)">-->
+                            <!--<xsl:apply-templates select="document($allmodule)" />-->
+                            <!--</xsl:template>-->
+                        </div>
+                        <xsl:call-template name="htmlfooter" />
+                    </body>
+                </html>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:call-template name="do-the-table" />
+            </xsl:otherwise>
+        </xsl:choose>
+        
     </xsl:template>
     
     <xsl:template name="do-the-table" >
@@ -138,9 +179,13 @@
             </xsl:variable>
             <xsl:choose>
                 <xsl:when test="not ($important.change = 'none')">
-                    <xsl:comment><xsl:value-of select="$important.change"/></xsl:comment>
+                    <xsl:comment>
+                        <xsl:value-of select="$important.change"/>
+                    </xsl:comment>
                     <xsl:call-template name="change-url">
-                        <xsl:with-param name="span"><xsl:value-of select="$important.change"/></xsl:with-param>
+                        <xsl:with-param name="span">
+                            <xsl:value-of select="$important.change"/>
+                        </xsl:with-param>
                     </xsl:call-template>
                 </xsl:when>
                 <xsl:otherwise>
@@ -153,10 +198,17 @@
     <xsl:template name="change-url" mode="global-overview">
         <xsl:param name="span"></xsl:param>
         <xsl:if test="date">(<xsl:apply-templates select="date"/>)<xsl:text> </xsl:text></xsl:if>
-        <span><xsl:attribute name="style"><xsl:value-of select="$span"/></xsl:attribute>
-        <xsl:value-of select="substring-before(@url,'/')"/></span>:
+        <span>
+            <xsl:attribute name="style">
+                <xsl:value-of select="$span"/>
+            </xsl:attribute>
+            <xsl:value-of select="substring-before(@url,'/')"/>
+        </span>:
         <a>
-            <xsl:attribute name="href"><xsl:value-of select="$url-prefix"/><xsl:value-of select="@url"/>#<xsl:value-of select="@id"/></xsl:attribute>
+            <xsl:attribute name="href">
+                <xsl:value-of select="$url-prefix"/>
+                <xsl:value-of select="@url"/>#<xsl:value-of select="@id"/>
+            </xsl:attribute>
             <xsl:apply-templates select="summary/node()"/>
         </a>
     </xsl:template>
diff --git a/nbbuild/javadoctools/export2branding.xsl b/nbbuild/javadoctools/export2branding.xsl
index 254dc3d..839dd6d 100644
--- a/nbbuild/javadoctools/export2branding.xsl
+++ b/nbbuild/javadoctools/export2branding.xsl
@@ -20,73 +20,94 @@
 
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:import href="jsonhelp.xsl" />
+    <xsl:import href="export2allmodules.xsl" />
     <xsl:output method="html"/>
     <xsl:param name="date" />
-
+    <xsl:param name="maturity" />
+    <xsl:param name="version" />
+    <xsl:param name="releaseinfo" />
+    
     <xsl:template match="/" >
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
         <html>
-        <head>
-            <!-- projects.netbeans.org -->
-           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-           <title>Description Layer Registration in Apache NetBeans (incubating) APIs</title>
-            <link rel="stylesheet" href="netbeans.css" type="text/css"/>
-
-          <link REL="icon" href="http://www.netbeans.org/favicon.ico" type="image/ico" />
-          <link REL="shortcut icon" href="http://www.netbeans.org/favicon.ico" />
-
-        </head>
-
-        <body>
-            <center><h1>Description of Branding APIs for Apache NetBeans (incubating) Platform Applications</h1></center>
-
-            <p>
-            Applications built on top of NetBeans Platform may change configuration
-            of various aspects via branding. E.g. by providing different values
-            for certain keys in various <code>Bundle</code>. 
-            This page summarizes the list of such
-            branding APIs defined by <a href="index.html">modules with API</a>. 
-            </p>
-
-            <ul>
-            <xsl:for-each select="//api[@type='export' and @group='branding']" >
-                <li>
-                    <b>
-                        <xsl:choose >
-                            <xsl:when test="@url" >
-                                <a>
-                                    <xsl:attribute name="href">
-                                        <xsl:value-of select="@url"/>
-                                    </xsl:attribute>
-                                    <xsl:value-of select="@name"></xsl:value-of>
-                                </a>
-                            </xsl:when>
-                            <xsl:otherwise>
-                                <xsl:value-of select="@name"></xsl:value-of>
-                            </xsl:otherwise>
-                        </xsl:choose>
-                        <xsl:text> in </xsl:text>
-                        <a>
-                            <xsl:attribute name="href">
-                                <xsl:value-of select="ancestor::module/@target"/>
-                                <xsl:text>#group-branding</xsl:text>
-                            </xsl:attribute>
-                            <xsl:value-of select="ancestor::module/@name"/>
-                        </a>
-                    </b>
-                    <p>
-                    <xsl:apply-templates select="." />
-                    </p>
-                </li>
-            </xsl:for-each>
-            </ul>
-            
-            <p>
-                To get your API listed here, use 
-                <code>&lt;api type='export' group='branding' ... /&gt;</code> in
-                your module arch.xml document.
-            </p>
-         </body>
-         </html>
+            <xsl:call-template name="htmlheader" >
+                <xsl:with-param name="title" >APIs Branding</xsl:with-param>
+                <xsl:with-param name="maturity" select="$maturity" />
+                <xsl:with-param name="version" select="$version"/>
+            </xsl:call-template>
+            <body>
+                <xsl:call-template name="htmlmainmenu" >
+                    <xsl:with-param name="title" >APIs Branding</xsl:with-param>
+                    <xsl:with-param name="maturity" select="$maturity" />
+                    <xsl:with-param name="version" select="$version"/> 
+                    <xsl:with-param name="releaseinfo" select="$releaseinfo"/>
+                    <xsl:with-param name="menukey" >branding</xsl:with-param>
+                </xsl:call-template>
+    
+                <div class="apidocmaincontent">
+                    <xsl:call-template name="build-docmenu" >
+                        <xsl:with-param name="menukey" >branding</xsl:with-param>
+                        <xsl:with-param name="date" select="$date"/>
+                    </xsl:call-template>
+                
+                    <div class="innercontent">
+                        <div class="abstract">
+                            <p>
+                                Applications built on top of NetBeans Platform may change configuration
+                                of various aspects via branding. E.g. by providing different values
+                                for certain keys in various <code>Bundle</code>. 
+                                This page summarizes the list of such
+                                branding APIs defined by <a href="index.html">modules with API</a>. 
+                            </p>
+                            <p>
+                                To get your API listed here, use 
+                                <code>&lt;api type='export' group='branding' ... /&gt;</code> in
+                                your module arch.xml document.
+                            </p>
+                        </div>
+                        <hr/>
+                    
+                        <ul>
+                            <xsl:for-each select="//api[@type='export' and @group='branding']" >
+                                <li>
+                                    <b>
+                                        <xsl:choose >
+                                            <xsl:when test="@url" >
+                                                <a>
+                                                    <xsl:attribute name="href">
+                                                        <xsl:value-of select="@url"/>
+                                                    </xsl:attribute>
+                                                    <xsl:value-of select="@name"></xsl:value-of>
+                                                </a>
+                                            </xsl:when>
+                                            <xsl:otherwise>
+                                                <xsl:value-of select="@name"></xsl:value-of>
+                                            </xsl:otherwise>
+                                        </xsl:choose>
+                                        <xsl:text> in </xsl:text>
+                                        <a>
+                                            <xsl:attribute name="href">
+                                                <xsl:value-of select="ancestor::module/@target"/>
+                                                <xsl:text>#group-branding</xsl:text>
+                                            </xsl:attribute>
+                                            <xsl:value-of select="ancestor::module/@name"/>
+                                        </a>
+                                    </b>
+                                    <p>
+                                        <xsl:apply-templates select="." />
+                                    </p>
+                                </li>
+                            </xsl:for-each>
+                        </ul>
+                    </div>
+                </div>
+                <div class="apidocleft">
+                    <xsl:call-template name="listallmodules" />
+                </div>
+                <xsl:call-template name="htmlfooter" />
+            </body>
+        </html>
     </xsl:template>
     
     <xsl:template match="api-ref">
@@ -97,7 +118,9 @@
     </xsl:template>
 
     <xsl:template match="usecase">
-        <h4><xsl:value-of select="@name" /></h4>
+        <h4>
+            <xsl:value-of select="@name" />
+        </h4>
         <xsl:apply-templates select="./node()" />
     </xsl:template>
 
@@ -105,11 +128,11 @@
         <xsl:variable name="target" select="ancestor::module/@target"/>
         <xsl:variable name="top" select="substring-before($target,'/')" />
         
-          <xsl:call-template name="print-url" >
+        <xsl:call-template name="print-url" >
             <xsl:with-param name="url" select="@href" />
             <xsl:with-param name="base" select="$target" />
             <xsl:with-param name="top" select="$top" />
-          </xsl:call-template>
+        </xsl:call-template>
     </xsl:template>
     
     <xsl:template name="print-url" >
@@ -152,7 +175,7 @@
             </xsl:when>
             <xsl:otherwise>
                 <xsl:comment>This must be a reference relative to the arch page, if not see nbbuild/javadoctools/export2usecases.xsl
-            </xsl:comment>
+                </xsl:comment>
                 <a>
                     <xsl:attribute name="href">
                         <xsl:value-of select="$base" />
@@ -166,11 +189,11 @@
     </xsl:template>
             
     <xsl:template match="@*|node()">
-       <xsl:copy  >
-          <xsl:apply-templates select="@*|node()"/>
-       </xsl:copy>
+        <xsl:copy  >
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
     </xsl:template>
-        
+
 </xsl:stylesheet>
 
 
diff --git a/nbbuild/javadoctools/export2html.xsl b/nbbuild/javadoctools/export2html.xsl
index acc5c72..acc5ea1 100644
--- a/nbbuild/javadoctools/export2html.xsl
+++ b/nbbuild/javadoctools/export2html.xsl
@@ -20,124 +20,234 @@
 
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:import href="jsonhelp.xsl" />
     <xsl:output method="html"/>
     <xsl:param name="date" />
     <xsl:param name="download" select="'true'"/>
-
+    <xsl:param name="maturity" />
+    <xsl:param name="version" />
+    <xsl:param name="releaseinfo" />
+    
     <!-- unique key over all groups of apis -->
     <xsl:key match="//api[@type='export']" name="apiGroups" use="@group" />
     <!-- unique key over all names of apis -->
     <xsl:key match="//api" name="apiNames" use="@name" />
-
     <xsl:template match="/apis" >
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
         <html>
-        <head>
-            <!-- projects.netbeans.org -->
-           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-           <title>Apache NetBeans (incubating) API List</title>
-            <link rel="stylesheet" href="netbeans.css" type="text/css"/>
+            <head>
+                <!-- projects.netbeans.org -->
+                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+                <xsl:element name="title">
+                    <xsl:call-template name="apachenetbeanstext" >
+                        <xsl:with-param name="maturity">
+                            <xsl:value-of select="$maturity"/>
+                        </xsl:with-param>
+                    </xsl:call-template>
+                    <xsl:text>API List</xsl:text>
+                </xsl:element>
+                <link rel="stylesheet" href="netbeans.css" type="text/css"/>
+                <link rel="icon" type="image/png" sizes="32x32" href="//netbeans.apache.org/favicon-32x32.png" /> 
+                <link rel="icon" type="image/png" sizes="16x16" href="//netbeans.apache.org/favicon-16x16.png" />
+          
 
-          <link REL="icon" href="http://www.netbeans.org/favicon.ico" type="image/ico" />
-          <link REL="shortcut icon" href="http://www.netbeans.org/favicon.ico" />
+            </head>
 
-        </head>
+            <body>
 
-        <body>
+                <center>
+                    <xsl:element name="h1">
+                        <xsl:call-template name="apachenetbeanstext" >
+                            <xsl:with-param name="maturity">
+                                <xsl:value-of select="$maturity"/>
+                            </xsl:with-param>
+                        </xsl:call-template>
+                        <xsl:text>API List</xsl:text>
+                    </xsl:element>
+                    <xsl:element name="h3">
+                        <xsl:call-template name="apachenetbeansversion" >
+                            <xsl:with-param name="maturity">
+                                <xsl:value-of select="$maturity"/>                
+                            </xsl:with-param>
+                            <xsl:with-param name="version">
+                                <xsl:value-of select="$version"/>                
+                            </xsl:with-param>
+                        </xsl:call-template>
+                    </xsl:element>
+                    <xsl:if test="$date" >
+                        <xsl:value-of select="$date" />
+                        <p/>
+                    </xsl:if>
+                </center>
 
-        <center>
-            <h1>Apache NetBeans (incubating) API List</h1>
-            <h3>Apache NetBeans (incubating) 11.0</h3>
-            <xsl:if test="$date" >
-                <xsl:value-of select="$date" />
+                This document provides a list of <em>NetBeans APIs</em> with a short description
+                of what they are used for, and a table describing different types of interfaces
+                (see <a href="http://wiki.netbeans.org/API_Design">What is
+                    an API?</a> to understand why we list DTDs, file formats, etc.) and with
+                a stability category (<span style="background:#ffffff">stable and official</span>,
+                <span style="background:#ddcc80">under development</span>,
+                <span style="background:#afafaf;text-decoration:line-through">deprecated</span>,
+                <span style="background:#e0c0c0">friend or private</span>;
+                see <a href="http://wiki.netbeans.org/API_Stability">API
+                    stability</a> for more info).
+                The aim is to provide as detailed a definition of NetBeans module 
+                external interfaces as possible and give other developers a chance to decide
+                whether they want to depend on a particular API or not.
                 <p/>
-            </xsl:if>
-        </center>
-
-        This document provides a list of <em>NetBeans APIs</em> with a short description
-        of what they are used for, and a table describing different types of interfaces
-        (see <a href="http://wiki.netbeans.org/API_Design">What is
-        an API?</a> to understand why we list DTDs, file formats, etc.) and with
-        a stability category (<span style="background:#ffffff">stable and official</span>,
-        <span style="background:#ddcc80">under development</span>,
-        <span style="background:#afafaf;text-decoration:line-through">deprecated</span>,
-        <span style="background:#e0c0c0">friend or private</span>;
-        see <a
-        href="http://wiki.netbeans.org/API_Stability">API
-        stability</a> for more info).
-        The aim is to provide as detailed a definition of NetBeans module 
-        external interfaces as possible and give other developers a chance to decide
-        whether they want to depend on a particular API or not.
-        <p/>
-        Some of these APIs are part of the 
-        <a href="http://platform.netbeans.org/">NetBeans Platform</a>
-        (for example lookup,
-        loaders, utilities, nodes, explorer, window systems, multiview, etc.), some of them
-        are specific to 
-        <a href="http://www.netbeans.org/products/ide/index.html">NetBeans IDE</a> 
-        (projects, javacore, diff, etc.) and some
-        are not included in the release at all and are just provided for download
-        (usually via autoupdate). Basically when building an application based on
-        <em>NetBeans</em> one is free to choose the set of modules and their APIs 
-        to satisfy one's needs.
-        <p>
-        This is a list of APIs for Apache NetBeans (incubating) 11.0 version, if you want to see
-        a list of APIs for a particular version, you may want to go to:
-        </p>
-        <ul>
-            <li><a href="http://bits.netbeans.org/dev/javadoc/" target="_top">Dev</a> - Javadoc as released for development version</li>
-            <li><a href="http://bits.netbeans.org/10.0/javadoc/" target="_top">10.0</a> - Javadoc as released for Apache NetBeans (incubating) IDE 10.0</li>
-            <li><a href="http://bits.netbeans.org/9.0/javadoc/" target="_top">9.0</a> - Javadoc as released for Apache NetBeans (incubating) IDE 9.0</li>
-            <li><a href="http://bits.netbeans.org/8.2/javadoc/" target="_top">8.2</a> - Javadoc as released for NetBeans IDE 8.2</li>
-            <li><a href="http://bits.netbeans.org/8.1/javadoc/" target="_top">8.1</a> - Javadoc as released for NetBeans IDE 8.1</li>
-            <li><a href="http://bits.netbeans.org/8.0.1/javadoc/" target="_top">8.0.1</a> - Javadoc as released for NetBeans IDE 8.0.1</li>
-            <li><a href="http://bits.netbeans.org/8.0/javadoc/" target="_top">8.0</a> - Javadoc as released for NetBeans IDE 8.0</li>
-            <li><a href="http://bits.netbeans.org/7.4/javadoc/" target="_top">7.4</a> - Javadoc as released for NetBeans IDE 7.4</li>
-            <li><a href="http://bits.netbeans.org/7.3.1/javadoc/" target="_top">7.3.1</a> - Javadoc as released for NetBeans IDE 7.3.1</li>
-            <li><a href="http://bits.netbeans.org/7.3/javadoc/" target="_top">7.3</a> - Javadoc as released for NetBeans IDE 7.3</li>
-            <li><a href="http://bits.netbeans.org/7.2.1/javadoc/" target="_top">7.2.1</a> - Javadoc as released for NetBeans IDE 7.2.1</li>
-            <li><a href="http://bits.netbeans.org/7.2/javadoc/" target="_top">7.2</a> - Javadoc as released for NetBeans IDE 7.2</li>
-            <li><a href="http://bits.netbeans.org/7.1.2/javadoc/" target="_top">7.1.2</a> - Javadoc as released for NetBeans IDE 7.1.2</li>
-            <li><a href="http://bits.netbeans.org/7.1.1/javadoc/" target="_top">7.1.1</a> - Javadoc as released for NetBeans IDE 7.1.1</li>
-            <li><a href="http://bits.netbeans.org/7.1/javadoc/" target="_top">7.1</a> - Javadoc as released for NetBeans IDE 7.1</li>
-            <li><a href="http://bits.netbeans.org/7.0.1/javadoc/" target="_top">7.0.1</a> - Javadoc as released for NetBeans IDE 7.0.1</li>
-            <li><a href="http://bits.netbeans.org/7.0/javadoc/" target="_top">7.0</a> - Javadoc as released for NetBeans IDE 7.0</li>
-            <li><a href="http://bits.netbeans.org/6.9.1/javadoc/" target="_top">6.9.1</a> - Javadoc as released for NetBeans IDE 6.9.1</li>
-            <li><a href="http://bits.netbeans.org/6.9/javadoc/" target="_top">6.9</a> - Javadoc as released for NetBeans IDE 6.9</li>
-            <li><a href="http://bits.netbeans.org/6.8/javadoc/" target="_top">6.8</a> - Javadoc as released for NetBeans IDE 6.8</li>
-            <li><a href="http://bits.netbeans.org/6.7/javadoc/" target="_top">6.7</a> - Javadoc as released for NetBeans IDE 6.7</li>
-            <li><a href="http://bits.netbeans.org/6.5/javadoc/" target="_top">6.5</a> - Javadoc as released for NetBeans IDE 6.5</li>
-            <li><a href="http://bits.netbeans.org/6.1/javadoc/" target="_top">6.1</a> - Javadoc as released for NetBeans IDE 6.1</li>
-            <li><a href="http://bits.netbeans.org/6.0/javadoc/" target="_top">6.0</a> - Javadoc as released for NetBeans IDE 6.0</li>
-            <li><a href="http://www.netbeans.org/download/5_5_1/javadoc/" target="_top">5.5.1</a> - Javadoc as released for NetBeans IDE 5.5.1</li>
-            <li><a href="http://www.netbeans.org/download/5_5/javadoc/" target="_top">5.5</a> - Javadoc as released for NetBeans IDE 5.5</li>
-            <li><a href="http://www.netbeans.org/download/5_0/javadoc/" target="_top">5.0</a> - Javadoc as released for NetBeans IDE 5.0</li>
-        </ul>
-        <p/>
-        To get the API of your module listed here, see the documentation for the 
-        Javadoc building
-        <a href="http://wiki.netbeans.org/APIDevelopment">infrastructure</a>.
+                Some of these APIs are part of the 
+                <a href="http://platform.netbeans.org/">NetBeans Platform</a>
+                (for example lookup,
+                loaders, utilities, nodes, explorer, window systems, multiview, etc.), some of them
+                are specific to 
+                <a href="http://www.netbeans.org/products/ide/index.html">NetBeans IDE</a> 
+                (projects, javacore, diff, etc.) and some
+                are not included in the release at all and are just provided for download
+                (usually via autoupdate). Basically when building an application based on
+                <em>NetBeans</em> one is free to choose the set of modules and their APIs 
+                to satisfy one's needs.
+                <p>
+                    This is a list of APIs for 
+                    <xsl:call-template name="apachenetbeansversion" >
+                        <xsl:with-param name="maturity">
+                            <xsl:value-of select="$maturity"/>                
+                        </xsl:with-param>
+                        <xsl:with-param name="version">
+                            <xsl:value-of select="$version"/>                
+                        </xsl:with-param>
+                    </xsl:call-template>, if you want to see
+                    a list of APIs at for a particular version, you may want to go to:
+                </p>
+                <ul>
+                    <xsl:variable name="currentversion" select="document($releaseinfo)/*/@position"/>
+                    <xsl:for-each select="document($releaseinfo)//release">
+                        <xsl:sort data-type="number" select="@position" order="descending" />
+                        <li>
+                            <xsl:choose>
+                                <xsl:when test="$currentversion = @position">
+                                    This is were your are - Javadoc as released for
+                                    <xsl:call-template name="apachenetbeansversion" >
+                                        <xsl:with-param name="maturity">
+                                            <xsl:value-of select="@tlp"/>
+                                        </xsl:with-param>
+                                        <xsl:with-param name="version">
+                                            <xsl:value-of select="@version"/>                
+                                        </xsl:with-param>
+                                    </xsl:call-template>             
+                                </xsl:when>
+                                <xsl:otherwise>
+                                    <xsl:element name="a">
+                                        <xsl:attribute name="href">
+                                            <xsl:value-of select="@apidocurl"/>
+                                        </xsl:attribute>
+                                        <xsl:attribute name="target">_top</xsl:attribute>
+                                        <xsl:value-of select="@version"/>
+                                    </xsl:element>                 
+                                    - Javadoc as released for 
+                                    <xsl:call-template name="apachenetbeansversion" >
+                                        <xsl:with-param name="maturity">
+                                            <xsl:value-of select="@tlp"/>
+                                        </xsl:with-param>
+                                        <xsl:with-param name="version">
+                                            <xsl:value-of select="@version"/>                
+                                        </xsl:with-param>
+                                    </xsl:call-template>          
+                                </xsl:otherwise>
+                            </xsl:choose>
+                    
+                        </li>
+                    </xsl:for-each>
+                </ul>
+                <p>
+                    This is a list of apidocs of NetBeans of Oracle era.
+                </p>
+                <ul>
+                    <li>
+                        <a href="http://bits.netbeans.org/8.2/javadoc/" target="_top">8.2</a> - Javadoc as released for NetBeans IDE 8.2</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/8.1/javadoc/" target="_top">8.1</a> - Javadoc as released for NetBeans IDE 8.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/8.0.1/javadoc/" target="_top">8.0.1</a> - Javadoc as released for NetBeans IDE 8.0.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/8.0/javadoc/" target="_top">8.0</a> - Javadoc as released for NetBeans IDE 8.0</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.4/javadoc/" target="_top">7.4</a> - Javadoc as released for NetBeans IDE 7.4</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.3.1/javadoc/" target="_top">7.3.1</a> - Javadoc as released for NetBeans IDE 7.3.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.3/javadoc/" target="_top">7.3</a> - Javadoc as released for NetBeans IDE 7.3</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.2.1/javadoc/" target="_top">7.2.1</a> - Javadoc as released for NetBeans IDE 7.2.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.2/javadoc/" target="_top">7.2</a> - Javadoc as released for NetBeans IDE 7.2</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.1.2/javadoc/" target="_top">7.1.2</a> - Javadoc as released for NetBeans IDE 7.1.2</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.1.1/javadoc/" target="_top">7.1.1</a> - Javadoc as released for NetBeans IDE 7.1.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.1/javadoc/" target="_top">7.1</a> - Javadoc as released for NetBeans IDE 7.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.0.1/javadoc/" target="_top">7.0.1</a> - Javadoc as released for NetBeans IDE 7.0.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/7.0/javadoc/" target="_top">7.0</a> - Javadoc as released for NetBeans IDE 7.0</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/6.9.1/javadoc/" target="_top">6.9.1</a> - Javadoc as released for NetBeans IDE 6.9.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/6.9/javadoc/" target="_top">6.9</a> - Javadoc as released for NetBeans IDE 6.9</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/6.8/javadoc/" target="_top">6.8</a> - Javadoc as released for NetBeans IDE 6.8</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/6.7/javadoc/" target="_top">6.7</a> - Javadoc as released for NetBeans IDE 6.7</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/6.5/javadoc/" target="_top">6.5</a> - Javadoc as released for NetBeans IDE 6.5</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/6.1/javadoc/" target="_top">6.1</a> - Javadoc as released for NetBeans IDE 6.1</li>
+                    <li>
+                        <a href="http://bits.netbeans.org/6.0/javadoc/" target="_top">6.0</a> - Javadoc as released for NetBeans IDE 6.0</li>
+                    <li>
+                        <a href="http://www.netbeans.org/download/5_5_1/javadoc/" target="_top">5.5.1</a> - Javadoc as released for NetBeans IDE 5.5.1</li>
+                    <li>
+                        <a href="http://www.netbeans.org/download/5_5/javadoc/" target="_top">5.5</a> - Javadoc as released for NetBeans IDE 5.5</li>
+                    <li>
+                        <a href="http://www.netbeans.org/download/5_0/javadoc/" target="_top">5.0</a> - Javadoc as released for NetBeans IDE 5.0</li>
+                </ul>
+                <p/>
+                To get the API of your module listed here, see the documentation for the 
+                Javadoc building
+                <a href="http://wiki.netbeans.org/APIDevelopment">infrastructure</a>.
         
-        <h4>Additional Sources of Information</h4>
+                <h4>Additional Sources of Information</h4>
         
-        <ul>
-            <li><a href="apichanges.html">Changes since previous release</a></li>
-            <li><a href="usecases.html">How to use certain NetBeans APIs</a></li>
-            <li><a href="allclasses-frame.html">Index of all NetBeans API classes</a></li>
-            <li><a href="layers.html">Extracted List of Layer APIs</a></li>
-            <li><a href="properties.html">Extracted List of Property APIs</a></li>
-            <li><a href="branding.html">Extracted List of Branding APIs</a></li>
-        </ul>
+                <ul>
+                    <li>
+                        <a href="apichanges.html">Changes since previous release</a>
+                    </li>
+                    <li>
+                        <a href="usecases.html">How to use certain NetBeans APIs</a>
+                    </li>
+                    <li>
+                        <a href="allclasses-frame.html">Index of all NetBeans API classes</a>
+                    </li>
+                    <li>
+                        <a href="layers.html">Extracted List of Layer APIs</a>
+                    </li>
+                    <li>
+                        <a href="properties.html">Extracted List of Property APIs</a>
+                    </li>
+                    <li>
+                        <a href="branding.html">Extracted List of Branding APIs</a>
+                    </li>
+                </ul>
 
-        <h4>FAQ and Mailing List</h4>
+                <h4>FAQ and Mailing List</h4>
 
-        <p>Can't find what you're looking for? Try the <a href="https://netbeans.apache.org" target="_top">Apache NetBeans (incubating) website</a>.</p>
+                <p>Can't find what you're looking for? Try the <a href="https://netbeans.apache.org" target="_top">Apache NetBeans website</a>.</p>
 
-        <hr/>
-        <xsl:call-template name="list-modules" />
-        <hr/>
-        <xsl:apply-templates />
+                <hr/>
+                <xsl:call-template name="list-modules" />
+                <hr/>
+                <xsl:apply-templates />
         
-        </body>
+            </body>
         </html>
        
     </xsl:template>
@@ -146,85 +256,94 @@
         <h2>Content</h2>
         <ul>
             <xsl:for-each select="/apis/module" >
-            	<xsl:sort select="@name" />
+                <xsl:sort select="@name" />
                 <xsl:choose>
                     <xsl:when test="api" >
-                       <li>
-                        <span>
-                            <xsl:attribute name="style">
-                                <xsl:choose>
-                                    <xsl:when test="descendant::api[@category='stable' and @group='java']">background:#ffffff</xsl:when>
-                                    <xsl:when test="descendant::api[@category='official' and @group='java']">background:#ffffff</xsl:when>
-                                    <xsl:when test="descendant::api[@category='devel' and @group='java']">background:#ddcc80</xsl:when>
-                                    <xsl:when test="descendant::api[@category='deprecated' and @group='java']">text-decoration: line-through</xsl:when>
-                                    <xsl:otherwise>background:#e0c0c0</xsl:otherwise>
-                                </xsl:choose>
-                            </xsl:attribute>
-                           <a>
-                             <xsl:attribute name="href"><xsl:value-of select="substring-before(@target,'/')" />/overview-summary.html</xsl:attribute>
-                             <xsl:attribute name="target">classFrame</xsl:attribute>
-                             <xsl:value-of select="@name"/>
-                           </a> -
-                            <!-- XXX the following is crap; e.g. messes up descs of Dialogs API, I/O API, ... -->
-                            <!-- Should use e.g.:
-                            <answer id="arch-what">
-                                <span class="summary">This API does such-and-such.</span>
-                                It also does some other less important stuff.
-                            </answer>
-                            -->
-                          <xsl:comment>Begin of first sentenece</xsl:comment>
-                          <xsl:apply-templates mode="first-sentence" select="description" />
-                          <xsl:comment>End of first sentenece</xsl:comment>.
-                        </span>
+                        <li>
+                            <span>
+                                <xsl:attribute name="style">
+                                    <xsl:choose>
+                                        <xsl:when test="descendant::api[@category='stable' and @group='java']">background:#ffffff</xsl:when>
+                                        <xsl:when test="descendant::api[@category='official' and @group='java']">background:#ffffff</xsl:when>
+                                        <xsl:when test="descendant::api[@category='devel' and @group='java']">background:#ddcc80</xsl:when>
+                                        <xsl:when test="descendant::api[@category='deprecated' and @group='java']">text-decoration: line-through</xsl:when>
+                                        <xsl:otherwise>background:#e0c0c0</xsl:otherwise>
+                                    </xsl:choose>
+                                </xsl:attribute>
+                                <a>
+                                    <xsl:attribute name="href">
+                                        <xsl:value-of select="substring-before(@target,'/')" />/overview-summary.html</xsl:attribute>
+                                    <xsl:attribute name="target">classFrame</xsl:attribute>
+                                    <xsl:value-of select="@name"/>
+                                </a> -
+                                <!-- XXX the following is crap; e.g. messes up descs of Dialogs API, I/O API, ... -->
+                                <!-- Should use e.g.:
+                                <answer id="arch-what">
+                                    <span class="summary">This API does such-and-such.</span>
+                                    It also does some other less important stuff.
+                                </answer>
+                                -->
+                                <xsl:comment>Begin of first sentenece</xsl:comment>
+                                <xsl:apply-templates mode="first-sentence" select="description" />
+                                <xsl:comment>End of first sentenece</xsl:comment>.
+                            </span>
                         </li>
                     </xsl:when>
                     <xsl:otherwise>
-                            <!-- will be covered later -->
+                        <!-- will be covered later -->
                     </xsl:otherwise>
                 </xsl:choose>
             </xsl:for-each>
             <xsl:for-each select="/apis/module" >
                 <xsl:sort select="api" order="descending" />
-            	<xsl:sort select="@name" />
+                <xsl:sort select="@name" />
                 <xsl:choose>
                     <xsl:when test="api" >
-                            <!-- covered before -->
+                        <!-- covered before -->
                     </xsl:when>
                     <xsl:otherwise>
                         <li>
                             <xsl:variable name="where" select="substring-before(@target, '/')"/>
-                            <b><a href="{$where}/overview-summary.html"><xsl:value-of select="$where"/></a></b>
+                            <b>
+                                <a href="{$where}/overview-summary.html">
+                                    <xsl:value-of select="$where"/>
+                                </a>
+                            </b>
                             - no API description provided
                             (see <a href="http://wiki.netbeans.org/APIDevelopment">how to do it</a>)
                         </li>
                     </xsl:otherwise>
                 </xsl:choose>
-             </xsl:for-each>
+            </xsl:for-each>
         </ul>
     </xsl:template>
 
     <xsl:template match="module">
-            <xsl:variable name="interfaces" select="descendant::api[@type='export' and generate-id() = generate-id(key('apiNames', @name))]" />
-            <xsl:variable name="module.name" select="@name" />
-            <xsl:variable name="arch.stylesheet" select="@stylesheet" />
-            <xsl:variable name="arch.overviewlink" select="@overviewlink" />
-            <xsl:variable name="arch.footer" select="@footer" />
-            <xsl:variable name="arch.target" select="@target" />
+        <xsl:variable name="interfaces" select="descendant::api[@type='export' and generate-id() = generate-id(key('apiNames', @name))]" />
+        <xsl:variable name="module.name" select="@name" />
+        <xsl:variable name="arch.stylesheet" select="@stylesheet" />
+        <xsl:variable name="arch.overviewlink" select="@overviewlink" />
+        <xsl:variable name="arch.footer" select="@footer" />
+        <xsl:variable name="arch.target" select="@target" />
 
-            <xsl:if test="$interfaces">
-                <h3><a name="def-api-{$module.name}"><xsl:value-of select="$module.name"/></a></h3>
+        <xsl:if test="$interfaces">
+            <h3>
+                <a name="def-api-{$module.name}">
+                    <xsl:value-of select="$module.name"/>
+                </a>
+            </h3>
 
                 
-                <a>
-                    <xsl:attribute name="href">
-                        <xsl:call-template name="filedirapi" >
-                            <xsl:with-param name="arch.target" select="$arch.target" />
-                        </xsl:call-template>
-                        <xsl:text>/index.html</xsl:text>
-                    </xsl:attribute>
-                    <xsl:text>javadoc</xsl:text>
-                </a>
-                <xsl:if test="$download = 'true'"> | <a>
+            <a>
+                <xsl:attribute name="href">
+                    <xsl:call-template name="filedirapi" >
+                        <xsl:with-param name="arch.target" select="$arch.target" />
+                    </xsl:call-template>
+                    <xsl:text>/index.html</xsl:text>
+                </xsl:attribute>
+                <xsl:text>javadoc</xsl:text>
+            </a>
+            <xsl:if test="$download = 'true'"> | <a>
                     <xsl:attribute name="href">
                         <xsl:call-template name="filedirapi" >
                             <xsl:with-param name="arch.target" select="$arch.target" />
@@ -232,75 +351,91 @@
                         <xsl:text>.zip</xsl:text>
                     </xsl:attribute>
                     <xsl:text>download</xsl:text>
-                </a></xsl:if>
+                </a>
+            </xsl:if>
+            | <a>
+                <xsl:attribute name="href">
+                    <xsl:value-of select="$arch.target" />
+                </xsl:attribute>
+                <xsl:text>architecture</xsl:text>
+            </a> 
+            <xsl:if test="//module[@name=$module.name]/arch-usecases" >
                 | <a>
                     <xsl:attribute name="href">
-                        <xsl:value-of select="$arch.target" />
+                        <xsl:text>usecases.html#usecase-</xsl:text>
+                        <xsl:value-of select="$module.name" />
                     </xsl:attribute>
-                    <xsl:text>architecture</xsl:text>
-                </a> 
-                <xsl:if test="//module[@name=$module.name]/arch-usecases" >
-                    | <a>
-                        <xsl:attribute name="href">
-                            <xsl:text>usecases.html#usecase-</xsl:text>
-                            <xsl:value-of select="$module.name" />
-                        </xsl:attribute>
-                        <xsl:text>usecases</xsl:text>
-                    </a>
-                </xsl:if>
-                <p/>
+                    <xsl:text>usecases</xsl:text>
+                </a>
+            </xsl:if>
+            <p/>
 
-                <div><xsl:apply-templates select="description"/></div>
+            <div>
+                <xsl:apply-templates select="description"/>
+            </div>
 
-                <xsl:if test="deploy-dependencies">
-                    <div>
-                       <p><b>Usage:</b></p>
-                       <xsl:apply-templates select="deploy-dependencies"/>
-                    </div>
-                </xsl:if>
-
-                <p/><table cellpadding="1" cellspacing="0" border="0" class="tablebg" width="100%"><tr><td>
-                  <table border="0" cellpadding="3" cellspacing="1" width="100%">
-<!--                    <tr><td COLSPAN="5" class="tablecbg" ALIGN="CENTER"><font CLASS="titlectable">Do not duplicate any files</font></td></tr> -->
-                    <tr class="tablersh">
-                      <td align="CENTER" width="30%"><span class="titlectable">Interface Name</span></td>
-                      <td align="CENTER" width="15%"><span class="titlectable">Stability Classification</span></td>
-                      <td align="CENTER" ><span class="titlectable">Specified in What Document?</span></td>
-                    </tr>
-
-                    <xsl:for-each select="$interfaces">
-                        <xsl:if test="@group='java'" >
-                            <xsl:call-template name="api" >
-                                <xsl:with-param name="arch.target" select="$arch.target" />
-                            </xsl:call-template>
-                        </xsl:if>
-                    </xsl:for-each>
-
-                    <xsl:for-each select="//api[generate-id() = generate-id(key('apiGroups', @group))]">
-                        <xsl:variable name="grp" select="@group" />
-                        <xsl:if test="$grp!='java'" >
-                            <xsl:variable name="apis" select="/apis" />
-                            <xsl:variable name="module" select="$apis/module[@name=$module.name]" />
-
-                            <xsl:variable name="allOfTheGroup" select="$module/api[@group=$grp]" />
-                            <xsl:if test="$allOfTheGroup">
-                              <tr class="tabler">
-                                <td>Set of <xsl:value-of select="$grp"/> APIs</td>
-                                <td>Individual</td>
-                                <td>
-                                    <a href="{$arch.target}#group-{$grp}">table with definitions</a>
-                                </td>
-                              </tr>
-                            </xsl:if>
-                        </xsl:if>
-                    </xsl:for-each>
-
-                  </table>
-                </td></tr></table>
+            <xsl:if test="deploy-dependencies">
+                <div>
+                    <p>
+                        <b>Usage:</b>
+                    </p>
+                    <xsl:apply-templates select="deploy-dependencies"/>
+                </div>
             </xsl:if>
 
+            <p/>
+            <table cellpadding="1" cellspacing="0" border="0" class="tablebg" width="100%">
+                <tr>
+                    <td>
+                        <table border="0" cellpadding="3" cellspacing="1" width="100%">
+                            <!--                    <tr><td COLSPAN="5" class="tablecbg" ALIGN="CENTER"><font CLASS="titlectable">Do not duplicate any files</font></td></tr> -->
+                            <tr class="tablersh">
+                                <td align="CENTER" width="30%">
+                                    <span class="titlectable">Interface Name</span>
+                                </td>
+                                <td align="CENTER" width="15%">
+                                    <span class="titlectable">Stability Classification</span>
+                                </td>
+                                <td align="CENTER" >
+                                    <span class="titlectable">Specified in What Document?</span>
+                                </td>
+                            </tr>
 
-            <P/>
+                            <xsl:for-each select="$interfaces">
+                                <xsl:if test="@group='java'" >
+                                    <xsl:call-template name="api" >
+                                        <xsl:with-param name="arch.target" select="$arch.target" />
+                                    </xsl:call-template>
+                                </xsl:if>
+                            </xsl:for-each>
+
+                            <xsl:for-each select="//api[generate-id() = generate-id(key('apiGroups', @group))]">
+                                <xsl:variable name="grp" select="@group" />
+                                <xsl:if test="$grp!='java'" >
+                                    <xsl:variable name="apis" select="/apis" />
+                                    <xsl:variable name="module" select="$apis/module[@name=$module.name]" />
+
+                                    <xsl:variable name="allOfTheGroup" select="$module/api[@group=$grp]" />
+                                    <xsl:if test="$allOfTheGroup">
+                                        <tr class="tabler">
+                                            <td>Set of <xsl:value-of select="$grp"/> APIs</td>
+                                            <td>Individual</td>
+                                            <td>
+                                                <a href="{$arch.target}#group-{$grp}">table with definitions</a>
+                                            </td>
+                                        </tr>
+                                    </xsl:if>
+                                </xsl:if>
+                            </xsl:for-each>
+
+                        </table>
+                    </td>
+                </tr>
+            </table>
+        </xsl:if>
+
+
+        <P/>
 
     </xsl:template>
 
@@ -356,7 +491,9 @@
             </td>
 
             <td> <!-- url -->
-                <a href="{$url}"><xsl:value-of select="$url"/></a>
+                <a href="{$url}">
+                    <xsl:value-of select="$url"/>
+                </a>
                 <xsl:if test="$description" >
                     <p>
                         <xsl:apply-templates select="$description" />
@@ -395,7 +532,10 @@
     <!-- Gets the first sentence with HTML tags -->
     
     <xsl:template mode="first-sentence" match="api-ref">
-        <b><xsl:value-of select="@name" /></b><xsl:text> </xsl:text>
+        <b>
+            <xsl:value-of select="@name" />
+        </b>
+        <xsl:text> </xsl:text>
     </xsl:template>
 
     <xsl:template mode="first-sentence" match="node()">
@@ -407,15 +547,15 @@
                     <xsl:when test="$first-sentence" >
                         <xsl:value-of select="$first-sentence" />
                         <!-- this trick starts comment which disables output produces after 
-                           Which means comments out everything after the .
-                           -->
+                        Which means comments out everything after the .
+                        -->
                         <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
                     </xsl:when>
                     <xsl:when test="$first-dot" >
                         <xsl:value-of select="$first-dot" />
                         <!-- this trick starts comment which disables output produces after 
-                           Which means comments out everything after the .
-                           -->
+                        Which means comments out everything after the .
+                        -->
                         <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
                     </xsl:when>
                     <xsl:otherwise>
@@ -432,5 +572,3 @@
     </xsl:template>
     
 </xsl:stylesheet>
-
-
diff --git a/nbbuild/javadoctools/export2index.xsl b/nbbuild/javadoctools/export2index.xsl
new file mode 100644
index 0000000..3633bb3
--- /dev/null
+++ b/nbbuild/javadoctools/export2index.xsl
@@ -0,0 +1,445 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+
+    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.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:import href="jsonhelp.xsl" />
+    <xsl:import href="export2allmodules.xsl" />
+    <xsl:output method="html"/>
+    <xsl:param name="date" />
+    <xsl:param name="download" select="'true'"/>
+    <xsl:param name="maturity" />
+    <xsl:param name="version" />
+    <xsl:param name="releaseinfo" />
+    <!-- unique key over all groups of apis -->
+    <xsl:key match="//api[@type='export']" name="apiGroups" use="@group" />
+    <!-- unique key over all names of apis -->
+    <xsl:key match="//api" name="apiNames" use="@name" />
+    <xsl:template match="/" >
+        <!-- <frameset cols="20%,80%" title="" onLoad="top.loadFrames()">
+            <frameset rows="30%,70%" title="" onLoad="top.loadFrames()">
+                <frame src="overview-frame.html" name="packageListFrame" title="All Modules"/>
+                <frame src="allclasses-frame.html" name="packageFrame" title="All classes"/>
+            </frameset>
+            <frame src="overview-summary.html" name="classFrame" title="Module, package, class and interface descriptions" scrolling="yes"/>
+            <noframes>
+                <h2>Frame Alert</h2>
+                <p>
+                    This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+                    Link to <a href="overview-summary.html">Non-frame version.</a>
+                </p>
+            </noframes>
+        </frameset>-->
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
+        <html>
+            <xsl:call-template name="htmlheader" >
+                <xsl:with-param name="title" >APIs Overview</xsl:with-param>
+                <xsl:with-param name="maturity" select="$maturity" />
+                <xsl:with-param name="version" select="$version"/>
+            </xsl:call-template>
+        
+            <body>
+                <xsl:call-template name="htmlmainmenu" >
+                    <xsl:with-param name="title" >APIs Overview</xsl:with-param>
+                    <xsl:with-param name="maturity" select="$maturity" />
+                    <xsl:with-param name="version" select="$version"/> 
+                    <xsl:with-param name="releaseinfo" select="$releaseinfo"/>
+                    <xsl:with-param name="menukey" >index</xsl:with-param>
+                </xsl:call-template>
+    
+                <div class="apidocmaincontent">
+                    <xsl:call-template name="build-docmenu" >
+                        <xsl:with-param name="menukey" >index</xsl:with-param>
+                        <xsl:with-param name="date" select="$date"/>
+                    </xsl:call-template>
+                
+                    <div class="innercontent">
+                        <div class="abstract">
+                            This document provides a list of <em>NetBeans APIs</em> with a short description
+                            of what they are used for, and a table describing different types of interfaces
+                            (see <a href="http://wiki.netbeans.org/API_Design">What is
+                                an API?</a> to understand why we list DTDs, file formats, etc.) and with
+                            a stability category (<span style="background:#ffffff">stable and official</span>,
+                            <span style="background:#ddcc80">under development</span>,
+                            <span style="background:#afafaf;text-decoration:line-through">deprecated</span>,
+                            <span style="background:#e0c0c0">friend or private</span>;
+                            see <a href="http://wiki.netbeans.org/API_Stability">API stability</a> for more info).
+                            The aim is to provide as detailed a definition of NetBeans module 
+                            external interfaces as possible and give other developers a chance to decide
+                            whether they want to depend on a particular API or not.
+                            <p/>
+                            Some of these APIs are part of the 
+                            <a href="http://platform.netbeans.org/">NetBeans Platform</a>
+                            (for example lookup,
+                            loaders, utilities, nodes, explorer, window systems, multiview, etc.), some of them
+                            are specific to 
+                            <a href="http://www.netbeans.org/products/ide/index.html">NetBeans IDE</a> 
+                            (projects, javacore, diff, etc.) and some
+                            are not included in the release at all and are just provided for download
+                            (usually via autoupdate). Basically when building an application based on
+                            <em>NetBeans</em> one is free to choose the set of modules and their APIs 
+                            to satisfy one's needs.
+                            <!--<p>
+                                This is a list of APIs for 
+                                <xsl:call-template name="apachenetbeansversion" >
+                                    <xsl:with-param name="maturity">
+                                        <xsl:value-of select="$maturity"/>                
+                                    </xsl:with-param>
+                                    <xsl:with-param name="version">
+                                        <xsl:value-of select="$version"/>                
+                                    </xsl:with-param>
+                                </xsl:call-template>
+                            </p>-->
+                            <p>To get the API of your module listed here, see the documentation for the Javadoc building <a href="http://wiki.netbeans.org/APIDevelopment">infrastructure</a>.</p>
+                        
+                            <p>Can't find what you're looking for? Try the <a href="https://netbeans.apache.org" target="_top">Apache NetBeans website</a>.</p>
+                        </div>
+                        <hr/>
+                        <xsl:call-template name="list-modules" />
+                        <hr/>
+                        <xsl:apply-templates select="/alldata/apis" />
+                    </div>
+                </div>
+                <div class="apidocleft">
+                    <xsl:call-template name="listallmodules" />
+                </div>
+                
+                <xsl:call-template name="htmlfooter" />
+                
+            </body>
+        </html>
+    </xsl:template>
+    <xsl:template name="list-modules">
+        <ul>
+            <xsl:for-each select="/alldata/apis/module" >
+                <xsl:sort select="@name" />
+                <xsl:choose>
+                    <xsl:when test="api" >
+                        <li>
+                            <span>
+                                <xsl:attribute name="style">
+                                    <xsl:choose>
+                                        <xsl:when test="descendant::api[@category='stable' and @group='java']">background:#ffffff</xsl:when>
+                                        <xsl:when test="descendant::api[@category='official' and @group='java']">background:#ffffff</xsl:when>
+                                        <xsl:when test="descendant::api[@category='devel' and @group='java']">background:#ddcc80</xsl:when>
+                                        <xsl:when test="descendant::api[@category='deprecated' and @group='java']">text-decoration: line-through</xsl:when>
+                                        <xsl:otherwise>background:#e0c0c0</xsl:otherwise>
+                                    </xsl:choose>
+                                </xsl:attribute>
+                                <a>
+                                    <xsl:attribute name="href">
+                                        <xsl:value-of select="substring-before(@target,'/')" />/overview-summary.html</xsl:attribute>
+                                    <xsl:value-of select="@name"/>
+                                </a> -
+                                <!-- XXX the following is crap; e.g. messes up descs of Dialogs API, I/O API, ... -->
+                                <!-- Should use e.g.:
+                                <answer id="arch-what">
+                                    <span class="summary">This API does such-and-such.</span>
+                                    It also does some other less important stuff.
+                                </answer>
+                                -->
+                                <xsl:comment>Begin of first sentenece</xsl:comment>
+                                <xsl:apply-templates mode="first-sentence" select="description" />
+                                <xsl:comment>End of first sentenece</xsl:comment>.
+                            </span>
+                        </li>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <!-- will be covered later -->
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:for-each>
+            <xsl:for-each select="/alldata/apis/module" >
+                <xsl:sort select="api" order="descending" />
+                <xsl:sort select="@name" />
+                <xsl:choose>
+                    <xsl:when test="api" >
+                        <!-- covered before -->
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <li>
+                            <xsl:variable name="where" select="substring-before(@target, '/')"/>
+                            <b>
+                                <a href="{$where}/overview-summary.html">
+                                    <xsl:value-of select="$where"/>
+                                </a>
+                            </b>
+                            - no API description provided
+                            (see <a href="http://wiki.netbeans.org/APIDevelopment">how to do it</a>)
+                        </li>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:for-each>
+        </ul>
+    </xsl:template>
+    <xsl:template match="module">
+        <xsl:variable name="interfaces" select="descendant::api[@type='export' and generate-id() = generate-id(key('apiNames', @name))]" />
+        <xsl:variable name="module.name" select="@name" />
+        <xsl:variable name="arch.stylesheet" select="@stylesheet" />
+        <xsl:variable name="arch.overviewlink" select="@overviewlink" />
+        <xsl:variable name="arch.footer" select="@footer" />
+        <xsl:variable name="arch.target" select="@target" />
+
+        <xsl:if test="$interfaces">
+            <div>
+            <xsl:element name="h3">
+                <xsl:attribute name="id">
+                    <xsl:text>def-api-</xsl:text><xsl:value-of select="$module.name"/>
+                </xsl:attribute>
+                <xsl:value-of select="$module.name"/>
+            </xsl:element>            
+            <a>
+                <xsl:attribute name="href">
+                    <xsl:call-template name="filedirapi" >
+                        <xsl:with-param name="arch.target" select="$arch.target" />
+                    </xsl:call-template>
+                    <xsl:text>/overview-summary.html</xsl:text>
+                </xsl:attribute>
+                <xsl:text>javadoc</xsl:text>
+            </a>
+            <xsl:if test="$download = 'true'"> | <a>
+                    <xsl:attribute name="href">
+                        <xsl:call-template name="filedirapi" >
+                            <xsl:with-param name="arch.target" select="$arch.target" />
+                        </xsl:call-template>
+                        <xsl:text>.zip</xsl:text>
+                    </xsl:attribute>
+                    <xsl:text>download</xsl:text>
+                </a>
+            </xsl:if>
+            | <a>
+                <xsl:attribute name="href">
+                    <xsl:value-of select="$arch.target" />
+                </xsl:attribute>
+                <xsl:text>architecture</xsl:text>
+            </a> 
+            <xsl:if test="//module[@name=$module.name]/arch-usecases" >
+                | <a>
+                    <xsl:attribute name="href">
+                        <xsl:text>usecases.html#usecase-</xsl:text>
+                        <xsl:value-of select="$module.name" />
+                    </xsl:attribute>
+                    <xsl:text>usecases</xsl:text>
+                </a>
+            </xsl:if>
+            <p/>
+
+            <div>
+                <xsl:apply-templates select="description"/>
+            </div>
+
+            <xsl:if test="deploy-dependencies">
+                <div>
+                    <p>
+                        <b>Usage:</b>
+                    </p>
+                    <xsl:apply-templates select="deploy-dependencies"/>
+                </div>
+            </xsl:if>
+
+            <p/>
+            <table cellpadding="1" cellspacing="0" border="0" class="tablebg" width="100%">
+                <tr>
+                    <td>
+                        <table border="0" cellpadding="3" cellspacing="1" width="100%">
+                            <!--                    <tr><td COLSPAN="5" class="tablecbg" ALIGN="CENTER"><font CLASS="titlectable">Do not duplicate any files</font></td></tr> -->
+                            <tr class="tablersh">
+                                <td align="CENTER" width="30%">
+                                    <span class="titlectable">Interface Name</span>
+                                </td>
+                                <td align="CENTER" width="15%">
+                                    <span class="titlectable">Stability Classification</span>
+                                </td>
+                                <td align="CENTER" >
+                                    <span class="titlectable">Specified in What Document?</span>
+                                </td>
+                            </tr>
+
+                            <xsl:for-each select="$interfaces">
+                                <xsl:if test="@group='java'" >
+                                    <xsl:call-template name="api" >
+                                        <xsl:with-param name="arch.target" select="$arch.target" />
+                                    </xsl:call-template>
+                                </xsl:if>
+                            </xsl:for-each>
+
+                            <xsl:for-each select="//api[generate-id() = generate-id(key('apiGroups', @group))]">
+                                <xsl:variable name="grp" select="@group" />
+                                <xsl:if test="$grp!='java'" >
+                                    <xsl:variable name="apis" select="/apis" />
+                                    <xsl:variable name="module" select="$apis/module[@name=$module.name]" />
+
+                                    <xsl:variable name="allOfTheGroup" select="$module/api[@group=$grp]" />
+                                    <xsl:if test="$allOfTheGroup">
+                                        <tr class="tabler">
+                                            <td>Set of <xsl:value-of select="$grp"/> APIs</td>
+                                            <td>Individual</td>
+                                            <td>
+                                                <a href="{$arch.target}#group-{$grp}">table with definitions</a>
+                                            </td>
+                                        </tr>
+                                    </xsl:if>
+                                </xsl:if>
+                            </xsl:for-each>
+
+                        </table>
+                    </td>
+                </tr>
+            </table>
+            </div>
+        </xsl:if>
+
+
+
+
+    </xsl:template>
+
+    <xsl:template name="api">
+        <xsl:param name="arch.target" />
+        <xsl:variable name="name" select="@name" />
+        <xsl:variable name="type" select="@type" />
+        <xsl:variable name="category" select="@category" />
+        <xsl:variable name="url" select="@url" />
+        <xsl:variable name="description" select="node()" />
+
+        <tr class="tabler">
+            <td>
+                <a>
+                    <xsl:attribute name="href" >
+                        <xsl:value-of select="$arch.target" />
+                        <xsl:text>#java-</xsl:text>
+                        <xsl:value-of select="$name"/>
+                    </xsl:attribute>
+                    <xsl:value-of select="$name" />
+                </a>
+            </td>
+            <!--
+            <td>
+                <xsl:choose>
+                    <xsl:when test="$type='import'">Imported</xsl:when>
+                    <xsl:when test="$type='export'">Exported</xsl:when>
+                    <xsl:otherwise>WARNING: <xsl:value-of select="$type" /></xsl:otherwise>
+                </xsl:choose>
+            </td> -->
+            <td> <!-- stability category -->
+                <a>
+                    <xsl:attribute name="href">
+                        <xsl:text>http://wiki.netbeans.org/API_Stability#</xsl:text>
+                        <xsl:value-of select="$category" />
+                    </xsl:attribute>
+                    <xsl:choose>
+                        <xsl:when test="$category='official'">Official</xsl:when>
+                        <xsl:when test="$category='stable'">Stable</xsl:when>
+                        <xsl:when test="$category='devel'">Devel</xsl:when>
+                        <xsl:when test="$category='third'">Third_Party</xsl:when>
+                        <xsl:when test="$category='standard'">Standard</xsl:when>
+                        <xsl:when test="$category='friend'">Friend</xsl:when>
+                        <xsl:when test="$category='private'">Private</xsl:when>
+                        <xsl:when test="$category='deprecated'">Deprecated</xsl:when>
+                        <xsl:otherwise>
+                            <xsl:message>
+                                WARNING: <xsl:value-of select="$category"/>
+                            </xsl:message>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </a>  
+            </td>
+
+            <td> <!-- url -->
+                <a href="{$url}">
+                    <xsl:value-of select="$url"/>
+                </a>
+                <xsl:if test="$description" >
+                    <p>
+                        <xsl:apply-templates select="$description" />
+                    </p>
+                </xsl:if>
+            </td>
+        </tr>
+
+    </xsl:template>
+
+    <xsl:template match="api-ref">
+        <!-- simply bold the name, it link will likely be visible bellow -->
+        <b>
+            <xsl:value-of select="@name" />
+        </b>
+    </xsl:template>
+
+    <!-- extracts first part before slash from LoadersAPI/bleble.html -->
+
+    <xsl:template name="filedirapi" >
+        <xsl:param name="arch.target" />
+    
+        <xsl:if test="substring-before($arch.target,'/')">
+            <xsl:value-of select="substring-before($arch.target,'/')" />
+        </xsl:if>
+    </xsl:template>
+
+
+    <!-- Format random HTML elements as is: -->
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
+    </xsl:template>
+
+    <!-- Gets the first sentence with HTML tags -->
+    
+    <xsl:template mode="first-sentence" match="api-ref">
+        <b>
+            <xsl:value-of select="@name" />
+        </b>
+        <xsl:text> </xsl:text>
+    </xsl:template>
+
+    <xsl:template mode="first-sentence" match="node()">
+        <xsl:choose>
+            <xsl:when test="count(child::*) = 0" >
+                <xsl:variable name="first-sentence" select="substring-before(normalize-space(), '. ')" />
+                <xsl:variable name="first-dot" select="substring-before(normalize-space(), '.')" />
+                <xsl:choose>
+                    <xsl:when test="$first-sentence" >
+                        <xsl:value-of select="$first-sentence" />
+                        <!-- this trick starts comment which disables output produces after 
+                        Which means comments out everything after the .
+                        -->
+                        <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
+                    </xsl:when>
+                    <xsl:when test="$first-dot" >
+                        <xsl:value-of select="$first-dot" />
+                        <!-- this trick starts comment which disables output produces after 
+                        Which means comments out everything after the .
+                        -->
+                        <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="." />
+                    </xsl:otherwise>
+                </xsl:choose>
+                <xsl:apply-templates mode="first-sentence" select="child::*"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:apply-templates mode="first-sentence" select="node()"/>
+            </xsl:otherwise>
+        </xsl:choose>
+        
+    </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/nbbuild/javadoctools/export2layer.xsl b/nbbuild/javadoctools/export2layer.xsl
index 6ed39e3..fb7fa35 100644
--- a/nbbuild/javadoctools/export2layer.xsl
+++ b/nbbuild/javadoctools/export2layer.xsl
@@ -20,73 +20,94 @@
 
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:import href="jsonhelp.xsl" />
+    <xsl:import href="export2allmodules.xsl" />
     <xsl:output method="html"/>
     <xsl:param name="date" />
-
+    <xsl:param name="maturity" />
+    <xsl:param name="version" />
+    <xsl:param name="releaseinfo" />
     <xsl:template match="/" >
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
         <html>
-        <head>
-            <!-- projects.netbeans.org -->
-           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-           <title>Description Layer Registration in Apache NetBeans (incubating) APIs</title>
-            <link rel="stylesheet" href="netbeans.css" type="text/css"/>
+            <xsl:call-template name="htmlheader" >
+                <xsl:with-param name="title" >APIs Layer list</xsl:with-param>
+                <xsl:with-param name="maturity" select="$maturity" />
+                <xsl:with-param name="version" select="$version"/> 
+            </xsl:call-template>
 
-          <link REL="icon" href="http://www.netbeans.org/favicon.ico" type="image/ico" />
-          <link REL="shortcut icon" href="http://www.netbeans.org/favicon.ico" />
+            <body>
+                <xsl:call-template name="htmlmainmenu" >
+                    <xsl:with-param name="title" >APIs Layer list</xsl:with-param>
+                    <xsl:with-param name="maturity" select="$maturity" />
+                    <xsl:with-param name="version" select="$version"/> 
+                    <xsl:with-param name="releaseinfo" select="$releaseinfo"/>
+                    <xsl:with-param name="menukey" >layers</xsl:with-param>
+                </xsl:call-template>
+                <div class="apidocmaincontent">
+                    <xsl:call-template name="build-docmenu" >
+                        <xsl:with-param name="menukey" >layers</xsl:with-param>
+                        <xsl:with-param name="date" select="$date"/>
+                    </xsl:call-template>
+                
+                    <div class="innercontent">
+                        <div class="abstract">
+                            <p>
+                                Registration of various objects, files and hints into layer is 
+                                pretty central to the way NetBeans based applications handle 
+                                communication between modules. This page summarizes the list of such
+                                extension points defined by 
+                                <a href="index.html">modules with API</a>.
+                            </p>
+                            <p>
+                                To get your API listed here, use 
+                                <code>&lt;api type='export' group='layer' ... /&gt;</code> in
+                                your module arch.xml document.
+                            </p>
+                        </div>
+                        <hr/>
+                        
 
-        </head>
-
-        <body>
-            <center><h1>Description of Layer Registrations in Apache NetBeans (incubating) APIs</h1></center>
-
-            <p>
-            Registration of various objects, files and hints into layer is 
-            pretty central to the way NetBeans based applications handle 
-            communication between modules. This page summarizes the list of such
-            extension points defined by 
-            <a href="index.html">modules with API</a>. 
-            </p>
-
-            <ul>
-            <xsl:for-each select="//api[@type='export' and @group='layer']" >
-                <li>
-                    <b>
-                        <xsl:choose >
-                            <xsl:when test="@url" >
-                                <a>
-                                    <xsl:attribute name="href">
-                                        <xsl:value-of select="@url"/>
-                                    </xsl:attribute>
-                                    <xsl:value-of select="@name"></xsl:value-of>
-                                </a>
-                            </xsl:when>
-                            <xsl:otherwise>
-                                <xsl:value-of select="@name"></xsl:value-of>
-                            </xsl:otherwise>
-                        </xsl:choose>
-                        <xsl:text> in </xsl:text>
-                        <a>
-                            <xsl:attribute name="href">
-                                <xsl:value-of select="ancestor::module/@target"/>
-                                <xsl:text>#group-layer</xsl:text>
-                            </xsl:attribute>
-                            <xsl:value-of select="ancestor::module/@name"/>
-                        </a>
-                    </b>
-                    <p>
-                    <xsl:apply-templates select="." />
-                    </p>
-                </li>
-            </xsl:for-each>
-            </ul>
-            
-            <p>
-                To get your API listed here, use 
-                <code>&lt;api type='export' group='layer' ... /&gt;</code> in
-                your module arch.xml document.
-            </p>
-         </body>
-         </html>
+                        <ul>
+                            <xsl:for-each select="//api[@type='export' and @group='layer']" >
+                                <li>
+                                    <b>
+                                        <xsl:choose >
+                                            <xsl:when test="@url" >
+                                                <a>
+                                                    <xsl:attribute name="href">
+                                                        <xsl:value-of select="@url"/>
+                                                    </xsl:attribute>
+                                                    <xsl:value-of select="@name"></xsl:value-of>
+                                                </a>
+                                            </xsl:when>
+                                            <xsl:otherwise>
+                                                <xsl:value-of select="@name"></xsl:value-of>
+                                            </xsl:otherwise>
+                                        </xsl:choose>
+                                        <xsl:text> in </xsl:text>
+                                        <a>
+                                            <xsl:attribute name="href">
+                                                <xsl:value-of select="ancestor::module/@target"/>
+                                                <xsl:text>#group-layer</xsl:text>
+                                            </xsl:attribute>
+                                            <xsl:value-of select="ancestor::module/@name"/>
+                                        </a>
+                                    </b>
+                                    <p>
+                                        <xsl:apply-templates select="." />
+                                    </p>
+                                </li>
+                            </xsl:for-each>
+                        </ul>
+                    </div>
+                </div>
+                <div class="apidocleft">
+                    <xsl:call-template name="listallmodules" />
+                </div>
+                <xsl:call-template name="htmlfooter" />
+            </body>
+        </html>
     </xsl:template>
     
     <xsl:template match="api-ref">
@@ -97,7 +118,9 @@
     </xsl:template>
 
     <xsl:template match="usecase">
-        <h4><xsl:value-of select="@name" /></h4>
+        <h4>
+            <xsl:value-of select="@name" />
+        </h4>
         <xsl:apply-templates select="./node()" />
     </xsl:template>
 
@@ -105,11 +128,11 @@
         <xsl:variable name="target" select="ancestor::module/@target"/>
         <xsl:variable name="top" select="substring-before($target,'/')" />
         
-          <xsl:call-template name="print-url" >
+        <xsl:call-template name="print-url" >
             <xsl:with-param name="url" select="@href" />
             <xsl:with-param name="base" select="$target" />
             <xsl:with-param name="top" select="$top" />
-          </xsl:call-template>
+        </xsl:call-template>
     </xsl:template>
     
     <xsl:template name="print-url" >
@@ -152,7 +175,7 @@
             </xsl:when>
             <xsl:otherwise>
                 <xsl:comment>This must be a reference relative to the arch page, if not see nbbuild/javadoctools/export2usecases.xsl
-            </xsl:comment>
+                </xsl:comment>
                 <a>
                     <xsl:attribute name="href">
                         <xsl:value-of select="$base" />
@@ -166,9 +189,9 @@
     </xsl:template>
             
     <xsl:template match="@*|node()">
-       <xsl:copy  >
-          <xsl:apply-templates select="@*|node()"/>
-       </xsl:copy>
+        <xsl:copy  >
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
     </xsl:template>
         
 </xsl:stylesheet>
diff --git a/nbbuild/javadoctools/export2property.xsl b/nbbuild/javadoctools/export2property.xsl
index 2ffb601..9c4dcc5 100644
--- a/nbbuild/javadoctools/export2property.xsl
+++ b/nbbuild/javadoctools/export2property.xsl
@@ -20,73 +20,99 @@
 
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:import href="jsonhelp.xsl" />
+    <xsl:import href="export2allmodules.xsl" />
     <xsl:output method="html"/>
     <xsl:param name="date" />
-
+    <xsl:param name="maturity" />
+    <xsl:param name="version" />
+    <xsl:param name="releaseinfo" />
+    
     <xsl:template match="/" >
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
         <html>
-        <head>
+          
             <!-- projects.netbeans.org -->
-           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-           <title>Description Layer Registration in Apache NetBeans (incubating) APIs</title>
-            <link rel="stylesheet" href="netbeans.css" type="text/css"/>
+           
+            <xsl:call-template name="htmlheader" >
+                <xsl:with-param name="title" >APIs Properties list</xsl:with-param>
+                <xsl:with-param name="maturity" select="$maturity" />
+                <xsl:with-param name="version" select="$version"/>
+            </xsl:call-template>
+            <body>
+                <xsl:call-template name="htmlmainmenu" >
+                    <xsl:with-param name="title" >APIs Properties List</xsl:with-param>
+                    <xsl:with-param name="maturity" select="$maturity" />
+                    <xsl:with-param name="version" select="$version"/> 
+                    <xsl:with-param name="releaseinfo" select="$releaseinfo"/>
+                    <xsl:with-param name="menukey" >properties</xsl:with-param>
+                </xsl:call-template>
+    
+                <div class="apidocmaincontent">
+                    <xsl:call-template name="build-docmenu" >
+                        <xsl:with-param name="menukey" >properties</xsl:with-param>
+                        <xsl:with-param name="date" select="$date"/>
+                    </xsl:call-template>
+                
+                    <div class="innercontent">
+                        <div class="abstract">
+                            <p>
+                                System properties can influence the behaviour of the running IDE in various
+                                ways. The most convenient place to specify them is in etc/netbeans.conf file.
+                                This page summarizes the list of such
+                                extension points defined by 
+                                <a href="index.html">modules with API</a>.
+                            </p>
+                            <p>
+                                To get your API listed here, use 
+                                <code>&lt;api type='export' group='systemproperty' ... /&gt;</code> in
+                                your module arch.xml document.
+                            </p>
+                        </div>
+                        <hr/>
 
-          <link REL="icon" href="http://www.netbeans.org/favicon.ico" type="image/ico" />
-          <link REL="shortcut icon" href="http://www.netbeans.org/favicon.ico" />
-
-        </head>
-
-        <body>
-            <center><h1>Description of Property APIs in Apache NetBeans (incubating) APIs</h1></center>
-
-            <p>
-            System properties can influence the behaviour of the running IDE in various
-            ways. The most convenient place to specify them is in etc/netbeans.conf file.
-            This page summarizes the list of such
-            extension points defined by 
-            <a href="index.html">modules with API</a>. 
-            </p>
-
-            <ul>
-            <xsl:for-each select="//api[@type='export' and @group='systemproperty']" >
-                <li>
-                    <b>
-                        <xsl:choose >
-                            <xsl:when test="@url" >
-                                <a>
-                                    <xsl:attribute name="href">
-                                        <xsl:value-of select="@url"/>
-                                    </xsl:attribute>
-                                    <xsl:value-of select="@name"></xsl:value-of>
-                                </a>
-                            </xsl:when>
-                            <xsl:otherwise>
-                                <xsl:value-of select="@name"></xsl:value-of>
-                            </xsl:otherwise>
-                        </xsl:choose>
-                        <xsl:text> in </xsl:text>
-                        <a>
-                            <xsl:attribute name="href">
-                                <xsl:value-of select="ancestor::module/@target"/>
-                                <xsl:text>#group-systemproperty</xsl:text>
-                            </xsl:attribute>
-                            <xsl:value-of select="ancestor::module/@name"/>
-                        </a>
-                    </b>
-                    <p>
-                    <xsl:apply-templates select="." />
-                    </p>
-                </li>
-            </xsl:for-each>
-            </ul>
+                        <ul>
+                            <xsl:for-each select="//api[@type='export' and @group='systemproperty']" >
+                                <li>
+                                    <b>
+                                        <xsl:choose >
+                                            <xsl:when test="@url" >
+                                                <a>
+                                                    <xsl:attribute name="href">
+                                                        <xsl:value-of select="@url"/>
+                                                    </xsl:attribute>
+                                                    <xsl:value-of select="@name"></xsl:value-of>
+                                                </a>
+                                            </xsl:when>
+                                            <xsl:otherwise>
+                                                <xsl:value-of select="@name"></xsl:value-of>
+                                            </xsl:otherwise>
+                                        </xsl:choose>
+                                        <xsl:text> in </xsl:text>
+                                        <a>
+                                            <xsl:attribute name="href">
+                                                <xsl:value-of select="ancestor::module/@target"/>
+                                                <xsl:text>#group-systemproperty</xsl:text>
+                                            </xsl:attribute>
+                                            <xsl:value-of select="ancestor::module/@name"/>
+                                        </a>
+                                    </b>
+                                    <p>
+                                        <xsl:apply-templates select="." />
+                                    </p>
+                                </li>
+                            </xsl:for-each>
+                        </ul>
             
-            <p>
-                To get your API listed here, use 
-                <code>&lt;api type='export' group='systemproperty' ... /&gt;</code> in
-                your module arch.xml document.
-            </p>
-         </body>
-         </html>
+                        
+                    </div>
+                </div>
+                <div class="apidocleft">
+                    <xsl:call-template name="listallmodules" />
+                </div>
+                <xsl:call-template name="htmlfooter" />
+            </body>
+        </html>
     </xsl:template>
     
     <xsl:template match="api-ref">
@@ -97,7 +123,9 @@
     </xsl:template>
 
     <xsl:template match="usecase">
-        <h4><xsl:value-of select="@name" /></h4>
+        <h4>
+            <xsl:value-of select="@name" />
+        </h4>
         <xsl:apply-templates select="./node()" />
     </xsl:template>
 
@@ -105,11 +133,11 @@
         <xsl:variable name="target" select="ancestor::module/@target"/>
         <xsl:variable name="top" select="substring-before($target,'/')" />
         
-          <xsl:call-template name="print-url" >
+        <xsl:call-template name="print-url" >
             <xsl:with-param name="url" select="@href" />
             <xsl:with-param name="base" select="$target" />
             <xsl:with-param name="top" select="$top" />
-          </xsl:call-template>
+        </xsl:call-template>
     </xsl:template>
     
     <xsl:template name="print-url" >
@@ -152,7 +180,7 @@
             </xsl:when>
             <xsl:otherwise>
                 <xsl:comment>This must be a reference relative to the arch page, if not see nbbuild/javadoctools/export2usecases.xsl
-            </xsl:comment>
+                </xsl:comment>
                 <a>
                     <xsl:attribute name="href">
                         <xsl:value-of select="$base" />
@@ -166,9 +194,9 @@
     </xsl:template>
             
     <xsl:template match="@*|node()">
-       <xsl:copy  >
-          <xsl:apply-templates select="@*|node()"/>
-       </xsl:copy>
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
     </xsl:template>
         
 </xsl:stylesheet>
diff --git a/nbbuild/javadoctools/export2usecases.xsl b/nbbuild/javadoctools/export2usecases.xsl
index 2a43ee1..67cf2cd 100644
--- a/nbbuild/javadoctools/export2usecases.xsl
+++ b/nbbuild/javadoctools/export2usecases.xsl
@@ -20,52 +20,73 @@
 
 -->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:import href="jsonhelp.xsl" />  
+    <xsl:import href="export2allmodules.xsl" />  
     <xsl:output method="html"/>
     <xsl:param name="date" />
-
+    <xsl:param name="maturity" />
+    <xsl:param name="version" />
+    <xsl:param name="releaseinfo" />
     <xsl:template match="/" >
+        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
         <html>
-        <head>
-            <!-- projects.netbeans.org -->
-           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-           <title>How to use certain Apache NetBeans (incubating) APIs</title>
-            <link rel="stylesheet" href="netbeans.css" type="text/css"/>
+            <xsl:call-template name="htmlheader" >
+                <xsl:with-param name="title" >APIs Usecases list</xsl:with-param>
+                <xsl:with-param name="maturity" select="$maturity" />
+                <xsl:with-param name="version" select="$version"/>
+            </xsl:call-template>
 
-          <link REL="icon" href="http://www.netbeans.org/favicon.ico" type="image/ico" />
-          <link REL="shortcut icon" href="http://www.netbeans.org/favicon.ico" />
+            <body>
+                <xsl:call-template name="htmlmainmenu" >
+                    <xsl:with-param name="title" >APIs Usecases list</xsl:with-param>
+                    <xsl:with-param name="maturity" select="$maturity" />
+                    <xsl:with-param name="version" select="$version"/> 
+                    <xsl:with-param name="releaseinfo" select="$releaseinfo"/>
+                    <xsl:with-param name="menukey" >usecases</xsl:with-param>
+                </xsl:call-template>
+                <div class="apidocmaincontent">
+                    <xsl:call-template name="build-docmenu" >
+                        <xsl:with-param name="menukey" >usecases</xsl:with-param>
+                        <xsl:with-param name="date" select="$date"/>
+                    </xsl:call-template>
+                
+                    <div class="innercontent">
+                        <div class="abstract">
+                            This page contains extracted usecases for some of the NetBeans modules
+                            that <a href="index.html">offer an API</a>. 
+                        </div>
 
-        </head>
-
-        <body>
-            <center><h1>How to use certain Apache NetBeans (incubating) APIs</h1></center>
-
-            This page contains extracted usecases for some of the NetBeans modules
-            that <a href="overview-summary.html">offer an API</a>. 
-
-
-            <xsl:for-each select="//module/arch-usecases[not(../@name='_no module_') and not(.='No answer')]" >
-                <hr/>
-                <h2><a>
-                        <xsl:attribute name="name">
-                            <xsl:text>usecase-</xsl:text>
-                            <xsl:value-of select="../@name"/>
-                        </xsl:attribute>
-                        <xsl:text>How to use </xsl:text>
-                    </a>
-                    <a>
-                        <xsl:attribute name="href" >
-                            <xsl:text>overview-summary.html#def-api-</xsl:text>
-                            <xsl:value-of select="../@name"/>
-                        </xsl:attribute>
-                        <xsl:value-of select="../@name"/>
-                    </a>?
-                </h2>
-                <xsl:apply-templates select="../description" />
-                <p/>
-                <xsl:apply-templates />
-            </xsl:for-each>
-         </body>
-         </html>
+                        <xsl:for-each select="//module/arch-usecases[not(../@name='_no module_') and not(.='No answer')]" >
+                            <hr/>
+                            <h2>
+                                <a>
+                                    <xsl:attribute name="id">
+                                        <xsl:text>usecase-</xsl:text>
+                                        <xsl:value-of select="../@name"/>
+                                    </xsl:attribute>
+                                    <xsl:text>How to use </xsl:text>
+                                </a>
+                                <a>
+                                    <xsl:attribute name="href" >
+                                        <xsl:text>index.html#def-api-</xsl:text>
+                                        <xsl:value-of select="../@name"/>
+                                    </xsl:attribute>
+                                    <xsl:value-of select="../@name"/>
+                                ?</a>
+                            </h2>
+                            <xsl:apply-templates select="../description" />
+                            <p/>
+                            <xsl:apply-templates />
+                        </xsl:for-each>
+                    </div>
+                
+                </div>
+                <div class="apidocleft">
+                    <xsl:call-template name="listallmodules" />
+                </div>
+                <xsl:call-template name="htmlfooter" />
+            </body>
+        </html>
     </xsl:template>
     
     <xsl:template match="api-ref">
@@ -85,13 +106,13 @@
         <xsl:variable name="target" select="ancestor::module/@target"/>
         <xsl:variable name="top" select="substring-before($target,'/')" />
         
-          <xsl:call-template name="print-url" >
-            <xsl:with-param name="url" select="@href" />
-            <xsl:with-param name="base" select="$target" />
-            <xsl:with-param name="top" select="$top" />
-          </xsl:call-template>
-    </xsl:template>
--->    
+              <xsl:call-template name="print-url" >
+                <xsl:with-param name="url" select="@href" />
+                <xsl:with-param name="base" select="$target" />
+                <xsl:with-param name="top" select="$top" />
+              </xsl:call-template>
+        </xsl:template>
+    -->    
     <xsl:template name="print-url" >
         <xsl:param name="url" />
         <xsl:param name="base" />
@@ -139,9 +160,9 @@
     </xsl:template>
             
     <xsl:template match="@*|node()">
-       <xsl:copy  >
-          <xsl:apply-templates select="@*|node()"/>
-       </xsl:copy>
+        <xsl:copy  >
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
     </xsl:template>
         
 </xsl:stylesheet>
diff --git a/nbbuild/javadoctools/jsonhelp.xsl b/nbbuild/javadoctools/jsonhelp.xsl
new file mode 100644
index 0000000..3b71e20
--- /dev/null
+++ b/nbbuild/javadoctools/jsonhelp.xsl
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+
+<!--
+This DOCTYPE assumes that the pseudo-DTD given at the end of the
+XSLT specification is present in the named location. It cannot be
+committed to the repository for legal reasons. You need to download it:
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % result-elements "
+| a | abbr | acronym | address | area
+| b | base | bdo | big | blockquote
+| body | br | button | caption | cite
+| code | col | colgroup | dd | del
+| dfn | div | dl | dt | em
+| fieldset | form | h1 | h2 | h3
+| h4 | h5 | h6 | head | hr
+| html | i | img | input | ins
+| kbd | label | legend | li | link
+| map | meta | noscript | object | ol
+| optgroup | option | p | param | pre
+| q | samp | script | select | small
+| span | strong | style | sub | sup
+| table | tbody | td | textarea | tfoot
+| th | thead | title | tr | tt
+| ul | var
+">
+<!ENTITY % xsl-struct SYSTEM "xsl.dtd">
+%xsl-struct;
+]>
+-->
+
+<!-- TODO:
+- in details of a change, list all branches it applies to
+- create separate lists for all changes between one branch and the next
+- clearly mark incompatible bits in details of a change, besides text contents
+- warn about any changes made after a certain date which incl. additions but
+  have no associated API version
+- ability to display authors in pretty format
+- kill $api-list and select from /apichanges/apidefs/apidef instead to get an
+  API list (but the hack is still needed for index by affected class)
+- whenever <hN> tags are used as part of a changelist template, the proper
+  header level should be computed based on the surrounding context
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+    <xsl:template name="apachenetbeanstext">
+        <xsl:param name="maturity" />
+        <xsl:choose>    
+            <xsl:when test="$maturity = 'false'">
+                <xsl:text>Apache NetBeans (incubating) </xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:text>Apache NetBeans </xsl:text>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    <xsl:template name="apachenetbeansversion">
+        <xsl:param name="maturity" />
+        <xsl:param name="version" />
+        
+        <xsl:choose>    
+            <xsl:when test="$version = '-'">
+                <xsl:text>Current Development Version</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:choose>    
+                    <xsl:when test="$maturity = 'false'">
+                        <xsl:text>Apache NetBeans (incubating) </xsl:text>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:text>Apache NetBeans </xsl:text>
+                    </xsl:otherwise>
+                </xsl:choose>
+                <xsl:value-of select="$version"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    <xsl:template name="build-docmenu">
+        <xsl:param name="menukey" />
+        <xsl:param name="date" />
+        <div class="toc">
+            <span class="apidocdate">Apidoc release date: <xsl:value-of select="$date" /></span>
+            <ul class="sectlevel1" data-responsive-menu="drilldown medium-dropdown">
+                <li>
+                    <xsl:choose>    
+                        <xsl:when test="$menukey = 'index'">
+                            Documentation Overview
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <a href="index.html">Documentation Overview</a>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </li>
+                <li>
+                    <xsl:choose>    
+                        <xsl:when test="$menukey = 'apichanges'">
+                            Changes since previous release
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <a href="apichanges.html">Changes since previous release</a>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </li>
+                <li>
+                    <xsl:choose>    
+                        <xsl:when test="$menukey = 'usecases'">
+                            How to use certain APIs
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <a href="usecases.html">How to use certain APIs</a>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </li>
+                <!--
+                <li> 
+                    <a href="allclasses-frame.html">Index of all classes</a>
+                </li>
+                -->
+                <li> 
+                    <xsl:choose>    
+                        <xsl:when test="$menukey = 'layers'">
+                            Extracted List of Layer APIs
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <a href="layers.html">Extracted List of Layer APIs</a>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </li>
+                <li> 
+                    <xsl:choose>    
+                        <xsl:when test="$menukey = 'properties'">
+                            Extracted List of Property APIs
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <a href="properties.html">Extracted List of Property APIs</a>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </li>
+                <li> 
+                    <xsl:choose>    
+                        <xsl:when test="$menukey = 'branding'">
+                            Extracted List of Branding APIs
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <a href="branding.html">Extracted List of Branding APIs</a>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </li>
+            </ul>
+        </div>
+    </xsl:template>
+    <xsl:template name="htmlfooter">
+        <script>
+            $('.modulesclasslist').hide();
+            
+            $('span.modules').click(function (event) {
+                $(this).next().next().toggle();
+            });
+            function searchFunction() {
+            var input;
+            var searched;
+            // get information from seerch input
+            input = document.getElementById('searchinput');
+            searched = input.value.toUpperCase();
+            if (searched!="") {
+            // looking for something
+               $( ".modulesclasslist" ).each(function() {
+                    $(this).parent().hide();
+                    var found = false;
+                    $(this).children().each(function () {
+                        $(this).hide();
+                        if ($(this).text().toUpperCase().indexOf(searched)>-1) {
+                            found=true;
+                            $(this).show();
+                        }
+                    });
+                    if (found) {
+                        $(this).show();
+                        $(this).parent().show();
+                    }
+            
+            });
+            
+           
+            }
+            else {
+            // make page show only modules
+            $( ".modulesclasslist" ).children().each(function () {
+            $(this).parent().hide();
+            $(this).parent().parent().show();
+            });
+            }
+            }
+        </script>
+    </xsl:template>
+    <xsl:template name="htmlheader">
+        <xsl:param name="title" />
+        <xsl:param name="maturity" />
+        <xsl:param name="version" />
+        <head>
+            <xsl:element name="title">
+                <xsl:call-template name="apachenetbeansversion" >
+                    <xsl:with-param name="maturity">
+                        <xsl:value-of select="$maturity"/>
+                    </xsl:with-param> 
+                    <xsl:with-param name="version">
+                        <xsl:value-of select="$version"/>
+                    </xsl:with-param>
+                </xsl:call-template> Documentation | <xsl:value-of select="$title" />
+            </xsl:element>
+            <link rel="stylesheet" href="netbeans.css" type="text/css"/>
+            <link type="application/atom+xml" rel="alternate" href="apichanges.atom"/>
+            <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
+            <meta name="msapplication-TileColor" content="#ffc40d" />
+            <meta name="theme-color" content="#ffffff"/>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+            <link rel="icon" type="image/png" sizes="32x32" href="//netbeans.apache.org/favicon-32x32.png" />
+            <link rel="icon" type="image/png" sizes="16x16" href="//netbeans.apache.org/favicon-16x16.png" />
+            <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
+        </head>
+    </xsl:template>
+    <xsl:template name="htmlmainmenu">
+        <xsl:param name="title" />
+        <xsl:param name="maturity" />
+        <xsl:param name="version" />
+        <xsl:param name="releaseinfo" />
+        <xsl:param name="menukey" />
+        <div class="top-bar" id="responsive-menu">
+            <div class='top-bar-left'>
+                <a class='title' href="/">
+                    <img src='apache-netbeans.svg' style='padding: 8px; height: 48px;' />
+                    <xsl:call-template name="apachenetbeansversion" >
+                        <xsl:with-param name="maturity">
+                            <xsl:value-of select="$maturity"/>
+                        </xsl:with-param> 
+                        <xsl:with-param name="version">
+                            <xsl:value-of select="$version"/>
+                        </xsl:with-param>
+                    </xsl:call-template> Documentation | <xsl:value-of select="$title" />
+                </a>
+            </div>
+            <div class='top-bar-right scroll'>
+                <xsl:variable name="currentversion" select="document($releaseinfo)/*/@position"/>
+                <xsl:for-each select="document($releaseinfo)//release">
+                    <xsl:sort data-type="number" select="@position" order="descending" />
+                    <xsl:choose>
+                        <xsl:when test="$currentversion = @position">
+                            <span>
+                                <xsl:value-of select="@version"/>
+                            </span>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:element name="a">
+                                <xsl:attribute name="class">apacheversion</xsl:attribute>
+                                <xsl:attribute name="href">
+                                    <xsl:value-of select="@apidocurl"/><xsl:text>/</xsl:text><xsl:value-of select="$menukey"/><xsl:text>.html</xsl:text></xsl:attribute>
+                                <xsl:value-of select="@version"/>
+                            </xsl:element>                 
+                        </xsl:otherwise>
+                    </xsl:choose>
+                    
+                </xsl:for-each>
+                <xsl:element name="a">
+                    <xsl:attribute name="href">
+                        <xsl:text>http://bits.netbeans.org/</xsl:text>
+                    </xsl:attribute>
+                    8.2 and previous
+                </xsl:element>           
+            </div>
+        </div>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/nbbuild/javadoctools/netbeans.css b/nbbuild/javadoctools/netbeans.css
index e9028f5..544b325 100644
--- a/nbbuild/javadoctools/netbeans.css
+++ b/nbbuild/javadoctools/netbeans.css
@@ -16,664 +16,98 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/*
-==========================================================
-CSS for NetBeans web site
-Reeport problems to marek.vinar@sun.com
-==========================================================
+pre,code{font-family:Consolas,Menlo,Monaco,"IBM Plex Mono","Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif}@media print, screen and (min-width: 40em){.reveal,.reveal.tiny,.reveal.small,.reveal.large{right:auto;left:auto;margin:0 auto}}/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}main{display:block}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}input{overflow:visible}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{box-sizing:border-box;display:table;max-width:100%;padding:0;color:inherit;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}menu{display:block}canvas{display:inline-block}template{display:none}[hidden]{display:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{box-sizing:border-box;font-size:16px}*,*::before,*::after{box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{box-sizing:border-box;width:100%;border-radius:0}.map_canvas img,.map_canvas embed,.map_canvas object,.mqa-display img,.mqa-display embed,.mqa-display object{max-width:none !important}button{padding:0;appearance:none;border:0;border-radius:0;background:transparent;line-height:1;cursor:auto}[data-whatinput='mouse'] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block !important}.is-hidden{display:none !important}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:62.5rem;margin:0 auto}@media print, screen and (min-width: 40em){.grid-container{padding-right:.938rem;padding-left:.938rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin:0 auto}@media print, screen and (min-width: 40em){.grid-container.fluid{padding-right:.938rem;padding-left:.938rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin:0 auto}.grid-x{display:flex;flex-flow:row wrap}.cell{flex:0 0 auto;min-height:0px;min-width:0px;width:100%}.cell.auto{flex:1 1 0px}.cell.shrink{flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-shrink,.grid-x>.small-full,.grid-x>.small-1,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12{flex-basis:auto}@media print, screen and (min-width: 40em){.grid-x>.medium-shrink,.grid-x>.medium-full,.grid-x>.medium-1,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12{flex-basis:auto}}@media print, screen and (min-width: 64em){.grid-x>.large-shrink,.grid-x>.large-full,.grid-x>.large-1,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12{flex-basis:auto}}.grid-x>.small-1{width:8.333%}.grid-x>.small-2{width:16.667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.333%}.grid-x>.small-5{width:41.667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.333%}.grid-x>.small-8{width:66.667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.333%}.grid-x>.small-11{width:91.667%}.grid-x>.small-12{width:100%}@media print, screen and (min-width: 40em){.grid-x>.medium-auto{flex:1 1 0px;width:auto}.grid-x>.medium-shrink{flex:0 0 auto;width:auto}.grid-x>.medium-1{width:8.333%}.grid-x>.medium-2{width:16.667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.333%}.grid-x>.medium-5{width:41.667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.333%}.grid-x>.medium-8{width:66.667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.333%}.grid-x>.medium-11{width:91.667%}.grid-x>.medium-12{width:100%}}@media print, screen and (min-width: 64em){.grid-x>.large-auto{flex:1 1 0px;width:auto}.grid-x>.large-shrink{flex:0 0 auto;width:auto}.grid-x>.large-1{width:8.333%}.grid-x>.large-2{width:16.667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.333%}.grid-x>.large-5{width:41.667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.333%}.grid-x>.large-8{width:66.667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.333%}.grid-x>.large-11{width:91.667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print, screen and (min-width: 40em){.grid-margin-x{margin-left:-.938rem;margin-right:-.938rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print, screen and (min-width: 40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.938rem;margin-right:.938rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print, screen and (min-width: 40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print, screen and (min-width: 40em){.grid-padding-x .grid-padding-x{margin-right:-.938rem;margin-left:-.938rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print, screen and (min-width: 40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.938rem;margin-left:-.938rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print, screen and (min-width: 40em){.grid-padding-x>.cell{padding-right:.938rem;padding-left:.938rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.667%}.small-up-7>.cell{width:14.286%}.small-up-8>.cell{width:12.5%}@media print, screen and (min-width: 40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.667%}.medium-up-7>.cell{width:14.286%}.medium-up-8>.cell{width:12.5%}}@media print, screen and (min-width: 64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.667%}.large-up-7>.cell{width:14.286%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.286% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print, screen and (min-width: 40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.286% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.286% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.286% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.333%}.small-margin-collapse>.small-2{width:16.667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.333%}.small-margin-collapse>.small-5{width:41.667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.333%}.small-margin-collapse>.small-8{width:66.667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.333%}.small-margin-collapse>.small-11{width:91.667%}.small-margin-collapse>.small-12{width:100%}@media print, screen and (min-width: 40em){.small-margin-collapse>.medium-1{width:8.333%}.small-margin-collapse>.medium-2{width:16.667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.333%}.small-margin-collapse>.medium-5{width:41.667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.333%}.small-margin-collapse>.medium-8{width:66.667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.333%}.small-margin-collapse>.medium-11{width:91.667%}.small-margin-collapse>.medium-12{width:100%}}@media print, screen and (min-width: 64em){.small-margin-collapse>.large-1{width:8.333%}.small-margin-collapse>.large-2{width:16.667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.333%}.small-margin-collapse>.large-5{width:41.667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.333%}.small-margin-collapse>.large-8{width:66.667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.333%}.small-margin-collapse>.large-11{width:91.667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print, screen and (min-width: 40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print, screen and (min-width: 40em){.medium-margin-collapse>.small-1{width:8.333%}.medium-margin-collapse>.small-2{width:16.667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.333%}.medium-margin-collapse>.small-5{width:41.667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.333%}.medium-margin-collapse>.small-8{width:66.667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.333%}.medium-margin-collapse>.small-11{width:91.667%}.medium-margin-collapse>.small-12{width:100%}}@media print, screen and (min-width: 40em){.medium-margin-collapse>.medium-1{width:8.333%}.medium-margin-collapse>.medium-2{width:16.667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.333%}.medium-margin-collapse>.medium-5{width:41.667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.333%}.medium-margin-collapse>.medium-8{width:66.667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.333%}.medium-margin-collapse>.medium-11{width:91.667%}.medium-margin-collapse>.medium-12{width:100%}}@media print, screen and (min-width: 64em){.medium-margin-collapse>.large-1{width:8.333%}.medium-margin-collapse>.large-2{width:16.667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.333%}.medium-margin-collapse>.large-5{width:41.667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.333%}.medium-margin-collapse>.large-8{width:66.667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.333%}.medium-margin-collapse>.large-11{width:91.667%}.medium-margin-collapse>.large-12{width:100%}}@media print, screen and (min-width: 40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print, screen and (min-width: 64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print, screen and (min-width: 64em){.large-margin-collapse>.small-1{width:8.333%}.large-margin-collapse>.small-2{width:16.667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.333%}.large-margin-collapse>.small-5{width:41.667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.333%}.large-margin-collapse>.small-8{width:66.667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.333%}.large-margin-collapse>.small-11{width:91.667%}.large-margin-collapse>.small-12{width:100%}}@media print, screen and (min-width: 64em){.large-margin-collapse>.medium-1{width:8.333%}.large-margin-collapse>.medium-2{width:16.667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.333%}.large-margin-collapse>.medium-5{width:41.667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.333%}.large-margin-collapse>.medium-8{width:66.667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.333%}.large-margin-collapse>.medium-11{width:91.667%}.large-margin-collapse>.medium-12{width:100%}}@media print, screen and (min-width: 64em){.large-margin-collapse>.large-1{width:8.333%}.large-margin-collapse>.large-2{width:16.667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.333%}.large-margin-collapse>.large-5{width:41.667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.333%}.large-margin-collapse>.large-8{width:66.667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.333%}.large-margin-collapse>.large-11{width:91.667%}.large-margin-collapse>.large-12{width:100%}}@media print, screen and (min-width: 64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0%}.grid-margin-x>.small-offset-0{margin-left:calc(0% + .625rem)}.small-offset-1{margin-left:8.333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.333% + .625rem)}.small-offset-2{margin-left:16.667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.667% + .625rem)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + .625rem)}.small-offset-4{margin-left:33.333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.333% + .625rem)}.small-offset-5{margin-left:41.667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.667% + .625rem)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + .625rem)}.small-offset-7{margin-left:58.333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.333% + .625rem)}.small-offset-8{margin-left:66.667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.667% + .625rem)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + .625rem)}.small-offset-10{margin-left:83.333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.333% + .625rem)}.small-offset-11{margin-left:91.667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.667% + .625rem)}@media print, screen and (min-width: 40em){.medium-offset-0{margin-left:0%}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + .938rem)}.medium-offset-1{margin-left:8.333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.333% + .938rem)}.medium-offset-2{margin-left:16.667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.667% + .938rem)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + .938rem)}.medium-offset-4{margin-left:33.333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.333% + .938rem)}.medium-offset-5{margin-left:41.667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.667% + .938rem)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + .938rem)}.medium-offset-7{margin-left:58.333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.333% + .938rem)}.medium-offset-8{margin-left:66.667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.667% + .938rem)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + .938rem)}.medium-offset-10{margin-left:83.333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.333% + .938rem)}.medium-offset-11{margin-left:91.667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.667% + .938rem)}}@media print, screen and (min-width: 64em){.large-offset-0{margin-left:0%}.grid-margin-x>.large-offset-0{margin-left:calc(0% + .938rem)}.large-offset-1{margin-left:8.333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.333% + .938rem)}.large-offset-2{margin-left:16.667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.667% + .938rem)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + .938rem)}.large-offset-4{margin-left:33.333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.333% + .938rem)}.large-offset-5{margin-left:41.667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.667% + .938rem)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + .938rem)}.large-offset-7{margin-left:58.333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.333% + .938rem)}.large-offset-8{margin-left:66.667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.667% + .938rem)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + .938rem)}.large-offset-10{margin-left:83.333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.333% + .938rem)}.large-offset-11{margin-left:91.667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.667% + .938rem)}}.grid-y{display:flex;flex-flow:column nowrap}.grid-y>.cell{width:auto}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-shrink,.grid-y>.small-full,.grid-y>.small-1,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12{flex-basis:auto}@media print, screen and (min-width: 40em){.grid-y>.medium-shrink,.grid-y>.medium-full,.grid-y>.medium-1,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12{flex-basis:auto}}@media print, screen and (min-width: 64em){.grid-y>.large-shrink,.grid-y>.large-full,.grid-y>.large-1,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12{flex-basis:auto}}.grid-y>.small-1{height:8.333%}.grid-y>.small-2{height:16.667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.333%}.grid-y>.small-5{height:41.667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.333%}.grid-y>.small-8{height:66.667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.333%}.grid-y>.small-11{height:91.667%}.grid-y>.small-12{height:100%}@media print, screen and (min-width: 40em){.grid-y>.medium-auto{flex:1 1 0px;height:auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.333%}.grid-y>.medium-2{height:16.667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.333%}.grid-y>.medium-5{height:41.667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.333%}.grid-y>.medium-8{height:66.667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.333%}.grid-y>.medium-11{height:91.667%}.grid-y>.medium-12{height:100%}}@media print, screen and (min-width: 64em){.grid-y>.large-auto{flex:1 1 0px;height:auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.333%}.grid-y>.large-2{height:16.667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.333%}.grid-y>.large-5{height:41.667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.333%}.grid-y>.large-8{height:66.667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.333%}.grid-y>.large-11{height:91.667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print, screen and (min-width: 40em){.grid-padding-y .grid-padding-y{margin-top:-.938rem;margin-bottom:-.938rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print, screen and (min-width: 40em){.grid-padding-y>.cell{padding-top:.938rem;padding-bottom:.938rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print, screen and (min-width: 40em){.grid-margin-y{margin-top:-.938rem;margin-bottom:-.938rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print, screen and (min-width: 40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.938rem;margin-bottom:.938rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print, screen and (min-width: 40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;flex-wrap:nowrap;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.cell-block-container{display:flex;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;flex-wrap:nowrap}@media print, screen and (min-width: 40em){.medium-grid-frame{overflow:hidden;position:relative;flex-wrap:nowrap;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.medium-cell-block-container{display:flex;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}}@media print, screen and (min-width: 64em){.large-grid-frame{overflow:hidden;position:relative;flex-wrap:nowrap;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.large-cell-block-container{display:flex;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;overflow:hidden;position:relative;flex-wrap:nowrap;align-items:stretch;height:100vh}@media print, screen and (min-width: 40em){.grid-y.medium-grid-frame{width:auto;overflow:hidden;position:relative;flex-wrap:nowrap;align-items:stretch;height:100vh}}@media print, screen and (min-width: 64em){.grid-y.large-grid-frame{width:auto;overflow:hidden;position:relative;flex-wrap:nowrap;align-items:stretch;height:100vh}}.cell .grid-y.grid-frame{height:100%}@media print, screen and (min-width: 40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print, screen and (min-width: 64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print, screen and (min-width: 40em){.grid-margin-y{margin-top:-.938rem;margin-bottom:-.938rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print, screen and (min-width: 40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.938rem;margin-bottom:.938rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print, screen and (min-width: 40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print, screen and (min-width: 40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print, screen and (min-width: 64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print, screen and (min-width: 40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:bold;line-height:inherit}small{font-size:80%;line-height:inherit}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:normal;color:inherit;text-rendering:optimizeLegibility}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small{line-height:0;color:#cacaca}h1,.h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h2,.h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h3,.h3{font-size:1.188rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h4,.h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h5,.h5{font-size:1.062rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}h6,.h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}pre,.pre{font-size:.75rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}code,.code{font-size:.75rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print, screen and (min-width: 40em){h1,.h1{font-size:2.5rem}h2,.h2{font-size:2.062rem}h3,.h3{font-size:1.688rem}h4,.h4{font-size:1.438rem}h5,.h5{font-size:1.188rem}h6,.h6{font-size:1rem}pre,.pre{font-size:.875rem}code,.code{font-size:.875rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:hover,a:focus{color:#1468a0}a img{border:0}hr{clear:both;max-width:62.5rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}ul,ol,dl{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ul ul,ol ul,ul ol,ol ol{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:bold}blockquote{margin:0 0 1rem;padding:.562rem 1.25rem 0 1.188rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}cite{display:block;font-size:.812rem;color:#8a8a8a}cite:before{content:"— "}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}code{padding:.125rem .312rem .062rem;border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,Menlo,"Liberation Mono",Courier,monospace;font-weight:normal;color:#0a0a0a}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,Menlo,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:normal;line-height:1.4;color:#8a8a8a}.lead{font-size:20px;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ul.no-bullet,ol.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print, screen and (min-width: 40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print, screen and (min-width: 64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none !important}@media print{*{background:transparent !important;box-shadow:none !important;color:black !important;text-shadow:none !important}.show-for-print{display:block !important}.hide-for-print{display:none !important}table.show-for-print{display:table !important}thead.show-for-print{display:table-header-group !important}tbody.show-for-print{display:table-row-group !important}tr.show-for-print{display:table-row !important}td.show-for-print{display:table-cell !important}th.show-for-print{display:table-cell !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='javascript:']:after,a[href^='#']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}pre,blockquote{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}[type='text'],[type='password'],[type='date'],[type='datetime'],[type='datetime-local'],[type='month'],[type='week'],[type='email'],[type='number'],[type='search'],[type='tel'],[type='time'],[type='url'],[type='color'],textarea{display:block;box-sizing:border-box;width:100%;height:2.438rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);font-family:inherit;font-size:1rem;font-weight:normal;line-height:1.5;color:#0a0a0a;transition:box-shadow 0.5s,border-color 0.25s ease-in-out;appearance:none}[type='text']:focus,[type='password']:focus,[type='date']:focus,[type='datetime']:focus,[type='datetime-local']:focus,[type='month']:focus,[type='week']:focus,[type='email']:focus,[type='number']:focus,[type='search']:focus,[type='tel']:focus,[type='time']:focus,[type='url']:focus,[type='color']:focus,textarea:focus{outline:none;border:1px solid #8a8a8a;background-color:#fefefe;box-shadow:0 0 5px #cacaca;transition:box-shadow 0.5s,border-color 0.25s ease-in-out}textarea{max-width:100%}textarea[rows]{height:auto}input::placeholder,textarea::placeholder{color:#cacaca}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type='submit'],[type='button']{appearance:none;border-radius:0}input[type='search']{box-sizing:border-box}[type='file'],[type='checkbox'],[type='radio']{margin:0 0 1rem}[type='checkbox']+label,[type='radio']+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type='checkbox']+label[for],[type='radio']+label[for]{cursor:pointer}label>[type='checkbox'],label>[type='radio']{margin-right:.5rem}[type='file']{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:normal;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;padding:.562rem 0}.help-text{margin-top:-.5rem;font-size:.812rem;font-style:italic;color:#0a0a0a}.input-group{display:flex;width:100%;margin-bottom:1rem;align-items:stretch}.input-group>:first-child{border-radius:0 0 0 0}.input-group>:last-child>*{border-radius:0 0 0 0}.input-group-label,.input-group-field,.input-group-button,.input-group-button a,.input-group-button input,.input-group-button button,.input-group-button label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:flex;flex:0 0 auto;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;flex:1 1 0px;height:auto;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:flex;flex:0 0 auto}.input-group-button a,.input-group-button input,.input-group-button button,.input-group-button label{height:auto;align-self:stretch;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.188rem;padding:0 .188rem}select{height:2.438rem;margin:0 0 1rem;padding:.5rem;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:normal;line-height:1.5;color:#0a0a0a;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;transition:box-shadow 0.5s,border-color 0.25s ease-in-out}@media screen and (min-width: 0\0){select{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==")}}select:focus{outline:none;border:1px solid #8a8a8a;background-color:#fefefe;box-shadow:0 0 5px #cacaca;transition:box-shadow 0.5s,border-color 0.25s ease-in-out}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:bold;color:#cc4b37}.form-error.is-visible{display:block}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;font-family:inherit;padding:0.85em 1em;-webkit-appearance:none;border:1px solid transparent;border-radius:0;transition:background-color 0.25s ease-out,color 0.25s ease-out;font-size:0.9rem;line-height:1;text-align:center;cursor:pointer;background-color:#1779ba;color:#fefefe}[data-whatinput='mouse'] .button{outline:0}.button:hover,.button:focus{background-color:#14679e;color:#fefefe}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button.primary{background-color:#1779ba;color:#fefefe}.button.primary:hover,.button.primary:focus{background-color:#126195;color:#fefefe}.button.secondary{background-color:#767676;color:#fefefe}.button.secondary:hover,.button.secondary:focus{background-color:#5e5e5e;color:#fefefe}.button.success{background-color:#3adb76;color:#0a0a0a}.button.success:hover,.button.success:focus{background-color:#22bb5b;color:#0a0a0a}.button.warning{background-color:#ffae00;color:#0a0a0a}.button.warning:hover,.button.warning:focus{background-color:#cc8b00;color:#0a0a0a}.button.alert{background-color:#cc4b37;color:#fefefe}.button.alert:hover,.button.alert:focus{background-color:#a53b2a;color:#fefefe}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.disabled,.button.disabled:hover,.button.disabled:focus,.button[disabled],.button[disabled]:hover,.button[disabled]:focus{background-color:#1779ba;color:#fefefe}.button.disabled.primary,.button[disabled].primary{opacity:.25;cursor:not-allowed}.button.disabled.primary,.button.disabled.primary:hover,.button.disabled.primary:focus,.button[disabled].primary,.button[disabled].primary:hover,.button[disabled].primary:focus{background-color:#1779ba;color:#fefefe}.button.disabled.secondary,.button[disabled].secondary{opacity:.25;cursor:not-allowed}.button.disabled.secondary,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#767676;color:#fefefe}.button.disabled.success,.button[disabled].success{opacity:.25;cursor:not-allowed}.button.disabled.success,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#3adb76;color:#0a0a0a}.button.disabled.warning,.button[disabled].warning{opacity:.25;cursor:not-allowed}.button.disabled.warning,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#ffae00;color:#0a0a0a}.button.disabled.alert,.button[disabled].alert{opacity:.25;cursor:not-allowed}.button.disabled.alert,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#cc4b37;color:#fefefe}.button.hollow{border:1px solid #1779ba;color:#1779ba}.button.hollow,.button.hollow:hover,.button.hollow:focus{background-color:transparent}.button.hollow.disabled,.button.hollow.disabled:hover,.button.hollow.disabled:focus,.button.hollow[disabled],.button.hollow[disabled]:hover,.button.hollow[disabled]:focus{background-color:transparent}.button.hollow:hover,.button.hollow:focus{border-color:#0c3d5d;color:#0c3d5d}.button.hollow:hover.disabled,.button.hollow:hover[disabled],.button.hollow:focus.disabled,.button.hollow:focus[disabled]{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:hover,.button.hollow.primary:focus{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary:hover.disabled,.button.hollow.primary:hover[disabled],.button.hollow.primary:focus.disabled,.button.hollow.primary:focus[disabled]{border:1px solid #1779ba;color:#1779ba}.button.hollow.secondary{border:1px solid #767676;color:#767676}.button.hollow.secondary:hover,.button.hollow.secondary:focus{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.secondary:hover.disabled,.button.hollow.secondary:hover[disabled],.button.hollow.secondary:focus.disabled,.button.hollow.secondary:focus[disabled]{border:1px solid #767676;color:#767676}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:hover,.button.hollow.success:focus{border-color:#157539;color:#157539}.button.hollow.success:hover.disabled,.button.hollow.success:hover[disabled],.button.hollow.success:focus.disabled,.button.hollow.success:focus[disabled]{border:1px solid #3adb76;color:#3adb76}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:hover,.button.hollow.warning:focus{border-color:#805700;color:#805700}.button.hollow.warning:hover.disabled,.button.hollow.warning:hover[disabled],.button.hollow.warning:focus.disabled,.button.hollow.warning:focus[disabled]{border:1px solid #ffae00;color:#ffae00}.button.hollow.alert{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:hover,.button.hollow.alert:focus{border-color:#67251a;color:#67251a}.button.hollow.alert:hover.disabled,.button.hollow.alert:hover[disabled],.button.hollow.alert:focus.disabled,.button.hollow.alert:focus[disabled]{border:1px solid #cc4b37;color:#cc4b37}.button.clear{border:1px solid #1779ba;color:#1779ba}.button.clear,.button.clear:hover,.button.clear:focus{background-color:transparent}.button.clear.disabled,.button.clear.disabled:hover,.button.clear.disabled:focus,.button.clear[disabled],.button.clear[disabled]:hover,.button.clear[disabled]:focus{background-color:transparent}.button.clear:hover,.button.clear:focus{border-color:#0c3d5d;color:#0c3d5d}.button.clear:hover.disabled,.button.clear:hover[disabled],.button.clear:focus.disabled,.button.clear:focus[disabled]{border:1px solid #1779ba;color:#1779ba}.button.clear,.button.clear.disabled,.button.clear[disabled],.button.clear:hover,.button.clear:hover.disabled,.button.clear:hover[disabled],.button.clear:focus,.button.clear:focus.disabled,.button.clear:focus[disabled]{border-color:transparent}.button.clear.primary{border:1px solid #1779ba;color:#1779ba}.button.clear.primary:hover,.button.clear.primary:focus{border-color:#0c3d5d;color:#0c3d5d}.button.clear.primary:hover.disabled,.button.clear.primary:hover[disabled],.button.clear.primary:focus.disabled,.button.clear.primary:focus[disabled]{border:1px solid #1779ba;color:#1779ba}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary[disabled],.button.clear.primary:hover,.button.clear.primary:hover.disabled,.button.clear.primary:hover[disabled],.button.clear.primary:focus,.button.clear.primary:focus.disabled,.button.clear.primary:focus[disabled]{border-color:transparent}.button.clear.secondary{border:1px solid #767676;color:#767676}.button.clear.secondary:hover,.button.clear.secondary:focus{border-color:#3b3b3b;color:#3b3b3b}.button.clear.secondary:hover.disabled,.button.clear.secondary:hover[disabled],.button.clear.secondary:focus.disabled,.button.clear.secondary:focus[disabled]{border:1px solid #767676;color:#767676}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary[disabled],.button.clear.secondary:hover,.button.clear.secondary:hover.disabled,.button.clear.secondary:hover[disabled],.button.clear.secondary:focus,.button.clear.secondary:focus.disabled,.button.clear.secondary:focus[disabled]{border-color:transparent}.button.clear.success{border:1px solid #3adb76;color:#3adb76}.button.clear.success:hover,.button.clear.success:focus{border-color:#157539;color:#157539}.button.clear.success:hover.disabled,.button.clear.success:hover[disabled],.button.clear.success:focus.disabled,.button.clear.success:focus[disabled]{border:1px solid #3adb76;color:#3adb76}.button.clear.success,.button.clear.success.disabled,.button.clear.success[disabled],.button.clear.success:hover,.button.clear.success:hover.disabled,.button.clear.success:hover[disabled],.button.clear.success:focus,.button.clear.success:focus.disabled,.button.clear.success:focus[disabled]{border-color:transparent}.button.clear.warning{border:1px solid #ffae00;color:#ffae00}.button.clear.warning:hover,.button.clear.warning:focus{border-color:#805700;color:#805700}.button.clear.warning:hover.disabled,.button.clear.warning:hover[disabled],.button.clear.warning:focus.disabled,.button.clear.warning:focus[disabled]{border:1px solid #ffae00;color:#ffae00}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning[disabled],.button.clear.warning:hover,.button.clear.warning:hover.disabled,.button.clear.warning:hover[disabled],.button.clear.warning:focus,.button.clear.warning:focus.disabled,.button.clear.warning:focus[disabled]{border-color:transparent}.button.clear.alert{border:1px solid #cc4b37;color:#cc4b37}.button.clear.alert:hover,.button.clear.alert:focus{border-color:#67251a;color:#67251a}.button.clear.alert:hover.disabled,.button.clear.alert:hover[disabled],.button.clear.alert:focus.disabled,.button.clear.alert:focus[disabled]{border:1px solid #cc4b37;color:#cc4b37}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert[disabled],.button.clear.alert:hover,.button.clear.alert:hover.disabled,.button.clear.alert:hover[disabled],.button.clear.alert:focus,.button.clear.alert:focus.disabled,.button.clear.alert:focus[disabled]{border-color:transparent}.button.dropdown::after{display:block;width:0;height:0;border:inset .4em;content:'';border-bottom-width:0;border-top-style:solid;border-color:#fefefe transparent transparent;position:relative;top:0.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-0.1em;float:none;margin-left:0}a.button:hover,a.button:focus{text-decoration:none}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0 0 0 0}.accordion-item:last-child>:last-child{border-radius:0 0 0 0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0 0 0 0}.accordion-title:hover,.accordion-title:focus{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-0.5rem;content:'+'}.is-active>.accordion-title::before{content:'\2013'}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.accordion-menu li{width:100%}.accordion-menu a{padding:0.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:0.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{left:auto;right:1rem}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded='true']>a::after{transform:rotate(180deg);transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;cursor:pointer;width:40px;height:40px}.submenu-toggle::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded='true']::after{transform:scaleY(-1);transform-origin:50% 50%}.submenu-toggle-text{position:absolute !important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);border:0}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::before,.breadcrumbs::after{display:table;content:' ';flex-basis:0;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.688rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.button-group{margin-bottom:1rem;display:flex;flex-wrap:nowrap;align-items:stretch}.button-group::before,.button-group::after{display:table;content:' ';flex-basis:0;order:1}.button-group::after{clear:both}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:0.9rem;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{flex:1 1 0px}.button-group.primary .button{background-color:#1779ba;color:#fefefe}.button-group.primary .button:hover,.button-group.primary .button:focus{background-color:#126195;color:#fefefe}.button-group.secondary .button{background-color:#767676;color:#fefefe}.button-group.secondary .button:hover,.button-group.secondary .button:focus{background-color:#5e5e5e;color:#fefefe}.button-group.success .button{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:hover,.button-group.success .button:focus{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:hover,.button-group.warning .button:focus{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:hover,.button-group.alert .button:focus{background-color:#a53b2a;color:#fefefe}.button-group.stacked,.button-group.stacked-for-small,.button-group.stacked-for-medium{flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-small .button,.button-group.stacked-for-medium .button{flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-small .button:last-child,.button-group.stacked-for-medium .button:last-child{margin-bottom:0}@media print, screen and (min-width: 40em){.button-group.stacked-for-small .button{flex:1 1 0px;margin-bottom:0}}@media print, screen and (min-width: 64em){.button-group.stacked-for-medium .button{flex:1 1 0px;margin-bottom:0}}@media screen and (max-width: 39.938em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,0.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:flex;flex-direction:column;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{flex:0 1 auto;display:flex;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.close-button{position:absolute;color:#8a8a8a;cursor:pointer}[data-whatinput='mouse'] .close-button{outline:0}.close-button:hover,.close-button:focus{color:#0a0a0a}.close-button.small{right:0.66rem;top:0.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:0.5rem;font-size:2em;line-height:1}.menu{padding:0;margin:0;list-style:none;position:relative;display:flex;flex-wrap:wrap}[data-whatinput='mouse'] .menu li{outline:0}.menu a,.menu .button{line-height:1;text-decoration:none;display:block;padding:0.7rem 1rem}.menu input,.menu select,.menu a,.menu button{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{flex-wrap:wrap;flex-direction:row}.menu.vertical{flex-wrap:nowrap;flex-direction:column}.menu.expanded li{flex:1 1 0px}.menu.simple{align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print, screen and (min-width: 40em){.menu.medium-horizontal{flex-wrap:wrap;flex-direction:row}.menu.medium-vertical{flex-wrap:nowrap;flex-direction:column}.menu.medium-expanded li{flex:1 1 0px}.menu.medium-simple li{flex:1 1 0px}}@media print, screen and (min-width: 64em){.menu.large-horizontal{flex-wrap:wrap;flex-direction:row}.menu.large-vertical{flex-wrap:nowrap;flex-direction:column}.menu.large-expanded li{flex:1 1 0px}.menu.large-simple li{flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:flex}.menu.icon-top a,.menu.icon-right a,.menu.icon-bottom a,.menu.icon-left a{display:flex}.menu.icon-left li a{flex-flow:row nowrap}.menu.icon-left li a img,.menu.icon-left li a i,.menu.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a{flex-flow:row nowrap}.menu.icon-right li a img,.menu.icon-right li a i,.menu.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a{flex-flow:column nowrap}.menu.icon-top li a img,.menu.icon-top li a i,.menu.icon-top li a svg{align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a{flex-flow:column nowrap}.menu.icon-bottom li a img,.menu.icon-bottom li a i,.menu.icon-bottom li a svg{align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{justify-content:flex-start}.menu.align-right li{display:flex;justify-content:flex-end}.menu.align-right li .submenu li{justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:flex;justify-content:center}.menu.align-center li .submenu li{justify-content:flex-start}.menu .menu-text{padding:0.7rem 1rem;font-weight:bold;line-height:1;color:inherit}.menu-centered>.menu{justify-content:center}.menu-centered>.menu li{display:flex;justify-content:center}.menu-centered>.menu li .submenu li{justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{transition:height 0.5s}.drilldown a{padding:0.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;transition:transform 0.15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:0.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{position:absolute;top:50%;margin-top:-6px;right:1rem;display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}.drilldown.align-left .is-drilldown-submenu-parent>a::after{left:auto;right:1rem;display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}.drilldown.align-right .is-drilldown-submenu-parent>a::after{right:auto;left:1rem;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent;border-left-width:0;display:inline-block;vertical-align:middle;margin-right:0.75rem;border-left-width:0}.dropdown-pane{position:absolute;z-index:10;width:300px;padding:1rem;visibility:hidden;display:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{visibility:visible;display:block}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu a{padding:0.7rem 1rem}[data-whatinput='mouse'] .dropdown.menu a{outline:0}.dropdown.menu .is-active>a{background:transparent;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{right:100%;left:auto;top:0}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{right:auto;left:5px;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}@media print, screen and (min-width: 40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{right:100%;left:auto;top:0}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{right:auto;left:5px;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}}@media print, screen and (min-width: 64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{right:100%;left:auto;top:0}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{right:auto;left:5px;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:0.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{right:auto;left:5px;display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #1779ba transparent transparent}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.responsive-embed,.flex-video{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.responsive-embed iframe,.responsive-embed object,.responsive-embed embed,.responsive-embed video,.flex-video iframe,.flex-video object,.flex-video embed,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.responsive-embed.widescreen,.flex-video.widescreen{padding-bottom:56.25%}.label{display:inline-block;padding:0.333rem 0.5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.media-object{display:flex;margin-bottom:1rem;flex-wrap:nowrap}.media-object img{max-width:none}@media screen and (max-width: 39.938em){.media-object.stack-for-small{flex-wrap:wrap}}@media screen and (max-width: 39.938em){.media-object.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;flex-basis:100%;max-width:100%}.media-object.stack-for-small .media-object-section img{width:100%}}.media-object-section{flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}.media-object-section.main-section{flex:1 1 0px}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,0.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;transition:transform .5s ease;backface-visibility:hidden;background:#e6e6e6}[data-whatinput='mouse'] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{box-shadow:0 0 10px rgba(10,10,10,0.7)}.off-canvas.is-open{transform:translate(0, 0)}.off-canvas-absolute{position:absolute;z-index:12;transition:transform .5s ease;backface-visibility:hidden;background:#e6e6e6}[data-whatinput='mouse'] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{box-shadow:0 0 10px rgba(10,10,10,0.7)}.off-canvas-absolute.is-open{transform:translate(0, 0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;width:250px;transform:translateX(-250px)}@media print, screen and (min-width: 40em){.position-left{width:250px;transform:translateX(-250px)}}.off-canvas-content .off-canvas.position-left{transform:translateX(-250px)}@media print, screen and (min-width: 40em){.off-canvas-content .off-canvas.position-left{transform:translateX(-250px)}}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{transform:translate(0, 0)}.off-canvas-content.is-open-left.has-transition-push{transform:translateX(250px)}@media print, screen and (min-width: 40em){.off-canvas-content.is-open-left.has-transition-push{transform:translateX(250px)}}.position-left.is-transition-push{box-shadow:inset -13px 0 20px -13px rgba(10,10,10,0.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;width:250px;transform:translateX(250px)}@media print, screen and (min-width: 40em){.position-right{width:250px;transform:translateX(250px)}}.off-canvas-content .off-canvas.position-right{transform:translateX(250px)}@media print, screen and (min-width: 40em){.off-canvas-content .off-canvas.position-right{transform:translateX(250px)}}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{transform:translate(0, 0)}.off-canvas-content.is-open-right.has-transition-push{transform:translateX(-250px)}@media print, screen and (min-width: 40em){.off-canvas-content.is-open-right.has-transition-push{transform:translateX(-250px)}}.position-right.is-transition-push{box-shadow:inset 13px 0 20px -13px rgba(10,10,10,0.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;height:250px;transform:translateY(-250px)}@media print, screen and (min-width: 40em){.position-top{height:250px;transform:translateY(-250px)}}.off-canvas-content .off-canvas.position-top{transform:translateY(-250px)}@media print, screen and (min-width: 40em){.off-canvas-content .off-canvas.position-top{transform:translateY(-250px)}}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{transform:translate(0, 0)}.off-canvas-content.is-open-top.has-transition-push{transform:translateY(250px)}@media print, screen and (min-width: 40em){.off-canvas-content.is-open-top.has-transition-push{transform:translateY(250px)}}.position-top.is-transition-push{box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,0.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;height:250px;transform:translateY(250px)}@media print, screen and (min-width: 40em){.position-bottom{height:250px;transform:translateY(250px)}}.off-canvas-content .off-canvas.position-bottom{transform:translateY(250px)}@media print, screen and (min-width: 40em){.off-canvas-content .off-canvas.position-bottom{transform:translateY(250px)}}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{transform:translate(0, 0)}.off-canvas-content.is-open-bottom.has-transition-push{transform:translateY(-250px)}@media print, screen and (min-width: 40em){.off-canvas-content.is-open-bottom.has-transition-push{transform:translateY(-250px)}}.position-bottom.is-transition-push{box-shadow:inset 0 13px 20px -13px rgba(10,10,10,0.25)}.off-canvas-content{transform:none;transition:transform .5s ease;backface-visibility:hidden}.off-canvas-content.has-transition-push{transform:translate(0, 0)}.off-canvas-content .off-canvas.is-open{transform:translate(0, 0)}@media print, screen and (min-width: 40em){.position-left.reveal-for-medium{transform:none;z-index:12;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium ~ .off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{transform:none;z-index:12;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium ~ .off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{transform:none;z-index:12;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium ~ .off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{transform:none;z-index:12;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium ~ .off-canvas-content{margin-bottom:250px}}@media print, screen and (min-width: 64em){.position-left.reveal-for-large{transform:none;z-index:12;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large ~ .off-canvas-content{margin-left:250px}.position-right.reveal-for-large{transform:none;z-index:12;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large ~ .off-canvas-content{margin-right:250px}.position-top.reveal-for-large{transform:none;z-index:12;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large ~ .off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{transform:none;z-index:12;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large ~ .off-canvas-content{margin-bottom:250px}}@media print, screen and (min-width: 40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:inherit;width:inherit;overflow:inherit;transition:inherit}.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top,.off-canvas.in-canvas-for-medium.position-bottom{box-shadow:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print, screen and (min-width: 64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:inherit;width:inherit;overflow:inherit;transition:inherit}.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top,.off-canvas.in-canvas-for-large.position-bottom{box-shadow:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,0.5);color:#fefefe}.orbit-previous,.orbit-next{position:absolute;top:50%;transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput='mouse'] .orbit-previous,[data-whatinput='mouse'] .orbit-next{outline:0}.orbit-previous:hover,.orbit-next:hover,.orbit-previous:active,.orbit-next:active,.orbit-previous:focus,.orbit-next:focus{background-color:rgba(10,10,10,0.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput='mouse'] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.pagination{margin-left:0;margin-bottom:1rem}.pagination::before,.pagination::after{display:table;content:' ';flex-basis:0;order:1}.pagination::after{clear:both}.pagination li{margin-right:.062rem;border-radius:0;font-size:.875rem;display:none}.pagination li:last-child,.pagination li:first-child{display:inline-block}@media print, screen and (min-width: 40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.188rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.188rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.188rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:transparent}.pagination .ellipsis::after{padding:.188rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:0.5rem;content:'\00ab'}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:0.5rem;content:'\00bb'}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);position:absolute;margin:0;font-size:0.75rem;font-weight:bold;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;user-select:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;transition:all 0.2s ease-in-out}.slider-fill.is-dragging{transition:all 0s linear}.slider-handle{position:absolute;top:50%;transform:translateY(-50%);left:0;z-index:1;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;transition:all 0.2s ease-in-out;touch-action:manipulation}[data-whatinput='mouse'] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;transform:scale(1, -1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;transform:translateX(-50%)}.sticky-container{position:relative}.sticky{position:relative;z-index:0;transform:translate3d(0, 0, 0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}body.is-reveal-open{overflow:hidden}html.is-reveal-open,html.is-reveal-open body{min-height:100%;overflow:hidden;position:fixed;user-select:none}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,0.45);overflow-y:scroll}.reveal{z-index:1006;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto}[data-whatinput='mouse'] .reveal{outline:0}@media print, screen and (min-width: 40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print, screen and (min-width: 40em){.reveal{width:600px;max-width:62.5rem}}.reveal.collapse{padding:0}@media print, screen and (min-width: 40em){.reveal.tiny{width:30%;max-width:62.5rem}}@media print, screen and (min-width: 40em){.reveal.small{width:50%;max-width:62.5rem}}@media print, screen and (min-width: 40em){.reveal.large{width:90%;max-width:62.5rem}}.reveal.full{top:0;left:0;width:100%;max-width:none;height:100%;height:100vh;min-height:100vh;margin-left:0;border:0;border-radius:0}@media screen and (max-width: 39.938em){.reveal{top:0;left:0;width:100%;max-width:none;height:100%;height:100vh;min-height:100vh;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.switch{height:2rem;position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:bold;color:#fefefe;user-select:none}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;transition:all 0.25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;transform:translate3d(0, 0, 0);border-radius:0;background:#fefefe;transition:all 0.25s ease-out;content:''}input:checked ~ .switch-paddle{background:#1779ba}input:checked ~ .switch-paddle::after{left:2.25rem}[data-whatinput='mouse'] input:focus ~ .switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked ~ .switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked ~ .switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked ~ .switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}thead,tbody,tfoot{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:bold}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}thead tr,tfoot tr{background:transparent}thead th,thead td,tfoot th,tfoot td{padding:.5rem .625rem .625rem;font-weight:bold;text-align:left}tbody th,tbody td{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:0;border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media screen and (max-width: 63.938em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack tr,table.stack th,table.stack td{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.table-scroll table{width:auto}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::before,.tabs::after{display:table;content:' ';flex-basis:0;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:transparent}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:hover,.tabs.primary>li>a:focus{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected='true']{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;transition:all 0.5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:solid 4px #fefefe;border-radius:0;box-shadow:0 0 0 1px rgba(10,10,10,0.2);line-height:0}a.thumbnail{transition:box-shadow 200ms ease-out}a.thumbnail:hover,a.thumbnail:focus{box-shadow:0 0 6px 1px rgba(23,121,186,0.5)}a.thumbnail image{box-shadow:none}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:flex;justify-content:flex-start;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:bold}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:bold;cursor:help}.tooltip{position:absolute;top:calc(100% + .649rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-top-width:0;border-bottom-style:solid;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-bottom-width:0;border-top-style:solid;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.top-bar{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;padding:.5rem;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{flex:0 0 100%;max-width:100%}@media print, screen and (min-width: 40em){.top-bar{flex-wrap:nowrap}.top-bar .top-bar-left{flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{flex:0 1 auto;margin-left:auto}}@media screen and (max-width: 63.938em){.top-bar.stacked-for-medium{flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{flex:0 0 100%;max-width:100%}}@media screen and (max-width: 74.938em){.top-bar.stacked-for-large{flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{flex:0 0 100%;max-width:100%}}.top-bar-title{flex:0 0 auto;margin:0.5rem 1rem 0.5rem 0}.top-bar-left,.top-bar-right{flex:0 0 auto}.hide{display:none !important}.invisible{visibility:hidden}@media screen and (max-width: 39.938em){.hide-for-small-only{display:none !important}}@media screen and (max-width: 0em), screen and (min-width: 40em){.show-for-small-only{display:none !important}}@media print, screen and (min-width: 40em){.hide-for-medium{display:none !important}}@media screen and (max-width: 39.938em){.show-for-medium{display:none !important}}@media screen and (min-width: 40em) and (max-width: 63.938em){.hide-for-medium-only{display:none !important}}@media screen and (max-width: 39.938em), screen and (min-width: 64em){.show-for-medium-only{display:none !important}}@media print, screen and (min-width: 64em){.hide-for-large{display:none !important}}@media screen and (max-width: 63.938em){.show-for-large{display:none !important}}@media screen and (min-width: 64em) and (max-width: 74.938em){.hide-for-large-only{display:none !important}}@media screen and (max-width: 63.938em), screen and (min-width: 75em){.show-for-large-only{display:none !important}}.show-for-sr,.show-on-focus{position:absolute !important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);border:0}.show-on-focus:active,.show-on-focus:focus{position:static !important;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;clip-path:none}.show-for-landscape,.hide-for-portrait{display:block !important}@media screen and (orientation: landscape){.show-for-landscape,.hide-for-portrait{display:block !important}}@media screen and (orientation: portrait){.show-for-landscape,.hide-for-portrait{display:none !important}}.hide-for-landscape,.show-for-portrait{display:none !important}@media screen and (orientation: landscape){.hide-for-landscape,.show-for-portrait{display:none !important}}@media screen and (orientation: portrait){.hide-for-landscape,.show-for-portrait{display:block !important}}.float-left{float:left !important}.float-right{float:right !important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::before,.clearfix::after{display:table;content:' ';flex-basis:0;order:1}.clearfix::after{clear:both}.align-right{justify-content:flex-end}.align-center{justify-content:center}.align-justify{justify-content:space-between}.align-spaced{justify-content:space-around}.align-right.vertical.menu>li>a{justify-content:flex-end}.align-center.vertical.menu>li>a{justify-content:center}.align-top{align-items:flex-start}.align-self-top{align-self:flex-start}.align-bottom{align-items:flex-end}.align-self-bottom{align-self:flex-end}.align-middle{align-items:center}.align-self-middle{align-self:center}.align-stretch{align-items:stretch}.align-self-stretch{align-self:stretch}.align-center-middle{justify-content:center;align-items:center;align-content:center}.small-order-1{order:1}.small-order-2{order:2}.small-order-3{order:3}.small-order-4{order:4}.small-order-5{order:5}.small-order-6{order:6}@media print, screen and (min-width: 40em){.medium-order-1{order:1}.medium-order-2{order:2}.medium-order-3{order:3}.medium-order-4{order:4}.medium-order-5{order:5}.medium-order-6{order:6}}@media print, screen and (min-width: 64em){.large-order-1{order:1}.large-order-2{order:2}.large-order-3{order:3}.large-order-4{order:4}.large-order-5{order:5}.large-order-6{order:6}}.flex-container{display:flex}.flex-child-auto{flex:1 1 auto}.flex-child-grow{flex:1 0 auto}.flex-child-shrink{flex:0 1 auto}.flex-dir-row{flex-direction:row}.flex-dir-row-reverse{flex-direction:row-reverse}.flex-dir-column{flex-direction:column}.flex-dir-column-reverse{flex-direction:column-reverse}@media print, screen and (min-width: 40em){.medium-flex-container{display:flex}.medium-flex-child-auto{flex:1 1 auto}.medium-flex-child-grow{flex:1 0 auto}.medium-flex-child-shrink{flex:0 1 auto}.medium-flex-dir-row{flex-direction:row}.medium-flex-dir-row-reverse{flex-direction:row-reverse}.medium-flex-dir-column{flex-direction:column}.medium-flex-dir-column-reverse{flex-direction:column-reverse}}@media print, screen and (min-width: 64em){.large-flex-container{display:flex}.large-flex-child-auto{flex:1 1 auto}.large-flex-child-grow{flex:1 0 auto}.large-flex-child-shrink{flex:0 1 auto}.large-flex-dir-row{flex-direction:row}.large-flex-dir-row-reverse{flex-direction:row-reverse}.large-flex-dir-column{flex-direction:column}.large-flex-dir-column-reverse{flex-direction:column-reverse}}.slide-in-down.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:translateY(-100%);transition-property:transform, opacity;backface-visibility:hidden}.slide-in-down.mui-enter.mui-enter-active{transform:translateY(0)}.slide-in-left.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:translateX(-100%);transition-property:transform, opacity;backface-visibility:hidden}.slide-in-left.mui-enter.mui-enter-active{transform:translateX(0)}.slide-in-up.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:translateY(100%);transition-property:transform, opacity;backface-visibility:hidden}.slide-in-up.mui-enter.mui-enter-active{transform:translateY(0)}.slide-in-right.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:translateX(100%);transition-property:transform, opacity;backface-visibility:hidden}.slide-in-right.mui-enter.mui-enter-active{transform:translateX(0)}.slide-out-down.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:translateY(0);transition-property:transform, opacity;backface-visibility:hidden}.slide-out-down.mui-leave.mui-leave-active{transform:translateY(100%)}.slide-out-right.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:translateX(0);transition-property:transform, opacity;backface-visibility:hidden}.slide-out-right.mui-leave.mui-leave-active{transform:translateX(100%)}.slide-out-up.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:translateY(0);transition-property:transform, opacity;backface-visibility:hidden}.slide-out-up.mui-leave.mui-leave-active{transform:translateY(-100%)}.slide-out-left.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:translateX(0);transition-property:transform, opacity;backface-visibility:hidden}.slide-out-left.mui-leave.mui-leave-active{transform:translateX(-100%)}.fade-in.mui-enter{transition-duration:500ms;transition-timing-function:linear;opacity:0;transition-property:opacity}.fade-in.mui-enter.mui-enter-active{opacity:1}.fade-out.mui-leave{transition-duration:500ms;transition-timing-function:linear;opacity:1;transition-property:opacity}.fade-out.mui-leave.mui-leave-active{opacity:0}.hinge-in-from-top.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateX(-90deg);transform-origin:top;transition-property:transform, opacity;opacity:0}.hinge-in-from-top.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-right.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateY(-90deg);transform-origin:right;transition-property:transform, opacity;opacity:0}.hinge-in-from-right.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-bottom.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateX(90deg);transform-origin:bottom;transition-property:transform, opacity;opacity:0}.hinge-in-from-bottom.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-left.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateY(90deg);transform-origin:left;transition-property:transform, opacity;opacity:0}.hinge-in-from-left.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-middle-x.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateX(-90deg);transform-origin:center;transition-property:transform, opacity;opacity:0}.hinge-in-from-middle-x.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-middle-y.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateY(-90deg);transform-origin:center;transition-property:transform, opacity;opacity:0}.hinge-in-from-middle-y.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-out-from-top.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:top;transition-property:transform, opacity;opacity:1}.hinge-out-from-top.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hinge-out-from-right.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:right;transition-property:transform, opacity;opacity:1}.hinge-out-from-right.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.hinge-out-from-bottom.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:bottom;transition-property:transform, opacity;opacity:1}.hinge-out-from-bottom.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(90deg);opacity:0}.hinge-out-from-left.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:left;transition-property:transform, opacity;opacity:1}.hinge-out-from-left.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(90deg);opacity:0}.hinge-out-from-middle-x.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:center;transition-property:transform, opacity;opacity:1}.hinge-out-from-middle-x.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hinge-out-from-middle-y.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:center;transition-property:transform, opacity;opacity:1}.hinge-out-from-middle-y.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.scale-in-up.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:scale(.5);transition-property:transform, opacity;opacity:0}.scale-in-up.mui-enter.mui-enter-active{transform:scale(1);opacity:1}.scale-in-down.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:scale(1.5);transition-property:transform, opacity;opacity:0}.scale-in-down.mui-enter.mui-enter-active{transform:scale(1);opacity:1}.scale-out-up.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:scale(1);transition-property:transform, opacity;opacity:1}.scale-out-up.mui-leave.mui-leave-active{transform:scale(1.5);opacity:0}.scale-out-down.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:scale(1);transition-property:transform, opacity;opacity:1}.scale-out-down.mui-leave.mui-leave-active{transform:scale(.5);opacity:0}.spin-in.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:rotate(-.75turn);transition-property:transform, opacity;opacity:0}.spin-in.mui-enter.mui-enter-active{transform:rotate(0);opacity:1}.spin-out.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:rotate(0);transition-property:transform, opacity;opacity:1}.spin-out.mui-leave.mui-leave-active{transform:rotate(.75turn);opacity:0}.spin-in-ccw.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:rotate(.75turn);transition-property:transform, opacity;opacity:0}.spin-in-ccw.mui-enter.mui-enter-active{transform:rotate(0);opacity:1}.spin-out-ccw.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:rotate(0);transition-property:transform, opacity;opacity:1}.spin-out-ccw.mui-leave.mui-leave-active{transform:rotate(-.75turn);opacity:0}.slow{transition-duration:750ms !important}.fast{transition-duration:250ms !important}.linear{transition-timing-function:linear !important}.ease{transition-timing-function:ease !important}.ease-in{transition-timing-function:ease-in !important}.ease-out{transition-timing-function:ease-out !important}.ease-in-out{transition-timing-function:ease-in-out !important}.bounce-in{transition-timing-function:cubic-bezier(0.485, 0.155, 0.24, 1.245) !important}.bounce-out{transition-timing-function:cubic-bezier(0.485, 0.155, 0.515, 0.845) !important}.bounce-in-out{transition-timing-function:cubic-bezier(0.76, -0.245, 0.24, 1.245) !important}.short-delay{transition-delay:300ms !important}.long-delay{transition-delay:700ms !important}.shake{animation-name:shake-7}@keyframes shake-7{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{transform:translateX(7%)}5%,15%,25%,35%,45%,55%,65%,75%,85%,95%{transform:translateX(-7%)}}.spin-cw{animation-name:spin-cw-1turn}@keyframes spin-cw-1turn{0%{transform:rotate(-1turn)}100%{transform:rotate(0)}}.spin-ccw{animation-name:spin-cw-1turn}@keyframes spin-cw-1turn{0%{transform:rotate(0)}100%{transform:rotate(1turn)}}.wiggle{animation-name:wiggle-7deg}@keyframes wiggle-7deg{40%,50%,60%{transform:rotate(7deg)}35%,45%,55%,65%{transform:rotate(-7deg)}0%,30%,70%,100%{transform:rotate(0)}}.shake,.spin-cw,.spin-ccw,.wiggle{animation-duration:500ms}.infinite{animation-iteration-count:infinite}.slow{animation-duration:750ms !important}.fast{animation-duration:250ms !important}.linear{animation-timing-function:linear !important}.ease{animation-timing-function:ease !important}.ease-in{animation-timing-function:ease-in !important}.ease-out{animation-timing-function:ease-out !important}.ease-in-out{animation-timing-function:ease-in-out !important}.bounce-in{animation-timing-function:cubic-bezier(0.485, 0.155, 0.24, 1.245) !important}.bounce-out{animation-timing-function:cubic-bezier(0.485, 0.155, 0.515, 0.845) !important}.bounce-in-out{animation-timing-function:cubic-bezier(0.76, -0.245, 0.24, 1.245) !important}.short-delay{animation-delay:300ms !important}.long-delay{animation-delay:700ms !important}.slide-in-down.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:translateY(-100%);transition-property:transform, opacity;backface-visibility:hidden}.slide-in-down.mui-enter.mui-enter-active{transform:translateY(0)}.slide-in-left.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:translateX(-100%);transition-property:transform, opacity;backface-visibility:hidden}.slide-in-left.mui-enter.mui-enter-active{transform:translateX(0)}.slide-in-up.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:translateY(100%);transition-property:transform, opacity;backface-visibility:hidden}.slide-in-up.mui-enter.mui-enter-active{transform:translateY(0)}.slide-in-right.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:translateX(100%);transition-property:transform, opacity;backface-visibility:hidden}.slide-in-right.mui-enter.mui-enter-active{transform:translateX(0)}.slide-out-down.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:translateY(0);transition-property:transform, opacity;backface-visibility:hidden}.slide-out-down.mui-leave.mui-leave-active{transform:translateY(100%)}.slide-out-right.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:translateX(0);transition-property:transform, opacity;backface-visibility:hidden}.slide-out-right.mui-leave.mui-leave-active{transform:translateX(100%)}.slide-out-up.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:translateY(0);transition-property:transform, opacity;backface-visibility:hidden}.slide-out-up.mui-leave.mui-leave-active{transform:translateY(-100%)}.slide-out-left.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:translateX(0);transition-property:transform, opacity;backface-visibility:hidden}.slide-out-left.mui-leave.mui-leave-active{transform:translateX(-100%)}.fade-in.mui-enter{transition-duration:500ms;transition-timing-function:linear;opacity:0;transition-property:opacity}.fade-in.mui-enter.mui-enter-active{opacity:1}.fade-out.mui-leave{transition-duration:500ms;transition-timing-function:linear;opacity:1;transition-property:opacity}.fade-out.mui-leave.mui-leave-active{opacity:0}.hinge-in-from-top.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateX(-90deg);transform-origin:top;transition-property:transform, opacity;opacity:0}.hinge-in-from-top.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-right.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateY(-90deg);transform-origin:right;transition-property:transform, opacity;opacity:0}.hinge-in-from-right.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-bottom.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateX(90deg);transform-origin:bottom;transition-property:transform, opacity;opacity:0}.hinge-in-from-bottom.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-left.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateY(90deg);transform-origin:left;transition-property:transform, opacity;opacity:0}.hinge-in-from-left.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-middle-x.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateX(-90deg);transform-origin:center;transition-property:transform, opacity;opacity:0}.hinge-in-from-middle-x.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-in-from-middle-y.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotateY(-90deg);transform-origin:center;transition-property:transform, opacity;opacity:0}.hinge-in-from-middle-y.mui-enter.mui-enter-active{transform:perspective(2000px) rotate(0deg);opacity:1}.hinge-out-from-top.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:top;transition-property:transform, opacity;opacity:1}.hinge-out-from-top.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hinge-out-from-right.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:right;transition-property:transform, opacity;opacity:1}.hinge-out-from-right.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.hinge-out-from-bottom.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:bottom;transition-property:transform, opacity;opacity:1}.hinge-out-from-bottom.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(90deg);opacity:0}.hinge-out-from-left.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:left;transition-property:transform, opacity;opacity:1}.hinge-out-from-left.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(90deg);opacity:0}.hinge-out-from-middle-x.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:center;transition-property:transform, opacity;opacity:1}.hinge-out-from-middle-x.mui-leave.mui-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hinge-out-from-middle-y.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:perspective(2000px) rotate(0deg);transform-origin:center;transition-property:transform, opacity;opacity:1}.hinge-out-from-middle-y.mui-leave.mui-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.scale-in-up.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:scale(.5);transition-property:transform, opacity;opacity:0}.scale-in-up.mui-enter.mui-enter-active{transform:scale(1);opacity:1}.scale-in-down.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:scale(1.5);transition-property:transform, opacity;opacity:0}.scale-in-down.mui-enter.mui-enter-active{transform:scale(1);opacity:1}.scale-out-up.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:scale(1);transition-property:transform, opacity;opacity:1}.scale-out-up.mui-leave.mui-leave-active{transform:scale(1.5);opacity:0}.scale-out-down.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:scale(1);transition-property:transform, opacity;opacity:1}.scale-out-down.mui-leave.mui-leave-active{transform:scale(.5);opacity:0}.spin-in.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:rotate(-.75turn);transition-property:transform, opacity;opacity:0}.spin-in.mui-enter.mui-enter-active{transform:rotate(0);opacity:1}.spin-out.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:rotate(0);transition-property:transform, opacity;opacity:1}.spin-out.mui-leave.mui-leave-active{transform:rotate(.75turn);opacity:0}.spin-in-ccw.mui-enter{transition-duration:500ms;transition-timing-function:linear;transform:rotate(.75turn);transition-property:transform, opacity;opacity:0}.spin-in-ccw.mui-enter.mui-enter-active{transform:rotate(0);opacity:1}.spin-out-ccw.mui-leave{transition-duration:500ms;transition-timing-function:linear;transform:rotate(0);transition-property:transform, opacity;opacity:1}.spin-out-ccw.mui-leave.mui-leave-active{transform:rotate(-.75turn);opacity:0}.slow{transition-duration:750ms !important}.fast{transition-duration:250ms !important}.linear{transition-timing-function:linear !important}.ease{transition-timing-function:ease !important}.ease-in{transition-timing-function:ease-in !important}.ease-out{transition-timing-function:ease-out !important}.ease-in-out{transition-timing-function:ease-in-out !important}.bounce-in{transition-timing-function:cubic-bezier(0.485, 0.155, 0.24, 1.245) !important}.bounce-out{transition-timing-function:cubic-bezier(0.485, 0.155, 0.515, 0.845) !important}.bounce-in-out{transition-timing-function:cubic-bezier(0.76, -0.245, 0.24, 1.245) !important}.short-delay{transition-delay:300ms !important}.long-delay{transition-delay:700ms !important}.shake{animation-name:shake-7}@keyframes shake-7{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{transform:translateX(7%)}5%,15%,25%,35%,45%,55%,65%,75%,85%,95%{transform:translateX(-7%)}}.spin-cw{animation-name:spin-cw-1turn}@keyframes spin-cw-1turn{0%{transform:rotate(-1turn)}100%{transform:rotate(0)}}.spin-ccw{animation-name:spin-cw-1turn}@keyframes spin-cw-1turn{0%{transform:rotate(0)}100%{transform:rotate(1turn)}}.wiggle{animation-name:wiggle-7deg}@keyframes wiggle-7deg{40%,50%,60%{transform:rotate(7deg)}35%,45%,55%,65%{transform:rotate(-7deg)}0%,30%,70%,100%{transform:rotate(0)}}.shake,.spin-cw,.spin-ccw,.wiggle{animation-duration:500ms}.infinite{animation-iteration-count:infinite}.slow{animation-duration:750ms !important}.fast{animation-duration:250ms !important}.linear{animation-timing-function:linear !important}.ease{animation-timing-function:ease !important}.ease-in{animation-timing-function:ease-in !important}.ease-out{animation-timing-function:ease-out !important}.ease-in-out{animation-timing-function:ease-in-out !important}.bounce-in{animation-timing-function:cubic-bezier(0.485, 0.155, 0.24, 1.245) !important}.bounce-out{animation-timing-function:cubic-bezier(0.485, 0.155, 0.515, 0.845) !important}.bounce-in-out{animation-timing-function:cubic-bezier(0.76, -0.245, 0.24, 1.245) !important}.short-delay{animation-delay:300ms !important}.long-delay{animation-delay:700ms !important}#colorbox,#cboxOverlay,#cboxWrapper{position:absolute;top:0;left:0;z-index:9999;overflow:hidden;-webkit-transform:translate3d(0, 0, 0)}#cboxWrapper{max-width:none}#cboxOverlay{position:fixed;width:100%;height:100%}#cboxMiddleLeft,#cboxBottomLeft{clear:left}#cboxContent{position:relative}#cboxLoadedContent{overflow:auto;-webkit-overflow-scrolling:touch}#cboxTitle{margin:0}#cboxLoadingOverlay,#cboxLoadingGraphic{position:absolute;top:0;left:0;width:100%;height:100%}#cboxPrevious,#cboxNext,#cboxClose,#cboxSlideshow{cursor:pointer}.cboxPhoto{float:left;margin:auto;border:0;display:block;max-width:none;-ms-interpolation-mode:bicubic}.cboxIframe{width:100%;height:100%;display:block;border:0;padding:0;margin:0}#colorbox,#cboxContent,#cboxLoadedContent{box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}#cboxOverlay{background:#000;opacity:0.9;filter:alpha(opacity=90)}#colorbox{outline:0}#cboxTopLeft{width:14px;height:14px;background:url(/images/colorbox/controls.png) no-repeat 0 0}#cboxTopCenter{height:14px;background:url(/images/colorbox/border.png) repeat-x top left}#cboxTopRight{width:14px;height:14px;background:url(/images/colorbox/controls.png) no-repeat -36px 0}#cboxBottomLeft{width:14px;height:43px;background:url(/images/colorbox/controls.png) no-repeat 0 -32px}#cboxBottomCenter{height:43px;background:url(/images/colorbox/border.png) repeat-x bottom left}#cboxBottomRight{width:14px;height:43px;background:url(/images/colorbox/controls.png) no-repeat -36px -32px}#cboxMiddleLeft{width:14px;background:url(/images/colorbox/controls.png) repeat-y -175px 0}#cboxMiddleRight{width:14px;background:url(/images/colorbox/controls.png) repeat-y -211px 0}#cboxContent{background:#fff;overflow:visible}.cboxIframe{background:#fff}#cboxError{padding:50px;border:1px solid #ccc}#cboxLoadedContent{margin-bottom:5px}#cboxLoadingOverlay{background:url(/images/colorbox/loading_background.png) no-repeat center center}#cboxLoadingGraphic{background:url(/images/colorbox/loading.gif) no-repeat center center}#cboxTitle{position:absolute;bottom:-25px;left:0;text-align:center;width:100%;font-weight:bold;color:#7C7C7C}#cboxCurrent{position:absolute;bottom:-25px;left:58px;font-weight:bold;color:#7C7C7C}#cboxPrevious,#cboxNext,#cboxSlideshow,#cboxClose{border:0;padding:0;margin:0;overflow:visible;position:absolute;bottom:-29px;background:url(/images/colorbox/controls.png) no-repeat 0px 0px;width:23px;height:23px;text-indent:-9999px}#cboxPrevious:active,#cboxNext:active,#cboxSlideshow:active,#cboxClose:active{outline:0}#cboxPrevious{left:0px;background-position:-51px -25px}#cboxPrevious:hover{background-position:-51px 0px}#cboxNext{left:27px;background-position:-75px -25px}#cboxNext:hover{background-position:-75px 0px}#cboxClose{right:0;background-position:-100px -25px}#cboxClose:hover{background-position:-100px 0px}.cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px;right:27px}.cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px}.cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px;right:27px}.cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px}html{font-family:"Open Sans","IBM Plex Sans",sans-serif}body{font-family:"Open Sans","IBM Plex Sans",sans-serif;background-color:#fff}.drilldown a{background-color:#fafafb}@media screen and (max-width: 39.938em){.no-js .top-bar{display:none}}@media print, screen and (min-width: 40em){.no-js .title-bar{display:none}}.no-js .orbit-container{height:auto}.no-js .orbit-slide{display:none}.no-js .orbit-slide.is-active{display:block}.top-bar{background-color:#fafafb;box-shadow:0 1px 0 rgba(12,13,14,0.1),0 1px 3px rgba(12,13,14,0.1),0 4px 20px rgba(12,13,14,0.035),0 1px 1px rgba(12,13,14,0.025)}.top-bar a.title{color:#333;font-weight:bold;font-size:110%}.top-bar ul{background-color:#fafafb}.top-bar a{color:#777}.top-bar a:hover{color:#777}a,a:hover{color:#a5073e}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Open Sans","IBM Plex Sans",sans-serif;color:#1b6ac6}code{border:0}pre{background-color:#fafafb;border:1px solid #CCC;white-space:pre-wrap;padding:8px;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);margin:16px 0}.hljs{background-color:#fafafb}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{border-top-color:#a5073e}.top-spacer{margin-top:64px}@media print, screen and (min-width: 40em){.top-spacer{margin-top:32px}}p{margin-bottom:0.5rem}li p,.ulist ul li p,.arabic li p,dd p{margin-bottom:0.25em}dl dt{font-size:120%;margin-bottom:0}.nb-orbit{background:#000}.nb-orbit .orbit-container .orbit-slide{color:#fff}.ulist .menu ul{padding:0;margin:0;list-style:none;position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:row;flex-direction:row}section.hero{color:#fff;position:relative;padding:12px 0 0 0}section.hero .grid-container .cell h1,section.hero .grid-container .cell p{color:#eee}section.hero .grid-container .cell h1 a,section.hero .grid-container .cell p a{color:#fff}.hero.news,.orbit-wrapper{background:linear-gradient(rgba(27,106,198,0.88), rgba(46,144,232,0.84)),url("/images/hero-background.jpg") no-repeat;background-size:cover;background-position:center bottom}.hero.news{margin-bottom:1.5em}.toc{max-width:75%;border-top:1px solid #ddd;border-bottom:1px solid #ddd;margin:0 auto}.toc ul.sectlevel2,.toc ul.sectlevel3,.toc ul.sectlevel4{display:none}.toc ul{margin:0;padding:8px;list-style-type:none}.toc ul li{display:block;font-size:10pt;color:#327cc5}.toc ul li a{color:#a5073e}@media print, screen and (min-width: 40em){.toc{border-top:0px;border-bottom:0px;border-left:1px solid #ddd;max-width:15em;margin:0 0 2em 2em;float:right}.toc ul.sectlevel2,.toc ul.sectlevel3,.toc ul.sectlevel4{display:block}.toc ul{margin-left:8px}.toc ul li{display:block;line-height:1.68em;margin-bottom:1em}}.valign-top{vertical-align:top}table{width:auto;margin:1rem auto}table tbody tr{border-bottom:1px solid #f1f1f1}table tbody tr:nth-child(2n){background-color:#fff;border-bottom:1px solid #f1f1f1}.main-content{padding:0 16px}.main-content .aside{background-color:#eff0f1;font-size:90%}.main-content .aside p,.main-content .aside div{font-size:10pt}.thumbnail{border:0;box-shadow:none}.tutorial .imageblock .content .image img{box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);border:1px solid #1b6ac6;padding:8px;margin:8px 0 16px 0}.tutorial .imageblock .content .image img:hover{border:1px solid #2e90e8}.tutorial .imageblock .content img{box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);border:1px dotted #327cc5;padding:8px;margin:8px 0 16px 0}.admonitionblock{font-size:90%;color:#333}.admonitionblock table{margin:1rem 0}.reviewed{font-size:80%;margin-bottom:2rem;color:#888}.reviewed i{color:#a1c535}kbd{margin:0 0.25em;padding:0px 8px;background-color:#f6f6f6;color:#000;border-radius:4px;box-shadow:0 1px 3px #000,0 1px 2px rgba(0,0,0,0.24);font-size:95%}span.icon>.fa{cursor:default}a span.icon>.fa{cursor:inherit}.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,0.5);cursor:default}.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#1b6ac6}.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,0.8);color:#a1c535}.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#a5073e}.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#a5073e}.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#1b6ac6}.conum[data-value]{display:inline-block;color:#fff !important;background-color:#0a0a0a;border-radius:100px;text-align:center;font-size:0.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans", "DejaVu Sans", sans-serif;font-style:normal;font-weight:bold}.conum[data-value] *{color:#fff !important}.conum[data-value]+b{display:none}.conum[data-value]:after{content:attr(data-value)}pre .conum[data-value]{position:relative;top:-0.125em}b.conum *{color:inherit !important}.conum:not([data-value]):empty{display:none}footer{min-height:256px;background-color:#333;color:#ddd;padding:64px 0;margin-top:64px}footer h1{font-size:120%;font-weight:bold;text-transform:uppercase;color:#ddd}footer ul{list-style-type:none;margin:0}footer ul li{margin-bottom:8px}footer a{color:#ddd}footer a:hover{color:#fff}.footer-disclaimer{background-color:#000}.footer-disclaimer-content{margin:0 auto;padding:64px 0;display:block;max-width:75%;font-size:10pt}.footer-disclaimer-content p{margin:8px 0 0 0;text-align:center;color:#ccc}.footer-disclaimer-content p a{color:#fff}.footer-disclaimer-content pre{color:#fff;font-size:10pt}.footer-disclaimer-content img{width:200px;max-width:100%}.sidebarblock.cards{text-align:center}.paragraph.card{text-align:left;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12);border-radius:4px;display:inline-block;vertical-align:top;max-width:16em;min-height:10em;background-color:#1b6ac6;color:#fff;margin:0.5em;padding:1em}.paragraph.card a{color:#fff;text-decoration:underline;font-weight:bold}.paragraph.card .title{font-size:130%;font-weight:bold;margin-bottom:0.5em}.paragraph.card.blue{background-color:#1b6ac6}.paragraph.card.green{background-color:#a1c535}.paragraph.card.magenta{background-color:#a5073e}.openblock.feature{padding:1em 0;margin:0.5em 0;overflow:auto;padding:1em 0 0.5em 0}.openblock.feature .title{font-weight:bold;font-size:140%}.openblock.feature .content .paragraph p span.image{max-width:100%;padding:4px}@media print, screen and (min-width: 40em){.openblock.feature .content .paragraph p span.image{margin:0.5em 1em 0.5em 0;max-width:60%;border:1px solid #a5073e;float:left}.openblock.feature .content .paragraph p span.image.right{float:right;margin:0.5em 0 0.5em 1em}.openblock.feature:after{clear:both}}.videoblock .content{clear:both;float:none;height:0;margin:1em 0 1.5em 0;padding-bottom:56.25%;padding-top:25px;position:relative;width:100%}.videoblock .content iframe{height:100%;left:0;position:absolute;top:0;width:100%}
 
-==========================================================
-COLORS (bgcolor / font-color)
-- Box header, Table name header,bolder: #ff9742 / #ffffff
-- Box body - dark  : #fed78c / #000000
-           - light : #ffe8bc / #000000
-- Table name of col. - dark  : #ff9742 / #ffffff
-                     - light : #fed78c / #bf6212
-                             : #ffe8bc / #000000
-- Table row - dark  : #ffe8bc / #000000
-            - light : #ffffff / #000000
-- h1,.h1 : #ff9742 / #080c77
-- h2-h4,.h2-.h4,titlec : ? / #bf6212
-- .code : #ffe8bc / ?
-
-FONT supported sizes: 130%, 125%, 110%, 100%, 85%, 10pt, 75%, 60% (default is 10pt)
-SUPPORTED FONTS : Verdana, sans-serif, helvetica, arial
-=============================================================
-*/
-
-body	{
-	font-family: Verdana, sans-serif, helvetica, arial;
-	font-size: 12px;
-	background-color: #FFFFFF;
-	}
-
-td	{
-	font-family: Verdana, sans-serif, helvetica, arial;
-	font-size: 12px;
-	}
-
-.default  {
-	font-family: Verdana, sans-serif, helvetica, arial;
-	}
-
-h1 {font-size: 17px; font-weight : bold; color: #080c77; line-height: 35px; border-right-color: #ffffff; border-left-color: #ffffff; border-bottom-color: #ff9843; border-top-color: #ff9843; border-width: 1px; border-style: solid;}
-h2 {font-size: 15px; font-weight: bold; color: #ee6d06; }
-h3 {font-size: 13px; font-weight: bold; color: #ee6d06; }
-h4 {font-size: 12px; font-weight: normal; color: #ee6d06; }
-h5,h6 {font-size: 11px; font-weight: normal; color: #ee6d06; }
-
-.h1 {font-size: 17px; font-weight : bold; color: #ee6d06;}
-.h2 {font-size: 15px; font-weight: bold; color: #ee6d06; }
-.h3 {font-size: 13px; font-weight: bold; color: #ee6d06; }
-.h4 {font-size: 12px; font-weight: normal; color: #ee6d06; }
-
-.smalltextbase {
-	font-family: Verdana, sans-serif, helvetica, arial;
-	font-size: 10px;
-	line-height: 1.2em;
-	}
-
-.smalltext {
-	font-size: 10px;
-	line-height: 1.2em;
-	}
+code{font-size: 1em;}
+.apidocmaincontent{
+    height: 92%;
+    width: 80%;
+    position: fixed;
+    overflow-x: hidden;
+    right:0;
+    font-size: 11px;
+    padding-top:15px;
+    padding-left: 3px;
 
-.tmtext {
-	font-size: 10px;
-	line-height: 1.2em;
-	}
 
-a:link, a:visited {
-  color: #0E0E76;
-  font-weight : bold;
-  text-decoration: none;
 }
-
-a:link:hover, a:visited:hover  {
-  color: #080c77;
-  font-weight : bold;
-  text-decoration : underline;
+.innercontent{
+    width:83%;
+    font-family: Verdana, sans-serif, helvetica, arial
 }
-
-/* Interesting Trick : add envelope icon in front of mailto links
-a[href^="mailto:"]:before { content: "\2709    " } */
-
-/* NAVIGATION TOP */
-
-.topmenucur {
-  			font-family: Verdana, sans-serif, helvetica, arial;
-			color: #000000;
-			font-size: 12px;
-			font-weight : bold;
-			text-decoration : none;
-			}
-
-.bgtopmenucur {
-                       background-color: #fbf3e1;
-              		}
-
-.topmenu    {
-  			font-family: Verdana, sans-serif, helvetica, arial;
-			color: #ffffff;
-			font-size: 12px;
-			font-weight : bold;
-			text-decoration : none;
-			}
-.bgtopmenu {
-                       background-color: #000069;
-              		}
-.tops       {
-			font-family: Verdana, sans-serif, helvetica, arial;
-			color: #000000;
-			font-size: 11px;
-			text-decoration : none;
-	    		}
-a.tops       {
-			color: #000000;
-	    		}
-.niceborder  {
-			background-color: #f8a765;
-             		}
-
-
-/*LEFT Navigation*/
-
-.leftmenucur	{
-  font-family: Verdana, sans-serif, helvetica, arial;
-  font-size: 10px;
-  line-height: 1.8em;
-  background-color: #f6dcac;
-  }
-
-.leftmenu	{
-  font-family: Verdana, sans-serif, helvetica, arial;
-  font-size: 10px;
-  line-height: 1.8em;
-  color: #000000;
-  background-color: #f6dcac;
-  }
-
-a.leftmenu	{
-  font-family: Verdana, sans-serif, helvetica, arial;
-  font-weight: bold;
-  color: #000000;
-  line-height: 1.8em;
-  background-color: #f6dcac;
-  }
-
-.bgleftmenuhead {
-  background-color: #e9924c;
-  }
-
-
-.leftmenusplit {
- background-color: #fff3d6;
-  }
-
-.leftmenustin {
- background-color: #a0a0a0;
-  }
-/*PLAGIN PAGE*/
-
-.plagin 	{
-	background-image: url(http://testwww2.netbeans.org/images/general/plagin.gif);
-        background-repeat: no-repeat;
-	font-size: 10px;
-	line-height: 1.2em;
-        font-weight : bold;
-        color: #080c77;
-
-		}
-
-.plaginon 	{
-	background-image: url(http://testwww2.netbeans.org/images/general/plagin_on.gif);
-        background-repeat: no-repeat;
-	font-size: 10px;
-	line-height: 1.2em;
-        font-weight : bold;
-        color: #ffffff;
-
-		}
-
-
-pre,samp,code,tt {
-  font-family: "Courier New", monospace;
+.tablebg {
+    width:100%;
 }
-
-
-/* show some code*/
-.codes	{
-	background-color: #f0f0f0
-	}
-.textbox {
-  font-family: Courier New, Monospaced;
-  }
-
-dt {font-weight: bold}
-dd {margin-left: 1.5em}
-
-/* --- IMPORT FOR JAVADOC -- */
-/* this part of css is automaticaly exported to file nb_special.css
-if you need make some changes please edit into netbeans.css*/
-
-/* TABLE STYLES */
-
-
-.tablebg	{
-	background-color: #ff9d42;
-	}
-
-.tablehbg	{
-	background-color: #ff9d42;
-	}
-
-.tablecbg	{
-	background-color: #fed78c;
-	}
-
-
-.tablerbg	{
-	background-color: #ffe8bc;
-	}
-
-.tabler	{
-	background-color: #FFFFFF;
-	}
-
-.tablersh	{
-	background-color: rgb(240,240,240);
-	}
-
-.tablecfont	{
-  font-weight: bold;
-	color: #000000;
-	}
-
-.tablehfont	{
-  font-weight: bold;
-	color: #000000;
-	}
-
-/* END TABLES */
-
-.titlec	{
-  font-weight: bold;
-	color: #ee6d06;
-	}
-
-.titlectable	{
-  font-weight: bold;
-	color: #000000;
-        line-height: 20px;
-	}
-
-
-
-.constant {
-  color: #b03060;
-  }
-
-.keyword {
-  color: #0000ff;
-  }
-
-.function-name {
-  color: #0000ff;
-  }
-
-.comment {
-  color: #666666;
-  font-style: italic;
-  }
-
-.string {
-  color: #b03060;
-  }
-
-.variable-name {
-  color: #006400;
-  }
-
-.type {
-  color: #00008b;
-  }
-
-.extra-java-font-lock-number {
-  color: #b03060;
-  }
-
-.builtin {
-  color: #0000ff;
-  }
-
-/* --- END IMPORT FOR JAVADOC -- */
-
-/* Collab css*/
-
-leftnav1, .Footer, .footer1    {
-    font-size:    12px;
-    }
-
-.ProjectNameHeader, .Warning, .ProjectHeader    {
-    font-size:    12px;
-    }
-.Crumbing, .HeaderText    {
-    text-transform:    uppercase;
-    }
-A.Crumbing:hover, A.FooterNav:active, A.FooterNav:hover, A.FooterTextLink  {
-    text-decoration:    underline;
-    }
-.PlainText {
-	color : #000;
-	}
+.apidocleft{
+    height: 92%;
+    width: 20%;
+    position: fixed;
+    overflow-x: hidden;
+    left:0;
+    z-index: -1;
 
-	.PlainTextBold {
-	font-weight : bold;
-	color : #000;
 }
-	.Copy {
-	font-size : 12px;
-	color : #000;
+.toc{
+    right:10px;
+    position:fixed;
 }
-	.StatText {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
+.scroll {
+    overflow:auto;
+    white-space: nowrap;
+    width: 25%;
 }
-	.StatHeader {
-	font-weight : bold;
-	color : #fff;
-	font-size : 12px;
+
+.scroll a {
+    display: inline-block;
+    padding-left: 15px;
+    color:gainsboro;
 }
-	.DevHeader {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
-}
-	.DevName {
-	font-weight : bold;
-	color : #666;
-	font-size : 12px;
-}
-	.Header {
-	color : #000;
-	font-size : 100%;
-	font-weight : bold;
-}
-	.ProjectNameHeader {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
-}
-	.TableData {
-	color : #aa0000;
-	font-size : 12px;
-}
-	.NewsDate {
-	font-weight : bold;
-	color : #550000;
-	font-size : 12px;
-}
-	.Download {
-	font-weight : bold;
-	font-size : 12px;
-}
-	.StartCopy {
-	color : #000;
-	font-size : 12px;
-}
-	.Welcome {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
-}
-	.ProjectCategory {
-	font-weight : bold;
-	color : #aa7700;
-	font-size : 12px;
-}
-	.ResourcesHeader {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
-}
-	.ProjectName {
-	font-size : 12px;
-}
-	.ProjectName2 {
-	font-weight : bold;
-	color : #ffff00;
-	font-size : 12px;
-}
-	.ResourceName {
-	color : #000;
-	font-size : 12px;
-}
-	.InputHeader {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
-}
-	.InputHeaderReversed {
-	font-weight : bold;
-	color : #fff;
-	font-size : 12px;
-}
-	.ProjectHeader {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
-}
-	.NewsHeader {
-	font-weight : bold;
-	color : #aaaa00;
-	font-size : 12px;
-}
-	.NewsDateTable {
-	color : #000;
-	font-size : 12px;
-	font-weight : bold;
-}
-	.SiteHeader {
-	font-weight : bold;
-	color : #555500;
-	font-size : 12px;
-}
-	.ProjectDownloadHeader {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
-}
-	.Asterisk {
-	font-weight : bold;
-	color : #000;
-	font-size : 12px;
-}
-	.HelpText {
-	color : #000;
-}
-	.LeftNav {
-	color : #fff;
-}
-	.HelpTextHeader {
-	font-weight : bold;
-	color : #000;
-}
-	.HelpTextBold {
-	font-weight : bold;
-	color : #000;
-}
-	.SmallHeader {
-	font-weight : bold;
-	color : #00aa00;
-}
-	.ProjectNav {
-	color : #000;
-}
-	.Footer {
-	color : #000;
-}
-	.StatHeader {
-	font-weight : bold;
-	color : #fff;
-}
-	.Warning {
-	font-weight : bold;
-	color : #ff0000;
-	color : #000;
-	font-family : courier, monospace;
-}
-	.TypewriterBold {
-	font-weight : bold;
-	color : #000;
-	font-family : courier, monospace;
-}
-	.footer1 {
-	font-family : verdana;
-	color : #fff;
-}
-	a.footer1:link {
-	font-family : verdana;
-	color : #fff;
-}
-	a.footer1:active {
-	font-family : verdana;
-	color : #fff;
-}
-	a.footer1:hover {
-	font-family : verdana;
-	color : #fff;
-}
-	a.footer1:visited {
-	font-family : verdana;
-	color : #fff;
-}
-	.leftnav1 {
-	font-family : verdana;
-	color : #000;
-}
-	a.leftnav1:link {
-	font-family : verdana;
-	color : #000;
-}
-	a.leftnav1:active {
-	font-family : verdana;
-	color : #000;
-}
-	a.leftnav1:hover {
-	font-family : verdana;
-	color : #000;
-}
-	a.leftnav1:visited {
-	font-family : verdana;
-	color : #000;
-}
-	.FooterNav {
-	font-weight : bold;
-	color : #fff;
-}
-	A.FooterNav:link {
-	font-weight : bold;
-	color : #fff;
-}
-	A.FooterNav:visited {
-	font-weight : bold;
-	color : #fff;
-}
-	A.FooterNav:active {
-	font-weight : bold;
-	color : #fff;
-	text-decoration : underline;
-}
-	A.FooterNav:hover {
-	font-weight : bold;
-	color : #fff;
-	text-decoration : underline;
-}
-	.FooterTextLink {
-	font-weight : normal;
-	color : #fff;
-}
-	A.FooterTextLink:link {
-	font-weight : bold;
-	color : #fff;
-}
-	A.FooterTextLink:visited {
-	font-weight : bold;
-	color : #fff;
-}
-	A.FooterTextLink:active {
-	font-weight : bold;
-	color : #fff;
-	text-decoration : underline;
-}
-	A.FooterTextLink:hover {
-	font-weight : bold;
-	color : #fff;
-	text-decoration : underline;
-}
-	.HeaderText {
-	font-weight : bold;
-	color : #3399ff;
-	text-transform : uppercase;
-}
-	.Crumbing {
-	font-weight : bold;
-	font-style : italic;
-	color : #fff;
-	text-transform : uppercase;
-}
-	A.Crumbing:link {
-	font-weight : bold;
-	font-style : italic;
-	color : #fff;
-}
-	A.Crumbing:visited {
-	font-weight : bold;
-	font-style : italic;
-	color : #fff;
-}
-	A.FooterNav:active {
-	font-weight : bold;
-	color : #fff;
-	text-decoration : underline;
-}
-	A.FooterNav:hover {
-	font-weight : bold;
-	color : #fff;
-	text-decoration : underline;
-}
-	.FooterTextLink {
-	font-weight : normal;
-	color : #fff;
-}
-	A.FooterTextLink:link {
-	font-weight : bold;
-	color : #fff;
-}
-	A.FooterTextLink:visited {
-	font-weight : bold;
-	color : #fff;
-}
-	A.FooterTextLink:active {
-	font-weight : bold;
-	color : #fff;
-	text-decoration : underline;
-}
-	A.FooterTextLink:hover {
-	font-weight : bold;
-	color : #fff;
-	text-decoration : underline;
-}
-	.HeaderText {
-	font-weight : bold;
-	color : #3399ff;
-	text-transform : uppercase;
-}
-	.Crumbing {
-	font-weight : bold;
-	font-style : italic;
-	color : #fff;
-	text-transform : uppercase;
-}
-	A.Crumbing:link {
-	font-weight : bold;
-	font-style : italic;
-	color : #fff;
-}
-	A.Crumbing:visited {
-	font-weight : bold;
-	font-style : italic;
-	color : #fff;
+.scroll  a.apacheversion{
+    color:grey;
 }
-	A.Crumbing:active {
-	font-weight : bold;
-	font-style : italic;
-	color : #fff;
+.scroll  span {
+    display: inline-block;
+    padding-left: 15px;
+    font-weight: bold;
+    color:black;
 }
-	A.Crumbing:hover {
-	font-weight : bold;
-	font-style : italic;
-	color : #fff;
-	text-decoration : underline;
+
+ul.moduleslist {
+    list-style-type: none;
+    margin-left: 2px;
+    font-size:.9em;
 }
-	.SideText {
-	font-weight : normal;
-	color : #fff;
+ul.modulesclasslist {
+    list-style-type: none;
+    margin-left: 2px;
 }
-	.BodyText {
-	font-weight : normal;
-	color : #99ccff;
+
+li.module {
+    background: url('module.png') no-repeat ;
+    padding-left: 20px;
+    background-position:  left .25em;
 }
 
-	.navtablebg {
-	background-color : #669;
+li.class {
+    background: url('class.png') no-repeat ;
+    padding-left: 20px;
+    background-position:  left .25em;
 }
-	.navtablecbg {
-	background-color : #cc9;
+
+
+li.interface {
+    background: url('interface.png') no-repeat ;
+    padding-left: 20px;
+    background-position:  left .25em;
 }
-	.navtablecfont {
-	font-weight : bold;
-	color : #000000;
+.abstract {
+    background-color: #fafafb;
+    box-shadow: 0 1px 0 rgba(12,13,14,0.1),0 1px 3px rgba(12,13,14,0.1),0 4px 20px rgba(12,13,14,0.035),0 1px 1px rgba(12,13,14,0.025);
+    padding:10px;
 }
-
+.apidocdate {
+    background-color: #fafafb;
+    box-shadow: 0 1px 0 rgba(12,13,14,0.1),0 1px 3px rgba(12,13,14,0.1),0 4px 20px rgba(12,13,14,0.035),0 1px 1px rgba(12,13,14,0.025);
+    padding:0px;
+    font-size: 7pt;
+}
\ No newline at end of file
diff --git a/nbbuild/javadoctools/prose.css b/nbbuild/javadoctools/prose.css
index 99cf039..faad6b9 100644
--- a/nbbuild/javadoctools/prose.css
+++ b/nbbuild/javadoctools/prose.css
@@ -20,7 +20,7 @@
 
 @import "nb-docs.css";
 @import "netbeans.css"; /* copied from http://www.netbeans.org/netbeans.css */
-
+@import "javadoc.css";
 /* ... with just these changes: */
 
 /* XXX should these things really be overridden?
diff --git a/nbbuild/javadoctools/siteresource/annotation.png b/nbbuild/javadoctools/siteresource/annotation.png
new file mode 100644
index 0000000..e54f46a
--- /dev/null
+++ b/nbbuild/javadoctools/siteresource/annotation.png
Binary files differ
diff --git a/nbbuild/javadoctools/siteresource/apache-netbeans.svg b/nbbuild/javadoctools/siteresource/apache-netbeans.svg
new file mode 100644
index 0000000..d296421
--- /dev/null
+++ b/nbbuild/javadoctools/siteresource/apache-netbeans.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<svg xmlns="http://www.w3.org/2000/svg" width="444px" height="512px" viewBox="0 0 444 512" version="1.1">
+  <title>Apache NetBeans Logo</title>
+  <description>Apache NetBeans Logo</description>
+  <g id="logo" stroke-width="0" fill="none" fill-rule="evenodd">
+    <path d="M222,0 L222,99 L86,178 L0,128 L222,0 Z" fill="#A1C535"/>
+    <path d="M444,128 L358,178 L222,99 L222,0 L444,128 L444,128 Z" fill="#ADD439"/>
+    <path d="M444,384 L358,334 L358,178 L444,128 L444,384 L444,384 Z" fill="#1B6AC6"/>
+    <path d="M222,512 L222,413 L358,334 L444,384 L222,512 L222,512 Z" fill="#2E90E8"/>
+    <path d="M0,384 L86,334 L222,413 L222,512 L0,384 L0,384 Z" fill="#EA205E"/>
+    <path d="M0,128 L86,178 L86,334 L0,384 L0,128 L0,128 Z" fill="#A5073E"/>
+    <path d="M86,178 L222,99 L358,178 L222,256 L86,178 Z" fill="#F1F6E2"/>
+    <path d="M222,256 L358,178 L358,334 L222,413 L222,256 Z" fill="#CEDBE6"/>
+    <path d="M86,178 L222,256 L222,413 L86,334 L86,178 Z" fill="#FFFFFF"/>
+  </g>
+</svg>
diff --git a/nbbuild/javadoctools/siteresource/class.png b/nbbuild/javadoctools/siteresource/class.png
new file mode 100644
index 0000000..2fe485d
--- /dev/null
+++ b/nbbuild/javadoctools/siteresource/class.png
Binary files differ
diff --git a/nbbuild/javadoctools/siteresource/enum.png b/nbbuild/javadoctools/siteresource/enum.png
new file mode 100644
index 0000000..9a08a34
--- /dev/null
+++ b/nbbuild/javadoctools/siteresource/enum.png
Binary files differ
diff --git a/nbbuild/javadoctools/siteresource/interface.png b/nbbuild/javadoctools/siteresource/interface.png
new file mode 100644
index 0000000..05e4bff
--- /dev/null
+++ b/nbbuild/javadoctools/siteresource/interface.png
Binary files differ
diff --git a/nbbuild/javadoctools/siteresource/module.png b/nbbuild/javadoctools/siteresource/module.png
new file mode 100644
index 0000000..3a9cc50
--- /dev/null
+++ b/nbbuild/javadoctools/siteresource/module.png
Binary files differ
diff --git a/nbbuild/javadoctools/template.xml b/nbbuild/javadoctools/template.xml
index 1ec8097..6c9eef7 100644
--- a/nbbuild/javadoctools/template.xml
+++ b/nbbuild/javadoctools/template.xml
@@ -437,6 +437,12 @@
         <replace dir="${javadoc.out.dir}" token="@TOP@/" value="@TOP@">
             <include name="**/*.html"/>
         </replace>
+        <replace dir="${javadoc.out.dir}">
+            <replacetoken><![CDATA[<ul class="navList" title="Navigation">]]></replacetoken>
+            <replacevalue><![CDATA[<ul class="navList" title="Navigation"><li><a href="@TOP@apichanges.html">API Changes</a></li><li><a href="@TOP@architecture-summary.html">Architecture Summary</a></li>]]></replacevalue>
+            <include name="**/*.html"/>
+            <exclude name="**/**/architecture-summary.html,**/**/apichanges.html"/>
+        </replace>
         <replace dir="${javadoc.out.dir}" token="@TOP@" value="">
             <include name="*.html"/>
         </replace>