<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">On Mon, 1 Apr 2019 at 09:22, Simon Peyton Jones <a href="http://mailto:simonpj@microsoft.com">simonpj@microsoft.com</a> wrote:</p>
<blockquote style="margin:1.2em 0px;border-left:4px solid rgb(221,221,221);padding:0px 1em;color:rgb(119,119,119);quotes:none">
<p style="margin:0px 0px 1.2em!important">That does look odd.  Can you explain how to reproduce this with HEAD?<br>That is, are we getting a newtype constructor in the argument position<br>of an StgApp in HEAD too?</p>
<p style="margin:0px 0px 1.2em!important">Newtype “data constructors” are always inlined, which is why I don’t<br>understand what’s happening.</p>
</blockquote>
<p style="margin:0px 0px 1.2em!important">OK, that’s good to know. I must be missing a Core-to-Core ot Core-to-STG<br>transform step. I’ll try to make a single-file repro case against HEAD<br>and see what happens. Maybe in doing so I’ll uncover what caused this<br>output for me.</p>
<blockquote style="margin:1.2em 0px;border-left:4px solid rgb(221,221,221);padding:0px 1em;color:rgb(119,119,119);quotes:none">
<p style="margin:0px 0px 1.2em!important">On Mon, 1 Apr 2019 at 09:49, Ömer Sinan Ağacan <a href="http://mailto:omeragacan@gmail.com">omeragacan@gmail.com</a> wrote:<br>I’m a bit confused about your findings because I’m unable to reproduce them. I<br>wasn’t aware that we’re generating terms for newtype constructors, and when I<br>try I can see that this is really the case. For example, when I compile a module<br>with just this line:</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 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">newtype MyInt = MyInt Int
</code></pre><p style="margin:0px 0px 1.2em!important">in the Core or STG dumps I don’t see any terms for the <code 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">MyInt</code> constructor.</p>
<p style="margin:0px 0px 1.2em!important">I also checked the Core for System.Timeout.timeout module, and I don’t see any<br><code 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">Timeout</code> constructor applications anywhere. I compiled with -O0 -ddump-simpl.<br>Here’s what I get for the <code 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">fmap Timeout</code> application in that module:</p>
</blockquote>
<p style="margin:0px 0px 1.2em!important">Right, I see in yours that the newtype is properly removed and mine<br>isn’t (via -ddump-simpl):</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-haskell" 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)"><span class="hljs-comment" style="color:rgb(153,153,136);font-style:italic">-- RHS size: {terms: 201, types: 218, coercions: 11, joins: 0/1}</span>
<span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">timeout</span> :: <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">forall</span> a. <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Int</span> -> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">IO</span> a -> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">IO</span> (<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Maybe</span> a)
[<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">GblId</span>, <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Arity</span>=<span class="hljs-number" style="color:rgb(0,128,128)">2</span>]
<span class="hljs-title" style="color:rgb(153,0,0);font-weight:bold">timeout</span>
  = \ (@ a_a27I4) (n_a27GX :: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Int</span>) (f_a27GY :: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">IO</span> a_a27I4) ->
      <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> < @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Int</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">GHC</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Classes</span>.$fOrdInt n_a27GX (<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">GHC</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Types</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">I</span># <span class="hljs-number" style="color:rgb(0,128,128)">0</span>#) <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">of</span> {
        <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">False</span> ->
          <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> == @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Int</span> <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">GHC</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Classes</span>.$fEqInt n_a27GX (<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">GHC</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Types</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">I</span># <span class="hljs-number" style="color:rgb(0,128,128)">0</span>#) <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">of</span> {
            <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">False</span> ->
              <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">case</span> rtsSupportsBoundThreads <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">of</span> {
                <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">False</span> ->
                  >>=
                    @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">IO</span>
                    <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">GHC</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Base</span>.$fMonadIO
                    @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">ThreadId</span>
                    @ (<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Maybe</span> a_a27I4)
                    myThreadId
                    (\ (pid_a27Hb :: <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">ThreadId</span>) ->
                       >>=
                         @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">IO</span>
                         <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">GHC</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Base</span>.$fMonadIO
                         @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Timeout</span>
                         @ (<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Maybe</span> a_a27I4)
                         (fmap
                            @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">IO</span>
                            <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">GHC</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Base</span>.$fFunctorIO
                            @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Unique</span>
                            @ <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Timeout</span>
                            <span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">System</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Timeout</span>.<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Timeout</span> <- <b>NEWTYPE HERE</b>
                            newUnique)
</code></pre>
<p style="margin:0px 0px 1.2em!important">So I must be missing a pass somewhere.</p>
<p style="margin:0px 0px 1.2em!important">I’ll try to reproduce on HEAD and get back to you.</p>
<p style="margin:0px 0px 1.2em!important">Cheers!</p>
<p style="margin:0px 0px 1.2em!important">Chris</p>
<div title="MDH:PGRpdiBkaXI9Imx0ciI+PGRpdj5PbiBNb24sIDEgQXByIDIwMTkgYXQgMDk6MjIsIFNpbW9uIFBl
eXRvbiBKb25lcyAmbHQ7c2ltb25wakBtaWNyb3NvZnQuY29tJmd0OyB3cm90ZTo8L2Rpdj48ZGl2
PiZndDsgVGhhdCBkb2VzIGxvb2sgb2RkLiZuYnNwOyBDYW4geW91IGV4cGxhaW4gaG93IHRvIHJl
cHJvZHVjZSB0aGlzIHdpdGggSEVBRD88L2Rpdj48ZGl2PiZndDsgVGhhdCBpcywgYXJlIHdlIGdl
dHRpbmcgYSBuZXd0eXBlIGNvbnN0cnVjdG9yIGluIHRoZSBhcmd1bWVudCBwb3NpdGlvbjwvZGl2
PjxkaXY+Jmd0OyBvZiBhbiBTdGdBcHAgaW4gSEVBRCB0b28/PC9kaXY+PGRpdj48YnI+PC9kaXY+
PGRpdj4mZ3Q7IE5ld3R5cGUg4oCcZGF0YSBjb25zdHJ1Y3RvcnPigJ0gYXJlIGFsd2F5cyBpbmxp
bmVkLCB3aGljaCBpcyB3aHkgSSBkb27igJl0PC9kaXY+PGRpdj4mZ3Q7IHVuZGVyc3RhbmQgd2hh
dOKAmXMgaGFwcGVuaW5nLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+T0ssIHRoYXQncyBnb29k
IHRvIGtub3cuIEkgbXVzdCBiZSBtaXNzaW5nIGEgQ29yZS10by1Db3JlIG90IENvcmUtdG8tU1RH
PC9kaXY+PGRpdj50cmFuc2Zvcm0gc3RlcC4gSSdsbCB0cnkgdG8gbWFrZSBhIHNpbmdsZS1maWxl
IHJlcHJvIGNhc2UgYWdhaW5zdCBIRUFEPC9kaXY+PGRpdj5hbmQgc2VlIHdoYXQgaGFwcGVucy4g
TWF5YmUgaW4gZG9pbmcgc28gSSdsbCB1bmNvdmVyIHdoYXQgY2F1c2VkIHRoaXM8L2Rpdj48ZGl2
Pm91dHB1dCBmb3IgbWUuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj4mZ3Q7IE9uIE1vbiwgMSBB
cHIgMjAxOSBhdCAwOTo0OSwgw5ZtZXIgU2luYW4gQcSfYWNhbiAmbHQ7b21lcmFnYWNhbkBnbWFp
bC5jb20mZ3Q7IHdyb3RlOjwvZGl2PjxkaXY+Jmd0OyBJJ20gYSBiaXQgY29uZnVzZWQgYWJvdXQg
eW91ciBmaW5kaW5ncyBiZWNhdXNlIEknbSB1bmFibGUgdG8gcmVwcm9kdWNlIHRoZW0uIEk8L2Rp
dj48ZGl2PiZndDsgd2Fzbid0IGF3YXJlIHRoYXQgd2UncmUgZ2VuZXJhdGluZyB0ZXJtcyBmb3Ig
bmV3dHlwZSBjb25zdHJ1Y3RvcnMsIGFuZCB3aGVuIEk8L2Rpdj48ZGl2PiZndDsgdHJ5IEkgY2Fu
IHNlZSB0aGF0IHRoaXMgaXMgcmVhbGx5IHRoZSBjYXNlLiBGb3IgZXhhbXBsZSwgd2hlbiBJIGNv
bXBpbGUgYSBtb2R1bGU8L2Rpdj48ZGl2PiZndDsgd2l0aCBqdXN0IHRoaXMgbGluZTo8L2Rpdj48
ZGl2Pjxicj48L2Rpdj48ZGl2PiZndDsmbmJzcDsgJm5ic3A7ICZuYnNwO25ld3R5cGUgTXlJbnQg
PSBNeUludCBJbnQ8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PiZndDsgaW4gdGhlIENvcmUgb3Ig
U1RHIGR1bXBzIEkgZG9uJ3Qgc2VlIGFueSB0ZXJtcyBmb3IgdGhlIGBNeUludGAgY29uc3RydWN0
b3IuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj4mZ3Q7IEkgYWxzbyBjaGVja2VkIHRoZSBDb3Jl
IGZvciBTeXN0ZW0uVGltZW91dC50aW1lb3V0IG1vZHVsZSwgYW5kIEkgZG9uJ3Qgc2VlIGFueTwv
ZGl2PjxkaXY+Jmd0OyBgVGltZW91dGAgY29uc3RydWN0b3IgYXBwbGljYXRpb25zIGFueXdoZXJl
LiBJIGNvbXBpbGVkIHdpdGggLU8wIC1kZHVtcC1zaW1wbC48L2Rpdj48ZGl2PiZndDsgSGVyZSdz
IHdoYXQgSSBnZXQgZm9yIHRoZSBgZm1hcCBUaW1lb3V0YCBhcHBsaWNhdGlvbiBpbiB0aGF0IG1v
ZHVsZTo8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlJpZ2h0LCBJIHNlZSBpbiB5b3VycyB0aGF0
IHRoZSBuZXd0eXBlIGlzIHByb3Blcmx5IHJlbW92ZWQgYW5kIG1pbmU8L2Rpdj48ZGl2Pmlzbid0
ICh2aWEgLWRkdW1wLXNpbXBsKTo8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PmBgYGhhc2tlbGw8
L2Rpdj48ZGl2Pi0tIFJIUyBzaXplOiB7dGVybXM6IDIwMSwgdHlwZXM6IDIxOCwgY29lcmNpb25z
OiAxMSwgam9pbnM6IDAvMX08L2Rpdj48ZGl2PnRpbWVvdXQgOjogZm9yYWxsIGEuIEludCAtJmd0
OyBJTyBhIC0mZ3Q7IElPIChNYXliZSBhKTwvZGl2PjxkaXY+W0dibElkLCBBcml0eT0yXTwvZGl2
PjxkaXY+dGltZW91dDwvZGl2PjxkaXY+Jm5ic3A7ID0gXCAoQCBhX2EyN0k0KSAobl9hMjdHWCA6
OiBJbnQpIChmX2EyN0dZIDo6IElPIGFfYTI3STQpIC0mZ3Q7PC9kaXY+PGRpdj4mbmJzcDsgJm5i
c3A7ICZuYnNwOyBjYXNlICZsdDsgQCBJbnQgR0hDLkNsYXNzZXMuJGZPcmRJbnQgbl9hMjdHWCAo
R0hDLlR5cGVzLkkjIDAjKSBvZiB7PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgRmFsc2UgLSZndDs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgY2FzZSA9PSBAIEludCBHSEMuQ2xhc3Nlcy4kZkVxSW50IG5fYTI3R1ggKEdIQy5UeXBlcy5J
IyAwIykgb2YgezwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgRmFsc2UgLSZndDs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyBjYXNlIHJ0c1N1cHBvcnRzQm91bmRUaHJlYWRzIG9mIHs8L2Rp
dj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgRmFsc2UgLSZndDs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZndDsmZ3Q7PTwvZGl2PjxkaXY+Jm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IEAgSU88L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBHSEMuQmFzZS4kZk1vbmFkSU88
L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBAIFRocmVhZElkPC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
QCAoTWF5YmUgYV9hMjdJNCk8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBteVRocmVhZElkPC9kaXY+
PGRpdj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgKFwgKHBpZF9hMjdIYiA6OiBUaHJlYWRJZCkgLSZndDs8L2Rpdj48
ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jmd0OyZndDs9PC9kaXY+PGRpdj4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtAIElPPC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtHSEMuQmFzZS4kZk1vbmFkSU88L2Rpdj48ZGl2PiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO0AgVGltZW91dDwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7QCAoTWF5YmUgYV9hMjdJNCk8L2Rpdj48ZGl2PiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyhmbWFwPC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEAgSU88L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgR0hDLkJhc2UuJGZGdW5jdG9ySU88L2Rpdj48ZGl2PiZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQCBVbmlxdWU8L2Rpdj48ZGl2PiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQCBUaW1lb3V0PC9kaXY+PGRp
dj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFN5c3RlbS5UaW1lb3V0
LlRpbWVvdXQgJmx0Oy0gbmV3dHlwZTwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyBuZXdVbmlxdWUpPC9kaXY+PGRpdj5gYGA8L2Rpdj48ZGl2Pjxicj48
L2Rpdj48ZGl2PlNvIEkgbXVzdCBiZSBtaXNzaW5nIGEgcGFzcyBzb21ld2hlcmUuPC9kaXY+PGRp
dj48YnI+PC9kaXY+PGRpdj5JJ2xsIHRyeSB0byByZXByb2R1Y2Ugb24gSEVBRCBhbmQgZ2V0IGJh
Y2sgdG8geW91LjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+Q2hlZXJzITwvZGl2PjxkaXY+PGJy
PjwvZGl2PjxkaXY+Q2hyaXM8L2Rpdj48L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div>