From 9c2c90c0b1fcfb200cee45bce10def273e5d3242 Mon Sep 17 00:00:00 2001
From: z3d <z3d@mail.i2p>
Date: Fri, 16 Oct 2009 20:01:18 +0000
Subject: [PATCH] Whitespace removals.

---
 .../src/net/i2p/router/web/SummaryHelper.java |  2 +-
 apps/routerconsole/jsp/configkeyring.jsp      |  4 +-
 apps/routerconsole/jsp/configpeer.jsp         |  8 +--
 apps/routerconsole/jsp/configstats.jsp        |  4 +-
 apps/routerconsole/jsp/configui.jsp           |  2 +-
 apps/routerconsole/jsp/help.jsp               | 11 ++--
 .../themes/console/classic/console.css        | 66 ++++++++++++++++---
 .../resources/themes/console/dark/console.css | 14 +++-
 .../themes/console/light/console.css          | 19 +++++-
 readme.html                                   |  4 +-
 readme_de.html                                |  2 +-
 readme_fr.html                                |  2 +-
 readme_nl.html                                |  2 +-
 readme_sv.html                                |  2 +-
 readme_zh.html                                |  2 +-
 .../router/transport/ntcp/NTCPTransport.java  |  6 +-
 .../router/transport/udp/UDPTransport.java    | 10 +--
 17 files changed, 111 insertions(+), 49 deletions(-)

diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
index 369d24770d..5c7779cf5d 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
@@ -356,7 +356,7 @@ public class SummaryHelper extends HelperBase {
         Collections.sort(clients, new AlphaComparator());
         
         StringBuilder buf = new StringBuilder(512);
-        buf.append("<h3><a href=\"i2ptunnel/index.jsp\" target=\"_blank\" title=\"Add/remove/edit &amp; control your client and server tunnels (local destinations).\"  title=\"View existing tunnels and tunnel build status.\">Local destinations</a></h3><hr><table>");
+        buf.append("<h3><a href=\"i2ptunnel/index.jsp\" target=\"_blank\" title=\"Add/remove/edit &amp; control your client and server tunnels (local destinations).\"  title=\"View existing tunnels and tunnel build status.\">Local destinations</a></h3><hr><table class=\"tunnels\">");
         
         for (Iterator iter = clients.iterator(); iter.hasNext(); ) {
             Destination client = (Destination)iter.next();
diff --git a/apps/routerconsole/jsp/configkeyring.jsp b/apps/routerconsole/jsp/configkeyring.jsp
index 0c054a7d23..02e3845de8 100644
--- a/apps/routerconsole/jsp/configkeyring.jsp
+++ b/apps/routerconsole/jsp/configkeyring.jsp
@@ -17,15 +17,13 @@
  <jsp:getProperty name="formhandler" property="allMessages" />
  <jsp:useBean class="net.i2p.router.web.ConfigKeyringHelper" id="keyringhelper" scope="request" />
  <jsp:setProperty name="keyringhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
-<div class="configure"><p><h3>Keyring</h3>
+<div class="configure"><h2>Keyring</h2>
  The router keyring is used to decrypt encrypted leaseSets.
  The keyring may contain keys for local or remote encrypted destinations.
  <div class="wideload"><p>
  <jsp:getProperty name="keyringhelper" property="summary" />
 </p></div>
 
- <br>
-
  <form action="configkeyring.jsp" method="POST">
  <% String prev = System.getProperty("net.i2p.router.web.ConfigKeyringHandler.nonce");
     if (prev != null) System.setProperty("net.i2p.router.web.ConfigKeyringHandler.noncePrev", prev);
diff --git a/apps/routerconsole/jsp/configpeer.jsp b/apps/routerconsole/jsp/configpeer.jsp
index 007452229d..9c010b67a8 100644
--- a/apps/routerconsole/jsp/configpeer.jsp
+++ b/apps/routerconsole/jsp/configpeer.jsp
@@ -31,7 +31,6 @@
     if (prev != null) System.setProperty("net.i2p.router.web.ConfigPeerHandler.noncePrev", prev);
     System.setProperty("net.i2p.router.web.ConfigPeerHandler.nonce", new java.util.Random().nextLong()+""); %>
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigPeerHandler.nonce")%>" />
-<p>
  <a name="sh"> </a>
  <a name="unsh"> </a>
  <a name="bonus"> </a>
@@ -40,7 +39,6 @@
  <input type="text" size="55" name="peer" value="<%=peer%>" /></div>
  <h3>Manually Ban / Unban a Peer</h3>
  Banning will prevent the participation of this peer in tunnels you create.
-      <hr>
       <div class="formaction">
         <input type="submit" name="action" value="Ban peer until restart" />
         <input type="submit" name="action" value="Unban peer" />
@@ -53,26 +51,22 @@
  Bonuses may be positive or negative, and affect the peer's inclusion in Fast
       and High Capacity tiers. Fast peers are used for client tunnels, and High
       Capacity peers are used for some exploratory tunnels. Current bonuses are
-      displayed on the <a href="profiles.jsp">profiles page</a>.
-      <p>
+      displayed on the <a href="profiles.jsp">profiles page</a>.<br>
  <% long speed = 0; long capacity = 0;
     if (! "".equals(peer)) {
         // get existing bonus values?
     }
  %>
- <hr>
  <div class="mediumtags">Speed:
  <input type="text" size="8" name="speed" value="<%=speed%>" />
  Capacity:
  <input type="text" size="8" name="capacity" value="<%=capacity%>" />
  <input type="submit" name="action" value="Adjust peer bonuses" /></div>
- </p>
  </form>
  <a name="shitlist"> </a>
  <jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
  <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
  <jsp:getProperty name="profilesHelper" property="shitlistSummary" />
- <hr>
  <div class="wideload">
  <jsp:getProperty name="peerhelper" property="blocklistSummary" />
 
diff --git a/apps/routerconsole/jsp/configstats.jsp b/apps/routerconsole/jsp/configstats.jsp
index 122d035c3b..53dc83eda4 100644
--- a/apps/routerconsole/jsp/configstats.jsp
+++ b/apps/routerconsole/jsp/configstats.jsp
@@ -71,12 +71,12 @@ function toggleAll(category)
  <input type="hidden" name="action" value="foo" />
  <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigStatsHandler.nonce")%>" />
  <h3>Configure I2P Stat Collection</h3>
- Enable full stats?
+ <p>Enable full stats?
  <input type="checkbox" class="optbox" name="isFull" value="true" <%
  if (statshelper.getIsFull()) { %>checked="true" <% } %>/>
  (change requires restart to take effect)<br>
  Stat file: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br>
- Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<br>
+Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<br></p>
  <div class="wideload">
  <table>
  <% while (statshelper.hasMoreStats()) {
diff --git a/apps/routerconsole/jsp/configui.jsp b/apps/routerconsole/jsp/configui.jsp
index 89f7d7c2bf..a3a2cb47d3 100644
--- a/apps/routerconsole/jsp/configui.jsp
+++ b/apps/routerconsole/jsp/configui.jsp
@@ -20,7 +20,7 @@
  <jsp:setProperty name="formhandler" property="*" />
  <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
  <jsp:getProperty name="formhandler" property="allMessages" />
-<div class="configure"><h3>Router Console Theme</h3>
+<div class="configure"><div class="topshimten"><h3>Router Console Theme</h3></div>
 <%
  // userAgent defined in confignav
  if (userAgent == null || !userAgent.contains("MSIE")) {
diff --git a/apps/routerconsole/jsp/help.jsp b/apps/routerconsole/jsp/help.jsp
index 0ae11a95ae..acdb918f8d 100644
--- a/apps/routerconsole/jsp/help.jsp
+++ b/apps/routerconsole/jsp/help.jsp
@@ -18,11 +18,11 @@ help with other aspects of the project, please see the documentation for
 You may also try the <a href="http://forum.i2p/">I2P forum</a>
 or IRC.<br>
 
-<h2>Summary Bar Information</h2><div align="justify">
+<h2>Summary Bar Information</h2><p>
 Many of the stats on the summary bar may be
 <a href="configstats.jsp">configured</a> to be
 <a href="graphs.jsp">graphed</a> for further analysis.
-</div><h3>General</h3><ul>
+</p><h3>General</h3><ul>
 <li class="tidylist"><b>Ident:</b>
 The first four characters (24 bits) of your 44-character (256-bit) Base64 router hash.
 The full hash is shown on your <a href="netdb.jsp?r=.">router info page</a>.
@@ -129,9 +129,8 @@ or reject all requests for a number of reasons, to control
 the bandwidth and CPU demands and maintain capacity for
 local clients.</ul>
 
-<h2>Legal stuff</h2><div align="justify">
-The I2P router (router.jar) and SDK (i2p.jar) are almost entirely public domain, with
-a few notable exceptions:</div><br><ul>
+<h2>Legal stuff</h2><p>The I2P router (router.jar) and SDK (i2p.jar) are almost entirely public domain, with
+a few notable exceptions:</p><ul>
 <li class="tidylist">ElGamal and DSA code, under the BSD license, written by TheCrypto</li>
 <li class="tidylist">SHA256 and HMAC-SHA256, under the MIT license, written by the Legion of the Bouncycastle</li>
 <li class="tidylist">AES code, under the Cryptix (MIT) license, written by the Cryptix team</li>
@@ -166,7 +165,7 @@ details on other applications available, as well as their licenses, please see t
 client applications can be found on our <a href="http://www.i2p2.i2p/download">download page</a>.
 .</p>
 
-<h2>Release history</h2>
+<h2>Release history</h2><br>
  <jsp:useBean class="net.i2p.router.web.ContentHelper" id="contenthelper" scope="request" />
  <% java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "history.txt"); %>
  <jsp:setProperty name="contenthelper" property="page" value="<%=fpath.getAbsolutePath()%>" />
diff --git a/installer/resources/themes/console/classic/console.css b/installer/resources/themes/console/classic/console.css
index 3252275988..f25f4d0dd7 100644
--- a/installer/resources/themes/console/classic/console.css
+++ b/installer/resources/themes/console/classic/console.css
@@ -209,6 +209,15 @@ div.routersummary tr {
      border: 0 !important;
 }
 
+.tunnels {
+     margin-top: 3px;
+}
+
+.tunnels tr {
+     padding: 4px 0 !important;
+     margin-left: -7px !important;
+}
+     
 div.routersummary form {
      margin-top: 8px;
 }
@@ -260,7 +269,7 @@ div.main {
 }
 
 div.main ul {
-     margin: 0;
+     margin: 5px 0 -10px -10px;
 }
 
 div.main li {
@@ -274,11 +283,28 @@ div.main li:first-child {
      padding-top: 15px;
 }
 
+div.main hr:last-child {
+     margin: 15px 0 10px 0;
+}
+
 div.main textarea {
      width: 98% !important; 
      margin: 2px 0 2px 5px;
 }
 
+div.main h2 {
+     margin-top: 20px;
+}
+
+div.welcome {
+     margin-top: 5px;
+}
+
+div.main h2:first-child, div.main h3:first-child {
+     margin-top: 0px;
+     margin-bottom: 10px;
+}
+
 div.news {
      margin: -5px 0px 0 195px;
      padding: -10px 0px 8px 0px;
@@ -299,11 +325,11 @@ div.news {
 div.news li {
      text-align: justify;
      list-style: none;
-     margin: -15px 15px -30px -20px;
+     margin: -15px 15px -25px -20px;
      padding: 0px 0 15px 0;
      border-bottom: 2px dotted #cc7;
      border-top: 0px solid #cc7;     
-     padding: 3px 5px 5px 5px;
+     padding: 3px 5px 5px 0;
      font-size: 10pt;
      color: #540;
 }
@@ -326,9 +352,9 @@ div.news a:visited {
 div.news hr {
      color: #cc7;
      background: #cc7;
-     height: 2px;
+     height: 1px;
      border: 0px solid #cccc77;
-     margin: 5px 0;
+     margin: 2px 0 0 0;
 }
 
 div.confignav {
@@ -362,6 +388,22 @@ div.configure tr {
      -moz-box-shadow: inset 0px 0px 1px 0px #bbf;
 }
 
+div.configure li:first-child, div.main li:first-child {
+     margin-top: -10px;
+}
+
+div.configure li:last-child {
+     margin-bottom: -5px;
+}
+
+div.configure h2:first-child {
+     margin-top: 15px;
+}
+
+.topshimten {
+     margin-top: 15px;
+} 
+
 div.messages {
      padding: 0px 10px;
      background: #fff;
@@ -417,6 +459,7 @@ h3 {
      border-bottom: 3px solid #aaf;
      border-top: 0px solid #aaf;
      letter-spacing: 0.04em;
+     margin-bottom: 10px;
 }
 
 .proxyfooter{
@@ -513,6 +556,7 @@ div.joblog:ul {
 div.joblog li:first-child {
      margin-top: -10px;
 }
+
 div.joblog li:last-child {
      margin-bottom: -10px;
 }
@@ -530,7 +574,11 @@ div.joblog p {
 }
 
 div.joblog h3 {
-     margin: 5px 0 5px 0;
+     margin: 10px 0 10px 0;
+}
+
+div.joblog h3:first-child {
+     margin: 5px 0 15px 0;
 }
 
 div.joblog hr {
@@ -571,10 +619,10 @@ p {
 }
 
 .langbox {
-     margin: 20px -15px 0px 5px;
+     margin: 10px -20px 0px 5px;
      color: #001;
      font-size: 7pt;
-     width: 180px;
+     width: 220px;
      text-align: center;
      float: right;
      valign: middle;
@@ -641,7 +689,7 @@ tt {
 }
 
 div.graphspanel {
-     padding: 20px 10px;
+     padding: 15px 5px 20px 5px;
      margin: -20px;
      background: #ddf url('images/lightbluetile.png');
      -moz-border-radius: 4px;
diff --git a/installer/resources/themes/console/dark/console.css b/installer/resources/themes/console/dark/console.css
index ddcb3f143f..921b321f53 100644
--- a/installer/resources/themes/console/dark/console.css
+++ b/installer/resources/themes/console/dark/console.css
@@ -154,7 +154,7 @@ div.routersummary h4 {
 div.routersummary table {
      border: 0;
      text-align: center !important;
-     margin: -1px -4px -4px -4px;
+     margin: -4px -4px -4px -4px;
      width: 185px !important;
      overflow: hidden;
      font-size: 8pt;
@@ -169,6 +169,15 @@ div.routersummary tr {
      border: 0 !important;
 }
 
+.tunnels {
+     margin-top: 0 !important;
+}
+
+.tunnels tr {
+     padding: 4px 0 !important;
+     margin-left: -6px !important;
+}
+
 div.routersummary form {
      margin-top: 8px;
 }
@@ -292,6 +301,7 @@ div.news li {
      padding: 5px 5px 5px 0;
      vertical-align: middle;
      word-wrap: break-word;
+     color: #99f;
 }
 
 div.news h4 {
@@ -532,7 +542,7 @@ a:link, h2 a:link{
 }
 
 a:visited{
-     color: #7bb;
+     color: #77f;
      text-decoration: none;
      font-weight: bold;     
      word-wrap: break-word;
diff --git a/installer/resources/themes/console/light/console.css b/installer/resources/themes/console/light/console.css
index 0c194ba0e9..6ec4d363f4 100644
--- a/installer/resources/themes/console/light/console.css
+++ b/installer/resources/themes/console/light/console.css
@@ -161,6 +161,15 @@ div.routersummary tr {
      border: 0 !important;
 }
 
+.tunnels {
+     margin-top: 0 !important;
+     margin-left: -7px !important;
+}
+
+.tunnels tr {
+     padding: 4px 0 !important;
+}
+
 div.routersummary form {
      margin-top: 8px;
 }
@@ -261,6 +270,10 @@ div.main hr, hr {
      margin: 10px 0;
 }
 
+hr:last-child {
+     margin-top: 20px !important;
+}
+
 div.main textarea {
      background: #eef;
      color: #001;
@@ -531,14 +544,14 @@ code {
 }
 
 a:link{
-     color: #007;
+     color: #008;
      text-decoration: none;
      font-weight: bold;
      word-wrap: break-word;
 }
 
 a:visited{
-     color: #606;
+     color: #004;
      text-decoration: none;
      font-weight: bold;
 }
@@ -863,7 +876,7 @@ div.joblog li:first-child {
      margin-top: 10px;
 }
 div.joblog li:last-child {
-     margin-bottom: -10px;
+     margin-bottom: -15px;
 }
 
 div.joblog form:first-child {
diff --git a/readme.html b/readme.html
index 78da364ac5..fdb3682a96 100644
--- a/readme.html
+++ b/readme.html
@@ -6,7 +6,7 @@
     <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> 
     <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Welcome to I2P!</h2>
+<div class="welcome"><h2>Welcome to I2P!</h2></div>
 <p>If you've just started I2P, the Active: numbers on the left should start to 
   grow over the next few minutes and you'll see a "shared clients" local destination 
   listed on the left (if not, <a href="#trouble">see below</a>). Once those show 
@@ -37,7 +37,7 @@ up, you can:</p>
     </ul><br>
       There are many more eepsites - just follow the links from the ones you see, 
       bookmark your favorites, and visit them often! 
-    </li><br>
+    </li>
     <ul>
       <li class="tidylist"><b>browse the web</b> - there is currently an HTTP 
         "outproxy" in I2P hooked up to your own HTTP proxy on port 4444 - simply 
diff --git a/readme_de.html b/readme_de.html
index 8a7080ad8c..63f1d88e4b 100644
--- a/readme_de.html
+++ b/readme_de.html
@@ -1,7 +1,7 @@
 <div align="right">
 <div class="langbox" align="right"><a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a> <a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="Chinese" alt="Chinese"></a> <a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a> <a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Fran&ccedil;ais" alt="Fran&ccedil;ais"></a> <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Willkommen zu I2P!</h2>
+<div class="welcome"><h2>Willkommen zu I2P!</h2></div>
 <p>Wenn Du gerade I2P gestartet hast, sollten die "Active:" Zahlen links in den n&auml;chsten paar Minuten anwachsen und Du siehst dann dort ein "shared clients" lokales Ziel gelistet (falls nicht, <a href="#trouble">siehe Unten</a>). Sobald das erscheint, kannst Du:</p>
 <ul>
  <li class="tidylist"><b>"Eepsites" besuchen</b> - In I2P sind anonym gehostete Websites - 
diff --git a/readme_fr.html b/readme_fr.html
index a37411fc2a..268b72877e 100644
--- a/readme_fr.html
+++ b/readme_fr.html
@@ -1,7 +1,7 @@
 <div align="right">
 <div class="langbox" align="right"><a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a> <a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="Chinese" alt="Chinese"></a> <a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a> <a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Fran&ccedil;ais" alt="Fran&ccedil;ais"></a> <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Bienvenu a I2P!</h2>
+<div class="welcome"><h2>Bienvenu a I2P!</h2></div>
 <p>Si vous venez juste de lancer I2P, les chiffres sur la gauche &agrave; cot&eacute; de Active devraient commencer &agrave; augmenter dans les prochaines minutes et vous verrez un "Shared client" en destination locale list&eacute;s sur la gauche (si non, <a href=#trouble>voir plus bas</a>). Une fois qu'ils apparaissent, vous pouvez:</p>
 <ul>
   <li class="tidylist"><b>parcourir les "eepsites"</b> - sur I2P il y a des sites web anonymes h&eacute;berg&eacute;s - dites &agrave; votre navigateur d'utiliser <b>le HTTP proxy a l'adresse 127.0.0.1 port 4444</b>, ensuite vous pouvez naviguer sur les eepsites:<br>
diff --git a/readme_nl.html b/readme_nl.html
index a4067d353b..78f26ecba9 100644
--- a/readme_nl.html
+++ b/readme_nl.html
@@ -1,7 +1,7 @@
 <div align="right">
 <div class="langbox" align="right"><a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a> <a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="Chinese" alt="Chinese"></a> <a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a> <a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Fran&ccedil;ais" alt="Fran&ccedil;ais"></a> <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Welkom bij I2P!</h2>
+<div class="welcome"><h2>Welkom bij I2P!</h2></div>
 <p>Als je net I2P opgestart hebt, zullen de 'Active:' (Actieve) getallen aan de linkerkant in de komende minuten stijgen, en je zal een "Shared clients" (Gedeelde clients) lokale bestemming zien staan aan de linkerkant (indien niet, <a href=#trouble>zie hieronder</a>). Eenmaal je deze bestemming ziet, kan je:</p>
 <ul>
  <li><b>surfen naar "eepsites"</b> - op I2P zijn er anonieme websites - stel je browser in om de <b>HTTP proxy op 127.0.0.1, poort 4444</b> te gebruiken, en surf vervolgens naar een eepsite:<br><br>
diff --git a/readme_sv.html b/readme_sv.html
index eb85ff9d13..4c02cfcdfb 100644
--- a/readme_sv.html
+++ b/readme_sv.html
@@ -1,7 +1,7 @@
 <div align="right">
 <div class="langbox" align="right"><a href="/index.jsp?lang=en"><img src="/flags.jsp?c=us" title="English" alt="English"></a> <a href="/index.jsp?lang=zh"><img src="/flags.jsp?c=cn" title="Chinese" alt="Chinese"></a> <a href="/index.jsp?lang=de"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a> <a href="/index.jsp?lang=fr"><img src="/flags.jsp?c=fr" title="Fran&ccedil;ais" alt="Fran&ccedil;ais"></a> <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>Welcome to I2P!</h2>
+<div class="welcome"><h2>Welcome to I2P!</h2></div>
 <p>Om du just har startat I2P kommer de "Aktiva: #/#" b&ouml;rja &ouml;ka inom 
 n&aring;gra f&aring; minuter och du kommer se en destination kallad "delade 
 klienter" p&aring; den v&auml;nstra listan (om inte <a href="#trouble">se 
diff --git a/readme_zh.html b/readme_zh.html
index 9bc1ed6bfe..81ba4fd4dc 100644
--- a/readme_zh.html
+++ b/readme_zh.html
@@ -6,7 +6,7 @@
     <a href="/index.jsp?lang=nl"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a> 
     <a href="/index.jsp?lang=sv"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a></div>
 </div>
-<h2>欢迎使用 I2P!</h2>
+<div class="welcome"><h2>欢迎使用 I2P!</h2></div>
 <p>如果 I2P 已经运行,未来的几分钟里控制台左侧的活动节点(Active)数量将会增加,并会出现名为共享客户端("shared clients") 的本地目标。(如果没有,请见 <a href="#trouble">疑难解答</a>)。待出现以上消息后,您可以:</p>
 <ul>
  <li><B>浏览 I2P 站点 "eepsites"</B> -  I2P 网络内匿名运行的小站 - 您要首先设置浏览器的 <b>HTTP 代理</b> 为 127.0.0.1:4444 然后才能浏览 I2P 站点 - <ul>
diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
index 29aac8f7b1..2614af25d4 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
@@ -642,10 +642,10 @@ public class NTCPTransport extends TransportImpl {
         long totalRecv = 0;
 
         StringBuilder buf = new StringBuilder(512);
-        buf.append("<p><b id=\"ntcpcon\"><h3>NTCP connections: ").append(peers.size());
+        buf.append("<h3 id=\"ntcpcon\">NTCP connections: ").append(peers.size());
         buf.append(". Limit: ").append(getMaxConnections());
         buf.append(". Timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout()));
-        buf.append(".</b></h3>\n" +
+        buf.append(".</h3>\n" +
                    "<div class=\"wideload\"><table>\n" +
                    "<tr><th><a href=\"#def.peer\">Peer</a></th>" +
                    "<th>Dir</th>" +
@@ -730,7 +730,7 @@ public class NTCPTransport extends TransportImpl {
                        "</td></tr>\n");
         }
 
-        buf.append("</table></div></p>\n");
+        buf.append("</table></div>\n");
         out.write(buf.toString());
         buf.setLength(0);
     }
diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index 06b429889e..1d57814858 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -2002,7 +2002,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         buf.append(sendTotal).append("</b></td> <td align=\"center\"><b>").append(recvTotal).append("</b></td>\n");
         buf.append("      <td align=\"center\"><b>").append(resentTotal);
         buf.append("</b></td> <td align=\"center\"><b>").append(dupRecvTotal).append("</b></td>\n");
-        buf.append(" </tr></table></div></p><p>\n");
+        buf.append(" </tr></table></div>\n");
         long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes();
         // NPE here early
         double averagePacketSize = _context.statManager().getRate("udp.sendPacketSize").getLifetimeAverageValue();
@@ -2011,7 +2011,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         double nondupSent = ((double)bytesTransmitted - ((double)resentTotal)*averagePacketSize);
         double bwResent = (nondupSent <= 0 ? 0d : ((((double)resentTotal)*averagePacketSize) / nondupSent));
         buf.append("<h3>Percentage of bytes retransmitted (lifetime): ").append(formatPct(bwResent));
-        buf.append("</h3><i>(Includes retransmission required by packet loss)</i><br></p>\n");
+        buf.append("</h3><i>(Includes retransmission required by packet loss)</i>\n");
         out.write(buf.toString());
         buf.setLength(0);
         out.write(KEY);
@@ -2031,7 +2031,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
     }
     
     private static final String KEY = "<h3>Definitions:</h3><div class=\"configure\">" +
-        "<br><b id=\"def.peer\">Peer</b>: the remote peer.<br>\n" +
+        "<p><b id=\"def.peer\">Peer</b>: the remote peer.<br>\n" +
         "<b id=\"def.dir\">Dir</b>: v means they offer to introduce us, ^ means we offer to introduce them.<br>\n" +
         "<b id=\"def.idle\">Idle</b>: the idle time is how long since a packet has been received or sent.<br>\n" +
         "<b id=\"def.rate\">In/out</b>: the rates show a smoothed inbound and outbound transfer rate (KBytes per second).<br>\n" +
@@ -2049,10 +2049,10 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         "<b id=\"def.send\">TX</b>: the number of packets sent to the peer.<br>\n" +
         "<b id=\"def.recv\">RX</b>: the number of packets received from the peer.<br>\n" +
         "<b id=\"def.resent\">ReTX</b>: the number of packets retransmitted to the peer.<br>\n" +
-        "<b id=\"def.dupRecv\">DupRX</b>: the number of duplicate packets received from the peer." +
+        "<b id=\"def.dupRecv\">DupRX</b>: the number of duplicate packets received from the peer.</p>" +
         "</div>\n";
     
-    /**
+    /*
      * Cache the bid to reduce object churn
      */
     private class SharedBid extends TransportBid {
-- 
GitLab