<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <div class="markdown-here-wrapper" data-md-url="" style="">
      <p style="margin: 0px 0px 1.2em !important;">I see that you have
        basically left the discussion on remapping exception (even
        though there’s no section on it).</p>
      <p style="margin: 0px 0px 1.2em !important;">IMHO that is still
        confusing. The first example ends up like this:</p>
      <pre style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code class="hljs language-java" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block !important;display: block; overflow-x: auto; padding: 0.5em; color: rgb(51, 51, 51); background: rgb(248, 248, 248) none repeat scroll 0% 0%; -moz-text-size-adjust: none;">
<span class="hljs-function"><span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">public</span> <span class="hljs-title" style="color: rgb(153, 0, 0); font-weight: bold;">PositiveBigInteger</span><span class="hljs-params">(<span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">long</span> value)</span> </span>{         <span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">super</span>(value);   <span class="hljs-comment" style="color: rgb(153, 153, 136); font-style: italic;">// potentially doing useless work here         if (value <= 0)             throw new IllegalArgumentException("non-positive value");     }</span>
</code></pre>
      <p style="margin: 0px 0px 1.2em !important;">The second example
        ends up like this:</p>
      <pre style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code class="hljs language-java" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block !important;display: block; overflow-x: auto; padding: 0.5em; color: rgb(51, 51, 51); background: rgb(248, 248, 248) none repeat scroll 0% 0%; -moz-text-size-adjust: none;"><span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">public</span> <span class="hljs-class"><span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">class</span> <span class="hljs-title" style="color: rgb(153, 0, 0); font-weight: bold;color: rgb(68, 85, 136); font-weight: bold;">CustomDeflaterInputStream</span> <span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">extends</span> <span class="hljs-title" style="color: rgb(153, 0, 0); font-weight: bold;color: rgb(68, 85, 136); font-weight: bold;">DeflaterInputStream</span> </span>{

    <span class="hljs-function"><span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">public</span> <span class="hljs-title" style="color: rgb(153, 0, 0); font-weight: bold;">CustomDeflaterInputStream</span><span class="hljs-params">(InputStream in)</span> </span>{
        <span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">if</span> (in == <span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">null</span>)
            <span class="hljs-function"><span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">throw</span> <span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">new</span> <span class="hljs-title" style="color: rgb(153, 0, 0); font-weight: bold;">IllegalArgumentException</span><span class="hljs-params">(<span class="hljs-string" style="color: rgb(221, 17, 68);">"null input"</span>)</span></span>;
        <span class="hljs-keyword" style="color: rgb(51, 51, 51); font-weight: bold;">super</span>(in);          <span class="hljs-comment" style="color: rgb(153, 153, 136); font-style: italic;">// we avoided NullPointerException thrown here</span>
    }
}
</code></pre>
      <p style="margin: 0px 0px 1.2em !important;">Both are in the form
        “if (something) throw”. To me that is just parameter vaildation.
        The exact reason as to why parameter validation might be helpful
        in each case is irrelevant here - the two examples are morally
        equivalent - or, at the very least, the second example doesn’t
        deserve “all that space” in the JEP.</p>
      <p style="margin: 0px 0px 1.2em !important;">You have three very
        very nice examples:</p>
      <ul style="margin: 1.2em 0px;padding-left: 2em;">
        <li style="margin: 0.5em 0px;">parameter validation</li>
        <li style="margin: 0.5em 0px;">passing argument twice</li>
        <li style="margin: 0.5em 0px;">complex initialization</li>
      </ul>
      <p style="margin: 0px 0px 1.2em !important;">I’d say just add
        three sections with one example each and call it a day. Unless
        you can thing of something that looks more “qualitatively”
        different.</p>
      <p style="margin: 0px 0px 1.2em !important;">Maurizio</p>
      <p style="margin: 0px 0px 1.2em !important;">On 27/01/2023 20:52,
        Archie Cobbs wrote:</p>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <div class="markdown-here-exclude">
        <p></p>
        <blockquote type="cite" cite="mid:CANSoFxtgHsQ1-WFAgkS0kTbpBDJ-SxNnFBsW8yESgFDmAgzoAg@mail.gmail.com">
          
          <div dir="ltr">
            <div dir="ltr">On Fri, Jan 27, 2023 at 12:16 PM Archie Cobbs
              <<a href="mailto:archie.cobbs@gmail.com" moz-do-not-send="true" class="moz-txt-link-freetext">archie.cobbs@gmail.com</a>>
              wrote:</div>
            <div class="gmail_quote">
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
                0.8ex;border-left:1px solid
                rgb(204,204,204);padding-left:1ex">
                <div dir="ltr">On Thu, Jan 26, 2023 at 5:51 PM Brian
                  Goetz <<a href="mailto:brian.goetz@oracle.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">brian.goetz@oracle.com</a>>
                  wrote:
                  <div class="gmail_quote">
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex">
                      <div> <font size="4"><font face="monospace">I
                            think that's where we should start; if we
                            are spectacularly successful, we can come
                            back for more.</font></font></div>
                    </blockquote>
                    <div><br>
                    </div>
                    <div>OK thanks. Proceeding...<br>
                    </div>
                  </div>
                </div>
              </blockquote>
              <div><br>
              </div>
              <div>JEP is <a href="https://bugs.openjdk.org/browse/JDK-8300786" moz-do-not-send="true">updated</a>. Not surprisingly,
                it has gotten a good bit simpler.</div>
              <div>
                <div class="gmail_quote">
                  <div><br>
                  </div>
                  <div>Change log...<br>
                  </div>
                  <div><br>
                  </div>
                  - Removed discussions of 'this' escape, try { } blocks
                  and initialization order</div>
                <div class="gmail_quote">
                  <div class="gmail_quote">- Removed if/then example
                    choosing between two different superclass
                    constructors</div>
                  - Restate JLS changes</div>
              </div>
              <div><br>
              </div>
              <div>The updated JLS changes are:<br>
              </div>
              <div><br>
              </div>
              <div style="margin-left:40px">1. Change the grammar for
                `ConstructorBody` to:<br>
                <br>
              </div>
              <div style="margin-left:40px"><span style="font-family:monospace">    ConstructorBody:</span><br>
                <span style="font-family:monospace">        {
                  [BlockStatements] } ;</span><br>
                <span style="font-family:monospace">        {
                  [BlockStatements] ExplicitConstructorInvocation
                  [BlockStatements] } ;</span><br>
              </div>
              <div style="margin-left:40px">
                <div style="margin-left:40px"><span style="font-family:monospace"></span></div>
                <br>
                2. Specify that the <span style="font-family:monospace">BlockStatements</span>
                prior to <span style="font-family:monospace">ExplicitConstructorInvocation</span>
                are in a static context (§8.1.3)<br>
              </div>
            </div>
            <div><br>
            </div>
            <div>Reload & resume firing... :)<br>
            </div>
            <div><br>
            </div>
            <div>-Archie<br>
            </div>
            <div class="gmail_quote"><br>
            </div>
            -- <br>
            <div dir="ltr" class="gmail_signature">Archie L. Cobbs<br>
            </div>
          </div>
        </blockquote>
        <p></p>
      </div>
      <p style="margin: 0px 0px 1.2em !important;"></p>
      <div title="MDH:PHA+SSBzZWUgdGhhdCB5b3UgaGF2ZSBiYXNpY2FsbHkgbGVmdCB0aGUgZGlzY3Vzc2lvbiBvbiByZW1hcHBpbmcgZXhjZXB0aW9uIChldmVuIHRob3VnaCB0aGVyZSdzIG5vIHNlY3Rpb24gb24gaXQp
