<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>42214</bug_id>
          
          <creation_ts>2010-07-13 17:02:08 -0700</creation_ts>
          <short_desc>chromium/skia: Fix canvas.toDataURL in the presence of transparency</short_desc>
          <delta_ts>2010-07-16 17:02:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nico Weber">thakis</reporter>
          <assigned_to name="Nico Weber">thakis</assigned_to>
          <cc>abarth</cc>
    
    <cc>agl</cc>
    
    <cc>brettw</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>pkasting</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250828</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-13 17:02:08 -0700</bug_when>
    <thetext>chromium/skia: Fix canvas.toDataURL in the presence of transparency</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250835</commentid>
    <comment_count>1</comment_count>
      <attachid>61436</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-13 17:09:21 -0700</bug_when>
    <thetext>Created attachment 61436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250864</commentid>
    <comment_count>2</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-13 17:53:43 -0700</bug_when>
    <thetext>The patch still needs a test case (despite claim in the changelog), but the code change is complete. Comments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250866</commentid>
    <comment_count>3</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-13 17:54:25 -0700</bug_when>
    <thetext>Oh, this is http://crbug.com/26456 , and I need to credit deanm in the changelog as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250879</commentid>
    <comment_count>4</comment_count>
      <attachid>61446</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-13 18:15:23 -0700</bug_when>
    <thetext>Created attachment 61446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250885</commentid>
    <comment_count>5</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-13 18:18:36 -0700</bug_when>
    <thetext>Now with tests and attribution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251914</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Langley">agl</who>
    <bug_when>2010-07-15 08:52:32 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251995</commentid>
    <comment_count>7</comment_count>
      <attachid>61446</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-15 11:11:02 -0700</bug_when>
    <thetext>Comment on attachment 61446
Patch

Code changes look fine. Just a few test comments.

&gt; diff --git a/LayoutTests/fast/canvas/toDataURL-alpha.html b/LayoutTests/fast/canvas/toDataURL-alpha.html
&gt; +      var d = document;
&gt; +      var c = d.getElementById(&quot;c&quot;).getContext(&quot;2d&quot;);
&gt; +      c.fillStyle = &quot;rgba(200, 255, 200, 0.7)&quot;;
&gt; +      c.fillRect(0, 0, c.canvas.width, c.canvas.height);
&gt; +      d.getElementById(&quot;d&quot;).style.backgroundImage = [&quot;url(&quot;, c.canvas.toDataURL(&quot;image/png&quot;), &quot;)&quot;].join(&quot;&quot;);

Short variable names are generally frowned upon in WebKit code. I know this is just a test, but it makes this hard to read. Can you s/c/context and either not alias document or s/d/doc?

&gt; diff --git a/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.checksum b/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.checksum
&gt; diff --git a/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.png b/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.png

These should be in platform/mac or next to the test. Snow Leopard, for example, won&apos;t know to find the expected results in this directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252000</commentid>
    <comment_count>8</comment_count>
      <attachid>61690</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-15 11:17:12 -0700</bug_when>
    <thetext>Created attachment 61690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252001</commentid>
    <comment_count>9</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-15 11:18:15 -0700</bug_when>
    <thetext>&gt; Short variable names are generally frowned upon in WebKit code. I know this is just a test, but it makes this hard to read. Can you s/c/context and either not alias document or s/d/doc?

Don.

&gt; &gt; diff --git a/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.png b/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.png
&gt; 
&gt; These should be in platform/mac or next to the test. Snow Leopard, for example, won&apos;t know to find the expected results in this directory.

jamesr told me to put them there because text rendering is different on Snow Leopard, which would cause this to turn the 10.6 bot red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252007</commentid>
    <comment_count>10</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-15 11:26:14 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; These should be in platform/mac or next to the test. Snow Leopard, for example, won&apos;t know to find the expected results in this directory.
&gt; 
&gt; jamesr told me to put them there because text rendering is different on Snow Leopard, which would cause this to turn the 10.6 bot red.

If this were a test where pixel results were different on Snow Leopard, then it would make sense to do this, then grab the pixel results for Snow Leopard off the bot (assuming we had webkit pixel bots anymore) and put them in platform/mac.

But, not all text rendering is different. I think that most of the time Leopard matches Snow Leopard. I&apos;d be surprised to find that this test rendered differently on Snow Leopard than Leopard. Maybe I&apos;m missing something though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252026</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-07-15 11:57:51 -0700</bug_when>
    <thetext>Text _always_ renders differently on Leopard vs Snow Leopard due to subpixel AA differences.  Thus pixel results for tests with text on mac are always Leopard or Snow Leopard specific.  In this case, as the test exists now someone running with -p on Snow Leopard would not see any expected results.  If the results were in platform/mac then someone running with -p on Snow Leopard would see small pixel diffs (if they had fuzzy matching enabled) or get a pixel failure (if they didn&apos;t have fuzzy matching enabled).

Currently nobody runs pixel tests in an automated fashion except for Chromium and Chromium only runs them on Leopard, so this won&apos;t break anyone either way.  However since we know that these results are going to only be valid on Leopard I&apos;d much rather put them in mac-leopard now instead of having to move them manually later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252027</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-07-15 11:58:36 -0700</bug_when>
    <thetext>Naturally adding Snow Leopard specific results to platform/mac in addition to the Leopard specific results in platform/mac-leopard is the best option of them all :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252219</commentid>
    <comment_count>13</comment_count>
      <attachid>61690</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-15 16:47:30 -0700</bug_when>
    <thetext>Comment on attachment 61690
Patch

Clearing flags on attachment: 61690

Committed r63494: &lt;http://trac.webkit.org/changeset/63494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252220</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-15 16:47:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252234</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-15 17:11:00 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/63494 might have broken GTK Linux 32-bit Release and Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/63494
http://trac.webkit.org/changeset/63495</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252238</commentid>
    <comment_count>16</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-15 17:19:01 -0700</bug_when>
    <thetext>gtk/qt guys: That was probably me. Looks like minor, non-important differences. Could that be caused by fonts? How is this usually handled? Do you just add platform-specific expectations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252244</commentid>
    <comment_count>17</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-15 17:31:15 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; gtk/qt guys: That was probably me. Looks like minor, non-important differences. Could that be caused by fonts? How is this usually handled? Do you just add platform-specific expectations?

The chromium-win/chromium-linux bots are not finding the expected png. Looking at the code, they don&apos;t check mac-leopard. They only fallback to mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252254</commentid>
    <comment_count>18</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-15 17:47:27 -0700</bug_when>
    <thetext>ojan: jamesr told me the usual procedure is to check in an expected failure for chromium (which I think I did, see my change to LayoutTests/platform/chromium/test_expectations.txt), then grab baselines from the bots later and check them in together with a change that removes the expected failure.

This is my first time doing this, so chances are I screwed something up, but that was my plan :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252261</commentid>
    <comment_count>19</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-15 18:00:22 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; ojan: jamesr told me the usual procedure is to check in an expected failure for chromium (which I think I did, see my change to LayoutTests/platform/chromium/test_expectations.txt), then grab baselines from the bots later and check them in together with a change that removes the expected failure.

Ah right. That is the right thing to do. The only catch is that the expectations file differentiates between a pixel failure and a missing result. So, instead of IMAGE here, you should have put MISSING...I think. :) This stuff is unfortunately very complicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252263</commentid>
    <comment_count>20</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-15 18:10:54 -0700</bug_when>
    <thetext>I went ahead and marked it as MISSING.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252304</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-15 21:21:51 -0700</bug_when>
    <thetext>This patch is wrong.

LayoutTests/fast/canvas/toDataURL-alpha-expected.txt

is a render tree dump.  It should be in the platform/mac directory.  In this patch, it&apos;s in the place where a text result should be, which is confusing all the tools.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252307</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-15 21:28:11 -0700</bug_when>
    <thetext>Result moved in http://trac.webkit.org/changeset/63512</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252309</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-15 21:35:00 -0700</bug_when>
    <thetext>Gtk and Qt baselines in http://trac.webkit.org/changeset/63513

The lesson here is the render tree dumps are very platform specific because of font metrics.  Expected render tree dumps go in the platform folder for the appropriate port.  Text expected results are much more likely to be cross-port, so they go in the main LayoutTest tree.

When you land a render tree dump in the cross-port folder, every port thinks that it should work for it, but it doesn&apos;t.  If you landed the results in the platform/mac folder, Qt and Gtk would know that the expected results were missing for them and the builders wouldn&apos;t get red and unhappy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252316</commentid>
    <comment_count>24</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-15 22:07:33 -0700</bug_when>
    <thetext>Thanks, Adam. Sorry for the nuisance :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252318</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-15 22:16:13 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Thanks, Adam. Sorry for the nuisance :-/

No problem.  Sorry I was distracted in the channel and couldn&apos;t answer you questions in real time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252768</commentid>
    <comment_count>26</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-07-16 17:02:38 -0700</bug_when>
    <thetext>Baselines for win and linux for this patch are at https://bugs.webkit.org/show_bug.cgi?id=42488</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61436</attachid>
            <date>2010-07-13 17:09:21 -0700</date>
            <delta_ts>2010-07-13 18:15:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42214-20100713170920.patch</filename>
            <type>text/plain</type>
            <size>5122</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzY1MGQ3OTM2OGM2ZDRmM2ZkZjNkOTE3OTdkZGI2NWFmZDE1OWVkOS4uMDUwYmM1Y2UyN2I3NzVj
