<?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>43794</bug_id>
          
          <creation_ts>2010-08-10 09:06:33 -0700</creation_ts>
          <short_desc>Some settings are linked to the PageGroup not the Page.  Create a new class for those.</short_desc>
          <delta_ts>2010-09-27 04:09:06 -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="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
    
    <cc>lyon.chen</cc>
    
    <cc>mjs</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>steveblock</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>262699</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-10 09:06:33 -0700</bug_when>
    <thetext>Some settings are linked to the PageGroup not the Page.  Create a new class for those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262706</commentid>
    <comment_count>1</comment_count>
      <attachid>64015</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-10 09:20:47 -0700</bug_when>
    <thetext>Created attachment 64015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262710</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-10 09:24:26 -0700</bug_when>
    <thetext>It&apos;s likely this will fail on some of the EWS bots.  Will watch them and fix other dependencies similar to the mac port one.  Please review assuming these will be fixed before landing.

ccing Steve since we discussed this together and mjs/darin/sam/ap in case they disagree that this is a move in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262712</commentid>
    <comment_count>3</comment_count>
      <attachid>64016</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-10 09:33:26 -0700</bug_when>
    <thetext>Created attachment 64016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263141</commentid>
    <comment_count>4</comment_count>
      <attachid>64016</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-11 02:43:29 -0700</bug_when>
    <thetext>Comment on attachment 64016
Patch

WebCore/page/GroupSettings.cpp:13
 +   * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY
Wrong copyright holder

WebCore/page/GroupSettings.h:57
 +      unsigned m_localStorageQuota;
I know you&apos;re just moving code, but it might be good while you&apos;re here to make the units clear in the variable name.

WebCore/page/GroupSettings.h:55
 +      PageGroup* m_pageGroup;
Why do we need this?

WebCore/page/GroupSettings.h:44
 +      unsigned localStorageQuota() const { return m_localStorageQuota; }
These were previously guarded with ENABLE(DOM_STORAGE). It looks safe, but did you mean to remove the guard?

WebCore/page/Settings.h:136
 +          unsigned sessionStorageQuota() const { return m_sessionStorageQuota; }
Ditto about removing guard

WebKit/mac/WebView/WebView.mm:690
 +      _private-&gt;page-&gt;group().groupSettings()-&gt;setLocalStorageDatabasePath([[self preferences] _localStorageDatabasePath]);
This probably warrants an comment explaining that this will overwrite the setting for the group if it&apos;s already been set by another WebView/Page. You could also add that we might want to expose a group setting in the WebKit API in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263142</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-11 02:49:52 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 64016 [details])
&gt; WebCore/page/GroupSettings.cpp:13
&gt;  +   * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY
&gt; Wrong copyright holder

Copied in a copyright form another file that says &quot;APPLE AND ITS CONTRIBUTORS&quot;

&gt; WebCore/page/GroupSettings.h:57
&gt;  +      unsigned m_localStorageQuota;
&gt; I know you&apos;re just moving code, but it might be good while you&apos;re here to make the units clear in the variable name.

Good idea.

&gt; WebCore/page/GroupSettings.h:55
&gt;  +      PageGroup* m_pageGroup;
&gt; Why do we need this?

We don&apos;t.

&gt; WebCore/page/GroupSettings.h:44
&gt;  +      unsigned localStorageQuota() const { return m_localStorageQuota; }
&gt; These were previously guarded with ENABLE(DOM_STORAGE). It looks safe, but did you mean to remove the guard?

Half the stuff was within guards, half wasn&apos;t.  I didn&apos;t see any reason why we needed the guards though, and it added a bunch of code clutter.  So I left them out (and took them out of Settings.h).

&gt; WebKit/mac/WebView/WebView.mm:690
&gt;  +      _private-&gt;page-&gt;group().groupSettings()-&gt;setLocalStorageDatabasePath([[self preferences] _localStorageDatabasePath]);
&gt; This probably warrants an comment explaining that this will overwrite the setting for the group if it&apos;s already been set by another WebView/Page. You could also add that we might want to expose a group setting in the WebKit API in the future.

Good point.  Future additions to GroupSettings would hopefully get their own abstraction in various WebKit layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263156</commentid>
    <comment_count>6</comment_count>
      <attachid>64090</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-11 03:55:00 -0700</bug_when>
    <thetext>Created attachment 64090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263163</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-11 04:06:09 -0700</bug_when>
    <thetext>Attachment 64090 did not build on qt:
Build output: http://queues.webkit.org/results/3748052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263165</commentid>
    <comment_count>8</comment_count>
      <attachid>64090</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-11 04:10:09 -0700</bug_when>
    <thetext>Comment on attachment 64090
Patch

WebCore/page/GroupSettings.h:44
 +      unsigned localStorageQuotaBytes() const { return m_localStorageQuotaBytes; }