LjwvcD48cD5JTUhPIHRoYXQgaXMgc3RpbGwgY29uZnVzaW5nLiBUaGUgZmlyc3QgZXhhbXBsZSBl
bmRzIHVwIGxpa2UgdGhpczo8L3A+PHA+YGBgamF2YTxicj48L3A+PHByZSBjbGFzcz0icHJldHR5
cHJpbnQiPjxjb2RlPnB1YmxpYyBQb3NpdGl2ZUJpZ0ludGVnZXIobG9uZyB2YWx1ZSkgewogICAg
ICAgIHN1cGVyKHZhbHVlKTsgICAvLyBwb3RlbnRpYWxseSBkb2luZyB1c2VsZXNzIHdvcmsgaGVy
ZQogICAgICAgIGlmICh2YWx1ZSAmbHQ7PSAwKQogICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdh
bEFyZ3VtZW50RXhjZXB0aW9uKCJub24tcG9zaXRpdmUgdmFsdWUiKTsKICAgIH08YnI+YGBgPGJy
PjwvY29kZT48L3ByZT48ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPlRoZSBzZWNvbmQgZXhh
bXBsZSBlbmRzIHVwIGxpa2UgdGhpczo8L2Rpdj48ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgi
Pjxicj48L2Rpdj48ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPmBgYGphdmE8YnI+cHVibGlj
IGNsYXNzIEN1c3RvbURlZmxhdGVySW5wdXRTdHJlYW0gZXh0ZW5kcyBEZWZsYXRlcklucHV0U3Ry
ZWFtIHs8YnI+PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyBwdWJsaWMgQ3VzdG9tRGVmbGF0ZXJJbnB1
dFN0cmVhbShJbnB1dFN0cmVhbSBpbikgezxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgaWYgKGluID09IG51bGwpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0aHJvdyBuZXcgSWxs
ZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJudWxsIGlucHV0Iik7PGJyPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdXBlcihpbik7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8vIHdlIGF2b2lkZWQgTnVsbFBvaW50
ZXJFeGNlcHRpb24gdGhyb3duIGhlcmU8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+fTxicj5g
YGA8L2Rpdj48ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPjxicj48L2Rpdj48ZGl2IGNsYXNz
PSJtb3otY2l0ZS1wcmVmaXgiPkJvdGggYXJlIGluIHRoZSBmb3JtICJpZiAoc29tZXRoaW5nKSB0
aHJvdyIuIFRvIG1lIHRoYXQgaXMganVzdCBwYXJhbWV0ZXIgdmFpbGRhdGlvbi4gVGhlIGV4YWN0
IHJlYXNvbiBhcyB0byB3aHkgcGFyYW1ldGVyIHZhbGlkYXRpb24gbWlnaHQgYmUgaGVscGZ1bCBp
biBlYWNoIGNhc2UgaXMgaXJyZWxldmFudCBoZXJlIC0gdGhlIHR3byBleGFtcGxlcyBhcmUgbW9y
YWxseSBlcXVpdmFsZW50IC0gb3IsIGF0IHRoZSB2ZXJ5IGxlYXN0LCB0aGUgc2Vjb25kIGV4YW1w
bGUgZG9lc24ndCBkZXNlcnZlICJhbGwgdGhhdCBzcGFjZSIgaW4gdGhlIEpFUC48L2Rpdj48ZGl2
IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPjxicj48L2Rpdj48ZGl2IGNsYXNzPSJtb3otY2l0ZS1w
cmVmaXgiPllvdSBoYXZlIHRocmVlIHZlcnkgdmVyeSBuaWNlIGV4YW1wbGVzOjwvZGl2PjxkaXYg
Y2xhc3M9Im1vei1jaXRlLXByZWZpeCI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9Im1vei1jaXRlLXBy
ZWZpeCI+KiBwYXJhbWV0ZXIgdmFsaWRhdGlvbjxicj4qIHBhc3NpbmcgYXJndW1lbnQgdHdpY2U8
YnI+KiBjb21wbGV4IGluaXRpYWxpemF0aW9uPC9kaXY+PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJl
Zml4Ij48YnI+PC9kaXY+PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5JJ2Qgc2F5IGp1c3Qg
YWRkIHRocmVlIHNlY3Rpb25zIHdpdGggb25lIGV4YW1wbGUgZWFjaCBhbmQgY2FsbCBpdCBhIGRh
eS4gVW5sZXNzIHlvdSBjYW4gdGhpbmcgb2Ygc29tZXRoaW5nIHRoYXQgbG9va3MgbW9yZSAicXVh
bGl0YXRpdmVseSIgZGlmZmVyZW50LjwvZGl2PjxkaXYgY2xhc3M9Im1vei1jaXRlLXByZWZpeCI+
PGJyPjwvZGl2PjxkaXYgY2xhc3M9Im1vei1jaXRlLXByZWZpeCI+TWF1cml6aW88YnI+PC9kaXY+
PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij48YnI+PC9kaXY+PGRpdiBjbGFzcz0ibW96LWNp
dGUtcHJlZml4Ij5PbiAyNy8wMS8yMDIzIDIwOjUyLCBBcmNoaWUgQ29iYnMgd3JvdGU6PGJyPjwv
ZGl2PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNpdGU9Im1pZDpDQU5Tb0Z4dGdIc1ExLVdGQWdr
UzBrVGJwQkRKLVN4Tm5GQnNXOHlFU2dGRG1BZ3pvQWdAbWFpbC5nbWFpbC5jb20iPjxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyAiPjxkaXYgZGlyPSJs
dHIiPjxkaXYgZGlyPSJsdHIiPk9uIEZyaSwgSmFuIDI3LCAyMDIzIGF0IDEyOjE2IFBNIEFyY2hp
ZSBDb2JicyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmFyY2hpZS5jb2Jic0BnbWFpbC5jb20iIG1vei1k
by1ub3Qtc2VuZD0idHJ1ZSI+YXJjaGllLmNvYmJzQGdtYWlsLmNvbTwvYT4mZ3Q7IHdyb3RlOjwv
ZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVv
dGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlk
IHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+PGRpdiBkaXI9Imx0ciI+T24gVGh1
LCBKYW4gMjYsIDIwMjMgYXQgNTo1MSBQTSBCcmlhbiBHb2V0eiAmbHQ7PGEgaHJlZj0ibWFpbHRv
OmJyaWFuLmdvZXR6QG9yYWNsZS5jb20iIHRhcmdldD0iX2JsYW5rIiBtb3otZG8tbm90LXNlbmQ9
InRydWUiPmJyaWFuLmdvZXR6QG9yYWNsZS5jb208L2E+Jmd0OyB3cm90ZTo8ZGl2IGNsYXNzPSJn
bWFpbF9xdW90ZSI+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2lu
OjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQp
O3BhZGRpbmctbGVmdDoxZXgiPgoKICAKICA8ZGl2PgogICAgPGZvbnQgc2l6ZT0iNCI+PGZvbnQg
ZmFjZT0ibW9ub3NwYWNlIj5JIHRoaW5rIHRoYXQncyB3aGVyZSB3ZSBzaG91bGQKICAgICAgICBz
dGFydDsgaWYgd2UgYXJlIHNwZWN0YWN1bGFybHkgc3VjY2Vzc2Z1bCwgd2UgY2FuIGNvbWUgYmFj
ayBmb3IKICAgICAgICBtb3JlLjwvZm9udD48L2ZvbnQ+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+
PGJyPjwvZGl2PjxkaXY+T0sgdGhhbmtzLiBQcm9jZWVkaW5nLi4uPGJyPjwvZGl2PjwvZGl2Pjwv
ZGl2PjwvYmxvY2txdW90ZT48ZGl2Pjxicj48L2Rpdj48ZGl2PkpFUCBpcyA8YSBocmVmPSJodHRw
czovL2J1Z3Mub3Blbmpkay5vcmcvYnJvd3NlL0pESy04MzAwNzg2IiBtb3otZG8tbm90LXNlbmQ9
InRydWUiPnVwZGF0ZWQ8L2E+LiBOb3Qgc3VycHJpc2luZ2x5LCBpdCBoYXMgZ290dGVuIGEgZ29v
ZCBiaXQgc2ltcGxlci48L2Rpdj48ZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2Pjxi
cj48L2Rpdj48ZGl2PkNoYW5nZSBsb2cuLi48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+LSBSZW1v
dmVkIGRpc2N1c3Npb25zIG9mICd0aGlzJyBlc2NhcGUsIHRyeSB7IH0gYmxvY2tzIGFuZCBpbml0
aWFsaXphdGlvbiBvcmRlcjwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGNsYXNz
PSJnbWFpbF9xdW90ZSI+LSBSZW1vdmVkIGlmL3RoZW4gZXhhbXBsZSBjaG9vc2luZyBiZXR3ZWVu
IHR3byBkaWZmZXJlbnQgc3VwZXJjbGFzcyBjb25zdHJ1Y3RvcnM8L2Rpdj4tIFJlc3RhdGUgSkxT
IGNoYW5nZXM8L2Rpdj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRoZSB1cGRhdGVkIEpMUyBj
aGFuZ2VzIGFyZTo8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6NDBweCI+MS4gQ2hhbmdlIHRoZSBncmFtbWFyIGZvciBgQ29uc3RydWN0b3JCb2R5YCB0bzo8
YnI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjQwcHgiPjxzcGFuIHN0eWxlPSJm
b250LWZhbWlseTptb25vc3BhY2UiPiZuYnNwOyAmbmJzcDsgQ29uc3RydWN0b3JCb2R5Ojwvc3Bh
bj48YnI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IHsgW0Jsb2NrU3RhdGVtZW50c10gfSA7PC9zcGFuPjxicj48c3BhbiBzdHls
ZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgeyBb
QmxvY2tTdGF0ZW1lbnRzXSBFeHBsaWNpdENvbnN0cnVjdG9ySW52b2NhdGlvbiBbQmxvY2tTdGF0
ZW1lbnRzXSB9IDs8L3NwYW4+PGJyPjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjQwcHgi
PjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjQwcHgiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpt
b25vc3BhY2UiPjwvc3Bhbj48L2Rpdj48YnI+Mi4gU3BlY2lmeSB0aGF0IHRoZSA8c3BhbiBzdHls
ZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlIj5CbG9ja1N0YXRlbWVudHM8L3NwYW4+IHByaW9yIHRv
IDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPkV4cGxpY2l0Q29uc3RydWN0b3JJ
bnZvY2F0aW9uPC9zcGFuPiBhcmUgaW4gYSBzdGF0aWMgY29udGV4dCAowqc4LjEuMyk8YnI+PC9k
aXY+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5SZWxvYWQgJmFtcDsgcmVzdW1lIGZpcmluZy4u
LiA6KTxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pi1BcmNoaWU8YnI+PC9kaXY+PGRpdiBj
bGFzcz0iZ21haWxfcXVvdGUiPjxicj48L2Rpdj4tLSA8YnI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9
ImdtYWlsX3NpZ25hdHVyZSI+QXJjaGllIEwuIENvYmJzPGJyPjwvZGl2PjwvZGl2PgoKPC9ibG9j
        a3F1b3RlPg==" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;">​</div>
    </div>
  </body>
</html>