MTY4MWNkNDQ4OGZkMDFhM2Y4YTllNGU1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNy0xMyAgTmlj
byBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgY2hyb21pdW0vc2tpYTogRml4IGNhbnZhcy50b0RhdGFV
UkwgaW4gdGhlIHByZXNlbmNlIG9mIHRyYW5zcGFyZW5jeQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyMTQKKworICAgICAgICBUaGUgcHJvYmxlbSB3
YXMgdGhhdCBTa0JpdG1hcHMgY29udGFpbiBwcmVtdWx0aXBsaWVkIGRhdGEsIGJ1dCBwbmdsaWIK
KyAgICAgICAgZG9lc24ndCBleHBlY3QgcHJlbXVsdGlwbGllZCBkYXRhLiBOb3csIHRoZSBlbmNv
ZGVyIHVucHJlbXVsdGlwbGllcworICAgICAgICBkYXRhIGJlZm9yZSBzZW5kaW5nIGl0IHRvIHBu
Z2xpYi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGZhc3QvY2FudmFzL3RvRGF0YVVSTC1zdXBwb3J0
ZWRUeXBlcy5odG1sLCB3aGljaCBpcyBub3cgYQorICAgICAgICBwaXhlbCB0ZXN0LgorCisgICAg
ICAgICogcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cHJlTXVsdGlwbGllZEJHUkF0b1JHQkEpOgorICAgICAgICAoV2Vi
Q29yZTo6ZW5jb2RlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpQTkdJbWFnZUVuY29kZXI6OmVu
Y29kZSk6CisKIDIwMTAtMDctMTIgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvUE5HSW1hZ2VFbmNvZGVyLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwCmlu
ZGV4IDE5MzYzYzhlNzRjNDMxYTM1YTA1YjIxMDcyYWZkNTQzMzY3MTBkYTQuLmEyZTg3NjBkMTM1
YWVjMWRkMzU0MGIyYTRhOGI2YWM1MjY1YmI2NTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiVmVjdG9yLmgiCiAKICNpbmNsdWRlICJTa0JpdG1hcC5oIgor
I2luY2x1ZGUgIlNrVW5QcmVNdWx0aXBseS5oIgogCiBleHRlcm4gIkMiIHsKICNpbmNsdWRlICJw
bmcuaCIKQEAgLTU3LDYgKzU4LDI1IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRCZXR3ZWVuQkdSQWFu
ZFJHQkEoY29uc3QgdW5zaWduZWQgY2hhciogaW5wdXQsIGludCBudW1iZXJPZlBpCiAgICAgfQog
fQogCisvLyBDb252ZXJ0cyBCR1JBLT5SR0JBIGFuZCBSR0JBLT5CR1JBIGFuZCB1bmRvZXMgYWxw
aGEgcHJlbXVsdGlwbGljYXRpb24uCitzdGF0aWMgdm9pZCBwcmVNdWx0aXBsaWVkQkdSQXRvUkdC
QShjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnB1dCwgaW50IG51bWJlck9mUGl4ZWxzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciogb3V0cHV0KQorewor
ICAgIFNrQml0bWFwIGlucHV0Qml0bWFwOworICAgIGlucHV0Qml0bWFwLnNldENvbmZpZyhTa0Jp
dG1hcDo6a0FSR0JfODg4OF9Db25maWcsIG51bWJlck9mUGl4ZWxzLCAxKTsKKyAgICBpbnB1dEJp
dG1hcC5zZXRQaXhlbHMoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oaW5wdXQpKTsKKyAgICBm
b3IgKGludCB4ID0gMDsgeCA8IG51bWJlck9mUGl4ZWxzOyB4KyspIHsKKyAgICAgICAgdWludDMy
X3Qgc3JjUGl4ZWwgPSAqaW5wdXRCaXRtYXAuZ2V0QWRkcjMyKHgsIDApOworICAgICAgICBTa0Nv
bG9yIHVubXVsdGlwbGllZCA9IFNrVW5QcmVNdWx0aXBseTo6UE1Db2xvclRvQ29sb3Ioc3JjUGl4
ZWwpOworICAgICAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbE91dCA9ICZvdXRwdXRbeCAqIDRdOwor
ICAgICAgICBwaXhlbE91dFswXSA9IFNrQ29sb3JHZXRSKHVubXVsdGlwbGllZCk7CisgICAgICAg
IHBpeGVsT3V0WzFdID0gU2tDb2xvckdldEcodW5tdWx0aXBsaWVkKTsKKyAgICAgICAgcGl4ZWxP
dXRbMl0gPSBTa0NvbG9yR2V0Qih1bm11bHRpcGxpZWQpOworICAgICAgICBwaXhlbE91dFszXSA9
IFNrQ29sb3JHZXRBKHVubXVsdGlwbGllZCk7CisgICAgfQorfQorCisKIC8vIEVuY29kZXIgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIC8vCiAvLyBUaGlzIHNlY3Rpb24gb2YgdGhlIGNvZGUgaXMgYmFzZWQgb24gbnNQ
TkdFbmNvZGVyLmNwcCBpbiBNb3ppbGxhCkBAIC05OCwyNCArMTE4LDEyIEBAIHByaXZhdGU6CiAg
ICAgcG5nX2luZm8qKiBtX3BuZ0luZm87CiB9OwogCi0vLyBzdGF0aWMKLWJvb2wgUE5HSW1hZ2VF
bmNvZGVyOjplbmNvZGUoY29uc3QgU2tCaXRtYXAmIGltYWdlLCBWZWN0b3I8dW5zaWduZWQgY2hh
cj4qIG91dHB1dCkKLXsKLSAgICBpZiAoaW1hZ2UuY29uZmlnKCkgIT0gU2tCaXRtYXA6OmtBUkdC
Xzg4ODhfQ29uZmlnKQotICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBPbmx5IHN1cHBvcnQgQVJH
QiBhdCA4IGJwcCBub3cuCi0KLSAgICBpbWFnZS5sb2NrUGl4ZWxzKCk7Ci0gICAgYm9vbCByZXN1
bHQgPSBQTkdJbWFnZUVuY29kZXI6OmVuY29kZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4o
Ci0gICAgICAgIGltYWdlLmdldFBpeGVscygpKSwgSW50U2l6ZShpbWFnZS53aWR0aCgpLCBpbWFn
ZS5oZWlnaHQoKSksCi0gICAgICAgIGltYWdlLnJvd0J5dGVzKCksIG91dHB1dCk7Ci0gICAgaW1h
Z2UudW5sb2NrUGl4ZWxzKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLy8gc3RhdGljCi1i
b29sIFBOR0ltYWdlRW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGlucHV0LCBj
b25zdCBJbnRTaXplJiBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYnl0
ZXNQZXJSb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3Rvcjx1bnNpZ25lZCBj
aGFyPiogb3V0cHV0KQorc3RhdGljIGJvb2wgZW5jb2RlSW1wbChjb25zdCB1bnNpZ25lZCBjaGFy
KiBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGJ5dGVzUGVyUm93LAorICAgICAgICAgICAgICAgICAg
ICAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCAoKmNvbnZlcnNpb25GdW5jKShjb25zdCB1bnNpZ25lZCBjaGFyKiwgaW50LCB1bnNp
Z25lZCBjaGFyKikKKyAgICAgICAgICAgICAgICAgICAgICAgKQogewogICAgIGludCBpbnB1dENv
bG9yQ29tcG9uZW50cyA9IDQ7CiAgICAgaW50IG91dHB1dENvbG9yQ29tcG9uZW50cyA9IDQ7CkBA
IC0xNTgsNyArMTY2LDcgQEAgYm9vbCBQTkdJbWFnZUVuY29kZXI6OmVuY29kZShjb25zdCB1bnNp
Z25lZCBjaGFyKiBpbnB1dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwKIAogICAgIE93bkFycmF5UHRy
PHVuc2lnbmVkIGNoYXI+IHJvd1BpeGVscyhuZXcgdW5zaWduZWQgY2hhcltpbWFnZVNpemUud2lk
dGgoKSAqIG91dHB1dENvbG9yQ29tcG9uZW50c10pOwogICAgIGZvciAoaW50IHkgPSAwOyB5IDwg
aW1hZ2VTaXplLmhlaWdodCgpOyB5ICsrKSB7Ci0gICAgICAgIGNvbnZlcnRCZXR3ZWVuQkdSQWFu
ZFJHQkEoJmlucHV0W3kgKiBieXRlc1BlclJvd10sIGltYWdlU2l6ZS53aWR0aCgpLCByb3dQaXhl
bHMuZ2V0KCkpOworICAgICAgICBjb252ZXJzaW9uRnVuYygmaW5wdXRbeSAqIGJ5dGVzUGVyUm93
XSwgaW1hZ2VTaXplLndpZHRoKCksIHJvd1BpeGVscy5nZXQoKSk7CiAgICAgICAgIHBuZ193cml0
ZV9yb3cocG5nUHRyLCByb3dQaXhlbHMuZ2V0KCkpOwogICAgIH0KIApAQCAtMTY2LDQgKzE3NCwy
NyBAQCBib29sIFBOR0ltYWdlRW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGlu
cHV0LCBjb25zdCBJbnRTaXplJiBzaXplLAogICAgIHJldHVybiB0cnVlOwogfQogCisKKy8vIHN0
YXRpYworYm9vbCBQTkdJbWFnZUVuY29kZXI6OmVuY29kZShjb25zdCBTa0JpdG1hcCYgaW1hZ2Us
IFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiogb3V0cHV0KQoreworICAgIGlmIChpbWFnZS5jb25maWco
KSAhPSBTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcpCisgICAgICAgIHJldHVybiBmYWxzZTsg
Ly8gT25seSBzdXBwb3J0IEFSR0IgYXQgOCBicHAgbm93LgorCisgICAgaW1hZ2UubG9ja1BpeGVs
cygpOworICAgIGJvb2wgcmVzdWx0ID0gZW5jb2RlSW1wbChzdGF0aWNfY2FzdDx1bnNpZ25lZCBj
aGFyKj4oCisgICAgICAgIGltYWdlLmdldFBpeGVscygpKSwgSW50U2l6ZShpbWFnZS53aWR0aCgp
LCBpbWFnZS5oZWlnaHQoKSksCisgICAgICAgIGltYWdlLnJvd0J5dGVzKCksIG91dHB1dCwgcHJl
TXVsdGlwbGllZEJHUkF0b1JHQkEpOworICAgIGltYWdlLnVubG9ja1BpeGVscygpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKKy8vIHN0YXRpYworYm9vbCBQTkdJbWFnZUVuY29kZXI6OmVuY29k
ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnB1dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ5dGVzUGVyUm93LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCkKK3sKKyAgICByZXR1
cm4gZW5jb2RlSW1wbChpbnB1dCwgc2l6ZSwgYnl0ZXNQZXJSb3csIG91dHB1dCwgY29udmVydEJl
dHdlZW5CR1JBYW5kUkdCQSk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61446</attachid>
            <date>2010-07-13 18:15:23 -0700</date>
            <delta_ts>2010-07-15 11:17:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42214-20100713181522.patch</filename>
            <type>text/plain</type>
            <size>17024</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmE5NGRlOWFkMWE5NjRhNzBkZTAwYTZhMTJhMjJlMWVlN2IyMDhjLi40Y2MzYzQw