I guess there are no other call sites of these methods to update?!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263172</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-11 04:21:03 -0700</bug_when>
    <thetext>Chromium uses it the quota param.  Just haven&apos;t updated that part yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263176</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-11 04:35:10 -0700</bug_when>
    <thetext>Actually, Chrome access it a different(In reply to comment #9)
&gt; Chromium uses it the quota param.  Just haven&apos;t updated that part yet.

Nm, was mixed up.  Apparently no one overrides that default!

Fixed the QT build in the same way I did the mac one (with the same fixme).  WIll upload in a sec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263177</commentid>
    <comment_count>11</comment_count>
      <attachid>64095</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-11 04:37:31 -0700</bug_when>
    <thetext>Created attachment 64095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263180</commentid>
    <comment_count>12</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-11 04:51:50 -0700</bug_when>
    <thetext>Attachment 64095 did not build on qt:
Build output: http://queues.webkit.org/results/3714055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263211</commentid>
    <comment_count>13</comment_count>
      <attachid>64104</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-11 06:19:19 -0700</bug_when>
    <thetext>Created attachment 64104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263216</commentid>
    <comment_count>14</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-11 06:32:46 -0700</bug_when>
    <thetext>Attachment 64104 did not build on qt:
Build output: http://queues.webkit.org/results/3777058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263224</commentid>
    <comment_count>15</comment_count>
      <attachid>64108</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-11 06:54:18 -0700</bug_when>
    <thetext>Created attachment 64108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263238</commentid>
    <comment_count>16</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-11 07:16:08 -0700</bug_when>
    <thetext>K...looks like it builds now.  Will commit tomorrow morning (BST) if no one else has comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263604</commentid>
    <comment_count>17</comment_count>
      <attachid>64108</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-11 22:35:28 -0700</bug_when>
    <thetext>Comment on attachment 64108
Patch

lgtm.  It might be slightly confusing in the future which settings to put where, but I guess we&apos;ll sort that out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263688</commentid>
    <comment_count>18</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-12 03:03:43 -0700</bug_when>
    <thetext>Committed r65228: &lt;http://trac.webkit.org/changeset/65228&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263689</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 03:08:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65228 might have broken Qt Linux Release minimal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263696</commentid>
    <comment_count>20</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-12 03:21:32 -0700</bug_when>
    <thetext>Committed r65230: &lt;http://trac.webkit.org/changeset/65230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263705</commentid>
    <comment_count>21</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-12 04:11:08 -0700</bug_when>
    <thetext>Committed r65234: &lt;http://trac.webkit.org/changeset/65234&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263707</commentid>
    <comment_count>22</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-12 04:16:08 -0700</bug_when>
    <thetext>Saw some weird breakage.  Reverting while I investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263708</commentid>
    <comment_count>23</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-12 04:19:58 -0700</bug_when>
    <thetext>The two main failures: http://build.webkit.org/builders/Qt%20Linux%20Release%20minimal/builds/6852/steps/compile-webkit/logs/stdio
and
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20(Tests)/builds/15327/steps/layout-test/logs/stdio

I also realized that there&apos;s a chance the page group name would be getting set after we&apos;re initializing the localStorageDatabasePath.

The correct solution might be to not move localStorageDatabasePath and instead just make the GroupSettings be the place for this stuff in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263711</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 04:38:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65234 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263714</commentid>
    <comment_count>25</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-08-12 04:41:05 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; http://trac.webkit.org/changeset/65234 might have broken Qt Linux Release

Not at all, it was a roll-out patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264290</commentid>
    <comment_count>26</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-13 05:01:25 -0700</bug_when>
    <thetext>Yeah, I don&apos;t see an easy way to handle localStoragePath, but quota should still be able to move over.  Will roll another patch that doesn&apos;t try to move localStoragePath.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264303</commentid>
    <comment_count>27</comment_count>
      <attachid>64325</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-13 05:32:13 -0700</bug_when>
    <thetext>Created attachment 64325
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265002</commentid>
    <comment_count>28</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-16 03:03:14 -0700</bug_when>
    <thetext>Committed r65405: &lt;http://trac.webkit.org/changeset/65405&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265003</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-16 03:08:19 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65405 might have broken Qt Linux Release minimal and Qt Linux ARMv5 Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284379</commentid>
    <comment_count>30</comment_count>
    <who name="Lyon Chen">lyon.chen</who>
    <bug_when>2010-09-24 07:51:16 -0700</bug_when>
    <thetext>Based on http://dev.w3.org/html5/webstorage/#disk-space, the local storage should also have total amount limit and per site limit. Make it per-PageGroup setting will prevent us from enforce per-site quota, also leave it as per-page setting will make it hard to enforce this quota when user open multiple pages for the same site.

So maybe we need a LocalStorageTracker like DatabaseTracker? Or combine them together?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285396</commentid>
    <comment_count>31</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-27 04:09:06 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Based on http://dev.w3.org/html5/webstorage/#disk-space, the local storage should also have total amount limit and per site limit. Make it per-PageGroup setting will prevent us from enforce per-site quota, also leave it as per-page setting will make it hard to enforce this quota when user open multiple pages for the same site.
&gt;
&gt; So maybe we need a LocalStorageTracker like DatabaseTracker? Or combine them together?

Maybe open a bug for making it possible to set different quotas for different origins (cc me if so).  You may also want to add a FIXME to this effect (with a link to the bug) into the code so that someone exposing the setting from a WebKit layer would consider making their API compatible with such a change.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64015</attachid>
            <date>2010-08-10 09:20:47 -0700</date>
            <delta_ts>2010-08-10 09:31:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43794-20100810172045.patch</filename>
            <type>text/plain</type>
            <size>25195</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCA5YzI2NThlNWE2YWY5NzJkMGEyNDNiZjZiMTYwZjAyMTAwYTUxZDMwLi43YTYwNTMyMGU1MDRm
YmIzN2VkNWQyNDNmZDA0ZmExZmMwMWNiNDg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzEsNiArMzcxLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlw
YWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAJcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3Bw
IFwKKwlwYWdlL0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlwYWdlL0hpc3RvcnkuY3BwIFwKIAlwYWdl
L0xvY2F0aW9uLmNwcCBcCiAJcGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBmZGZmNjI3N2YzOTVlMGU4MWYxMjIzZmZmZWU5MmY5NzNjY2I4YjgxLi5hOTNm
MjlmZmNlZmQyZWQ4YzI2MTRjZGVmN2JlNGIxNGUxMWQ2MTc4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjEsNiAr
MTE2MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNwcAog
ICAgIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKICAgICBwYWdlL0hp
c3RvcnkuY3BwCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAKICAgICBwYWdlL01lbW9yeUluZm8uY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDlhYTMzNjJkMjA0Njk2YzgwODA1MTNiOTUzOGRhYjExNWY5NjhjZjguLmFiYmJmYWE1ZWVhM2Jh
OWM0MDcxZjc0Y2U2NjM3NWY4MTBjM2JhNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTAgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0aW5ncyBhcmUgbGlua2VkIHRvIHRo
ZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3IGNsYXNzIGZvciB0aG9zZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzk0CisK
KyAgICAgICAgU2luY2UgcGVyc2lzdGllbnQgc3RvcmFnZSBpcyBzaGFyZWQgYmV0d2VlbiBwYWdl
cywgdGhlcmUncyBubyB3YXkgdG8gbW9kaWZ5CisgICAgICAgIHNvbWUgc2V0dGluZ3MgcmVsYXRl
ZCB0byBpdCBvbiBhIHBlciBwYWdlIGJhc2lzLiAgQXMgc3VjaCwgaXQncyBub3QgdGVjaG5pY2Fs
bHkKKyAgICAgICAgY29ycmVjdCBmb3IgdGhlc2Ugc2V0dGluZ3MgdG8gYmUgb24gdGhlIFBhZ2Un
cyBzZXR0aW5ncy4gIENyZWF0ZSBhIG5ldyBjbGFzcworICAgICAgICBjYWxsZWQgR3JvdXBTZXR0
aW5ncywgbW92ZSB0aGUgMiBncm91cC13aWRlIGxvY2FsIHN0b3JhZ2Ugc2V0dGluZ3MgdGhlcmUs
IGFuZAorICAgICAgICBhZGQgYSBuZXcgc2V0dGluZyBmb3IgSW5kZXhlZERCJ3MgcGF0aCAod2hp
Y2ggaXMgcHJvbXB0aW5nIHRoaXMgY2hhbmdlKS4KKworICAgICAgICBObyBiZWhhdmlvciBoYXMg
Y2hhbmdlZCwgc28gbm8gdGVzdHMuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdl
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpQYWdlR3JvdXApOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpsb2NhbFN0b3JhZ2UpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6Omdyb3VwU2V0dGluZ3Mp
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTZXNzaW9uU3Rv
cmFnZVF1b3RhKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisKIDIwMTAtMDgtMTAgIFlv
c2hpa2kgSGF5YXNoaSAgPHloYXlhc2hpQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA4NmZjNWIxNGEwZjhmMDc0NGVkMzJjOTExMWRmODFh
MzAwOTQ4YjE5Li44ZGJlMGFlMTgyZjUwNTM3M2JjZTAyYmM3YjM1NTcyODY4MDRjYzI0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KQEAgLTE3OTMsNiArMTc5Myw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9w
YWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgXAogCVdlYkNvcmUvcGFnZS9HZW9sb2Nh
dGlvblBvc2l0aW9uQ2FjaGUuaCBcCiAJV2ViQ29yZS9wYWdlL0dlb3Bvc2l0aW9uLmggXAorCVdl
YkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmggXAogCVdlYkNvcmUvcGFnZS9IYWx0YWJsZVBsdWdp
bi5oIFwKIAlXZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAgXAogCVdlYkNvcmUvcGFnZS9IaXN0b3J5
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggMmRhNGRlZTA4ZDRlY2YwZDZjYjYwYWNmYWFjZDRlYTA4OTQ1NmQ5Ny4u
ZWJhMjdkODk2NTFiYzg4NGE5NTIzMTBiNGFjNWFiZTUwMGI1ZjIyMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC02Nzgs
NiArNjc4LDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHNFdgogX19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgogX19aTjdXZWJD
b3JlOEZvcm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dlYkNvcmU4Rm9ybURhdGFEMUV2CitfX1pO
N1dlYkNvcmUxM0dyb3VwU2V0dGluZ3MyN3NldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aEVSS04z
V1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThJbnRQb2ludEMxRVJLOF9OU1BvaW50CiBfX1pON1dl
YkNvcmU4UG9zaXRpb25DMUVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRWkKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczExc2V0Wm9vbU1vZGVFTlNfOFpvb21Nb2RlRQpAQCAtNzIyLDcgKzcyMyw2
IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWVFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNnNldE5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQ
YXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VE
YXRhYmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOHNldEZv
cmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRo
b3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldFdlYkFy
Y2hpdmVEZWJ1Z01vZGVFbmFibGVkRWIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTk1OWZkODY0NzZkOTI0MDdhODQ2MzA1OTk1
NDg4NjM4MDQ5YzkwYi4uMTg4NjI0ZGIwOGMyODkyMTU5MzU0NzYyNzlkZTlhODQ2OWNiNTM5ZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTIwMTEsNiArMjAxMSw4IEBACiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvblBv
c2l0aW9uQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZS5oJywKICAgICAgICAgICAgICdwYWdlL0dlb3Bvc2l0aW9uLmgnLAorICAgICAgICAgICAg
J3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5n
cy5oJywKICAgICAgICAgICAgICdwYWdlL0hhbHRhYmxlUGx1Z2luLmgnLAogICAgICAgICAgICAg
J3BhZ2UvSGlzdG9yeS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvSGlzdG9yeS5oJywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGUx
Njc0ZTNhOTM3NGNiYmE4ZjRjODc3ODJhNTFmM2VjMTQxNGJjYWQuLjM5ZDA2ZmZlOTdiYmQ3M2Mx
NDIxYmRmNGFlZGJhY2Q5MDIzYzUxN2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODMyLDYgKzgzMiw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uQ29udHJv
bGxlci5jcHAgXAogICAgIHBhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCBcCisgICAg
cGFnZS9Hcm91cFNldHRpbmdzLmNwcCBcCiAgICAgcGFnZS9IaXN0b3J5LmNwcCBcCiAgICAgcGFn
ZS9Mb2NhdGlvbi5jcHAgXAogICAgIHBhZ2UvTWVtb3J5SW5mby5jcHAgXApAQCAtMTYwOCw2ICsx
NjA5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5oIFwKICAgICBwYWdl
L0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKICAgICBwYWdlL0dlb3Bvc2l0aW9uLmggXAor
ICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKICAgICBwYWdlL0hhbHRhYmxlUGx1Z2luLmggXAog
ICAgIHBhZ2UvSGlzdG9yeS5oIFwKICAgICBwYWdlL0xvY2F0aW9uLmggXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNDhhMjFmNDAyOTBhOTQ2ZjU3Yjg2ZTdmZDYwYTMy
YmRiMDVlMTA4My4uYzIwY2I5OTNiNjcxN2RkMTkwNTBjMzVlYTQ5ZWNlYzA4MzVlYmU2MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjMxNyw2ICsyMjMxNywxNiBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
YWdlXEdyb3VwU2V0dGluZ3MuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHcm91cFNldHRpbmdzLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwYXRpYWxOYXZp
Z2F0aW9uLmNwcCINCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcSGFsdGFi
bGVQbHVnaW4uaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4MTY3OTU0YzkxNTFjYjQxYTI0NGZmNzAyMGJlNGZl
MDI2MGE3YjcuLjVjMmQyM2I1OGViODYwY2E5ODI5OGQyM2QwNjA2N2JhMzZhNjg0YTcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OTQ5LDYgKzQ5NDks
OCBAQAogCQlDMERGQzg3MDBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwREZDODZGMERC
Njg0MUEwMDNFQUU3QyAvKiBKU0NvbnNvbGVDdXN0b20uY3BwICovOyB9OwogCQlDMTA1REE2MjBG
M0FBNjhGMDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjEwRjNBQTY4RjAwMURE
NDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcCAqLzsgfTsKIAkJQzEwNURBNjQwRjNB
QTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MzBGM0FBNkI4MDAxREQ0NEYgLyog
VGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLzsgfTsKKwkJQzUwQjU2MTYxMjExOUQyMzAwOEI0NkUw
IC8qIEdyb3VwU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzUwQjU2MTQxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3Bw
ICovOyB9OworCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwQjU2MTUxMjEx
OUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDNTBEMEU4MjBGRjQyNzI5MDBBQzI2NDQgLyogU3Rv
cmFnZU5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5jcHAg
Ki87IH07CiAJCUM1MEQwRTgzMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTBEMEU4MTBG
RjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5oICovOyB9OwogCQlDNTEwMkQ5NDBG
RDlBQTJEMDBGQUZGMDQgLyogU3RvcmFnZVN5bmNNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTEwMkQ5MjBGRDlBQTJEMDBGQUZGMDQgLyog
U3RvcmFnZVN5bmNNYW5hZ2VyLmggKi87IH07CkBAIC0xMDY5NCw2ICsxMDY5Niw4IEBACiAJCUMw
REZDODZGMERCNjg0MUEwMDNFQUU3QyAvKiBKU0NvbnNvbGVDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb25zb2xlQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzEwNURBNjEwRjNBQTY4RjAwMURENDRGIC8qIFRleHRFbmNv
ZGluZ0RldGVjdG9ySUNVLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRFbmNvZGluZ0RldGVjdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAvKiBH
cm91cFNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdy
b3VwU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTBCNTYxNTEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcm91cFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM1MEQwRTgwMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTBEMEU4MTBGRjQyNzI5MDBBQzI2NDQgLyogU3Rv
cmFnZU5hbWVzcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdl
TmFtZXNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTAyRDkyMEZEOUFB
MkQwMEZBRkYwNCAvKiBTdG9yYWdlU3luY01hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZVN5bmNNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMjUwOCw2ICsxMjUxMiw4IEBACiAJCQkJNTk2MjI5NzkxMTMzRUZFMjAwREM0Q0JC
IC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovLAogCQkJCUZFODBEN0JCMEU5QzFGMjUw
MDBENkY3NSAvKiBHZW9wb3NpdGlvbi5oICovLAogCQkJCUZFODBEN0JDMEU5QzFGMjUwMDBENkY3
NSAvKiBHZW9wb3NpdGlvbi5pZGwgKi8sCisJCQkJQzUwQjU2MTQxMjExOUQyMzAwOEI0NkUwIC8q
IEdyb3VwU2V0dGluZ3MuY3BwICovLAorCQkJCUM1MEI1NjE1MTIxMTlEMjMwMDhCNDZFMCAvKiBH
cm91cFNldHRpbmdzLmggKi8sCiAJCQkJNzY5M0JBQ0UxMDZDMkRDQTAwN0IwODIzIC8qIEhhbHRh
YmxlUGx1Z2luLmggKi8sCiAJCQkJQkM5NEQxNTAwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rvcnku
Y3BwICovLAogCQkJCUJDOTREMTUxMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmggKi8sCkBA
IC0yMDEzMyw2ICsyMDEzOSw3IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhT
TFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNG
OUE0IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTcyRTAxMTEzNkU4Q0Uw
MDYyQTUzMyAvKiBab29tTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzUwQjU2MTcxMjExOUQy
MzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjAxOTIsNyAr
MjAxOTksNiBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0g
Ilhjb2RlIDIuNCI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2Fu
bmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApA
QCAtMjI1NTUsNiArMjI1NjEsNyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBY
U0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZD
NTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3
REQ0RDg2MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUM1MEI1NjE2MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuY3BwIGIvV2Vi
Q29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiOTJiN2Y2MTBlYzkxMjg0
MzUxYTdhMDE2ZWM2M2FkYjJhYmQ0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2Uv
R3JvdXBTZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0dyb3VwU2V0dGluZ3M6Okdyb3VwU2V0dGluZ3MoUGFnZUdyb3VwKiBwYWdlR3JvdXAp
CisgICAgOiBtX3BhZ2VHcm91cChwYWdlR3JvdXApCisgICAgLCBtX2xvY2FsU3RvcmFnZVF1b3Rh
KDUgKiAxMDI0ICogMTAyNCkgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBzcGVjLgoreworfQor
Cit2b2lkIEdyb3VwU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkIHF1b3Rh
KQoreworICAgIG1fbG9jYWxTdG9yYWdlUXVvdGEgPSBxdW90YTsKK30KKwordm9pZCBHcm91cFNl
dHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQor
eworICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoID0gcGF0aDsKK30KKwordm9pZCBHcm91
cFNldHRpbmdzOjpzZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQor
eworICAgIG1faW5kZXhlZERCRGF0YWJhc2VQYXRoID0gcGF0aDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuaCBiL1dl
YkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRmMThlOWYwMzMyN2MzY2Zl
OGIwZDgzMWExNWYyZWY2OWU2ODg4NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9H
cm91cFNldHRpbmdzLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEdyb3Vw
U2V0dGluZ3NfaAorI2RlZmluZSBHcm91cFNldHRpbmdzX2gKKworI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQYWdlR3JvdXA7CisKK2NsYXNzIEdyb3VwU2V0dGluZ3MgOiBwdWJsaWMg
Tm9uY29weWFibGUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPEdyb3VwU2V0dGlu
Z3M+IGNyZWF0ZShQYWdlR3JvdXAqIHBhZ2VHcm91cCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgR3JvdXBTZXR0aW5ncyhwYWdlR3JvdXApKTsKKyAgICB9CisKKyAgICB2b2lk
IHNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKKyAgICB1bnNpZ25lZCBsb2NhbFN0b3Jh
Z2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGE7IH0KKworICAgIHZv
aWQgc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0
IFN0cmluZyYgbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9sb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGg7IH0KKworICAgIHZvaWQgc2V0SW5kZXhlZERCRGF0YWJhc2VQ
YXRoKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IFN0cmluZyYgaW5kZXhlZERCRGF0YWJhc2VQ
YXRoKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleGVkREJEYXRhYmFzZVBhdGg7IH0KKworcHJpdmF0
ZToKKyAgICBHcm91cFNldHRpbmdzKFBhZ2VHcm91cCopOworCisgICAgUGFnZUdyb3VwKiBtX3Bh
Z2VHcm91cDsKKworICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9yYWdlUXVvdGE7CisgICAgU3RyaW5n
IG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOworICAgIFN0cmluZyBtX2luZGV4ZWREQkRhdGFi
YXNlUGF0aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdyb3Vw
U2V0dGluZ3NfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAgYi9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAppbmRleCAxMmIxYTQxY2E0ZGIwMjAzYzM5MDI0MDA2ODgz
ZGY5YjMyODcyMzNkLi5hMDJlZjRkYjk3NzE2ZTEyMjFlZDAwZjZlYzhlZWMwYzU2OTMyNjE2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
UGFnZUdyb3VwLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJH
cm91cFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU1LDYgKzU2LDcg
QEAgUGFnZUdyb3VwOjpQYWdlR3JvdXAoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIDogbV9uYW1l
KG5hbWUpCiAgICAgLCBtX3Zpc2l0ZWRMaW5rc1BvcHVsYXRlZChmYWxzZSkKICAgICAsIG1faWRl
bnRpZmllcihnZXRVbmlxdWVJZGVudGlmaWVyKCkpCisgICAgLCBtX2dyb3VwU2V0dGluZ3MoR3Jv
dXBTZXR0aW5nczo6Y3JlYXRlKHRoaXMpKQogewogfQogCkBAIC0xOTQsMTYgKzE5Niw5IEBAIHZv
aWQgUGFnZUdyb3VwOjpzZXRTaG91bGRUcmFja1Zpc2l0ZWRMaW5rcyhib29sIHNob3VsZFRyYWNr
KQogU3RvcmFnZU5hbWVzcGFjZSogUGFnZUdyb3VwOjpsb2NhbFN0b3JhZ2UoKQogewogICAgIGlm
ICghbV9sb2NhbFN0b3JhZ2UpIHsKLSAgICAgICAgLy8gTmVlZCBhIHBhZ2UgaW4gdGhpcyBwYWdl
IGdyb3VwIHRvIHF1ZXJ5IHRoZSBzZXR0aW5ncyBmb3IgdGhlIGxvY2FsIHN0b3JhZ2UgZGF0YWJh
c2UgcGF0aC4KLSAgICAgICAgLy8gSGF2aW5nIHRoZXNlIHBhcmFtZXRlcnMgYXR0YWNoZWQgdG8g
dGhlIHBhZ2Ugc2V0dGluZ3MgaXMgdW5mb3J0dW5hdGUgc2luY2UgdGhlc2Ugc2V0dGluZ3MgYXJl
Ci0gICAgICAgIC8vIG5vdCBwZXItcGFnZSAoYW5kLCBpbiBmYWN0LCB3ZSBzaW1wbHkgZ3JhYiB0
aGUgc2V0dGluZ3MgZnJvbSBzb21lIHBhZ2UgYXQgcmFuZG9tKSwgYnV0Ci0gICAgICAgIC8vIGF0
IHRoaXMgcG9pbnQgd2UncmUgc3R1Y2sgd2l0aCBpdC4KLSAgICAgICAgUGFnZSogcGFnZSA9ICpt
X3BhZ2VzLmJlZ2luKCk7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgcGF0aCA9IHBhZ2UtPnNldHRp
bmdzKCktPmxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpOwotICAgICAgICB1bnNpZ25lZCBxdW90
YSA9IHBhZ2UtPnNldHRpbmdzKCktPmxvY2FsU3RvcmFnZVF1b3RhKCk7Ci0gICAgICAgIG1fbG9j
YWxTdG9yYWdlID0gU3RvcmFnZU5hbWVzcGFjZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlKHBhdGgs
IHF1b3RhKTsKKyAgICAgICAgbV9sb2NhbFN0b3JhZ2UgPSBTdG9yYWdlTmFtZXNwYWNlOjpsb2Nh
bFN0b3JhZ2VOYW1lc3BhY2UobV9ncm91cFNldHRpbmdzLT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9ncm91cFNldHRpbmdzLT5sb2NhbFN0b3JhZ2VRdW90YSgpKTsKICAg
ICB9Ci0KICAgICByZXR1cm4gbV9sb2NhbFN0b3JhZ2UuZ2V0KCk7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
aAppbmRleCAwOGIwM2Q3MDI3ODUwNDAyMzczODhlZTVmOTI5MWM5YjM0NWMwNGYyLi5jNjRmZjRk
M2E2ODJkNzlmMGJhMjg3ZWIzNTI4MTk2NmIwYzgzYTM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvUGFnZUdyb3VwLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCkBAIC0zNiw2ICsz
Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBLVVJMOworICAgIGNsYXNz
IEdyb3VwU2V0dGluZ3M7CiAgICAgY2xhc3MgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7CiAg
ICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlOwpAQCAtOTMsNiArOTQs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IFVzZXJTY3JpcHRNYXAqIHVz
ZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VyU2NyaXB0cy5nZXQoKTsgfQogICAgICAg
ICBjb25zdCBVc2VyU3R5bGVTaGVldE1hcCogdXNlclN0eWxlU2hlZXRzKCkgY29uc3QgeyByZXR1
cm4gbV91c2VyU3R5bGVTaGVldHMuZ2V0KCk7IH0KIAorICAgICAgICBHcm91cFNldHRpbmdzKiBn
cm91cFNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9ncm91cFNldHRpbmdzLmdldCgpOyB9CisK
ICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rKExpbmtIYXNoIHN0cmlu
Z0hhc2gpOwogICAgICAgICB2b2lkIHJlc2V0VXNlclN0eWxlQ2FjaGVJbkFsbEZyYW1lcygpOwpA
QCAtMTE0LDYgKzExNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBPd25QdHI8
VXNlclNjcmlwdE1hcD4gbV91c2VyU2NyaXB0czsKICAgICAgICAgT3duUHRyPFVzZXJTdHlsZVNo
ZWV0TWFwPiBtX3VzZXJTdHlsZVNoZWV0czsKKworICAgICAgICBPd25QdHI8R3JvdXBTZXR0aW5n
cz4gbV9ncm91cFNldHRpbmdzOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwCmluZGV4IDg4MWM4ODU4ZjIyZjY3ZGY2MTg1NDMzNWU3NzJkYjRkYjk3NGNkYmEuLjg5
YmM1ODk1NjY3OGViYmYyYjgzODQ2YzRmMjcyMjkwZjEyZGM1OWYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAt
NjQsMTAgKzY0LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2Rl
ZmF1bHRGb250U2l6ZSgwKQogICAgICwgbV9kZWZhdWx0Rml4ZWRGb250U2l6ZSgwKQogICAgICwg
bV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkK
LSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAgICAgCi0gICAgLCBtX2xvY2FsU3RvcmFn
ZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4K
ICAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShTdG9yYWdlTWFwOjpub1F1b3RhKQotI2VuZGlm
CiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lKG51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCkpCiAgICAgLCBtX3pvb21Nb2RlKFpvb21QYWdlKQogICAgICwgbV9pc1NwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZChmYWxzZSkKQEAgLTI5MCwxNyArMjg3LDEwIEBAIHZvaWQgU2V0dGluZ3M6
OnNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBsb2NhbFN0b3JhZ2VFbmFibGVkKQogICAgIG1f
bG9jYWxTdG9yYWdlRW5hYmxlZCA9IGxvY2FsU3RvcmFnZUVuYWJsZWQ7CiB9CiAKLSNpZiBFTkFC
TEUoRE9NX1NUT1JBR0UpICAgICAgICAKLXZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1
b3RhKHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3RhKQotewotICAgIG1fbG9jYWxTdG9yYWdlUXVv
dGEgPSBsb2NhbFN0b3JhZ2VRdW90YTsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0U2Vzc2lvblN0
b3JhZ2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3RvcmFnZVF1b3RhKQogewogICAgIG1fc2Vzc2lv
blN0b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdlUXVvdGE7CiB9Ci0jZW5kaWYKIAogdm9pZCBT
ZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpCiB7CkBAIC00ODMsMTEgKzQ3Myw2IEBAIHZvaWQgU2V0dGluZ3M6OnNldExvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fbG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldExv
Y2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgbV9sb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwotfQotCiB2b2lkIFNldHRpbmdzOjpzZXRBcHBs
aWNhdGlvbkNocm9tZU1vZGUoYm9vbCBtb2RlKQogewogICAgIG1faW5BcHBsaWNhdGlvbkNocm9t
ZU1vZGUgPSBtb2RlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA1ZWQ2NDgwNjI2NDM1MDBjZWJmMDVhZTZkZDAwOTFi
NDc1OTcwMThhLi45MjgxYWNmY2E1ZTZmODU1ODMzNmRlNDgwM2EzYTA0NGQyOTc2MmVkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaApAQCAtMTI5LDE2ICsxMjksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgbG9jYWxTdG9y
YWdlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRW5hYmxlZDsgfQogCi0j
aWYgRU5BQkxFKERPTV9TVE9SQUdFKSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9y
YWdlUXVvdGEodW5zaWduZWQpOwotICAgICAgICB1bnNpZ25lZCBsb2NhbFN0b3JhZ2VRdW90YSgp
IGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGE7IH0KLQogICAgICAgICAvLyBBbGxv
dyBjbGllbnRzIGNvbmNlcm5lZCB3aXRoIG1lbW9yeSBjb25zdW1wdGlvbiB0byBzZXQgYSBxdW90
YSBvbiBzZXNzaW9uIHN0b3JhZ2UKICAgICAgICAgLy8gc2luY2UgdGhlIG1lbW9yeSB1c2VkIHdv
bid0IGJlIHJlbGVhc2VkIHVudGlsIHRoZSBQYWdlIGlzIGRlc3Ryb3llZC4KICAgICAgICAgLy8g
RGVmYXVsdCBpcyBub1F1b3RhLgogICAgICAgICB2b2lkIHNldFNlc3Npb25TdG9yYWdlUXVvdGEo
dW5zaWduZWQpOwogICAgICAgICB1bnNpZ25lZCBzZXNzaW9uU3RvcmFnZVF1b3RhKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uU3RvcmFnZVF1b3RhOyB9Ci0jZW5kaWYKIAogICAgICAgICAvLyBX
aGVuIHRoaXMgb3B0aW9uIGlzIHNldCwgV2ViQ29yZSB3aWxsIGF2b2lkIHN0b3JpbmcgYW55IHJl
Y29yZCBvZiBicm93c2luZyBhY3Rpdml0eQogICAgICAgICAvLyB0aGF0IG1heSBwZXJzaXN0IG9u
IGRpc2sgb3IgcmVtYWluIGRpc3BsYXllZCB3aGVuIHRoZSBvcHRpb24gaXMgcmVzZXQuCkBAIC0y
MzksOSArMjM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgc2V0TG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9y
YWdlRGF0YWJhc2VQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGg7IH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0QXBwbGljYXRpb25DaHJvbWVNb2RlKGJv
b2wpOwogICAgICAgICBib29sIGluQXBwbGljYXRpb25DaHJvbWVNb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZTsgfQpAQCAtMzM5LDcgKzMzMSw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgCiAgICAgICAgIFN0cmluZyBtX2RlZmF1bHRUZXh0RW5j
b2RpbmdOYW1lOwogICAgICAgICBTdHJpbmcgbV9mdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGg7Ci0g
ICAgICAgIFN0cmluZyBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKICAgICAgICAgS1VSTCBt
X3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAgICAgICAgIEF0b21pY1N0cmluZyBtX3N0YW5kYXJk
Rm9udEZhbWlseTsKICAgICAgICAgQXRvbWljU3RyaW5nIG1fZml4ZWRGb250RmFtaWx5OwpAQCAt
MzU0LDEwICszNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtX2RlZmF1
bHRGb250U2l6ZTsKICAgICAgICAgaW50IG1fZGVmYXVsdEZpeGVkRm9udFNpemU7CiAgICAgICAg
IHNpemVfdCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOwotI2lmIEVOQUJMRShET01fU1RPUkFH
RSkgICAgICAgIAotICAgICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1b3RhOwogICAgICAg
ICB1bnNpZ25lZCBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7Ci0jZW5kaWYKICAgICAgICAgdW5zaWdu
ZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGltZTsKICAgICAgICAgWm9vbU1vZGUgbV96b29tTW9kZTsK
ICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYWQwM2I2MmM4NjE3MjA2ZjgzYmNm
MWFlN2Q5NzJjNzRlOTI4MTVjLi41MmQ1YjZjZmY3MmNhNjE1NDZlZDRhNDA4ZTRlM2M2OTY0Y2Jm
YWE5IDEwMDY0NAotLS0gYS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjE2LDcg
KzE2MTYsNiBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSAxNDlDMjgzMjA4OTAyQjBGMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhQcm9qZWN0ICJXZWJLaXQiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAi
WGNvZGUgMi40IjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5u
ZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IDI2OTExMGYxZTM1M2I1Mjg5ZDllZDRjNzNhYTZmZjdhZTI5NWVkOGEuLjc4NTE4NDUxOWJl
N2ZmZmIyNDcwNDA0NWEwZjk3YTJiMjU0N2NiY2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAt
MDgtMTAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0aW5ncyBhcmUgbGlu
a2VkIHRvIHRoZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3IGNsYXNzIGZv
ciB0aG9zZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQzNzk0CisKKyAgICAgICAgQ2hhbmdlIFdlYlZpZXcgdG8gdXNlIHRoZSBuZXcgR3JvdXBTZXR0
aW5ncyBjbGFzcyByYXRoZXIgdGhhbiBTZXR0aW5ncyBmb3IgdGhlCisgICAgICAgIHNldHRpbmdz
IHRoYXQgbW92ZWQuICBUaGlzIGlzIHN1Yi1vcHRpbWFsIHNpbmNlIHRoZSBzZXR0aW5ncyBhcmVu
J3QgcmVhbGx5CisgICAgICAgIHBlci12aWV3LCBidXQgd2UgY2FuJ3QgcmVhbGx5IGNoYW5nZSB0
aGUgQVBJIGF0IHRoaXMgcG9pbnQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91
cE5hbWU6dXNlc0RvY3VtZW50Vmlld3M6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVu
Y2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpdKToKKwogMjAxMC0wOC0wNiAgR2F2aW4gQmFycmFjbG91
Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkg
U2FtIFdlaW5pZwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhZWZkNTZiN2M0Mzc4YjY2ODRiNmJi
MGM1MDExYmJmZWM5ZjJmNWFjLi5hMGJmMjQ4MTVlMTM0YzM4MTFkMjAxZjcyMzc3ZDNmYmRjNTQ4
M2JmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTI2LDYgKzEyNiw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lVHJlZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBv
cnQgPFdlYkNvcmUvR0NDb250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dyb3VwU2V0dGlu
Z3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9IVE1MTmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KQEAgLTY4
Niw3ICs2ODcsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRFbmFibGVMb2FkRGVmZXJyaW5nKCkKICAg
ICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKIAogICAgIF9wcml2YXRl
LT5wYWdlLT5zZXRDYW5TdGFydE1lZGlhKFtzZWxmIHdpbmRvd10pOwotICAgIF9wcml2YXRlLT5w
YWdlLT5zZXR0aW5ncygpLT5zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoW1tzZWxmIHByZWZl
cmVuY2VzXSBfbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoXSk7CisgICAgX3ByaXZhdGUtPnBhZ2Ut
Pmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLT5zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoW1tz
ZWxmIHByZWZlcmVuY2VzXSBfbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoXSk7CiAKICAgICBbV2Vi
RnJhbWUgX2NyZWF0ZU1haW5GcmFtZVdpdGhQYWdlOl9wcml2YXRlLT5wYWdlIGZyYW1lTmFtZTpm
cmFtZU5hbWUgZnJhbWVWaWV3OmZyYW1lVmlld107CiAKQEAgLTEzNzQsNyArMTM3NSw3IEBAIHN0
YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAgICAgc2V0dGluZ3MtPnNl
dEZpeGVkRm9udEZhbWlseShbcHJlZmVyZW5jZXMgZml4ZWRGb250RmFtaWx5XSk7CiAgICAgc2V0
dGluZ3MtPnNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MoW3ByZWZlcmVuY2VzIF9mb3JjZUZU
UERpcmVjdG9yeUxpc3RpbmdzXSk7CiAgICAgc2V0dGluZ3MtPnNldEZUUERpcmVjdG9yeVRlbXBs
YXRlUGF0aChbcHJlZmVyZW5jZXMgX2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aF0pOwotICAgIHNl
dHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoW3ByZWZlcmVuY2VzIF9sb2NhbFN0
b3JhZ2VEYXRhYmFzZVBhdGhdKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z3JvdXAoKS5ncm91cFNl
dHRpbmdzKCktPnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChbcHJlZmVyZW5jZXMgX2xvY2Fs
U3RvcmFnZURhdGFiYXNlUGF0aF0pOwogICAgIHNldHRpbmdzLT5zZXRKYXZhRW5hYmxlZChbcHJl
ZmVyZW5jZXMgaXNKYXZhRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5h
YmxlZChbcHJlZmVyZW5jZXMgaXNKYXZhU2NyaXB0RW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5z
ZXRXZWJTZWN1cml0eUVuYWJsZWQoW3ByZWZlcmVuY2VzIGlzV2ViU2VjdXJpdHlFbmFibGVkXSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64016</attachid>
            <date>2010-08-10 09:33:26 -0700</date>
            <delta_ts>2010-08-11 03:54:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43794-20100810173324.patch</filename>
            <type>text/plain</type>
            <size>24259</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCA5YzI2NThlNWE2YWY5NzJkMGEyNDNiZjZiMTYwZjAyMTAwYTUxZDMwLi43YTYwNTMyMGU1MDRm
YmIzN2VkNWQyNDNmZDA0ZmExZmMwMWNiNDg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzEsNiArMzcxLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlw
YWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAJcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3Bw
IFwKKwlwYWdlL0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlwYWdlL0hpc3RvcnkuY3BwIFwKIAlwYWdl
L0xvY2F0aW9uLmNwcCBcCiAJcGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBmZGZmNjI3N2YzOTVlMGU4MWYxMjIzZmZmZWU5MmY5NzNjY2I4YjgxLi5hOTNm
MjlmZmNlZmQyZWQ4YzI2MTRjZGVmN2JlNGIxNGUxMWQ2MTc4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjEsNiAr
MTE2MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNwcAog
ICAgIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKICAgICBwYWdlL0hp
c3RvcnkuY3BwCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAKICAgICBwYWdlL01lbW9yeUluZm8uY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDlhYTMzNjJkMjA0Njk2YzgwODA1MTNiOTUzOGRhYjExNWY5NjhjZjguLmFiYmJmYWE1ZWVhM2Jh
OWM0MDcxZjc0Y2U2NjM3NWY4MTBjM2JhNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTAgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0aW5ncyBhcmUgbGlua2VkIHRvIHRo
ZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3IGNsYXNzIGZvciB0aG9zZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzk0CisK
KyAgICAgICAgU2luY2UgcGVyc2lzdGllbnQgc3RvcmFnZSBpcyBzaGFyZWQgYmV0d2VlbiBwYWdl
cywgdGhlcmUncyBubyB3YXkgdG8gbW9kaWZ5CisgICAgICAgIHNvbWUgc2V0dGluZ3MgcmVsYXRl
ZCB0byBpdCBvbiBhIHBlciBwYWdlIGJhc2lzLiAgQXMgc3VjaCwgaXQncyBub3QgdGVjaG5pY2Fs
bHkKKyAgICAgICAgY29ycmVjdCBmb3IgdGhlc2Ugc2V0dGluZ3MgdG8gYmUgb24gdGhlIFBhZ2Un
cyBzZXR0aW5ncy4gIENyZWF0ZSBhIG5ldyBjbGFzcworICAgICAgICBjYWxsZWQgR3JvdXBTZXR0
aW5ncywgbW92ZSB0aGUgMiBncm91cC13aWRlIGxvY2FsIHN0b3JhZ2Ugc2V0dGluZ3MgdGhlcmUs
IGFuZAorICAgICAgICBhZGQgYSBuZXcgc2V0dGluZyBmb3IgSW5kZXhlZERCJ3MgcGF0aCAod2hp
Y2ggaXMgcHJvbXB0aW5nIHRoaXMgY2hhbmdlKS4KKworICAgICAgICBObyBiZWhhdmlvciBoYXMg
Y2hhbmdlZCwgc28gbm8gdGVzdHMuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdl
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpQYWdlR3JvdXApOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpsb2NhbFN0b3JhZ2UpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6Omdyb3VwU2V0dGluZ3Mp
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTZXNzaW9uU3Rv
cmFnZVF1b3RhKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisKIDIwMTAtMDgtMTAgIFlv
c2hpa2kgSGF5YXNoaSAgPHloYXlhc2hpQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA4NmZjNWIxNGEwZjhmMDc0NGVkMzJjOTExMWRmODFh
MzAwOTQ4YjE5Li44ZGJlMGFlMTgyZjUwNTM3M2JjZTAyYmM3YjM1NTcyODY4MDRjYzI0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KQEAgLTE3OTMsNiArMTc5Myw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9w
YWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgXAogCVdlYkNvcmUvcGFnZS9HZW9sb2Nh
dGlvblBvc2l0aW9uQ2FjaGUuaCBcCiAJV2ViQ29yZS9wYWdlL0dlb3Bvc2l0aW9uLmggXAorCVdl
YkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmggXAogCVdlYkNvcmUvcGFnZS9IYWx0YWJsZVBsdWdp
bi5oIFwKIAlXZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAgXAogCVdlYkNvcmUvcGFnZS9IaXN0b3J5
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggMmRhNGRlZTA4ZDRlY2YwZDZjYjYwYWNmYWFjZDRlYTA4OTQ1NmQ5Ny4u
ZWJhMjdkODk2NTFiYzg4NGE5NTIzMTBiNGFjNWFiZTUwMGI1ZjIyMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC02Nzgs
NiArNjc4LDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHNFdgogX19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgogX19aTjdXZWJD
b3JlOEZvcm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dlYkNvcmU4Rm9ybURhdGFEMUV2CitfX1pO
N1dlYkNvcmUxM0dyb3VwU2V0dGluZ3MyN3NldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aEVSS04z
V1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThJbnRQb2ludEMxRVJLOF9OU1BvaW50CiBfX1pON1dl
YkNvcmU4UG9zaXRpb25DMUVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRWkKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczExc2V0Wm9vbU1vZGVFTlNfOFpvb21Nb2RlRQpAQCAtNzIyLDcgKzcyMyw2
IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWVFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNnNldE5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQ
YXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VE
YXRhYmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOHNldEZv
cmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRo
b3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldFdlYkFy
Y2hpdmVEZWJ1Z01vZGVFbmFibGVkRWIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTk1OWZkODY0NzZkOTI0MDdhODQ2MzA1OTk1
NDg4NjM4MDQ5YzkwYi4uMTg4NjI0ZGIwOGMyODkyMTU5MzU0NzYyNzlkZTlhODQ2OWNiNTM5ZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTIwMTEsNiArMjAxMSw4IEBACiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvblBv
c2l0aW9uQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZS5oJywKICAgICAgICAgICAgICdwYWdlL0dlb3Bvc2l0aW9uLmgnLAorICAgICAgICAgICAg
J3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5n
cy5oJywKICAgICAgICAgICAgICdwYWdlL0hhbHRhYmxlUGx1Z2luLmgnLAogICAgICAgICAgICAg
J3BhZ2UvSGlzdG9yeS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvSGlzdG9yeS5oJywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGUx
Njc0ZTNhOTM3NGNiYmE4ZjRjODc3ODJhNTFmM2VjMTQxNGJjYWQuLjM5ZDA2ZmZlOTdiYmQ3M2Mx
NDIxYmRmNGFlZGJhY2Q5MDIzYzUxN2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODMyLDYgKzgzMiw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uQ29udHJv
bGxlci5jcHAgXAogICAgIHBhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCBcCisgICAg
cGFnZS9Hcm91cFNldHRpbmdzLmNwcCBcCiAgICAgcGFnZS9IaXN0b3J5LmNwcCBcCiAgICAgcGFn
ZS9Mb2NhdGlvbi5jcHAgXAogICAgIHBhZ2UvTWVtb3J5SW5mby5jcHAgXApAQCAtMTYwOCw2ICsx
NjA5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5oIFwKICAgICBwYWdl
L0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKICAgICBwYWdlL0dlb3Bvc2l0aW9uLmggXAor
ICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKICAgICBwYWdlL0hhbHRhYmxlUGx1Z2luLmggXAog
ICAgIHBhZ2UvSGlzdG9yeS5oIFwKICAgICBwYWdlL0xvY2F0aW9uLmggXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNDhhMjFmNDAyOTBhOTQ2ZjU3Yjg2ZTdmZDYwYTMy
YmRiMDVlMTA4My4uOTc2YTgwNzEzMDc5MmY4NTFjN2YzODU2MmVlOTUzMGZkMTc0MGY2ZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjMxNyw2ICsyMjMxNywxNCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
YWdlXEdyb3VwU2V0dGluZ3MuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHcm91cFNldHRpbmdzLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEhhbHRhYmxlUGx1
Z2luLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBjODE2Nzk1NGM5MTUxY2I0MWEyNDRmZjcwMjBiZTRmZTAyNjBh
N2I3Li4xNGVhN2YzYTBmNTViMjRlNmM4NDVmYWNkZWI3OTdhMmJlMTM5YmRiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDk0OSw2ICs0OTQ5LDggQEAK
IAkJQzBERkM4NzAwREI2ODQxQTAwM0VBRTdDIC8qIEpTQ29uc29sZUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMERGQzg2RjBEQjY4NDFB
MDAzRUFFN0MgLyogSlNDb25zb2xlQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQzEwNURBNjIwRjNBQTY4
RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYxMEYzQUE2OEYwMDFERDQ0RiAv
KiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi87IH07CiAJCUMxMDVEQTY0MEYzQUE2Qjgw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRleHRF
bmNvZGluZ0RldGVjdG9yLmggKi87IH07CisJCUM1MEI1NjE2MTIxMTlEMjMwMDhCNDZFMCAvKiBH
cm91cFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCAqLzsg
fTsKKwkJQzUwQjU2MTcxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEI1NjE1MTIxMTlEMjMw
MDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzUwRDBFODIwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VO
YW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwICovOyB9
OwogCQlDNTBEMEU4MzBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwRDBFODEwRkY0Mjcy
OTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAqLzsgfTsKIAkJQzUxMDJEOTQwRkQ5QUEy
RDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxMDJEOTIwRkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3Jh
Z2VTeW5jTWFuYWdlci5oICovOyB9OwpAQCAtMTA2OTQsNiArMTA2OTYsOCBAQAogCQlDMERGQzg2
RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29uc29sZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUMxMDVEQTYxMEYzQUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdE
ZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0
RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMx
MDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDNTBCNTYxNDEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBT
ZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcm91cFNl
dHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUwQjU2MTUxMjExOUQy
MzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR3JvdXBTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTBE
MEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlTmFtZXNwYWNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwRDBFODEwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VO
YW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZU5hbWVz
cGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTEwMkQ5MjBGRDlBQTJEMDBG
QUZGMDQgLyogU3RvcmFnZVN5bmNNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN0b3JhZ2VTeW5jTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTI1MDgsNiArMTI1MTIsOCBAQAogCQkJCTU5NjIyOTc5MTEzM0VGRTIwMERDNENCQiAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCAqLywKIAkJCQlGRTgwRDdCQjBFOUMxRjI1MDAwRDZG
NzUgLyogR2VvcG9zaXRpb24uaCAqLywKIAkJCQlGRTgwRDdCQzBFOUMxRjI1MDAwRDZGNzUgLyog
R2VvcG9zaXRpb24uaWRsICovLAorCQkJCUM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91
cFNldHRpbmdzLmNwcCAqLywKKwkJCQlDNTBCNTYxNTEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBT
ZXR0aW5ncy5oICovLAogCQkJCTc2OTNCQUNFMTA2QzJEQ0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBs
dWdpbi5oICovLAogCQkJCUJDOTREMTUwMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmNwcCAq
LywKIAkJCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5oICovLApAQCAtMjAx
MzMsNiArMjAxMzksNyBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5p
Y29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAv
KiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTE3MkUwMTExMzZFOENFMDA2MkE1
MzMgLyogWm9vbU1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUM1MEI1NjE3MTIxMTlEMjMwMDhC
NDZFMCAvKiBHcm91cFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyNTU1LDYgKzIyNTYy
LDcgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhz
bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhT
TFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBF
Q0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNTBCNTYxNjEyMTE5
RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9Hcm91cFNl
dHRpbmdzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjkyYjdmNjEwZWM5MTI4NDM1MWE3YTAxNmVjNjNhZGIy
YWJkNGUwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuY3Bw
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkdyb3VwU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcm91cFNldHRp
bmdzOjpHcm91cFNldHRpbmdzKFBhZ2VHcm91cCogcGFnZUdyb3VwKQorICAgIDogbV9wYWdlR3Jv
dXAocGFnZUdyb3VwKQorICAgICwgbV9sb2NhbFN0b3JhZ2VRdW90YSg1ICogMTAyNCAqIDEwMjQp
IC8vIFN1Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KK3sKK30KKwordm9pZCBHcm91cFNldHRp
bmdzOjpzZXRMb2NhbFN0b3JhZ2VRdW90YSh1bnNpZ25lZCBxdW90YSkKK3sKKyAgICBtX2xvY2Fs
U3RvcmFnZVF1b3RhID0gcXVvdGE7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0TG9jYWxT
dG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2xvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aCA9IHBhdGg7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0SW5k
ZXhlZERCRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2luZGV4ZWRE
QkRhdGFiYXNlUGF0aCA9IHBhdGg7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvR3JvdXBT
ZXR0aW5ncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZjE4ZTlmMDMzMjdjM2NmZThiMGQ4MzFhMTVmMmVmNjll
Njg4ODYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBHcm91cFNldHRpbmdzX2gKKyNkZWZp
bmUgR3JvdXBTZXR0aW5nc19oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFn
ZUdyb3VwOworCitjbGFzcyBHcm91cFNldHRpbmdzIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxHcm91cFNldHRpbmdzPiBjcmVhdGUoUGFnZUdy
b3VwKiBwYWdlR3JvdXApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdyb3Vw
U2V0dGluZ3MocGFnZUdyb3VwKSk7CisgICAgfQorCisgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VR
dW90YSh1bnNpZ25lZCk7CisgICAgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVvdGEoKSBjb25zdCB7
IHJldHVybiBtX2xvY2FsU3RvcmFnZVF1b3RhOyB9CisKKyAgICB2b2lkIHNldExvY2FsU3RvcmFn
ZURhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBTdHJpbmcmIGxvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQ
YXRoOyB9CisKKyAgICB2b2lkIHNldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcm
KTsKKyAgICBjb25zdCBTdHJpbmcmIGluZGV4ZWREQkRhdGFiYXNlUGF0aCgpIGNvbnN0IHsgcmV0
dXJuIG1faW5kZXhlZERCRGF0YWJhc2VQYXRoOyB9CisKK3ByaXZhdGU6CisgICAgR3JvdXBTZXR0
aW5ncyhQYWdlR3JvdXAqKTsKKworICAgIFBhZ2VHcm91cCogbV9wYWdlR3JvdXA7CisKKyAgICB1
bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1b3RhOworICAgIFN0cmluZyBtX2xvY2FsU3RvcmFnZURh
dGFiYXNlUGF0aDsKKyAgICBTdHJpbmcgbV9pbmRleGVkREJEYXRhYmFzZVBhdGg7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBHcm91cFNldHRpbmdzX2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91
cC5jcHAKaW5kZXggMTJiMWE0MWNhNGRiMDIwM2MzOTAyNDAwNjg4M2RmOWIzMjg3MjMzZC4uYTAy
ZWY0ZGI5NzcxNmUxMjIxZWQwMGY2ZWM4ZWVjMGM1NjkzMjYxNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL1BhZ2VHcm91cC5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01NSw2ICs1Niw3IEBAIFBhZ2VHcm91cDo6UGFn
ZUdyb3VwKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICA6IG1fbmFtZShuYW1lKQogICAgICwgbV92
aXNpdGVkTGlua3NQb3B1bGF0ZWQoZmFsc2UpCiAgICAgLCBtX2lkZW50aWZpZXIoZ2V0VW5pcXVl
SWRlbnRpZmllcigpKQorICAgICwgbV9ncm91cFNldHRpbmdzKEdyb3VwU2V0dGluZ3M6OmNyZWF0
ZSh0aGlzKSkKIHsKIH0KIApAQCAtMTk0LDE2ICsxOTYsOSBAQCB2b2lkIFBhZ2VHcm91cDo6c2V0
U2hvdWxkVHJhY2tWaXNpdGVkTGlua3MoYm9vbCBzaG91bGRUcmFjaykKIFN0b3JhZ2VOYW1lc3Bh
Y2UqIFBhZ2VHcm91cDo6bG9jYWxTdG9yYWdlKCkKIHsKICAgICBpZiAoIW1fbG9jYWxTdG9yYWdl
KSB7Ci0gICAgICAgIC8vIE5lZWQgYSBwYWdlIGluIHRoaXMgcGFnZSBncm91cCB0byBxdWVyeSB0
aGUgc2V0dGluZ3MgZm9yIHRoZSBsb2NhbCBzdG9yYWdlIGRhdGFiYXNlIHBhdGguCi0gICAgICAg
IC8vIEhhdmluZyB0aGVzZSBwYXJhbWV0ZXJzIGF0dGFjaGVkIHRvIHRoZSBwYWdlIHNldHRpbmdz
IGlzIHVuZm9ydHVuYXRlIHNpbmNlIHRoZXNlIHNldHRpbmdzIGFyZQotICAgICAgICAvLyBub3Qg
cGVyLXBhZ2UgKGFuZCwgaW4gZmFjdCwgd2Ugc2ltcGx5IGdyYWIgdGhlIHNldHRpbmdzIGZyb20g
c29tZSBwYWdlIGF0IHJhbmRvbSksIGJ1dAotICAgICAgICAvLyBhdCB0aGlzIHBvaW50IHdlJ3Jl
IHN0dWNrIHdpdGggaXQuCi0gICAgICAgIFBhZ2UqIHBhZ2UgPSAqbV9wYWdlcy5iZWdpbigpOwot
ICAgICAgICBjb25zdCBTdHJpbmcmIHBhdGggPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3Jh
Z2VEYXRhYmFzZVBhdGgoKTsKLSAgICAgICAgdW5zaWduZWQgcXVvdGEgPSBwYWdlLT5zZXR0aW5n
cygpLT5sb2NhbFN0b3JhZ2VRdW90YSgpOwotICAgICAgICBtX2xvY2FsU3RvcmFnZSA9IFN0b3Jh
Z2VOYW1lc3BhY2U6OmxvY2FsU3RvcmFnZU5hbWVzcGFjZShwYXRoLCBxdW90YSk7CisgICAgICAg
IG1fbG9jYWxTdG9yYWdlID0gU3RvcmFnZU5hbWVzcGFjZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNl
KG1fZ3JvdXBTZXR0aW5ncy0+bG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
Z3JvdXBTZXR0aW5ncy0+bG9jYWxTdG9yYWdlUXVvdGEoKSk7CiAgICAgfQotCiAgICAgcmV0dXJu
IG1fbG9jYWxTdG9yYWdlLmdldCgpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvUGFnZUdyb3VwLmggYi9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKaW5kZXggMDhiMDNkNzAy
Nzg1MDQwMjM3Mzg4ZWU1ZjkyOTFjOWIzNDVjMDRmMi4uYzY0ZmY0ZDNhNjgyZDc5ZjBiYTI4N2Vi
MzUyODE5NjZiMGM4M2EzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCisr
KyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaApAQCAtMzYsNiArMzYsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgY2xhc3MgS1VSTDsKKyAgICBjbGFzcyBHcm91cFNldHRpbmdzOwog
ICAgIGNsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOwogICAgIGNsYXNzIFBhZ2U7CiAg
ICAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKQEAgLTkzLDYgKzk0LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBjb25zdCBVc2VyU2NyaXB0TWFwKiB1c2VyU2NyaXB0cygpIGNvbnN0
IHsgcmV0dXJuIG1fdXNlclNjcmlwdHMuZ2V0KCk7IH0KICAgICAgICAgY29uc3QgVXNlclN0eWxl
U2hlZXRNYXAqIHVzZXJTdHlsZVNoZWV0cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hl
ZXRzLmdldCgpOyB9CiAKKyAgICAgICAgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncygpIGNv
bnN0IHsgcmV0dXJuIG1fZ3JvdXBTZXR0aW5ncy5nZXQoKTsgfQorCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhMaW5rSGFzaCBzdHJpbmdIYXNoKTsKICAgICAgICAg
dm9pZCByZXNldFVzZXJTdHlsZUNhY2hlSW5BbGxGcmFtZXMoKTsKQEAgLTExNCw2ICsxMTcsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgT3duUHRyPFVzZXJTY3JpcHRNYXA+IG1f
dXNlclNjcmlwdHM7CiAgICAgICAgIE93blB0cjxVc2VyU3R5bGVTaGVldE1hcD4gbV91c2VyU3R5
bGVTaGVldHM7CisKKyAgICAgICAgT3duUHRyPEdyb3VwU2V0dGluZ3M+IG1fZ3JvdXBTZXR0aW5n
czsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCA4ODFj
ODg1OGYyMmY2N2RmNjE4NTQzMzVlNzcyZGI0ZGI5NzRjZGJhLi44OWJjNTg5NTY2NzhlYmJmMmI4
Mzg0NmM0ZjI3MjI5MGYxMmRjNTlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
Y3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTY0LDEwICs2NCw3IEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9kZWZhdWx0Rm9udFNpemUoMCkK
ICAgICAsIG1fZGVmYXVsdEZpeGVkRm9udFNpemUoMCkKICAgICAsIG1fbWF4aW11bURlY29kZWRJ
bWFnZVNpemUobnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCi0jaWYgRU5BQkxFKERPTV9T
VE9SQUdFKSAgICAgICAgICAgIAotICAgICwgbV9sb2NhbFN0b3JhZ2VRdW90YSg1ICogMTAyNCAq
IDEwMjQpICAvLyBTdWdnZXN0ZWQgYnkgdGhlIEhUTUw1IHNwZWMuCiAgICAgLCBtX3Nlc3Npb25T
dG9yYWdlUXVvdGEoU3RvcmFnZU1hcDo6bm9RdW90YSkKLSNlbmRpZgogICAgICwgbV9wbHVnaW5B
bGxvd2VkUnVuVGltZShudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQogICAgICwgbV96
b29tTW9kZShab29tUGFnZSkKICAgICAsIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZmFs
c2UpCkBAIC0yOTAsMTcgKzI4NywxMCBAQCB2b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VF
bmFibGVkKGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZCkKICAgICBtX2xvY2FsU3RvcmFnZUVuYWJs
ZWQgPSBsb2NhbFN0b3JhZ2VFbmFibGVkOwogfQogCi0jaWYgRU5BQkxFKERPTV9TVE9SQUdFKSAg
ICAgICAgCi12b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VRdW90YSh1bnNpZ25lZCBsb2Nh
bFN0b3JhZ2VRdW90YSkKLXsKLSAgICBtX2xvY2FsU3RvcmFnZVF1b3RhID0gbG9jYWxTdG9yYWdl
UXVvdGE7Ci19Ci0KIHZvaWQgU2V0dGluZ3M6OnNldFNlc3Npb25TdG9yYWdlUXVvdGEodW5zaWdu
ZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSkKIHsKICAgICBtX3Nlc3Npb25TdG9yYWdlUXVvdGEgPSBz
ZXNzaW9uU3RvcmFnZVF1b3RhOwogfQotI2VuZGlmCiAKIHZvaWQgU2V0dGluZ3M6OnNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQogewpAQCAtNDgz
LDExICs0NzMsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQgPSBlbmFibGVkOwogfQogCi12b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQotewotICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQ
YXRoID0gcGF0aDsKLX0KLQogdm9pZCBTZXR0aW5nczo6c2V0QXBwbGljYXRpb25DaHJvbWVNb2Rl
KGJvb2wgbW9kZSkKIHsKICAgICBtX2luQXBwbGljYXRpb25DaHJvbWVNb2RlID0gbW9kZTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgKaW5kZXggNWVkNjQ4MDYyNjQzNTAwY2ViZjA1YWU2ZGQwMDkxYjQ3NTk3MDE4YS4uOTI4MWFj
ZmNhNWU2Zjg1NTgzMzZkZTQ4MDNhM2EwNDRkMjk3NjJlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEyOSwxNiAr
MTI5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3Jh
Z2VFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZUVuYWJsZWQ7IH0KIAotI2lmIEVOQUJMRShET01fU1RP
UkFHRSkgICAgICAgIAotICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVk
KTsKLSAgICAgICAgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBt
X2xvY2FsU3RvcmFnZVF1b3RhOyB9Ci0KICAgICAgICAgLy8gQWxsb3cgY2xpZW50cyBjb25jZXJu
ZWQgd2l0aCBtZW1vcnkgY29uc3VtcHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBzdG9y
YWdlCiAgICAgICAgIC8vIHNpbmNlIHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNlZCB1
bnRpbCB0aGUgUGFnZSBpcyBkZXN0cm95ZWQuCiAgICAgICAgIC8vIERlZmF1bHQgaXMgbm9RdW90
YS4KICAgICAgICAgdm9pZCBzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKICAgICAg
ICAgdW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
blN0b3JhZ2VRdW90YTsgfQotI2VuZGlmCiAKICAgICAgICAgLy8gV2hlbiB0aGlzIG9wdGlvbiBp
cyBzZXQsIFdlYkNvcmUgd2lsbCBhdm9pZCBzdG9yaW5nIGFueSByZWNvcmQgb2YgYnJvd3Npbmcg
YWN0aXZpdHkKICAgICAgICAgLy8gdGhhdCBtYXkgcGVyc2lzdCBvbiBkaXNrIG9yIHJlbWFpbiBk
aXNwbGF5ZWQgd2hlbiB0aGUgb3B0aW9uIGlzIHJlc2V0LgpAQCAtMjM5LDkgKzIzNCw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZDsgfQotCi0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0
cmluZyYpOwotICAgICAgICBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOyB9CiAgICAgICAgIAog
ICAgICAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZShib29sKTsKICAgICAgICAgYm9v
bCBpbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5BcHBsaWNhdGlv
bkNocm9tZU1vZGU7IH0KQEAgLTMzOSw3ICszMzEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIAogICAgICAgICBTdHJpbmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKICAgICAg
ICAgU3RyaW5nIG1fZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRoOwotICAgICAgICBTdHJpbmcgbV9s
b2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7CiAgICAgICAgIEtVUkwgbV91c2VyU3R5bGVTaGVldExv
Y2F0aW9uOwogICAgICAgICBBdG9taWNTdHJpbmcgbV9zdGFuZGFyZEZvbnRGYW1pbHk7CiAgICAg
ICAgIEF0b21pY1N0cmluZyBtX2ZpeGVkRm9udEZhbWlseTsKQEAgLTM1NCwxMCArMzQ1LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgbV9kZWZhdWx0Rm9udFNpemU7CiAgICAg
ICAgIGludCBtX2RlZmF1bHRGaXhlZEZvbnRTaXplOwogICAgICAgICBzaXplX3QgbV9tYXhpbXVt
RGVjb2RlZEltYWdlU2l6ZTsKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLSAgICAg
ICAgdW5zaWduZWQgbV9sb2NhbFN0b3JhZ2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9zZXNz
aW9uU3RvcmFnZVF1b3RhOwotI2VuZGlmCiAgICAgICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dl
ZFJ1blRpbWU7CiAgICAgICAgIFpvb21Nb2RlIG1fem9vbU1vZGU7CiAgICAgICAgIGJvb2wgbV9p
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDI2OTExMGYxZTM1M2I1Mjg5ZDll
ZDRjNzNhYTZmZjdhZTI5NWVkOGEuLjc4NTE4NDUxOWJlN2ZmZmIyNDcwNDA0NWEwZjk3YTJiMjU0
N2NiY2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDgtMTAgIEplcmVteSBPcmxvdyAgPGpv
cmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU29tZSBzZXR0aW5ncyBhcmUgbGlua2VkIHRvIHRoZSBQYWdlR3JvdXAgbm90
IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3IGNsYXNzIGZvciB0aG9zZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzk0CisKKyAgICAgICAgQ2hhbmdl
IFdlYlZpZXcgdG8gdXNlIHRoZSBuZXcgR3JvdXBTZXR0aW5ncyBjbGFzcyByYXRoZXIgdGhhbiBT
ZXR0aW5ncyBmb3IgdGhlCisgICAgICAgIHNldHRpbmdzIHRoYXQgbW92ZWQuICBUaGlzIGlzIHN1
Yi1vcHRpbWFsIHNpbmNlIHRoZSBzZXR0aW5ncyBhcmVuJ3QgcmVhbGx5CisgICAgICAgIHBlci12
aWV3LCBidXQgd2UgY2FuJ3QgcmVhbGx5IGNoYW5nZSB0aGUgQVBJIGF0IHRoaXMgcG9pbnQuCisK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1v
bkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6dXNlc0RvY3VtZW50Vmlld3M6
XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpd
KToKKwogMjAxMC0wOC0wNiAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5j
b20+CiAKICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQppbmRleCBhZWZkNTZiN2M0Mzc4YjY2ODRiNmJiMGM1MDExYmJmZWM5ZjJmNWFjLi5hMGJm
MjQ4MTVlMTM0YzM4MTFkMjAxZjcyMzc3ZDNmYmRjNTQ4M2JmIDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMTI2LDYgKzEyNiw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVHJlZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvR0NDb250cm9sbGVy
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0dyb3VwU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUv
SFRNTE1lZGlhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KQEAgLTY4Niw3ICs2ODcsNyBAQCBzdGF0aWMgYm9v
bCBzaG91bGRFbmFibGVMb2FkRGVmZXJyaW5nKCkKICAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQ
YWdlKHBhZ2VDbGllbnRzKTsKIAogICAgIF9wcml2YXRlLT5wYWdlLT5zZXRDYW5TdGFydE1lZGlh
KFtzZWxmIHdpbmRvd10pOwotICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGgoW1tzZWxmIHByZWZlcmVuY2VzXSBfbG9jYWxTdG9yYWdlRGF0
YWJhc2VQYXRoXSk7CisgICAgX3ByaXZhdGUtPnBhZ2UtPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygp
LT5zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoW1tzZWxmIHByZWZlcmVuY2VzXSBfbG9jYWxT
dG9yYWdlRGF0YWJhc2VQYXRoXSk7CiAKICAgICBbV2ViRnJhbWUgX2NyZWF0ZU1haW5GcmFtZVdp
dGhQYWdlOl9wcml2YXRlLT5wYWdlIGZyYW1lTmFtZTpmcmFtZU5hbWUgZnJhbWVWaWV3OmZyYW1l
Vmlld107CiAKQEAgLTEzNzQsNyArMTM3NSw3IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRl
YXJkb3duRW5hYmxlZCgpCiAgICAgc2V0dGluZ3MtPnNldEZpeGVkRm9udEZhbWlseShbcHJlZmVy
ZW5jZXMgZml4ZWRGb250RmFtaWx5XSk7CiAgICAgc2V0dGluZ3MtPnNldEZvcmNlRlRQRGlyZWN0
b3J5TGlzdGluZ3MoW3ByZWZlcmVuY2VzIF9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzXSk7CiAg
ICAgc2V0dGluZ3MtPnNldEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aChbcHJlZmVyZW5jZXMgX2Z0
cERpcmVjdG9yeVRlbXBsYXRlUGF0aF0pOwotICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VE
YXRhYmFzZVBhdGgoW3ByZWZlcmVuY2VzIF9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhdKTsKKyAg
ICBfcHJpdmF0ZS0+cGFnZS0+Z3JvdXAoKS5ncm91cFNldHRpbmdzKCktPnNldExvY2FsU3RvcmFn
ZURhdGFiYXNlUGF0aChbcHJlZmVyZW5jZXMgX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aF0pOwog
ICAgIHNldHRpbmdzLT5zZXRKYXZhRW5hYmxlZChbcHJlZmVyZW5jZXMgaXNKYXZhRW5hYmxlZF0p
OwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChbcHJlZmVyZW5jZXMgaXNKYXZh
U2NyaXB0RW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRXZWJTZWN1cml0eUVuYWJsZWQoW3By
ZWZlcmVuY2VzIGlzV2ViU2VjdXJpdHlFbmFibGVkXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64090</attachid>
            <date>2010-08-11 03:55:00 -0700</date>
            <delta_ts>2010-08-11 04:37:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43794-20100811115457.patch</filename>
            <type>text/plain</type>
            <size>24938</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBhYzg5NGYxMTM0ZjU5ZjFiZDU0ODdlOTlhNzEzOTNkN2Q1ZWMwYmJiLi44Y2Y4NThlODhiZTAy
YmMwMWQzMGEwYzc3Y2QzZDM0OTY0ODY2ZTBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzIsNiArMzcyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlw
YWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAJcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3Bw
IFwKKwlwYWdlL0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlwYWdlL0hpc3RvcnkuY3BwIFwKIAlwYWdl
L0xvY2F0aW9uLmNwcCBcCiAJcGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA3NTQ0NWMyMDIwODliZjMwYjU0NmNmNTY2MjQ1MjEyODI5OTdiYTcyLi4wODI1
ZGRiYjE1OTkxMDE1NDVkNWRlNTAzY2NhMzdmMGRmYzA0M2I2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjUsNiAr
MTE2NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNwcAog
ICAgIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKICAgICBwYWdlL0hp
c3RvcnkuY3BwCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAKICAgICBwYWdlL01lbW9yeUluZm8uY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDFjZjI3ODBiMzFiNWU1NGUzMGQzYTFiMmU1MjU4OWRhNDlhMzdhMjIuLmYzYzYyNGUyMmY2NjE2
NjExOGRlZjA5MjBmOGNjZjBhNjUwN2U5OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTAgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0aW5ncyBhcmUgbGlua2VkIHRvIHRo
ZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3IGNsYXNzIGZvciB0aG9zZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzk0CisK
KyAgICAgICAgU2luY2UgcGVyc2lzdGllbnQgc3RvcmFnZSBpcyBzaGFyZWQgYmV0d2VlbiBwYWdl
cywgdGhlcmUncyBubyB3YXkgdG8gbW9kaWZ5CisgICAgICAgIHNvbWUgc2V0dGluZ3MgcmVsYXRl
ZCB0byBpdCBvbiBhIHBlciBwYWdlIGJhc2lzLiAgQXMgc3VjaCwgaXQncyBub3QgdGVjaG5pY2Fs
bHkKKyAgICAgICAgY29ycmVjdCBmb3IgdGhlc2Ugc2V0dGluZ3MgdG8gYmUgb24gdGhlIFBhZ2Un
cyBzZXR0aW5ncy4gIENyZWF0ZSBhIG5ldyBjbGFzcworICAgICAgICBjYWxsZWQgR3JvdXBTZXR0
aW5ncywgbW92ZSB0aGUgMiBncm91cC13aWRlIGxvY2FsIHN0b3JhZ2Ugc2V0dGluZ3MgdGhlcmUs
IGFuZAorICAgICAgICBhZGQgYSBuZXcgc2V0dGluZyBmb3IgSW5kZXhlZERCJ3MgcGF0aCAod2hp
Y2ggaXMgcHJvbXB0aW5nIHRoaXMgY2hhbmdlKS4KKworICAgICAgICBObyBiZWhhdmlvciBoYXMg
Y2hhbmdlZCwgc28gbm8gdGVzdHMuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdl
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpQYWdlR3JvdXApOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpsb2NhbFN0b3JhZ2UpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6Omdyb3VwU2V0dGluZ3Mp
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTZXNzaW9uU3Rv
cmFnZVF1b3RhKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisKIDIwMTAtMDgtMTEgIEZ1
bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXggb2YgTGVvcGFyZCBJbnRlbCBEZWJ1ZyAoQnVpbGQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxYTYxNDc1
ODMxNzg3OTFlYjVhNjg3N2EwOWY3YmU3MGJkMzYxYzBlLi5iNGU5MmJiMDc5ZGE2MTFhMDRmMTIy
ZGU1YjM3NDc5YjM0MmIzZTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE4MDIsNiArMTgwMiw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAg
XAogCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCBcCiAJV2ViQ29yZS9w
YWdlL0dlb3Bvc2l0aW9uLmggXAorCVdlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmggXAogCVdl
YkNvcmUvcGFnZS9IYWx0YWJsZVBsdWdpbi5oIFwKIAlXZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAg
XAogCVdlYkNvcmUvcGFnZS9IaXN0b3J5LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMmRhNGRlZTA4ZDRlY2YwZDZj
YjYwYWNmYWFjZDRlYTA4OTQ1NmQ5Ny4uZWJhMjdkODk2NTFiYzg4NGE5NTIzMTBiNGFjNWFiZTUw
MGI1ZjIyMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC02NzgsNiArNjc4LDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50
MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdgogX19aTjdXZWJDb3JlOERv
Y3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dl
YkNvcmU4Rm9ybURhdGFEMUV2CitfX1pON1dlYkNvcmUxM0dyb3VwU2V0dGluZ3MyN3NldExvY2Fs
U3RvcmFnZURhdGFiYXNlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThJbnRQb2lu
dEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4UG9zaXRpb25DMUVOM1dURjEwUGFzc1JlZlB0
cklOU180Tm9kZUVFRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczExc2V0Wm9vbU1vZGVFTlNfOFpv
b21Nb2RlRQpAQCAtNzIyLDcgKzcyMyw2IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MyNnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3
c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyOHNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyOXNldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkRWIKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTBj
MmQxNDBhYzZiYmZkNzNmNzU1YzM3OTAwM2MwNzIxOWU1MGIwMy4uMDBkNTk5OTM3MzJkNzE5MjRj
NDVmZTY4NWUwZDA4OTgwMmZmOTZmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwMjAsNiArMjAyMCw4IEBACiAgICAgICAg
ICAgICAncGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdw
YWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oJywKICAgICAgICAgICAgICdwYWdlL0dlb3Bv
c2l0aW9uLmgnLAorICAgICAgICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAnLAorICAgICAg
ICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5ncy5oJywKICAgICAgICAgICAgICdwYWdlL0hhbHRhYmxl
UGx1Z2luLmgnLAogICAgICAgICAgICAgJ3BhZ2UvSGlzdG9yeS5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvSGlzdG9yeS5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDBlNjNhZjhhMTY3MTgwMGE3YzQ0OWUyYTg3OTA1MjQ0YzYy
Y2ZmNzIuLjkwOTE3YmY2ZDcyNmZlZjRkMjg3ODU0MDg2MWZkMjQ1NWExZGE4OTIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODQx
LDYgKzg0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKICAg
ICBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcCBcCisgICAgcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBcCiAgICAgcGFn
ZS9IaXN0b3J5LmNwcCBcCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAgXAogICAgIHBhZ2UvTWVtb3J5
SW5mby5jcHAgXApAQCAtMTYyMiw2ICsxNjIzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9H
ZW9sb2NhdGlvbi5oIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKICAg
ICBwYWdlL0dlb3Bvc2l0aW9uLmggXAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKICAgICBw
YWdlL0hhbHRhYmxlUGx1Z2luLmggXAogICAgIHBhZ2UvSGlzdG9yeS5oIFwKICAgICBwYWdlL0xv
Y2F0aW9uLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggY2YwOTg4
YWI1OThmOTcxMDE1ODI2MWYzOGMxM2U0MWI3ZWFhYTgyMy4uMDJmM2YxZTkxNmQyMzQ1MjVhMTQ2
YTRlYWE0NmQ2ZWM2ZjM5YmFhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yMjMxNyw2ICsyMjMxNywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdyb3VwU2V0dGluZ3MuY3BwIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHcm91cFNl
dHRpbmdzLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXEhhbHRhYmxlUGx1Z2luLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MWZhNzNmNmZjYTNk
MWY0ZTYxYTlhNzNmN2IzNjRlNjc0ZDgzZWM5Li43OGI5OTQ3YzVmMWFjZjA5ZjBhNjU5NjA1OGNm
MmE2NDhjNGIwM2JmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDk1Niw2ICs0OTU2LDggQEAKIAkJQzBERkM4NzAwREI2ODQxQTAwM0VBRTdDIC8qIEpT
Q29uc29sZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMERGQzg2RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3VzdG9tLmNwcCAq
LzsgfTsKIAkJQzEwNURBNjIwRjNBQTY4RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9y
SUNVLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMx
MDVEQTYxMEYzQUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi87
IH07CiAJCUMxMDVEQTY0MEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMw
RjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07CisJCUM1MEI1
NjE2MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAv
KiBHcm91cFNldHRpbmdzLmNwcCAqLzsgfTsKKwkJQzUwQjU2MTcxMjExOUQyMzAwOEI0NkUwIC8q
IEdyb3VwU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM1MEI1NjE1MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzUwRDBFODIwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0
b3JhZ2VOYW1lc3BhY2UuY3BwICovOyB9OwogCQlDNTBEMEU4MzBGRjQyNzI5MDBBQzI2NDQgLyog
U3RvcmFnZU5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzUwRDBFODEwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAq
LzsgfTsKIAkJQzUxMDJEOTQwRkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxMDJEOTIw
RkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5oICovOyB9OwpAQCAtMTA3MDgs
NiArMTA3MTAsOCBAQAogCQlDMERGQzg2RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29uc29sZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYxMEYzQUE2OEYw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTBCNTYxNDEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcm91cFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzUwQjU2MTUxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5h
bWVzcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdl
TmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwRDBFODEwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNTEwMkQ5MjBGRDlBQTJEMDBGQUZGMDQgLyogU3RvcmFnZVN5bmNNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VTeW5jTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1MjQsNiArMTI1MjgsOCBAQAogCQkJCTU5NjIy
OTc5MTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCAqLywKIAkJ
CQlGRTgwRDdCQjBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCAqLywKIAkJCQlGRTgw
RDdCQzBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaWRsICovLAorCQkJCUM1MEI1NjE0
MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCAqLywKKwkJCQlDNTBCNTYxNTEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oICovLAogCQkJCTc2OTNCQUNFMTA2QzJE
Q0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBsdWdpbi5oICovLAogCQkJCUJDOTREMTUwMEMyNzVDOEIw
MDZCQzYxNyAvKiBIaXN0b3J5LmNwcCAqLywKIAkJCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcg
LyogSGlzdG9yeS5oICovLApAQCAtMjAxNTYsNiArMjAxNjIsNyBAQAogCQkJCTJFRUQ1NzU4MTIx
MDlFRTQwMDc2NTZCQiAvKiBCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFRUQ1
NzVDMTIxMDlFRjMwMDc2NTZCQiAvKiBCbG9iRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc4
QjZGQ0ExMjEyODgyMTAwMTU5NUVGIC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yMjU4Myw2ICsyMjU5MCw3IEBACiAJCQkJMkVFRDU3NTUxMjEwOUVE
MDAwNzY1NkJCIC8qIEJsb2JVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVFRDU3NUIxMjEw
OUVGMzAwNzY1NkJCIC8qIEJsb2JEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3OEI2RkM5
MTIxMjg4MjEwMDE1OTVFRiAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDNTBCNTYxNjEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBi
L1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGY4MWFjZGI3ODky
ZThjODk0Mzg5YmI0MjY4MTY5ZWYzYWI1ZDViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
YWdlL0dyb3VwU2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0dyb3VwU2V0dGluZ3M6Okdyb3VwU2V0dGluZ3MoKQorICAgIDogbV9sb2NhbFN0b3Jh
Z2VRdW90YUJ5dGVzKDUgKiAxMDI0ICogMTAyNCkgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBz
cGVjLgoreworfQorCit2b2lkIEdyb3VwU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhQnl0
ZXModW5zaWduZWQgcXVvdGEpCit7CisgICAgbV9sb2NhbFN0b3JhZ2VRdW90YUJ5dGVzID0gcXVv
dGE7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCA9
IHBhdGg7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0SW5kZXhlZERCRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aCA9IHBh
dGg7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9Hcm91cFNldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhmODJjZTlkYTkwNDg3Y2Y4NzU5MmMxMWFkNDA2MGFjMjc4M2FlMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworIAorI2lmbmRlZiBHcm91cFNldHRpbmdzX2gKKyNkZWZpbmUgR3JvdXBTZXR0aW5nc19oCisK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZUdyb3VwOworCitjbGFzcyBHcm91
cFNldHRpbmdzIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxHcm91cFNldHRpbmdzPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBHcm91cFNldHRpbmdzKCkpOworICAgIH0KKworICAgIHZvaWQgc2V0TG9jYWxT
dG9yYWdlUXVvdGFCeXRlcyh1bnNpZ25lZCk7CisgICAgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVv
dGFCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlczsgfQorCisg
ICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAg
Y29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBt
X2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQorCisgICAgdm9pZCBzZXRJbmRleGVkREJEYXRh
YmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3QgU3RyaW5nJiBpbmRleGVkREJEYXRh
YmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aDsgfQorCitw
cml2YXRlOgorICAgIEdyb3VwU2V0dGluZ3MoKTsKKworICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9y
YWdlUXVvdGFCeXRlczsKKyAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7Cisg
ICAgU3RyaW5nIG1faW5kZXhlZERCRGF0YWJhc2VQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gR3JvdXBTZXR0aW5nc19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDEy
YjFhNDFjYTRkYjAyMDNjMzkwMjQwMDY4ODNkZjliMzI4NzIzM2QuLjQ4YjllMjRmZWEzMmUwNmY3
MTk5YzRhNDk1YjA5NWE4Y2FmZmI0ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXAuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdyb3VwU2V0dGluZ3MuaCIKICNpbmNsdWRlICJJREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgpAQCAtNTUsNiArNTYsNyBAQCBQYWdlR3JvdXA6OlBhZ2VHcm91cChjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgOiBtX25hbWUobmFtZSkKICAgICAsIG1fdmlzaXRlZExpbmtzUG9w
dWxhdGVkKGZhbHNlKQogICAgICwgbV9pZGVudGlmaWVyKGdldFVuaXF1ZUlkZW50aWZpZXIoKSkK
KyAgICAsIG1fZ3JvdXBTZXR0aW5ncyhHcm91cFNldHRpbmdzOjpjcmVhdGUoKSkKIHsKIH0KIApA
QCAtMTk0LDE2ICsxOTYsOSBAQCB2b2lkIFBhZ2VHcm91cDo6c2V0U2hvdWxkVHJhY2tWaXNpdGVk
TGlua3MoYm9vbCBzaG91bGRUcmFjaykKIFN0b3JhZ2VOYW1lc3BhY2UqIFBhZ2VHcm91cDo6bG9j
YWxTdG9yYWdlKCkKIHsKICAgICBpZiAoIW1fbG9jYWxTdG9yYWdlKSB7Ci0gICAgICAgIC8vIE5l
ZWQgYSBwYWdlIGluIHRoaXMgcGFnZSBncm91cCB0byBxdWVyeSB0aGUgc2V0dGluZ3MgZm9yIHRo
ZSBsb2NhbCBzdG9yYWdlIGRhdGFiYXNlIHBhdGguCi0gICAgICAgIC8vIEhhdmluZyB0aGVzZSBw
YXJhbWV0ZXJzIGF0dGFjaGVkIHRvIHRoZSBwYWdlIHNldHRpbmdzIGlzIHVuZm9ydHVuYXRlIHNp
bmNlIHRoZXNlIHNldHRpbmdzIGFyZQotICAgICAgICAvLyBub3QgcGVyLXBhZ2UgKGFuZCwgaW4g
ZmFjdCwgd2Ugc2ltcGx5IGdyYWIgdGhlIHNldHRpbmdzIGZyb20gc29tZSBwYWdlIGF0IHJhbmRv
bSksIGJ1dAotICAgICAgICAvLyBhdCB0aGlzIHBvaW50IHdlJ3JlIHN0dWNrIHdpdGggaXQuCi0g
ICAgICAgIFBhZ2UqIHBhZ2UgPSAqbV9wYWdlcy5iZWdpbigpOwotICAgICAgICBjb25zdCBTdHJp
bmcmIHBhdGggPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKTsK
LSAgICAgICAgdW5zaWduZWQgcXVvdGEgPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3JhZ2VR
dW90YSgpOwotICAgICAgICBtX2xvY2FsU3RvcmFnZSA9IFN0b3JhZ2VOYW1lc3BhY2U6OmxvY2Fs
U3RvcmFnZU5hbWVzcGFjZShwYXRoLCBxdW90YSk7CisgICAgICAgIG1fbG9jYWxTdG9yYWdlID0g
U3RvcmFnZU5hbWVzcGFjZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlKG1fZ3JvdXBTZXR0aW5ncy0+
bG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBTZXR0aW5ncy0+bG9j
YWxTdG9yYWdlUXVvdGFCeXRlcygpKTsKICAgICB9Ci0KICAgICByZXR1cm4gbV9sb2NhbFN0b3Jh
Z2UuZ2V0KCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
aCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAppbmRleCA5NWRiOGMzOGQyNzYzYTE1ZTRkNmQz
YmMyZGZmM2I3MmYyMGZkZWU4Li4wMjM0YzY1NzEyZmRlMDQzMmQ0MjdjMGJhMjliMjUzNzExYzVh
OWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKKysrIGIvV2ViQ29yZS9w
YWdlL1BhZ2VHcm91cC5oCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIEdyb3VwU2V0dGluZ3M7CiAgICAgY2xhc3MgSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdG9y
YWdlTmFtZXNwYWNlOwpAQCAtOTMsNiArOTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGNvbnN0IFVzZXJTY3JpcHRNYXAqIHVzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gbV91
c2VyU2NyaXB0cy5nZXQoKTsgfQogICAgICAgICBjb25zdCBVc2VyU3R5bGVTaGVldE1hcCogdXNl
clN0eWxlU2hlZXRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldHMuZ2V0KCk7IH0K
IAorICAgICAgICBHcm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4g
bV9ncm91cFNldHRpbmdzLmdldCgpOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rKExpbmtIYXNoIHN0cmluZ0hhc2gpOwogICAgICAgICB2b2lkIHJlc2V0VXNl
clN0eWxlQ2FjaGVJbkFsbEZyYW1lcygpOwpAQCAtMTE0LDYgKzExNyw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBPd25QdHI8VXNlclNjcmlwdE1hcD4gbV91c2VyU2NyaXB0czsK
ICAgICAgICAgT3duUHRyPFVzZXJTdHlsZVNoZWV0TWFwPiBtX3VzZXJTdHlsZVNoZWV0czsKKwor
ICAgICAgICBPd25QdHI8R3JvdXBTZXR0aW5ncz4gbV9ncm91cFNldHRpbmdzOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDg4MWM4ODU4ZjIyZjY3ZGY2
MTg1NDMzNWU3NzJkYjRkYjk3NGNkYmEuLjg5YmM1ODk1NjY3OGViYmYyYjgzODQ2YzRmMjcyMjkw
ZjEyZGM1OWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjQsMTAgKzY0LDcgQEAgU2V0dGluZ3M6OlNldHRp
bmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2RlZmF1bHRGb250U2l6ZSgwKQogICAgICwgbV9kZWZh
dWx0Rml4ZWRGb250U2l6ZSgwKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAg
ICAgICAgCi0gICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1
Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KICAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShT
dG9yYWdlTWFwOjpub1F1b3RhKQotI2VuZGlmCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1l
KG51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCiAgICAgLCBtX3pvb21Nb2RlKFpvb21Q
YWdlKQogICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKQEAgLTI5MCwx
NyArMjg3LDEwIEBAIHZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBs
b2NhbFN0b3JhZ2VFbmFibGVkKQogICAgIG1fbG9jYWxTdG9yYWdlRW5hYmxlZCA9IGxvY2FsU3Rv
cmFnZUVuYWJsZWQ7CiB9CiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLXZvaWQg
U2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3Rh
KQotewotICAgIG1fbG9jYWxTdG9yYWdlUXVvdGEgPSBsb2NhbFN0b3JhZ2VRdW90YTsKLX0KLQog
dm9pZCBTZXR0aW5nczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3Rv
cmFnZVF1b3RhKQogewogICAgIG1fc2Vzc2lvblN0b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdl
UXVvdGE7CiB9Ci0jZW5kaWYKIAogdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CkBAIC00ODMsMTEgKzQ3Myw2IEBA
IHZvaWQgU2V0dGluZ3M6OnNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA9IGVuYWJsZWQ7
CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBT
dHJpbmcmIHBhdGgpCi17Ci0gICAgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwot
fQotCiB2b2lkIFNldHRpbmdzOjpzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCBtb2RlKQog
ewogICAgIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGUgPSBtb2RlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBhZTNl
YmVhZDJmYzdhMTE1ODA5NzFiZmQ3MmQ1YzhhMTRlNWUwMDU5Li5kZDJiNzM2MGUxYzM2OWQ5ZWMz
MWE0MmM5ZGRkOWE4ZmExOGEzODgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTI5LDE2ICsxMjksMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9v
bCk7CiAgICAgICAgIGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9jYWxTdG9yYWdlRW5hYmxlZDsgfQogCi0jaWYgRU5BQkxFKERPTV9TVE9SQUdFKSAgICAgICAg
Ci0gICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlUXVvdGEodW5zaWduZWQpOwotICAgICAgICB1
bnNpZ25lZCBsb2NhbFN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdl
UXVvdGE7IH0KLQogICAgICAgICAvLyBBbGxvdyBjbGllbnRzIGNvbmNlcm5lZCB3aXRoIG1lbW9y
eSBjb25zdW1wdGlvbiB0byBzZXQgYSBxdW90YSBvbiBzZXNzaW9uIHN0b3JhZ2UKICAgICAgICAg
Ly8gc2luY2UgdGhlIG1lbW9yeSB1c2VkIHdvbid0IGJlIHJlbGVhc2VkIHVudGlsIHRoZSBQYWdl
IGlzIGRlc3Ryb3llZC4KICAgICAgICAgLy8gRGVmYXVsdCBpcyBub1F1b3RhLgogICAgICAgICB2
b2lkIHNldFNlc3Npb25TdG9yYWdlUXVvdGEodW5zaWduZWQpOwogICAgICAgICB1bnNpZ25lZCBz
ZXNzaW9uU3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uU3RvcmFnZVF1b3Rh
OyB9Ci0jZW5kaWYKIAogICAgICAgICAvLyBXaGVuIHRoaXMgb3B0aW9uIGlzIHNldCwgV2ViQ29y
ZSB3aWxsIGF2b2lkIHN0b3JpbmcgYW55IHJlY29yZCBvZiBicm93c2luZyBhY3Rpdml0eQogICAg
ICAgICAvLyB0aGF0IG1heSBwZXJzaXN0IG9uIGRpc2sgb3IgcmVtYWluIGRpc3BsYXllZCB3aGVu
IHRoZSBvcHRpb24gaXMgcmVzZXQuCkBAIC0yMzksOSArMjM0LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgc2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZChi
b29sKTsKICAgICAgICAgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkOyB9Ci0KLSAgICAg
ICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJik7Ci0gICAg
ICAgIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCkgY29uc3QgeyByZXR1
cm4gbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7IH0KICAgICAgICAgCiAgICAgICAgIHZvaWQg
c2V0QXBwbGljYXRpb25DaHJvbWVNb2RlKGJvb2wpOwogICAgICAgICBib29sIGluQXBwbGljYXRp
b25DaHJvbWVNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZTsg
fQpAQCAtMzM5LDcgKzMzMSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgCiAgICAg
ICAgIFN0cmluZyBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lOwogICAgICAgICBTdHJpbmcgbV9m
dHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGg7Ci0gICAgICAgIFN0cmluZyBtX2xvY2FsU3RvcmFnZURh
dGFiYXNlUGF0aDsKICAgICAgICAgS1VSTCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAgICAg
ICAgIEF0b21pY1N0cmluZyBtX3N0YW5kYXJkRm9udEZhbWlseTsKICAgICAgICAgQXRvbWljU3Ry
aW5nIG1fZml4ZWRGb250RmFtaWx5OwpAQCAtMzU0LDEwICszNDUsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGludCBtX2RlZmF1bHRGb250U2l6ZTsKICAgICAgICAgaW50IG1fZGVm
YXVsdEZpeGVkRm9udFNpemU7CiAgICAgICAgIHNpemVfdCBtX21heGltdW1EZWNvZGVkSW1hZ2VT
aXplOwotI2lmIEVOQUJMRShET01fU1RPUkFHRSkgICAgICAgIAotICAgICAgICB1bnNpZ25lZCBt
X2xvY2FsU3RvcmFnZVF1b3RhOwogICAgICAgICB1bnNpZ25lZCBtX3Nlc3Npb25TdG9yYWdlUXVv
dGE7Ci0jZW5kaWYKICAgICAgICAgdW5zaWduZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGltZTsKICAg
ICAgICAgWm9vbU1vZGUgbV96b29tTW9kZTsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkIDogMTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZjRlZjVjMzI0NWY4NjYyZjNkNTkwNjczYTI1NDU4Yjk5
YjRmZWNiMC4uNTQzNDViNTAwYzc3YjBhMDQzNzA1MGQ4MWNhZDg3YWI0YmY3MjUwMyAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMC0wOC0xMCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
b21lIHNldHRpbmdzIGFyZSBsaW5rZWQgdG8gdGhlIFBhZ2VHcm91cCBub3QgdGhlIFBhZ2UuICBD
cmVhdGUgYSBuZXcgY2xhc3MgZm9yIHRob3NlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM3OTQKKworICAgICAgICBDaGFuZ2UgV2ViVmlldyB0byB1
c2UgdGhlIG5ldyBHcm91cFNldHRpbmdzIGNsYXNzIHJhdGhlciB0aGFuIFNldHRpbmdzIGZvciB0
aGUKKyAgICAgICAgc2V0dGluZ3MgdGhhdCBtb3ZlZC4gIFRoaXMgaXMgc3ViLW9wdGltYWwgc2lu
Y2UgdGhlIHNldHRpbmdzIGFyZW4ndCByZWFsbHkKKyAgICAgICAgcGVyLXZpZXcsIGJ1dCB3ZSBj
YW4ndCByZWFsbHkgY2hhbmdlIHRoZSBBUEkgYXQgdGhpcyBwb2ludC4KKworICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRp
b25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTp1c2VzRG9jdW1lbnRWaWV3czpdKToKKyAgICAgICAg
KC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOgorCiAyMDEwLTA4
LTEwICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdWlsZCBmaXggKHVwZGF0ZSBtb3JlIGluY2x1ZGVzKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCBhZWZkNTZiN2M0Mzc4YjY2ODRiNmJiMGM1MDExYmJmZWM5ZjJmNWFjLi5kOGJjOTE0ZDVkNDE2
YTNjNzVhMWQ1MzkzM2E3N2U4OGEzNGU4NmNhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTI2
LDYgKzEyNiw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVHJlZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvR0NDb250cm9sbGVyLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0dyb3VwU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlh
RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvSGlzdG9yeUl0ZW0uaD4KQEAgLTY4Niw3ICs2ODcsMTAgQEAgc3RhdGljIGJvb2wgc2hvdWxk
RW5hYmxlTG9hZERlZmVycmluZygpCiAgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdl
Q2xpZW50cyk7CiAKICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0Q2FuU3RhcnRNZWRpYShbc2VsZiB3
aW5kb3ddKTsKLSAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0TG9jYWxTdG9yYWdl
RGF0YWJhc2VQYXRoKFtbc2VsZiBwcmVmZXJlbmNlc10gX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aF0pOworCisgICAgLy8gRklYTUU6IFdoZW5ldmVyIGFueSBmdXR1cmUgZ3JvdXBTZXR0aW5ncyBu
ZWVkIHRvIGJlIGV4cG9zZWQgdG8gdGhlIGVtYmVkZGVyLCB0aGV5IHNob3VsZCBOT1QgYmUgZXhw
b3NlZAorICAgIC8vICAgICAgICB2aWEgdGhlIFdlYlZpZXcgc2luY2UgdGhleSBhcmVuJ3QgYWN0
dWFsbHkgcGVyLXZpZXcgc2V0dGluZ3MuCisgICAgX3ByaXZhdGUtPnBhZ2UtPmdyb3VwKCkuZ3Jv
dXBTZXR0aW5ncygpLT5zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoW1tzZWxmIHByZWZlcmVu
Y2VzXSBfbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoXSk7CiAKICAgICBbV2ViRnJhbWUgX2NyZWF0
ZU1haW5GcmFtZVdpdGhQYWdlOl9wcml2YXRlLT5wYWdlIGZyYW1lTmFtZTpmcmFtZU5hbWUgZnJh
bWVWaWV3OmZyYW1lVmlld107CiAKQEAgLTEzNjQsNyArMTM2OCwxMSBAQCBzdGF0aWMgYm9vbCBm
YXN0RG9jdW1lbnRUZWFyZG93bkVuYWJsZWQoKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAg
U2V0dGluZ3MqIHNldHRpbmdzID0gX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCk7Ci0gICAgCisK
KyAgICAvLyBGSVhNRTogV2hlbmV2ZXIgYW55IGZ1dHVyZSBncm91cFNldHRpbmdzIG5lZWQgdG8g
YmUgZXhwb3NlZCB0byB0aGUgZW1iZWRkZXIsIHRoZXkgc2hvdWxkIE5PVCBiZSBleHBvc2VkCisg
ICAgLy8gICAgICAgIHZpYSB0aGUgV2ViVmlldyBzaW5jZSB0aGV5IGFyZW4ndCBhY3R1YWxseSBw
ZXItdmlldyBzZXR0aW5ncy4KKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z3JvdXAoKS5ncm91cFNldHRp
bmdzKCktPnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChbcHJlZmVyZW5jZXMgX2xvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aF0pOworCiAgICAgc2V0dGluZ3MtPnNldEN1cnNpdmVGb250RmFtaWx5
KFtwcmVmZXJlbmNlcyBjdXJzaXZlRm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXREZWZh
dWx0Rml4ZWRGb250U2l6ZShbcHJlZmVyZW5jZXMgZGVmYXVsdEZpeGVkRm9udFNpemVdKTsKICAg
ICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKFtwcmVmZXJlbmNlcyBkZWZhdWx0Rm9udFNp
emVdKTsKQEAgLTEzNzQsNyArMTM4Miw2IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJk
b3duRW5hYmxlZCgpCiAgICAgc2V0dGluZ3MtPnNldEZpeGVkRm9udEZhbWlseShbcHJlZmVyZW5j
ZXMgZml4ZWRGb250RmFtaWx5XSk7CiAgICAgc2V0dGluZ3MtPnNldEZvcmNlRlRQRGlyZWN0b3J5
TGlzdGluZ3MoW3ByZWZlcmVuY2VzIF9mb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzXSk7CiAgICAg
c2V0dGluZ3MtPnNldEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aChbcHJlZmVyZW5jZXMgX2Z0cERp
cmVjdG9yeVRlbXBsYXRlUGF0aF0pOwotICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoW3ByZWZlcmVuY2VzIF9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhdKTsKICAgICBz
ZXR0aW5ncy0+c2V0SmF2YUVuYWJsZWQoW3ByZWZlcmVuY2VzIGlzSmF2YUVuYWJsZWRdKTsKICAg
ICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoW3ByZWZlcmVuY2VzIGlzSmF2YVNjcmlw
dEVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0V2ViU2VjdXJpdHlFbmFibGVkKFtwcmVmZXJl
bmNlcyBpc1dlYlNlY3VyaXR5RW5hYmxlZF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64095</attachid>
            <date>2010-08-11 04:37:31 -0700</date>
            <delta_ts>2010-08-11 06:19:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43794-20100811123728.patch</filename>
            <type>text/plain</type>
            <size>27192</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBhYzg5NGYxMTM0ZjU5ZjFiZDU0ODdlOTlhNzEzOTNkN2Q1ZWMwYmJiLi44Y2Y4NThlODhiZTAy
YmMwMWQzMGEwYzc3Y2QzZDM0OTY0ODY2ZTBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzIsNiArMzcyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlw
YWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAJcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3Bw
IFwKKwlwYWdlL0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlwYWdlL0hpc3RvcnkuY3BwIFwKIAlwYWdl
L0xvY2F0aW9uLmNwcCBcCiAJcGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA3NTQ0NWMyMDIwODliZjMwYjU0NmNmNTY2MjQ1MjEyODI5OTdiYTcyLi4wODI1
ZGRiYjE1OTkxMDE1NDVkNWRlNTAzY2NhMzdmMGRmYzA0M2I2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjUsNiAr
MTE2NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNwcAog
ICAgIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKICAgICBwYWdlL0hp
c3RvcnkuY3BwCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAKICAgICBwYWdlL01lbW9yeUluZm8uY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDFjZjI3ODBiMzFiNWU1NGUzMGQzYTFiMmU1MjU4OWRhNDlhMzdhMjIuLmYzYzYyNGUyMmY2NjE2
NjExOGRlZjA5MjBmOGNjZjBhNjUwN2U5OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTAgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0aW5ncyBhcmUgbGlua2VkIHRvIHRo
ZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3IGNsYXNzIGZvciB0aG9zZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzk0CisK
KyAgICAgICAgU2luY2UgcGVyc2lzdGllbnQgc3RvcmFnZSBpcyBzaGFyZWQgYmV0d2VlbiBwYWdl
cywgdGhlcmUncyBubyB3YXkgdG8gbW9kaWZ5CisgICAgICAgIHNvbWUgc2V0dGluZ3MgcmVsYXRl
ZCB0byBpdCBvbiBhIHBlciBwYWdlIGJhc2lzLiAgQXMgc3VjaCwgaXQncyBub3QgdGVjaG5pY2Fs
bHkKKyAgICAgICAgY29ycmVjdCBmb3IgdGhlc2Ugc2V0dGluZ3MgdG8gYmUgb24gdGhlIFBhZ2Un
cyBzZXR0aW5ncy4gIENyZWF0ZSBhIG5ldyBjbGFzcworICAgICAgICBjYWxsZWQgR3JvdXBTZXR0
aW5ncywgbW92ZSB0aGUgMiBncm91cC13aWRlIGxvY2FsIHN0b3JhZ2Ugc2V0dGluZ3MgdGhlcmUs
IGFuZAorICAgICAgICBhZGQgYSBuZXcgc2V0dGluZyBmb3IgSW5kZXhlZERCJ3MgcGF0aCAod2hp
Y2ggaXMgcHJvbXB0aW5nIHRoaXMgY2hhbmdlKS4KKworICAgICAgICBObyBiZWhhdmlvciBoYXMg
Y2hhbmdlZCwgc28gbm8gdGVzdHMuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdl
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpQYWdlR3JvdXApOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpsb2NhbFN0b3JhZ2UpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6Omdyb3VwU2V0dGluZ3Mp
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTZXNzaW9uU3Rv
cmFnZVF1b3RhKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisKIDIwMTAtMDgtMTEgIEZ1
bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXggb2YgTGVvcGFyZCBJbnRlbCBEZWJ1ZyAoQnVpbGQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxYTYxNDc1
ODMxNzg3OTFlYjVhNjg3N2EwOWY3YmU3MGJkMzYxYzBlLi5iNGU5MmJiMDc5ZGE2MTFhMDRmMTIy
ZGU1YjM3NDc5YjM0MmIzZTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE4MDIsNiArMTgwMiw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAg
XAogCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCBcCiAJV2ViQ29yZS9w
YWdlL0dlb3Bvc2l0aW9uLmggXAorCVdlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmggXAogCVdl
YkNvcmUvcGFnZS9IYWx0YWJsZVBsdWdpbi5oIFwKIAlXZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAg
XAogCVdlYkNvcmUvcGFnZS9IaXN0b3J5LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMmRhNGRlZTA4ZDRlY2YwZDZj
YjYwYWNmYWFjZDRlYTA4OTQ1NmQ5Ny4uZWJhMjdkODk2NTFiYzg4NGE5NTIzMTBiNGFjNWFiZTUw
MGI1ZjIyMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC02NzgsNiArNjc4LDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50
MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdgogX19aTjdXZWJDb3JlOERv
Y3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dl
YkNvcmU4Rm9ybURhdGFEMUV2CitfX1pON1dlYkNvcmUxM0dyb3VwU2V0dGluZ3MyN3NldExvY2Fs
U3RvcmFnZURhdGFiYXNlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThJbnRQb2lu
dEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4UG9zaXRpb25DMUVOM1dURjEwUGFzc1JlZlB0
cklOU180Tm9kZUVFRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczExc2V0Wm9vbU1vZGVFTlNfOFpv
b21Nb2RlRQpAQCAtNzIyLDcgKzcyMyw2IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MyNnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3
c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyOHNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyOXNldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkRWIKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTBj
MmQxNDBhYzZiYmZkNzNmNzU1YzM3OTAwM2MwNzIxOWU1MGIwMy4uMDBkNTk5OTM3MzJkNzE5MjRj
NDVmZTY4NWUwZDA4OTgwMmZmOTZmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwMjAsNiArMjAyMCw4IEBACiAgICAgICAg
ICAgICAncGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdw
YWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oJywKICAgICAgICAgICAgICdwYWdlL0dlb3Bv
c2l0aW9uLmgnLAorICAgICAgICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAnLAorICAgICAg
ICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5ncy5oJywKICAgICAgICAgICAgICdwYWdlL0hhbHRhYmxl
UGx1Z2luLmgnLAogICAgICAgICAgICAgJ3BhZ2UvSGlzdG9yeS5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvSGlzdG9yeS5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDBlNjNhZjhhMTY3MTgwMGE3YzQ0OWUyYTg3OTA1MjQ0YzYy
Y2ZmNzIuLjkwOTE3YmY2ZDcyNmZlZjRkMjg3ODU0MDg2MWZkMjQ1NWExZGE4OTIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODQx
LDYgKzg0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKICAg
ICBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcCBcCisgICAgcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBcCiAgICAgcGFn
ZS9IaXN0b3J5LmNwcCBcCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAgXAogICAgIHBhZ2UvTWVtb3J5
SW5mby5jcHAgXApAQCAtMTYyMiw2ICsxNjIzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9H
ZW9sb2NhdGlvbi5oIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKICAg
ICBwYWdlL0dlb3Bvc2l0aW9uLmggXAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKICAgICBw
YWdlL0hhbHRhYmxlUGx1Z2luLmggXAogICAgIHBhZ2UvSGlzdG9yeS5oIFwKICAgICBwYWdlL0xv
Y2F0aW9uLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggY2YwOTg4
YWI1OThmOTcxMDE1ODI2MWYzOGMxM2U0MWI3ZWFhYTgyMy4uMDJmM2YxZTkxNmQyMzQ1MjVhMTQ2
YTRlYWE0NmQ2ZWM2ZjM5YmFhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yMjMxNyw2ICsyMjMxNywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdyb3VwU2V0dGluZ3MuY3BwIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHcm91cFNl
dHRpbmdzLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXEhhbHRhYmxlUGx1Z2luLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MWZhNzNmNmZjYTNk
MWY0ZTYxYTlhNzNmN2IzNjRlNjc0ZDgzZWM5Li43OGI5OTQ3YzVmMWFjZjA5ZjBhNjU5NjA1OGNm
MmE2NDhjNGIwM2JmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDk1Niw2ICs0OTU2LDggQEAKIAkJQzBERkM4NzAwREI2ODQxQTAwM0VBRTdDIC8qIEpT
Q29uc29sZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMERGQzg2RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3VzdG9tLmNwcCAq
LzsgfTsKIAkJQzEwNURBNjIwRjNBQTY4RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9y
SUNVLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMx
MDVEQTYxMEYzQUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi87
IH07CiAJCUMxMDVEQTY0MEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMw
RjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07CisJCUM1MEI1
NjE2MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAv
KiBHcm91cFNldHRpbmdzLmNwcCAqLzsgfTsKKwkJQzUwQjU2MTcxMjExOUQyMzAwOEI0NkUwIC8q
IEdyb3VwU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM1MEI1NjE1MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzUwRDBFODIwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0
b3JhZ2VOYW1lc3BhY2UuY3BwICovOyB9OwogCQlDNTBEMEU4MzBGRjQyNzI5MDBBQzI2NDQgLyog
U3RvcmFnZU5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzUwRDBFODEwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAq
LzsgfTsKIAkJQzUxMDJEOTQwRkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxMDJEOTIw
RkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5oICovOyB9OwpAQCAtMTA3MDgs
NiArMTA3MTAsOCBAQAogCQlDMERGQzg2RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29uc29sZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYxMEYzQUE2OEYw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTBCNTYxNDEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcm91cFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzUwQjU2MTUxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5h
bWVzcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdl
TmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwRDBFODEwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNTEwMkQ5MjBGRDlBQTJEMDBGQUZGMDQgLyogU3RvcmFnZVN5bmNNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VTeW5jTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1MjQsNiArMTI1MjgsOCBAQAogCQkJCTU5NjIy
OTc5MTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCAqLywKIAkJ
CQlGRTgwRDdCQjBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCAqLywKIAkJCQlGRTgw
RDdCQzBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaWRsICovLAorCQkJCUM1MEI1NjE0
MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCAqLywKKwkJCQlDNTBCNTYxNTEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oICovLAogCQkJCTc2OTNCQUNFMTA2QzJE
Q0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBsdWdpbi5oICovLAogCQkJCUJDOTREMTUwMEMyNzVDOEIw
MDZCQzYxNyAvKiBIaXN0b3J5LmNwcCAqLywKIAkJCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcg
LyogSGlzdG9yeS5oICovLApAQCAtMjAxNTYsNiArMjAxNjIsNyBAQAogCQkJCTJFRUQ1NzU4MTIx
MDlFRTQwMDc2NTZCQiAvKiBCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFRUQ1
NzVDMTIxMDlFRjMwMDc2NTZCQiAvKiBCbG9iRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc4
QjZGQ0ExMjEyODgyMTAwMTU5NUVGIC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yMjU4Myw2ICsyMjU5MCw3IEBACiAJCQkJMkVFRDU3NTUxMjEwOUVE
MDAwNzY1NkJCIC8qIEJsb2JVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVFRDU3NUIxMjEw
OUVGMzAwNzY1NkJCIC8qIEJsb2JEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3OEI2RkM5
MTIxMjg4MjEwMDE1OTVFRiAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDNTBCNTYxNjEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBi
L1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGY4MWFjZGI3ODky
ZThjODk0Mzg5YmI0MjY4MTY5ZWYzYWI1ZDViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
YWdlL0dyb3VwU2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0dyb3VwU2V0dGluZ3M6Okdyb3VwU2V0dGluZ3MoKQorICAgIDogbV9sb2NhbFN0b3Jh
Z2VRdW90YUJ5dGVzKDUgKiAxMDI0ICogMTAyNCkgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBz
cGVjLgoreworfQorCit2b2lkIEdyb3VwU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhQnl0
ZXModW5zaWduZWQgcXVvdGEpCit7CisgICAgbV9sb2NhbFN0b3JhZ2VRdW90YUJ5dGVzID0gcXVv
dGE7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCA9
IHBhdGg7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0SW5kZXhlZERCRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aCA9IHBh
dGg7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9Hcm91cFNldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhmODJjZTlkYTkwNDg3Y2Y4NzU5MmMxMWFkNDA2MGFjMjc4M2FlMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworIAorI2lmbmRlZiBHcm91cFNldHRpbmdzX2gKKyNkZWZpbmUgR3JvdXBTZXR0aW5nc19oCisK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZUdyb3VwOworCitjbGFzcyBHcm91
cFNldHRpbmdzIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxHcm91cFNldHRpbmdzPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBHcm91cFNldHRpbmdzKCkpOworICAgIH0KKworICAgIHZvaWQgc2V0TG9jYWxT
dG9yYWdlUXVvdGFCeXRlcyh1bnNpZ25lZCk7CisgICAgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVv
dGFCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlczsgfQorCisg
ICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAg
Y29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBt
X2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQorCisgICAgdm9pZCBzZXRJbmRleGVkREJEYXRh
YmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3QgU3RyaW5nJiBpbmRleGVkREJEYXRh
YmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aDsgfQorCitw
cml2YXRlOgorICAgIEdyb3VwU2V0dGluZ3MoKTsKKworICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9y
YWdlUXVvdGFCeXRlczsKKyAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7Cisg
ICAgU3RyaW5nIG1faW5kZXhlZERCRGF0YWJhc2VQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gR3JvdXBTZXR0aW5nc19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDEy
YjFhNDFjYTRkYjAyMDNjMzkwMjQwMDY4ODNkZjliMzI4NzIzM2QuLjQ4YjllMjRmZWEzMmUwNmY3
MTk5YzRhNDk1YjA5NWE4Y2FmZmI0ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXAuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdyb3VwU2V0dGluZ3MuaCIKICNpbmNsdWRlICJJREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgpAQCAtNTUsNiArNTYsNyBAQCBQYWdlR3JvdXA6OlBhZ2VHcm91cChjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgOiBtX25hbWUobmFtZSkKICAgICAsIG1fdmlzaXRlZExpbmtzUG9w
dWxhdGVkKGZhbHNlKQogICAgICwgbV9pZGVudGlmaWVyKGdldFVuaXF1ZUlkZW50aWZpZXIoKSkK
KyAgICAsIG1fZ3JvdXBTZXR0aW5ncyhHcm91cFNldHRpbmdzOjpjcmVhdGUoKSkKIHsKIH0KIApA
QCAtMTk0LDE2ICsxOTYsOSBAQCB2b2lkIFBhZ2VHcm91cDo6c2V0U2hvdWxkVHJhY2tWaXNpdGVk
TGlua3MoYm9vbCBzaG91bGRUcmFjaykKIFN0b3JhZ2VOYW1lc3BhY2UqIFBhZ2VHcm91cDo6bG9j
YWxTdG9yYWdlKCkKIHsKICAgICBpZiAoIW1fbG9jYWxTdG9yYWdlKSB7Ci0gICAgICAgIC8vIE5l
ZWQgYSBwYWdlIGluIHRoaXMgcGFnZSBncm91cCB0byBxdWVyeSB0aGUgc2V0dGluZ3MgZm9yIHRo
ZSBsb2NhbCBzdG9yYWdlIGRhdGFiYXNlIHBhdGguCi0gICAgICAgIC8vIEhhdmluZyB0aGVzZSBw
YXJhbWV0ZXJzIGF0dGFjaGVkIHRvIHRoZSBwYWdlIHNldHRpbmdzIGlzIHVuZm9ydHVuYXRlIHNp
bmNlIHRoZXNlIHNldHRpbmdzIGFyZQotICAgICAgICAvLyBub3QgcGVyLXBhZ2UgKGFuZCwgaW4g
ZmFjdCwgd2Ugc2ltcGx5IGdyYWIgdGhlIHNldHRpbmdzIGZyb20gc29tZSBwYWdlIGF0IHJhbmRv
bSksIGJ1dAotICAgICAgICAvLyBhdCB0aGlzIHBvaW50IHdlJ3JlIHN0dWNrIHdpdGggaXQuCi0g
ICAgICAgIFBhZ2UqIHBhZ2UgPSAqbV9wYWdlcy5iZWdpbigpOwotICAgICAgICBjb25zdCBTdHJp
bmcmIHBhdGggPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKTsK
LSAgICAgICAgdW5zaWduZWQgcXVvdGEgPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3JhZ2VR
dW90YSgpOwotICAgICAgICBtX2xvY2FsU3RvcmFnZSA9IFN0b3JhZ2VOYW1lc3BhY2U6OmxvY2Fs
U3RvcmFnZU5hbWVzcGFjZShwYXRoLCBxdW90YSk7CisgICAgICAgIG1fbG9jYWxTdG9yYWdlID0g
U3RvcmFnZU5hbWVzcGFjZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlKG1fZ3JvdXBTZXR0aW5ncy0+
bG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBTZXR0aW5ncy0+bG9j
YWxTdG9yYWdlUXVvdGFCeXRlcygpKTsKICAgICB9Ci0KICAgICByZXR1cm4gbV9sb2NhbFN0b3Jh
Z2UuZ2V0KCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
aCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAppbmRleCA5NWRiOGMzOGQyNzYzYTE1ZTRkNmQz
YmMyZGZmM2I3MmYyMGZkZWU4Li4wMjM0YzY1NzEyZmRlMDQzMmQ0MjdjMGJhMjliMjUzNzExYzVh
OWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKKysrIGIvV2ViQ29yZS9w
YWdlL1BhZ2VHcm91cC5oCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIEdyb3VwU2V0dGluZ3M7CiAgICAgY2xhc3MgSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdG9y
YWdlTmFtZXNwYWNlOwpAQCAtOTMsNiArOTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGNvbnN0IFVzZXJTY3JpcHRNYXAqIHVzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gbV91
c2VyU2NyaXB0cy5nZXQoKTsgfQogICAgICAgICBjb25zdCBVc2VyU3R5bGVTaGVldE1hcCogdXNl
clN0eWxlU2hlZXRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldHMuZ2V0KCk7IH0K
IAorICAgICAgICBHcm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4g
bV9ncm91cFNldHRpbmdzLmdldCgpOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rKExpbmtIYXNoIHN0cmluZ0hhc2gpOwogICAgICAgICB2b2lkIHJlc2V0VXNl
clN0eWxlQ2FjaGVJbkFsbEZyYW1lcygpOwpAQCAtMTE0LDYgKzExNyw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBPd25QdHI8VXNlclNjcmlwdE1hcD4gbV91c2VyU2NyaXB0czsK
ICAgICAgICAgT3duUHRyPFVzZXJTdHlsZVNoZWV0TWFwPiBtX3VzZXJTdHlsZVNoZWV0czsKKwor
ICAgICAgICBPd25QdHI8R3JvdXBTZXR0aW5ncz4gbV9ncm91cFNldHRpbmdzOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDg4MWM4ODU4ZjIyZjY3ZGY2
MTg1NDMzNWU3NzJkYjRkYjk3NGNkYmEuLjg5YmM1ODk1NjY3OGViYmYyYjgzODQ2YzRmMjcyMjkw
ZjEyZGM1OWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjQsMTAgKzY0LDcgQEAgU2V0dGluZ3M6OlNldHRp
bmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2RlZmF1bHRGb250U2l6ZSgwKQogICAgICwgbV9kZWZh
dWx0Rml4ZWRGb250U2l6ZSgwKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAg
ICAgICAgCi0gICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1
Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KICAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShT
dG9yYWdlTWFwOjpub1F1b3RhKQotI2VuZGlmCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1l
KG51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCiAgICAgLCBtX3pvb21Nb2RlKFpvb21Q
YWdlKQogICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKQEAgLTI5MCwx
NyArMjg3LDEwIEBAIHZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBs
b2NhbFN0b3JhZ2VFbmFibGVkKQogICAgIG1fbG9jYWxTdG9yYWdlRW5hYmxlZCA9IGxvY2FsU3Rv
cmFnZUVuYWJsZWQ7CiB9CiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLXZvaWQg
U2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3Rh
KQotewotICAgIG1fbG9jYWxTdG9yYWdlUXVvdGEgPSBsb2NhbFN0b3JhZ2VRdW90YTsKLX0KLQog
dm9pZCBTZXR0aW5nczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3Rv
cmFnZVF1b3RhKQogewogICAgIG1fc2Vzc2lvblN0b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdl
UXVvdGE7CiB9Ci0jZW5kaWYKIAogdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CkBAIC00ODMsMTEgKzQ3Myw2IEBA
IHZvaWQgU2V0dGluZ3M6OnNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA9IGVuYWJsZWQ7
CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBT
dHJpbmcmIHBhdGgpCi17Ci0gICAgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwot
fQotCiB2b2lkIFNldHRpbmdzOjpzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCBtb2RlKQog
ewogICAgIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGUgPSBtb2RlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBhZTNl
YmVhZDJmYzdhMTE1ODA5NzFiZmQ3MmQ1YzhhMTRlNWUwMDU5Li5jYTRjMzlhYTZhMjBlYzBjZmU2
Y2Q0MTQzMjliYTAwNjZkYWI0ZjBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtNTUsNiArNTUsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBTZXR0aW5ncyhQYWdlKik7CiAKKyAg
ICAgICAgUGFnZSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorCiAgICAgICAgIHZv
aWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhbmRhcmRGb250RmFtaWx5OyB9CiAKQEAgLTEyOSwxNiArMTMxLDExIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGJvb2wpOwogICAg
ICAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3Rv
cmFnZUVuYWJsZWQ7IH0KIAotI2lmIEVOQUJMRShET01fU1RPUkFHRSkgICAgICAgIAotICAgICAg
ICB2b2lkIHNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKLSAgICAgICAgdW5zaWduZWQg
bG9jYWxTdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZVF1b3RhOyB9
Ci0KICAgICAgICAgLy8gQWxsb3cgY2xpZW50cyBjb25jZXJuZWQgd2l0aCBtZW1vcnkgY29uc3Vt
cHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBzdG9yYWdlCiAgICAgICAgIC8vIHNpbmNl
IHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNlZCB1bnRpbCB0aGUgUGFnZSBpcyBkZXN0
cm95ZWQuCiAgICAgICAgIC8vIERlZmF1bHQgaXMgbm9RdW90YS4KICAgICAgICAgdm9pZCBzZXRT
ZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKICAgICAgICAgdW5zaWduZWQgc2Vzc2lvblN0
b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsgfQotI2Vu
ZGlmCiAKICAgICAgICAgLy8gV2hlbiB0aGlzIG9wdGlvbiBpcyBzZXQsIFdlYkNvcmUgd2lsbCBh
dm9pZCBzdG9yaW5nIGFueSByZWNvcmQgb2YgYnJvd3NpbmcgYWN0aXZpdHkKICAgICAgICAgLy8g
dGhhdCBtYXkgcGVyc2lzdCBvbiBkaXNrIG9yIHJlbWFpbiBkaXNwbGF5ZWQgd2hlbiB0aGUgb3B0
aW9uIGlzIHJlc2V0LgpAQCAtMjM5LDkgKzIzNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCk7CiAg
ICAgICAgIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQg
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25z
dCBTdHJpbmcmIGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoOyB9CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldEFwcGxp
Y2F0aW9uQ2hyb21lTW9kZShib29sKTsKICAgICAgICAgYm9vbCBpbkFwcGxpY2F0aW9uQ2hyb21l
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGU7IH0KQEAgLTMz
OSw3ICszMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICBTdHJp
bmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKICAgICAgICAgU3RyaW5nIG1fZnRwRGlyZWN0
b3J5VGVtcGxhdGVQYXRoOwotICAgICAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGg7CiAgICAgICAgIEtVUkwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogICAgICAgICBBdG9t
aWNTdHJpbmcgbV9zdGFuZGFyZEZvbnRGYW1pbHk7CiAgICAgICAgIEF0b21pY1N0cmluZyBtX2Zp
eGVkRm9udEZhbWlseTsKQEAgLTM1NCwxMCArMzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBpbnQgbV9kZWZhdWx0Rm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1bHRGaXhl
ZEZvbnRTaXplOwogICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsKLSNp
ZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLSAgICAgICAgdW5zaWduZWQgbV9sb2NhbFN0
b3JhZ2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9zZXNzaW9uU3RvcmFnZVF1b3RhOwotI2Vu
ZGlmCiAgICAgICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWU7CiAgICAgICAgIFpv
b21Nb2RlIG1fem9vbU1vZGU7CiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCA6IDE7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IGY0ZWY1YzMyNDVmODY2MmYzZDU5MDY3M2EyNTQ1OGI5OWI0ZmVjYjAu
LjU0MzQ1YjUwMGM3N2IwYTA0MzcwNTBkODFjYWQ4N2FiNGJmNzI1MDMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMDgtMTAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0
aW5ncyBhcmUgbGlua2VkIHRvIHRoZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEg
bmV3IGNsYXNzIGZvciB0aG9zZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQzNzk0CisKKyAgICAgICAgQ2hhbmdlIFdlYlZpZXcgdG8gdXNlIHRoZSBu
ZXcgR3JvdXBTZXR0aW5ncyBjbGFzcyByYXRoZXIgdGhhbiBTZXR0aW5ncyBmb3IgdGhlCisgICAg
ICAgIHNldHRpbmdzIHRoYXQgbW92ZWQuICBUaGlzIGlzIHN1Yi1vcHRpbWFsIHNpbmNlIHRoZSBz
ZXR0aW5ncyBhcmVuJ3QgcmVhbGx5CisgICAgICAgIHBlci12aWV3LCBidXQgd2UgY2FuJ3QgcmVh
bGx5IGNoYW5nZSB0aGUgQVBJIGF0IHRoaXMgcG9pbnQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZy
YW1lTmFtZTpncm91cE5hbWU6dXNlc0RvY3VtZW50Vmlld3M6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpdKToKKwogMjAxMC0wOC0xMCAgR2F2
aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQg
Zml4ICh1cGRhdGUgbW9yZSBpbmNsdWRlcykKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWVmZDU2
YjdjNDM3OGI2Njg0YjZiYjBjNTAxMWJiZmVjOWYyZjVhYy4uZDhiYzkxNGQ1ZDQxNmEzYzc1YTFk
NTM5MzNhNzdlODhhMzRlODZjYSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEyNiw2ICsxMjYs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVRyZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Hcm91cFNldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+CkBAIC02ODYsNyArNjg3LDEwIEBAIHN0YXRpYyBib29sIHNob3VsZEVuYWJsZUxv
YWREZWZlcnJpbmcoKQogICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMp
OwogCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldENhblN0YXJ0TWVkaWEoW3NlbGYgd2luZG93XSk7
Ci0gICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldExvY2FsU3RvcmFnZURhdGFiYXNl
UGF0aChbW3NlbGYgcHJlZmVyZW5jZXNdIF9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhdKTsKKwor
ICAgIC8vIEZJWE1FOiBXaGVuZXZlciBhbnkgZnV0dXJlIGdyb3VwU2V0dGluZ3MgbmVlZCB0byBi
ZSBleHBvc2VkIHRvIHRoZSBlbWJlZGRlciwgdGhleSBzaG91bGQgTk9UIGJlIGV4cG9zZWQKKyAg
ICAvLyAgICAgICAgdmlhIHRoZSBXZWJWaWV3IHNpbmNlIHRoZXkgYXJlbid0IGFjdHVhbGx5IHBl
ci12aWV3IHNldHRpbmdzLgorICAgIF9wcml2YXRlLT5wYWdlLT5ncm91cCgpLmdyb3VwU2V0dGlu
Z3MoKS0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKFtbc2VsZiBwcmVmZXJlbmNlc10gX2xv
Y2FsU3RvcmFnZURhdGFiYXNlUGF0aF0pOwogCiAgICAgW1dlYkZyYW1lIF9jcmVhdGVNYWluRnJh
bWVXaXRoUGFnZTpfcHJpdmF0ZS0+cGFnZSBmcmFtZU5hbWU6ZnJhbWVOYW1lIGZyYW1lVmlldzpm
cmFtZVZpZXddOwogCkBAIC0xMzY0LDcgKzEzNjgsMTEgQEAgc3RhdGljIGJvb2wgZmFzdERvY3Vt
ZW50VGVhcmRvd25FbmFibGVkKCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFNldHRpbmdz
KiBzZXR0aW5ncyA9IF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpOwotICAgIAorCisgICAgLy8g
RklYTUU6IFdoZW5ldmVyIGFueSBmdXR1cmUgZ3JvdXBTZXR0aW5ncyBuZWVkIHRvIGJlIGV4cG9z
ZWQgdG8gdGhlIGVtYmVkZGVyLCB0aGV5IHNob3VsZCBOT1QgYmUgZXhwb3NlZAorICAgIC8vICAg
ICAgICB2aWEgdGhlIFdlYlZpZXcgc2luY2UgdGhleSBhcmVuJ3QgYWN0dWFsbHkgcGVyLXZpZXcg
c2V0dGluZ3MuCisgICAgX3ByaXZhdGUtPnBhZ2UtPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLT5z
ZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoW3ByZWZlcmVuY2VzIF9sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGhdKTsKKwogICAgIHNldHRpbmdzLT5zZXRDdXJzaXZlRm9udEZhbWlseShbcHJlZmVy
ZW5jZXMgY3Vyc2l2ZUZvbnRGYW1pbHldKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVk
Rm9udFNpemUoW3ByZWZlcmVuY2VzIGRlZmF1bHRGaXhlZEZvbnRTaXplXSk7CiAgICAgc2V0dGlu
Z3MtPnNldERlZmF1bHRGb250U2l6ZShbcHJlZmVyZW5jZXMgZGVmYXVsdEZvbnRTaXplXSk7CkBA
IC0xMzc0LDcgKzEzODIsNiBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJs
ZWQoKQogICAgIHNldHRpbmdzLT5zZXRGaXhlZEZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIGZpeGVk
Rm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRGb3JjZUZUUERpcmVjdG9yeUxpc3Rpbmdz
KFtwcmVmZXJlbmNlcyBfZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nc10pOwogICAgIHNldHRpbmdz
LT5zZXRGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgoW3ByZWZlcmVuY2VzIF9mdHBEaXJlY3RvcnlU
ZW1wbGF0ZVBhdGhdKTsKLSAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRo
KFtwcmVmZXJlbmNlcyBfbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoXSk7CiAgICAgc2V0dGluZ3Mt
PnNldEphdmFFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0phdmFFbmFibGVkXSk7CiAgICAgc2V0dGlu
Z3MtPnNldEphdmFTY3JpcHRFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0phdmFTY3JpcHRFbmFibGVk
XSk7CiAgICAgc2V0dGluZ3MtPnNldFdlYlNlY3VyaXR5RW5hYmxlZChbcHJlZmVyZW5jZXMgaXNX
ZWJTZWN1cml0eUVuYWJsZWRdKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnNldHRp
bmdzLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRleCBlZGQwN2RhMGE4
NzgwNTQwMmU0NTg0ZWIwZjE0YTg5ZjIyYTljMzc4Li5hODRmNmM5NzAwYjljYmM1MmEwODEwYTE5
Y2U5MmVlMjM2NjVjNmZmIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCkBAIC0yMTMsOCArMjEzLDEw
IEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkoKQogICAgICAgICBRU3RyaW5nIGVu
Y29kaW5nID0gIWRlZmF1bHRUZXh0RW5jb2RpbmcuaXNFbXB0eSgpID8gZGVmYXVsdFRleHRFbmNv
ZGluZzogZ2xvYmFsLT5kZWZhdWx0VGV4dEVuY29kaW5nOwogICAgICAgICBzZXR0aW5ncy0+c2V0
RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoZW5jb2RpbmcpOwogCisgICAgICAgIC8vIEZJWE1FOiBX
aGVuZXZlciBhbnkgZnV0dXJlIGdyb3VwU2V0dGluZ3MgbmVlZCB0byBiZSBleHBvc2VkIHRvIHRo
ZSBlbWJlZGRlciwgdGhleSBzaG91bGQgTk9UIGJlIGV4cG9zZWQKKyAgICAgICAgLy8gICAgICAg
IHZpYSB0aGlzIGNsYXNzIHNpbmNlIHRoZXkgYXJlbid0IGFjdHVhbGx5IHBlci12aWV3IHNldHRp
bmdzLgogICAgICAgICBRU3RyaW5nIHN0b3JhZ2VQYXRoID0gIWxvY2FsU3RvcmFnZVBhdGguaXNF
bXB0eSgpID8gbG9jYWxTdG9yYWdlUGF0aCA6IGdsb2JhbC0+bG9jYWxTdG9yYWdlUGF0aDsKLSAg
ICAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChzdG9yYWdlUGF0aCk7
CisgICAgICAgIHNldHRpbmdzLT5wYWdlKCktPnBhZ2VHcm91cCgpLmdyb3VwU2V0dGluZ3MoKS0+
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHN0b3JhZ2VQYXRoKTsKIAogICAgICAgICB2YWx1
ZSA9IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMudmFsdWUoUVdlYlNl
dHRpbmdzOjpab29tVGV4dE9ubHkpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cg
Yi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGUwNGYwMmRlMjRkMTczY2U5YzQ4MmVhM2I0NWEz
Y2M2OTBjYWE2ODQuLjUyYzBlZTczYWYxN2JiODVjZjU3YjcxMzQwNGQwYzBiYTdmNDdhNTkgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEwLTA4LTExICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNvbWUgc2V0dGluZ3MgYXJlIGxpbmtlZCB0byB0aGUgUGFnZUdyb3VwIG5vdCB0aGUgUGFnZS4g
IENyZWF0ZSBhIG5ldyBjbGFzcyBmb3IgdGhvc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzc5NAorCisgICAgICAgIENoYW5nZSBXZWJTZXR0aW5n
cyB0byB1c2UgdGhlIG5ldyBHcm91cFNldHRpbmdzIGNsYXNzIHJhdGhlciB0aGFuIFNldHRpbmdz
IGZvciB0aGUKKyAgICAgICAgc2V0dGluZ3MgdGhhdCBtb3ZlZC4gIFRoaXMgaXMgc3ViLW9wdGlt
YWwgc2luY2UgdGhlIHNldHRpbmdzIGFyZW4ndCByZWFsbHkKKyAgICAgICAgcGVyLXZpZXcsIGJ1
dCBJIGRvbid0IHNlZSBob3cgd2UgY2FuIGNoYW5nZSB0aGUgQVBJIGF0IHRoaXMgcG9pbnQuCisK
KyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0aW5nc1By
aXZhdGU6OmFwcGx5KToKKwogMjAxMC0wOC0xMCAgQW5kZXJzIEJha2tlbiAgPGFnYmFra2VuQGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
bi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64104</attachid>
            <date>2010-08-11 06:19:19 -0700</date>
            <delta_ts>2010-08-11 06:54:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43794-20100811141917.patch</filename>
            <type>text/plain</type>
            <size>27188</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBhYzg5NGYxMTM0ZjU5ZjFiZDU0ODdlOTlhNzEzOTNkN2Q1ZWMwYmJiLi44Y2Y4NThlODhiZTAy
YmMwMWQzMGEwYzc3Y2QzZDM0OTY0ODY2ZTBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzIsNiArMzcyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlw
YWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAJcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3Bw
IFwKKwlwYWdlL0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlwYWdlL0hpc3RvcnkuY3BwIFwKIAlwYWdl
L0xvY2F0aW9uLmNwcCBcCiAJcGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA3NTQ0NWMyMDIwODliZjMwYjU0NmNmNTY2MjQ1MjEyODI5OTdiYTcyLi4wODI1
ZGRiYjE1OTkxMDE1NDVkNWRlNTAzY2NhMzdmMGRmYzA0M2I2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjUsNiAr
MTE2NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNwcAog
ICAgIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKICAgICBwYWdlL0hp
c3RvcnkuY3BwCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAKICAgICBwYWdlL01lbW9yeUluZm8uY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDFjZjI3ODBiMzFiNWU1NGUzMGQzYTFiMmU1MjU4OWRhNDlhMzdhMjIuLmYzYzYyNGUyMmY2NjE2
NjExOGRlZjA5MjBmOGNjZjBhNjUwN2U5OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTAgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0aW5ncyBhcmUgbGlua2VkIHRvIHRo
ZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3IGNsYXNzIGZvciB0aG9zZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzk0CisK
KyAgICAgICAgU2luY2UgcGVyc2lzdGllbnQgc3RvcmFnZSBpcyBzaGFyZWQgYmV0d2VlbiBwYWdl
cywgdGhlcmUncyBubyB3YXkgdG8gbW9kaWZ5CisgICAgICAgIHNvbWUgc2V0dGluZ3MgcmVsYXRl
ZCB0byBpdCBvbiBhIHBlciBwYWdlIGJhc2lzLiAgQXMgc3VjaCwgaXQncyBub3QgdGVjaG5pY2Fs
bHkKKyAgICAgICAgY29ycmVjdCBmb3IgdGhlc2Ugc2V0dGluZ3MgdG8gYmUgb24gdGhlIFBhZ2Un
cyBzZXR0aW5ncy4gIENyZWF0ZSBhIG5ldyBjbGFzcworICAgICAgICBjYWxsZWQgR3JvdXBTZXR0
aW5ncywgbW92ZSB0aGUgMiBncm91cC13aWRlIGxvY2FsIHN0b3JhZ2Ugc2V0dGluZ3MgdGhlcmUs
IGFuZAorICAgICAgICBhZGQgYSBuZXcgc2V0dGluZyBmb3IgSW5kZXhlZERCJ3MgcGF0aCAod2hp
Y2ggaXMgcHJvbXB0aW5nIHRoaXMgY2hhbmdlKS4KKworICAgICAgICBObyBiZWhhdmlvciBoYXMg
Y2hhbmdlZCwgc28gbm8gdGVzdHMuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdl
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpQYWdlR3JvdXApOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpsb2NhbFN0b3JhZ2UpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6Omdyb3VwU2V0dGluZ3Mp
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTZXNzaW9uU3Rv
cmFnZVF1b3RhKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisKIDIwMTAtMDgtMTEgIEZ1
bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXggb2YgTGVvcGFyZCBJbnRlbCBEZWJ1ZyAoQnVpbGQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxYTYxNDc1
ODMxNzg3OTFlYjVhNjg3N2EwOWY3YmU3MGJkMzYxYzBlLi5iNGU5MmJiMDc5ZGE2MTFhMDRmMTIy
ZGU1YjM3NDc5YjM0MmIzZTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE4MDIsNiArMTgwMiw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAg
XAogCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCBcCiAJV2ViQ29yZS9w
YWdlL0dlb3Bvc2l0aW9uLmggXAorCVdlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmggXAogCVdl
YkNvcmUvcGFnZS9IYWx0YWJsZVBsdWdpbi5oIFwKIAlXZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAg
XAogCVdlYkNvcmUvcGFnZS9IaXN0b3J5LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMmRhNGRlZTA4ZDRlY2YwZDZj
YjYwYWNmYWFjZDRlYTA4OTQ1NmQ5Ny4uZWJhMjdkODk2NTFiYzg4NGE5NTIzMTBiNGFjNWFiZTUw
MGI1ZjIyMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC02NzgsNiArNjc4LDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50
MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdgogX19aTjdXZWJDb3JlOERv
Y3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dl
YkNvcmU4Rm9ybURhdGFEMUV2CitfX1pON1dlYkNvcmUxM0dyb3VwU2V0dGluZ3MyN3NldExvY2Fs
U3RvcmFnZURhdGFiYXNlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThJbnRQb2lu
dEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4UG9zaXRpb25DMUVOM1dURjEwUGFzc1JlZlB0
cklOU180Tm9kZUVFRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczExc2V0Wm9vbU1vZGVFTlNfOFpv
b21Nb2RlRQpAQCAtNzIyLDcgKzcyMyw2IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MyNnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3
c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyOHNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyOXNldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkRWIKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTBj
MmQxNDBhYzZiYmZkNzNmNzU1YzM3OTAwM2MwNzIxOWU1MGIwMy4uMDBkNTk5OTM3MzJkNzE5MjRj
NDVmZTY4NWUwZDA4OTgwMmZmOTZmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwMjAsNiArMjAyMCw4IEBACiAgICAgICAg
ICAgICAncGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdw
YWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oJywKICAgICAgICAgICAgICdwYWdlL0dlb3Bv
c2l0aW9uLmgnLAorICAgICAgICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAnLAorICAgICAg
ICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5ncy5oJywKICAgICAgICAgICAgICdwYWdlL0hhbHRhYmxl
UGx1Z2luLmgnLAogICAgICAgICAgICAgJ3BhZ2UvSGlzdG9yeS5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvSGlzdG9yeS5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDBlNjNhZjhhMTY3MTgwMGE3YzQ0OWUyYTg3OTA1MjQ0YzYy
Y2ZmNzIuLjkwOTE3YmY2ZDcyNmZlZjRkMjg3ODU0MDg2MWZkMjQ1NWExZGE4OTIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODQx
LDYgKzg0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKICAg
ICBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcCBcCisgICAgcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBcCiAgICAgcGFn
ZS9IaXN0b3J5LmNwcCBcCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAgXAogICAgIHBhZ2UvTWVtb3J5
SW5mby5jcHAgXApAQCAtMTYyMiw2ICsxNjIzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9H
ZW9sb2NhdGlvbi5oIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKICAg
ICBwYWdlL0dlb3Bvc2l0aW9uLmggXAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKICAgICBw
YWdlL0hhbHRhYmxlUGx1Z2luLmggXAogICAgIHBhZ2UvSGlzdG9yeS5oIFwKICAgICBwYWdlL0xv
Y2F0aW9uLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggY2YwOTg4
YWI1OThmOTcxMDE1ODI2MWYzOGMxM2U0MWI3ZWFhYTgyMy4uMDJmM2YxZTkxNmQyMzQ1MjVhMTQ2
YTRlYWE0NmQ2ZWM2ZjM5YmFhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yMjMxNyw2ICsyMjMxNywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdyb3VwU2V0dGluZ3MuY3BwIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHcm91cFNl
dHRpbmdzLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXEhhbHRhYmxlUGx1Z2luLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MWZhNzNmNmZjYTNk
MWY0ZTYxYTlhNzNmN2IzNjRlNjc0ZDgzZWM5Li43OGI5OTQ3YzVmMWFjZjA5ZjBhNjU5NjA1OGNm
MmE2NDhjNGIwM2JmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDk1Niw2ICs0OTU2LDggQEAKIAkJQzBERkM4NzAwREI2ODQxQTAwM0VBRTdDIC8qIEpT
Q29uc29sZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMERGQzg2RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3VzdG9tLmNwcCAq
LzsgfTsKIAkJQzEwNURBNjIwRjNBQTY4RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9y
SUNVLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMx
MDVEQTYxMEYzQUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi87
IH07CiAJCUMxMDVEQTY0MEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMw
RjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07CisJCUM1MEI1
NjE2MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAv
KiBHcm91cFNldHRpbmdzLmNwcCAqLzsgfTsKKwkJQzUwQjU2MTcxMjExOUQyMzAwOEI0NkUwIC8q
IEdyb3VwU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM1MEI1NjE1MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzUwRDBFODIwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0
b3JhZ2VOYW1lc3BhY2UuY3BwICovOyB9OwogCQlDNTBEMEU4MzBGRjQyNzI5MDBBQzI2NDQgLyog
U3RvcmFnZU5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzUwRDBFODEwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAq
LzsgfTsKIAkJQzUxMDJEOTQwRkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxMDJEOTIw
RkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5oICovOyB9OwpAQCAtMTA3MDgs
NiArMTA3MTAsOCBAQAogCQlDMERGQzg2RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29uc29sZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYxMEYzQUE2OEYw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTBCNTYxNDEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcm91cFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzUwQjU2MTUxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5h
bWVzcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdl
TmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwRDBFODEwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNTEwMkQ5MjBGRDlBQTJEMDBGQUZGMDQgLyogU3RvcmFnZVN5bmNNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VTeW5jTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1MjQsNiArMTI1MjgsOCBAQAogCQkJCTU5NjIy
OTc5MTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCAqLywKIAkJ
CQlGRTgwRDdCQjBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCAqLywKIAkJCQlGRTgw
RDdCQzBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaWRsICovLAorCQkJCUM1MEI1NjE0
MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCAqLywKKwkJCQlDNTBCNTYxNTEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oICovLAogCQkJCTc2OTNCQUNFMTA2QzJE
Q0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBsdWdpbi5oICovLAogCQkJCUJDOTREMTUwMEMyNzVDOEIw
MDZCQzYxNyAvKiBIaXN0b3J5LmNwcCAqLywKIAkJCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcg
LyogSGlzdG9yeS5oICovLApAQCAtMjAxNTYsNiArMjAxNjIsNyBAQAogCQkJCTJFRUQ1NzU4MTIx
MDlFRTQwMDc2NTZCQiAvKiBCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFRUQ1
NzVDMTIxMDlFRjMwMDc2NTZCQiAvKiBCbG9iRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc4
QjZGQ0ExMjEyODgyMTAwMTU5NUVGIC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yMjU4Myw2ICsyMjU5MCw3IEBACiAJCQkJMkVFRDU3NTUxMjEwOUVE
MDAwNzY1NkJCIC8qIEJsb2JVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVFRDU3NUIxMjEw
OUVGMzAwNzY1NkJCIC8qIEJsb2JEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3OEI2RkM5
MTIxMjg4MjEwMDE1OTVFRiAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDNTBCNTYxNjEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBi
L1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGY4MWFjZGI3ODky
ZThjODk0Mzg5YmI0MjY4MTY5ZWYzYWI1ZDViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
YWdlL0dyb3VwU2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0dyb3VwU2V0dGluZ3M6Okdyb3VwU2V0dGluZ3MoKQorICAgIDogbV9sb2NhbFN0b3Jh
Z2VRdW90YUJ5dGVzKDUgKiAxMDI0ICogMTAyNCkgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBz
cGVjLgoreworfQorCit2b2lkIEdyb3VwU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhQnl0
ZXModW5zaWduZWQgcXVvdGEpCit7CisgICAgbV9sb2NhbFN0b3JhZ2VRdW90YUJ5dGVzID0gcXVv
dGE7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCA9
IHBhdGg7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0SW5kZXhlZERCRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aCA9IHBh
dGg7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9Hcm91cFNldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhmODJjZTlkYTkwNDg3Y2Y4NzU5MmMxMWFkNDA2MGFjMjc4M2FlMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworIAorI2lmbmRlZiBHcm91cFNldHRpbmdzX2gKKyNkZWZpbmUgR3JvdXBTZXR0aW5nc19oCisK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZUdyb3VwOworCitjbGFzcyBHcm91
cFNldHRpbmdzIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxHcm91cFNldHRpbmdzPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBHcm91cFNldHRpbmdzKCkpOworICAgIH0KKworICAgIHZvaWQgc2V0TG9jYWxT
dG9yYWdlUXVvdGFCeXRlcyh1bnNpZ25lZCk7CisgICAgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVv
dGFCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlczsgfQorCisg
ICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAg
Y29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBt
X2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQorCisgICAgdm9pZCBzZXRJbmRleGVkREJEYXRh
YmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3QgU3RyaW5nJiBpbmRleGVkREJEYXRh
YmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aDsgfQorCitw
cml2YXRlOgorICAgIEdyb3VwU2V0dGluZ3MoKTsKKworICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9y
YWdlUXVvdGFCeXRlczsKKyAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7Cisg
ICAgU3RyaW5nIG1faW5kZXhlZERCRGF0YWJhc2VQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gR3JvdXBTZXR0aW5nc19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDEy
YjFhNDFjYTRkYjAyMDNjMzkwMjQwMDY4ODNkZjliMzI4NzIzM2QuLjQ4YjllMjRmZWEzMmUwNmY3
MTk5YzRhNDk1YjA5NWE4Y2FmZmI0ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXAuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdyb3VwU2V0dGluZ3MuaCIKICNpbmNsdWRlICJJREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgpAQCAtNTUsNiArNTYsNyBAQCBQYWdlR3JvdXA6OlBhZ2VHcm91cChjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgOiBtX25hbWUobmFtZSkKICAgICAsIG1fdmlzaXRlZExpbmtzUG9w
dWxhdGVkKGZhbHNlKQogICAgICwgbV9pZGVudGlmaWVyKGdldFVuaXF1ZUlkZW50aWZpZXIoKSkK
KyAgICAsIG1fZ3JvdXBTZXR0aW5ncyhHcm91cFNldHRpbmdzOjpjcmVhdGUoKSkKIHsKIH0KIApA
QCAtMTk0LDE2ICsxOTYsOSBAQCB2b2lkIFBhZ2VHcm91cDo6c2V0U2hvdWxkVHJhY2tWaXNpdGVk
TGlua3MoYm9vbCBzaG91bGRUcmFjaykKIFN0b3JhZ2VOYW1lc3BhY2UqIFBhZ2VHcm91cDo6bG9j
YWxTdG9yYWdlKCkKIHsKICAgICBpZiAoIW1fbG9jYWxTdG9yYWdlKSB7Ci0gICAgICAgIC8vIE5l
ZWQgYSBwYWdlIGluIHRoaXMgcGFnZSBncm91cCB0byBxdWVyeSB0aGUgc2V0dGluZ3MgZm9yIHRo
ZSBsb2NhbCBzdG9yYWdlIGRhdGFiYXNlIHBhdGguCi0gICAgICAgIC8vIEhhdmluZyB0aGVzZSBw
YXJhbWV0ZXJzIGF0dGFjaGVkIHRvIHRoZSBwYWdlIHNldHRpbmdzIGlzIHVuZm9ydHVuYXRlIHNp
bmNlIHRoZXNlIHNldHRpbmdzIGFyZQotICAgICAgICAvLyBub3QgcGVyLXBhZ2UgKGFuZCwgaW4g
ZmFjdCwgd2Ugc2ltcGx5IGdyYWIgdGhlIHNldHRpbmdzIGZyb20gc29tZSBwYWdlIGF0IHJhbmRv
bSksIGJ1dAotICAgICAgICAvLyBhdCB0aGlzIHBvaW50IHdlJ3JlIHN0dWNrIHdpdGggaXQuCi0g
ICAgICAgIFBhZ2UqIHBhZ2UgPSAqbV9wYWdlcy5iZWdpbigpOwotICAgICAgICBjb25zdCBTdHJp
bmcmIHBhdGggPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKTsK
LSAgICAgICAgdW5zaWduZWQgcXVvdGEgPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3JhZ2VR
dW90YSgpOwotICAgICAgICBtX2xvY2FsU3RvcmFnZSA9IFN0b3JhZ2VOYW1lc3BhY2U6OmxvY2Fs
U3RvcmFnZU5hbWVzcGFjZShwYXRoLCBxdW90YSk7CisgICAgICAgIG1fbG9jYWxTdG9yYWdlID0g
U3RvcmFnZU5hbWVzcGFjZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlKG1fZ3JvdXBTZXR0aW5ncy0+
bG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBTZXR0aW5ncy0+bG9j
YWxTdG9yYWdlUXVvdGFCeXRlcygpKTsKICAgICB9Ci0KICAgICByZXR1cm4gbV9sb2NhbFN0b3Jh
Z2UuZ2V0KCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
aCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAppbmRleCA5NWRiOGMzOGQyNzYzYTE1ZTRkNmQz
YmMyZGZmM2I3MmYyMGZkZWU4Li4wMjM0YzY1NzEyZmRlMDQzMmQ0MjdjMGJhMjliMjUzNzExYzVh
OWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKKysrIGIvV2ViQ29yZS9w
YWdlL1BhZ2VHcm91cC5oCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIEdyb3VwU2V0dGluZ3M7CiAgICAgY2xhc3MgSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdG9y
YWdlTmFtZXNwYWNlOwpAQCAtOTMsNiArOTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGNvbnN0IFVzZXJTY3JpcHRNYXAqIHVzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gbV91
c2VyU2NyaXB0cy5nZXQoKTsgfQogICAgICAgICBjb25zdCBVc2VyU3R5bGVTaGVldE1hcCogdXNl
clN0eWxlU2hlZXRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldHMuZ2V0KCk7IH0K
IAorICAgICAgICBHcm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4g
bV9ncm91cFNldHRpbmdzLmdldCgpOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rKExpbmtIYXNoIHN0cmluZ0hhc2gpOwogICAgICAgICB2b2lkIHJlc2V0VXNl
clN0eWxlQ2FjaGVJbkFsbEZyYW1lcygpOwpAQCAtMTE0LDYgKzExNyw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBPd25QdHI8VXNlclNjcmlwdE1hcD4gbV91c2VyU2NyaXB0czsK
ICAgICAgICAgT3duUHRyPFVzZXJTdHlsZVNoZWV0TWFwPiBtX3VzZXJTdHlsZVNoZWV0czsKKwor
ICAgICAgICBPd25QdHI8R3JvdXBTZXR0aW5ncz4gbV9ncm91cFNldHRpbmdzOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDg4MWM4ODU4ZjIyZjY3ZGY2
MTg1NDMzNWU3NzJkYjRkYjk3NGNkYmEuLjg5YmM1ODk1NjY3OGViYmYyYjgzODQ2YzRmMjcyMjkw
ZjEyZGM1OWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjQsMTAgKzY0LDcgQEAgU2V0dGluZ3M6OlNldHRp
bmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2RlZmF1bHRGb250U2l6ZSgwKQogICAgICwgbV9kZWZh
dWx0Rml4ZWRGb250U2l6ZSgwKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAg
ICAgICAgCi0gICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1
Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KICAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShT
dG9yYWdlTWFwOjpub1F1b3RhKQotI2VuZGlmCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1l
KG51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCiAgICAgLCBtX3pvb21Nb2RlKFpvb21Q
YWdlKQogICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKQEAgLTI5MCwx
NyArMjg3LDEwIEBAIHZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBs
b2NhbFN0b3JhZ2VFbmFibGVkKQogICAgIG1fbG9jYWxTdG9yYWdlRW5hYmxlZCA9IGxvY2FsU3Rv
cmFnZUVuYWJsZWQ7CiB9CiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLXZvaWQg
U2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3Rh
KQotewotICAgIG1fbG9jYWxTdG9yYWdlUXVvdGEgPSBsb2NhbFN0b3JhZ2VRdW90YTsKLX0KLQog
dm9pZCBTZXR0aW5nczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3Rv
cmFnZVF1b3RhKQogewogICAgIG1fc2Vzc2lvblN0b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdl
UXVvdGE7CiB9Ci0jZW5kaWYKIAogdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CkBAIC00ODMsMTEgKzQ3Myw2IEBA
IHZvaWQgU2V0dGluZ3M6OnNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA9IGVuYWJsZWQ7
CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBT
dHJpbmcmIHBhdGgpCi17Ci0gICAgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwot
fQotCiB2b2lkIFNldHRpbmdzOjpzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCBtb2RlKQog
ewogICAgIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGUgPSBtb2RlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBhZTNl
YmVhZDJmYzdhMTE1ODA5NzFiZmQ3MmQ1YzhhMTRlNWUwMDU5Li5jYTRjMzlhYTZhMjBlYzBjZmU2
Y2Q0MTQzMjliYTAwNjZkYWI0ZjBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtNTUsNiArNTUsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBTZXR0aW5ncyhQYWdlKik7CiAKKyAg
ICAgICAgUGFnZSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorCiAgICAgICAgIHZv
aWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhbmRhcmRGb250RmFtaWx5OyB9CiAKQEAgLTEyOSwxNiArMTMxLDExIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGJvb2wpOwogICAg
ICAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3Rv
cmFnZUVuYWJsZWQ7IH0KIAotI2lmIEVOQUJMRShET01fU1RPUkFHRSkgICAgICAgIAotICAgICAg
ICB2b2lkIHNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKLSAgICAgICAgdW5zaWduZWQg
bG9jYWxTdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZVF1b3RhOyB9
Ci0KICAgICAgICAgLy8gQWxsb3cgY2xpZW50cyBjb25jZXJuZWQgd2l0aCBtZW1vcnkgY29uc3Vt
cHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBzdG9yYWdlCiAgICAgICAgIC8vIHNpbmNl
IHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNlZCB1bnRpbCB0aGUgUGFnZSBpcyBkZXN0
cm95ZWQuCiAgICAgICAgIC8vIERlZmF1bHQgaXMgbm9RdW90YS4KICAgICAgICAgdm9pZCBzZXRT
ZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKICAgICAgICAgdW5zaWduZWQgc2Vzc2lvblN0
b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsgfQotI2Vu
ZGlmCiAKICAgICAgICAgLy8gV2hlbiB0aGlzIG9wdGlvbiBpcyBzZXQsIFdlYkNvcmUgd2lsbCBh
dm9pZCBzdG9yaW5nIGFueSByZWNvcmQgb2YgYnJvd3NpbmcgYWN0aXZpdHkKICAgICAgICAgLy8g
dGhhdCBtYXkgcGVyc2lzdCBvbiBkaXNrIG9yIHJlbWFpbiBkaXNwbGF5ZWQgd2hlbiB0aGUgb3B0
aW9uIGlzIHJlc2V0LgpAQCAtMjM5LDkgKzIzNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCk7CiAg
ICAgICAgIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQg
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25z
dCBTdHJpbmcmIGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoOyB9CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldEFwcGxp
Y2F0aW9uQ2hyb21lTW9kZShib29sKTsKICAgICAgICAgYm9vbCBpbkFwcGxpY2F0aW9uQ2hyb21l
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGU7IH0KQEAgLTMz
OSw3ICszMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICBTdHJp
bmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKICAgICAgICAgU3RyaW5nIG1fZnRwRGlyZWN0
b3J5VGVtcGxhdGVQYXRoOwotICAgICAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGg7CiAgICAgICAgIEtVUkwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogICAgICAgICBBdG9t
aWNTdHJpbmcgbV9zdGFuZGFyZEZvbnRGYW1pbHk7CiAgICAgICAgIEF0b21pY1N0cmluZyBtX2Zp
eGVkRm9udEZhbWlseTsKQEAgLTM1NCwxMCArMzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBpbnQgbV9kZWZhdWx0Rm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1bHRGaXhl
ZEZvbnRTaXplOwogICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsKLSNp
ZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLSAgICAgICAgdW5zaWduZWQgbV9sb2NhbFN0
b3JhZ2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9zZXNzaW9uU3RvcmFnZVF1b3RhOwotI2Vu
ZGlmCiAgICAgICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWU7CiAgICAgICAgIFpv
b21Nb2RlIG1fem9vbU1vZGU7CiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCA6IDE7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IGY0ZWY1YzMyNDVmODY2MmYzZDU5MDY3M2EyNTQ1OGI5OWI0ZmVjYjAu
LjU0MzQ1YjUwMGM3N2IwYTA0MzcwNTBkODFjYWQ4N2FiNGJmNzI1MDMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMDgtMTAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0
aW5ncyBhcmUgbGlua2VkIHRvIHRoZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEg
bmV3IGNsYXNzIGZvciB0aG9zZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQzNzk0CisKKyAgICAgICAgQ2hhbmdlIFdlYlZpZXcgdG8gdXNlIHRoZSBu
ZXcgR3JvdXBTZXR0aW5ncyBjbGFzcyByYXRoZXIgdGhhbiBTZXR0aW5ncyBmb3IgdGhlCisgICAg
ICAgIHNldHRpbmdzIHRoYXQgbW92ZWQuICBUaGlzIGlzIHN1Yi1vcHRpbWFsIHNpbmNlIHRoZSBz
ZXR0aW5ncyBhcmVuJ3QgcmVhbGx5CisgICAgICAgIHBlci12aWV3LCBidXQgd2UgY2FuJ3QgcmVh
bGx5IGNoYW5nZSB0aGUgQVBJIGF0IHRoaXMgcG9pbnQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZy
YW1lTmFtZTpncm91cE5hbWU6dXNlc0RvY3VtZW50Vmlld3M6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpdKToKKwogMjAxMC0wOC0xMCAgR2F2
aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQg
Zml4ICh1cGRhdGUgbW9yZSBpbmNsdWRlcykKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWVmZDU2
YjdjNDM3OGI2Njg0YjZiYjBjNTAxMWJiZmVjOWYyZjVhYy4uZDhiYzkxNGQ1ZDQxNmEzYzc1YTFk
NTM5MzNhNzdlODhhMzRlODZjYSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEyNiw2ICsxMjYs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVRyZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Hcm91cFNldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+CkBAIC02ODYsNyArNjg3LDEwIEBAIHN0YXRpYyBib29sIHNob3VsZEVuYWJsZUxv
YWREZWZlcnJpbmcoKQogICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMp
OwogCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldENhblN0YXJ0TWVkaWEoW3NlbGYgd2luZG93XSk7
Ci0gICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldExvY2FsU3RvcmFnZURhdGFiYXNl
UGF0aChbW3NlbGYgcHJlZmVyZW5jZXNdIF9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhdKTsKKwor
ICAgIC8vIEZJWE1FOiBXaGVuZXZlciBhbnkgZnV0dXJlIGdyb3VwU2V0dGluZ3MgbmVlZCB0byBi
ZSBleHBvc2VkIHRvIHRoZSBlbWJlZGRlciwgdGhleSBzaG91bGQgTk9UIGJlIGV4cG9zZWQKKyAg
ICAvLyAgICAgICAgdmlhIHRoZSBXZWJWaWV3IHNpbmNlIHRoZXkgYXJlbid0IGFjdHVhbGx5IHBl
ci12aWV3IHNldHRpbmdzLgorICAgIF9wcml2YXRlLT5wYWdlLT5ncm91cCgpLmdyb3VwU2V0dGlu
Z3MoKS0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKFtbc2VsZiBwcmVmZXJlbmNlc10gX2xv
Y2FsU3RvcmFnZURhdGFiYXNlUGF0aF0pOwogCiAgICAgW1dlYkZyYW1lIF9jcmVhdGVNYWluRnJh
bWVXaXRoUGFnZTpfcHJpdmF0ZS0+cGFnZSBmcmFtZU5hbWU6ZnJhbWVOYW1lIGZyYW1lVmlldzpm
cmFtZVZpZXddOwogCkBAIC0xMzY0LDcgKzEzNjgsMTEgQEAgc3RhdGljIGJvb2wgZmFzdERvY3Vt
ZW50VGVhcmRvd25FbmFibGVkKCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFNldHRpbmdz
KiBzZXR0aW5ncyA9IF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpOwotICAgIAorCisgICAgLy8g
RklYTUU6IFdoZW5ldmVyIGFueSBmdXR1cmUgZ3JvdXBTZXR0aW5ncyBuZWVkIHRvIGJlIGV4cG9z
ZWQgdG8gdGhlIGVtYmVkZGVyLCB0aGV5IHNob3VsZCBOT1QgYmUgZXhwb3NlZAorICAgIC8vICAg
ICAgICB2aWEgdGhlIFdlYlZpZXcgc2luY2UgdGhleSBhcmVuJ3QgYWN0dWFsbHkgcGVyLXZpZXcg
c2V0dGluZ3MuCisgICAgX3ByaXZhdGUtPnBhZ2UtPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLT5z
ZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoW3ByZWZlcmVuY2VzIF9sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGhdKTsKKwogICAgIHNldHRpbmdzLT5zZXRDdXJzaXZlRm9udEZhbWlseShbcHJlZmVy
ZW5jZXMgY3Vyc2l2ZUZvbnRGYW1pbHldKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVk
Rm9udFNpemUoW3ByZWZlcmVuY2VzIGRlZmF1bHRGaXhlZEZvbnRTaXplXSk7CiAgICAgc2V0dGlu
Z3MtPnNldERlZmF1bHRGb250U2l6ZShbcHJlZmVyZW5jZXMgZGVmYXVsdEZvbnRTaXplXSk7CkBA
IC0xMzc0LDcgKzEzODIsNiBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJs
ZWQoKQogICAgIHNldHRpbmdzLT5zZXRGaXhlZEZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIGZpeGVk
Rm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRGb3JjZUZUUERpcmVjdG9yeUxpc3Rpbmdz
KFtwcmVmZXJlbmNlcyBfZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nc10pOwogICAgIHNldHRpbmdz
LT5zZXRGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgoW3ByZWZlcmVuY2VzIF9mdHBEaXJlY3RvcnlU
ZW1wbGF0ZVBhdGhdKTsKLSAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRo
KFtwcmVmZXJlbmNlcyBfbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoXSk7CiAgICAgc2V0dGluZ3Mt
PnNldEphdmFFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0phdmFFbmFibGVkXSk7CiAgICAgc2V0dGlu
Z3MtPnNldEphdmFTY3JpcHRFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0phdmFTY3JpcHRFbmFibGVk
XSk7CiAgICAgc2V0dGluZ3MtPnNldFdlYlNlY3VyaXR5RW5hYmxlZChbcHJlZmVyZW5jZXMgaXNX
ZWJTZWN1cml0eUVuYWJsZWRdKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnNldHRp
bmdzLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRleCBlZGQwN2RhMGE4
NzgwNTQwMmU0NTg0ZWIwZjE0YTg5ZjIyYTljMzc4Li45NzhlZDVhNTFiOGNmMzdhOThlZGVlODhk
MjYzMDg5ZDA4ODkwMTZlIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCkBAIC0yMTMsOCArMjEzLDEw
IEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkoKQogICAgICAgICBRU3RyaW5nIGVu
Y29kaW5nID0gIWRlZmF1bHRUZXh0RW5jb2RpbmcuaXNFbXB0eSgpID8gZGVmYXVsdFRleHRFbmNv
ZGluZzogZ2xvYmFsLT5kZWZhdWx0VGV4dEVuY29kaW5nOwogICAgICAgICBzZXR0aW5ncy0+c2V0
RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoZW5jb2RpbmcpOwogCisgICAgICAgIC8vIEZJWE1FOiBX
aGVuZXZlciBhbnkgZnV0dXJlIGdyb3VwU2V0dGluZ3MgbmVlZCB0byBiZSBleHBvc2VkIHRvIHRo
ZSBlbWJlZGRlciwgdGhleSBzaG91bGQgTk9UIGJlIGV4cG9zZWQKKyAgICAgICAgLy8gICAgICAg
IHZpYSB0aGlzIGNsYXNzIHNpbmNlIHRoZXkgYXJlbid0IGFjdHVhbGx5IHBlci12aWV3IHNldHRp
bmdzLgogICAgICAgICBRU3RyaW5nIHN0b3JhZ2VQYXRoID0gIWxvY2FsU3RvcmFnZVBhdGguaXNF
bXB0eSgpID8gbG9jYWxTdG9yYWdlUGF0aCA6IGdsb2JhbC0+bG9jYWxTdG9yYWdlUGF0aDsKLSAg
ICAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChzdG9yYWdlUGF0aCk7
CisgICAgICAgIHNldHRpbmdzLT5wYWdlKCktPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLT5zZXRM
b2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoc3RvcmFnZVBhdGgpOwogCiAgICAgICAgIHZhbHVlID0g
YXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6Olpvb21UZXh0T25seSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGlu
Z3M6Olpvb21UZXh0T25seSkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZTA0ZjAyZGUyNGQxNzNjZTljNDgyZWEzYjQ1YTNjYzY5
MGNhYTY4NC4uNTJjMGVlNzNhZjE3YmI4NWNmNTdiNzEzNDA0ZDBjMGJhN2Y0N2E1OSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTAtMDgtMTEgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29t
ZSBzZXR0aW5ncyBhcmUgbGlua2VkIHRvIHRoZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3Jl
YXRlIGEgbmV3IGNsYXNzIGZvciB0aG9zZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzNzk0CisKKyAgICAgICAgQ2hhbmdlIFdlYlNldHRpbmdzIHRv
IHVzZSB0aGUgbmV3IEdyb3VwU2V0dGluZ3MgY2xhc3MgcmF0aGVyIHRoYW4gU2V0dGluZ3MgZm9y
IHRoZQorICAgICAgICBzZXR0aW5ncyB0aGF0IG1vdmVkLiAgVGhpcyBpcyBzdWItb3B0aW1hbCBz
aW5jZSB0aGUgc2V0dGluZ3MgYXJlbid0IHJlYWxseQorICAgICAgICBwZXItdmlldywgYnV0IEkg
ZG9uJ3Qgc2VlIGhvdyB3ZSBjYW4gY2hhbmdlIHRoZSBBUEkgYXQgdGhpcyBwb2ludC4KKworICAg
ICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdzUHJpdmF0
ZTo6YXBwbHkpOgorCiAyMDEwLTA4LTEwICBBbmRlcnMgQmFra2VuICA8YWdiYWtrZW5AZ21haWwu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64108</attachid>
            <date>2010-08-11 06:54:18 -0700</date>
            <delta_ts>2010-08-13 05:32:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43794-20100811145416.patch</filename>
            <type>text/plain</type>
            <size>27463</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBhYzg5NGYxMTM0ZjU5ZjFiZDU0ODdlOTlhNzEzOTNkN2Q1ZWMwYmJiLi44Y2Y4NThlODhiZTAy
YmMwMWQzMGEwYzc3Y2QzZDM0OTY0ODY2ZTBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzIsNiArMzcyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlw
YWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAJcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3Bw
IFwKKwlwYWdlL0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlwYWdlL0hpc3RvcnkuY3BwIFwKIAlwYWdl
L0xvY2F0aW9uLmNwcCBcCiAJcGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA3NTQ0NWMyMDIwODliZjMwYjU0NmNmNTY2MjQ1MjEyODI5OTdiYTcyLi4wODI1
ZGRiYjE1OTkxMDE1NDVkNWRlNTAzY2NhMzdmMGRmYzA0M2I2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjUsNiAr
MTE2NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNwcAog
ICAgIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKICAgICBwYWdlL0hp
c3RvcnkuY3BwCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAKICAgICBwYWdlL01lbW9yeUluZm8uY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDFjZjI3ODBiMzFiNWU1NGUzMGQzYTFiMmU1MjU4OWRhNDlhMzdhMjIuLmYzYzYyNGUyMmY2NjE2
NjExOGRlZjA5MjBmOGNjZjBhNjUwN2U5OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTAgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0aW5ncyBhcmUgbGlua2VkIHRvIHRo
ZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3IGNsYXNzIGZvciB0aG9zZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzk0CisK
KyAgICAgICAgU2luY2UgcGVyc2lzdGllbnQgc3RvcmFnZSBpcyBzaGFyZWQgYmV0d2VlbiBwYWdl
cywgdGhlcmUncyBubyB3YXkgdG8gbW9kaWZ5CisgICAgICAgIHNvbWUgc2V0dGluZ3MgcmVsYXRl
ZCB0byBpdCBvbiBhIHBlciBwYWdlIGJhc2lzLiAgQXMgc3VjaCwgaXQncyBub3QgdGVjaG5pY2Fs
bHkKKyAgICAgICAgY29ycmVjdCBmb3IgdGhlc2Ugc2V0dGluZ3MgdG8gYmUgb24gdGhlIFBhZ2Un
cyBzZXR0aW5ncy4gIENyZWF0ZSBhIG5ldyBjbGFzcworICAgICAgICBjYWxsZWQgR3JvdXBTZXR0
aW5ncywgbW92ZSB0aGUgMiBncm91cC13aWRlIGxvY2FsIHN0b3JhZ2Ugc2V0dGluZ3MgdGhlcmUs
IGFuZAorICAgICAgICBhZGQgYSBuZXcgc2V0dGluZyBmb3IgSW5kZXhlZERCJ3MgcGF0aCAod2hp
Y2ggaXMgcHJvbXB0aW5nIHRoaXMgY2hhbmdlKS4KKworICAgICAgICBObyBiZWhhdmlvciBoYXMg
Y2hhbmdlZCwgc28gbm8gdGVzdHMuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdl
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpQYWdlR3JvdXApOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpsb2NhbFN0b3JhZ2UpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6Omdyb3VwU2V0dGluZ3Mp
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTZXNzaW9uU3Rv
cmFnZVF1b3RhKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisKIDIwMTAtMDgtMTEgIEZ1
bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXggb2YgTGVvcGFyZCBJbnRlbCBEZWJ1ZyAoQnVpbGQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxYTYxNDc1
ODMxNzg3OTFlYjVhNjg3N2EwOWY3YmU3MGJkMzYxYzBlLi5iNGU5MmJiMDc5ZGE2MTFhMDRmMTIy
ZGU1YjM3NDc5YjM0MmIzZTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE4MDIsNiArMTgwMiw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAg
XAogCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCBcCiAJV2ViQ29yZS9w
YWdlL0dlb3Bvc2l0aW9uLmggXAorCVdlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmggXAogCVdl
YkNvcmUvcGFnZS9IYWx0YWJsZVBsdWdpbi5oIFwKIAlXZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAg
XAogCVdlYkNvcmUvcGFnZS9IaXN0b3J5LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMmRhNGRlZTA4ZDRlY2YwZDZj
YjYwYWNmYWFjZDRlYTA4OTQ1NmQ5Ny4uZWJhMjdkODk2NTFiYzg4NGE5NTIzMTBiNGFjNWFiZTUw
MGI1ZjIyMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC02NzgsNiArNjc4LDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50
MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdgogX19aTjdXZWJDb3JlOERv
Y3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dl
YkNvcmU4Rm9ybURhdGFEMUV2CitfX1pON1dlYkNvcmUxM0dyb3VwU2V0dGluZ3MyN3NldExvY2Fs
U3RvcmFnZURhdGFiYXNlUGF0aEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThJbnRQb2lu
dEMxRVJLOF9OU1BvaW50CiBfX1pON1dlYkNvcmU4UG9zaXRpb25DMUVOM1dURjEwUGFzc1JlZlB0
cklOU180Tm9kZUVFRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczExc2V0Wm9vbU1vZGVFTlNfOFpv
b21Nb2RlRQpAQCAtNzIyLDcgKzcyMyw2IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MyNnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3
c2V0RlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlFYgotX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhFUktOM1dURjZTdHJpbmdFCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyOHNldEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyOXNldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkRWIKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTBj
MmQxNDBhYzZiYmZkNzNmNzU1YzM3OTAwM2MwNzIxOWU1MGIwMy4uMDBkNTk5OTM3MzJkNzE5MjRj
NDVmZTY4NWUwZDA4OTgwMmZmOTZmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwMjAsNiArMjAyMCw4IEBACiAgICAgICAg
ICAgICAncGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdw
YWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oJywKICAgICAgICAgICAgICdwYWdlL0dlb3Bv
c2l0aW9uLmgnLAorICAgICAgICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAnLAorICAgICAg
ICAgICAgJ3BhZ2UvR3JvdXBTZXR0aW5ncy5oJywKICAgICAgICAgICAgICdwYWdlL0hhbHRhYmxl
UGx1Z2luLmgnLAogICAgICAgICAgICAgJ3BhZ2UvSGlzdG9yeS5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvSGlzdG9yeS5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDBlNjNhZjhhMTY3MTgwMGE3YzQ0OWUyYTg3OTA1MjQ0YzYy
Y2ZmNzIuLjkwOTE3YmY2ZDcyNmZlZjRkMjg3ODU0MDg2MWZkMjQ1NWExZGE4OTIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODQx
LDYgKzg0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKICAg
ICBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcCBcCisgICAgcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBcCiAgICAgcGFn
ZS9IaXN0b3J5LmNwcCBcCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAgXAogICAgIHBhZ2UvTWVtb3J5
SW5mby5jcHAgXApAQCAtMTYyMiw2ICsxNjIzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9H
ZW9sb2NhdGlvbi5oIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKICAg
ICBwYWdlL0dlb3Bvc2l0aW9uLmggXAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKICAgICBw
YWdlL0hhbHRhYmxlUGx1Z2luLmggXAogICAgIHBhZ2UvSGlzdG9yeS5oIFwKICAgICBwYWdlL0xv
Y2F0aW9uLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggY2YwOTg4
YWI1OThmOTcxMDE1ODI2MWYzOGMxM2U0MWI3ZWFhYTgyMy4uMDJmM2YxZTkxNmQyMzQ1MjVhMTQ2
YTRlYWE0NmQ2ZWM2ZjM5YmFhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yMjMxNyw2ICsyMjMxNywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdyb3VwU2V0dGluZ3MuY3BwIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHcm91cFNl
dHRpbmdzLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXEhhbHRhYmxlUGx1Z2luLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MWZhNzNmNmZjYTNk
MWY0ZTYxYTlhNzNmN2IzNjRlNjc0ZDgzZWM5Li43OGI5OTQ3YzVmMWFjZjA5ZjBhNjU5NjA1OGNm
MmE2NDhjNGIwM2JmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDk1Niw2ICs0OTU2LDggQEAKIAkJQzBERkM4NzAwREI2ODQxQTAwM0VBRTdDIC8qIEpT
Q29uc29sZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMERGQzg2RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3VzdG9tLmNwcCAq
LzsgfTsKIAkJQzEwNURBNjIwRjNBQTY4RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9y
SUNVLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMx
MDVEQTYxMEYzQUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi87
IH07CiAJCUMxMDVEQTY0MEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMw
RjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07CisJCUM1MEI1
NjE2MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAv
KiBHcm91cFNldHRpbmdzLmNwcCAqLzsgfTsKKwkJQzUwQjU2MTcxMjExOUQyMzAwOEI0NkUwIC8q
IEdyb3VwU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM1MEI1NjE1MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzUwRDBFODIwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0
b3JhZ2VOYW1lc3BhY2UuY3BwICovOyB9OwogCQlDNTBEMEU4MzBGRjQyNzI5MDBBQzI2NDQgLyog
U3RvcmFnZU5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzUwRDBFODEwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAq
LzsgfTsKIAkJQzUxMDJEOTQwRkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxMDJEOTIw
RkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5oICovOyB9OwpAQCAtMTA3MDgs
NiArMTA3MTAsOCBAQAogCQlDMERGQzg2RjBEQjY4NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29uc29sZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYxMEYzQUE2OEYw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTBCNTYxNDEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcm91cFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzUwQjU2MTUxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5h
bWVzcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdl
TmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwRDBFODEwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNTEwMkQ5MjBGRDlBQTJEMDBGQUZGMDQgLyogU3RvcmFnZVN5bmNNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VTeW5jTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1MjQsNiArMTI1MjgsOCBAQAogCQkJCTU5NjIy
OTc5MTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCAqLywKIAkJ
CQlGRTgwRDdCQjBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCAqLywKIAkJCQlGRTgw
RDdCQzBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaWRsICovLAorCQkJCUM1MEI1NjE0
MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCAqLywKKwkJCQlDNTBCNTYxNTEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oICovLAogCQkJCTc2OTNCQUNFMTA2QzJE
Q0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBsdWdpbi5oICovLAogCQkJCUJDOTREMTUwMEMyNzVDOEIw
MDZCQzYxNyAvKiBIaXN0b3J5LmNwcCAqLywKIAkJCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcg
LyogSGlzdG9yeS5oICovLApAQCAtMjAxNTYsNiArMjAxNjIsNyBAQAogCQkJCTJFRUQ1NzU4MTIx
MDlFRTQwMDc2NTZCQiAvKiBCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFRUQ1
NzVDMTIxMDlFRjMwMDc2NTZCQiAvKiBCbG9iRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc4
QjZGQ0ExMjEyODgyMTAwMTU5NUVGIC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yMjU4Myw2ICsyMjU5MCw3IEBACiAJCQkJMkVFRDU3NTUxMjEwOUVE
MDAwNzY1NkJCIC8qIEJsb2JVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVFRDU3NUIxMjEw
OUVGMzAwNzY1NkJCIC8qIEJsb2JEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3OEI2RkM5
MTIxMjg4MjEwMDE1OTVFRiAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDNTBCNTYxNjEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcCBi
L1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGY4MWFjZGI3ODky
ZThjODk0Mzg5YmI0MjY4MTY5ZWYzYWI1ZDViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
YWdlL0dyb3VwU2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0dyb3VwU2V0dGluZ3M6Okdyb3VwU2V0dGluZ3MoKQorICAgIDogbV9sb2NhbFN0b3Jh
Z2VRdW90YUJ5dGVzKDUgKiAxMDI0ICogMTAyNCkgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBz
cGVjLgoreworfQorCit2b2lkIEdyb3VwU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhQnl0
ZXModW5zaWduZWQgcXVvdGEpCit7CisgICAgbV9sb2NhbFN0b3JhZ2VRdW90YUJ5dGVzID0gcXVv
dGE7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCA9
IHBhdGg7Cit9CisKK3ZvaWQgR3JvdXBTZXR0aW5nczo6c2V0SW5kZXhlZERCRGF0YWJhc2VQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aCA9IHBh
dGg7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9Hcm91cFNldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhmODJjZTlkYTkwNDg3Y2Y4NzU5MmMxMWFkNDA2MGFjMjc4M2FlMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworIAorI2lmbmRlZiBHcm91cFNldHRpbmdzX2gKKyNkZWZpbmUgR3JvdXBTZXR0aW5nc19oCisK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZUdyb3VwOworCitjbGFzcyBHcm91
cFNldHRpbmdzIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxHcm91cFNldHRpbmdzPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBHcm91cFNldHRpbmdzKCkpOworICAgIH0KKworICAgIHZvaWQgc2V0TG9jYWxT
dG9yYWdlUXVvdGFCeXRlcyh1bnNpZ25lZCk7CisgICAgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVv
dGFCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlczsgfQorCisg
ICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAg
Y29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBt
X2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQorCisgICAgdm9pZCBzZXRJbmRleGVkREJEYXRh
YmFzZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3QgU3RyaW5nJiBpbmRleGVkREJEYXRh
YmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aDsgfQorCitw
cml2YXRlOgorICAgIEdyb3VwU2V0dGluZ3MoKTsKKworICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9y
YWdlUXVvdGFCeXRlczsKKyAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7Cisg
ICAgU3RyaW5nIG1faW5kZXhlZERCRGF0YWJhc2VQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gR3JvdXBTZXR0aW5nc19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDEy
YjFhNDFjYTRkYjAyMDNjMzkwMjQwMDY4ODNkZjliMzI4NzIzM2QuLjQ4YjllMjRmZWEzMmUwNmY3
MTk5YzRhNDk1YjA5NWE4Y2FmZmI0ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXAuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdyb3VwU2V0dGluZ3MuaCIKICNpbmNsdWRlICJJREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgpAQCAtNTUsNiArNTYsNyBAQCBQYWdlR3JvdXA6OlBhZ2VHcm91cChjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgOiBtX25hbWUobmFtZSkKICAgICAsIG1fdmlzaXRlZExpbmtzUG9w
dWxhdGVkKGZhbHNlKQogICAgICwgbV9pZGVudGlmaWVyKGdldFVuaXF1ZUlkZW50aWZpZXIoKSkK
KyAgICAsIG1fZ3JvdXBTZXR0aW5ncyhHcm91cFNldHRpbmdzOjpjcmVhdGUoKSkKIHsKIH0KIApA
QCAtMTk0LDE2ICsxOTYsOSBAQCB2b2lkIFBhZ2VHcm91cDo6c2V0U2hvdWxkVHJhY2tWaXNpdGVk
TGlua3MoYm9vbCBzaG91bGRUcmFjaykKIFN0b3JhZ2VOYW1lc3BhY2UqIFBhZ2VHcm91cDo6bG9j
YWxTdG9yYWdlKCkKIHsKICAgICBpZiAoIW1fbG9jYWxTdG9yYWdlKSB7Ci0gICAgICAgIC8vIE5l
ZWQgYSBwYWdlIGluIHRoaXMgcGFnZSBncm91cCB0byBxdWVyeSB0aGUgc2V0dGluZ3MgZm9yIHRo
ZSBsb2NhbCBzdG9yYWdlIGRhdGFiYXNlIHBhdGguCi0gICAgICAgIC8vIEhhdmluZyB0aGVzZSBw
YXJhbWV0ZXJzIGF0dGFjaGVkIHRvIHRoZSBwYWdlIHNldHRpbmdzIGlzIHVuZm9ydHVuYXRlIHNp
bmNlIHRoZXNlIHNldHRpbmdzIGFyZQotICAgICAgICAvLyBub3QgcGVyLXBhZ2UgKGFuZCwgaW4g
ZmFjdCwgd2Ugc2ltcGx5IGdyYWIgdGhlIHNldHRpbmdzIGZyb20gc29tZSBwYWdlIGF0IHJhbmRv
bSksIGJ1dAotICAgICAgICAvLyBhdCB0aGlzIHBvaW50IHdlJ3JlIHN0dWNrIHdpdGggaXQuCi0g
ICAgICAgIFBhZ2UqIHBhZ2UgPSAqbV9wYWdlcy5iZWdpbigpOwotICAgICAgICBjb25zdCBTdHJp
bmcmIHBhdGggPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKTsK
LSAgICAgICAgdW5zaWduZWQgcXVvdGEgPSBwYWdlLT5zZXR0aW5ncygpLT5sb2NhbFN0b3JhZ2VR
dW90YSgpOwotICAgICAgICBtX2xvY2FsU3RvcmFnZSA9IFN0b3JhZ2VOYW1lc3BhY2U6OmxvY2Fs
U3RvcmFnZU5hbWVzcGFjZShwYXRoLCBxdW90YSk7CisgICAgICAgIG1fbG9jYWxTdG9yYWdlID0g
U3RvcmFnZU5hbWVzcGFjZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlKG1fZ3JvdXBTZXR0aW5ncy0+
bG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBTZXR0aW5ncy0+bG9j
YWxTdG9yYWdlUXVvdGFCeXRlcygpKTsKICAgICB9Ci0KICAgICByZXR1cm4gbV9sb2NhbFN0b3Jh
Z2UuZ2V0KCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
aCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAppbmRleCA5NWRiOGMzOGQyNzYzYTE1ZTRkNmQz
YmMyZGZmM2I3MmYyMGZkZWU4Li4wMjM0YzY1NzEyZmRlMDQzMmQ0MjdjMGJhMjliMjUzNzExYzVh
OWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKKysrIGIvV2ViQ29yZS9w
YWdlL1BhZ2VHcm91cC5oCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIEdyb3VwU2V0dGluZ3M7CiAgICAgY2xhc3MgSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdG9y
YWdlTmFtZXNwYWNlOwpAQCAtOTMsNiArOTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGNvbnN0IFVzZXJTY3JpcHRNYXAqIHVzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gbV91
c2VyU2NyaXB0cy5nZXQoKTsgfQogICAgICAgICBjb25zdCBVc2VyU3R5bGVTaGVldE1hcCogdXNl
clN0eWxlU2hlZXRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldHMuZ2V0KCk7IH0K
IAorICAgICAgICBHcm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4g
bV9ncm91cFNldHRpbmdzLmdldCgpOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rKExpbmtIYXNoIHN0cmluZ0hhc2gpOwogICAgICAgICB2b2lkIHJlc2V0VXNl
clN0eWxlQ2FjaGVJbkFsbEZyYW1lcygpOwpAQCAtMTE0LDYgKzExNyw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBPd25QdHI8VXNlclNjcmlwdE1hcD4gbV91c2VyU2NyaXB0czsK
ICAgICAgICAgT3duUHRyPFVzZXJTdHlsZVNoZWV0TWFwPiBtX3VzZXJTdHlsZVNoZWV0czsKKwor
ICAgICAgICBPd25QdHI8R3JvdXBTZXR0aW5ncz4gbV9ncm91cFNldHRpbmdzOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDg4MWM4ODU4ZjIyZjY3ZGY2
MTg1NDMzNWU3NzJkYjRkYjk3NGNkYmEuLjg5YmM1ODk1NjY3OGViYmYyYjgzODQ2YzRmMjcyMjkw
ZjEyZGM1OWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjQsMTAgKzY0LDcgQEAgU2V0dGluZ3M6OlNldHRp
bmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2RlZmF1bHRGb250U2l6ZSgwKQogICAgICwgbV9kZWZh
dWx0Rml4ZWRGb250U2l6ZSgwKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAg
ICAgICAgCi0gICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1
Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KICAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShT
dG9yYWdlTWFwOjpub1F1b3RhKQotI2VuZGlmCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1l
KG51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCiAgICAgLCBtX3pvb21Nb2RlKFpvb21Q
YWdlKQogICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKQEAgLTI5MCwx
NyArMjg3LDEwIEBAIHZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBs
b2NhbFN0b3JhZ2VFbmFibGVkKQogICAgIG1fbG9jYWxTdG9yYWdlRW5hYmxlZCA9IGxvY2FsU3Rv
cmFnZUVuYWJsZWQ7CiB9CiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLXZvaWQg
U2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3Rh
KQotewotICAgIG1fbG9jYWxTdG9yYWdlUXVvdGEgPSBsb2NhbFN0b3JhZ2VRdW90YTsKLX0KLQog
dm9pZCBTZXR0aW5nczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3Rv
cmFnZVF1b3RhKQogewogICAgIG1fc2Vzc2lvblN0b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdl
UXVvdGE7CiB9Ci0jZW5kaWYKIAogdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CkBAIC00ODMsMTEgKzQ3Myw2IEBA
IHZvaWQgU2V0dGluZ3M6OnNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA9IGVuYWJsZWQ7
CiB9CiAKLXZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBT
dHJpbmcmIHBhdGgpCi17Ci0gICAgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwot
fQotCiB2b2lkIFNldHRpbmdzOjpzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCBtb2RlKQog
ewogICAgIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGUgPSBtb2RlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBhZTNl
YmVhZDJmYzdhMTE1ODA5NzFiZmQ3MmQ1YzhhMTRlNWUwMDU5Li5jYTRjMzlhYTZhMjBlYzBjZmU2
Y2Q0MTQzMjliYTAwNjZkYWI0ZjBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtNTUsNiArNTUsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBTZXR0aW5ncyhQYWdlKik7CiAKKyAg
ICAgICAgUGFnZSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorCiAgICAgICAgIHZv
aWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhbmRhcmRGb250RmFtaWx5OyB9CiAKQEAgLTEyOSwxNiArMTMxLDExIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGJvb2wpOwogICAg
ICAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3Rv
cmFnZUVuYWJsZWQ7IH0KIAotI2lmIEVOQUJMRShET01fU1RPUkFHRSkgICAgICAgIAotICAgICAg
ICB2b2lkIHNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKLSAgICAgICAgdW5zaWduZWQg
bG9jYWxTdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZVF1b3RhOyB9
Ci0KICAgICAgICAgLy8gQWxsb3cgY2xpZW50cyBjb25jZXJuZWQgd2l0aCBtZW1vcnkgY29uc3Vt
cHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBzdG9yYWdlCiAgICAgICAgIC8vIHNpbmNl
IHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNlZCB1bnRpbCB0aGUgUGFnZSBpcyBkZXN0
cm95ZWQuCiAgICAgICAgIC8vIERlZmF1bHQgaXMgbm9RdW90YS4KICAgICAgICAgdm9pZCBzZXRT
ZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKICAgICAgICAgdW5zaWduZWQgc2Vzc2lvblN0
b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsgfQotI2Vu
ZGlmCiAKICAgICAgICAgLy8gV2hlbiB0aGlzIG9wdGlvbiBpcyBzZXQsIFdlYkNvcmUgd2lsbCBh
dm9pZCBzdG9yaW5nIGFueSByZWNvcmQgb2YgYnJvd3NpbmcgYWN0aXZpdHkKICAgICAgICAgLy8g
dGhhdCBtYXkgcGVyc2lzdCBvbiBkaXNrIG9yIHJlbWFpbiBkaXNwbGF5ZWQgd2hlbiB0aGUgb3B0
aW9uIGlzIHJlc2V0LgpAQCAtMjM5LDkgKzIzNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCk7CiAg
ICAgICAgIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsgfQotCi0gICAgICAgIHZvaWQg
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25z
dCBTdHJpbmcmIGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoOyB9CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldEFwcGxp
Y2F0aW9uQ2hyb21lTW9kZShib29sKTsKICAgICAgICAgYm9vbCBpbkFwcGxpY2F0aW9uQ2hyb21l
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGU7IH0KQEAgLTMz
OSw3ICszMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICBTdHJp
bmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKICAgICAgICAgU3RyaW5nIG1fZnRwRGlyZWN0
b3J5VGVtcGxhdGVQYXRoOwotICAgICAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGg7CiAgICAgICAgIEtVUkwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogICAgICAgICBBdG9t
aWNTdHJpbmcgbV9zdGFuZGFyZEZvbnRGYW1pbHk7CiAgICAgICAgIEF0b21pY1N0cmluZyBtX2Zp
eGVkRm9udEZhbWlseTsKQEAgLTM1NCwxMCArMzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBpbnQgbV9kZWZhdWx0Rm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1bHRGaXhl
ZEZvbnRTaXplOwogICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsKLSNp
ZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLSAgICAgICAgdW5zaWduZWQgbV9sb2NhbFN0
b3JhZ2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9zZXNzaW9uU3RvcmFnZVF1b3RhOwotI2Vu
ZGlmCiAgICAgICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWU7CiAgICAgICAgIFpv
b21Nb2RlIG1fem9vbU1vZGU7CiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCA6IDE7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IGY0ZWY1YzMyNDVmODY2MmYzZDU5MDY3M2EyNTQ1OGI5OWI0ZmVjYjAu
LjU0MzQ1YjUwMGM3N2IwYTA0MzcwNTBkODFjYWQ4N2FiNGJmNzI1MDMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMDgtMTAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBzZXR0
aW5ncyBhcmUgbGlua2VkIHRvIHRoZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEg
bmV3IGNsYXNzIGZvciB0aG9zZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQzNzk0CisKKyAgICAgICAgQ2hhbmdlIFdlYlZpZXcgdG8gdXNlIHRoZSBu
ZXcgR3JvdXBTZXR0aW5ncyBjbGFzcyByYXRoZXIgdGhhbiBTZXR0aW5ncyBmb3IgdGhlCisgICAg
ICAgIHNldHRpbmdzIHRoYXQgbW92ZWQuICBUaGlzIGlzIHN1Yi1vcHRpbWFsIHNpbmNlIHRoZSBz
ZXR0aW5ncyBhcmVuJ3QgcmVhbGx5CisgICAgICAgIHBlci12aWV3LCBidXQgd2UgY2FuJ3QgcmVh
bGx5IGNoYW5nZSB0aGUgQVBJIGF0IHRoaXMgcG9pbnQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZy
YW1lTmFtZTpncm91cE5hbWU6dXNlc0RvY3VtZW50Vmlld3M6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpdKToKKwogMjAxMC0wOC0xMCAgR2F2
aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQg
Zml4ICh1cGRhdGUgbW9yZSBpbmNsdWRlcykKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWVmZDU2
YjdjNDM3OGI2Njg0YjZiYjBjNTAxMWJiZmVjOWYyZjVhYy4uZDhiYzkxNGQ1ZDQxNmEzYzc1YTFk
NTM5MzNhNzdlODhhMzRlODZjYSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEyNiw2ICsxMjYs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVRyZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Hcm91cFNldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+CkBAIC02ODYsNyArNjg3LDEwIEBAIHN0YXRpYyBib29sIHNob3VsZEVuYWJsZUxv
YWREZWZlcnJpbmcoKQogICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMp
OwogCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldENhblN0YXJ0TWVkaWEoW3NlbGYgd2luZG93XSk7
Ci0gICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldExvY2FsU3RvcmFnZURhdGFiYXNl
UGF0aChbW3NlbGYgcHJlZmVyZW5jZXNdIF9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhdKTsKKwor
ICAgIC8vIEZJWE1FOiBXaGVuZXZlciBhbnkgZnV0dXJlIGdyb3VwU2V0dGluZ3MgbmVlZCB0byBi
ZSBleHBvc2VkIHRvIHRoZSBlbWJlZGRlciwgdGhleSBzaG91bGQgTk9UIGJlIGV4cG9zZWQKKyAg
ICAvLyAgICAgICAgdmlhIHRoZSBXZWJWaWV3IHNpbmNlIHRoZXkgYXJlbid0IGFjdHVhbGx5IHBl
ci12aWV3IHNldHRpbmdzLgorICAgIF9wcml2YXRlLT5wYWdlLT5ncm91cCgpLmdyb3VwU2V0dGlu
Z3MoKS0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKFtbc2VsZiBwcmVmZXJlbmNlc10gX2xv
Y2FsU3RvcmFnZURhdGFiYXNlUGF0aF0pOwogCiAgICAgW1dlYkZyYW1lIF9jcmVhdGVNYWluRnJh
bWVXaXRoUGFnZTpfcHJpdmF0ZS0+cGFnZSBmcmFtZU5hbWU6ZnJhbWVOYW1lIGZyYW1lVmlldzpm
cmFtZVZpZXddOwogCkBAIC0xMzY0LDcgKzEzNjgsMTEgQEAgc3RhdGljIGJvb2wgZmFzdERvY3Vt
ZW50VGVhcmRvd25FbmFibGVkKCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFNldHRpbmdz
KiBzZXR0aW5ncyA9IF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpOwotICAgIAorCisgICAgLy8g
RklYTUU6IFdoZW5ldmVyIGFueSBmdXR1cmUgZ3JvdXBTZXR0aW5ncyBuZWVkIHRvIGJlIGV4cG9z
ZWQgdG8gdGhlIGVtYmVkZGVyLCB0aGV5IHNob3VsZCBOT1QgYmUgZXhwb3NlZAorICAgIC8vICAg
ICAgICB2aWEgdGhlIFdlYlZpZXcgc2luY2UgdGhleSBhcmVuJ3QgYWN0dWFsbHkgcGVyLXZpZXcg
c2V0dGluZ3MuCisgICAgX3ByaXZhdGUtPnBhZ2UtPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpLT5z
ZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoW3ByZWZlcmVuY2VzIF9sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGhdKTsKKwogICAgIHNldHRpbmdzLT5zZXRDdXJzaXZlRm9udEZhbWlseShbcHJlZmVy
ZW5jZXMgY3Vyc2l2ZUZvbnRGYW1pbHldKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVk
Rm9udFNpemUoW3ByZWZlcmVuY2VzIGRlZmF1bHRGaXhlZEZvbnRTaXplXSk7CiAgICAgc2V0dGlu
Z3MtPnNldERlZmF1bHRGb250U2l6ZShbcHJlZmVyZW5jZXMgZGVmYXVsdEZvbnRTaXplXSk7CkBA
IC0xMzc0LDcgKzEzODIsNiBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJs
ZWQoKQogICAgIHNldHRpbmdzLT5zZXRGaXhlZEZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIGZpeGVk
Rm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRGb3JjZUZUUERpcmVjdG9yeUxpc3Rpbmdz
KFtwcmVmZXJlbmNlcyBfZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nc10pOwogICAgIHNldHRpbmdz
LT5zZXRGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgoW3ByZWZlcmVuY2VzIF9mdHBEaXJlY3RvcnlU
ZW1wbGF0ZVBhdGhdKTsKLSAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRo
KFtwcmVmZXJlbmNlcyBfbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoXSk7CiAgICAgc2V0dGluZ3Mt
PnNldEphdmFFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0phdmFFbmFibGVkXSk7CiAgICAgc2V0dGlu
Z3MtPnNldEphdmFTY3JpcHRFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0phdmFTY3JpcHRFbmFibGVk
XSk7CiAgICAgc2V0dGluZ3MtPnNldFdlYlNlY3VyaXR5RW5hYmxlZChbcHJlZmVyZW5jZXMgaXNX
ZWJTZWN1cml0eUVuYWJsZWRdKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnNldHRp
bmdzLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRleCBlZGQwN2RhMGE4
NzgwNTQwMmU0NTg0ZWIwZjE0YTg5ZjIyYTljMzc4Li5iZmNmMjVmMTQxN2IwNjc4NjU1YWEyMWM0
NmMzNDk5OTg5Mzk1NmE0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5j
cHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCkBAIC0yOCw4ICsyOCwxMCBA
QAogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgorI2luY2x1ZGUgIkdyb3VwU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVk
ZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJLVVJMLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAgLTIxMyw4ICsyMTUsMTAgQEAgdm9pZCBR
V2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSgpCiAgICAgICAgIFFTdHJpbmcgZW5jb2RpbmcgPSAh
ZGVmYXVsdFRleHRFbmNvZGluZy5pc0VtcHR5KCkgPyBkZWZhdWx0VGV4dEVuY29kaW5nOiBnbG9i
YWwtPmRlZmF1bHRUZXh0RW5jb2Rpbmc7CiAgICAgICAgIHNldHRpbmdzLT5zZXREZWZhdWx0VGV4
dEVuY29kaW5nTmFtZShlbmNvZGluZyk7CiAKKyAgICAgICAgLy8gRklYTUU6IFdoZW5ldmVyIGFu
eSBmdXR1cmUgZ3JvdXBTZXR0aW5ncyBuZWVkIHRvIGJlIGV4cG9zZWQgdG8gdGhlIGVtYmVkZGVy
LCB0aGV5IHNob3VsZCBOT1QgYmUgZXhwb3NlZAorICAgICAgICAvLyAgICAgICAgdmlhIHRoaXMg
Y2xhc3Mgc2luY2UgdGhleSBhcmVuJ3QgYWN0dWFsbHkgcGVyLXZpZXcgc2V0dGluZ3MuCiAgICAg
ICAgIFFTdHJpbmcgc3RvcmFnZVBhdGggPSAhbG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgPyBs
b2NhbFN0b3JhZ2VQYXRoIDogZ2xvYmFsLT5sb2NhbFN0b3JhZ2VQYXRoOwotICAgICAgICBzZXR0
aW5ncy0+c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKHN0b3JhZ2VQYXRoKTsKKyAgICAgICAg
c2V0dGluZ3MtPnBhZ2UoKS0+Z3JvdXAoKS5ncm91cFNldHRpbmdzKCktPnNldExvY2FsU3RvcmFn
ZURhdGFiYXNlUGF0aChzdG9yYWdlUGF0aCk7CiAKICAgICAgICAgdmFsdWUgPSBhdHRyaWJ1dGVz
LnZhbHVlKFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6Wm9vbVRl
eHRPbmx5KSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCBlMDRmMDJkZTI0ZDE3M2NlOWM0ODJlYTNiNDVhM2NjNjkwY2FhNjg0Li41
MmMwZWU3M2FmMTdiYjg1Y2Y1N2I3MTM0MDRkMGMwYmE3ZjQ3YTU5IDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMC0wOC0xMSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIHNldHRpbmdz
IGFyZSBsaW5rZWQgdG8gdGhlIFBhZ2VHcm91cCBub3QgdGhlIFBhZ2UuICBDcmVhdGUgYSBuZXcg
Y2xhc3MgZm9yIHRob3NlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDM3OTQKKworICAgICAgICBDaGFuZ2UgV2ViU2V0dGluZ3MgdG8gdXNlIHRoZSBu
ZXcgR3JvdXBTZXR0aW5ncyBjbGFzcyByYXRoZXIgdGhhbiBTZXR0aW5ncyBmb3IgdGhlCisgICAg
ICAgIHNldHRpbmdzIHRoYXQgbW92ZWQuICBUaGlzIGlzIHN1Yi1vcHRpbWFsIHNpbmNlIHRoZSBz
ZXR0aW5ncyBhcmVuJ3QgcmVhbGx5CisgICAgICAgIHBlci12aWV3LCBidXQgSSBkb24ndCBzZWUg
aG93IHdlIGNhbiBjaGFuZ2UgdGhlIEFQSSBhdCB0aGlzIHBvaW50LgorCisgICAgICAgICogQXBp
L3F3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAgIChRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSk6
CisKIDIwMTAtMDgtMTAgIEFuZGVycyBCYWtrZW4gIDxhZ2Jha2tlbkBnbWFpbC5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64325</attachid>
            <date>2010-08-13 05:32:13 -0700</date>
            <delta_ts>2010-08-14 23:21:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43794-20100813133211.patch</filename>
            <type>text/plain</type>
            <size>18811</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjMzJiY2FlMDJkMzBkNjFmZGIwZGM0MzE5YzNmYmYxOGFjM2IzYjIwLi43YzE0MjJjNmEyNjNl
NDgyYmEyMWY2M2VmNmQ0ZmE5YTRmNDRiNmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzAsNiArMzcwLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlw
YWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAJcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3Bw
IFwKKwlwYWdlL0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlwYWdlL0hpc3RvcnkuY3BwIFwKIAlwYWdl
L0xvY2F0aW9uLmNwcCBcCiAJcGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA3NzQzZDI2ZDk4NDkxMDBhNGY2ZjIzMTBiMjI3YzUxZDAyMDY0NjQ1Li41MDg0
MGUxN2ExZGMyMDVlODQwMDlkZTM5ZjI2NmVkYzNiZjRjY2JmIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjMsNiAr
MTE2Myw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNwcAog
ICAgIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogICAgIHBhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcAorICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKICAgICBwYWdlL0hp
c3RvcnkuY3BwCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAKICAgICBwYWdlL01lbW9yeUluZm8uY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDZmMDNiYzhmYzhkZTAyMGY5M2M3NTFiNDQ4ZDEwYTlkNWM2ZjZiMzguLjI2ZWI2NjhiMjExMWMx
MTgxOTM4NTYzZDYwMTRiMDMzZDgyNTJhOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDgtMTMgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU29tZSBzZXR0aW5n
cyBhcmUgbGlua2VkIHRvIHRoZSBQYWdlR3JvdXAgbm90IHRoZSBQYWdlLiAgQ3JlYXRlIGEgbmV3
IGNsYXNzIGZvciB0aG9zZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzNzk0CisKKyAgICAgICAgU2luY2UgcGVyc2lzdGllbnQgc3RvcmFnZSBpcyBz
aGFyZWQgYmV0d2VlbiBwYWdlcywgdGhlcmUncyBubyB3YXkgdG8gbW9kaWZ5CisgICAgICAgIHNv
bWUgc2V0dGluZ3MgcmVsYXRlZCB0byBpdCBvbiBhIHBlciBwYWdlIGJhc2lzLiAgQXMgc3VjaCwg
aXQncyBub3QgdGVjaG5pY2FsbHkKKyAgICAgICAgY29ycmVjdCBmb3IgdGhlc2Ugc2V0dGluZ3Mg
dG8gYmUgb24gdGhlIFBhZ2UncyBzZXR0aW5ncy4gIENyZWF0ZSBhIG5ldyBjbGFzcworICAgICAg
ICBjYWxsZWQgR3JvdXBTZXR0aW5ncywgbW92ZSAgZ3JvdXAtd2lkZSBsb2NhbCBzdG9yYWdlIHNl
dHRpbmcgdGhlcmUgKHRoZSBvdGhlciB3ZQorICAgICAgICBjYW4ndCksIGFuZCBhZGQgYSBuZXcg
c2V0dGluZyBmb3IgSW5kZXhlZERCJ3MgcGF0aCAod2hpY2ggaXMgcHJvbXB0aW5nIHRoaXMgY2hh
bmdlKS4KKworICAgICAgICBObyBiZWhhdmlvciBoYXMgY2hhbmdlZCwgc28gbm8gdGVzdHMuCisK
KyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFn
ZS9Hcm91cFNldHRpbmdzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHcm91cFNldHRp
bmdzOjpHcm91cFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6Okdyb3VwU2V0dGluZ3M6OnNl
dExvY2FsU3RvcmFnZVF1b3RhQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JvdXBTZXR0aW5n
czo6c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okdyb3Vw
U2V0dGluZ3M6OnNldEluZGV4ZWREQkRhdGFiYXNlUGF0aCk6CisgICAgICAgICogcGFnZS9Hcm91
cFNldHRpbmdzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JvdXBTZXR0aW5nczo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdyb3VwU2V0dGluZ3M6OmxvY2FsU3RvcmFnZVF1b3Rh
Qnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JvdXBTZXR0aW5nczo6bG9jYWxTdG9yYWdlRGF0
YWJhc2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okdyb3VwU2V0dGluZ3M6OmluZGV4ZWREQkRh
dGFiYXNlUGF0aCk6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZUdyb3VwOjpQYWdlR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3Vw
Ojpsb2NhbFN0b3JhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlR3JvdXA6Omdyb3VwU2V0dGluZ3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGlu
Z3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKToKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmg6CisKIDIwMTAtMDgtMTIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2ZXJ0IGZvciBub3cKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDcwOTc5ZDRhMTU3
MTg0YTE4YzA4YWNjNTNjYTEyNmQwNGNmMTRmMGQuLmY4YjA1ZDA4NzQ1MWMxMzU3NzYzMDQyODIx
YWVlMDZlMTgzY2UzZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTc5OCw2ICsxNzk4LDcgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCBcCiAJ
V2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKIAlXZWJDb3JlL3BhZ2Uv
R2VvcG9zaXRpb24uaCBcCisJV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuaCBcCiAJV2ViQ29y
ZS9wYWdlL0hhbHRhYmxlUGx1Z2luLmggXAogCVdlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcCBcCiAJ
V2ViQ29yZS9wYWdlL0hpc3RvcnkuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDU4ZWUyYTk2OTc3YzkxOWQ4ODljOTFlOWQy
YmViNTA5ZTVhNmZiNWUuLmFlODNkMjQ1NTU1M2NmNjdiZTJiZWI2M2VhYzA2MDExY2M1NDVlZDAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0yMDE2LDYgKzIwMTYsOCBAQAogICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvblBvc2l0aW9u
Q2FjaGUuaCcsCiAgICAgICAgICAgICAncGFnZS9HZW9wb3NpdGlvbi5oJywKKyAgICAgICAgICAg
ICdwYWdlL0dyb3VwU2V0dGluZ3MuY3BwJywKKyAgICAgICAgICAgICdwYWdlL0dyb3VwU2V0dGlu
Z3MuaCcsCiAgICAgICAgICAgICAncGFnZS9IYWx0YWJsZVBsdWdpbi5oJywKICAgICAgICAgICAg
ICdwYWdlL0hpc3RvcnkuY3BwJywKICAgICAgICAgICAgICdwYWdlL0hpc3RvcnkuaCcsCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAz
OGExOWQ4NDNmZmU1YTcyZWI2MTY4MjQ1NDM3MjY0Mjk0MmU2YWM0Li4yMjM5ZjQyM2U4N2QzZmUz
MjQ4YzE5OWVkZDk0ZTgyMDU0NGYxYWZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTgzOSw2ICs4MzksNyBAQCBTT1VSQ0VTICs9
IFwKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAgICAgcGFnZS9HZW9sb2NhdGlvbkNvbnRy
b2xsZXIuY3BwIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgXAorICAg
IHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAgXAogICAgIHBhZ2UvSGlzdG9yeS5jcHAgXAogICAgIHBh
Z2UvTG9jYXRpb24uY3BwIFwKICAgICBwYWdlL01lbW9yeUluZm8uY3BwIFwKQEAgLTE2MTgsNiAr
MTYxOSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvR2VvbG9jYXRpb24uaCBcCiAgICAgcGFn
ZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCBcCiAgICAgcGFnZS9HZW9wb3NpdGlvbi5oIFwK
KyAgICBwYWdlL0dyb3VwU2V0dGluZ3MuaCBcCiAgICAgcGFnZS9IYWx0YWJsZVBsdWdpbi5oIFwK
ICAgICBwYWdlL0hpc3RvcnkuaCBcCiAgICAgcGFnZS9Mb2NhdGlvbi5oIFwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQ2M2Y1ZDllOWQyMDZiZmE3MDU4ZjNlMWE3ZGZj
MjQzZGYzZjM3MmYuLmY2Y2NlZWFmMDljNGMwOTAwNzQ5YjI3MGM4MzIxYzIwYmE0ODFlMDIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjIzMTcsNiArMjIzMTcsMTQg
QEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGFnZVxHcm91cFNldHRpbmdzLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcR3JvdXBTZXR0aW5ncy5oIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxIYWx0YWJsZVBs
dWdpbi5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggODRlMWRhYWU5ODUwMDgyZDdmY2VlZWIyYzA4OWJkNjM5NmQ1
YjQ5ZS4uNmIzYmQxY2M5NDQ4ZWQwNmNmMzQ4Y2UxMzc3NTM2YmMxODQ2YWIwNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ5NTYsNiArNDk1Niw4IEBA
CiAJCUMwREZDODcwMERCNjg0MUEwMDNFQUU3QyAvKiBKU0NvbnNvbGVDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBERkM4NkYwREI2ODQx
QTAwM0VBRTdDIC8qIEpTQ29uc29sZUN1c3RvbS5jcHAgKi87IH07CiAJCUMxMDVEQTYyMEYzQUE2
OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MTBGM0FBNjhGMDAxREQ0NEYg
LyogVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwICovOyB9OwogCQlDMTA1REE2NDBGM0FBNkI4
MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0
RW5jb2RpbmdEZXRlY3Rvci5oICovOyB9OworCQlDNTBCNTYxNjEyMTE5RDIzMDA4QjQ2RTAgLyog
R3JvdXBTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNTBCNTYxNDEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi87
IH07CisJCUM1MEI1NjE3MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTBCNTYxNTEyMTE5RDIz
MDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUM1MEQwRTgyMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdl
TmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM1MEQwRTgwMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmNwcCAqLzsg
fTsKIAkJQzUwRDBFODMwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEQwRTgxMEZGNDI3
MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmggKi87IH07CiAJCUM1MTAyRDk0MEZEOUFB
MkQwMEZBRkYwNCAvKiBTdG9yYWdlU3luY01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTAyRDkyMEZEOUFBMkQwMEZBRkYwNCAvKiBTdG9y
YWdlU3luY01hbmFnZXIuaCAqLzsgfTsKQEAgLTEwNzA4LDYgKzEwNzEwLDggQEAKIAkJQzBERkM4
NkYwREI2ODQxQTAwM0VBRTdDIC8qIEpTQ29uc29sZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbnNvbGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDMTA1REE2MTBGM0FBNjhGMDAxREQ0NEYgLyogVGV4dEVuY29kaW5n
RGV0ZWN0b3JJQ1UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4
dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTA1REE2MzBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEVuY29kaW5nRGV0ZWN0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUwQjU2MTQxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3Vw
U2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JvdXBT
ZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1MEI1NjE1MTIxMTlE
MjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdyb3VwU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUw
RDBFODAwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MEQwRTgxMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdl
TmFtZXNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VOYW1l
c3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUxMDJEOTIwRkQ5QUEyRDAw
RkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdG9yYWdlU3luY01hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEyNTIwLDYgKzEyNTI0LDggQEAKIAkJCQk1OTYyMjk3OTExMzNFRkUyMDBEQzRDQkIgLyog
R2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggKi8sCiAJCQkJRkU4MEQ3QkIwRTlDMUYyNTAwMEQ2
Rjc1IC8qIEdlb3Bvc2l0aW9uLmggKi8sCiAJCQkJRkU4MEQ3QkMwRTlDMUYyNTAwMEQ2Rjc1IC8q
IEdlb3Bvc2l0aW9uLmlkbCAqLywKKwkJCQlDNTBCNTYxNDEyMTE5RDIzMDA4QjQ2RTAgLyogR3Jv
dXBTZXR0aW5ncy5jcHAgKi8sCisJCQkJQzUwQjU2MTUxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3Vw
U2V0dGluZ3MuaCAqLywKIAkJCQk3NjkzQkFDRTEwNkMyRENBMDA3QjA4MjMgLyogSGFsdGFibGVQ
bHVnaW4uaCAqLywKIAkJCQlCQzk0RDE1MDBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAg
Ki8sCiAJCQkJQkM5NEQxNTEwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuaCAqLywKQEAgLTIw
MTQ5LDYgKzIwMTU1LDcgQEAKIAkJCQkyRUVENTc1ODEyMTA5RUU0MDA3NjU2QkIgLyogQmxvYlJl
Z2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUVENTc1QzEyMTA5RUYzMDA3NjU2QkIgLyog
QmxvYkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3OEI2RkNBMTIxMjg4MjEwMDE1OTVFRiAv
KiBIVE1MVmlld1NvdXJjZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzUwQjU2MTcxMjEx
OUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjI1NzQs
NiArMjI1ODEsNyBAQAogCQkJCTJFRUQ1NzU1MTIxMDlFRDAwMDc2NTZCQiAvKiBCbG9iVVJMLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTJFRUQ1NzVCMTIxMDlFRjMwMDc2NTZCQiAvKiBCbG9iRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzhCNkZDOTEyMTI4ODIxMDAxNTk1RUYgLyogSFRN
TFZpZXdTb3VyY2VQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzUwQjU2MTYxMjExOUQy
MzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAgYi9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0
aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNThhYjc0ZDA1M2VlMzc0ZTBjOWQ0YmVjNzgyMTBjYmVjNDFj
YWQ5OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcApA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdy
b3VwU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcm91cFNldHRpbmdzOjpH
cm91cFNldHRpbmdzKCkKKyAgICA6IG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlcyg1ICogMTAyNCAq
IDEwMjQpIC8vIFN1Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KK3sKK30KKwordm9pZCBHcm91
cFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VRdW90YUJ5dGVzKHVuc2lnbmVkIHF1b3RhKQorewor
ICAgIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlcyA9IHF1b3RhOworfQorCit2b2lkIEdyb3VwU2V0
dGluZ3M6OnNldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCit7Cisg
ICAgbV9pbmRleGVkREJEYXRhYmFzZVBhdGggPSBwYXRoOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oIGIvV2ViQ29y
ZS9wYWdlL0dyb3VwU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmE1ZGQyODhiYzk1NGI1ZGY5ZmVk
ZGJiMGJmNjY3NzYxMGU2ODY0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL0dyb3Vw
U2V0dGluZ3MuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKKyNpZm5kZWYgR3JvdXBTZXR0aW5n
c19oCisjZGVmaW5lIEdyb3VwU2V0dGluZ3NfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFBhZ2VHcm91cDsKKworY2xhc3MgR3JvdXBTZXR0aW5ncyA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gY3Jl
YXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3JvdXBTZXR0aW5ncygp
KTsKKyAgICB9CisKKyAgICB2b2lkIHNldExvY2FsU3RvcmFnZVF1b3RhQnl0ZXModW5zaWduZWQp
OworICAgIHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3RhQnl0ZXMoKSBjb25zdCB7IHJldHVybiBt
X2xvY2FsU3RvcmFnZVF1b3RhQnl0ZXM7IH0KKworICAgIHZvaWQgc2V0SW5kZXhlZERCRGF0YWJh
c2VQYXRoKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IFN0cmluZyYgaW5kZXhlZERCRGF0YWJh
c2VQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleGVkREJEYXRhYmFzZVBhdGg7IH0KKworcHJp
dmF0ZToKKyAgICBHcm91cFNldHRpbmdzKCk7CisKKyAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFn
ZVF1b3RhQnl0ZXM7CisgICAgU3RyaW5nIG1faW5kZXhlZERCRGF0YWJhc2VQYXRoOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gR3JvdXBTZXR0aW5nc19oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXAuY3BwCmluZGV4IDEyYjFhNDFjYTRkYjAyMDNjMzkwMjQwMDY4ODNkZjliMzI4NzIzM2QuLjEz
Y2ZiMTkwNjNkNDcyY2NmYjU4MDkzOTQzZjg2Zjk2OWU2MGRkOWYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9QYWdlR3JvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdyb3VwU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTUsNiArNTYsNyBAQCBQYWdlR3JvdXA6OlBh
Z2VHcm91cChjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgOiBtX25hbWUobmFtZSkKICAgICAsIG1f
dmlzaXRlZExpbmtzUG9wdWxhdGVkKGZhbHNlKQogICAgICwgbV9pZGVudGlmaWVyKGdldFVuaXF1
ZUlkZW50aWZpZXIoKSkKKyAgICAsIG1fZ3JvdXBTZXR0aW5ncyhHcm91cFNldHRpbmdzOjpjcmVh
dGUoKSkKIHsKIH0KIApAQCAtMjAwLDcgKzIwMiw3IEBAIFN0b3JhZ2VOYW1lc3BhY2UqIFBhZ2VH
cm91cDo6bG9jYWxTdG9yYWdlKCkKICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCB3ZSdyZSBzdHVj
ayB3aXRoIGl0LgogICAgICAgICBQYWdlKiBwYWdlID0gKm1fcGFnZXMuYmVnaW4oKTsKICAgICAg
ICAgY29uc3QgU3RyaW5nJiBwYXRoID0gcGFnZS0+c2V0dGluZ3MoKS0+bG9jYWxTdG9yYWdlRGF0
YWJhc2VQYXRoKCk7Ci0gICAgICAgIHVuc2lnbmVkIHF1b3RhID0gcGFnZS0+c2V0dGluZ3MoKS0+
bG9jYWxTdG9yYWdlUXVvdGEoKTsKKyAgICAgICAgdW5zaWduZWQgcXVvdGEgPSBtX2dyb3VwU2V0
dGluZ3MtPmxvY2FsU3RvcmFnZVF1b3RhQnl0ZXMoKSk7CiAgICAgICAgIG1fbG9jYWxTdG9yYWdl
ID0gU3RvcmFnZU5hbWVzcGFjZTo6bG9jYWxTdG9yYWdlTmFtZXNwYWNlKHBhdGgsIHF1b3RhKTsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBiL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXAuaAppbmRleCA5NWRiOGMzOGQyNzYzYTE1ZTRkNmQzYmMyZGZmM2I3MmYy
MGZkZWU4Li4wMjM0YzY1NzEyZmRlMDQzMmQ0MjdjMGJhMjliMjUzNzExYzVhOWZiIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91
cC5oCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBL
VVJMOworICAgIGNsYXNzIEdyb3VwU2V0dGluZ3M7CiAgICAgY2xhc3MgSURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2U7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdG9yYWdlTmFtZXNwYWNl
OwpAQCAtOTMsNiArOTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IFVz
ZXJTY3JpcHRNYXAqIHVzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VyU2NyaXB0cy5n
ZXQoKTsgfQogICAgICAgICBjb25zdCBVc2VyU3R5bGVTaGVldE1hcCogdXNlclN0eWxlU2hlZXRz
KCkgY29uc3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldHMuZ2V0KCk7IH0KIAorICAgICAgICBH
cm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9ncm91cFNldHRp
bmdzLmdldCgpOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGFkZFZpc2l0ZWRMaW5r
KExpbmtIYXNoIHN0cmluZ0hhc2gpOwogICAgICAgICB2b2lkIHJlc2V0VXNlclN0eWxlQ2FjaGVJ
bkFsbEZyYW1lcygpOwpAQCAtMTE0LDYgKzExNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICBPd25QdHI8VXNlclNjcmlwdE1hcD4gbV91c2VyU2NyaXB0czsKICAgICAgICAgT3du
UHRyPFVzZXJTdHlsZVNoZWV0TWFwPiBtX3VzZXJTdHlsZVNoZWV0czsKKworICAgICAgICBPd25Q
dHI8R3JvdXBTZXR0aW5ncz4gbV9ncm91cFNldHRpbmdzOwogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDg4MWM4ODU4ZjIyZjY3ZGY2MTg1NDMzNWU3NzJk
YjRkYjk3NGNkYmEuLmMxNTBjYjdiNGI3NjE0Y2MyYjBmOTkzNTZkYTYxMjcwMzVkMGNlMjUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcApAQCAtNjQsMTAgKzY0LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBh
Z2UpCiAgICAgLCBtX2RlZmF1bHRGb250U2l6ZSgwKQogICAgICwgbV9kZWZhdWx0Rml4ZWRGb250
U2l6ZSgwKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShudW1lcmljX2xpbWl0czxz
aXplX3Q+OjptYXgoKSkKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAgICAgCi0gICAg
LCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dlc3RlZCBieSB0
aGUgSFRNTDUgc3BlYy4KICAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShTdG9yYWdlTWFwOjpu
b1F1b3RhKQotI2VuZGlmCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lKG51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCkpCiAgICAgLCBtX3pvb21Nb2RlKFpvb21QYWdlKQogICAgICwg
bV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKQEAgLTI5MCwxNyArMjg3LDEwIEBA
IHZvaWQgU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBsb2NhbFN0b3JhZ2VF
bmFibGVkKQogICAgIG1fbG9jYWxTdG9yYWdlRW5hYmxlZCA9IGxvY2FsU3RvcmFnZUVuYWJsZWQ7
CiB9CiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLXZvaWQgU2V0dGluZ3M6OnNl
dExvY2FsU3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3RhKQotewotICAgIG1f
bG9jYWxTdG9yYWdlUXVvdGEgPSBsb2NhbFN0b3JhZ2VRdW90YTsKLX0KLQogdm9pZCBTZXR0aW5n
czo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YSh1bnNpZ25lZCBzZXNzaW9uU3RvcmFnZVF1b3RhKQog
ewogICAgIG1fc2Vzc2lvblN0b3JhZ2VRdW90YSA9IHNlc3Npb25TdG9yYWdlUXVvdGE7CiB9Ci0j
ZW5kaWYKIAogdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IGFlM2ViZWFkMmZjN2ExMTU4MDk3
MWJmZDcyZDVjOGExNGU1ZTAwNTkuLjliZTNiNGJhNjNlM2U4YWExZjdjZjBhODBlYTU3ZjVmNTNh
ZjhiZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCkBAIC0xMjksMTYgKzEyOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChib29sKTsKICAgICAgICAgYm9v
bCBsb2NhbFN0b3JhZ2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2VFbmFi
bGVkOyB9CiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpICAgICAgICAKLSAgICAgICAgdm9pZCBz
ZXRMb2NhbFN0b3JhZ2VRdW90YSh1bnNpZ25lZCk7Ci0gICAgICAgIHVuc2lnbmVkIGxvY2FsU3Rv
cmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2VRdW90YTsgfQotCiAgICAg
ICAgIC8vIEFsbG93IGNsaWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRv
IHNldCBhIHF1b3RhIG9uIHNlc3Npb24gc3RvcmFnZQogICAgICAgICAvLyBzaW5jZSB0aGUgbWVt
b3J5IHVzZWQgd29uJ3QgYmUgcmVsZWFzZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgog
ICAgICAgICAvLyBEZWZhdWx0IGlzIG5vUXVvdGEuCiAgICAgICAgIHZvaWQgc2V0U2Vzc2lvblN0
b3JhZ2VRdW90YSh1bnNpZ25lZCk7CiAgICAgICAgIHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVv
dGEoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7IH0KLSNlbmRpZgogCiAg
ICAgICAgIC8vIFdoZW4gdGhpcyBvcHRpb24gaXMgc2V0LCBXZWJDb3JlIHdpbGwgYXZvaWQgc3Rv
cmluZyBhbnkgcmVjb3JkIG9mIGJyb3dzaW5nIGFjdGl2aXR5CiAgICAgICAgIC8vIHRoYXQgbWF5
IHBlcnNpc3Qgb24gZGlzayBvciByZW1haW4gZGlzcGxheWVkIHdoZW4gdGhlIG9wdGlvbiBpcyBy
ZXNldC4KQEAgLTM1NCwxMCArMzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBp
bnQgbV9kZWZhdWx0Rm9udFNpemU7CiAgICAgICAgIGludCBtX2RlZmF1bHRGaXhlZEZvbnRTaXpl
OwogICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsKLSNpZiBFTkFCTEUo
RE9NX1NUT1JBR0UpICAgICAgICAKLSAgICAgICAgdW5zaWduZWQgbV9sb2NhbFN0b3JhZ2VRdW90
YTsKICAgICAgICAgdW5zaWduZWQgbV9zZXNzaW9uU3RvcmFnZVF1b3RhOwotI2VuZGlmCiAgICAg
ICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWU7CiAgICAgICAgIFpvb21Nb2RlIG1f
em9vbU1vZGU7CiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7
Cg==
</data>
<flag name="review"
          id="52871"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>