MTdjNDBlMzczMmEzNzlmYTdiNTIwMTFjYTA0ODBiM2UwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDctMTMgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNocm9taXVtL3NraWE6IEZp
eCBjYW52YXMudG9EYXRhVVJMIGluIHRoZSBwcmVzZW5jZSBvZiB0cmFuc3BhcmVuY3kKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjE0CisKKyAgICAg
ICAgVGVzdCB0aGF0IHRvRGF0YVVSTCB3b3JrcyB3aXRoIHRyYW5zcGFyZW50IGltYWdlcy4KKwor
ICAgICAgICAqIGZhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFzdC9jYW52YXMvdG9EYXRhVVJMLWFscGhhLWV4cGVj
dGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9mYXN0
L2NhbnZhcy90b0RhdGFVUkwtYWxwaGEtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKwogMjAxMC0wNy0x
MyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3RvRGF0YVVS
TC1hbHBoYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy90b0RhdGFVUkwt
YWxwaGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNGIwZmFmYTIyYzMyZjFmNmVlOWMxNGUw
MjllZjljYTJjMGFlOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy90b0RhdGFVUkwtYWxwaGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MjYyCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHgyNjIKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4
MjM4CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzU2eDE4CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMzU2OiAiVGhlIHRlc3QgcGFzc2VzIGlmIGJvdGggYm94ZXMgYmVs
b3cgaGF2ZSB0aGUgc2FtZSBjb2xvci4iCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBh
dCAoMCwzNCkgc2l6ZSA3ODR4MTA0CisgICAgICAgIFJlbmRlckhUTUxDYW52YXMge0NBTlZBU30g
YXQgKDAsMCkgc2l6ZSAyMDB4MTAwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTM4KSBzaXplIDIwMHgx
MDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvdG9EYXRhVVJMLWFscGhhLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDRkM2RhOTJhYzQ5NGJlNGYwMTdlYTNmYzU3YzE4NjI1ODZlODc2MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS5odG1sCkBA
IC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPiAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4gCis8aGVhZD4gCis8dGl0bGU+Y2FudmFzIHRvRGF0YVVSTCBh
bHBoYSBwbmcgYnVnPC90aXRsZT4gCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IAor
ICBmdW5jdGlvbiBsb2FkKCkgeworICAgICAgdmFyIGQgPSBkb2N1bWVudDsKKyAgICAgIHZhciBj
ID0gZC5nZXRFbGVtZW50QnlJZCgiYyIpLmdldENvbnRleHQoIjJkIik7CisgICAgICBjLmZpbGxT
dHlsZSA9ICJyZ2JhKDIwMCwgMjU1LCAyMDAsIDAuNykiOworICAgICAgYy5maWxsUmVjdCgwLCAw
LCBjLmNhbnZhcy53aWR0aCwgYy5jYW52YXMuaGVpZ2h0KTsKKyAgICAgIGQuZ2V0RWxlbWVudEJ5
SWQoImQiKS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBbInVybCgiLCBjLmNhbnZhcy50b0RhdGFV
UkwoImltYWdlL3BuZyIpLCAiKSJdLmpvaW4oIiIpOworICB9Cis8L3NjcmlwdD4gCis8L2hlYWQ+
IAorPGJvZHkgb25sb2FkPSJsb2FkKCkiPiAKKyAgICA8cD5UaGUgdGVzdCBwYXNzZXMgaWYgYm90
aCBib3hlcyBiZWxvdyBoYXZlIHRoZSBzYW1lIGNvbG9yLjwvcD4KKyAgICA8Y2FudmFzIGlkPSJj
IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+IAorICAgIDxkaXYgaWQ9ImQiIHN0
eWxlPSJ3aWR0aDoyMDBweDtoZWlnaHQ6MTAwcHgiPjwvZGl2PiAKKzwvYm9keT4gCis8L2h0bWw+
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CmluZGV4IGQxNjQyZmFkMDNlNjZjNzdmM2M3ZTg2MmE3OTJiNmEyYWQ4MjUyMDUuLjZh
MWFjNDA4NjExNjRkMmVlM2MzNGJiY2Q3ZjcxYzJhMzNkYjRhZjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI4OTYs
NiArMjg5Niw4IEBAIEJVRzQ3ODI2IE1BQyBTS0lQIDogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVu
dC9tZXRlci1vcHRpbXVtcy5odG1sID0gRkFJTAogQlVHNDc4MjYgTUFDIFNLSVAgOiBmYXN0L2Rv
bS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy5odG1sID0gRkFJTAogQlVHNDc4MjYgTUFD
IFNLSVAgOiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy1jaGFuZ2luZy1w
c2V1ZG8uaHRtbCA9IEZBSUwKIAorQlVHV0s0MjIxNCBXSU4gTElOVVggOiBmYXN0L2NhbnZhcy90
b0RhdGFVUkwtYWxwaGEuaHRtbCA9IElNQUdFCisKIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFz
dC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtY2lyY2xlLmh0bWwgPSBJTUFHRQogQlVHV0s0MTMxMSBX
SU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy1ncm9vdmUtMDEuaHRtbCA9IElN
QUdFCiBCVUdXSzQxMzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLWdy
b292ZS0wMi5odG1sID0gSU1BR0UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1sZW9wYXJkL2Zhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL2Zhc3QvY2FudmFzL3RvRGF0YVVSTC1h
bHBoYS1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTcxMDhlOGJjM2QzZTc1YjU3MWQx
YzgzMjkyMDBmMzVjOWQ0ZmFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvZmFzdC9jYW52YXMvdG9EYXRhVVJMLWFscGhhLWV4cGVjdGVkLmNoZWNr
c3VtCkBAIC0wLDAgKzEgQEAKKzU3NzllYThhOTA2ZDkzODhkNDM0MjFjNTY3NzNlODAxClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvZmFzdC9jYW52YXMvdG9EYXRhVVJMLWFscGhhLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL2Zhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBo
YS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzAyNzY3YmE2YjMxNzk2OWYwNDQ5MWYyNGQ0Y2Fm
NDc0NThmNDAyMQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTU0NzMKemNtZUhPWDs+MGt3XnF4
bnRmO1J0JjRJcV48b1V8c2xzVit3VjNScU5TdmxhQ25WUGVSaWh8V2lEQF98VTJlMSpHCnooM31T
cEQtJHlaPkxCOFROUWs3VWg9JDYxKGRyIVUmLT8yPl9kZmgmdikwO3N6azNidVRJZH18YHhFUWVa
ZUpAVwp6QyU2OTgkeiRpXzxXfXNFbFQpfn5kWDtufkpOaWJMYmlwaig9dXlYME4wMDdzajBuOUZh
THJGbkU9Szs9VzgxNlUKemokNHU+c3NGaUFjX1k2ezw/LTs1bCotPk1LaV9wNjImbjNMNVV3aXR5
en1HMU5kTjcyMkslJHJmVldRYDlefD4rCnpSUmBXcSs1N2NLeTxeeUc8cClQdEwxJE5uenV0Tktp
MTloUldZNlQ4eSUrUiVeQ0coNzFYaHhxR3IlZCQqWEUjQwp6WnhePCRCdFFEd2JZZ1hrZl4rXzEh
YGdGNiV1NE5sMkArNWpFU2FUYUhJQT9SJTFgMCVheTZlV1IwZVpKdyZefT4KejdJS2J7PG5kIWU0
ZlFyRismI3teZCtueztaLTcrfDdpWmNVOS0mOFhVLXRkfCRzVihqPDJCbFNoakU4SnZlJEZHCnpa
V0dAZEJvLVA0TWtMVj4qazR3eGR3dW4/VSZxPDw1VlQjNmBFUWN9MVhXYSQ9czRgNyVWKyRQYmFf
bHJxSypFKAp6WUklVGFxaklzVVhQSUhRezY0fDtHVHA1TWdqWkk7KlVeTFIqWkwtc29lRXpUan55
LWU5JT1EclZmIURFUnA8SE8KenFWdzV4b2ZeZ1RFV2EmLUZHfkhxS2tlSSpaYHw5dCgwMGk2X0R5
OEd2dlN5QCRPJXR7NHw7TkJEK1A1ZXhwdkArCnpKS0xaNkVBMz9WZ0BpRiR7P24hUz9jKlVkJGlW
Q3wqQChyRCN2bzRZc3wqPnE4cSQzKDwyNnN1QUBZez87RVIqUwp6elApP0h5MlAke1h3QDRpVjVV
dkhsbGY7Mkd+PnlHc0tRNFQjfCNHZTRePEdAd3RGS2B3TVlsIXk2ZmNnY25WU2QKelA1R0EmJG94
dTt1P21heyE2dEFnYytOe0dtJk1zaVlDRkwmLTw9LVFhYE9OeClHREp0YXxmQS1HKUpiS3ZlVFdm
CnpNeVFSYClKfE99SGFNIXVhZSs7JEpVcVpRNFYqSGBrYVNqNWV+aT5mUWszNnAjNU92KGBeJkIw
dnhuYz5ZKjMzawp6di1nYmFZdFBTdEAwJlNJZHYka3ohc19nO3BVIzM+M1pWQVMtY2s8MGZHQCZS
NGAlR1QkflAwYGg+dGZGUGBAO0oKejZ6Q3MzWkB6MmxFSyMqZGh6UiQpOyZMeGx6NTkyMWQtamNt
UllrI1FAe3g9bFo7IShjOXhsYF5DMz9QfDFeVW9+CnpTeDRQZDlnXiN9SlU/VG5kZkJ8TVk2NXEl
ZFNRPCtLQyh8R1RkUFhIJWQoKG9CPF5MSlc+enNRK3trQD5rZmZyPgp6PiN5Pm4+NStUKV5+ezV3
bXBCXzJQeSRveFM3Z2BRMjBPV3Q+fldMbD1RQVBTQlFFVCpGQXZFaXA/aCFNQll3WU4KelV3Xj1E
cjk9Z2BVI0pnVzw1cjckLVVoJD16U0hsRj9MeWt7OTF3RG5yIVFQRGV7MVhkY3Z+fHdJa19FanI7
WiZ5CnpBMHQwVzBqS0szXzhBU2tVaSZodjUpfT8xWihGbkJvbmclQ204KH1tUiFfWkNwYUJMY0FR
Y0cyVn58MS02cnBoIwp6U1dYMlJJJEZvPFNRJVl2S05zYU4mbl92JSl5R3d7XnxFZk4oRVk7eFpK
ajc1dWRzNlUjdlJzKVo/I3J5X3lJPH0KelJlcFRAdkhvPUJtV30lcWV1K3JlcG5JTXJQTi1GPlpJ
V3ZJUkRHNnNOb21RI2tJJWdaQGB7JVVgSkswYWUhVkVDCnpfYCZwVmFwX0xUSE5XcUc5dUdkZ1le
VUZNXmVvJEQ8PWghLWA5NmF7Z1BzNFZTPDlEZ1NVbCVYdnYyJHIpX3oydQp6JkRwZH1aUzhJRnVk
ayhZKkRXP1hURjw1U3IhRzYzcWptOSRXeEd5ZkJgVEVyY1Y5WDdrNk5PRmtMRXdTU2JHc3gKelpu
PHlxKHJETERsb29nMmE4O2h5Mz41em5GQS00RF58bEk0TFdYe0ZET3wpIyZmJXhTZz4+NUlxWDEx
OXg1IWctCnpzd35iOXckS2RKbmk3OWNuK2w0NSM+fl4zTS1BRiVhMkNhPFgjalcoYVJsKHE3YklD
Pkk9ZzxlenlWYVVLQllrJAp6RnY7YllYKit5Nl5XJE1RQ3wydzJBbEtwemxibno8a0RJfElrcUZ3
VGFUNzFCYD11N3hnc3cmfjhKeEljdFg+bEoKemRmJDJfVkVwdi1qY3BCSEZ7QzA3IStUSmd2Uykz
eCZBJlhncnwmMTVVI15gM21rTDR3UiplNVJzQ21xMGxnfEtlCno1Vz4/VSpLeDE9PElMeWwyJTdm
c1VwRTZ2O35EI3kqeXQhcSFhY3h1QSo2Q1Q9KUlXPi1UXmxBc0pUVFMjJVhUYwp6NkxoN0RqPlVA
MmtUZkloPkFaVVAwZTJ4dHlfKEV3RXdSfE5kQyRAdERQOGh2U0JSTUsxd3QyUUdNbWdCPUJpM0gK
ejMqOXk3czsjUGVreS04UXE9cihHQXF7bFI8YGo/YkZLN2d+Y3M1TUxAYFJnQTF+QD85czwwUDxv
UjsxKV81eyZ2CnpCZUQwM2cyd1BQVTJERlUyNGNzTkJNT0AmQjZoTjFYZGMoQiQmUDhJVD9mUHVQ
bUFaOTtDdWdeTz8wRjNkeiRhcQp6TjQ/OytldjJjJDVvYHpFPUFCVGN0ZSg4QXJYVGZPKzN0MTJl
eXJ5RE5rMDRQNn1MWWo8c1I0ZWtMfkpjaEJtQDkKenlvYiM8RWszbCNkKnkyYCk+Q24wPjtgUmYr
OFhpXmNSQGN7dDRuJURoamlmTilmNEkpT3VzIz1AfnNpUHJIYmNqCnpYbjEyQlhTJT40QXJTaUBW
OT0tUlFYMVJkKkFTY2coYzQlb0pyZiZCbz8oTFAhMU1ZeTEkQVo0czg3UmZRWWAmdQp6UWFwdVVy
PXxDZjQxaUArPG9mWT88OSlTRCtyO2F6THs/Zn1yb2hAR2x1YGY0Wn01fitZfXg+VmlVSiNEdT4o
aH4Kemk/PGFLLTVeajN0MiYxZU9ldWRnQTNEIUhqbitUMDxpVFJ+TU9WcGU4MlFjRXZoKmNUXnNV
KU9GWDkyP0RjQFJ7CnpzQVRUZHpkZlFXNSpmSzVnfCNsZUlMKjFYKW5hUER5TGN1T3MyNnIheHRJ
YkdPUj97dD90PFZWVzJBM2tIOEB2WQp6cWQ3aiVXN242N2B+Skd3QWRsQlVUakxQKEtKMVJJeUg3
UyVqNEVAIyYlcUIhRmB5a2N1SyFaVzgxfFUyQ3hfajIKeiVKbmhmN0MyWj90a1I0OFZ4JkdgWDNs
R0soRTNEKyVvN1g+S2ZoXjs/WVlVQ1YoVXBGandlJns9X1hwRFp6bGxUCnp1KVFyUEN+YEtKeGVm
c0JaQkNOREtkPjF6Nl9IN15sekp4YTBmV0dSJXd3cXVkLVdMfUVxKnhSNnJAUmdEeFBUdQp6bjgo
ZEdDYk9oJkw3ZCN+bkYmdEhAdTBgbjdtPiQ9Ui0hUW56KHc1NWxqUSFZaTNCIzM+UyZjVy1AcnN2
ZjlORHEKejNzfmp8eVl8YHV0dzxQZFhvT2MhWlZXTUxKN3NAaHZZZVlrNjwrQkZiNiNtJWo4KlFW
M29UPitkVzFYfT9DbmxACno1YHZ0SVopfTU4T2EmUD00U3VlemB0ZFluZWQ/cFVnJTg/RU04czU3
SjBAQC0wb2ZLO01oUEhDeTNjRjUmSldfRwp6aj14Xkl0M0ApRkc4c1otciVKVkEtWUlWWUA7QGh8
PUMxYEdEeHtuUWEmRGpLXyl7SThyPXo0OXtqJXF0ZkdRQzsKeih9OXdPdjZLaD58MnBKcClIcFF6
bCpGPjVUWnVYOGZFdVlHNiFqRFV6Ui0qWUdrayU5LW9VfSZyU3VmYFZXVm8zCnotISlLTFk9Xkky
MilNez8obH1CSXNEQyhhNzdAQ0NZSGcqZVJoU01Ra2R7KHJlYTUjblJDbjlPeD0rcTNebW0wUgp6
KHJvMEpWbiFMV1B2ST41KiVJVCRnYHZUR1ZqaGY+ZjVJWkxlUFNWYSFia1lGRUVtNlVgMHs/M2Jx
PnF9ZnNjNlcKelo0OF5mM0RtKTMpfSRFWigkPU1MO0tHI2pfPm87SG9US2V1JiFiSUEyZnltV2RG
PypKJipkPSQ9I1lVKF8mTTEhCnpZUUdrSUtnR2tDMEc8enhuXz9YeHJkfC1NMHNpbnp3ZWo4JE85
VHhHP3B8IzAzNGk9aiE7ZCNCNG9RNi03JW9rQgp6TEhrdW9UOW05Ny1uQz9QTVdKbCF5NW1gM1Jw
bylOenY7KWVaTlZAIShnUUF+MHtOTWJgcElGJHBvVnByIVFMPzsKelJoa2BvdTMlYyFzU0VmUF5g
WXNjbUlXSCo1TylSNWJATT1GWVI+NHtLQ35zYkFmPkZLciF6UDxPPnZreVdPY0ZqCnp7Wl5IbDI4
SiM9VWdTaUdHKUQjVVdedSt3eWlpeUZBWDcrZnYhKTgyPEpOd3YkTWdAYWMwKkFFWTFUYnkxTk11
SAp6ekE0ZFQ5QGhKUFB6cDAhMlR3dHU8fDhuPmR9R31QTkE/KUlYaGVNY2NNOFkkUFJwZV5sfF4q
Vys8WGB7RGcldVMKelgqfHZ+ZCFaKXtEdTJ7aURrSXBmNnloJlp0eSE+ZCtUOGxrMD5oJkJGazNG
MkxHJD5AT0M/WF4hT0g0RWd9KlFeCno3bn1IYFdMcj1FVSZJPHJDVSVnS1I0VDFDI05CdjY5a0dU
PlMxUDc0cV5PNHQoelBKQDZ7ZShjV3RRSVRselVEJgp6U21PaUpPMlQ3WUAyUDFMTyh0XmBVRns9
fl8/Zmlra1c/R3J7OyVQZkFXJT8jPSZoamtfWTQyX0d4aEQ+aE1UQE0KemJ9N0A7KHJjKTNWeGlT
YUpwSDZKLXRUbTI0enBlV0RIcU8wa1ZDQCF0cHQ2TiQtMig7VjZYLTNFZHU5UGlaTXgtCnpJJHNp
SiNYeXdNVWVuaSFgZXRaJm1HUlIoWFIjQFJxZWVBWilkfnMyRH1hfm1xZGw5IXJKTXRBMj1APmps
SmQ7UAp6aUxleTZMNyFUeFh2IUY0M35wJFRLZVZ4QXd6NVo7aio5Syo8SGVhRnRMeiZtZ0Z8em81
ay1SJUF3alpebzs+TzsKejlKYTdTcjQ8JEdwM1R1PzMwVnVwVkFlSWVQI3FEbUMleD5OIT1xQmhR
JV56SFk7STtTbVN5QUwmbCk8S2dMRGdTCnpJVjRSZDdMOFVWdjdKSG9ZKVpYVyk4KGh0d0xRPzk+
S1c0TzkjUGohSHxzMjB6fUd5UiR4K1QydEYwO2Y9K0slVQp6JW9HX1l3ISo3anRwZUxTVD9sYkst
b3AxQGBIV0tDUXU/O3RrJU5YeUIqZihYWUs+YHlhe2x2STsjTW5tbXlfZ1cKeiQ8MXk7e0hURzBn
cnQ7YllUSlBWSEgtIVhmOWc1aCE9LVZPajJtY1MjR0lrMXtAfnxiLUctaXswVWNKUTklTnMtCnol
QVg5N2JNRS1mRjAyJWR2RCYrUGNQfHpoRys/cjc5a31wSWVldXIrWHVxVyUrQzM4elhJYlFYRiUm
MipmXkszSAp6X0lxY251dl5jaE80KUkxSXhwZiZpYnFzRXVhNXdXIzw5WD8tOWJxdGEqU0ZwNkt+
Si0jTnhXZzVVaXU0PDFGd3EKel9uPmd7Qkc0MUYyV3VFRXR3dGd+eGR+flg8SWRaUWIrISE1ZTlM
UCoqVUc8RVVwIWtYQVkmPkY4fkkqdHoqbnFkCnpGdHtNclY+MGshUDYhMGErQGRPUjBqMVQ0YSt4
SVYzeGkyOGAjQT5iV2BRJTZATmY4WDRAbGZTPER4U0IyTG53eQp6Km1xKiV6Xm1TRiZLK0prNVpB
fiYwfTVxfGo2JUdUVUc2cDZrdlRzK3ttVikqYHc+Jm1zJCVpdCNHM2k0KDc5OysKelMqNSN9YXcr
bF5OJk1zR19EKmlWK0BQWTxsUj0pRHZEKmktbX1QMDs7XiZzYVBNe285Y2MlbEtQZWw4azNDeD99
CnptNF9lJlNoI2soNkBoSUhCNF8wQi0rPGlDT1BOZ0d5MmF7e1led0YjKHZrRSF0dFM3LWZoa21a
dTN1fUlucnF+KQp6RUo+fVBHcHpnKDtAYUxEUmt1KjVvan1wO1Y2YStFY0khQSVydmhXJS1pVmA9
Nzw/a0ohVX05YmYlKTdMKz49dEQKemEjQndeaThzbGZMeEhSRG5WeTtpJDV3elEpMSp+eFQoelY9
WTYrc2dza2txUUlxfWRARV5LSkx1Q3Z7bD8wbylXCnpXKypxPktVUFlJSmtQWGhWZUZ4fU1nJHFF
PHdtQShpZDxeZUVLJjFLci1tZ3NGX3EhKHRWcUx6Q2FAZnB5dF5fQAp6NllEcG1mZ285cypacSQl
cTQ9UGh5UVozeEMjPzhpWHAzUl8tOCUkMVlKUUskdj9HSi1ZNVlHdHM0K2VBMWFSUGgKenNjSUNy
Kl9KYD5qSEhPblQqUCttSXAlV3xIVm80TCY8Vlg3NlopWVl5I2E+TTJmdStmPlQhR0gkNWd3cnp+
blh8CnpQJmxqdnBxSDV0R3RpYClsYU5JO2o1fmQpJXZ1bkVxZ3ByP1Q0T0hkcHtuRTIhUzlNRlp2
ciMoTzxUWm1lVSk4Wgp6TTIrLSZzKWU3T0gpVFBaM1JfSkhrO3RCQ2EhT1l2eGlQdFZjNXN4QEtW
RHk5VVpzMjwxMVFvQyQ9YFZ2VE5YVWUKek1Qe1BTVXxuQFRofiRaYipEdUh5MDhycClCdEhXSiYr
TkE7bjQ9LX14dzghZT1SfSpEYEotaSlhP2FsUTJJT3dGCnp2ZUFTaFc9QXstPmwwNWByI2BqWkxD
KDcwPDUlPiNWWnUqOCN8UFlpazlqNXQlTz5WdDttM2x2Z0hAMHMmO2BscQp6Nz0jfnMyOD8+bW1O
RXE1Rz1DcU4zJFpXIW91cWV3T003fHhsWCRjKSNLcCpCOS1KbDg0ZUlNVGtnQW1LMDNhS1cKemZ9
eH4lY3BZIXlNcUtlK0txLWhjOWBsZjItRHY1QjVqUV5SKkRYT3h3d0FgVTFlX0NXNH5lQHNaX0tV
Xyl0LWUqCnpJfDIpWUFFeD9yY2daRGJKKUJNSSpHMV9tZVgyckxnLUY0QzhCckN8O2F9WEo9STxB
blB5KUkhb18/KDchaE8+WAp6dWQydHByfHQrY0RCR0xqYGJMQHA1RDBRc3poUjtIc28mJntpQCF6
VHU1cnpvO2o+YD4jJjJoITZvR2RVXkZyeGkKejVpREVaeHFPcyo1bGp7R2RsQz9nZzg5P0l8MCFn
LXZkNFMjSWJQIURVREd1UEc4UE4jal83SktVQH5YV1IteXBECnpvMFhAOFBpQTc+SCFuNm8qQ2lw
PkljXj1uQWJiTDg4KHFHSHNPRShTKnJqbUpLVGF2enFFa1Y/JkxGQn5id3lXSwp6PTtBfjdaMzc/
QTxScEctaTgwNmZuMld3MDM9dk0oc3pRdmpRMlN4U3RfQD4kcHt9RnpqaHRzbjdGVnwkaV9fdHoK
elBDZk0jMyFOaVQ3dG94NmtwTjVqO1pJVzFmSW5FNWZHJVUzazlRcE00UkE/eWI1Tm56T3IjV2Zh
MF5wUjJoTX09CnprfS0jTGwxbyNkOHMxN3lZUTU3bm1BYykqfE5TOVIlJHxZLVc/Z3tHTHh2fTRE
NGY7aEdrQ3h0dDItLVV7RVJQbgp6Ulo7aylUUGhqfGY+ITUtRHxoK21zSGJxWXlkcXtMOyl4dFJK
aXc7PzZueENxR3JRfWR2JWZ8VysxSzJWKF98TSEKem53QlFieHJ8YXkjUVM3UVo9MH55SChhRihu
VG9iVHFLdmZHSEs7LVdabUVpcVhTS2s2MXduU2NNU2t3YT44P3F4CnpATnZXWmlienNsWDd4LWxr
S3x8MG8lUFlfbH1NNX4pUUYrKylEdiF2dHd4diV5M3pvbjtTPD5XXzNSOWpocCVUSQp6dmNrbnRL
PkYyWWkjZ01kNVVpc30lPShDQGR7O0A8aXU/OTt2NllGIUheemJSbjVSVVNIK1dETmlYNVBgS0Ut
cyEKelA7QDM1SWxJN1VqPjAhJmRtd0RDPjVTUmx3SlVge001PlZYOTlWMDI5fW4tZU51Umt0Qm55
PDw2MiVjUnQ+Q2VGCno+UHlZPGFGZmdNR3VIKFV5Y2lsP3B1NCYlI3xCWSVoM214Oz1+Xz8xRXI5
SzMpN2tvTilRS01QUD9odEdJc2Vrbwp6ZUhabHdfUCpTKmUqUVVaTCRgUkVZc1ZPRzchMyEqQ3Ry
R0lYMlV5dURkdUV+bUJUKDRAZ1pzVihqVndkMnR+dk8KejJOJCsoSTVjdjx4aWp6KWprYzxeJlIy
V1opMVp3KFFUaFpYOSsoUSVZRkYkZitfT1UoSHNII3Y3S1UkVHdrNXpsCnpFSEA3SlFjYmIhJVJR
Wj92KnVWPE9FanZIMWlmbFQyJk9YWXI8anZFZ2p8ZzBxYmV3SzlIQFcqN09ebE1ZKkphPAp6TFlf
cChaMT5IWkx1Qk9yJGU4ZSl4NSNieENBKioxQzdOXllJMHprRmI9cl5vLVFeRmotdUt5Yil5VkJ2
aj9feD0KenctWipiViZgd1d7KShKK3w3VFBuTTZjQmRzN1h1fUk2MSljaSM/djJacDNhI2dEZX1F
Y3RJND9EaXRxN1Q8ajFfCnpSY21RQmFiMmBWQkxNUVFBREFUZyRKRUFOa2FRI2hOJShKcVRjdH5p
JjM0UGkzZWd2KEdZXm9ibGxEXm95ITIzQgp6SHJEYmtANF9BfStrbXB3KEs/ejs/cTBnKWtNJkVO
OUlZPz5GfVFufjl6PTE9ZUcxblF5ditPcz1eJGg0SV4kKH0Kent+TzBqdDBzKnxBUFpEWFFjVWpL
Mk4jQm1uX2JjPzM2I3loRjE9ZiFJJnBYNGZuX3RBVit3MGVlJVB+WUxTdyEyCnpuTWBFbVk4ZnR6
NWhydG9yNXFyMDJBTU1+NmA7ak5ST1NyLT4mfkYwaT9AQmVXIWJNNmlQbGJVUnFwUzNOP1RVaAp6
TXg+UTNNRWxnPXRWQWtmRWd4YDAmM0BVNlVSV2pPZ3tMTzJwMHFLMnYmbW07YkF3Rj05P2FFMnp5
N3B5e2d+QTMKekZ9dEs/NEJAMTt7R0h4RW0oaD10KCNrSXJ4aH0oSGtxeWU2VlgzKjVJZktqQDc3
X1RyO3wjaHRDUSkqN3MqSl9JCnoxXkR8bkBCZmNVWlRNTUIlJDxpdmVtPjY5Umo7bj9ScnFWQUxH
SDNEPVdaP0VIbzFGUUgreXlNPz5wQE5Ya05EUgp6UVE4QyMrQ047VGdpNGZ8YDJtTHZuX3Ryc25j
d2BLMlcydCF0MEtxfSNqbyY/QzVtNTIkUCRHdFFPRnBAJilJfTUKejctWWQ5M2tGIyokb2VUK0tQ
QnRLbSE/UnZwNVlmJG1ofXcza2RWPE44QkxQV0JwRlNUKFdMKFlPJlhUUy19KypfClcofGc9VEVk
NXR2eGw9YXckNFpXUC1Te3RjdkFgKy0KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkNzc3NmNk
YTI5YWI2MTRiZDM0OTcxYWFmMGZiZDkzZTdhNzIzNS4uYjlmZjVjNzg2NDQ5NDUyN2M5OTQ1NmM5
ZDMwZTk5Yzc3N2ZkOWFkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNy0xMyAgTmljbyBXZWJlciAg
PHRoYWtpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgY2hyb21pdW0vc2tpYTogRml4IGNhbnZhcy50b0RhdGFVUkwgaW4gdGhl
IHByZXNlbmNlIG9mIHRyYW5zcGFyZW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDIyMTQKKworICAgICAgICBUaGUgcHJvYmxlbSB3YXMgdGhhdCBT
a0JpdG1hcHMgY29udGFpbiBwcmVtdWx0aXBsaWVkIGRhdGEsIGJ1dCBwbmdsaWIKKyAgICAgICAg
ZG9lc24ndCBleHBlY3QgcHJlbXVsdGlwbGllZCBkYXRhLiBOb3csIHRoZSBlbmNvZGVyIHVucHJl
bXVsdGlwbGllcworICAgICAgICBkYXRhIGJlZm9yZSBzZW5kaW5nIGl0IHRvIHBuZ2xpYi4KKwor
ICAgICAgICBQYXRjaCBwYXJ0aWFsbHkgYnkgZGVhbm0uCisKKyAgICAgICAgQ292ZXJlZCBieSBm
YXN0L2NhbnZhcy90b0RhdGFVUkwtYWxwaGEuaHRtbC4KKworICAgICAgICAqIHBsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvUE5HSW1hZ2VFbmNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnByZU11bHRpcGxpZWRCR1JBdG9SR0JBKToKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZUltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6UE5HSW1hZ2VFbmNvZGVyOjplbmNvZGUpOgorCiAyMDEwLTA3
LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1
aWxkIGZpeDogZml4IFdlYkNvcmUgZXhwb3J0cyBieSBlZGl0aW5nIHRoZSAuaW4gZmlsZSwgcmF0
aGVyIHRoYW4gdGhlIGdlbmVyYXRlZCBmaWxlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1lbmNvZGVycy9za2lhL1BOR0ltYWdlRW5jb2Rlci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWVuY29kZXJzL3NraWEvUE5HSW1hZ2VFbmNvZGVyLmNwcAppbmRleCAxOTM2M2M4
ZTc0YzQzMWEzNWEwNWIyMTA3MmFmZDU0MzM2NzEwZGE0Li5hMmU4NzYwZDEzNWFlYzFkZDM1NDBi
MmE0YThiNmFjNTI2NWJiNjUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVu
Y29kZXJzL3NraWEvUE5HSW1hZ2VFbmNvZGVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvUE5HSW1hZ2VFbmNvZGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlZlY3Rvci5oIgogCiAjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKyNpbmNsdWRlICJT
a1VuUHJlTXVsdGlwbHkuaCIKIAogZXh0ZXJuICJDIiB7CiAjaW5jbHVkZSAicG5nLmgiCkBAIC01
Nyw2ICs1OCwyNSBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0QmV0d2VlbkJHUkFhbmRSR0JBKGNvbnN0
IHVuc2lnbmVkIGNoYXIqIGlucHV0LCBpbnQgbnVtYmVyT2ZQaQogICAgIH0KIH0KIAorLy8gQ29u
dmVydHMgQkdSQS0+UkdCQSBhbmQgUkdCQS0+QkdSQSBhbmQgdW5kb2VzIGFscGhhIHByZW11bHRp
cGxpY2F0aW9uLgorc3RhdGljIHZvaWQgcHJlTXVsdGlwbGllZEJHUkF0b1JHQkEoY29uc3QgdW5z
aWduZWQgY2hhciogaW5wdXQsIGludCBudW1iZXJPZlBpeGVscywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIG91dHB1dCkKK3sKKyAgICBTa0JpdG1h
cCBpbnB1dEJpdG1hcDsKKyAgICBpbnB1dEJpdG1hcC5zZXRDb25maWcoU2tCaXRtYXA6OmtBUkdC
Xzg4ODhfQ29uZmlnLCBudW1iZXJPZlBpeGVscywgMSk7CisgICAgaW5wdXRCaXRtYXAuc2V0UGl4
ZWxzKGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGlucHV0KSk7CisgICAgZm9yIChpbnQgeCA9
IDA7IHggPCBudW1iZXJPZlBpeGVsczsgeCsrKSB7CisgICAgICAgIHVpbnQzMl90IHNyY1BpeGVs
ID0gKmlucHV0Qml0bWFwLmdldEFkZHIzMih4LCAwKTsKKyAgICAgICAgU2tDb2xvciB1bm11bHRp
cGxpZWQgPSBTa1VuUHJlTXVsdGlwbHk6OlBNQ29sb3JUb0NvbG9yKHNyY1BpeGVsKTsKKyAgICAg
ICAgdW5zaWduZWQgY2hhciogcGl4ZWxPdXQgPSAmb3V0cHV0W3ggKiA0XTsKKyAgICAgICAgcGl4
ZWxPdXRbMF0gPSBTa0NvbG9yR2V0Uih1bm11bHRpcGxpZWQpOworICAgICAgICBwaXhlbE91dFsx
XSA9IFNrQ29sb3JHZXRHKHVubXVsdGlwbGllZCk7CisgICAgICAgIHBpeGVsT3V0WzJdID0gU2tD
b2xvckdldEIodW5tdWx0aXBsaWVkKTsKKyAgICAgICAgcGl4ZWxPdXRbM10gPSBTa0NvbG9yR2V0
QSh1bm11bHRpcGxpZWQpOworICAgIH0KK30KKworCiAvLyBFbmNvZGVyIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAv
LwogLy8gVGhpcyBzZWN0aW9uIG9mIHRoZSBjb2RlIGlzIGJhc2VkIG9uIG5zUE5HRW5jb2Rlci5j
cHAgaW4gTW96aWxsYQpAQCAtOTgsMjQgKzExOCwxMiBAQCBwcml2YXRlOgogICAgIHBuZ19pbmZv
KiogbV9wbmdJbmZvOwogfTsKIAotLy8gc3RhdGljCi1ib29sIFBOR0ltYWdlRW5jb2Rlcjo6ZW5j
b2RlKGNvbnN0IFNrQml0bWFwJiBpbWFnZSwgVmVjdG9yPHVuc2lnbmVkIGNoYXI+KiBvdXRwdXQp
Ci17Ci0gICAgaWYgKGltYWdlLmNvbmZpZygpICE9IFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZp
ZykKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAgLy8gT25seSBzdXBwb3J0IEFSR0IgYXQgOCBicHAg
bm93LgotCi0gICAgaW1hZ2UubG9ja1BpeGVscygpOwotICAgIGJvb2wgcmVzdWx0ID0gUE5HSW1h
Z2VFbmNvZGVyOjplbmNvZGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KAotICAgICAgICBp
bWFnZS5nZXRQaXhlbHMoKSksIEludFNpemUoaW1hZ2Uud2lkdGgoKSwgaW1hZ2UuaGVpZ2h0KCkp
LAotICAgICAgICBpbWFnZS5yb3dCeXRlcygpLCBvdXRwdXQpOwotICAgIGltYWdlLnVubG9ja1Bp
eGVscygpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLS8vIHN0YXRpYwotYm9vbCBQTkdJbWFn
ZUVuY29kZXI6OmVuY29kZShjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnB1dCwgY29uc3QgSW50U2l6
ZSYgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ5dGVzUGVyUm93LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1
dCkKK3N0YXRpYyBib29sIGVuY29kZUltcGwoY29uc3QgdW5zaWduZWQgY2hhciogaW5wdXQsCisg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFNpemUmIHNpemUsCisgICAgICAgICAgICAg
ICAgICAgICAgIGludCBieXRlc1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9y
PHVuc2lnbmVkIGNoYXI+KiBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpj
b252ZXJzaW9uRnVuYykoY29uc3QgdW5zaWduZWQgY2hhciosIGludCwgdW5zaWduZWQgY2hhciop
CisgICAgICAgICAgICAgICAgICAgICAgICkKIHsKICAgICBpbnQgaW5wdXRDb2xvckNvbXBvbmVu
dHMgPSA0OwogICAgIGludCBvdXRwdXRDb2xvckNvbXBvbmVudHMgPSA0OwpAQCAtMTU4LDcgKzE2
Niw3IEBAIGJvb2wgUE5HSW1hZ2VFbmNvZGVyOjplbmNvZGUoY29uc3QgdW5zaWduZWQgY2hhciog
aW5wdXQsIGNvbnN0IEludFNpemUmIHNpemUsCiAKICAgICBPd25BcnJheVB0cjx1bnNpZ25lZCBj
aGFyPiByb3dQaXhlbHMobmV3IHVuc2lnbmVkIGNoYXJbaW1hZ2VTaXplLndpZHRoKCkgKiBvdXRw
dXRDb2xvckNvbXBvbmVudHNdKTsKICAgICBmb3IgKGludCB5ID0gMDsgeSA8IGltYWdlU2l6ZS5o
ZWlnaHQoKTsgeSArKykgewotICAgICAgICBjb252ZXJ0QmV0d2VlbkJHUkFhbmRSR0JBKCZpbnB1
dFt5ICogYnl0ZXNQZXJSb3ddLCBpbWFnZVNpemUud2lkdGgoKSwgcm93UGl4ZWxzLmdldCgpKTsK
KyAgICAgICAgY29udmVyc2lvbkZ1bmMoJmlucHV0W3kgKiBieXRlc1BlclJvd10sIGltYWdlU2l6
ZS53aWR0aCgpLCByb3dQaXhlbHMuZ2V0KCkpOwogICAgICAgICBwbmdfd3JpdGVfcm93KHBuZ1B0
ciwgcm93UGl4ZWxzLmdldCgpKTsKICAgICB9CiAKQEAgLTE2Niw0ICsxNzQsMjcgQEAgYm9vbCBQ
TkdJbWFnZUVuY29kZXI6OmVuY29kZShjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnB1dCwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorCisvLyBzdGF0aWMKK2Jvb2wg
UE5HSW1hZ2VFbmNvZGVyOjplbmNvZGUoY29uc3QgU2tCaXRtYXAmIGltYWdlLCBWZWN0b3I8dW5z
aWduZWQgY2hhcj4qIG91dHB1dCkKK3sKKyAgICBpZiAoaW1hZ2UuY29uZmlnKCkgIT0gU2tCaXRt
YXA6OmtBUkdCXzg4ODhfQ29uZmlnKQorICAgICAgICByZXR1cm4gZmFsc2U7IC8vIE9ubHkgc3Vw
cG9ydCBBUkdCIGF0IDggYnBwIG5vdy4KKworICAgIGltYWdlLmxvY2tQaXhlbHMoKTsKKyAgICBi
b29sIHJlc3VsdCA9IGVuY29kZUltcGwoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KAorICAg
ICAgICBpbWFnZS5nZXRQaXhlbHMoKSksIEludFNpemUoaW1hZ2Uud2lkdGgoKSwgaW1hZ2UuaGVp
Z2h0KCkpLAorICAgICAgICBpbWFnZS5yb3dCeXRlcygpLCBvdXRwdXQsIHByZU11bHRpcGxpZWRC
R1JBdG9SR0JBKTsKKyAgICBpbWFnZS51bmxvY2tQaXhlbHMoKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCisvLyBzdGF0aWMKK2Jvb2wgUE5HSW1hZ2VFbmNvZGVyOjplbmNvZGUoY29uc3QgdW5z
aWduZWQgY2hhciogaW5wdXQsIGNvbnN0IEludFNpemUmIHNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBieXRlc1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+KiBvdXRwdXQpCit7CisgICAgcmV0dXJuIGVuY29kZUlt
cGwoaW5wdXQsIHNpemUsIGJ5dGVzUGVyUm93LCBvdXRwdXQsIGNvbnZlcnRCZXR3ZWVuQkdSQWFu
ZFJHQkEpOworfQorCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61690</attachid>
            <date>2010-07-15 11:17:12 -0700</date>
            <delta_ts>2010-07-15 16:47:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42214-20100715111710.patch</filename>
            <type>text/plain</type>
            <size>17047</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmE5NGRlOWFkMWE5NjRhNzBkZTAwYTZhMTJhMjJlMWVlN2IyMDhjLi40Y2MzYzQw
MTdjNDBlMzczMmEzNzlmYTdiNTIwMTFjYTA0ODBiM2UwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDctMTMgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNocm9taXVtL3NraWE6IEZp
eCBjYW52YXMudG9EYXRhVVJMIGluIHRoZSBwcmVzZW5jZSBvZiB0cmFuc3BhcmVuY3kKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjE0CisKKyAgICAg
ICAgVGVzdCB0aGF0IHRvRGF0YVVSTCB3b3JrcyB3aXRoIHRyYW5zcGFyZW50IGltYWdlcy4KKwor
ICAgICAgICAqIGZhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFzdC9jYW52YXMvdG9EYXRhVVJMLWFscGhhLWV4cGVj
dGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9mYXN0
L2NhbnZhcy90b0RhdGFVUkwtYWxwaGEtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKwogMjAxMC0wNy0x
MyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3RvRGF0YVVS
TC1hbHBoYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy90b0RhdGFVUkwt
YWxwaGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNGIwZmFmYTIyYzMyZjFmNmVlOWMxNGUw
MjllZjljYTJjMGFlOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy90b0RhdGFVUkwtYWxwaGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MjYyCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHgyNjIKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4
MjM4CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzU2eDE4CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMzU2OiAiVGhlIHRlc3QgcGFzc2VzIGlmIGJvdGggYm94ZXMgYmVs
b3cgaGF2ZSB0aGUgc2FtZSBjb2xvci4iCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBh
dCAoMCwzNCkgc2l6ZSA3ODR4MTA0CisgICAgICAgIFJlbmRlckhUTUxDYW52YXMge0NBTlZBU30g
YXQgKDAsMCkgc2l6ZSAyMDB4MTAwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTM4KSBzaXplIDIwMHgx
MDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvdG9EYXRhVVJMLWFscGhhLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjQ0Y2U1MjFkYTM2M2QzMjI5MDE4ZTczNzJmMjU5YmQ2NTA3MjA4MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS5odG1sCkBA
IC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPiAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4gCis8aGVhZD4gCis8dGl0bGU+Y2FudmFzIHRvRGF0YVVSTCBh
bHBoYSBwbmcgYnVnPC90aXRsZT4gCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IAor
ICBmdW5jdGlvbiBsb2FkKCkgeworICAgICAgdmFyIGNvbnRleHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYyIpLmdldENvbnRleHQoIjJkIik7CisgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9
ICJyZ2JhKDIwMCwgMjU1LCAyMDAsIDAuNykiOworICAgICAgY29udGV4dC5maWxsUmVjdCgwLCAw
LCBjb250ZXh0LmNhbnZhcy53aWR0aCwgY29udGV4dC5jYW52YXMuaGVpZ2h0KTsKKyAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkIikuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gWyJ1cmwo
IiwgY29udGV4dC5jYW52YXMudG9EYXRhVVJMKCJpbWFnZS9wbmciKSwgIikiXS5qb2luKCIiKTsK
KyAgfQorPC9zY3JpcHQ+IAorPC9oZWFkPiAKKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4gCisgICAg
PHA+VGhlIHRlc3QgcGFzc2VzIGlmIGJvdGggYm94ZXMgYmVsb3cgaGF2ZSB0aGUgc2FtZSBjb2xv
ci48L3A+CisgICAgPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIxMDAiPjwvY2Fu
dmFzPgorICAgIDxkaXYgaWQ9ImQiIHN0eWxlPSJ3aWR0aDoyMDBweDtoZWlnaHQ6MTAwcHgiPjwv
ZGl2PgorPC9ib2R5PiAKKzwvaHRtbD4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggZDE2NDJmYWQwM2U2NmM3N2YzYzdl
ODYyYTc5MmI2YTJhZDgyNTIwNS4uNmExYWM0MDg2MTE2NGQyZWUzYzM0YmJjZDdmNzFjMmEzM2Ri
NGFmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dApAQCAtMjg5Niw2ICsyODk2LDggQEAgQlVHNDc4MjYgTUFDIFNLSVAgOiBm
YXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLW9wdGltdW1zLmh0bWwgPSBGQUlMCiBCVUc0
NzgyNiBNQUMgU0tJUCA6IGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItc3R5bGVzLmh0
bWwgPSBGQUlMCiBCVUc0NzgyNiBNQUMgU0tJUCA6IGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQv
bWV0ZXItc3R5bGVzLWNoYW5naW5nLXBzZXVkby5odG1sID0gRkFJTAogCitCVUdXSzQyMjE0IFdJ
TiBMSU5VWCA6IGZhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS5odG1sID0gSU1BR0UKKwogQlVH
V0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy1jaXJjbGUuaHRt
bCA9IElNQUdFCiBCVUdXSzQxMzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXItcmFk
aXVzLWdyb292ZS0wMS5odG1sID0gSU1BR0UKIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9i
b3JkZXJzL2JvcmRlci1yYWRpdXMtZ3Jvb3ZlLTAyLmh0bWwgPSBJTUFHRQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFzdC9jYW52YXMvdG9EYXRhVVJMLWFs
cGhhLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQv
ZmFzdC9jYW52YXMvdG9EYXRhVVJMLWFscGhhLWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI1NzEwOGU4YmMzZDNlNzViNTcxZDFjODMyOTIwMGYzNWM5ZDRmYWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9mYXN0L2NhbnZhcy90b0RhdGFV
UkwtYWxwaGEtZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorNTc3OWVhOGE5MDZkOTM4
OGQ0MzQyMWM1Njc3M2U4MDEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9mYXN0L2NhbnZhcy90b0RhdGFVUkwt
YWxwaGEtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFz
dC9jYW52YXMvdG9EYXRhVVJMLWFscGhhLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDI3Njdi
YTZiMzE3OTY5ZjA0NDkxZjI0ZDRjYWY0NzQ1OGY0MDIxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAxNTQ3Mwp6Y21lSE9YOz4wa3decXhudGY7UnQmNElxXjxvVXxzbHNWK3dWM1JxTlN2bGFDblZQ
ZVJpaHxXaURAX3xVMmUxKkcKeigzfVNwRC0keVo+TEI4VE5RazdVaD0kNjEoZHIhVSYtPzI+X2Rm
aCZ2KTA7c3prM2J1VElkfXxgeEVRZVplSkBXCnpDJTY5OCR6JGlfPFd9c0VsVCl+fmRYO25+Sk5p
YkxiaXBqKD11eVgwTjAwN3NqMG45RmFMckZuRT1LOz1XODE2VQp6aiQ0dT5zc0ZpQWNfWTZ7PD8t
OzVsKi0+TUtpX3A2MiZuM0w1VXdpdHl6fUcxTmRONzIySyUkcmZWV1FgOV58PisKelJSYFdxKzU3
Y0t5PF55RzxwKVB0TDEkTm56dXROS2kxOWhSV1k2VDh5JStSJV5DRyg3MVhoeHFHciVkJCpYRSND
CnpaeF48JEJ0UUR3YllnWGtmXitfMSFgZ0Y2JXU0TmwyQCs1akVTYVRhSElBP1IlMWAwJWF5NmVX
UjBlWkp3Jl59Pgp6N0lLYns8bmQhZTRmUXJGKyYje15kK257O1otNyt8N2laY1U5LSY4WFUtdGR8
JHNWKGo8MkJsU2hqRThKdmUkRkcKelpXR0BkQm8tUDRNa0xWPiprNHd4ZHd1bj9VJnE8PDVWVCM2
YEVRY30xWFdhJD1zNGA3JVYrJFBiYV9scnFLKkUoCnpZSSVUYXFqSXNVWFBJSFF7NjR8O0dUcDVN
Z2paSTsqVV5MUipaTC1zb2VFelRqfnktZTklPURyVmYhREVScDxITwp6cVZ3NXhvZl5nVEVXYSYt
Rkd+SHFLa2VJKlpgfDl0KDAwaTZfRHk4R3Z2U3lAJE8ldHs0fDtOQkQrUDVleHB2QCsKekpLTFo2
RUEzP1ZnQGlGJHs/biFTP2MqVWQkaVZDfCpAKHJEI3ZvNFlzfCo+cThxJDMoPDI2c3VBQFl7PztF
UipTCnp6UCk/SHkyUCR7WHdANGlWNVV2SGxsZjsyR34+eUdzS1E0VCN8I0dlNF48R0B3dEZLYHdN
WWwheTZmY2djblZTZAp6UDVHQSYkb3h1O3U/bWF7ITZ0QWdjK057R20mTXNpWUNGTCYtPD0tUWFg
T054KUdESnRhfGZBLUcpSmJLdmVUV2YKek15UVJgKUp8T31IYU0hdWFlKzskSlVxWlE0VipIYGth
U2o1ZX5pPmZRazM2cCM1T3YoYF4mQjB2eG5jPlkqMzNrCnp2LWdiYVl0UFN0QDAmU0lkdiRreiFz
X2c7cFUjMz4zWlZBUy1jazwwZkdAJlI0YCVHVCR+UDBgaD50ZkZQYEA7Sgp6NnpDczNaQHoybEVL
IypkaHpSJCk7Jkx4bHo1OTIxZC1qY21SWWsjUUB7eD1sWjshKGM5eGxgXkMzP1B8MV5Vb34KelN4
NFBkOWdeI31KVT9UbmRmQnxNWTY1cSVkU1E8K0tDKHxHVGRQWEglZCgob0I8XkxKVz56c1Ere2tA
PmtmZnI+Cno+I3k+bj41K1QpXn57NXdtcEJfMlB5JG94UzdnYFEyME9XdD5+V0xsPVFBUFNCUUVU
KkZBdkVpcD9oIU1CWXdZTgp6VXdePURyOT1nYFUjSmdXPDVyNyQtVWgkPXpTSGxGP0x5a3s5MXdE
bnIhUVBEZXsxWGRjdn58d0lrX0VqcjtaJnkKekEwdDBXMGpLSzNfOEFTa1VpJmh2NSl9PzFaKEZu
Qm9uZyVDbTgofW1SIV9aQ3BhQkxjQVFjRzJWfnwxLTZycGgjCnpTV1gyUkkkRm88U1ElWXZLTnNh
TiZuX3YlKXlHd3tefEVmTihFWTt4WkpqNzV1ZHM2VSN2UnMpWj8jcnlfeUk8fQp6UmVwVEB2SG89
Qm1XfSVxZXUrcmVwbklNclBOLUY+WklXdklSREc2c05vbVEja0klZ1pAYHslVWBKSzBhZSFWRUMK
el9gJnBWYXBfTFRITldxRzl1R2RnWV5VRk1eZW8kRDw9aCEtYDk2YXtnUHM0VlM8OURnU1VsJVh2
djIkcilfejJ1CnomRHBkfVpTOElGdWRrKFkqRFc/WFRGPDVTciFHNjNxam05JFd4R3lmQmBURXJj
VjlYN2s2Tk9Ga0xFd1NTYkdzeAp6Wm48eXEockRMRGxvb2cyYTg7aHkzPjV6bkZBLTREXnxsSTRM
V1h7RkRPfCkjJmYleFNnPj41SXFYMTE5eDUhZy0KenN3fmI5dyRLZEpuaTc5Y24rbDQ1Iz5+XjNN
LUFGJWEyQ2E8WCNqVyhhUmwocTdiSUM+ST1nPGV6eVZhVUtCWWskCnpGdjtiWVgqK3k2XlckTVFD
fDJ3MkFsS3B6bGJuejxrREl8SWtxRndUYVQ3MUJgPXU3eGdzdyZ+OEp4SWN0WD5sSgp6ZGYkMl9W
RXB2LWpjcEJIRntDMDchK1RKZ3ZTKTN4JkEmWGdyfCYxNVUjXmAzbWtMNHdSKmU1UnNDbXEwbGd8
S2UKejVXPj9VKkt4MT08SUx5bDIlN2ZzVXBFNnY7fkQjeSp5dCFxIWFjeHVBKjZDVD0pSVc+LVRe
bEFzSlRUUyMlWFRjCno2TGg3RGo+VUAya1RmSWg+QVpVUDBlMnh0eV8oRXdFd1J8TmRDJEB0RFA4
aHZTQlJNSzF3dDJRR01tZ0I9QmkzSAp6Myo5eTdzOyNQZWt5LThRcT1yKEdBcXtsUjxgaj9iRks3
Z35jczVNTEBgUmdBMX5APzlzPDBQPG9SOzEpXzV7JnYKekJlRDAzZzJ3UFBVMkRGVTI0Y3NOQk1P
QCZCNmhOMVhkYyhCJCZQOElUP2ZQdVBtQVo5O0N1Z15PPzBGM2R6JGFxCnpOND87K2V2MmMkNW9g
ekU9QUJUY3RlKDhBclhUZk8rM3QxMmV5cnlETmswNFA2fUxZajxzUjRla0x+SmNoQm1AOQp6eW9i
IzxFazNsI2QqeTJgKT5DbjA+O2BSZis4WGleY1JAY3t0NG4lRGhqaWZOKWY0SSlPdXMjPUB+c2lQ
ckhiY2oKelhuMTJCWFMlPjRBclNpQFY5PS1SUVgxUmQqQVNjZyhjNCVvSnJmJkJvPyhMUCExTVl5
MSRBWjRzODdSZlFZYCZ1CnpRYXB1VXI9fENmNDFpQCs8b2ZZPzw5KVNEK3I7YXpMez9mfXJvaEBH
bHVgZjRafTV+K1l9eD5WaVVKI0R1Pihofgp6aT88YUstNV5qM3QyJjFlT2V1ZGdBM0QhSGpuK1Qw
PGlUUn5NT1ZwZTgyUWNFdmgqY1Rec1UpT0ZYOTI/RGNAUnsKenNBVFRkemRmUVc1KmZLNWd8I2xl
SUwqMVgpbmFQRHlMY3VPczI2ciF4dEliR09SP3t0P3Q8VlZXMkEza0g4QHZZCnpxZDdqJVc3bjY3
YH5KR3dBZGxCVVRqTFAoS0oxUkl5SDdTJWo0RUAjJiVxQiFGYHlrY3VLIVpXODF8VTJDeF9qMgp6
JUpuaGY3QzJaP3RrUjQ4VngmR2BYM2xHSyhFM0QrJW83WD5LZmheOz9ZWVVDVihVcEZqd2Umez1f
WHBEWnpsbFQKenUpUXJQQ35gS0p4ZWZzQlpCQ05ES2Q+MXo2X0g3Xmx6SnhhMGZXR1Ild3dxdWQt
V0x9RXEqeFI2ckBSZ0R4UFR1CnpuOChkR0NiT2gmTDdkI35uRiZ0SEB1MGBuN20+JD1SLSFRbnoo
dzU1bGpRIVlpM0IjMz5TJmNXLUByc3ZmOU5EcQp6M3N+anx5WXxgdXR3PFBkWG9PYyFaVldNTEo3
c0BodlllWWs2PCtCRmI2I20lajgqUVYzb1Q+K2RXMVh9P0NubEAKejVgdnRJWil9NThPYSZQPTRT
dWV6YHRkWW5lZD9wVWclOD9FTThzNTdKMEBALTBvZks7TWhQSEN5M2NGNSZKV19HCnpqPXheSXQz
QClGRzhzWi1yJUpWQS1ZSVZZQDtAaHw9QzFgR0R4e25RYSZEaktfKXtJOHI9ejQ5e2olcXRmR1FD
Owp6KH05d092NktoPnwycEpwKUhwUXpsKkY+NVRadVg4ZkV1WUc2IWpEVXpSLSpZR2trJTktb1V9
JnJTdWZgVldWbzMKei0hKUtMWT1eSTIyKU17PyhsfUJJc0RDKGE3N0BDQ1lIZyplUmhTTVFrZHso
cmVhNSNuUkNuOU94PStxM15tbTBSCnoocm8wSlZuIUxXUHZJPjUqJUlUJGdgdlRHVmpoZj5mNUla
TGVQU1ZhIWJrWUZFRW02VWAwez8zYnE+cX1mc2M2Vwp6WjQ4XmYzRG0pMyl9JEVaKCQ9TUw7S0cj
al8+bztIb1RLZXUmIWJJQTJmeW1XZEY/KkomKmQ9JD0jWVUoXyZNMSEKellRR2tJS2dHa0MwRzx6
eG5fP1h4cmR8LU0wc2luendlajgkTzlUeEc/cHwjMDM0aT1qITtkI0I0b1E2LTclb2tCCnpMSGt1
b1Q5bTk3LW5DP1BNV0psIXk1bWAzUnBvKU56djspZVpOVkAhKGdRQX4we05NYmBwSUYkcG9WcHIh
UUw/Owp6UmhrYG91MyVjIXNTRWZQXmBZc2NtSVdIKjVPKVI1YkBNPUZZUj40e0tDfnNiQWY+Rkty
IXpQPE8+dmt5V09jRmoKentaXkhsMjhKIz1VZ1NpR0cpRCNVV151K3d5aWl5RkFYNytmdiEpODI8
Sk53diRNZ0BhYzAqQUVZMVRieTFOTXVICnp6QTRkVDlAaEpQUHpwMCEyVHd0dTx8OG4+ZH1HfVBO
QT8pSVhoZU1jY004WSRQUnBlXmx8XipXKzxYYHtEZyV1Uwp6WCp8dn5kIVope0R1MntpRGtJcGY2
eWgmWnR5IT5kK1Q4bGswPmgmQkZrM0YyTEckPkBPQz9YXiFPSDRFZ30qUV4KejdufUhgV0xyPUVV
Jkk8ckNVJWdLUjRUMUMjTkJ2NjlrR1Q+UzFQNzRxXk80dCh6UEpANntlKGNXdFFJVGx6VUQmCnpT
bU9pSk8yVDdZQDJQMUxPKHReYFVGez1+Xz9maWtrVz9Hcns7JVBmQVclPyM9Jmhqa19ZNDJfR3ho
RD5oTVRATQp6Yn03QDsocmMpM1Z4aVNhSnBINkotdFRtMjR6cGVXREhxTzBrVkNAIXRwdDZOJC0y
KDtWNlgtM0VkdTlQaVpNeC0Kekkkc2lKI1h5d01VZW5pIWBldFombUdSUihYUiNAUnFlZUFaKWR+
czJEfWF+bXFkbDkhckpNdEEyPUA+amxKZDtQCnppTGV5Nkw3IVR4WHYhRjQzfnAkVEtlVnhBd3o1
WjtqKjlLKjxIZWFGdEx6Jm1nRnx6bzVrLVIlQXdqWl5vOz5POwp6OUphN1NyNDwkR3AzVHU/MzBW
dXBWQWVJZVAjcURtQyV4Pk4hPXFCaFElXnpIWTtJO1NtU3lBTCZsKTxLZ0xEZ1MKeklWNFJkN0w4
VVZ2N0pIb1kpWlhXKTgoaHR3TFE/OT5LVzRPOSNQaiFIfHMyMHp9R3lSJHgrVDJ0RjA7Zj0rSyVV
Cnolb0dfWXchKjdqdHBlTFNUP2xiSy1vcDFAYEhXS0NRdT87dGslTlh5QipmKFhZSz5geWF7bHZJ
OyNNbm1teV9nVwp6JDwxeTt7SFRHMGdydDtiWVRKUFZISC0hWGY5ZzVoIT0tVk9qMm1jUyNHSWsx
e0B+fGItRy1pezBVY0pROSVOcy0KeiVBWDk3Yk1FLWZGMDIlZHZEJitQY1B8emhHKz9yNzlrfXBJ
ZWV1citYdXFXJStDMzh6WEliUVhGJSYyKmZeSzNICnpfSXFjbnV2XmNoTzQpSTFJeHBmJmlicXNF
dWE1d1cjPDlYPy05YnF0YSpTRnA2S35KLSNOeFdnNVVpdTQ8MUZ3cQp6X24+Z3tCRzQxRjJXdUVF
dHd0Z354ZH5+WDxJZFpRYishITVlOUxQKipVRzxFVXAha1hBWSY+Rjh+SSp0eipucWQKekZ0e01y
Vj4wayFQNiEwYStAZE9SMGoxVDRhK3hJVjN4aTI4YCNBPmJXYFElNkBOZjhYNEBsZlM8RHhTQjJM
bnd5CnoqbXEqJXpebVNGJksrSms1WkF+JjB9NXF8ajYlR1RVRzZwNmt2VHMre21WKSpgdz4mbXMk
JWl0I0czaTQoNzk7Kwp6Uyo1I31hdytsXk4mTXNHX0QqaVYrQFBZPGxSPSlEdkQqaS1tfVAwOzte
JnNhUE17bzljYyVsS1BlbDhrM0N4P30Kem00X2UmU2gjayg2QGhJSEI0XzBCLSs8aUNPUE5nR3ky
YXt7WV53RiModmtFIXR0UzctZmhrbVp1M3V9SW5ycX4pCnpFSj59UEdwemcoO0BhTERSa3UqNW9q
fXA7VjZhK0VjSSFBJXJ2aFclLWlWYD03PD9rSiFVfTliZiUpN0wrPj10RAp6YSNCd15pOHNsZkx4
SFJEblZ5O2kkNXd6USkxKn54VCh6Vj1ZNitzZ3Nra3FRSXF9ZEBFXktKTHVDdntsPzBvKVcKelcr
KnE+S1VQWUlKa1BYaFZlRnh9TWckcUU8d21BKGlkPF5lRUsmMUtyLW1nc0ZfcSEodFZxTHpDYUBm
cHl0Xl9ACno2WURwbWZnbzlzKlpxJCVxND1QaHlRWjN4QyM/OGlYcDNSXy04JSQxWUpRSyR2P0dK
LVk1WUd0czQrZUExYVJQaAp6c2NJQ3IqX0pgPmpISE9uVCpQK21JcCVXfEhWbzRMJjxWWDc2WilZ
WXkjYT5NMmZ1K2Y+VCFHSCQ1Z3dyen5uWHwKelAmbGp2cHFINXRHdGlgKWxhTkk7ajV+ZCkldnVu
RXFncHI/VDRPSGRwe25FMiFTOU1GWnZyIyhPPFRabWVVKThaCnpNMistJnMpZTdPSClUUFozUl9K
SGs7dEJDYSFPWXZ4aVB0VmM1c3hAS1ZEeTlVWnMyPDExUW9DJD1gVnZUTlhVZQp6TVB7UFNVfG5A
VGh+JFpiKkR1SHkwOHJwKUJ0SFdKJitOQTtuND0tfXh3OCFlPVJ9KkRgSi1pKWE/YWxRMklPd0YK
enZlQVNoVz1Bey0+bDA1YHIjYGpaTEMoNzA8NSU+I1ZadSo4I3xQWWlrOWo1dCVPPlZ0O20zbHZn
SEAwcyY7YGxxCno3PSN+czI4Pz5tbU5FcTVHPUNxTjMkWlchb3VxZXdPTTd8eGxYJGMpI0twKkI5
LUpsODRlSU1Ua2dBbUswM2FLVwp6Zn14fiVjcFkheU1xS2UrS3EtaGM5YGxmMi1EdjVCNWpRXlIq
RFhPeHd3QWBVMWVfQ1c0fmVAc1pfS1VfKXQtZSoKekl8MilZQUV4P3JjZ1pEYkopQk1JKkcxX21l
WDJyTGctRjRDOEJyQ3w7YX1YSj1JPEFuUHkpSSFvXz8oNyFoTz5YCnp1ZDJ0cHJ8dCtjREJHTGpg
YkxAcDVEMFFzemhSO0hzbyYme2lAIXpUdTVyem87aj5gPiMmMmghNm9HZFVeRnJ4aQp6NWlERVp4
cU9zKjVsantHZGxDP2dnODk/SXwwIWctdmQ0UyNJYlAhRFVER3VQRzhQTiNqXzdKS1VAflhXUi15
cEQKem8wWEA4UGlBNz5IIW42bypDaXA+SWNePW5BYmJMODgocUdIc09FKFMqcmptSktUYXZ6cUVr
Vj8mTEZCfmJ3eVdLCno9O0F+N1ozNz9BPFJwRy1pODA2Zm4yV3cwMz12TShzelF2alEyU3hTdF9A
PiRwe31GempodHNuN0ZWfCRpX190egp6UENmTSMzIU5pVDd0b3g2a3BONWo7WklXMWZJbkU1Zkcl
VTNrOVFwTTRSQT95YjVObnpPciNXZmEwXnBSMmhNfT0Kemt9LSNMbDFvI2Q4czE3eVlRNTdubUFj
KSp8TlM5UiUkfFktVz9ne0dMeHZ9NEQ0ZjtoR2tDeHR0Mi0tVXtFUlBuCnpSWjtrKVRQaGp8Zj4h
NS1EfGgrbXNIYnFZeWRxe0w7KXh0Ukppdzs/Nm54Q3FHclF9ZHYlZnxXKzFLMlYoX3xNIQp6bndC
UWJ4cnxheSNRUzdRWj0wfnlIKGFGKG5Ub2JUcUt2ZkdISzstV1ptRWlxWFNLazYxd25TY01Ta3dh
Pjg/cXgKekBOdldaaWJ6c2xYN3gtbGtLfHwwbyVQWV9sfU01filRRisrKUR2IXZ0d3h2JXkzem9u
O1M8PldfM1I5amhwJVRJCnp2Y2tudEs+RjJZaSNnTWQ1VWlzfSU9KENAZHs7QDxpdT85O3Y2WUYh
SF56YlJuNVJVU0grV0ROaVg1UGBLRS1zIQp6UDtAMzVJbEk3VWo+MCEmZG13REM+NVNSbHdKVWB7
TTU+Vlg5OVYwMjl9bi1lTnVSa3RCbnk8PDYyJWNSdD5DZUYKej5QeVk8YUZmZ01HdUgoVXljaWw/
cHU0JiUjfEJZJWgzbXg7PX5fPzFFcjlLMyk3a29OKVFLTVBQP2h0R0lzZWtvCnplSFpsd19QKlMq
ZSpRVVpMJGBSRVlzVk9HNyEzISpDdHJHSVgyVXl1RGR1RX5tQlQoNEBnWnNWKGpWd2QydH52Twp6
Mk4kKyhJNWN2PHhpanopamtjPF4mUjJXWikxWncoUVRoWlg5KyhRJVlGRiRmK19PVShIc0gjdjdL
VSRUd2s1emwKekVIQDdKUWNiYiElUlFaP3YqdVY8T0VqdkgxaWZsVDImT1hZcjxqdkVnanxnMHFi
ZXdLOUhAVyo3T15sTVkqSmE8CnpMWV9wKFoxPkhaTHVCT3IkZThlKXg1I2J4Q0EqKjFDN05eWUkw
emtGYj1yXm8tUV5Gai11S3liKXlWQnZqP194PQp6dy1aKmJWJmB3V3spKEorfDdUUG5NNmNCZHM3
WHV9STYxKWNpIz92MlpwM2EjZ0RlfUVjdEk0P0RpdHE3VDxqMV8KelJjbVFCYWIyYFZCTE1RUUFE
QVRnJEpFQU5rYVEjaE4lKEpxVGN0fmkmMzRQaTNlZ3YoR1leb2JsbEReb3khMjNCCnpIckRia0A0
X0F9K2ttcHcoSz96Oz9xMGcpa00mRU45SVk/PkZ9UW5+OXo9MT1lRzFuUXl2K09zPV4kaDRJXiQo
fQp6e35PMGp0MHMqfEFQWkRYUWNVaksyTiNCbW5fYmM/MzYjeWhGMT1mIUkmcFg0Zm5fdEFWK3cw
ZWUlUH5ZTFN3ITIKem5NYEVtWThmdHo1aHJ0b3I1cXIwMkFNTX42YDtqTlJPU3ItPiZ+RjBpP0BC
ZVchYk02aVBsYlVScXBTM04/VFVoCnpNeD5RM01FbGc9dFZBa2ZFZ3hgMCYzQFU2VVJXak9ne0xP
MnAwcUsydiZtbTtiQXdGPTk/YUUyenk3cHl7Z35BMwp6Rn10Sz80QkAxO3tHSHhFbShoPXQoI2tJ
cnhofShIa3F5ZTZWWDMqNUlmS2pANzdfVHI7fCNodENRKSo3cypKX0kKejFeRHxuQEJmY1VaVE1N
QiUkPGl2ZW0+NjlSajtuP1JycVZBTEdIM0Q9V1o/RUhvMUZRSCt5eU0/PnBATlhrTkRSCnpRUThD
IytDTjtUZ2k0ZnxgMm1Mdm5fdHJzbmN3YEsyVzJ0IXQwS3F9I2pvJj9DNW01MiRQJEd0UU9GcEAm
KUl9NQp6Ny1ZZDkza0YjKiRvZVQrS1BCdEttIT9SdnA1WWYkbWh9dzNrZFY8TjhCTFBXQnBGU1Qo
V0woWU8mWFRTLX0rKl8KVyh8Zz1URWQ1dHZ4bD1hdyQ0WldQLVN7dGN2QWArLQoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiOGQ3Nzc2Y2RhMjlhYjYxNGJkMzQ5NzFhYWYwZmJkOTNlN2E3MjM1Li5i
OWZmNWM3ODY0NDk0NTI3Yzk5NDU2YzlkMzBlOTljNzc3ZmQ5YWQ3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDEwLTA3LTEzICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjaHJvbWl1bS9za2lhOiBGaXgg
Y2FudmFzLnRvRGF0YVVSTCBpbiB0aGUgcHJlc2VuY2Ugb2YgdHJhbnNwYXJlbmN5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjIxNAorCisgICAgICAg
IFRoZSBwcm9ibGVtIHdhcyB0aGF0IFNrQml0bWFwcyBjb250YWluIHByZW11bHRpcGxpZWQgZGF0
YSwgYnV0IHBuZ2xpYgorICAgICAgICBkb2Vzbid0IGV4cGVjdCBwcmVtdWx0aXBsaWVkIGRhdGEu
IE5vdywgdGhlIGVuY29kZXIgdW5wcmVtdWx0aXBsaWVzCisgICAgICAgIGRhdGEgYmVmb3JlIHNl
bmRpbmcgaXQgdG8gcG5nbGliLgorCisgICAgICAgIFBhdGNoIHBhcnRpYWxseSBieSBkZWFubS4K
KworICAgICAgICBDb3ZlcmVkIGJ5IGZhc3QvY2FudmFzL3RvRGF0YVVSTC1hbHBoYS5odG1sLgor
CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJlTXVsdGlwbGllZEJHUkF0b1JHQkEpOgorICAgICAg
ICAoV2ViQ29yZTo6ZW5jb2RlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpQTkdJbWFnZUVuY29k
ZXI6OmVuY29kZSk6CisKIDIwMTAtMDctMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4OiBmaXggV2ViQ29yZSBleHBvcnRzIGJ5IGVk
aXRpbmcgdGhlIC5pbiBmaWxlLCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJhdGVkIGZpbGUuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvUE5HSW1hZ2VFbmNv
ZGVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVu
Y29kZXIuY3BwCmluZGV4IDE5MzYzYzhlNzRjNDMxYTM1YTA1YjIxMDcyYWZkNTQzMzY3MTBkYTQu
LmEyZTg3NjBkMTM1YWVjMWRkMzU0MGIyYTRhOGI2YWM1MjY1YmI2NTMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIu
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiVmVjdG9yLmgiCiAKICNpbmNsdWRlICJT
a0JpdG1hcC5oIgorI2luY2x1ZGUgIlNrVW5QcmVNdWx0aXBseS5oIgogCiBleHRlcm4gIkMiIHsK
ICNpbmNsdWRlICJwbmcuaCIKQEAgLTU3LDYgKzU4LDI1IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRC
ZXR3ZWVuQkdSQWFuZFJHQkEoY29uc3QgdW5zaWduZWQgY2hhciogaW5wdXQsIGludCBudW1iZXJP
ZlBpCiAgICAgfQogfQogCisvLyBDb252ZXJ0cyBCR1JBLT5SR0JBIGFuZCBSR0JBLT5CR1JBIGFu
ZCB1bmRvZXMgYWxwaGEgcHJlbXVsdGlwbGljYXRpb24uCitzdGF0aWMgdm9pZCBwcmVNdWx0aXBs
aWVkQkdSQXRvUkdCQShjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnB1dCwgaW50IG51bWJlck9mUGl4
ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciog
b3V0cHV0KQoreworICAgIFNrQml0bWFwIGlucHV0Qml0bWFwOworICAgIGlucHV0Qml0bWFwLnNl
dENvbmZpZyhTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcsIG51bWJlck9mUGl4ZWxzLCAxKTsK
KyAgICBpbnB1dEJpdG1hcC5zZXRQaXhlbHMoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oaW5w
dXQpKTsKKyAgICBmb3IgKGludCB4ID0gMDsgeCA8IG51bWJlck9mUGl4ZWxzOyB4KyspIHsKKyAg
ICAgICAgdWludDMyX3Qgc3JjUGl4ZWwgPSAqaW5wdXRCaXRtYXAuZ2V0QWRkcjMyKHgsIDApOwor
ICAgICAgICBTa0NvbG9yIHVubXVsdGlwbGllZCA9IFNrVW5QcmVNdWx0aXBseTo6UE1Db2xvclRv
Q29sb3Ioc3JjUGl4ZWwpOworICAgICAgICB1bnNpZ25lZCBjaGFyKiBwaXhlbE91dCA9ICZvdXRw
dXRbeCAqIDRdOworICAgICAgICBwaXhlbE91dFswXSA9IFNrQ29sb3JHZXRSKHVubXVsdGlwbGll
ZCk7CisgICAgICAgIHBpeGVsT3V0WzFdID0gU2tDb2xvckdldEcodW5tdWx0aXBsaWVkKTsKKyAg
ICAgICAgcGl4ZWxPdXRbMl0gPSBTa0NvbG9yR2V0Qih1bm11bHRpcGxpZWQpOworICAgICAgICBw
aXhlbE91dFszXSA9IFNrQ29sb3JHZXRBKHVubXVsdGlwbGllZCk7CisgICAgfQorfQorCisKIC8v
IEVuY29kZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vCiAvLyBUaGlzIHNlY3Rpb24gb2YgdGhlIGNvZGUgaXMg
YmFzZWQgb24gbnNQTkdFbmNvZGVyLmNwcCBpbiBNb3ppbGxhCkBAIC05OCwyNCArMTE4LDEyIEBA
IHByaXZhdGU6CiAgICAgcG5nX2luZm8qKiBtX3BuZ0luZm87CiB9OwogCi0vLyBzdGF0aWMKLWJv
b2wgUE5HSW1hZ2VFbmNvZGVyOjplbmNvZGUoY29uc3QgU2tCaXRtYXAmIGltYWdlLCBWZWN0b3I8
dW5zaWduZWQgY2hhcj4qIG91dHB1dCkKLXsKLSAgICBpZiAoaW1hZ2UuY29uZmlnKCkgIT0gU2tC
aXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnKQotICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBPbmx5
IHN1cHBvcnQgQVJHQiBhdCA4IGJwcCBub3cuCi0KLSAgICBpbWFnZS5sb2NrUGl4ZWxzKCk7Ci0g
ICAgYm9vbCByZXN1bHQgPSBQTkdJbWFnZUVuY29kZXI6OmVuY29kZShzdGF0aWNfY2FzdDx1bnNp
Z25lZCBjaGFyKj4oCi0gICAgICAgIGltYWdlLmdldFBpeGVscygpKSwgSW50U2l6ZShpbWFnZS53
aWR0aCgpLCBpbWFnZS5oZWlnaHQoKSksCi0gICAgICAgIGltYWdlLnJvd0J5dGVzKCksIG91dHB1
dCk7Ci0gICAgaW1hZ2UudW5sb2NrUGl4ZWxzKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQot
Ly8gc3RhdGljCi1ib29sIFBOR0ltYWdlRW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGlucHV0LCBjb25zdCBJbnRTaXplJiBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgYnl0ZXNQZXJSb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3Rv
cjx1bnNpZ25lZCBjaGFyPiogb3V0cHV0KQorc3RhdGljIGJvb2wgZW5jb2RlSW1wbChjb25zdCB1
bnNpZ25lZCBjaGFyKiBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50U2l6
ZSYgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ5dGVzUGVyUm93LAorICAgICAg
ICAgICAgICAgICAgICAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgdm9pZCAoKmNvbnZlcnNpb25GdW5jKShjb25zdCB1bnNpZ25lZCBjaGFy
KiwgaW50LCB1bnNpZ25lZCBjaGFyKikKKyAgICAgICAgICAgICAgICAgICAgICAgKQogewogICAg
IGludCBpbnB1dENvbG9yQ29tcG9uZW50cyA9IDQ7CiAgICAgaW50IG91dHB1dENvbG9yQ29tcG9u
ZW50cyA9IDQ7CkBAIC0xNTgsNyArMTY2LDcgQEAgYm9vbCBQTkdJbWFnZUVuY29kZXI6OmVuY29k
ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnB1dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwKIAogICAg
IE93bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IHJvd1BpeGVscyhuZXcgdW5zaWduZWQgY2hhcltp
bWFnZVNpemUud2lkdGgoKSAqIG91dHB1dENvbG9yQ29tcG9uZW50c10pOwogICAgIGZvciAoaW50
IHkgPSAwOyB5IDwgaW1hZ2VTaXplLmhlaWdodCgpOyB5ICsrKSB7Ci0gICAgICAgIGNvbnZlcnRC
ZXR3ZWVuQkdSQWFuZFJHQkEoJmlucHV0W3kgKiBieXRlc1BlclJvd10sIGltYWdlU2l6ZS53aWR0
aCgpLCByb3dQaXhlbHMuZ2V0KCkpOworICAgICAgICBjb252ZXJzaW9uRnVuYygmaW5wdXRbeSAq
IGJ5dGVzUGVyUm93XSwgaW1hZ2VTaXplLndpZHRoKCksIHJvd1BpeGVscy5nZXQoKSk7CiAgICAg
ICAgIHBuZ193cml0ZV9yb3cocG5nUHRyLCByb3dQaXhlbHMuZ2V0KCkpOwogICAgIH0KIApAQCAt
MTY2LDQgKzE3NCwyNyBAQCBib29sIFBOR0ltYWdlRW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IHVuc2ln
bmVkIGNoYXIqIGlucHV0LCBjb25zdCBJbnRTaXplJiBzaXplLAogICAgIHJldHVybiB0cnVlOwog
fQogCisKKy8vIHN0YXRpYworYm9vbCBQTkdJbWFnZUVuY29kZXI6OmVuY29kZShjb25zdCBTa0Jp
dG1hcCYgaW1hZ2UsIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiogb3V0cHV0KQoreworICAgIGlmIChp
bWFnZS5jb25maWcoKSAhPSBTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcpCisgICAgICAgIHJl
dHVybiBmYWxzZTsgLy8gT25seSBzdXBwb3J0IEFSR0IgYXQgOCBicHAgbm93LgorCisgICAgaW1h
Z2UubG9ja1BpeGVscygpOworICAgIGJvb2wgcmVzdWx0ID0gZW5jb2RlSW1wbChzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBjaGFyKj4oCisgICAgICAgIGltYWdlLmdldFBpeGVscygpKSwgSW50U2l6ZShp
bWFnZS53aWR0aCgpLCBpbWFnZS5oZWlnaHQoKSksCisgICAgICAgIGltYWdlLnJvd0J5dGVzKCks
IG91dHB1dCwgcHJlTXVsdGlwbGllZEJHUkF0b1JHQkEpOworICAgIGltYWdlLnVubG9ja1BpeGVs
cygpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIHN0YXRpYworYm9vbCBQTkdJbWFnZUVu
Y29kZXI6OmVuY29kZShjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnB1dCwgY29uc3QgSW50U2l6ZSYg
c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ5dGVzUGVyUm93LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCkK
K3sKKyAgICByZXR1cm4gZW5jb2RlSW1wbChpbnB1dCwgc2l6ZSwgYnl0ZXNQZXJSb3csIG91dHB1
dCwgY29udmVydEJldHdlZW5CR1JBYW5kUkdCQSk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZSBXZWJD
b3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>